毕业设计(论文)-基于RS485总线的数据采集系统下位机软硬件设计.docx_第1页
毕业设计(论文)-基于RS485总线的数据采集系统下位机软硬件设计.docx_第2页
毕业设计(论文)-基于RS485总线的数据采集系统下位机软硬件设计.docx_第3页
毕业设计(论文)-基于RS485总线的数据采集系统下位机软硬件设计.docx_第4页
毕业设计(论文)-基于RS485总线的数据采集系统下位机软硬件设计.docx_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

目录1 绪论31.1 小型集散测控系统现状31.2 课题研究背景及任务31.3 本设计的主要结构与内容32 数据采集系统下位机总体设计方案32.1 设计思路32.2 系统网络结构框图32.3 各主要功能模块简介33 系统硬件电路设计33.1 at89c51介绍33.1.1 at89cxx系列单片机的内部结构33.1.2 at89c51单片机的引脚功能33.1.3 中断有关的概念33.2 数据采集模块设计33.2.1 ppm226-ls2-2压力传感器33.2.2 ads7824转换电路设计33.2.3 时钟芯片ds130233.3 串口通信电路设计33.3.1 rs232和rs485简介33.3.2 与串行口有关的sfr简介33.3.3 max485简介与应用设计33.4 其他硬件电路设计33.4.1 单片机存储器的扩展33.4.2 复位电路设计33.4.3 时钟电路设计34 系统软件设计34.1 通信协议34.2 压力数据采集程序设计34.3 ds1302时钟芯片驱动程序34.4 通信程序设计3总 结错误!未定义书签。致 谢错误!未定义书签。参考文献错误!未定义书签。附 录错误!未定义书签。ii1 绪 论 1.1 小型集散测控系统现状在工业测控领域中,采用pc机与多台单片机构成主从式结构的小型集散测控系统越来越多。它们既利用了单片机价格低、功能强、抗干扰能力好、温限宽和面向控制等优点,又结合了pc机具有丰富的硬件和软件资源,特别是它的汉字图形功能,为用户提供一个非常友好的人机界面等特点,而pc机和单片机之间的数据交流则采用串行通信方式来实现。通常以pc机(上位机)作为主站,而采用单片机(下位机)作为从站,构成主从式多机通信。通信模块多采用max485总线通信模块,这种模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。rs-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,可以实现一台pc和多台单片机之间的串行通信,而且rs-485的最长的传输距离为1200m,适合中距离的传输。1.2 课题研究背景及任务由于轮对压力机是机务检修中的重要组成部分,所以其在整个检修过程中起着不可忽视的作用。现当今,诸多机务检修期间,多采用简单的人工采集或半自动压力数据采集,导致精度不高而且进展缓慢。有介于此,所以开发设计了该数据采集系统。基于分布式控制结构的小型集散测控系统和工程设计的具体情况,该系统的主要任务是:研究以单片机为控制核心的串行通信系统,确定有效的多机通信方法,设计基于rs-485总线的数据采集系统下位机软硬件,实现轮对压力机压力的自动采集、相关数据的显示,并通过串行通信向上位机反馈相关信息。1.3 本设计的主要结构与内容在该设计中,通过ppm226-ls2-2 型压力传感器采集压力,然后使用max485通信模块,将采集到的压力传输到上位机(电脑端的接收端),从而在电脑上(vb界面)显示采集到的压力。系统中使用到的主要材料有:max485通信模块,ppm226-ls2-2 型压力传感器.在实际检测时,主要通过ppm226-ls2-2 型压力传感器的压力采集功能,以及max485通信模块的多机串行通信功能,去实现多组压力在电脑端的显示。本设计主要分为四个部分。其中,设计的第一章(即绪论)中介绍了当前工业测控领域中的小型集散测控系统的应用和本设计背景与任务;第二章介绍数据采集系统下位机的总体设计方案;第三章简要介绍了系统的硬件电路设计;第四章介绍了系统的软件设计,主要是各模块软件设计的流程图。2 数据采集系统下位机总体设计方案2.1 设计思路系统采用rs-485构成远程分布式控制网络,该网络的拓扑结构采用总线结构,而传送数据采用主从式多机通信。以pc机(上位机)作为主站,at89c51单片机(下位机)作为从站,采用pc机的rs-232c串行口与从站进行通信,传输介质为四芯屏蔽电缆。下位机硬件设计包括数据采集模块设计与串口通信技术两大主要部分,其中在数据采集模块中,详细介绍了该系统中各个主要硬件的基本参数性能及其应用;而在串口通信技术中,介绍了rs485,max485等基础构成的原理及应用。软件设计包括压力数据采集程序设计,系统时间采集程序设计和通信程序设计三个部分。2.2 系统网络结构框图数据采集系统下位机的网络结构框图如图2.1所示。pcrs-485总线rs232转485接口n485485485p3.0 p3.1at89c51p3.0 p3.1at89c51p3.0 p3.1at89c51压力传感器压力传感器压力传感器图2.1 系统网络结构框图2.3 各主要功能模块简介(1) ppm226-ls2-2 型压力传感器测量范围:0400600t;允许过负荷:150%fs;综合精度:0.1%fs、0.2%fs、0.5%fs;工作温度范围:3070/85/最高250。(2) 51系列单片机采用at89c51单片机。(3) 本系统选用ads7824转换器,其内部带有采样保持器(sha),采用12位逐次逼这(sar)模/数转换方式;数据可并行或串行输出,并带有三态输出缓冲电路,可直接与各种微处理器相连;在模拟信号转数字信号时具有连续转换模式;差分电压输入范围为10v,同时带有四通道多路选择器;采用单+5v电源供电。正常工作情况下的功耗为50mw,能耗低。(4) 时钟芯片ds1302是美国 dallas 公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态 ram,采用 spi 三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 ram数据。且具有闰年补偿功能。工作电压宽达2.55.5v。采用双电源供电(主电源和备用电源)。(5) 通信模块采用了max485总线通信模块,这种模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。rs-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,可以实现一台pc和多台单片机之间的串行通信,而且rs-485的最长的传输距离为1200m,适合中距离的传输。3 系统硬件电路设计3.1 at89c51介绍3.1.1 at89cxx系列单片机的内部结构atmel89系列(以下简称at89)单片机是美国atmel公司生产的8位高性能单片机,其主要技术优势是内部含有可编程flash存储器,用户可以很方便地进行程序的擦写操作,在嵌入式控制领域中被广泛的应用。内部结构如图3.1所示t0 t1 t2定时/计数器时钟电路ramromcpu数据总线 地址总线 控制总线并行接口中断系统串行接口 p0 p1 p2 p3 txd rxd int0 int1图3.1 mcs-51系列单片机的内部结构图下面对各功能部件作进一步的说明:(1) 数据存储器(ram):片内为128个字节(单元),at89c51单片机内部有256个字节的ram数据存储器,片内最多可外扩64k字节。(2) 程序存储器(rom/eprom):803l无此部件,8051为4krom,8751则为4keprom。at89s51单片机内部有4kb的闪存程序存储器(flash),当不够使用时,可扩展为64 kb外部程序存储器。它们的逻辑空间是分开的,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛型结构单片机。(3) 中断系统:具有5个中断源,2级中断优先权。(4) 定时器/计数器:2个16位的定时器/计数器,具有四种工作方式。(5) 串行口:一个全双工的串行口,具有四种工作方式。(6) pl口、p2口、p3口、p0口:为4个并行8位i/o口。(7) 特殊功能寄存器(sfr):共有21个,用于对片内各功能模块进行管理、控制、监视。它们实际上是一些控制寄存器和状态寄存器,是一个特殊功能的ram区。(8) 微处理器(cpu):为8位的cpu,且内含一个1位cpu(位处理器),不仅可处理字节数据,还可以进行位变量的处理。8位机在数据采集、运算处理有明显的长处。atmel52子系列功能增强的具体如下四个方面:(1) 片内rom从4 kb增加到8 kb。(2) 片内ram从128 b增加到256 b。(3) 定时/计数器从2个增加到3个。(4) 中断源从5个增加到6个。 3.1.2 at89c51单片机的引脚功能at89c51(如图3.2)是一种带4k字节闪烁可编程可擦除只读存储器的低电压、高性能cmos8位微处理器,俗称单片机。at89c2051是一种带2k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3.2 at89c51引脚(1) at89c51主要特性与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定128*8位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 (2) i/o端口线输入输出引脚p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入。p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入,并因此作为输入时。p2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill),这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口,如表3.1所示:表3.1 p3的第二功能引脚第二功能信号名称p3.0rxd串行数据接收p3.1txd串行数据发送p3.2int0外部中断0申请p3.3int1外部中断1申请p3.4t0定时/计数器0的外部输入p3.5t1定时/计数器1的外部输入p3.6wr外部ram写选通p3.7rd外部ram读选通注:p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时要保持rst两个机器周期的高电平时间。(3) 控制线控制引脚ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出,可在sfr8eh地址上置0。此时,ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次psen有效。但在访问外部数据存储器时,这两次有效的psen信号将不出现。 ea:当ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,ea将内部锁定为reset;当ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。(4) 振荡器特性xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.3 中断有关的概念所谓中断,是指当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊请求,cpu暂时中止现行程序,转去对随机发生的更紧迫事件进行处理,处理完毕后,cpu自动返回原来的程序继续执行。中断允许软件设计不需要关心系统其它部分的定时要求,算术程序不需要考虑隔几个指令检查i/o设备是否需要服务。相反,算术程序编写时好像有无限的时间做算术运算而无其他工作在进行。若其它事件需要服务时,通过中断告诉系统。at89c51单片机有5个中断源,有2个中断优先级,每个中断源的优先级可以编程控制。中断允许受到cpu开中断和中断源开中断的两级控制(1) 中断源中断源是指任何引起计算机中断的事件,一般一台机器允许有许多个中断源。增加很少的硬件就可把各种硬件中断源“线或”成为一个外部中断输入,然后再顺序检索引起中断的特定源。at89c51单片机的5个中断源是:外部中断请求0,由int0(p32)输入;外部中断请求1,由int1(p33)输入;片内定时器/计数器0溢出中断请求;片内定时器/计数器1溢出中断请求;片内串行口发送/接收中断请求。1) 为了了解每个中断源是否产生了中断请求,中断系统对应设置多个中断请求触发器(标志位)实现记忆。这些中断源请求标志位分别由特殊功能寄存器tcon和scon的相应位锁存。定时器/计数器控制寄存器tcon(time/counter control register)如表3.2.表3.2 tcon寄存器d7d6d5d4d3d2d1 d0tf1tf0ie1it1ie0it0it0、it1:外部中断0、1触发方式选择位,由软件设置。1一一下降沿触发方式,int0/int1管脚上高到低的负跳变可引起中断。0一一电平触发方式,int0/int1管脚上低电平可引起中断。ie0、ie1:外部中断0、1请求标志位。当外部中断0,1依据触发方式满足条件产生中断请求时,由硬件置位(ie0/ie1=1). 当cpu响应中断时,由硬件清除(ie0/ie10)。tf0、tf1:定时器/计数器0,1(t/c0,t/c1)溢出中断请求标志。当t/c0,l计数溢出时,由硬件置位(tf0/tf11)。当cpu响应中断时,由硬件清除(tf0/tf10)。2) 串行口控制寄存器scon如表3.3.表3.3 scon寄存器d7d6d5d4d3d2d1 d0t1r1ri:串行口接收中断请求标志位。当串行口接收完一帧数据后请求中断,由硬件置位(ri=1)。ri必须由软件清零。ti:串行口发送中断请求标志位,ti必须由软件清零。当串行口发送完一帧数据后请求中断时,由硬件置位(ti1)。(2) 终端的控制中断的控制主要实现中断的开关管理和中断优先级的管理,这个管理主要通过对特殊功能寄存器ie和ip的编程实现。1) 中断允许寄存器ie如表3.4.表3.4 ie寄存器d7d6d5d4d3d2d1d0eaet2eset1ex1et0ex0ex0、ex1:外部中断0、1的中断允许位。1一外部中断0、l开中断。 0一外部中断0,1关中断。et0、et1:定时器/计数器0、1(t/c0、t/c1)溢出中断允许位。1-t/c、t/c1开中断。 0-t/c0、t/c1关中断。es:串行口中断允许位。1-串行口开中断,0一串行口关中断。et2:定时器/计数器2(t/c2)溢出中断允许位。1一t/c2开中断,0一t/c2关中断。ea:cpu开/关中断控制位。1一cpu开中断,0一cpu关中断。at89c51复位时,ie被清“0”,此时cpu关中断,各中断源的中断也都屏蔽。若系统需用中断方式进行事件处理,则系统初始化程序中需编程ie寄存器。若仅一个定时器用来提供中断,其它定时器中断可被屏蔽。若程序中所有中断都不使用时,使用ea禁止。2) 中断优先级寄存器ip(如表3.5)当系统中多个中断源同时请求中断,cpu按中断源的优先级别,由高至低分别响应。at89c51单片机有两个中断优先级,高优先级和低优先级,每个中断源都可以编程为高优先级或低优先级。这可以实现两级中断嵌套,嵌套的原则是:一个正在执行的中断服务程序可以被较高级的中断请求中断,而不能被同级或较低级的中断请求所中断。两级中断通过使用ip寄存器设置。表3.5 ip寄存器d7d6d5d4 d3d2d1d0pspt1px1pt0px0px0、px1:外部中断0、1中断优先级控制位。ps:串行口中断优先级控制位。pt0、pt1:定时器/计数器0、1中断优先级控制位。其中上面所有都是:1一高优先级,0一低优先级。at89c51复位时,ip被清“0”,5个中断源都在同一优先级,这时若其中几个中断源同时产生中断请求,则cpu按照片内硬件优先级链路的顺序响应中断。硬件优先级由高到低的顺序如下:外部中断0(ie0)定时器/计数器0(tf0)外部中断1(ie1)定时器/计数器1(tf1)串行口中断(ri十ti)(3) 中断响应at89c51的cpu在每个机器周期采样各中断源的中断请求标志位,如果没有下述阻止条件, 则将在下一个机器周期响应被激活了的最高级中断请求。阻止条件如下:1) cpu正在处理同级或更高级的中断;2) 现行机器周期不是所执行指令的最后一个机器周期;3) 正在执行的是reti或是访问ie或ip的指令。cpu在中断响应后完成如下的操作:1) 硬件清除相应的中断请求标志;2) 执行一条硬件子程序,保护断点,并转向中断服务程序人口;3) 结束中断时执行reti指令,恢复断点,返回主程序。3.2 数据采集模块设计在数据采集模块设计中,主要包括ppm226-ls2-2型压力传感器,ads7824转换器和时钟芯片ds1302三大部分。3.2.1 ppm226-ls2-2压力传感器在对轮对的压力测量中,因采集数据范围要求500t,所以选择ppm226-ls2-2型压力传感器。ppm226-ls2系列应变式拉压力传感器,采用圆筒式结构,精度高,稳定性好,可拉压两用,采用激光焊接密封,改善了传感器的防潮能力,抗偏载能力强,应用于各类电子称、港口吊装、火车头拉力测试以及各种工业系统中,也可配套显示控制仪表和动静态应变仪作拉、压、称重、测力用。该型号压力传感器的实物如图3.3,测量范围与尺寸对照表如表3.6,性能指标如表3.7,图3.3 ppm226-ls2-2型压力传感器实物图表3.6 测量范围与尺寸对照表测量范围外形尺寸(mm)连接螺纹(mm)tknalbm00.21210528468m161.501.5715707011590m241.50102010020090160110m36303050300500117210132m454.5或m643深700701007001000130224145m564或m724015020015002000200420215m1106025030025003000238500255m1306040060040006000300556315m20010表3.7 性能指标主要技术指标传感器变送器承载方式拉式、压式、拉压式输出灵敏度20.05mv/v两线420ma 、三线05vdc、三线010vdc准确度0.1%fs、0.2%fs、0.5%fs(线性+滞后+重复性)0.1%fs、0.2%fs、0.5%fs (线性+滞后+重复性)蠕变0.03%fs/30min温度对零点影响0.03%fs/0.03%fs/温度对量程影响0.02%fs/0.02%fs/输出电阻35039k绝缘电阻3000m1000m供桥电压515vdc(推荐10vdc)1236vdc(推荐24vdc)允许温度范围3070/85/最高2503070/85 允许过负荷150%fs150%fs防护等级ip67ip67接线方式电源:(+)红线 电源:(-)黑线 输出:(+)绿线 输出:(-)白线显示控制仪表可选配ppm432-tc1(0.05%精度)显示控制仪表,ppm系列动/静态应变仪可选配ppm-tc1ct(e)(0.2%、0.05%精度)显示控制仪表3.2.2 ads7824转换电路设计ads7824是美国bb公司推出的种低功耗4通道12位并行/串行模数转换芯片。该芯片是一种开关电容式逐次逼近模数转换芯片,其内部自带采样保持器(sha)、时钟源、+2.5v参考电压及与微处理器的并行/串行接口。同时,它还可以在连续转换模式下对外部4通道模拟输入信号进行顺序转换。与其它adc相比,ads6724具有非常低的功耗和丰富的片上资源,且内部结构紧凑,集成度高,工作性能好,可在-4080范围内正常工作,非常适用于仪器仪表及便携式探测器使用。(1) ads7824基本参数与特点:*内部带有采样保持器(sha),采用12位逐次逼这(sar)模/数转换方式。*采样频率为40khz,最大采样与转换时间为25s。*数据可并行或串行输出,并带有三态输出缓冲电路,可直接与各种微处理器相连。*积分非线性(inl)最大为0.5lsb,无漏码的差分非线性(dnl)最大为12位。*具有连续转换模式。*转换无失码。*典型信噪比(snr)为73db。*孔径延迟(aperture delay)时间为40ns。*内带+2.5v基准电压,也可选用外部+2.5v基准电压。*差分电压输入范围为10v,同时带有四通道多路选择器。*采用单+5v电源供电。正常工作情况下的功耗为50mw;关闭模式下的功耗仅为50w。*采用28脚pdip或soic封装形式。(2) 内部结构及引脚说明1) 结构原理ads7824采用的是具有固有采样/保持功能的电容式dac(cdac)转换方式,cdac是根据电荷再分配的原理产生模拟输出电压的。它包括一列有n个按照二进制加权排列的电容,在采样阶段,阵列电容的公共端(所有电容连接的公共点)接地,所有自由端连接到输入信号;采样后,公共端与地断开,自由端与输入信号断开,这样可在电容阵列上有效的获得与输入电压成正比的电荷量;然后,所有电容的自由端接地以驱动公共端至一个负压-vin。作为二进制搜索算法的第一步,msb电容的自由端与地断开,并连接到vref可驱动公共端电压向正端移动vref/2,若此时该电压小于地电压,比较器输出为逻辑1,则预示msb大于vref/2,否则,比较器输出为逻辑0,此时预示着msb小于vref/2,接下来,下一个最大的电容与地断开,并连接到vref,通过比较器确定下一位的数值,如此循环直到判定出全部数字位。2) 引脚说明ads7824具有28个引脚(如图3.4),各引脚定义如下:agnd1(1)、agnd2(8):模拟地。ain0ain3(2,3,4,5):模拟信号输入通道03,其差分输入电压范围为10v。cap(6):内部参考电压缓冲输出,通过2.2f钽电容接地,可为cdac在整个转换周期内提供适宜的开关电流。ref(7):参考电压输入/输出端。d7d5(9,10,11):当par/ser端为高时,为8位并行数据高三位输出,为低时呈高阻态。d4(12):当par/ser端为高时,该端输出8位并行数据bit 4,par/ser端为低时,该脚为串行时钟选择端。具体选择方式是:当该端输入高电平时,串行转换采用外部串行时钟;为低电平时,串行转换采用内部时钟。d3(13):当par/ser端为高时,该端输出8位并行数据bit3,par/ser为低时,该端输出为同步信号syn,当系统使用多个ads7824s时,使用该引脚可实现各个芯片数据输出的同步。dgnd(14):数字地(隐藏不显示)。图3.4 ads7824引脚图当par/ser端为高时,该端输出8位并行数据bit2;par/ser为低时,为串行时钟信号输出。单片机通常通过两次读取操作来将数据读入,当r/c=1,cs=0,byte=0时,读取高8位;当r/c=1,cs=0,byte=1时,读取低4位。数据读取完成后,单片机将r/c和cs端置低40ns12s以启动下一次转换,此时busy输出为低电平。d1(16):当par/ser端为高时,该端输出为8位并行数据bit1;par/ser为低时,该端为串行数据输出。d0(17):当par/ser为高时,该端输出为8位并行数据bit0;par/ser为低时,该端为串行输出标记端。a1、a2(18,19):输入信号通道选择端。par/ser(20):并行/串行输出选择端。byte(21):字节选择控制端。在读取期间,若byte为0,则高8位有效;若为1,则低4位有效。r/c(22):读取/转换控制端。cs(23):片选端。busy(24):输出状态端。转换开始时,busy为低电平;转换完成后,该端输出为高电平。contc(25):连续转换模式控制端。contc为5v时,ads7824工作在连续转换模式,此时芯片可对4个输入通道信号进行连续采集和转换。pwrd(26):电源关闭模式端,高电平有效。关闭模式时,系统将切断芯片内部模拟和数字电路的电源,以使芯片处于低功耗状态。vs1、vs2(27,28):+5v电源输入端。(3) ads7824与单片机at89c51的并行接口ads7824转换器与单片机at89c51的并行接口如图3.5。图3.5 ads7824与at89c51的并行接口3.2.3 时钟芯片ds1302 (1) ds1302简介ds1302是美国 dallas 公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态 ram,采用 spi 三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 ram数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5v。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。ds1302的外部引脚分配如图3.6所示。ds1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图3.6 ds1302的引脚分配ds1302有关日历、时间的寄存器共有12个,其中有7个寄存器存放的数据格式为bcd码形式。小时寄存器(85h、84h)的位7用于定义 ds1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是第一个10小时位 ,当为1时,表示pm。在24小时模式时,位5是第二个10小时位。各引脚的功能为:vcc1:主电源;vcc2:备份电源。当 vcc2vcc1+0.2v时,由vcc2向ds1302供电,当vcc2 vcc1时,由vcc1向ds1302供电。sclk:串行时钟输入,控制数据的输入与输出。i/o:三线接口时的双向数据线。ce:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,ce 开始控制字访问移位寄存器的控制逻辑;其次,ce 提供结束单字节或多字节数据传输的方法。关于ds1302的读写时序说明:ds1302是 spi 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与ds1302通信,首先要先了解 ds1302的控制字。ds1302的控制字如表3.8。表3.8 ds1302的控制字7 6 5 4 3 2 1 01rama4a3a2a1a0rd控制字的最高有效位(位7)必须是逻辑1。如果它为0,则不能把数据写入到 ds1302中。位6:如果为0,则表示存取日历时钟数据;为1表示存取 ram 数据。位5至位1(a4a0):指示操作单元的地址。位0(最低有效位):如为0,表示要进行写操作;为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个 sclk 脉冲的下降沿,读出 ds1302的数据,读出的数据也是从最低位到最高位。电路原理图如图6.4,ds1302与单片机的连接也仅需要3条线: 引脚、ce、sclk 串行时钟引脚、i/o 串行数据引脚,vcc2为备用电源,外接32.768khz 晶振,为芯片提供计时脉冲。 (2) ds1302与单片机的典型接口电路ds1302与at89c51的接口电路如图3.7所示:ds1302at89c51图3.7 ds1302与at89c51的连接3.3 串口通信电路设计在单片机的应用系统中广泛采用异步串行通信的方式进行数据通信。然而,在进行串行通信的线路连接的时候,还需要选择标准接口,考虑电平转换、传输介质等问题。通信的双方共同遵守某种约定,称为物理接口标准,包括电缆的机械特性、电器特性、信号功能及传输过程的定义。对于串行接口,目前用得比较多的是rs-232标准、rs-422标准以及rs-485标准等。在远距离、干扰大,或者和计算机进行串口通信的场合,需要考虑选用串行接口标准的问题。3.3.1 rs232和rs485简介rs-232标准是美国电子工业协会eia与bell等公司一起开发,于1962年公布,1969年最后修订的串行通信协议。它适合于020000b/s范围内的通信。字母rs表示recommended standard,232是识别代号。rs-232标准最初是为远程通信连接数据终端dte与数据通信设备dce而制定的。目前,计算机与终端或外设之间的近距离连接,很多都采用rs-232接口,例如串口的鼠标、键盘,以及数据采集系统等。在rs-232标准中,对串行通信接口的信号功能、电器特性和机械特性等都做了明确的规定。由于rs-232在微机系统中的广泛使用,加上51系列单片机内部集成的异步串行通行接口,使得它们之间的连接很方便。rs-232的机械特性主要规定了使用的连接器的机械规格和电缆长度。由于在rs-232标准中只规定采用一对物理连接器,但对连接器本身的物理特性没有具体的定义,因此市场上出现了db-25、db-15和db-9等各种类型的连接器,其引脚的定义也各不相同。目前使用最多的是db-9型连接器,一般的计算机和测控仪器中都使用。db-9型rs-232引脚结构,如图3.8所示。图3.8 db-9型rs232引脚结构表3.9是各管脚的说明表3.9 rs232管脚说明旧制jis名称新制ji名称全 称说 明fgsgframe ground连到机器的接地线txdsdtransmitted data数据输出线rxdrdreceived data数据输入线rtsrsrequest to send要求发送数据ctscsclear to send回应对方发送的rts的发送许可dsrdrdata set ready告知本机在待命状态dtrerdata terminal ready告知数据终端处于待命状态cdcdcarrier detect载波检出sgsgsignal ground信号线的接地线现在通常计算机均配有这种标准的232接口,通常这种接口用于联接鼠标、modem或打印机等外部设备。实际应用中,电子工程师在设计计算机与外围设备的通信时,通常在9针的基础再进行简化,只用其中的2、3、5三个管脚进行通信。这三个管脚分别是接收线、发送线和地线,在一般情况下即可满足通讯的要求,计算机和外部通讯的接线方法如图3.9。图中2、3两脚是交叉互联的,因为一个设备的发送线必须联接到另外一台设备的接收线上,反之亦然。图3.9 计算机与外部通信电路图rs-485标准是一种平衡传输方式的串行接口标准。rs-485标准是一种多发送器的电路标准,允许在双导线上有多个发送器,也允许一个发送器驱动多个负载设备。rs-485标准的特点是抗干扰能力强,传输距离远,速率高。如果采用双绞线传输信号,若最大传输速率为10mb/s,传输距离为15m;在最大100kb/s的传输速率下,可以传输1200m;如果最大传输速率为9600b/s,则传输距离可达1500m。rs-485标准最多允许在平衡电缆上连接32个发送器/接收器,特别适用于工业控制领域进行分布式管理、联网检测控件等,目前得到了很广泛的应用。3.3.2 与串行口有关的sfr简介(1) 串行通信控制寄存器sconscon是串行口控制和状态寄存器,其格式如表3.10。表3.10 scon存储器d7d6d5d4d3d2d1 d0sm0sm1sm2rentb8rb8t1rism0、sm1:串行口工作方式控制位,具体工作方式如表3.11。表3.11 sm0、sm1串行口sm0sm1工作方式说明波特率000同步移位寄存器fosc/1201110位异步收发器由定时器控制10211位异步收发器fosc/32或fosc/6411311位一步收发器由定时器控制sm2:多机通信控制位(方式2,3)。1一一只有接收到第9位(rb8)为1,ri才置位;0一一收到字符n就置位。ren:串行口接收允许位。1一一允许串行口接收;0一一禁止串行口接收。tb8:方式2和方式3时,为发送的第9位数据,也可以作奇偶校验位。rb8:方式2和方式3时,为接收到的第9位数据;方式1时,为接收到的停止位。ti:发送中断标志。由硬件置位,必须由软件清0。ri:接收中断标志。由硬件置位,必须由软件清0。(2) 电源控制器pconpcon的第7位smod是与串行口的波特率设置有关的选择位。smod:串行口波特率加倍位。1方式1,3波特率定时器1溢出率/16;方式2波特率为fosc/32。 0方式1,3波特率定时器1溢出率/32;方式2波特率为fosc/64。gf0、gf1:两个通用标志位。pd、idl:chmos器件的低功耗控制位。(3) 串行口的工作方式1) 方式0方式0为移位寄存器输入/输出方式。串行数据通过rxd输入/输出,txd则用于输出移位时钟脉冲。方式0时,收发的数据为8位,低位在前。波特率固定为fosc/12,其中fosc为单片机外接晶振频率。发送是以写sbuf寄存器的指令开始的,8位输出结束时ti被置位。方式0接收是在ren1和ri0同时满足时开始的。接收的数据装入sbuf中,结束时ri被置位。 2) 方式1方式1是10位异步通信方式,1位起始位(0),8位数据位和1位停止位(1)。其中的起始位和停止位在发送时是自动插入的。任何一条以sbuf为目的寄存器的指令都启动一次发送,发送的条件是ti=0,发送完置位ti。方式1接收的前提条件是scon中的ren为1,同时以下两个条件都满足,本次接收有效,将其装入sbuf和rb8位。否则放弃接收结果。两个条件是:(1)ri=0; (2)sm2=0或接收到的停止位为1。方式1的波特率是可变的,波特率可由以下计算公式计算得到:波特率2smod*(定时器1的溢出率)/32其中的smod为pcon的最高位,定时器1的方式0,1,2,都可以使用,其溢出率为定时时间的倒数值。3) 方式2和方式3这两种方式都是11位异步接收/发送方式,它们的操作过程完全一样,所不同的是波特率:波特率2smod* (fosc/64)方式3波特率同方式1(定时器1作波特率发生器)。方式2和方式3的发送起始于任何一条“写sbuf”指令。当第9位数据(tb8)输出之后,置位ti。方式2和方式3的前提条件也是ren为1。在第9位数据接收到后,如果下列条件同时满足:(1)ri0;(2)sm20或接收到的第9位为1,则将已接收的数据装入sbuf和rb8,并置位ri;如果条件不满足,则接收无效。at89c51串行口的不同寻常的特征是包括第九位方式,这允许在串行口通信增加的第九位用于标志特殊字节的接收。对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。用这种方法,发送器可以广播一个字节让第九位为高作为“每个人请注意”字节。字节可以为节点地址,地址相同的节点可以打开接收接下来的字符。所接续字节(第九位为低)不能引起其它单片机中断,因为未送它们的地址。用这种方式,一个单片机可以和大量的其它单片机对话而不打扰不寻址的单片机。这种系统必须工作在严格的主从方式,由软件进行取舍安排。(4) 串行口的初始化1) 串行口波特率通常情况下,使用单片机的串行口时,选用的晶振比较固定6mhz,12mhz,110592mhz。常用于和微机的通信;选用的波特率也相对固定。串行口常用的波特率及相应的设置如表3.12所示:表3.12 串行口波特率表串行口工作方式波特率fosc=6mhzfosc=12mhzfosc=11.059mhzsmod tmod th1smod tmod th1smod tmod th1方式01mhz 方式2375k187.5k1 1 0 方式1或方式362.5k19.2k9.6k4.8k2.4k1.2k600300137.51101 20 f3h1 20 e6h1 20 cch0 20 cch1 20 1dh0 20 72h : 20 ffh1 20 f3h1 20 f3h0 20 e6h0 20 cch0 20 98h0 20 1dh0 10 feebh1 20 fdh0 20 fdh0 20 fah0 20 f4h0 20 e8h0 20 d0h0 20 a0h0 20 2eh0 10 feffh2) 初始化步骤在使用串行口之前,应对它进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:确定定时器1的工作方式(编程tmod寄存器);计算定时器1的初值(装载th1、tl1)

温馨提示

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

评论

0/150

提交评论