在空闲线多处理器协议中(ADDR/IDLE MODE位为0),数据块被各数据块间的空闲时间分开,该空闲时间比块中数据帧之间的空闲时间要长。一帧后的空闲时间(1O个或更多个高电平位)表明新块的开始,每位的时间可直接由波特率的值(bit/s)计算,空闲线多处理器通信格式如图1所示。

图1 空闲线多处理器通信格式
(1)空闲线模式操作步骤
①接收到块起始信号后,SCI被唤醒。
②处理器识别下一个SCI中断。
③中断服务子程序将接收到的地址与接收节点的地址进行比较。
④如果CPU的地址与接收到的地址相符,则中断服务子程序清除SLEEP位,并接收块中剩余的数据。
⑤如果CPU的地址与接收到的地址不符,则SLEEP位仍保持在置位状态,直到检测到下一个数据块的开始,否则CPU都不会被SCI端口中断,继续执行主程序。
(2)块起始信号
有两种方法发送块的开始信号。
方法1:特意在前后两个数据块之间增加lO位或更多位的空闲时间。
方法2:在写SCITXBUF寄存器之前,SCI口首先将TXWAKE位(SCICTL1,位3)置1。这样就会自动发送11位的空闲时间。在这种模式中,除非必要,否则串行通信线不会空闲。在设置TXWAKE后发送地址数据前,要向SCITXBUF写入一个无关的数据,以保障能够发送空闲时间。
(3)唤醒暂时(WUT)标志
与TXWAKE位相关的是唤醒暂时(WUT)标志位,这是一个内部标志,与TXWAKE构成双缓冲。当TXSHF从SCITXBUF装载时,WUF从TXWAKE装入,TXWAKE清0。如图2所示。

图2 双缓冲的WUT和TXSIIF
(4)块的发送开始信号
在块传送过程中需要采用下列步骤发送块开始信号:
①写1到TXWAKE位。
②为发送一个块开始信号,写一个数据字(内容不重要)到SCITXBUF寄存器。当块开始信号被发送时,写入的数据字被禁止,且在块开始信号发送后被忽略。当TXSHF(发送移位寄存器)再次空闲后,SCITXBUF寄存器的内容被移位到TXSHF寄存器,TXWAKE的值被移位到WUT中,然后TXWAKE被清除。由于TXWAKE置1,在前一帧发送完停止位后,起始位、数据位和奇偶校验位被发送的11位空闲位取代。
③写一个新的地址值到SCITXBUF寄存器。
在传送开始信号时,必须先将一个无关数据写入SCITXBUF寄存器,从而使TXWAKE位的值能被移位到WUT中。由于TXSHF和WUT都是双级缓冲,在无关数据字被移位到TX-SHF寄存器后,才能再次将数据写入SCITXBUF。
(5)接收器操作
接收器的操作和SLEEP位无关,然而在检测到一个地址帧之前,接收器并不对RXRDY位和错误状态位置位,也不申请接收中断。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。