1
CKS32F107xx系列在支持正常USART功能的同时,亦支持LIN(局域互联网)模式。
LIN模式是通过设置USART_CR2寄存器的LINEN位选择。在LIN模式下,下列位必须保持为0:
USART_CR2寄存器的CLKEN位
USART_CR3寄存器的STOP[1:0],SCEN,HDSEL和IREN
LIN发送
在前几讲中,对USART发送器进行了部分介绍,其所描述的同样步骤适用于LIN主发送,但和正常USART发送有以下区别:
清零M位以配置8位字长
置位LINEN位以进入LIN模式。这时,置位SBK将发送13位’0’作为断开符号。然后发一位’1’,以允许对下一个开始位的检测。
LIN接收
当LIN模式被使能时,断开符号检测电路被激活。该检测完全独立于USART接收器。断开符号只要一出现就能检测到,不管是在总线空闲时还是在发送某数据帧其间,数据帧还未完成,又插入了断开符号的发送。
当接收器被激活时(USART_CR1的RE=1),电路监测RX上的起始信号。监测起始位的方法同检测断开符号或数据是一样的。当起始位被检测到后,电路对每个接下来的位,在每个位的第8,9,10个过采样时钟点上进行采样。如果10个(当USART_CR2的LBDL=0)或11个(当USART_CR2的LBDL=1)连续位都是’0’,并且又跟着一个定界符,USART_SR的LBD标志被设置。如果LBDIE位=1,中断产生。在确认断开符号前,要检查定界符,因为它意味RX线已经回到高电平。
如果在第10或11个采样点之前采样到了’1’,检测电路取消当前检测并重新寻找起始位。如果LIN模式被禁止,接收器继续如正常USART那样工作,不需要考虑检测断开符号。
如果LIN模式没有被激活(LINEN=0),接收器仍然正常工作于USART模式,不会进行断开检测。如果LIN模式被激活(LINEN=1),只要一发生帧错误(也就是停止位检测到’0’,这种情况出现在断开帧),接收器就停止,直到断开符号检测电路接收到一个’1’(这种情况发生于断开符号没有完整的发出来),或一个定界符(这种情况发生于已经检测到一个完整的断开符号)。
图1说明了断开符号检测器状态机的行为和断开符号标志的关系。图2给出了一个断开帧的例子。
图1 LIN 模式下的断开检测(11 位断开长度—设置了 LBDL 位)
图2 LIN 模式下的断开检测与帧错误的检测
全部0条评论
快来发表一下你的评论吧 !