位置:51电子网 » 技术资料 » 嵌入式系统

空闲线多处理器模式

发布时间:2009/1/15 0:00:00 访问次数:993

  在空闲线多处理器协议中(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)



  在空闲线多处理器协议中(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)



相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!