图
1 RS485 串口通信电路设计
2 基于 MODBUS 协议的通信程序设计
2.1 MODBUS 协议的主从编程方法
触摸屏和
DSP 按照 MODBUS 协议通信,将触摸屏作为主站,DSP 作为从
站,串口连接采用
RS485.触摸屏和 DSP 的通信是有触摸屏发起的,DSP 采用中
断方式响应触摸屏发送来的数据,非通信情况下
DSP 可以做其它更多的工作。
当触摸屏有数据发送给
DSP 时,触发 DSP 接收中断,DSP 进入接收中断服务子
程序,此时,触摸屏发送给
DSP 的是一个完整的数据帧,至少包含 8 个字节的
数据长度,在完整读取这组数据后,
DSP 对其进行处理。首先进行从设备站号匹
配
(本文中 DSP 站号设为 07),如果匹配不成功则 DSP 不响应触摸屏的查询,
DSP 不回送任何信息;如果匹配成功则进行 CRC 校验,若 CRC 校验出错,则查
询失败,不返回数据信息
;若 CRC 校验正确,则进行下一步的命令解析,并返
回给触摸屏对应的数据信息。
下面简要介绍如何从
DSP 中读取几个模拟量并显示在触摸屏上,读可读写
模拟量寄存器的功能码是
03.
触摸屏发送的命令为:
[设备地址] [功能码 03] [起始寄存器地址高 8 位] [低
8 位] [读取的寄存器数高 8 位] [低 8 位][CRC 校验的低 8 位] [CRC 校验的高 8 位].
例如:
07 03 00 03 00 02 34 6D.此命令说明要从 DSP 的起始地址为 00 03 的
寄存器中读取两个模拟量。
此时,若设备地址匹配且
CRC 校验正确,则 DSP 会返回数据给触摸屏。
DSP 返回的数据为:[设备地址] [功能码 03] [返回的字节个数][数据 1][数据
2]…[数据 n][CRC 校验的低 8 位] [CRC 校验的高 8 位].