目录 |
多机通信是指在一个通信控制领域内有两台以上的计算机或单片机之间进行数据和信息的传输和交换,实现一对多的通信模式。
在多机通信模式下,数据帧一般采用:1位起始位+9位数据位+校验位(可选)+1或2个停止位。其中第9位(RXB8)表征该帧是地址帧还是数据帧。当帧类型表征位为“1”时,表示该帧数据为一个地址帧;当帧类型表征位为“0”时,表示这个帧为一个数据帧。此外,也可以在编程时,用8位数据位+奇偶校验位的数据帧格式来代替9位数据位+无奇偶校验位的数据帧格式。
对于一个作为主机的处理器,可以使用9位数据帧格式。如果传输的是一个地址帧就将第9位(TXB8)置1,如果是一个数据帧就将它清零。在这种帧格式下,从处理器必须工作于9位数据帧格式。在多处理器通信模式下进行数据交换的步骤:
(1)所有从处理器都工作在多处理器通信模式(MPCM=1)。
(2)通信开始是由主机先发送一个地址帧,所有从机都会接收并读取此帧。从处理器UCSRA寄存器的RXC正常置位,表示接收到地址帧。
(3)每一个从机都会读取UDR寄存器的内容来确定自己是否被寻址。如果被寻址,就将UCSRA的MPCM位清零,等待接收数据;否则,保持MPCM为“1”,等待下一个地址帧的接收:
1)作为1号从机的MCU处理过程为,收到地址帧后,判定读取UDR数据0X01为自己的地址,将MPCM位置“0”,接收之后所有主机下发的数据帧,直到下一个地址帧为止。
2)其他从机MCU的处理过程,收到地址帧后,判定读取UDR数据0X01不是自己的地址,将MPCM位置“1”,这样他们将忽略主机随后发送的数据帧,直到主机再次发送地址帧。
(4)当被寻址的从机MCU接收完最后一个数据帧后,将MPCM位置位,等待下一个地址帧的出现,然后从步骤(2)开始重复。