低成本LIN总线协议在汽车网络中的应用

时间:2012-07-07来源:网络

图1显示了LIN在汽车中的典型应用。总线上的地电位信号为显性状态,只要任何节点将总线电压拉低,就会出现这一状态。当总线处于电池电压且所有节点都使总线处于悬空状态时,会出现隐性状态。在空闲状态下,总线通过上拉电阻悬空为高电平。

LIN总线的工作电压范围为9~18V,但总线上所有部件都必须能够承受40V电压。通常,单片机通过线路驱动器/接收器与总线隔离,这种方案下总线每个节点都端接为VBAT电平,主节点通过1kΩ电阻端接,从节点则通过20-47kΩ的电阻端接。总线最大设计长度为40米。

每个字节都利用起始位和停止位作为头尾标志位。起始位与空闲状态相反,为0,而停止位则等同空闲状态(即1)。在每个字节内,数据从最低位(LSB)开始传送。

报文协议

主节点用于控制LIN总线,它通过对从节点进行查询,将数据发布到总线上。从节点仅在主节点的命令下发送数据,从而在无需仲裁的情况下实现双向通讯。报文的传送是在主节点发出一个同步间隔脉冲后开始的,然后跟随的是同步字段和报文字段。主节点通过在每个报文的开始处发送同步字段可设定整个总线时钟。

每条报文的第二字节是一个标识符字节,它告诉LIN总线随后将发送的是什么数据,并指明哪个节点应该应答及应答的长度是多少。对于给定的命令,只有一个从节点可以应答。

从节点仅在主节点的控制下在LIN总线上发送数据。一旦数据发布到总线上,任何节点都可以接收该数据。因此,一个从节点向其它从节点发送数据无需主节点干预。

由于LIN协议使用低成本RC振荡器,因此从节点必须检测主节点每次发送的波特率,并调整为当前速率,所以每次通讯都以同步字段开始,它是一个0、1交替出现的字节。

同步字段之后是标识符字段,它告诉LIN总线接着出现的内容。该字段进一步分为三个子字段:4位(0-3)用于对总线上的设备进行寻址;2位(4-5)指明此后报文的长度,最后2位(6-7)用于奇偶校验。

除休眠命令之外,LIN协议没有定义任何报文的内容,其它命令是在具体应用中定义的。

错误检测

以下错误必须在每一节点处进行检测和计数,一旦出现错误,该命令就要被丢弃,并记录这一错误事件。位错误——正在发送的节点应该对希望发送的数据与总线上实际出现的数据进行比较,控制器必须等待足够时间以确保总线对发出的数据做出反应,然后才可测试这一数据。假定总线响应信号的最小边沿变化速率为1V/μs,最大总线电压为18V,那么发送器应等待18μs后才可进行测试。校验和错误——每条报文的数据内容都受到校验和字节的保护,该字节是数据字节相加后取256模的余数再取反的结果。奇偶校验——命令字节使用2个奇偶位来保护其它6个数位,这两个数位在接收后要重新计算,再与接收结果进行比较。

1 2 3

关键词: LIN总线协议 汽车网络 电子控制

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版