毕业设计(论文)基于AT89C51单片机的多数据采集系统设计_第1页
毕业设计(论文)基于AT89C51单片机的多数据采集系统设计_第2页
毕业设计(论文)基于AT89C51单片机的多数据采集系统设计_第3页
毕业设计(论文)基于AT89C51单片机的多数据采集系统设计_第4页
毕业设计(论文)基于AT89C51单片机的多数据采集系统设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要本文介绍了基于数字温度传感器ds18b20的多数据采集系统设计。本次实训我组做的是:多数据采集系统,主要是一个以单片机作为主控机,多个单片机(at89c51)作为从机构成的rs-485总线多数据采集系统。单片机组成的各个节点负责采集终端设备的状态信息,即采集温度和电压;主控机以轮询的方式向各个节点获取这些设备信息,并根据信息内容进行相关操作。系统通信总线使用rs-485总线标准,可获得较远的通信距离和较好的抗干扰性。关键词:多数据采集;at89c51单片机;max485;ds18b20 abstract this article describes the digital tempera

2、ture sensor based on multi-ds18b20 data acquisition system. the training i do is set: multiple data acquisition system is mainly a microcontroller as the host computer, a number of microcontroller (at89c51), as from the body into the rs-485 bus data acquisition system and more. single chip each node

3、 is responsible for collecting the status information terminal equipment, the collection temperature and voltage; way to the main computer to poll each node to obtain the device information, and related operations according to information content. system communication bus using the standard rs-485 b

4、us, get far better communication distance and interference.keywords: multiple data collection;at89c51 microcontroller;max485;ds18b20- 10 -目 录引言11 串行接口知识11.1 串行通信简介11.2 51单片机串口的多机通信功能22 各种芯片简述221 温度传感器ds18b20简介22.1.1 ds18b20工作原理32.1.2 ds18b20的使用注意事项32.2 rs-485标准43 硬件设计53.1 主机电路63.2 从机系统电路64 软件设计74.1

5、协议设计74.2 从机程序流程74.2 主机程序流程85 扩展部分86 心得体会8谢 辞9参考文献10引言随着数字控制技术的发展,由由单片机构成的控制系统也日益复杂。在一些要求响应速度快、实时性强、控制量多的应用场合,单个单片机构成的系统往往难以胜任,这时由多个单片机结合pc组成分布式系统成为一个比较好的解决方案。在这样的分布式系统中,可以使用rs-232总线连接pc和单片机,但由于rs-232总线标准存在传输速率慢、传输距离短的缺点,很多时候无法满足工业应用中多机系统的通信要求,因此实际应用中经常使用的是rs-485总线标准。rs-485总线在工业应用中具有十分重要的地位。rs-485总线协

6、议可以看做是rs-232总线协议的替代标准,与传统的rs-232总线协议相比,rs-485总线在通信速率、传输距离、多机连接等方面,均有了非常大地提高,这也是工业系统中使用rs-485总线的主要原因。由于rs-485总线是rs-232总线的改进标准,所以在软件设计上它与rs-232总线基本上一致,如果不使用rs-485总线芯片提供的接收器、发送器选通的功能,为rs-232总线系统设计的软件部分完全可以不加修改直接应用到rs-485总线网络中。rs-485总线工业应用成熟,而且大量的已有工业设备均提供rs-485总线接口。1 串行接口知识1.1 串行通信简介串行通信的实现,在制式、种类、形式、规

7、范、标准、编码、检错、纠错、帧结构、组网方式、调制方式、主要用途等许多方面,存在着多种类型、变化、选择和解决方案等问题。例如:smbus总线、spi接口、microwire接口、1-wire总线、rs-232rs-485rs-422接口、usb总线、ieee-1394总线、ff总线、lonworks总线、profibus总线、controlnet总线等等,都是用来实现与串行通信功能相关的技术和规范。串行通信是指通信双方的信息(二进制编码)一位接一位传送的通信方式。与并行通信相比,这种通信方式虽然速度较慢,但传送距离长,而且使用的数据线少(最简单的串行通信只需要两根信号线和地线即可),节约通信成

8、本,因此常应用于需要长距离通信而又对速度要求不高的场合。串行通信的通信方式共有单工、半双工、全双工三种。如果在通信过程的任意时刻,信息只能由一方a传到另一方b,则称为单工;如果在通信过程的任意时刻,信息既可以由a传到b,又能由b传到a,但由于两个通信方向使用同一条信道,因此在同一时间只能有一个方向上的传输存在,这种传输方式称为半双工,在该方式下,收发方向主要是通过软件协议来控制的,接收和发送只能交替进行;如果在任意时刻,线路上可以存在a到b和b到a的双向信号传输,此时两个方向的信号使用不同的信号,二者不会互相干扰,这种传输方式称为全双工。全双工使用了信道划分技术,通信的每一端都包含发送器和接收

9、器,可以同时发送和接收数据。串行通信中,数据传输的方法有两种:一种是异步通信,另外一种是同步通信。异步通信以帧的形式发送字符数据,每一帧信息由起始位、数据位、奇偶校验位和停止位构成。异步通信中,每传送一个字节就要使用起始位和停止位,因此传输速度有限,常用于低速场合。同步通信不同于异步通信,它使用数据块传送信息,而不是字节,因此省去了每个字节的起始位和停止位等数据,提高了通信速率。同步通信在每个数据块的开始使用同步字符,使接收和发送同步。与异步通信相比,同步通信发送的数据量大、速度快,常用于传输速率要求较高的场合。1.2 51单片机串口的多机通信功能51单片机的自带串口专门为这种一点对多点的多机

10、通信提供了识别功能,该功能是利用串口控制寄存器scon的sm2位实现的。当串口以方式2或方式3工作时,发送和接收的每一帧信息都是11位 ,其中第9位数据是可编程的,此位用于区别发送的是地址帧还是数据帧,为1则为地址帧,为0则为数据帧,此位是通过对scon寄存器的tb8位赋值来置位的。若从机的控制位sm2设置为1,则当接收的是地址帧时,数据装入sbuf,并置ri=1,向cpu发出中断申请;当接收的是数据帧时,不产生中断,信息被丢弃。若sm2设置为0,则无论是地址帧还是数据帧都将产生ri=1的中断标志,数据装入sbuf。利用51单片机串口的此多机通信功能可按如下步骤实现点对多点的数据传输:(1)将

11、所有从机的sm2位置1,是使其处于只接收地址帧的状态;(2)主机发送一地址帧,其中前8位数据位表示要求与之通信的从机地址,第9位为1,表示当前帧为地址帧;(3)从机接收到地址帧后,将本机地址与地址帧中的地址进行比较,如果地址相同,则将sm2置0,准备接收数据,否则丢弃当前帧,sm2位保持不变,依然处于只接收地址帧的状态;(4)主机发送数据帧,相应的从机接收数据,数据传输完毕后,从机继续将sm2位置1,回到只接收地址帧的状态,在这一过程中其他从机不受影响;(5)当主机需要与其他从机进行数据传输时,可以再次发送地址帧呼叫从机,重复这一过程。2 各种芯片简述21 温度传感器ds18b20简介 作为一

12、种数字化温度传感器,ds18b20测温时无需任何外部元件,可直接输出912位(含符号位)的被测温度值,测温范围为一55 +125;在一1o+85 范围内测量精度为05 ,输出测量分辨率可调,最高可达0062 5 ;支持“单线总线”技术,仅需要占用一个通用io端口即可完成与单片机的通信;现场温度直接以“单线总线”的数字方式传输,大大提高了系统的抗干扰能力。2.1.1 ds18b20工作原理ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。ds18b20测温原理如图所示。图中低温度系数晶振的振荡频率受温度影响

13、很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。2.1.2 ds18b20的使用注意事项ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几

14、方面的问题:(1)较小的硬件开销需要相对复杂的软件进行补偿,由于ds18b20与微处理器间采用串行数据传送,因此,在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds18b20操作部分最好采用汇编语言实现。 (2)在ds18b20的有关资料中均未提及单总线上所挂ds18b20数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此。当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接ds18b20的总线电缆是有长度限制

15、的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds18b20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在ds18b20发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,程序进入死循环。这一点在进行ds18b20硬件连接和软件设计时也要给予一定的重视。测温电

16、缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。 2.2 rs-485标准 rs-485采用平衡发送和差分接收方式实现通信:发送端将串行口的ttl电平信号转换成差分信号a、b两路输出,经过线缆传输之后在接收端将差分信号还原成ttl电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mv电压。故传输信号在千米之外都是可以恢复。(1)、rs-485 的电气特性: 驱动器能输出7v的共模电压 接收器的输入电阻rin12k 输入端的电容50pf 在节点数为32个,配置了120的终端电

17、阻的情况下,驱动器至少还能输出电压1.5v(终端电阻的大小与所用双绞线的参数有关) 发送端:逻辑1以两线间的电压差为+(2 至6) v 表示;逻辑0以两线间的电压差为-(2 至6)v 表示。接收器的输入灵敏度为200mv(即(v+)-(v-)0.2v,表示信号0;(v+)-(v-)-0.2v,表示信号1) (2)、传输速率与传输距离rs-485 的数据最高传输速率为10mbps,最大的通信距离约为1219m,传输速率与传输距离成反比,在10kb/s的传输速率下,才可以达到最大的通信距离。但是由于rs-485 常常要与pc 机的rs-232口通信,所以实际上一般最高115.2kbps。又由于太高

18、的速率会使rs-485 传输距离减小,所以往往为9600bps 左右或以下。(3)、网络拓扑rs-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。rs-485采用半双工工作方式,支持多点数据通信。rs-485总线网络拓扑一般采用终端匹配的总线型结构。即采用一条总线将各个节点串接起来,不支持环形或星型网络。如果需要使用星型结构,就必须使用485中继器或者485集线器才可以。rs-485/422总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。(4)、连接器rs-485 的国际标准并没有规定rs

19、485 的接口连接器标准、所以采用接线端子或者db-9、db-25 等连接器都可以。(5)rs-232与rs-485的比较 rs-232总线主要存在以下一些缺点:通信速率低,rs-232c规定的最高传输速率为20kbps,这虽然可以满足一般异步通信的需要,但并不能满足同步传输的要求;通信距离短,使用rs-232c接口的通信线路一般只能在15m左右达到正常的通信要求,即使使用极好的器件在极好的信号条件下,通信距离也无法超过60m;抗干扰能力差,通信两端的电平转换电路均为单端电路,无法抑制共模干扰,各信号间也易受到串扰干扰。(6)、rs-232标准的不足经过许多年来rs-232 器件以及通信技术的

20、改进,rs-232 的通信距离已经大大增加。由于rs-232 接口标准出现较早,难免有不足之处,主要有以下四点:1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与ttl 电平不兼容故需使用电平转换电路方能与ttl 电路连接。2) 传输速率较低,在异步传输时,波特率为20kbps。现在由于采用新的uart 芯片16c550 等,波特率达到115.2kbps。3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。4) 传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15米左右。3 硬件设计 系统的硬件设计主要包括两部分

21、:主控机的rs-485总线通信接口以及带有rs-485总线接口的单片机系统。由图可以看出,整个系统分为以下三部分:(1) 主控制部分该部分由pc和rs-485接口设备构成,它负责轮询各个节点以获取信息。(2) 数据采集部分该部分是一个具有rs-485接口的单片机系统,它位于各个终端设备处,响应主控机发送来的查询命令,并将被监控设备的状态信息回送给主控机。它的单片机的i/o端口与被监测得终端设备相连,以获取所需状态信息。(3) 终端设备该部分是被监测的设备,一般为带有传感器的各种具体机器设备,此处我们用的是ds18b20温度传感器作为终端设备。终端设备主控机(单片机)终端设备终端设备rs-485

22、接口单片机系统单片机系统单片机系统rs-485接口rs-485接口rs-485接口 图 单片机rs-485总线多数据采集系统功能示意图3.1 主机电路 主控机的电路主要由单片机最小系统、液晶显示、485总线接口和键盘输入电路组成。3.2 从机系统电路 从机电路主要由单片机最小系统、噪声监控、模/数转换、四分频、亮度和电压等几部分组成 。4 软件设计对于任何涉及通信或者数据交换(本质上也是数据通信)的系统,通信协议的设计都是软件设计的前提和关键。整个系统软件分为主控机端和从机(单片机)端两部分。4.1 协议设计 对于协议设计而言,最重要的就是帧结构的设计。除了帧结构的定义外,整个系统的通信还需要

23、遵守下面的规则: 主控机主导整个通信过程。由主控机定时轮询各个节点处的从机,并要求这些从机提交其相对应设备的状态信息。 主控机在发送完准备好命令后,进入接收状态,同时开启超时控制。如果接收到错误的信息则继续等待,如果在规定时间内未能接收到从机的返回响应帧,则认为从机不在位,取消这次查询。 主控机接收到从机的返回命令帧后,发送“等待接收”指令,进入接收状态,同时开启超时控制。如果接收到错误的信息则继续等待,如果在规定的时间内未能接收到从机的返回信息,则超时计数加1,并且主控机重新发送“等待接收”指令,如果超过3次,则返回错误信息,取消这次查询。 从机复位后,将等待主控机发送指令,并根据具体的指令内容做出应答。如果接收到的指令帧错误,则会直接丢弃改帧,不做任何处理。4.2 从机程序流程从机端软件包括数据采集和rs-485总线通信程序,其中数据采集部分可以设计成一个函数,在主程序中调用即可。4.2 主机程序流程主机端软件主要是进行通信接口部分和数据处理部分的设计。5 扩展部分6 心得体会我想归纳起来,主要有以下四个方面:1、经过这次的课程设计,它让我接触更多平时没有接触过的元器件和相关的仪器调试经验,同时我也发现自己在这方面很多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论