多机通讯

软件协议模式可以实现多机通讯;同时51单片机和STM32机都有硬件多机通讯的策略(提高抗干扰能力和软件上相应多机的开销)

一stm32作为多机通讯的从机STM32多机通信http://blog.chinaunix.net/uid-30058258-id-4935903.html:USART可以进行多机处理器通信(地址4bit所以最多16位从机《STM32多机通信与51单片机的不同》http://www.openedv.com/posts/list/64004.htm)原理就是使从机处于静默模式,由主机在需要的时候发送指令唤醒从机,并传输数据。

连接方法很简单,主机的TX输出与从机的RX端口直接相连,从机TX端口要经过与门与主机RX端口连接,或者各自连一个IN4148后与主机RX相连

如果是TTL电平则所有的从机TX上拉接到主机的RX上。如果是RS232电平则需要与门逻辑(从设备的串口TX必须配置为漏极开路,不能是推挽方式,如果配置成推挽方式,会导致灌电流过大,低电平低不下去问题

多机通信方式有2种:空闲帧唤醒和地址唤醒。
空闲帧唤醒可以同时唤醒所有从机,在从机处于静默模式时发送空闲帧(即所有位均为1的数据),唤醒多个从机,实现多个从机同步。
地址唤醒可以唤醒单个从机,从机静默时发送地址帧,从机自动对比地址,地址配对正确则该从机唤醒,否则继续进入静默
MSB1的字节被认为是地址,否则被认为是数据

关于从机地址的设置:

测试模式可以软件设定,但批量生产时地址的设置:按键结合UI、拨码开关、主机通过通讯设置。。

协议栈:MODBUS

自定义协议:https://wenku.baidu.com/view/2ece751cc281e53a5802ffa4.html

 

 

原文地址:https://www.cnblogs.com/jieruishu/p/8109042.html