电子信息工程专业论文18677.doc

上传人:laozhun 文档编号:4029595 上传时间:2023-04-01 格式:DOC 页数:34 大小:672.50KB
返回 下载 相关 举报
电子信息工程专业论文18677.doc_第1页
第1页 / 共34页
电子信息工程专业论文18677.doc_第2页
第2页 / 共34页
电子信息工程专业论文18677.doc_第3页
第3页 / 共34页
电子信息工程专业论文18677.doc_第4页
第4页 / 共34页
电子信息工程专业论文18677.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《电子信息工程专业论文18677.doc》由会员分享,可在线阅读,更多相关《电子信息工程专业论文18677.doc(34页珍藏版)》请在三一办公上搜索。

1、论文题目 基于单片机的RS485总线采样节点设计与实现基于单片机的RS485总线采样节点设计与实现摘要本论文介绍了基于RS485串行总线标准的温度采集系统的硬件和软件设计。温度数据的采集由以AT89S52单片机为核心的系统完成,采集的数据经RS485串行总线上传给ARM微处理器进行存储和处理。系统的软件包括单片机程序和计算机程序,分别应用C语言编写。相应的硬件和软件抗干扰措施保证了系统的稳定性和可靠性。本文介绍了一种基于RS-485的单片机与ARM之间文件传输的实现方案。给出了RS-485驱动程序的设计方法 ,详细阐述了自定义通信协和实现程序。在传统模式下的温度测量采用热电偶或热敏电阻,其输出

2、是模拟信号,必须转换成数字信号,然后与单片机进行传输。因此,它是相当复杂而且成本高。近年来,美国生产的DS18B20,作为一种新的单总线数字温度传感器被广泛使用。在前台实时温度数据采集和转换,通过传感器DS18B20的数字式分为单片机发送给LED显示模块。此外,接收温度数据通过RS - 485接口传送到后端的ARM中显示。关键词:AT98S52, RS485,温度采集,串行通信Design and realization of the RS485 node sampling based on MCUAbstract The hardware and software design of the

3、 temperature acquisition system based on RS485 serial communication criterion is introduced. The acquisition of temperature data is finished by the system taking AT89S52 MCU as core. Collected data can be sent up to ARM through RS485 serial bus, stored and processed in it. The software of this syste

4、m includes MCU and ARM pro-grams, programmed with C language. Some corresponding software. And hardware anti -disturbance measures assure this systems stability and reliability. The implement of the file transfer between MCU and ARM based on RS-485 are introduced in this paper. The design method of

5、the RS-485 driver is given. The user- defined communication protocol and the program are discussed in detail.Under the traditional model of the traditional temperature measurement using thermocouples or thermistor, the output is an analog signal, must be converted into a digital signal and then tran

6、smitted with the microcontroller. Therefore, it is quite complicated and costly.In recent years, U.S. production of DS18B20, as a new single-bus digital temperature sensors are widely used.Real-time temperature data collection in the foreground and conversion, through the sensor into digital DS18B20

7、 send microcontroller LED display modules.In addition, the temperature data received through the RS - 485 Interface transfer to the rear of the ARM in the display. Key words: AT89S52,RS-485,Temperature Acquisition, Serial Communication目录任务书I摘要IIABSTRACTIII第1章绪论11.1国内外现状11.2应用范围1第2章关键技术介绍22.1关键性开发技术的

8、介绍22.1.1RS-485总线介绍22.1.2MAX485芯片原理32.1.3DS18B20温度传感器原理3第3章系统分析43.1构架概述43.1.1系统构架43.1.2数据采集模块构架43.2系统开发环境53.3系统任务的可行性分析5第4章系统设计74.1设计指导思想和原则74.1.1指导思想74.1.2硬件设计原则74.2系统概述74.3系统的功能结构设计74.3.1DS18B20接口电路74.3.2LED数码管的电路设计84.3.3MAX485串行接口电路设计94.3.4RS232串口通信电路94.3.5主控制模块电路设计104.3.6电源监测电路114.4DS18B20硬件设计114

9、.5RS485串口通信模块设计15第5章系统实现175.1主程序流程175.2RS-485串口通信主要程序175.3DS18B20模块程序设计195.3.1DS18B20的工作过程195.3.2DS18B20温度传感器主要程序20第6章系统测试246.1测试方案及测试用例246.1.1电源监测246.1.2LED检测246.1.3通过RS485连接ARM共同检测24第7章结论25附录26参考文献28致谢29第1章绪论本篇论文介绍将通过一个单片机系统作为温度采集的一个节点,单片机系统内通过温度传感器DS18B20采集温度,并将温度数据显示到LED数码管,同时将采集来的数据通过RS-485总线传送

10、到ARM级进行显示。用美国DALLAS公司生产的DS18B20温度传感器采集温度和A/D转换合为一体,然后输出的数字量,硬件设计电路时结构不复杂,与单片机接口很少需要其他的元件。广泛运用在距离远、节点分布多的地方,可以广泛的应用。因为当今数字技术的发展和计算机的应用非常广泛,很多生产技术和工艺都需要计算机的控制。广泛使用的RS-485是因为他的传输距离非常远。并且通过RS485总线构成的分部数据采集与设备设计简单,同时具有成本低,系统不复杂,具有能够远距离通讯等特点。1.1国内外现状当今世界RS-485串口被广泛运用于生活生产中。随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本

11、被智能仪表所垄断。究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。1.2应用范围仪器仪表:医疗器械、色谱仪、智能仪器、示波器。工业:过程控制、工业机器人、电机控制、数字控制。民用:高级电视游戏机、电子玩具、录像机、激光盘驱动。导航与控制:导弹控制、鱼雷制导控制、智能武器装置、航天导航系统。第2章关键技术介绍2.1关键性开发技术的介绍2.1.1RS-485总线介绍RS-485就是电气接口规范,属于7层开放系统互连(Open SysyemInterconnection,OSI) 模型物理层的协议标准。他只需要在平衡驱动器和接收器的电气特性,不需要连接插件、输

12、电线路和通信协议。他支持半双工或全双工模式,网络拓扑结构通常用终端匹配的总线型,不支持环形或星形网络。由于RS - 485接口是RS 422基础发展而来的, RS 485总线采用平衡传输的方式,需要接到传输线路终端电阻等。RS - 485接口可与四线线使用时,同时可以实现真正意义的两线多点双向通信。而四线连接时,只能实现多点通信,这只能有一个主设备和多个从设备上。无论二线四线总线连接可以收到多达32个设备。的RS - 485共模之间-7至+12 V输出电压的RS - 485接收器最小输入阻抗为12k的RS - 485约1219m的最大传输速率为10Mb/s最大传输平衡双绞线的传输速率是成反比的

13、,在100KB/s速率以下的长度,它可能使用的固定最长长度的电缆长度。只有在很短的距离,获得最高的传输速率。100m长的双绞线一般最高只能是1Mb / s的传输速率。RS - 485需要两个终端电阻,电阻值要求等于传输电缆的特性阻抗。在一定时间没有终端电阻时,传输距离,一般在300m以下的无阻力,终止电阻端接在传输总线的两端。的RS-485通常用于平衡传输和差分接收方式实现通信。使用两种常用的双绞线传输线路,所以一般的模式具有很强的抗干扰能力。接收灵敏度非常高,可检测电压可低为200mV,有些芯片已经能够探测到的电压低至50mV的(如MAX485等)。在同一时间,最大传输速率,最大传输距离也大

14、大提高。RS-485特点:1. RS-485电气特性:逻辑“1”两条线之间的电压差为+(2-6)V表示,逻辑“0”两条线之间的电压差为 -(2-6)V表示。接口比RS-232的信号水平降低,就不容易损坏接口电路芯片,水平和TTL电平电路兼容,可方便地连接;2. .RS-485最大数据传输速率是10Mbps;3. RS-485接口是由平衡差分接收器和驱动程序组合,抗干扰能力增强,即良好的噪声抑制性。4. RS-485的接口标准,最大传输距离为4000米,实际上可以高达3000米另外他RS-232接口总线只允许连接一个收发器,就是单站能力。在RS -485接口总线可以连接多达128个收发器。具有多

15、站能力,这样用户可以利用单一的RS -485网络接口的优势,易于安装设备。2.1.2MAX485芯片原理采用单一+5 V电源供应工作,额定300A电流,半双工通信。它完成了TTL电平的RS - 485功能转换。MAX485芯片和引脚结构非常简单,包含一个内置驱动器和接收器。RO端和DI端,分别是接收器和驱动器的输入输出,仅与单片机可以连接到RXD和TXD;RE为0时,启用了接收和发送端,当DE逻辑0时,该设备是接收状态,当DE为逻辑1,设备正在发送的状态,因为在半双工状态MAX485的工作,所以只使用一个脚微控制器来控制这两个引脚,A端跟B端分别接收和发送的差分输出端,当B端比A端高,代表发送

16、的数据为1;当A低于B端水平,代表发送的数据为0。在单片机的接线非常简单。MAX485只有一个信号控制就可以接收和发送。而在A和B之间的加上匹配电阻,通常可以是100电阻。2.1.3DS18B20温度传感器原理以前的模拟信号远距离温度测量系统中,必须很好解决引线误差补偿技术、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都比较严重,每个干扰信号都非常强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体

17、积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。第3章系统分析3.1构架概述3.1.1系统构架温度采集及显示系统如图3.1所示,整个系统由数据采集(采集温度)模块、RS-485通信、基于ARM显示模块和基于ARM温度报警模块所构成。采用RS-485通信方式,通过RS-485总线能提高通信距离,提高可靠性,抗干扰性强。本文重点研究的是以数据采集模块为核心的,通过RS-485总线传输的设计。图3.1 系统的功能构架数据采集模块由单片机系统和RS-485传输设备组成,数据采集模传输是通过RS-485传输设备来完成信息的发送与接收,最终用数据采集模块将数据

18、采集后,通过RS-485传输设备发送出去,然后ARM的RS-485传输设备负责接收,最终在ARM的显示屏上显示出来,达到我们对数据的读取的目的。本设计采用的是宇泰科技生产的RS-485传输设备。3.1.2核心模块构架根据需求调研结果确定本系统主要包括以下功能模块,传感器模块、单片机模块、LED数码管模块、串口RS-485模块,如图3.2所示。微控制器AT89S52,利用MAX813L进行电源的检测,温度采集部分使用的是温度传感器DS18B20,这种传感器是独特的是单口接线方式传输技术,在与单片机连接时只需要一条口线即可实现单片机与DS18B20 的双向通讯,不需要其他任何的器件。传输通信利用R

19、S-485传输设备,RS485总线为多机通信的在实际生活中有着十分重要的地位,他的其在传输速率、通信速率、传输距离、多机连接等方面都有着非常大的改善。使用MAX7219驱动8位LED数码管显示,经济高效。 图3.2 核心模块构架图3.2系统开发环境 硬件配置:硬盘:120GB 内存:2GB操作系统:WindowsXP开发工具:Microsoft Visual Studio 2008Altium Designer 6.9 Keil C513.3系统任务的可行性分析由于RS-485总线运用了差分电平传输数据,所以传输的距离比RS-232长许多,最长可以达到3000 m,所以很适合在工业上得到应用。

20、不过与CAN总线等更为优秀的工业总线对比,RS-485的修改的能力还有一定差距,因此在软件设计的部分还行进步的注意,尽量避免错误的发生否则会很难实现预期目标。另外,假如系统的数据比较多需要很大的运算量,需要对其作立即反应的应用场所不适合用RS-485总线进行传输。尽管RS-485总线存在一些小毛病,不过因为它的价格相对便宜、线路设计简单、易操作,只要处理好各个细小漏洞,在某些工程应用中还是可以得到广泛的应用。由DS18B20 温度传感器和单片机AT89S52 组成的温度实时检测装备,可以直接传输温度的数字信号。因此这样系统的结构相对容易,体积很小,方便移动。使用单片机控制,软件编程的自由得当,

21、所以本次设计采用 DS18B20 传感器测量温度,输出信号的全部数字化。节省了一起的测温时的需要很多外围设备,电路方便单片机控制及处理。DS18B20 的特点在于采用了单总线的数据传输。1一致性本次项目设计将会与所做项目的实现各项功能要求相一致。2合理性本项目设计所提出的设计方法和标准将是合理的、恰当的。3可追踪性对项目设计所提出的各项要求将可以得到它的清晰的源流。第4章系统设计4.1设计指导思想和原则4.1.1指导思想(1)坚持统一规划、科学管理、服务应用的指导方针;(2)充分利用现有工作基础和成果,进行改进、提升和整合,避免重复建设。4.1.2硬件设计原则(1)标准化和规范化原则(2)安全

22、性原则(3)完备性原则4.2系统概述AT89S52单片机是本次设计的主要部分,获得温度的参数继而转化为十进制和与之相应的 ASCII 值然后在显示在数码管的温度值,同时通过RS-485总线传到ARM微处理器进行下一步应用。他的工作过程是先初始化各个器件达到合适环境进行工作,然后初始化DS18B20跟数码管,然后读取检测的温度数据,同时把采集数据进行传送到数码管上进行显示。并且通过RS485总线传送。4.3系统的功能结构设计4.3.1DS18B20接口电路图4.1 DS18B20接口电路DS18B20的是本次设计的温度检测部分,它使用独特的单口传输模式,只需要一个端口线可DS18B20的双向通信

23、,而不需要用其他设备,所有的传感器和转换电路都是如集成电路就一个3极管,外部电源电压范围3.05.5V的范围,从-55到+125温度范围内可编程温度传感器DS18B20,它可以模拟温度传感器和信号处理电路的通讯手段与单片机来完成数据收集和处理。其最大的特点是单总线数据传输模式中,I/O来完成相同的数据。电源DS18B20的2种方式为:外部电源和寄生电源模式。当寄生供电模式,VDD和GND接地,它需要一个远程温度探头,而且空间小。但寄生方法需要一个强大的上拉电源电路,软件控制变得非常复杂,其性能这种芯片也有所下降。因为作业前DS18B20的电流已经为1 mA达到,所以4.7K上拉电阻不能单独提供

24、电源工作的时候,许多DS18B20的只有一个I/O线,同时对温度的转换,这个问题就显得非常的严重。在这种设计的考虑只是一个单点温度测量,因此采用外部电源供电。4.3.2LED数码管的电路设计图4.2 MAX7219驱动数码管电路图4.2为MAX7219芯片驱动数码管电路是一种集成化的串行输入/输出共阴极显示的驱动器,它连接微处理器与8位数字的7段数字LED显示。图4.3 8个7段数码显示管图4.3为8个数码管显示电路,其利用MAX7219驱动数码管显示,为数码管链接电路,利用8个三极管提供显示的驱动电流。4.3.3MAX485串行接口电路设计 图4.4 MAX485电路设计图4.4为芯片MAX

25、485电路设计,MAX485的驱动器不受任何限制,最大时可以达到2.5Mbps的传输速度。这种收发器在驱动器是禁用的满载或者空载的形式下,需要的电源电流是120A到500A内。所有元件都是工作在5V单电源下。MAX485实用于RS-485与RS-422通信等低功耗的收发器上。驱动器起到短路电流限制的作用,而且可以通过关断电路让他驱动器一直输出高阻抗的状态。接收器输入具有对失去保护特性,当输入开路时,以确保逻辑高电平的输出。具备很好的抗干扰的能力。4.3.4RS232串口通信电路图4.5 RS232 串口通信电路图4.5为串行通信电路,RS - 232接口与PC机作为串行接口使用最广泛应用的通信

26、应用,RS - 232串行数据标准协议020000bit/ s的范围之间的数据通信,传输速率和现在的DTE数据终端设备已经成为计算机和数据通信设备DCE接口标准。相关数据:控制信号:信号接通状态,比有效电平大于+3 V。断开状态时,信号无效的要小于3V,在实际应用中应保证在(315)V,逻辑“1”的电平低于-3V,逻辑“0”的电平高于+3V。4.3.5主控制模块电路设计图4.6 主控制电路图4.6为AT89S52 单片机一种拥有 40 引脚的双列直插式芯片,AT89S52单片机微控制器,四个8位I / O端口(为P0,P1,P2和P3)的,每个I / O线可以作为一个单独的输入或输出使用,是整

27、个电路的核心部分。他的的主控制电路如图4.6所示,RST终端是单片机复位输入端,接上电容,电阻和开关后,可形成上电复位电路。他XTAL1 XTAL2端的结束,也可用来连接带微调外部晶振跟电容,然后是他在单片机内部振荡器反相放大器是输入,外部晶振器连接的另一端XTAL2上,在这是芯片里振荡器反相放大器的输出。4.3.6看门狗定时电路图4.7 电源检测电路图4.7为本次设计的电源检测电路,电源监测采用的是MAX813L,他是专门用来实现电源电压监测的芯片,它不仅可以对+5V电源电压进行检测,还能对别的电源电压(如12V)进行实现检测,另外它他内部还带有看门狗定时电路,适用于单片机的系统。在这个系统

28、中,在周期1.6秒内单片机为MAX813L一直提供喂狗信号,每当信号中断,芯片自动产生复位信号,使单片机复位。4.4DS18B20硬件设计一DS18B20温度传感器的特性:(1) 可编程的分辨率为9至12四个位,相应的温度分别为的0.5,0.25,0.125和0.0625,能够实现高精度温度测量;(2)独特的单线接口,即能通过其它I/O口线与微机接口,也可以通过串行口线,无需变换别的电路,直接输出被测温度值;(3)DS18B20不需要备份电源,既可用外部电源供电,也可采用数据线供电;(4)温度值会直接输出数字温度的信号,可以运用一个线串行传给单片机,并且也可传送CRC校验码,具有非常好的抗干扰

29、的能力同时找出错误;(5)测量范围是-55+125之间,固有测温分辨率为0.5;(6)DS18B20温度传感器能够实现多个组网,多个DS18B20可以共通挂在唯一的总线上,以实现本地区的多点温度;(7)DS18B20在设计中不需要别围元件,全部的传感元件跟转换电路都集成到在于一只三极管的集成电路中;(8) DS18B20的负特点:电源极性反向,该芯片将不会因为过热而报废,但不能继续工作。(9)警告温度搜索的指令可以依靠识别寻址温度在修订的极限之外的器件;(10)适用的电压范围非常大,电压范围在3.05.5V;(11)应用范围包括消费类的产品、工业系统中温度计或任何热敏系统。二.DS18B20温

30、度传感器的内部结构他的内部结构如图4.8所示。它是用一个 64 位光刻温度传感器、一个ROM、非挥发性温度警报触发器TL和TH、跟配置寄存器一起组成的。图4.8 DS18B20 内部结构图引脚说明:DS18B20的3引脚封装,如图4.9所示。其中,GND为电源接地用的;DQ为数字信号输入/输出端;VDD到一个外接电源输入。图4.9 DS18B20 封装三DS18B20控制接口介绍1温度传感器DS18B20通上电以后,处于空闲的状态,要启动模板和温度检测,处理器准备向他输出Convert T44h 命令,转换后返回到空闲状态DS18B20的温度数据为16位补码的形式存储到温度寄存器中,如表4,1

31、所示。表4.1 温度寄存器的格式264位光刻ROM在出品前,光刻ROM中的64位的序列码就已经被光刻好的,可以把他可以当做这个DS18B20的地址序列码。ROM中64位序列码的排列分别是:前面的8个是产品样品的标记,然后下来的48位是DS18B20自己的序列号,最后面的8个数是之前56位的循环的验证码。光刻ROM是为了使每个DS18B20都不一样,正因为这样所以一个总线上才可以挂多个DS18B20温度传感器。表4.2中符号位表面温度是负值或是正值,负值时S=1,正值时S=2,表4.2举例了数据输出数据与对应温度。就以14位转化为例:12位符号扩展的读数0.0625/LSB的表达情况,其中S为符

32、号位补码形式。如果输出数值是125转化07DOH,-0.5的数字输出是0191H,FF6FH是-25.0625的数字输出,在-55为FC9OH数字输出。如下表所示表4.2 DS18B20中的传感器的温度的测量值3配置寄存器配置寄存器是R1跟R0组成。这个字节的意义如表4.3所示,是低五位的都是1,而TM是测试模式位,用于设置在测试模式或工作模式DS18B20的。在DS18B20生产的时候这位被默认设置成0,不可以用别的办法更改这个设置。R=1和R=0用来设置分辨率。表4.3 配置寄存器结构表4.4 温度分辨率设置表4非挥发的温度报警触发器TH和TL当完成DS18B20的温度变化,它将会把测得的

33、温度值和TL,TH(TL和TH的最低和最高温度检查)作比较。如果TTH,那么系统将会允许的报警标志位的值,同时警告搜索主机传输命令作出反应。所以,你可以使用多个DS18B20的在同一时间同时检测报警温度的探索与搜索。如果温度超过这个极限温度点,报警主机可以使用搜索命令被确认的报警装置。高低温报警触发器TL和TH,配置寄存器是一个字节的EEPROM的组合,只要记忆功能命令连接到的TL,TH,或配置寄存器的写入。5高速暂存存储器高速缓冲存储器它是用9个字节组成的,功能分配如表4.5所示。1,2字节,包括开始测量温度的数字信息,字节是3,4,5TH和TL,配置寄存器的临时任务,在每一个上电复位将重置

34、所有;前6个字节不使用,整个逻辑1的表现,剩余的字节数是7、8分别是技术剩余值跟每度得计数值,前9个字节用来读取应所有8个字节的CERC代码,以便使用它以确保通信是正确的性。表4.5 DS18B20暂存寄存器分布DS18B20的通信协议,单片机的DS18B20温度传感器的转换,将通过三个步骤完成,首先是要读写之前必须进行复位操作后对DS18B20的成功发送一个复位指令,最后送到RAM的命令,只有这样的温度传感器才能做出提前的操作。复位应该主CPU将数据线下拉到500s,之后释放当传感器收到信号后等到1660s左右时,立即发出一个60240s的快速的低脉冲信号,单片机收到此信号后表示复位成功。下

35、表为ROM指令表。表4.6 ROM指令表4.5RS485串口通信模块设计单片机与ARM 平台通过RS-485串行通信,采用RS-485最大的好处是它可以一对多点总线互相连接的功能 ,它可以连接一台主机和多台终端同步进行通信,由于它是半双工的工作模式,同时只能有一方进行发送,一方负责接收,并且RS-485串口所采用差动电平接收的方法用于提高抗干扰的能力 ,比较适合在稍恶劣的环境下正常工作,因为在一样的电缆中受到的干扰都是差不多一样的,所以采用差动方法就可以有效的抵消一大部分的干扰。由于RS - 485串行端口是半双工的工作模式,因此每当用户当处理和发送一起使用物理信道的时候。在任意时刻只能将数据

36、发送到一台机器。因此,必须在收到应答机的RS - 485串行端口发送和接收信号,而且在其他机器时发出指令是才能答复。半双工的传输时间的接受和传输有着非常严格的要求。如果时间不匹配,那么就会有一点于总线冲突,让整个系统变得无法使用 ,停止正常的工作。如果想要让总线上的设备的正常工作。那么,一定需要以下几点。(1) 上发送独立的传输控制信号的时序控制信号的各种单片机连接时序要求是完全分开的。发送和接收信号时为了确保信息的完整性和正确,以避免总线上的信号碰撞,总线使用权必须分配,以避免竞争,连接到总线的单机,并发送控制信号完全隔离时间。总之,发送和接收控制信号应该足够宽,以确保数据的完整性得到一帧数

37、据,任何两个独立机器的发送信号是完全分开的,以避免总线争端。(2) 电路复位时,主机必须处于接收的状态DE 和RE 端相连为低电平的时候 ,从机应该处于接收的状态 ,在接受上电复位的时候 ,因为硬件电路稳定需要一点时间 ,而且单片机的各个端口复位后应该处于高电平的状态 ,因此就会使总线上每个分机都处于发送状态 ,再加上电时各个电路的不稳定 ,就可能向总线发送信号。所以说,假如用一条线作发送和接收的控制信号,就要把口线反向的后接到MAX485的控制端 ,这样就可以使上电时 MAX485 始终处于接收状态。 (3)在RS-485半双工通信工程中,因MAX485的发送和接收都是用同一个器件完成的,而

38、且发送和接收使用的是同一个物理连路,要对控制信号进行切换。控制信号什么时候是高电平,什么时候是低电平 ,一般以单片机的TI信号作为参考。在发送时检测是否建立TI,如果TI为高电平时关闭发送的功能变为接收功能;在接收时检测是否建立RI,当RI为高电平之后,接收结束,之后可以转为发送。第5章系统实现5.1主程序流程流程如图5.1所示,开始工作,首先系统初始化各个模块,当系统接收到检测信号,从传感器接收数据,处理数据后输出数据,将数据从LED数码管上显示,并同时将数据发动到RS-485串行接口,由RS-485串口最后发送到上位机。图5.1 系统流程图5.2RS-485串口通信主要程序RS-485通信

39、节点的程序大致可归类为六个重要部分,他们分别是预定义部分、初始部分、设备状态检测部分、主程序部分、帧接收部分和发送部分。预定义的部分主要是用来定义通信中使用握手信号,它用于保存本节点的设备号和设备信息的缓冲区的变量。主程序部分可以接收命令帧,同时根据命令的内容发出相应的回应。而设备状态检测部分要放在程序初始化后,如果件发生故障时,再做出相应的反应。图5.2 串口部分流程图为缩减不必要的篇幅,在这只给出主程序部分一些代码。/* RS485通信主程序的流程*/while(1) /主循环if(recv_cmd(&type)=0) /发生错误或帧地址与本机/地址不符时,丢弃当前帧然后返回continu

40、e;switch(type) case _ACTIVE_:/主机问从机是否接受send_data(_OK_, 0,dbuf);/发送应答信息 break;case _GETDATA_:len = strlen(dbuf);send_data(_STATUS_, len,dbuf);/发送状态信息break;default:break;/命令的类型错误,丢弃当前帧然后返回5.3DS18B20模块程序设计5.3.1DS18B20的工作过程单片机DS18B20温度传感器在温度转换过程中需要三个过程,第一,初始化,然后是ROM操作命令的,最后是存储器操作命令、一.初始化总线上的所有操作都必须先初始化,

41、第一个提出了复位信号,然后从机器的线路信号发送,并通知主机DS18B20总线,然后让他等待接受其指令。二. ROM 操作命令在这个毕业设计中我们跳过 ROM 序列号检测命令。skip ROM命令,就是跳过 ROM 操作的命令,是因为只有一个测温芯时以节约时间;但是要是多个从机的时候不能这样用了,这会使总线上的数据造成冲突。所以在就有一个温度传感器的情况下,在每次输入指令之前都可以使用这个命令来节约运算时间。三存储器操作命令首先,写(4EH)命令,使用此命令写入数据存储第2至4个字节,从第2个字节(TH)运行的。复位信号发出前,完成这三个字节。然后读出(BEH),使用这个命令读出寄存器内的第一个

42、字节的内容,一直完成第九个字节时,如果有需要注册的一些内容,那样的话主机可以在适当的发送时间复位命令结束该进程。其次是复制(48H),使用这个命令来注册的内存温度2至4个字节传感器设计EEROM,当主机发出命令后实施温度转换,如果在进程转储则结果为0如果转储结束,结果是1。最后,启动转换(44H)和温度传感器接收此命令立即启动温度转换的实施,没有其他的其他数据。这时DS18B20的空闲状态。如果温度转换运行时,主机将接收读取总线0,转换完毕接收到的是 1。5.3.2DS18B20温度传感器主要程序DS18B20 使用的关键是首先清楚总线的读写的时序。DS18B20是单总线的双向通讯,他的外接电

43、路非常简单,可是在软件编程上,就非常严格按照他的要求时序进行读写的操作。具体的操作如下:对温度传感器操作时,首先要把他复位。让DQ 线拉低480到960s之间,再将数据线拉高15 到60s之间,再把DS18B20 发出的60到240s 的低电平信号作为应答的信号,这时单片机才能对它进行别的的操作。图5.3 DS18B20初始化时序bit DS18B20_Reset(void)unsigned char x=1;DQ = 1; /DQ先置高DS18B20_delay(15); /稍延时DQ = 0; /发送复位脉冲DS18B20_delay(500); /延时480usDQ = 1; /拉高数据

44、线DS18B20_delay(70);/等待1560usx=DQ; /x=0初始化成功 x=1失败DS18B20_delay(15);return x;在温度传感器中,写操作是指把数据线要从高电平拉到低电平,产生写起始的信号。从DQ 线的下降沿起开始计时,在15s 到60s 之间这段时间里对数据线进行检测,假如数据线为高电平时就写1,若为低电平时就写0,如果完成了一个就写周期。然后再开始另一个写周期前,必须在1s 以上的高电平恢复期。每个写周期必须需要60s 以上的持续期。图5.4 DS18B20写时序void DS18B20_Write(unsigned char command)unsig

45、ned char i;for(i=8;i0;i-)DQ=0;if(command & 0x01)=0)DS18B20_delay(10);DQ=1;DS18B20_delay(20); else DQ=1; DS18B20_delay(20);command=_cror_(command,1); 在温度传感器中,读操作是指主机将数据线从高电平拉至低电平1s 以上时,使数据线升为高电平,从而产生读起始的信号。从主机将数据线从高电平拉至低电平起15s 到60s之间,主机读取数据。每个读周期最短的持续期为60s。周期之间必须有1s 以上的高电平恢复期。 图5.5 DS18B20读时序unsigned char DS18B20_Read(void)unsigned char i;unsigned char temp;temp=0;for(i=8;i0;i-) temp=_cror_(temp,1);DQ=0;_nop_();_nop_();DQ=1;_nop_();_nop_();if(DQ=1) temp=temp | 0x80; else temp=temp | 0x00; DS18B20_delay(8); return(temp);第

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号