从机无法主动给主机发送数据,必须是主机先主动给从机发送数据
系统设备上电时,所有设备都应该处于接收状态
主机轮询,从机应答
通讯时主机切换成发送模式然后切换成接收模式来接受从机数据
帧结构 = 地址 + 功能码+ 数据 + 校验
- 地址: 占用一个字节,范围0-255,其中有效范围是1-247,其他有特殊用途,比如255是广播地址(广播地址就是应答所有地址,正常的需要两个设备的地址一样才能进行查询和回复)。
- 功能码:占用一个字节,功能码的意义就是,知道这个指令是干啥的,比如你可以查询从机的数据,也可以修改数据,所以不同功能码对应不同功能。
- 数据:根据功能码不同,有不同结构,在下面的实例中有说明。
- 校验:为了保证数据不错误,增加这个,然后再把前面的数据进行计算看数据是否一致,如果一致,就说明这帧数据是正确的,我再回复;如果不一样,说明你这个数据在传输的时候出了问题,数据不对的,所以就抛弃了。
断帧时间:3.5个字符 一个字节10bit(起始位+停止位) 波特率9600 3.5*10/9600=3.6ms
一般使用10ms来作为断帧时间,把不同数据包给分开。
一、查询命令
1.主机发送查询命令
2.从机发出应答
二、写命令
1.主机发送写命令
2.从机发出应答
写命令,从机发出的应答和主机发送的命令相同
写多个寄存器: