欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    MODBUS协议的测温系统.docx

    • 资源ID:11718726       资源大小:1.93MB        全文页数:83页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MODBUS协议的测温系统.docx

    1、MODBUS协议的测温系统基于MODBUS协议的通讯系统【摘 要】 本设计研究如何通过MODBUS通讯协议,设计利用单片机,结合NRF24L01无线收发芯片,实现了温度实时采集与主机(PC机)显示。用STC89C52单片机与DS18B20对温度采集显示于数码管,在通过无线模块发送到另一块单片机系统里通过1602液晶显示,成后,基于MODBUS通讯协议通过RS-485的物理层实现串口通信,发送实时数据给主机。经过一系列的处理后,温度得以实时在两个单片机系统中显示并准确显示在主机串口调试软件中。经检测,作品实现了基于MODBUS协议的通讯。【关键词】 MODBUS NRF24L01 STC89C5

    2、2 PC机Abstract This design to study how through the MODBUS communication protocol designed to use microcontroller, to combine NRF24L01 wireless transceiver chip temperature real-time acquisition with the host (PC) display. The STC89C52 SCM and DS18B20 temperature acquisition and display digital contr

    3、ol, the 1602 LCD, after the completion of a microcontroller system via RS-485 physical layer communication protocol based on MODBUS serial communication through a wireless module to send to send real-time data to the host. After a series of treatments, the temperature can be shown in the two single-

    4、chip system in real time and accurately displayed on the host serial port debugging software. After testing, the works based on MODBUS protocol communication.Key words The MODBUS nRF24L01 STC89C52 host computer第章 绪论1.1 Modbus 协议简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。为更好地普及和推动

    5、Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在中国,Modbus已经成为国家标准GB/T19582-2008。据不完全统计:截止到2007年,Modbus的节点安装数量已经超过了1000万个。 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制

    6、设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 1.2 Modbus 协议的应用 工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus 就是工业控制器的网络协议中的一种。 Modbus 协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦

    7、测错误并记录。它制定了消息域格局和内容的公共格式。 当在Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。在其它网络上,包含了Modbus 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误 测的方法。1.3、本论文的主要内容考虑到工业上常常要对一些移动性强的设备进行一些监控,本次设计了温度信号实时采集显示。在短距离利用无线模块与一些移动性强的设备进行数据交换克服有线通讯的弊端,再基于Modbus通讯协议将采集到的数据

    8、显示于上位机上实现远程通讯。本论文的主要内容总由五章组成。第一章介绍Modus通讯协议与它的应用;第二章介绍设计的总思路和基本原理,对Mdodbus、通讯接口、无线模块的方案进行介绍和选择;第三章介绍modbus协议、RS485通讯接口、NRF24L01通讯模块的内容;第四章具体介绍硬件设计,最小系统、按键液晶数码管显示、电源电路、RS232485模块、NRF24L01模块的硬件设计等;第五章介绍Modbus协议的软件设计、A机软件设计、B机软件设计等;第六章介绍整个作品的实现,对设计的整体外观、串口显示、对结果进行评价;说明了不足之处和设计的展望等。第章设计总思路和法案选择21、设计总体思路

    9、基本原理和框图本次设计了基于RS232-485为接口,双绞线为介质的MODBUS通讯协议来实现远距离、高稳定、高速率、抗干扰能力强的通讯系统,得以在远离现场进行监测。考虑到现场有时候设备移动性比较强时,比如物料输送时要监测移动的设备的温度时,有线方式通讯是受限的,所以设计中还结合了无线模块来避免这种弊端。根据设计思路本次设计为A、B两个系统模块和PC机通讯模块;A机和B机可以通过无线模块双向传输信号;在Modbus通讯中B机作为从机,PC机作为主机,通过RS232-485接口实现通讯。功能如图2-1所示:图2-1 总体框图A机可以显示时钟和采集到的温度信息,可以向B机发送命令,使B机当前显示的

    10、是温度或时钟。B机可以按A机的命令显示时钟(与甲时钟需同步)或者温度信息,当B机接受了A机的命令时指示灯闪烁一次。B机的温度、时钟通过Modbus协议与主机通讯实现将温度值、时钟的时分信号读取显示于上位机串口调试软件上。系统中主要有MCU、液晶显示、数码管显示、独立按键、温度采集、无线收发、RS232转485、上位机等单元。其中MCU为各单元的控制中心,无线收发模块是实现A机和B机通信的终端;主机、数码管和液晶显示部分用来观察系统工作状态及无线通信的成功与否。2.2 MODBUS方案选择在 Modbus 协议中,依数据在传输过程中的具体形式不同,分为两种模式:ASCII 模式和 RTU模式,

    11、采用哪种模式由用户自己根据需要进行选择。在改变数据传输模式时,同一 Modbus 网络中的所有设备的数据传输模式必须一致。 方案一、ASCII(American Standard Code for Information Interchange),即美国信息交换标准代码。在这种模式中,每个 8 比特的字节被转换为两个 ASCII 字符进行传送。这种模式的主要优点是传送中每相邻的两字节之间允许的最大时间间隔较长,可达1秒。代码系统:十六进制,ASCII字符09,AF,消息中的每个ASCII字符都是一个十六进制字符组成每个字节的位: 表2-1 ASCII模式起始位地址代码功能代码数据位LRC校验码

    12、结束位STARTADDRESSFUNCTIONDATALRC CHECKEND1字节2字节2字节n字节2字节2字节1 CHAR2 CHARS2 CHARSn CHARS2 CHARS2 CHARS 方案二、RTU(Remote Terminal Unit),即远程终端单元。当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8Bit字节包含两个4Bit的十六进制字符。代码系统:8位二进制,十六进制数0.9,A.F,消息中的每个8位域都是一个两个十六进制字符组成每个字节的位: 表2-2 RTU模式起始位地址代码功能代码数据位CRC校验码结束位STARTADDRESSF

    13、UNCTIONDATACRC CHECKENDT1-T2-T3-T48 BITS8 BITSn * 8 BITS16 BITST1-T2-T3-T4通过比较可以看到,ASCII协议和RTU协议相比拥有开始和结束标记,因此在进行程序处理时能更加方便,而且由于传输的都是可见的ASCII字符,所以进行调试时就更加的直观,另外它的LRC校验也比较容易。但是因为它传输的都是可见的ASCII字符,RTU传输的数据每一个字节ASCII都要用两个字节来传输,比如RTU传输一个十六进制数0xF9,ASCII就需要传输F9的ASCII码0x39和0x46两个字节,这样它的传输的效率就比较低。综合各因素本次设计采用

    14、方案二即RTU模式。2.3通讯接口选择方案一、RS-232接口。由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点:接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。传输速率较低,在异步传输时,波特率为20Kbps。接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。方案二、RS-485接口。针对RS-232-C的不足,于是就不断出现了一些新的接口标准,RS-485就是其中之一,它具有以下特点

    15、:RS-485的电气特性:逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。RS-485的数据最高传输速率为10MbpsRS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。RS-485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器(RS485芯片的驱动能力有限,因而在实际

    16、应用中其实只能驱动40多个收发器)。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点所以本次设计采用RS-485接口。2.4无线模块的选择 方案一:采用nRF24L01无线收发芯片组成智能家庭安全系统的自适应无线传感和控制网络,网络拓扑图如图所示。nRF24L01是一款新型单片射频收发器件。工作于24 GHz2。5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道通过程序进行配置。nRF24L01功耗低

    17、,在以一6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有123 mA,多种低功率工模式(掉电模式和空闲模式)使节能设计更方便。而且nRF24L01价格在20元左右,性价比高。方案二:CC1100 是原Chipcon 公司推出的一种低成本、真正单片的超高频无线收发器, 为低功耗无线应用而设计。整个应用电路的无线频率主要设定在 315MHz、433MHz、868MHz 和 915MHz 四个 ISM (工业、科学和医学) 频段上,也可以容易地设置为300MHz348MHz、400MHz 464MHz 和800MHz 928MHz 的其它频率上。芯片低电压(217V 316V )

    18、 供电并且功耗较低(接收数据时为1516mA、214kbo s、433MHz)、灵敏度高(112kbos 下为110dBm ) , 可编程控制的数据传输率最高可达500kbo s。CC1100 适用于电子消费产品、住宅、建筑的自动控制、无线警报和安全系统等诸多无线应用领域。 方案三:采用315m超外差无线收发模块。模块优点:成本低廉,频率稳定,接收灵敏度高。模块缺点:静态时会输出短暂针状干扰杂波,用于遥控没有问题,但用微处理器数传时要采取软件滤波;功耗较大,不适宜小容量电池供电应用。 综合各方面因素的考虑,我们选择方案一。2.5 本章小结本章介绍了本课题设计总体思路基本原理和框图及其要实现的功

    19、能,同时对框架的各个主要模块提出了明确的设计方案,为下文的硬件、软件设计奠定基础。第章 通讯系统实现的理论原理.1 MODBUS-RTU通讯协议内容简介 3.1.1物理层 通讯协议类型:Modbus-RTU 传输方式:RS485半双工 通讯地址:理论上可能的设备地址(1247) 通讯波特率:300BPS38400BPS 通讯介质:双绞线 通讯距离:大于 1000 米 3.1.2链路层 传输方式:主从半双工方式。 首先,主机的信号寻址到一台唯一的终端设备软起动器(从机);然后,在相反的方向上终端设备 (软起动器)发出的应答信号传输给主机。协议只允许在主机和终端设备(软起动器)之间,而不允许独立的

    20、终端设备之间的数据交换。这就不会使它们在初始化时占据通讯线路,而仅限于相应到达终端设备本机的查询信号。 数据帧格式:一个数据帧格式包括:1位起始位,8位数据位,偶校验位, 1位停止位。 数据包格式:表3-1 数据包格式地址功能码 数据 校验码 8-Bits8-BitsN 8-Bits 16-Bits数据格式说明: 本协议详细定义了校验码、数据序列等,这些都是特定数据交换的必要内容。当数据帧到达终端设备时,它通过一个简单的“端口”进入寻址到的设备,该设备去掉数据帧的“信 封”(数据头),读取数据。如果没有错误,就执行数据所请求的任务。然后,它将自己生成的数据加入到取得的“信封”中,把数据帧返回给

    21、发送者。返回的响应数据中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请求数据(Data)和一个校验码(Check)。终端从机能对来自主机的错误通讯进行识别,并做出不同的错误响应。 3.1.3地址(Address)域 地址域在帧的开始部分,由 8 位组成,理论上可能的设备地址(1247),这些位标明了用户指定的终端设备的地址,该设备将接收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应, 响应包含了该地址的查询应答。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台终端正与之进行通讯。在本次设计中我们

    22、采用RS232转485这个接口实现通讯,而因为RS485芯片的驱动能力有限,在实际应用中其实只能驱动40多个从机而已。3.1.4功能(Function)域 功能域代码告诉了被寻址到的终端执行何种功能操作。下表列出了所有本协议比较常用到的功能码、它们的意义及它们的初始功能。 表3-2 功能域01读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02读取输入状态取得一组开关输入的当前状态(ON/OFF)03读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05强置单线圈强置一个逻辑线圈的通断状态06预置单寄存器把具体二进值装入一

    23、个保持寄存器07读取异常状态取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定08回送诊断校验把诊断校验报文送从机,以对通信处理进行评鉴09编程(只用于484)使主机模拟编程器作用,修改PC从机逻辑10控询(只用于484)可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送11读取事件计数可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时12读取通信事件记录可是主机检索每台从机的Modbus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误13编程(184/384 484 584)

    24、可使主机模拟编程器功能修改PC从机逻辑14探询(184/384 484 584)可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送15强置多线圈强置一串连续逻辑线圈的通断3.1.5数据域 数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容 可能是数值、参考地址或者极限值。例如:功能域码告诉终端读取一个寄存器,数据域则需要指明从哪 个寄存器开始读及读取多少个数据,内嵌的地址和数据依照类型和从机之间的不同能力而有所不同。 3.1.6错误校验域 该域允许主机和终端检查传输过程中的错误。有时,由于电噪

    25、声和其它干扰,一组数据在从一个设 备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者终端不去响应那些传 输过程中发生了改变的数据,这就提高了系统的安全性和效率,出错校验使用了 16 位循环冗余的方法。 3.1.7错误检测 循环冗余校验(CRC)域占用两个字节,包含了一个 16 位的二进制值。CRC 值由传送设备计算出来, 然后附加到数据帧上,接收设备在接收数据时重新计算 CRC值,然后与接收到的 CRC域中的值进行比较,如果这两个值不相等,就发生了错误。CRC 运算时,首先将一个 16 位的寄存器预置为全 1,然后连续把数据帧中的 8 位字节与该寄存器的 当前值进行运算,

    26、仅仅每个字节的 8 个数据位参与生成 CRC,起始位和终止位以及可能使用的奇偶位都不影响 CRC运算。在生成 CRC值时,每个 8位字节与寄存器中的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测,如果是 1,该寄存器就与一个预设的固定值进行一次异或运算,如果最低位为 0,不作任何处理。上述处理重复进行,直到执行完了 8 次移位操作,当最后一位(第 8 位)移完以后,下一个 8位字节与寄存器的当前值进行异或运算,同样进行上述的另一个 8 次移位异或操作,当数据帧中的所有字节都作了处理,生成的最终值就是 CRC 值。 生成一个 CRC 值的流程为: 预置一个16

    27、 位寄存器为 0FFFFH(全 1),称之为 CRC 寄存器。 把数据帧中的第一个 8 位字节与CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器。 将 CRC 寄存器向右移一位,最高位填以 0,最低位移出并检测。 如果最低位为 0:重复第三步(下一次移位); 如果最低位为 1:将CRC寄存器与一个预设的固定值(0A001H)进行异或运算。 重复第3步和第 4 步直到 8 次移位,这样处理完了一个完整的八位。 重复第2步到第 5 步来处理下一个八位,直到所有的字节处理结束。 最终 CRC寄存器的值就是 CRC 的值。3.2 RS-485接口简介RS-485 标准理想地用于多分支(m

    28、ulti-drop )应用和远程接口中。它允许在一条数据线 上连接32 个发送器和接收器,非常适合于多分支应用。由于允许使用4000 英尺长的电缆, RS-485 收发器可以使用一个宽(7V+12V)共模方式范围来调整零电位偏差。因为RS-485 是一个差分接口,所以传输数据时完全可以抑制来自发送线的干扰。图3-1 RS485引脚说明3.3 NRF24L01无线模块内容简介无线收发单元采用2.4GHz单片高速2Mbps无线收发芯片nRF24L01,nRF2401是挪威NoRDIC SEMICONDUCTOR公司的产品,它把射频收发电路集成在一块芯片上,可以用MCU模拟SPI通信协议实现数字传输

    29、。通过编程,nRF2401芯片的射频工作频率和输出信号的功率等参量可以非常方便地调节。无线收发芯片nRF2401具有以下功能: 125个工作频道,工作频道之间的转换时间小于200us 无线通信数据具有地址检测和循环冗余检查。 信号的调制方式为频移键控(FSK) 最大数据传输速率1Mbps 最大输出功率0dB 独特的Shock Burst TM射频信号发射模式。该模式降低平均发射功率,降低对微控制器数据传输速率的要求。 接收灵敏度93dBm。 独特的DuoCeiverT模式。该模式支持两个不同工作频道的信号同时接收。 工作电压范围:1.9V一3.6V;具有正常、旁路和掉电3种供电模式。SPI 接

    30、口:SPI 接口是标准的 SPI 接口,其最大的数据传输率为 10Mbps。大多数寄存器是可读的。 SPI 指令设置:SPI 接口可能用到的指令在下面有所说明。CSN为低后 SPI 接口等待执行指令。每一条指令的执行都必须通过一次CSN 由高到低的变化。 表3-3 SPI指令格式指令名称指令格式 操作R_REGISTER000A AAAA读配置寄存器。AAAAA 指出读操作的寄存器地址W_REGISTER001A AAAA写配置寄存器。AAAAA 指出写操作的寄存器地址 只有在掉电模式和待机模式下可操作。R_RX_PAYLO0110 0001读RX 有效数据:1-32 字节。读操作全部从字节0

    31、 开始。当读RX有效数据完成后,FIFO 寄存器中有效数据被清除。应用于接收模式下。W_RX_PAYL1010 0000写TX 有效数据:1-32 字节。写操作从字节0 开始。应用于发射模式下FLUSH_TX1110 0001清除TX FIFO 寄存器,应用于发射模式下。FLUSH_RX 1110 0010清除RX FIFO 寄存器,应用于接收模式下在传输应答信号过程中不应执行此指令。也就是说,若传输应答信号过程中执行此指令的话将使得应答信号不能被完整的传输。REUSE_TX_P 1110 0011重新使用上一包有效数据。当CE 为高过程中,数据包被不断的重新发射。在发射数据包过程中必须禁止数据包重利用功能。 NOP1111 1111空操作。可以用来读状态寄存器。 R_REGIST


    注意事项

    本文(MODBUS协议的测温系统.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开