多点数据采集系统-智能电子综合实训 (论文)说明书.doc_第1页
多点数据采集系统-智能电子综合实训 (论文)说明书.doc_第2页
多点数据采集系统-智能电子综合实训 (论文)说明书.doc_第3页
多点数据采集系统-智能电子综合实训 (论文)说明书.doc_第4页
多点数据采集系统-智能电子综合实训 (论文)说明书.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

编号: 智能电子综合实训 (论文)说明书题 目: 多点数据采集系统 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: * 学 号: * 指导教师:* 2011年 01 月 06 日摘 要本文介绍了基于数字温度传感器ds18b20的多数据采集系统设计。本次实训我组做的是:多数据采集系统,主要是一个以单片机作为主控机,多个单片机(stc89c52)作为从机构成的max-485总线多数据采集系统。单片机组成的各个节点负责采集终端设备的状态信息,即采集温度和电压,主控机以轮询的方式向各个节点获取这些设备信息,并根据信息内容进行相关操作。系统通信总线使用max-485总线标准,可获得较远的通信距离和较好的抗干扰性。关键词:多数据采集;stc89c52单片机;max-485;ds18b20;adc0809abstract this article describes the digital temperature 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 (stc89c52), as from the body into the rs-485 bus data acquisition system and more. single chip each node 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 bus, get far better communication distance and interference.keywords: multiple data collection;stc89c52 microcontroller;max-485;ds18b20;adc0809桂林电子科技大学实训论文报告用纸 目 录引言11 设计方案论证11.1 传感器的选择11.2 总线接口的选择1 串行接口知识2.1 串行通信简介2.2 52单片机串口的多机通信功能2 各种芯片简述33.1 温度传感器ds18b20简介33.2 max-485芯片介绍43.3 stc89c52单片机43.4 adc0809芯片简介54 硬件设计64.1 主机电路64.2 从机系统电路75 软件设计75.1 协议设计85.2 奇偶校验85.3 从机程序流程85.4 主机程序流程96 心得体会10谢 辞12参考文献13附 录14附录一从机程序14附录二主机程序17桂林电子科技大学实训论文报告用纸 第 12 页 引言以单片机为核心构成的温度、电压数据采集系统中,往往需要实现单片机与单片机之间的数据交换,这也就是主机与从机的通信。传统的基于rs-232协议的通信由于传输距离短、速度慢、信号易受干扰等不足,使得其应用局限性日益突出,因此本文中用的是基于max-485通信协议,构建max-485通信网络,实现若干主机与从机之间的通信。max-485总线在工业应用中具有十分重要的地位。max-485总线协议可以看做是rs-232总线协议的替代标准,与传统的rs-232总线协议相比,max-485总线在通信速率、传输距离、多机连接等方面,均有了非常大地提高,这也是工业系统中使用max-485总线的主要原因。1 设计方案论证1.1 传感器的选择单片机的接口信号是电数字信号,要想通过单片机获取温度这类非电信号的信息,必须使用温度传感器。温度传感器的作用是将温度信息转换为电流或电压输出,传统的温度检测通常以热敏电阻为温度传感器,但热敏电阻的可靠性差、测量温度准确率低,而且必须经过专门的接口电路转换成数字信号后才能由单片机进行处理。而ds18b20作为一种数字化温度传感器,ds18b20测温时无需任何外部元件,可直接输出912位(含符号位)的被测温度值,测温范围为-55 +125;在-1o+85 范围内测量精度为0.5 ,输出测量分辨率可调,最高可达0.062 5 ;支持“单线总线”技术,仅需要占用一个通用io端口即可完成与单片机的通信;现场温度直接以“单线总线”的数字方式传输,大大提高了系统的抗干扰能力。所以本次实训我组选用ds18b20传感器进行温度和电压采集。1.2 总线接口的选择max-485用在两台或者多台计算机之间远距离或快速的连接,rs-232用在两台计算机之间短距离和慢速的连接。max-485价格便宜,能够很方便地添加到一个系统中,还支持比rs232更长距离,更快的速度以及更多的节点。max-485优点:低成本。max-485只需要一个单一的+5v或者更低的电源来产生差动输出需要的最小1.5v的压差。与之相对应,rs-232的最小5v输出需要双电源或者一个价格昂贵的接口芯片;网络能力好。max-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,利用高阻抗接收器;长距离连接。max-485连接可以最多可达4000ft,rs-232限制在50-100ft;快速。max-485传输速度为10mbps,rs-232传输速度为20kbps。以本次实训我们采用max485芯片实现rs-485总线通信接口电路。 串行接口知识.1 串行通信简介串行通信的实现,在制式、种类、形式、规范、标准、编码、检错、纠错、帧结构、组网方式、调制方式、主要用途等许多方面,存在着多种类型、变化、选择和解决方案等问题。串行通信是指通信双方的信息(二进制编码)一位接一位传送的通信方式。与并行通信相比,这种通信方式虽然速度较慢,但传送距离长,而且使用的数据线少(最简单的串行通信只需要两根信号线和地线即可),节约通信成本,因此常应用于需要长距离通信而又对速度要求不高的场合。串行通信的通信方式共有单工、半双工、全双工三种。如果在通信过程的任意时刻,信息只能由一方a传到另一方b,则称为单工;如果在通信过程的任意时刻,信息既可以由a传到b,又能由b传到a,但由于两个通信方向使用同一条信道,因此在同一时间只能有一个方向上的传输存在,这种传输方式称为半双工,在该方式下,收发方向主要是通过软件协议来控制的,接收和发送只能交替进行;如果在任意时刻,线路上可以存在a到b和b到a的双向信号传输,此时两个方向的信号使用不同的信号,二者不会互相干扰,这种传输方式称为全双工。全双工使用了信道划分技术,通信的每一端都包含发送器和接收器,可以同时发送和接收数据。串行通信中,数据传输的方法有两种:一种是异步通信,另外一种是同步通信。异步通信以帧的形式发送字符数据,每一帧信息由起始位、数据位、奇偶校验位和停止位构成。异步通信中,每传送一个字节就要使用起始位和停止位,因此传输速度有限,常用于低速场合。同步通信不同于异步通信,它使用数据块传送信息,而不是字节,因此省去了每个字节的起始位和停止位等数据,提高了通信速率。同步通信在每个数据块的开始使用同步字符,使接收和发送同步。与异步通信相比,同步通信发送的数据量大、速度快,常用于传输速率要求较高的场合。.2 52单片机串口的多机通信功能52单片机的自带串口专门为这种一点对多点的多机通信提供了识别功能,该功能是利用串口控制寄存器scon的sm2位实现的。当串口以方式2或方式3工作时,发送和接收的每一帧信息都是11位 ,其中第9位数据是可编程的,此位用于区别发送的是地址帧还是数据帧,为1则为地址帧,为0则为数据帧,此位是通过对scon寄存器的tb8位赋值来置位的。若从机的控制位sm2设置为1,则当接收的是地址帧时,数据装入sbuf,并置ri=1,向cpu发出中断申请;当接收的是数据帧时,不产生中断,信息被丢弃。若sm2设置为0,则无论是地址帧还是数据帧都将产生ri=1的中断标志,数据装入sbuf。利用52单片机串口的此多机通信功能可按如下步骤实现点对多点的数据传输:(1)将所有从机的sm2位置1,是使其处于只接收地址帧的状态;(2)主机发送一地址帧,其中前8位数据位表示要求与之通信的从机地址,第9位为1,表示当前帧为地址帧;(3)从机接收到地址帧后,将本机地址与地址帧中的地址进行比较,如果地址相同,则将sm2置0,准备接收数据,否则丢弃当前帧,sm2位保持不变,依然处于只接收地址帧的状态;(4)主机发送数据帧,相应的从机接收数据,数据传输完毕后,从机继续将sm2位置1,回到只接收地址帧的状态,在这一过程中其他从机不受影响;(5)当主机需要与其他从机进行数据传输时,可以再次发送地址帧呼叫从机,重复这一过程。 各种芯片简述3.1 温度传感器ds18b20简介 作为一种数字化温度传感器,ds18b20测温时无需任何外部元件,可直接输出912位(含符号位)的被测温度值,测温范围为55 +125;在1o+85 范围内测量精度为0.5 ,输出测量分辨率可调,最高可达0.062 5 ;支持“单线总线”技术,仅需要占用一个通用io端口即可完成与单片机的通信;现场温度直接以“单线总线”的数字方式传输,大大提高了系统的抗干扰能力。ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。ds18b20测温原理如图3.1所示。图2.1中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 斜率累加器预置低温度系数晶振低温度系数晶振计数器10计数器2比较预置温度寄存器0加1停止图3.1 ds18b20工作原理3.2 max-485芯片介绍max-485是eia(美国电子工业协会)制定的平衡发送、平衡接收的标准异步串行总线,它具有传输距离远、灵敏度高、多点通信能力强等优点。max-485接口芯片结构图如图.2,该芯片采用单电源5v工作,额定电流300ua,半双工通信方式。该芯片具有8条引脚,内部含2个驱动器和接收器,r0,di分别为接收器的输出端和驱动器的输入端,二者分别接单片机txd和rxd。re和de分别为接收和发送使能端,当re0时,max-485处于接收状态;当de1时,max-485处于发送状态。因为max-485工作在半双工状态,所以它与单片机连接时接线非常简单,只需用单片机一个管脚控制这两个引脚即可。a端和b端分别为接收和发送的差分信号端,当va大于vb时,表示发送数据为“1”,当va小于vb时,表示发送数据为“0”,工作时,a、b之间应加匹配电阻,一般可选100-120欧。对于max-485的优点前面的有介绍。图3.2 max-485结构图3.3 stc89c52单片机stc89c52是一种带8k字节闪烁可编程可檫除只读存储器(fperom-flash programable and erasable read only memory)的低电压,高性能comos8的微处理器,俗称单片机。该器件采用atmel搞密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。stc89c52具体介绍如下: 主电源引脚(2根)vcc(pin40):电源输入,接5v电源gnd(pin20):接地线外接晶振引脚(2根)xtal1(pin19):片内振荡电路的输入端xtal2(pin20):片内振荡电路的输出端控制引脚(4根)rst/vpp(pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ale/prog(pin30):地址锁存允许信号psen(pin29):外部存储器读选通信号ea/vpp(pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)stc89c52单片机有4组8位的可编程i/o口,分别位p0、p1、p2、p3口,每个口有8位(8根引脚),共32根。3.4 adc0809芯片简介adc0809是cmos器件,不仅包括一个8位的逐次逼近型的adc部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”,利用它可直接输入8个单端的模拟信号分时进行a/d转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。(1)主要技术指标和特性: 分辨率:8位; 总的不可调误差:1lsb; 转换时间:取决于芯片时钟频率,如clk=500khz时,t=128us; 单一电源:+5v; 模拟输入电压范围:单极性0-5v;双极性5v,10v(需外加一定电路); 具有可控三态输出缓冲器; 启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿a/d转换开始。 使用时不需要进行零点和满刻度调节。(2)adc0809的工作时序当通道选择地址有效时,ale信号一出现,地址便马上被锁存,这时转换启动信号紧随ale之后(或与ale同时)出现。start的上升沿将逐次逼近寄存器sar复位,在该上升沿之后的2s加8个时钟周期内(不定),eoc信号将变低电平,以指示转换操作正在进行中,直到转换完成后eoc再变高电平。微处理器收到变为高电平的eoc信号后,便立即送出oe信号,打开三态门,读取转换结果。模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),然而通常是把通道选择和启动转换结合起来完成。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线选择。如用eoc信号去产生中断请求,要特别注意eoc的变低相对于启动信号有2s+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用eoc上升沿产生中断请求,而不是靠高电平产生中断请求。4 硬件设计系统的硬件设计主要包括两部分:主控机的max-485总线通信接口以及带有max-485总线接口的单片机系统。由图4.1可以看出,整个系统分为以下三部分:(1)主控制部分该部分由pc和rs-485接口设备构成,它负责轮询各个节点以获取信息。(2)数据采集部分该部分是一个具有rs-485接口的单片机系统,它位于各个终端设备处,响应主控机发送来的查询命令,并将被监控设备的状态信息回送给主控机。它的单片机的i/o端口与被监测得终端设备相连,以获取所需状态信息。(3)终端设备该部分是被监测的设备,一般为带有传感器的各种具体机器设备,此处我们用的是ds18b20温度传感器作为终端设备。主控机(单片机)终端设备终端设备终端设备rs-485接口rs-485接口单片机系统rs-485接口单片机系统rs-485接口单片机系统 图4.1 单片机rs-485总线多数据采集系统功能示意图4.1 主机电路 主控机的电路主要由单片机最小系统、液晶显示、max-485总线接口和键盘输入电路组成。原理图如图4.2 图4.2 主机电路原理图4.2 从机系统电路从机电路主要由单片机最小系统、噪声监控、模/数转换、四分频、亮度和电压等几部分组成 。原理图如图.3 图4.3 从机电路原理图5 软件设计对于任何涉及通信或者数据交换(本质上也是数据通信)的系统,通信协议的设计都是软件设计的前提和关键。整个系统软件分为主控机端和从机(单片机)端两部分。5.1 协议设计 对于协议设计而言,最重要的就是帧结构的设计。除了帧结构的定义外,整个系统的通信还需要遵守下面的规则: 主控机主导整个通信过程。由主控机定时轮询各个节点处的从机,并要求这些从机提交其相对应设备的状态信息。 主控机在发送完准备好命令后,进入接收状态,同时开启超时控制。如果接收到错误的信息则继续等待,如果在规定时间内未能接收到从机的返回响应帧,则认为从机不在位,取消这次查询。 主控机接收到从机的返回命令帧后,发送“等待接收”指令,进入接收状态,同时开启超时控制。如果接收到错误的信息则继续等待,如果在规定的时间内未能接收到从机的返回信息,则超时计数加1,并且主控机重新发送“等待接收”指令,如果超过3次,则返回错误信息,取消这次查询。 从机复位后,将等待主控机发送指令,并根据具体的指令内容做出应答。如果接收到的指令帧错误,则会直接丢弃改帧,不做任何处理。5.2 奇偶校验奇偶校验原理:通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。在被校验的数据后加一位校验位或校验字符用作校验码实现校验。校验位的生成方法:(1)奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”。(2)偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷数据中“1”的个数是奇数个时校验位填“1”,否则填“0”。 使用奇偶校验码校验的特点:校验处理过程简单,但如果数据中发生多位数据错误就可能检测不出来,更检测不到错误发生在哪一位;主要应用于低速数字通信系统中,一般异步传输模式选用偶校验,同步传输模式选用奇校验。按校验的数据量和生成校验码的方式分三类(1)垂直奇偶校验码:以一个字符作为校验单位纵向生成校验码位;(2)水平奇偶校验码:以多个字符作为校验单位横向生成校验码位; (3)水平垂直冗余校验码(方阵校验码):以多个字符作为校验单位水平垂直两个方向共同生成校验字符。5.3 从机程序流程从机端软件包括数据采集和max-485总线通信程序,其中数据采集部分可以设计成一个函数,在主程序中调用即可。从接收到主机发过来的地址帧,首先先判断是不是它自己的地址,如果是从机的地址再把它的数据发送给主机,在主机的显示屏上显示。如果不是它的地址或是出现故障不发送,若是该从机的地址,但是出现故障,则主机显示屏上显示出现故障。下图为从机程序流程框图图5.1。开始初始化:读取设备号、串口、定时器设置禁止发送,允许接收等待接收帧错误?接收正确帧?发送设备状态信息yynn图5.1 从机程序流程框图5.4 主机程序流程主机端软件主要是进行通信接口部分和数据处理部分的设计。主要的流程是:首先对相关参数及函数的设定,设置各个缓冲区。一开始是先显示当前的开机界面,延时一段时间后清屏,然后进入等待中断状态,对键盘扫描并处理所输入的当前的键盘值,处理完后进行清屏和开中断。输入的键盘值为:从机的地址和要求显示的状态(电压或温度、或亮度)。如果是ready命令则为显示从机在线状态,voltage命令则为显示电压状态,tepmat命令则为显示温度状态,light命令则为显示亮度状态。下图为从机程序流程框图图5.2。开始发送指令置启动超时控制数据帧有效?为正确帧?处理数据的设备状态信息yynn接收到数据帧?结束n图5.2 从机程序流程框图6 心得体会此次实训我们组所做的是多点数据采集,主要是采集温度和电压,通过协议让主机与从机之间发送与接收信号。在设计原理图之前的首要条件是对所需要的元器件都要了解,了解所有的功能、内部结构及用途,与什么元器件相连相对比较好及其它元器件相连时的接法。这点上我做得不是很好,对陌生元器件的认识不是很多,还需要更加的努力去学习,毕竟是学电子信息专业的,很多元器件在我们实训或平时中都有用到的。此实训中我们组人数比较多,但能够合理安排、分配任务,各个人所要做的也相对减少。而且每个人的任务也是根据自己的特长来分配的,所以每个人都有发挥自己潜能的机会。从中也可以体现出团队合作的表现,这一点在我们以后的工作中都是经常有的,在一个大的圈子里,团队的合作是很重要的。我的主要任务是画从机的pcb图和了解所要做的,把所做的学懂。画pcb图是一件很不容易的事,要有足够的耐心,而且还要心细。画pcb图也是有技巧的,不过这个如果不是经常画,那也很难的掌握。画pcb图的关键是把元器件摆放的合适,首先先定位要主要的元器件或大型点的元器件,再摆放其它小型的元器件。在摆放的时候不要乱摆,看那样放比较顺,交叉线比较的少,而且要整齐、美观。我在画pcb图时是用手工布线,也遇到了很多问题,线绕不过、元器件太多、很多线有交叉。最后我选择先把元器件摆放好,先易后难,先画简单的线条,再画难的,减少了很多时间,最重要的是自己能静下心来慢慢的画,经过半天多的努力,最终的结果自己也很满意。用protel 99画pcb,有很多的快捷键,能够掌握好的话可以省下很多时间。经过这次的实训,我接触到了很多以前没有尝过的东西,虽然我这次实训所做的工作不是很多,但去搜索相关资料及学习也是要花点时间的。在实训中我

温馨提示

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

评论

0/150

提交评论