Modbus通信协议Modicon公司1979在发展中,适用于工业现场总线协议控制。Modbus通信系统包含芯片的节点,并与组合物可编程控制的公共传输线,它的目的是收集和监视多个节点的数据。Modbus协议采用主从模式,通信系统具有多个节点的从一台主机机监视器。最多支持从节点247个。每一个从机均有自己独立的从机地址。并且改地址可以被主机识别。
可以支持Modbus协议的通讯系统有RS-232。RS-422,RS-485等。同一时候Modbus协议具有标准、开放、免费、帧格式简单等特点而被广大project师所採用。
Modbus协议中传输数据採用ASCII和RTU两种模式。当中ASCII传输方式表示的数据通俗易懂。便于和PC机直接通信识别,但其缺点是採用单字节表示一个数据,传输同样的数据须要很多其它的帧数和时间。RTU模式採用压缩的十六进制表示方式。一个字节能够压缩装载两个数据,这样同样的帧数下RTU模式能够传输很多其它的数据。
Modbus数据帧校验分两种方式:CRC循环冗余校验和LRC纵向冗余校验。
以下使用Proteus仿真atmega128.两片128之间进行串口通讯,串口通讯上跑的是简单的Modbus协议。
仿真图例如以下所看到的:
说明:U1使用1602进行接收数据的显示。
数据帧採用RTU模式,可是为了方便1602进行显示。传输的数据帧消息採用了0X3x(0,1,2,3...等数的ASCII表示形式,这样能够直接送入1602进行显示。从而方便模拟)。图片中间的三个按键是U2的三个中断。
按下之后U2单片机会发送一帧数据。数据内容是0X30, 0X31,0X33,0X01。0X34。0X37。
依照Modbus协议0X30,0X31是表示的从机地址,0X33是表示命令字符。0X01表示数据域长度,0X34表示数据域。0X37是进行的LRC校验。我们採用这样的方式进行简化是为了方便1602进行显示,当中0x01是ASCII码中的空格’‘也可以在1602中进行显示。
单片机U1的PB口和PE口状态分别显示了LRC校验字节和数据域首字节。
当按下button1的时候U2发送数据帧,U1进行接收而且对接收数据继续校验,假设校验无误。那么进行显示。
按下button1结果例如以下
中间的01因为是空格的ASCII码值所以1602显示空格。因为数据域我是採用数组存放数据方式。LCD显示代码以C语言中的’ ’结束显示。所以校验字节没有显示出来。我将它投影到portB上,portB的状态是0X37。这样也就验证了这个简单的Modbus协议的正常传输。
按动U2的button2能够主动产生一个LRC校验错误。(我在代码校验的时候也没有採用标准的LRC校验。仅仅是进行了累加校验)。U2在对数据帧填充完成的时候刻意更改校验值。将更改后的数据帧发送给U1,U1接收后进行校验则产生校验错误提示。按下button2结果如图
从虚拟终端中我们能够看出。我们手动更改了校验值,由0x37更改成0XFF,那么U1接收到的数据进行校验那么就会产生校验错误提示。。
实际校验结果还是0X37,可是我们在发送前将校验改成了0XFF。导致接收方校验0x37 !=0xff,从而产生错误。。
按下button3回产生数据帧错误。按下button3,U2刻意发送一个不完整的数据帧。假设数据帧不完整,U1不可能进行无限时间的等待。所以U1使用定时器0进行超时推断,假设超过10ms,数据帧依旧不完整那么推断此数据帧为错误帧。
结果例如以下。
在事件3中我们能够让U2不发送校验码,导致该帧数据不完整。U1等待10ms后判定该数据帧是帧错误。。
上一篇:AVR第9课:定时器1的CTC模式
下一篇:IAR for AVR 配置JTAGICE mkII仿真时不擦EEPROM
设计资源 培训 开发板 精华推荐
- Si2493FS10-EVB,带有 UART 接口的 Si2493 ISOmodem 芯片评估板
- NCP3064PDBCKGEVB:PDIP8 降压演示评估板
- LT8602IUJ 汽车输入降压至 5V、3.3V、1.8V 和 1.2V 的典型应用电路
- 18650电池盒_4节串联
- 柯南勋章
- 物联网AI摄像头
- EVAL-ADXL375Z-S,用于评估 ADXL375 3 轴 ±200 g 数字加速度计的评估板
- DC2088A,演示板具有高密度 LTC3880 降压型 DC/DC 转换器,具有电源系统管理 7V = VIN = 14V,VOUT 范围:0.8V 至 1.8V @ 高达 50A
- WRL-15574,SparkFun Thing Plus 开发套件 - Artemis
- AD5343 并行接口、双电压输出、12 位 DAC 的典型应用
- 百度大脑EdgeBoard 边缘AI计算盒(FZ5)免费测评体验
- 有奖直播|TI毫米波雷达在汽车领域的最新应用
- 【EE团拍卖】RealARM6410 零元风暴来袭,你能HOLD住吗?
- ADI公司再生能源—能源储存解决方案
- TE Connectivity 提供更懂你的连接解决方案
- 【EEWORLD第二十七届】2011年06月社区明星人物揭晓!
- 降碳行动:寻找身边8位单片机,抢楼赢ST最新M0开发板!
- 有奖直播|ADI 惯性MEMS应用那些事
- 有奖测评 | 英飞凌新品情报站:最新 5V XENSIVTM PAS CO2 传感器 套件测评
- 逛村田在线云展厅,了解通信、移动、工业+环境、健康四大领域的应用干货!