理论教育 空闲线多处理器模式优化方案

空闲线多处理器模式优化方案

时间:2023-06-15 理论教育 版权反馈
【摘要】:在空闲线多处理器协议中,数据块与数据块之间通过较长的空闲时间分开,而且这个空闲时间比数据块内部帧与帧之间的空闲时间长得多。空闲线协议通过在某一帧之后使用10位或更多的空闲时间来指示一个新数据块的开始。图10-4 空闲线多处理器模式的数据格式空闲线模式的执行步骤空闲线模式的执行步骤如下:1)收到块起始信号后唤醒SCI。2)处理器识别下一个SCI中断。

空闲线多处理器模式优化方案

在空闲线(Idle-Line)多处理器协议中(ADDR/IDLEMODE=0),数据块与数据块之间通过较长的空闲时间分开,而且这个空闲时间比数据块内部帧与帧之间的空闲时间长得多。空闲线协议通过在某一帧之后使用10位或更多的空闲时间来指示一个新数据块的开始。其中,每一位的时间可以直接从波特率算得。空闲线多处理器数据格式如图10-4所示。

978-7-111-57271-8-Chapter10-5.jpg

图10-4 空闲线多处理器模式的数据格式

(1)空闲线模式的执行步骤

空闲线模式的执行步骤如下:

1)收到块起始信号后唤醒SCI。

2)处理器识别下一个SCI中断。

3)中断服务程序将接收到的地址和自己存储的地址进行比较。

●如果地址相同,即本设备被寻址到,则服务程序清除SLEEP位,并且接收该地址块余下的数据部分。

●如果地址不相同,即本设备未被寻址,则保持SLEEP位为1。这将允许在SCI端口检测到下一个地址块开始信号前,CPU继续执行主程序,而不会中断。

(2)块起始信号

传送块起始信号可以有两种模式:(www.daowen.com)

1)通过延长上一块的最后一个数据帧与下一块的地址帧之间的时间,人为地产生一段10位或更长的空闲时间。

2)SCI在向SCITXBUF寄存器写数据之前先将TXWAKE位(SCICTL1寄存器的位3)置1,这样会发送一个准确的11位空闲时间。在这种模式中,串行通信线就不会产生不必要的空闲时间(在设置TXWAKE位之后,发送地址之前,需要将一个任意的字节写到SCITXBUF寄存器中以便SCI端口送出空闲时间)。

(3)唤醒临时标志(WUT)

WUT(Wake-up Temporary)与TXWAKE位相关。WUT是一个内部标志,并且与TXWAKE一起构成双缓冲器。当TXSHF从SCITXBUF中加载数据时,TXWAKE的内容就会加载至WUT中,同时TXWAKE被清为零。

发送块起始信号:为了在数据块发送顺序中送出一个长度为一帧的起始信号,需要按如下步骤操作:

1)向TXWAKE位写入1。

2)为了发送块起始信号,必须向SCITXBUF寄存器(发送数据缓冲器)写入一个数据字,数据内容可以是任何值。当块起始信号发出时,所写的第一个数据字无效被忽略。当释放TXSHF(发送移位寄存器)后,SCITXBUF的内容就会移入TXSHF,也将TXWAKE的值复制至WUT,最后清除TXWAKE。由于将TXWAKE设成1,所以起始位、数据位和奇偶校验位将会紧跟在上一帧停止位后由发送的11位空闲周期替代。

3)向SCITXBUF寄存器写入一个新的地址值。为了使TXWAKE位的值能够移入WUT,则需要将一个无用的数据字先写入到SCITXBUF寄存器中。由于TXSHF和WUT都是双缓冲器结构,所以当这个无效的数据字移入TXSHF寄存器后,用户可以向SCITXBUF(或TXWAKE)寄存器再写入需要发送的数据。

(4)接收器操作

串行通信接口SCI接收器的工作不依赖于SLEEP位的状态。然而,除非检测到地址帧,否则接收器既不会设置RXRDY位和其他错误状态位,也不会申请接收中断。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈