现实中,如果两个人同时说话,怎样来决定谁先说呢?有时候是嗓门最大的先说,而这基本上也是控制器局域网 (CAN) 总线的工作方式。
在一条CAN总线中,所有收发器发出消息的优先级(从最低有效位 (LSB) 到最高有效位 (MSB));最高优先级的消息将被发送。特别是对于CAN来说,如果两个收发器同时发送,他们都“张开嘴” 说一个“0”(逻辑高电平);数值越低,这条消息的重要性越高。换句话说,如果两个收发器都在“喊”,首先“闭嘴”的收发器必须等到另外一个收发器完成发送之后才能说话。整个过程被称为仲裁,更确切的说是非破坏性仲裁。
在设计通信系统时,你可以随意使用很多稳健的语言。其中的一些表达方式比较成熟并且意思明确,而其他的语言仍旧在不断的发展中,比如说CAN总线。CAN是一款非常稳健的差分信令通信协议。这款协议最初设计用于汽车应用,在无需主机控制器的情况下,实现微控制器、传感器或集成电路之间的通信。
CAN的工作原理也是其非常稳健的一个原因。他的差分信令拓扑结构使其能够轻松应对耦合噪声。在出现由接地层噪声导致的位移时,这一特性可以使传输线路,CANL和CANH保持在一起。与其他差分协议不同的是,当CAN处于接收状态(一个逻辑1)时,两条线路都将处于同样电压,通常为VCC/2(除非是一款3V CAN总线收发器,那样的话就是完全另外一种对话方式了)。当CAN线路被分别驱动时,这成为主导状态和一个逻辑0。将CANL和CANH想象为一张嘴的两片嘴唇:L是下嘴唇,而H是上嘴唇。当你想说话时,你告诉自己分开你的嘴唇并张开嘴。这是一个低电平有效逻辑信令,其中“0”在你开口说话时置位。当你不在说话时,你的嘴唇紧闭,CANH和CANL线路一起处于VCC/2电平上。
图1:CAN信令和逻辑电平
除了这些基本原理之外,CAN总线也在不断的发展中。全新调整和增强功能正在使这项技术更加高效,并且释放出全新的性能水平。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)