简介
在地址位多处理器协议中(ADDR/IDLE MODE位为1),最后一个数据位后有一个附加位,称之为地址位。数据块的第一个帧的地址位设置为1,其他帧的地址位设置为0。地址位多处理器模式的数据传输与1数据块之间的空闲周期无关(参看图在SCICCR寄存器中的位3——ADDR/IDLE MODE位)。一根地址线只能表示1和0。
传输原理TXWAKE位的值被放置到地址位,在发送期间,当SCITXBUF寄存器和TXWAKE分别装载到TXSHF寄存器和WUT中时,TXWAKE清0,且WUT的值为当前帧的地址位的值.因此,发送一个地址需要完成下列操作:
1、TXWAKE位置1,写适当的地址值到SCITXBUF寄存器。当地址值被送到TXSHF寄存器又被移出时,地址位的值被作为1发送。这样串行总线上其他处理器就读取这个地址。
2、TXSHF和WUT加载后,向SCITXBUF和TXWAKE写入值(由于TXSHF和WUT是双缓冲的,它们能被立即写入)。
3、TXWAKE位保持0,发送块中无地址的数据帧。2
一般情况下,地址位格式应用于11个或更少字节的数据帧传输。这种格式在所有发送的数据字节中增加了一位(1代表地址帧,0代表数据帧);通常12个或更多字节的数据帧传输使用空闲线格式。
(1)地址字节
发送节点(Talker)发送信息的第一个字节是一个地址字节,所有接收节点(Listener)都读取该地址字节。只有接收数据的地址字节同接收节点的地址字节相符时,才能中断接收节点。如果接收节点的地址和接收数据的地址不符,接收节点将不会被中断,等待接收下一个地址字节。
(2)Sleep位
连接到串行总线上的所有处理器都将SCI SLEEP位置1(SCICTL1的第二位),这样只有检测到地址字节后才会被中断。当处理器读到的数据块地址与用户应用软件设置的处理器地址相符时,用户程序必须清除SLEEP位,使SCI能够在接收到每个数据字节时产生一个中断。
尽管当SLEEP位置1时接收器仍然工作,但它并不能将RXRDY、RXINT或任何接收器错误状态位置1,只有在检测到地址位且接收的帧地址位是1时才能将这些位置1。SCI本身并不能改变SLEEP位,必须由用户软件改变。
(3)识别地址位
处理器根据所使用的多处理器模式(空闲线模式或地址位模式),采用不同的方式识别地址字节,例如:
●空闲线模式在地址字节前预留一个静态空间,该模式没有额外的地址/数据位。它在处理包含lO个以上字节的数据块传输方面比地址位模式效率高。空闲线模式一般用于非 多处理器的SCI通信。
●地址位模式在每个字节中加入一个附加位(也就是地址位)。由于这种模式数据块之间不需要等待,因此在处理小块数据时比空闲线模式效率更高。
(4)控制SCI TX和RX的特性
用户可以使用软仵通过ADDR/IDLE MODE位(SCICCR,位3)选择多处理器模式,两种模式都使用TXWAKE(SCICTL1,位3)、RXWAKE(SCIRXST,位1)和SLEEP标志位(SCICTL1,位2)控制SCI的发送器和接收器的特性。
(5)接收步骤
在两种多处理器模式中,接收步骤如下:
①在接收地址块时,SCI端口唤醒并申请中断(必须使能SCICTL2的RX/BK INT ENA位申请中断),读取地址块的第一帧,该帧包含目的处理器的地址。
②通过中断检查接收的地址启动软件例程,然后比较内存中存放的器件地址和接收到数据的地址字节。
③如果上述地址相吻合表明地址块与DSP的地址相符,则CPU清除SLEEP位并读取块中剩余的数据;否则,退出软件子程序并保持SLEEP置位,直到下一个地址块的开始才接收中断。