软件协议模式可以实现多机通讯;同时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的数据),唤醒多个从机,实现多个从机同步。
地址唤醒可以唤醒单个从机,从机静默时发送地址帧,从机自动对比地址,地址配对正确则该从机唤醒,否则继续进入静默。MSB为1的字节被认为是地址,否则被认为是数据
关于从机地址的设置:
测试模式可以软件设定,但批量生产时地址的设置:按键结合UI、拨码开关、主机通过通讯设置。。
协议栈:MODBUS
自定义协议:https://wenku.baidu.com/view/2ece751cc281e53a5802ffa4.html