毕业设计(论文)
题目名称: 曼彻斯特编解码电路设计 学生姓名: 院 (系): 电子信息学院 专业班级: 电气10602 指导教师: 辅导教师: 时 间: 2010年3月15日 至 2010年6月10日
目录
毕业设计(论文)开题报告 ......................................................................................................... V 曼彻斯特编解码电路设计 ...................................................................................................... 12 Manchester encoding and decoding circuit .............................................................................. 13 前言 ................................................................................................................................................. 0 曼彻斯特编解码电路设计 ........................................................................................................ 1 1 选题背景.................................................................................................................................... 1
普通NRZ码存在的问题 ................................................................................................................ 1 应用背景 .............................................................................................................................................. 1
2 方案论证.................................................................................................................................... 0
曼彻斯特码简介 ................................................................................................................................. 0 曼彻斯特编解码解析 ....................................................................................................................... 0 曼彻斯特编解码具体实现方式 ..................................................................................................... 1 方案选择 .............................................................................................................................................. 2
3 硬件电路设计 .......................................................................................................................... 5
系统实物照片展示 ............................................................................................................................ 5 系统的硬件框图 ................................................................................................................................. 6 AT89S52单片机简介 ........................................................................................................................ 7 单片机外围电路 ................................................................................................................................. 9 信号调理电路 ................................................................................................................................... 13
4 软件设计 ............................................................................................................................... 16
资源利用 ............................................................................................................................................ 16
曼彻斯特码编解码方式分析 ........................................................................................................ 18 程序流程图 ........................................................................................................................................ 19 编码实现 ............................................................................................................................................ 21 改良方向 ............................................................................................................................................ 24
参考文献 ...................................................................................................................................... 26 致谢 ............................................................................................................................................... 27 附录1:地下液位测量系统实物照片 ................................................................................. 28
长江大学毕业设计(论文)任务书
学院(系)电子信息学院 专业 电气工程及自动化 班级 电气10602 学生姓名 熊香春 指导教师/职称 吴爱平/讲师
1.毕业设计(论文)题目
曼彻斯特编解码电路设计
2.毕业设计(论文)起止时刻:2010年3月15日-2010年6月10日 3.毕业设计(论文)所需资料及原始数据(指导教师选定部份)
所需资料:
(1)《MCS-51单片机原理与应用》 (2)《单片机的C语言编程》 (3) 通信原理 原始数据
传输速度为20Kb/S,一帧数据有16个字节,一帧的命令有2个字节。
4.毕业设计(论文)应完成的主要内容
(1)利用C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真;
(2)设计曼彻斯特信号调理电路;
(3)毕业论文中必需包括如下内容:大体原理介绍、整体框图、软件流程图、软件原理介绍、源程序清单。
5.毕业设计(论文)的目标及具体要求
利用单片机和C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真通过;通过单片机最小系统,辅之外围电路,能够实现编解码。
6.毕业设计(论文)所需的条件及上机时数
所需条件:微型运算机一台 单片机最小系统
上机时数:(3小时)*(60天)=180小时
任务书批准日期 2010 年 3 月 10 日 教研室(系)主任(签字) 任务书下达日期 2010 年 3 月 15 日 指导教师(签字) 完成任务日期 2010 年 6 月 10 日 学生(签名)
长江大学
毕业设计(论文)开题报告
题 目 名 称: 曼彻斯特编解码电路设计 题 目 类 别: 毕业设计 学 院(系): 电子信息学院 专 业 班 级: 电气10602 班 学 生 姓 名: 熊 香 春 指 导 教 师: 吴 爱 平 辅 导 教 师: 吴 爱 平 开题报告日期: 2010年3月27日
一、 题目来源
曼彻斯特编解码电路设计一题来源于生产实际与指导老师科研项目的结合。
二、 研究目的和意义
曼彻斯特码是一种数据通信线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。曼彻斯特编码因此被以为是一种自按时码。自按时意味着数据流的精准同步是可行的。每一个比特都准确的在一预先概念的时刻中被传送。曼彻斯特编码已经被许多高效率且被普遍利用的电信标准所采用,例如以太网电讯标准。曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除零频率信号的特性使得它在石油勘探测井中也取得普遍的应用。
三、 阅读的主要参考文献及资料名称 参考文献:
[1] 徐爱均编著.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社.2000
[2] 徐爱均编著.单片机原理利用教程.北京:电子工业出版社.2009
[3] 吴爱平.基于FPGA的等精度频率计的设计.石油仪器,2005,4:17~19 [4] 谭浩强 编著.C语言程序设计 北京:清华大学出版社. 2005 [5] 康华光.模拟电子技术基础.北京:高等教育出版社.1991 [6] 康华光.数字电子技术基础. 北京:高等教育出版社.1991 [7] 孙传友编.感测技术基础 . 北京:电子工业出版社.2001
[8] 马忠梅等编著.单片机的C语言应用程序设计.第一版.北京:北京航空航天大学出版社. [9] 张培仁等编著.基于C语言编程MCS-51单片机原理与应用.第一版.北京:清华大学出
版社.2002
[10] 何立民编著.单片机应用技术选编(5).第一版.北京:北京航空航天大学出版社. [11] 郭观七编著.基于C语言的MCS-51系列单片机软件开发系统.第一版.武汉:华中理工
大学出版社.
[12] 王福瑞等编著.单片微机测控系统设计大全.第一版.北京:北京航空航天大学出版社. [13] 马忠梅等编著.单片机的C语言应用程序设计.修订版.北京:北京航空航天大学出版社. [14] 孙传友编 .测控系统原理与设计. 北京:北京航空航天大学出版社. 2001
四、 彻斯特编解码进展趋势与应用方向
曼彻斯特码由于其特殊的性能,在许多领域取得普遍的应用,如电信业,工业控制,航天军事领域,石油勘探测井等等!
在工业现场控制网络中,曼彻斯特码由于带有时钟信息、无直流,且实现简单,常被用作高速的基带数传。
曼彻斯特码在LAN中的应用,曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的长处是:数据和同步时钟统一编码,曼码中含有丰硕的时钟信号,直流分量大体为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有专门好的抗干扰性能,这使它更适合于信道传输。令牌总线标准采用了此种传输技术。曼彻斯特编码被利用作一个以太网局域网的物理层,对于一个以太网局域网用同轴电缆作为传输介质,额外的带宽不是重要的问题。
曼彻斯特码在测井系统中应用普遍,目前,在实际的工程测井中,常采用曼彻斯特编译码器HD-15530把测井数据转换为曼彻斯特码及把曼彻斯特码解码为数据.由于HD-15530发送数据输入及同意数据输出均为串行方式,而且曼彻斯特编解码是以16位数据为大体单位,逻辑上要求利用16位的并入串出移位寄放器和16位的串入并出移位寄放器与单片机接口,如此硬件结构比较复杂,仪器本钱较高。考虑到测井数据传输速度不高,可用单片机软件来实现曼彻斯特编解码功能。
五、 主要研究内容、需重点研究的关键问题及解决思路
1. 主要研究的内容:
本项目主要研究曼彻斯特码编码器的硬件设计和实现。为了能顺利完成曼彻斯特码的编解码任务,实现数据传输它应该包括如此几个部份:编码电路(上位机),解码电路(下位机),信号调理电路。
为了验证电路可否顺利完成曼彻斯特码的编解码功能,咱们用硬件验证的方式,将这一部份的研究内容放在项目“地下液位测量系统”中。实际制作地下液位测量系统,通过最后实际测量结果来验证曼彻斯特编解码电路设计效果。 2.重点研究的关键问题:
a)曼彻斯特编解码的软件实现
b)硬件制作,包括上位机,下位机,信号调理电路的制作
c)将曼彻斯特编解码电路与实际硬件结合起来,通过硬件验证的方式测实设计效果。
3.解决思路:
以AT89S52单片机为核心设计曼彻斯特编解码电路,实际制作上位机,下位机和信号调理电路。
地下液位测量系统系统框图: PC机 上位机 AT89S52 曼彻斯特编解码 上位机调理电路 下位机调理电路 下位机 AT89S52 曼彻斯特编解码 串口通讯 模块 按键 命令切换 LCD显示液位H,命令显示 控制信 状态指示 LCD显示液位高度H,命令显示 Adr[0..3] D[0..7] 号 液位信号采集模块 继电器驱动 FPGA频率测量模块 高精度
软件框图如下:
开始 初始化 命令选择(按键/PC机) 将命令编码,再差分输出 液晶显示命令数据 N 命令是否发送完? 毕? Y 是否有下位N 机数据传 Y 解码,保存在数据缓液晶显示接收的数通过串口将数据传输到PC开始 初始化 N 是否有上位机命令发送? Y 解码,保存在命令缓冲区 液晶显示接收的命令 模式选择(校验/检测) 发出继电器控制信号 N 是否读取频率信号? Y 向FPGA模块读取数据 液晶显示采集的数据
六、 完成毕业设计(论文)所必需具有的工作条件
1.工作条件:
相关技术资料和手册、运算机、相关实验仪器和AT89S52开发板等工作环境。 2.解决办法:
在图书馆和网络查阅文献资料和各类手册;利用电子阅览室了解当前技术前沿和编辑相关文字、图片及绘制原理图;利用电子电工实验室进行硬件制作,信号调试和数据测定。
七、 工作的主要阶段 进度与时刻安排
1.预备阶段:
第3周: 查阅和搜集毕业设计题目的相关资料,完成毕业设计开题报告; 第4周: 查阅资料,完成一篇外文翻译; 2.设计阶段:
第5周:查阅资料。
第6-9周:依照软件流程图编写出能实现大体功能的曼彻斯特编解码电路。 第10-11周: 编写外围显示,按键,串口通信模块程序,综合上下位机程序。 第12周:利用Altium Designer 绘制原理图,PCB并配合完成硬件制作。进行初步伐试。
第13周:调试程序,硬件,完成数据测试,数据分析。
第14周: 完成毕业设计初稿,修改毕业设计、定稿并录入、出图。 第15周:审查、评阅、答辩预备。 3.完成阶段:
第16周:答辩、将图纸、文件录入电子档案
八、 指导老师审查意见
曼彻斯特编解码电路设计
学 生:熊香春,长江大学电子信息学院 指导老师:吴爱平,长江大学电子信息学院
[摘要]:曼彻斯特码是一种数据通信线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。它是一种超越传统数字传输的信道编码技术,被以为是一种自按时码。由于其具有隐含时钟、去除零频率信号的特性使得它在石油勘探测井中取得普遍的应用。
本设计论述了曼彻斯特码的原理,介绍了其编码规则。对其特点和应用范围进行了说明。提出了曼彻斯特编解码电路设计方案,重点运用Keil C51单片机高级语言对曼彻斯特编解码电路进行软件设计,并基于此实际制作了地下液位测量系统。系统成功实现了曼彻斯特码数据传送的要求而且性能稳固,实际测量结果表明该电路设计专门好地实现了曼彻斯特编解码,而且该编解码方式具有抗干扰能力强,传输速度高等长处。
[关键词]:曼彻斯特码;单片机;地下液位测量系统;编解码器;
MANCHESTER ENCODING AND DECODING CIRCUIT
Student: xiongxiangchun, Electronics & Information College Teacher:Wu Aiping, Electronics & Information College
[Abstract]: Manchester code is a data communication codes, which each data bit by at least one form of voltage conversion expressed. Manchester encoding is a digital transmission beyond the traditional channel coding techniques, and is considered a self-timed code. because of its implicit clock to zero frequency signal characteristics in addition to making it in the oil exploration and logging were also to a wide range of applications.
This paper discusses the design principles of Manchester, and introduces the coding rules and it’s characteristics and applications .What’s more, raise the circuit design of encoding and decoding ,and focuses on high-level language using Keil C51 Single Chip computer on the Manchester encoding and decoding software design, and based on the actual manufactures an underground liquid level measuring system. The system successfully achieves the Manchester code requirements of data transfer and stable performance, the actual measurement results show that the circuit realizes the Manchester code very well, and the decoding method has an anti-interference ability and high transfer rate advantage.
[Keywords]: Manchester; Single Chip computer; ground level measurement system; codec.
前言
测井技术进展到今天,已经发生了专门大的转变:一是由模拟测井技术进展到了数字测井技术;二是由数字测井技术进展到了数控测井技术。进入90年代,成像测井技术取得了较大的进展,测井系统中需要传送的数据信息量愈来愈大,为此必需解决数据的高速传输与正确接收两个问题,如相关编码技术、缆芯多路复用技术、基带均衡技术等用以提高数据传输速度和降低误码率。
在测井数据传输系统中,由于曼彻斯特码既能提供足够的定时分量,又无直流漂移,编码过程相对简单,因而曼彻斯特(Manchester)码是测井数据传输中常常利用的编码方式之一。曼彻斯特码,又称数字双相码或分相码。在曼彻斯特编码中,每一名的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示“1”,从低到高跳变表示“0”。曼彻斯特编码是将时钟和数据包括在数据流中,在传输代码信息的同时,也将时钟同步信号一路传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。由于曼彻斯特码有如此多的长处,所以在现代通信中取得了普遍的应用。
曼彻斯特编解码电路设计
1 选题背景
普通
NRZ码存在的问题
普通NRZ码存在许多缺点:
a.难以分辨一名的结束和另一名的开始;
b.发送方和接收方必需有时钟同步;若信号中“0”或“1”持续出现,信号直流分量将慢慢累加;
码含有丰硕的直流分量,改变设备性能。所以在通信时容易产生传播错误。
于是通信领域迫切需要一种简单而又不存在NRZ码缺点的编码方式,曼彻斯特码就是其中一个比较实用的编码方式。
应用背景
曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的长处是:数据和同步时钟统一编码,曼码中含有丰硕的时钟信号,直流分量大体为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有专门好的抗干扰性能,这使它更适合于信道传输。令牌总线标准采用了此种传输技术。曼彻斯特编码被利用作一个以太网局域网的物理层,对于一个以太网局域网用同轴电缆作为传输介质,额外的带宽不是重要的问题。
曼彻斯特码由于其特殊的性能,在许多领域取得普遍的应用,如电信业,工业控制,航天军事领域,石油勘探测井等等。在工业现场控制网络中,曼彻斯特码由于带有时钟信息、无直流,且实现简单,常被用作高速的基带数传。曼彻斯特码在测井系统中应用普遍,目前,在实际的工程测井中,常采用曼彻斯特编译码器HD-15530把测井数据转换为曼彻斯特码及把曼彻斯特码解码为数据.由于HD-15530发送数据输入及同意数据输出均为串行方式,而且曼彻斯特编解码是以16位数据为大体单位,逻辑上要求利用16位的并入串出移位寄放器和16位的串入并出移位寄放器与单片机接口,如此硬件结构比较复杂,仪器本钱较高。考虑到测井数据传输速度不高,可用单片机软件来实现曼彻斯特编解码功能。
2 方案论证
曼彻斯特码简介
Manchester码又称双向码。它是对每一个二进制代码别离利用两个具有2个不同相位的二进制新码去取代的码。编码规则之一是:
0--01(零相位的一个周期的方波) 1--10(n相位的一个周期的方波)
双向码的特点是只用两个电平,而不像前面的三种码具有三个电平。与用高、低电平表示0, 1的非归零二进制码相较,在连0或连1的情形下(在传真通信和图象数据传输等方面,这种情形常常发生),更易于提取同步时钟信息,又无直流漂移,且有强的抗干扰能力,编、译码进程比较简单。
曼彻斯特编解码解析
按如实际场合的要求曼彻斯特编解码分为广义的编解码和狭义的编解码。
广义曼彻斯特编解码
广义曼彻斯特编解码不区分数据格式,不须要检测编码周期是不是开始,并辨别
同步字(命令/数据),不须要识别数据位、附加奇偶校验位。编解码时把任何信号当做有效数据。
狭义曼彻斯特编解码
在一些应用中实际对曼彻斯特编解码器设定了固定的格式,并要求编码器产生同
步字、校验位功能,相应解码器有识别同步字、校验位功能。例如在油田测井领域普遍用到的PCM3508信号就是狭义上的曼彻斯特码数据。
下面是上述模式的一种典型格式:每帧信息由同步头、数据及校验位三部份组成共20位。同步类型有两种,都占用3个位周期。先高电平后低电平的为命令同步,各自平宽度均为个周期,反之则为数据同步;中间是数据占16位,在每一个位的中间有跳
变,高到低跳变表示“1”,低到高跳变表示“0”;最后有一名校验位。曼彻斯特码在测井电缆上的传送速度为20kbps,每帧数据占1ms时刻。图 1为典型曼彻斯特信号格式。
110 0 1 0 0 1 0 020 1 0 0 1 1 1 0 0 0 0位周期编码信号命令同步数据一帧曼彻斯特码由20位组成校验位11020位周期编码信号 0 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 1数据同步ONE BITPERIODONE BITPERIOD数据THREE BITPERIODS校验位THREE BITPERIODSSIGNALONEZEROCOMMAND SYNCDATA SYNC图1 曼彻斯特码格式 曼彻斯特编解码具体实现方式 在这里主要讨论狭义上曼彻斯特码PCM3508信号的编解码实现方式 集成方式实现 集成方式实现曼彻斯特数据的编解码功能一般用专用的曼彻斯特编码译码器TitleSizeNumberHD—15530或HD—6408实现,数据的串并转换与信号合成都通过数字电路完成。但这种方式都有许多不足的地方:第一,在利用集成芯片方式实现曼彻斯特编解码传Date:3-Apr-2004 输时,对编解解码器时序要求很高,使得上下位机配合比较困难。第二,这种方式不23File:E:\\WuHT-资料\\nsc.ddbA但致使硬件电途经于庞大、复杂,而且也增加了系统调试的难度。
软件编解码
软件方式实现曼彻斯特编解码主要有高速单片机实现和FPGA/CPLD实现两种: 1)单片实现
曼彻斯特码在测井电缆上的传送速度为20kbps,每帧数据占1ms时刻。则发送每位数据的时刻为T=1(S)/20K=50us,而发送一名数据需要两次中断进程,则理论上每
次中断时刻最大为t=T/2=25us,对于AT89S52单片机而言,由于每一个机械周期为12个时钟震荡周期,所以按时的分辨率是时钟震荡频率的1/12,当单片机接入24晶振时,每一个机械周期T1=1(S)/24M*12=,能够知足要求。AT89S52 内部资源也比较丰硕,有8k字节Flash,256 字节 RAM,32 位 I/O口线,看门狗按时器,2个数据指针,三个16 位按时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路,足能够知足本设计要求,而且该单片机运行稳固靠得住性高,本钱低,基于此在本设计当选用了单片机实现方式。 2) FPGA/CPLD实现
在现代电子设计领域,VHDL和现场可编程逻辑器件的普遍应用使数字系统设计更为灵活,大大缩短了开发周期。FPGA(现场可编程逻辑门阵列)是新型的高密度可编程逻辑器件。它是可编程阵列逻辑(PAL),门阵列逻辑(GAL)等逻辑器件的基础上进展起来的,同以往的PAL,GAL想比较,FPGA的规模较大,适合于时序,组合等逻辑电路应用处合,它能够替代几十乃至上百块通用ASIC芯片,这种芯片具有可编程性和实现方案容易改动的特点。FPGA器件的主要长处:功能集成度高,系统设计快,设计灵活,靠得住性高,费用低。这种高速资源壮大的芯片固然也能够知足本设计要求,但运用到此设计中,其内部资源利用率低,本钱还相对较高。
方案选择
综合以上考虑肯定本设计实施方案,基于AT89S52芯片采用软件方式实现编解码,所要实现的曼彻斯特码格式如图2,包括三部份,同步字、数据、校验位:
图2 帧数据格式
a.产生同步字,同步字发射时钟跟大体时钟一致,从图1曼彻斯特码格式中能够看出,无论是数据同步头仍是命令同步头都是占三个位周期(),若是咱们每半个位周期(T/2)即25us对同步头电平实时检测一次,就可以够取得一个六位的数据来表示同步头,“111000”表示命令同步头,“000111”表示数据同步头。相反咱们将这
六位数据以每半个位周期(T/2)即一个大体时钟周期发射一名的速度发射出去,就会取得相应的同步头。
b.数据的编码和解码,由32个大体时钟组成一个曼彻斯特编解码时钟,编码时,编码时钟的前半周期输出NRZ码的原码,后半周期输出NRZ码的反码,从而实现编码;解码时,解码时钟的1/4和3/4时钟处对同意到的电平采样,检测前后两个半周期的值,若由“0”变成“1\"表示“0\",而用它的反相波形由“1”变成“0”表示“1”。
c.产生并发送校验码,将前面要发送的16位数据异或就取得奇偶校验位,当第16位数据输出完后,按b的方式发送奇偶校验位;一样解码端按b方式解码奇偶校验位,解码完毕,又将前面解码的16位数据异或,取得的值与奇偶校验位比较,看是不是相等,若等,就表示接收的数据没错误,反之,则有错误,相应发犯错误信号。
编码
编码进程具体可分为三部份:(1)检测编码周期是不是开始,并辨别同步字信号
(命令/数据)产生相应的同步信号;(2)对16位数据进行编码;(3)附加奇偶校验位,编码周期结束。编码器结构框图如下:
定 时器 计数器 取出第五位串行输出 编码周期开始前读入命令头数据偶数周期取反,右移一次 发送缓冲区 chPointNum ==15 (chPointNum&1)==0 中间发送缓冲区 (chPointNum&1)==1
并行数据输入
图3 编码器结构框图
发送一帧数据,第一将命令头/数据头放在发送中间缓冲区MidBuff中,初始化计数变量chPointNum,奇偶查验位bOdd,初始化按时器,启动按时器T0。编码周期开始:每进入一次按时中断,就将中间缓冲区的第六位MidBuff^5掏出,发送出去,发出半位数据以后,MidBuff右移一名,在进入第奇数个按时中断时,将发送缓冲区SendBuff的最高位掏出来放在发送中间缓冲区的最低位并通过按位与求的奇偶校验
位bOdd,若是在进入偶数个按时中断时,咱们将SendBuff的最高位反向后放在发送中间缓冲区的最低位,并将发送缓冲区SendBuff右移一名。在进入16个按时中断时,前半字节数据发送完毕,现在将要发送的的下半字节数据放在发送缓冲区中,通过37个按时中断周期,将一帧数据完整的编码发送出去。
解码
解码的进程分为三个部份:(1)检测同步字;(2)解码;(3)查验传输是不是正确并扣除同步字。
解码的关键在于第一必需检测出同步字,才可开始解码周期,故解码器必需不断地监视输入数据是不是已有同步字。以接收数据为例,前面章节已经讨论过,当每一个大体时钟周期(半个位周期)检测一次同步头电平,数据同步头能够表示为“000111”,当检测到输入脚出现低电平说明可能有数据输入,检测低电平以后出现的高电平有几个大体时钟周期数chPointNum来判断是不是是出现同步字,若chPointNum为三个或四个按时周期说明是检测到同步字,chPointNum为4,则说明传输的第一名数据是1而且在延时一个同步头检测周期再跳出。在检测到正确的同步头以后开始解码周期,由于曼码中由‘0’到‘1’跳变表示0,由‘1’到‘0’跳变表示1,说明在曼码信号中前半个周期电平代表实际传输的数据。在解码进程中定是周期为同步头检测按时周期的两倍,每接收到8位数据存储一次。
编码器与解码器独立工作,编码器按数据编码的方式产生一个同步脉冲和校验位;解码器识别同步脉冲、解码数据并检查校验位,恢复数据。解码整体框图如下:
chPointNum ==16 计数器 检测同步头 定时器 根据计数器值来确定第一位数据 chPointNum&==8 存储接收到的高位字节 存储接收到的低位字节 图4 解码器结构框图
3 硬件电路设计
系统实物照片展示
图5 系统实物照片
系统的硬件框图
上位机 AT89S52 曼彻斯特编解码 上位 机调理电 路 下位机调理电路 下位机 AT89S52 曼彻斯特编解码 PC机 串口通讯 模块 按键 命令切换 LCD显示液位H,命令显示 控制信状态指示 LCD显示液位高度H,命令显示 Adr[0..3] D[0..7] 号 FPGA频率测量模块 高精度频率测量 f 液位信号采集模块 继电器驱动 控制电路 Nios 传感器 f信号处理
油水界面 图6 地下液位测量系统硬件框图
如图6,该地下液位测量系统主要有六个部份组成:PC机控制和显示部份,上位机,下位机,曼码调理电路,FPGA频率测量模块和地下液位信号收集模块。
PC机控制和显示部份:在PC机上用Labview软件来制作显示液位高度的实时画面和测量数据。通过不同的按键来设计液位测量和仪器自检的命令控制。从而将整个系统中需要测量的数据及相关信息在Labview界面中展现出来,同时也能够控制下位机操作。
上位机:由AT89S52单片机组成,用串口与PC机通信,用曼彻斯特编码及按键切换命令来实现数据及命令的收发,同时向LCD输出液位高度和所收发的命令。是实现液位信息远距离传输的组成部份。
下位机:由AT89S52单片机组成,用曼彻斯特编码来实现数据及命令的收发,同时向LCD输出由FPGA测量的频率信号同时有指示灯来指示下位机处于数据接收仍是发送的状态。可通过命令来控制是校验仍是测量液位高度。是实现液位信息远距离传输的组成部份。
曼码调理电路:连接在上位机和下位机之间以实现信号的收发及处置。该电路能够将所测的频率信号通过紧缩,放大从而处置掉误差信号和外部干扰,使有效信号不失真的远距离传输。
FPGA频率测量模块:该模块是将地下液位信号收集模块收集来的频率信号精准的测量出来,用Nios II作为系统控制单元,实现等精度的测量使液位信息能够精准的反映出来。
地下液位信号收集模块:该模块有3部份组成,别离是传感器,555方波产生电路,信号处置电路和继电器驱动控制电路。传感器是由一根比较粗的铜丝和一个钢管组成一个电容,固定其两极板间的距离。因此液位高度的转变引发电容值大小的转变再通过555方波产生电路输出不同频率值的方波,经74s08处置出来的方波信号再传给FPGA。通过继电器驱动控制电路来控制系统自检与液位高度测量的切换。
该系统整体工作流程: PC机通过串口发送死令给上位机,接收上位机传输的液位数据并显示出来;上位机将接收到命令编码发送以后,通过曼码调理电路传输到下位机,接收下位机传输的液位编码信号,解码数据并通过LCD显示出来;下位机接收到上位机的命令信号以后,按照不同的命令发出一个继电器控制信号,选择测量或校验状态,并向FPGA频率测量模块读取频率数据信号,通过LCD显示以后,将数据信号编码发送到上位机;FPGA频率测量模块主如果向液位收集模块收集一个频率信息。
该系统是在电子信息学院吴爱平老师的指导下,和另外一名同窗一路完成硬件的制作。我主要负责曼彻斯特编码通信这一块,包括与PC机控制和显示部份,上位机,下位机,信号调理电路这四个部份的制作。
AT89S52单片机简介
AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有8K 在系统可编程 Flash 存储器。利用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位 CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗按时器,2个数据指针,三个16 位按时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、按时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保留,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52单片机管脚图如下:
图7 AT89S52管脚图
P3口亦作为AT89S52特殊功能(第二功能)利用,如下表所示。
表1 P3口管脚第二功能表
端口引脚 第二功能 RXD 串行输入口 TXD 串行输出口 INT0 外部中断口1 INT1 外部中断口2 T0 定时/计数器0 T1 定时/计数器1 WR 外部数据存储器写选通 RD 外部数据存储器读选通
单片机外围电路
复位电路
AT89S52单片机复位高电平有效,其有效电平应维持至少2个机械周期。为了便于最后调试,在该设计中上下位机都是采用按键手动复位电路。复位电路如下:
图8 按键手动复位电路
复位操作有上电自动复位和按键手动复位两种。上电自动复位时通过外部复位电容充电来实现的,如上图通过在VCC和RST之间加一个10uf的电容,RST和地之间加一个10K的电阻就可以够实现自动复位。原因是电容电压不能突变,在上电后9脚在电容的作用下电压当即变高且会维持低短时刻,即实现了高电平复位。
按键复位电路是在上电自动复位电路的基础上增加一个按键S1和一个电阻R11来实现的,它不仅具有上电自动复位的功能,在按下按钮后,电容C通过R11放电,同时电源上大部份电压见落在R12上,从而使RST端取得一个高电平致使单片机复位。
键盘设计
由于方便测试(测试时只是用按键发送死令),在上位机上设置了两个独立按钮,它们别离实现切换命令,和重复发送死令功能。键盘电力如下:
图9 键盘电路
键盘中每一个按键都是一个常开关电路,当键未被按下时,输入为高电平;当键闭和时,输入为低电平。通常的按键所用的开关为机械弹性开关,当机械触电断开、闭和时,电压信号波形不稳固。由于机械触电的弹性作用,一个按键开关在闭和时不会马上稳固地接通,在断开时也不会马上断开。因此在闭和和断开的刹时均伴随有连续串的抖动。抖动时刻的长短由按键的机械特性决定,一般为5-10ms,这是一个很重要的参数,在很多场合都要用到按键的闭和稳固时刻的长短由操作人员的按键动作决定,一般为零点几秒到数秒。键抖动会引发一次按键被误读多次,为了确保单片机对键的一次闭和仅做一次处置,必需去除键抖动,在键闭和稳固时取键状态,而且必需判别到键释放稳固后再做处置。
液晶显示器接口设计
点阵式液晶显示器是新一代的液晶显示器,它通过液晶点阵的组合能显示大量的字符、曲线及图形,所以它能提供的显示信息量超级大,相应它的接口与控制电路都超级复杂。可是生产厂家通常都给点阵液晶模块本身配有智能型接口控制电路及字符存储器,所以用户只对点阵液晶模块进行控制,利用起来也超级方便。目前点阵式液晶模块分为两类:一类为字符型液晶显示模块,另一类为字符、曲线、图形液晶显示模块。
本系统的显示单元选用的是精电蓬远公司的MDLS16265B点阵字符液晶显示模块,显示屏是以16╳2个5╳8点阵块组成的显示字符群。每一个点阵块为一个字符位,字符间距和行距都为一个点的宽度。MDLS16265B具有字符发生器ROM(CGROM)可显示192种字符,而且具有64个字节的自概念字符RAM(CGROM),可自概念8个5╳8点阵字符。该模块单+5V电源供电,结构紧凑、装配容易,低功耗、长寿命,高靠得住性。其电源电流工作是最大只有。接口特性如表2:
表2 MDLS16265B液晶显示模块接口特性表
引脚号 符号 状态 功能 1 Vss 电源地 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Vdd VO RS 5V逻辑电源 液晶驱动电源 输入 寄存器选择 1:数据;2:指令 R/W 输入 使能信号 E 输入 使能信号 1:读取信息; 1到0执行指令 DB0 三态 数据总线 DB1 三态 数据总线 DB2 三态 数据总线 DB3 三态 数据总线 DB4 三态 数据总线 DB5 三态 数据总线 DB6 三态 数据总线 DB7 三态 数据总线 E1 输入 背光电源 E2 输入 背光电源 液晶显示模块的接口方式有很多种,本系统选用的8位数据线的I/O线选连接方式,显示单元的接口如图10:
图10 显示单元的接口电路
上位机与PC通信设计
在本设计中,利用PC机通过串口通信发送死令给上位机,然后接收上位机返回数据。
与微机进行串行通信时,要求通信两边都采用一个标准接口,使不同的设备能够方便地连接起来进行通信。 EIA RS-232C串行接口是微机系统中常常利用的外部总线标准接口,它的规范标准收录在美国电子工业协会工程部的建议标准第232号修改版C中,故称之为EIA RS-232C。
由于RS-232C是初期为增进公用电话网络进行数据通信而制定的标准,为了增加抗干扰能力,接口的电气特性采用负逻辑关系,与TTL、MOS逻辑电平完全不同。逻辑0电平规定为+3~+15V,逻辑1电平为-3~-15V之间,过度不肯定区-3~+3V,允许发送器和同意器之间的噪声容限为2V。RS-232C驱动器与TTL电平连接必需通过电平转换,这由专门的电平转换芯片来实现。RS-232C信号传输的最大电缆长度为30米,数据传输率有:50,75,110,150,300,600,1200,2400,4800,9600等标准的波特率。
RS-232C接口的机械指标规定RS-232C接口通向外部的连接器一般利用两种型号的接口 DB-9的9芯插头座、 DB-25的25芯插头座。在本系统与PC机连接的RS-232C接口,采用DB-9的9芯插头座,不利用微机传送的控制信号,共连接了三条接口线,即“发送数据”、“接收数据”和“信号地”,传输线采用屏蔽双绞线。RS-232C常常利用信号线见表3:
引脚号 8 3 2 20 7 6 4 5 22 表3 RS-232C接口常常利用引线信号概念、分类及功能 信号名称 简称 引脚号 信号名称 简称 1 数据载波检测 DCD 数据载波检测 DCD 接收数据 发送数据 数据终端就绪 信号地 数传设备就绪 请求发送 清除发送 振铃指示 RxD TxD DTR GND DSR RTS CTS DELL 2 3 4 5 6 7 8 9 接收数据 发送数据 数据终端就绪 信号地 数传设备就绪 请求发送 清除发送 振铃指示 RxD TxD DTR GND DSR RTS CTS DELL 本设计采用德州仪器公司( TI)推出的一款兼容RS232 标准的芯片。该器件包括2 驱动器、2 接收器和一个电压发生器电路提供TIA/EIA-232-F 电平。该器件符合TIA/EIA-232-F 标准,每一个接收器将TIA/EIA-232-F 电平转换成5-V TTL/CMOS 电平。每一个发送器将TTL/CMOS 电平转换成TIA/EIA-232-F 电平。
该产品是由主要特点
1.单5V 电源工作
2.LinBiCMOSTM 工艺技术 3.两个驱动器及两个接收器 4.±30V 输入电平
5.低电源电流:典型值是8mA
6.符合乃至优于ANSI 标准EIA/TIA-232-E 及ITU 推荐标准 7.ESD 保护大于MIL-STD-883(方式3015)标准的2000V
C1+ 1 V+ 2 C1- 3 C2+ 4 C2- 5 V- 6 T2OUT 7 8 16 Vcc 15 GND 14 T1OUT 13 R1IN 12 R1OUT 10 T2IN 9 Max232 11 T1IN
主控的上位机单片机与PC机的串行通信接口通过MAX232实现电平转换,电路接口原理图如图12
图12 串口通信接口电路图
信号调理电路
信号调理电路结构框图
信号调理电路 上位机 Pout10 Pout11 In2 信号调理电路 信号调理电路 上行数据处理 In1 Pout21 Pout20 下位机
下行数据处理
图13 信号调理电路结构框图
工作原理:
在上位机和下位机两头各有一个信号调理电路,下位机的信号通过调理电路的处置,信号通过紧缩以消除噪声信号,再放大以后保证有效信号不失真地传输,经远距离传输到上位机的调理电路中,从而在上位机和PC上显示下位机的信息。同理,PC和上位机的信号也已一样的方式使信号不失真传输到下位机,实现双向通信。
信号调理电路部份原理图
图14 信号调理电路原理图
该原理图为实际电路原理图的一半,下面就以下行数据传输(命令传输)来讲明该电路的功能。命令信息通过差分输出以后,一路接接到PCM+,另一路接到PCM-,通过三极管隔离,变压器升压,信号传输到OUTPCM+和OUTPCM-,然后信号经远距离传输进入下位机信号调理电路的OUTPCM1+和OUTPCM1-,再通过变压降压,然后传输到PCMINT1+和PCMINT1-,然后信号通过紧缩,减低噪声干扰,以后放大取得有效信号,稳压以后接到下位机的接收引脚,实现了命令的传输。
4 软件设计
资源利用
寄放器
1)看门狗按时器WDT
看门狗按时器的作用是当器件由于程序错误、电气噪声或干扰而进入错误状态时,在一按时刻后产生一个复位或中断信号。当WDT控制寄放器(WDCON)中WDE位置“0”时,禁止看门狗按时器功能,不然,当WDE置“1”时,看门狗有效,现在若是用户程序在预设的数据距离内没有刷新看门狗按时器的值,那么WDT电路将产生一个系统复位信号或中断信号(WDIR位)。WDT本身是一个16位计数器,它由PLL直接提供时钟(fPLL=32.768kHz)。WDT的溢出时刻能够通过WDCON中的PRE3~PRE0位设置。WDT的所有控制、状态操作都是通过控制专用寄放器(WDCON)完成。 2)按时器 0 ,按时器 1,按时器2
在 AT89S52 中,按时器0按时器1的操作与AT89C51和AT89C52中一样。 按时器 2是一个16位按时/计数器, 它既能够做按时器,又能够做事件计数器。其工作方式由特殊寄放器T2CON中的C/T2位选择。按时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表4所示,工作模式由T2CON中的相关位选择。按时器 2 有 2个8位寄放器:TH2和TL2。在按时工作方式中,每一个机械周期,TL2 寄放器都会加 1。由于一个机械周期由12个晶振周期组成,因此,计数频率就是晶振频率的1/12。
RCLK+TCLK 0 0 1 X
表4 按时器2工作模式
CP/RL2 TR2 0 1 1 X X 1 1 0 MODE 16位自动重载 16位捕捉 波特率发生器 (不用) 单片机高级语言KEIL C51
本系统电路设计中,采用单片机高级语言Keil C51编写程序,对硬件进行操作。 随着运算机技术的进展和集成电路工艺的改良,普遍用于工业测控领域的单片机性能日趋提高,对于单片机应用系统的开发要求已从单纯追求程序代码优化、硬件操作方便,进展到提高编程效率、实时多任务并行操作等现代化编程手腕,采用高级语言编程已成为当前单片机应用系统的进展趋势。
与其它运算机高级语言相较,C语言具有它自身的特点。C语言更适合于编写运算机的操作系统程序和其它一些需要对机械硬件进行操作的场合,有的大型应用软件
也采用C语言进行编写。主要因为C语言具有专门好的可移植性和硬件控制能力,表达和运算能力也较强。C语言具有以下一些特点:
1.语言简练,利用方便灵活。 2.可移植性好。 3.表达能力强。 4.表达方式灵活。
5.可进行结构化程序设计。 6.能够直接操作运算机硬件。 7.生成的目标代码质量高。
软件平台
本设计中软件平台主要基于Proteus电路仿真软件,Keil uvision3 C51编译器,和Altium Designer 6硬件电路设计软件。
在曼彻斯特编码电路设计初期,需要进行一些必要的电路仿真,如单片机最小按时周期的检测,信号调理电路设计,lCD1602接口设计及其驱动程序的调试。利用Proteus电路仿真软件进行电路软件仿真,方便快捷地设计完成一些模块电路和模块软件设计,大大提到设计效率。
uVision3是KeilSoftware公司推出的一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑和改良的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。另外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态转变下的程序变量。uVision3提供对多种最新的8051类微处置器的支持,包括AnalogDevices的ADuC83x和ADuC84x,和Infineon的XC866等。该编译器支持与Protues电路仿真软件联调和在线硬件调试,这为设计者提供了方便的程序编译调试环境。
Altium Designer 是业界首例将设计流程、集成化PCB 设计、可编程器件(如FPGA)设计和基于处置器设计的嵌入式软件开发功能整合在一路的产品。是经典电路设计软件Protel的最新升级版本,内部带有丰硕的原理图库文件和封装库文件。相对于Protel其具有更壮大的设计功能,支持多国语言(中文、英文、德文、法文、日文),任意字体和大小的汉字字符输入,光标跟从在线信息显示功能,光标点可选器件列表,总线布线功能,器件精准移动,快速铺铜等功能。 交互式编辑、犯错查询、布线和可视化功能,从而能更快地实现电路板布局,支持高速电路设计,具有成熟的布线后信号完整性分析工具。在本设计硬件制作进程中,上位机系统模块,信号调理模块,下位机系统模块的原理图绘制,和PCB板设计都是在次软件环境下完成的。
曼彻斯特码编解码方式分析
解码的关键是同步识别的问题,因为只有在识别了同步以后,才能正确肯定数据接收的起始位置,从而正确接收数据。按照曼彻斯特编码格式,同步识别能够通过检测单极性码高、低电平的宽度实现。曼彻斯特码信号通过差分后,线路上将存在三个电平,空闲时的0电平和发送数据时的正、负电平。曼彻斯特码信号处置电路把空闲时的0电平变成正电平,把负电平变成0电平,由此把双极性信号变成单极性信号,便于单片机检测同步。
同步识别的具体方式是:检测单极性码的低电平宽度T1和其后的高电平宽度T2。当检测到低脉冲宽度大于或等于个位周期时,则说明一帧数据开始。同步出现时,T1、T2和数据位宽度T的关系分为以下四种情形:
(1)T1=2T,这是命令同步后跟一名数据0的情形。如下图(a) (2)T1=,T2=,这是命令同步后跟一名数据1的情形。如下图(b) (3)T1=,T2=,这是数据同步后跟一名数据0的情形。如下图(c) (4)T1=,T2=2T,这是数据同步后跟一名数据1的情形。如下图(d)
图15 PCM3508同步识别的四种情形
同步类型肯定后,就可以够肯定随后列位数据的抵达时刻,通过对列位编码按时采样即能够取得其余数据位。
程序流程图
该系统流程图分为上位机程序流程图和下位机流程图。 1) 上位机程序流程图
开始 初始化 命令选择(按键/PC机) 将命令编码,再差分输出 液晶显示命令数据 N 命令是否发送完?Y 是否有下位机数据传N Y 解码,保存在数据缓液晶显示接收的数通过串口将数据传输到PC
图16 上位机程序流程图
程序开始执行以后第一进入初始化,初始化包括命令、数据缓冲区的初始化,液晶驱动初始化,和让液晶显示初始化显示字符“WELCOME!”。进入一个大循环以后,第一执行命令选择函数,通过按键或PC机传送取得命令,然后将命令编码再差分输出,以后用LCD将命令显示出来,判毕命令是不是发送完毕,未完继续发送死
令,若发送完毕则去判断下位机是不是有数据传输上来,有则接收数据,解码并保留到数据缓冲区,以后通过液晶将数据显示出来,并通过串口传输到PC机上显示。 2)下位机程序流程图
开始 初始化 N 是否有上位机命令发送? Y 解码,保存在命令缓冲区 液晶显示接收的命令 模式选择(校验/检测) 发出继电器控制信号 N 是否读取频率信号? Y 向FPGA模块读取数据 液晶显示采集的数据 将数据编码,再差分输出 N 数据是否发送完毕? Y
图17 下位机程序流程图
程序开始执行以后第一进入初始化,初始化包括命令,数据缓冲区的初始化,液晶驱动初始化,和让液晶显示初始化字符“WELCOME!”。初始化以后去判断有上位机命令下来,没有命令则返回继续检测是不是有命令数据传入,如有则接收命令,将命令解码以后寄存在命令缓冲区当中,并通过液晶显示出来,下一步进入模式选择函数,按照接收到的命令发出一个继电器驱动信号选择校验模式或测试模式。然后判断是不是要向FPGA测量模块读取频率数据,是则读取数据,将数据寄存在数据缓冲以后,第一通过必要处置将频率数据显示在LCD上,然后将数据编码,差分输出,发送完毕则返回检测是不是有命令输入,若不读取数据则返回检测是不是有命令输入。
编码实现
实现同步头编码
编码信号中的同步头如图 18 所示:
图18 同步头格式
同步类型有两种,都占用3个位周期。先高电平后低电平的为命令同步,各点平宽度均为个周期(三个大体周期),反之则为数据同步。文章中前面已经说明过,当咱们以半
个位周期(一个大体按时周期)来检测同步头,命令同步头可表示为“111000”,数据同步头可表示为“000111”,通过把这一串数字作为一个字节数据先放入发送中间变量MidBuff中,然后每次将该变量的第六位掏动身送出去,通过六个大体按时周期,就可以够将同步头全数发送出去,以后再进入数据发送了。 主要变量说明:
char bdata SendBuff; 开始 进入中断 定时周期变量加1 检测同步头 N 数据是否同步? 将自概念字符写入 CGRAM 2.再将 CGRAM 中的自概念字符送到 DDRAM 中显示
查看LCD1602的CGROM字符代码表,能够发觉从00000000B~00000111B,(00H~07H)地址的内容是没有概念的,它是留给用户自己概念的,用户能够通过先概念 LCD1602 的 CGRAM 中的内容,然后就可以够同挪用 CGROM 字符一样来挪用。
void write_cgram(unsigned char adress,unsigned char *p) {
char i;
for(i=0;i<8;i++)
{ write_instruct(adress+i); write_data(p[i]); } } 6)显示CGRAM(自概念字符)数据
106电器有驱动电路却不能正常工作。
咱们仔细查阅了相关资料,发觉驱动电路设计不对,改良继电器驱动电路,继电器能够正常工作。修改后的驱动电路如下:
图22 继电器驱动电路
2. FPGA不能有效识别单片机输出的地址信号。
在肯定单片机地址信号输出脚概念和FPGA接收地址信号的引脚概念无误,可
是单片机通过改变地址读取FPGA中信息时,结果显示接收的数据一直不变,说明FPGA不能有效识别单片机输出的地址信号,最后通过检查,发觉问题在于开发板引脚标注不对。那个问题似乎很小,可是说明了一个很重要的规则,在硬件制作中每一个环节都必需要仔细检查。
软件部份
1.在频率测量时,通过继电器的切换不同频率值而LCD显示却不能变换成当前频率值。
解决方式:单片机程序中,将数据送往显示用的h,e在循环一次后一直为零,没有从头赋初值。
显示屏高位没有清零,当测高频率后再测低频率高位消失不了。 解决方式:在频率显示完加一个清屏命令。
3.在系统联调的进程中,(那时频率信息以整数显示)发觉测量值与实际值相差专门大。
解决方式:通过仔细检查程序,发此刻数据处置进程顶用到的一个用来寄存两个数据相除结果的中间变量,其数据类型设置为了整型,如此使结果小数部份数据全数丢失掉了,最后致使测量误差较大。解决方式就是把该中间变量的数据类型改成浮点型数据。
整体联调部份
1.下位机测的频率值与实际值(示波器测量值)误差专门大,不能准确测其频率,可是信号发生器输出的方波信号却能准确测量。
解决方式:经检查发觉74ls00把FPGA测量模块的输入电压拉到低于(2V左右)不能正常测量频率值,改换FPGA的输入端口,原端口可能烧坏。
2.当液位深度收集模块的地与其他模块共地时,测量的液位深度有专门大的误差;当与示波器共地时,测量的液位深度就较稳固。
解决方式:将555输出的方波信号经74ls00整形的74ls00换成74s08。输出波形稳固,与地接在何处没有关系。输出的液位深度也很稳固。看技术资料发觉,74s08带负载能力比74ls00强。
改良方向
通过吴爱平老师和咱们的尽力,虽然该地下液位测量系统初见成效,但由于时刻紧迫,还有很多需要继续进展与改良的地方:
1 .在PC机上用Labview界面将该系统的相关液位信息和控制命令更直观的展示出来。 2 .用UART实现系统与PC机进行通信。串口通信部份程序已经编写,可是没有与硬件结合。
3 .将调理电路加入整个系统中实现远距离数据及命令控制。 4 .在命令切换控制方面更灵活。
参考文献
[1] 徐爱均编著.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社.2000
[2] 徐爱均编著.单片机原理利用教程.北京:电子工业出版社.2009
[3] 吴爱平.基于FPGA的等精度频率计的设计.石油仪器,2005,(4):17~19 [4] 谭浩强 编著.C语言程序设计 北京:清华大学出版社. 2005 [5] 康华光.模拟电子技术基础.北京:高等教育出版社.1991
[6] 康华光.数字电子技术基础. 北京:高等教育出版社.1991 [7] 孙传友编.感测技术基础 . 北京:电子工业出版社.2001
[8] 马忠梅等编著.单片机的C语言应用程序设计.第一版.北京:北京航空航天大学出版社. [9] 张培仁等编著.基于C语言编程MCS-51单片机原理与应用.第一版.北京:清华大学出
版社.2002
[10] 何立民编著.单片机应用技术选编(5).第一版.北京:北京航空航天大学出版社.
[11] 郭观七编著.基于C语言的MCS-51系列单片机软件开发系统.第一版.武汉:华中理工
大学出版社.
[12] 王福瑞等编著.单片微机测控系统设计大全.第一版.北京:北京航空航天大学出版社. [13] 马忠梅等编著.单片机的C语言应用程序设计.修订版.北京:北京航空航天大学出版社. [14] 孙传友编 .测控系统原理与设计. 北京:北京航空航天大学出版社. 2001
致谢
第一我要在这里感激我的家人,没有他们对我的抚育和教育,没有他们在经济上对我的支持,我不可能坐在这里学习,更不用说毕业设计。他们给予我的爱、理解、关心和支持是我不断前进的动力。
在毕业设计的整个进程中,指导老师吴爱平老师一直给予我专门大的帮忙和支持。他凭着深厚的学识,超强的能力,丰硕的经验,严谨的治学态度对我的毕业设计做了详细认真的指导,在做毕业设计期间,我常常需要请教吴老师一些问题,他总能够不厌其烦的解答我的疑问。在学习方式方面,鼓励我培育自学能力,碰到一些问题要多试探,同时鼓励咱们致力于专业钻研,打好扎实基础。在此谨向指导老师致以我最真挚的敬意和衷心的感激!
在地下液位测量系统硬件的制作进程中,和黎学超同窗一路配合协作,彼此鼓励,使得最终达到了大体效果,再次一并感激!在做毕业设计期间,罗明章老师也对我的毕业设计给予专门大的帮忙,提出了许多专门好的建议,我在这里表示感激。最后向所有关心和帮忙过我的人致以衷心的感激,祝你们一生安康!
在这离校的时刻,我衷心祝愿列位老师:身体健康,万事如意,工作顺利!
2010年6月6日
附录1:地下液位测量系统实物照片
附录2:系统模块原理图及PCB图
上位机原理图
下位机原理图
上位机PCB图
下位机PCB图
调理电路原理图
附录3:曼彻斯特编解码部份原程序
1.上位机主程序清单 void main() {
uchar D[m1]={0};
uchar D2[m2]={0};
D[6]='\\0'; D2[10]='\\0';
lcd_init(); delay(50);
display_str(0,0,table0);delay2(400);
display_str(0,0,\" \"); while(1) { }
2.下位机主程序清单
}
SwichCom();
display_str(0,0,table2);delay2(100); while((Flag==2)&&(Flag2==0)) {
LED_S=0;SendData();
delay1ms();sbPOut1=1;
temp++;D[0]=0+48;.....\");delay2(40);
} } sbPIn=1;
LED_R=1;
void main() { unsigned long Ns=0; unsigned long Nx=0; double Stemp=0; uchar D[m1]={0};
uchar D2[m2]={0}; D2[10]='\\0';D[6]='\\0';DAd=0x40; lcd_init();delay(50); while(1) {
SwichCom();.....\");delay2(40); } }
display_str(0,0,table1);delay2(4); while((Flag==3)&&(Flag2==0)) { LED_S=0;SendData();delay30ms(); sbPOut1=1;temp++;delay5ms(); if(temp==36)
{ Flag2=1; temp=0; LED_S=1;
}
} if(!sbPIn) {
LED_R=0;Flag=1;
GetGroupData();
显示\"R_CN:\" //发送一行数据 // Flag2=2; LED_R=1;
D[1]=88;
D[0]=0+48;
D[2]=DataToTop[0]/16+48; if(D[2]>57)D[2]=D[2]+7; D[3]=DataToTop[0]%16+48; if(D[3]>57) D[3]=D[3]+7; D[4]=DataToTop[1]/16+48; if(D[4]>57) D[4]=D[4]+7; D[5]=DataToTop[1]%16+48; if(D[5]>57) D[5]=D[5]+7;
}
display_str(0,5,D); sbPIn=1;
}
//显示接收的命令数据
//将数据接收引脚置高
附录2:系统模块原理图及PCB图 ......................................... 40 附录3:曼彻斯特编解码部份源程序 ....................................... 44
因篇幅问题不能全部显示,请点此查看更多更全内容