1 / 11

多机通信系统设计

多机通信系统设计. 3 、 多机通信系统设计. 在多处理器通信模式下,多个从处理器可以从一个主处理器接收数据。首先要通过解码地址帧来确定所寻址的是哪一个处理器。如果寻址到某一个处理器,它将正常接收后续的数据,而其他的从处理器会忽略这些帧直到接收到另一个地址帧。. 如果接收器所接收的数据帧长度为 5 到 8 位,那么第一个停止位表示这一帧包含的是数据还是地址信息。 如果接收器所接收的数据帧长度为 9 位,那么由第 9 位( RXB8 )来确定是数据还是地址信息。 如果确定帧类型的位(第一个停止位或第 9 个数据位)为 1 ,那么这是地址帧,否则为数据帧。.

dima
Download Presentation

多机通信系统设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 多机通信系统设计

  2. 3、多机通信系统设计 在多处理器通信模式下,多个从处理器可以从一个主处理器接收数据。首先要通过解码地址帧来确定所寻址的是哪一个处理器。如果寻址到某一个处理器,它将正常接收后续的数据,而其他的从处理器会忽略这些帧直到接收到另一个地址帧。

  3. 如果接收器所接收的数据帧长度为5到8位,那么第一个停止位表示这一帧包含的是数据还是地址信息。如果接收器所接收的数据帧长度为5到8位,那么第一个停止位表示这一帧包含的是数据还是地址信息。 如果接收器所接收的数据帧长度为9位,那么由第9位(RXB8)来确定是数据还是地址信息。 如果确定帧类型的位(第一个停止位或第9个数据位)为1,那么这是地址帧,否则为数据帧。

  4. 3.1 USART相关寄存器 USART控制和状态寄存器A-UCSRA Bit0–MPCM:多处理器通信模式 设置此位将启动多处理器通信模式。MPCM置位后,USART接收器接收到的那些不包含地址信息的输入帧都将被忽略。发送器不受MPCM设置的影响。

  5. 对于一个作为主机的处理器来说,它可以使用9位数据帧格式(UCSZ=7)。如果传输的是一个地址帧(TXB8=1)就将第9位(TXB8)置1,如果是一个数据帧(TXB=0)就将它清零。在这种帧格式下,从处理器必须工作于9位数据帧格式。对于一个作为主机的处理器来说,它可以使用9位数据帧格式(UCSZ=7)。如果传输的是一个地址帧(TXB8=1)就将第9位(TXB8)置1,如果是一个数据帧(TXB=0)就将它清零。在这种帧格式下,从处理器必须工作于9位数据帧格式。 使用5至8比特的帧格式是可以的,但是不实际,因为接收器必须在使用n和n+1帧格式之间进行切换。 下面即为在多处理器通信模式下进行数据交换的步骤:

  6. 1.所有从处理器都工作在多处理器通信模式(UCSRA寄存器的MPCM置位)。1.所有从处理器都工作在多处理器通信模式(UCSRA寄存器的MPCM置位)。 2.主处理器发送地址帧后,所有从处理器都会接收并读取此帧。从处理器UCSRA寄存器的RXC正常置位。 3.每一个从处理器都会读取UDR寄存器的内容已确定自己是否被选中。如果选中,就清零UCSRA的MPCM位,否则它将等待下一个地址字节的到来,并保持MPCM为1。 4.被寻址的从处理器将接收所有的数据帧,直到收到一个新的地址帧。而那些保持MPCM位为1的从处理器将忽略这些数据。 5.被寻址的处理器接收到最后一个数据帧后,它将置位MPCM,并等待主处理器发送下一个地址帧。然后第2步之后的步骤重复进行。

  7. 3.2 软件设计 /**************************************************** *作 者:电子工程学院 *功 能:UsartRX中断服务函数(Slave) *入口参数:无 *返 回 值:无 *注意事项:1、中断向量号:12 ****************************************************/ #pragma interrupt_handler UsartRX_isr:12 void UsartRX_isr(void) {

  8. if(Usart_RX_Cnt==0) { //如果地址匹配,就清零UCSRA的MPCM位 if(UDR==Scan_Slave_Address()) { Usart_RX_Cnt=1; //清零UCSRA的MPCM位 Usart_MPCM_Disable(); //回传地址 Usart_Send_9bit(1,Scan_Slave_Address()); } }

  9. else if(Usart_RX_Cnt==1) { //如果命令匹配,返回数据给主机 if(UDR==Slave_Echo_CMD) { Usart_RX_Cnt=0; Usart_Send_9bit(1,Get_Slave_Data()); Usart_MPCM_Enable(); } } }

  10. 3.3 硬件电路设计

More Related