当前位置:首页 > 汽车电子 > 汽车电子
[导读] 随着汽车智能化程度的提高和迅速升级换代的需要,汽车电子网络正在由集中式控制向分布式控制发展。LIN总线作为CAN总线的有效补充,以低速率和低成本的实现有效解决了分布式控制带来的成本增加问题。在笔者研制的车

 随着汽车智能化程度的提高和迅速升级换代的需要,汽车电子网络正在由集中式控制向分布式控制发展。LIN总线作为CAN总线的有效补充,以低速率和低成本的实现有效解决了分布式控制带来的成本增加问题。在笔者研制的车身分布式控制系统中,采用CAN总线和LIN总线连接各个控制单元,完成单元之间的数据交换,系统结构如图1所示。

图1 车身控制系统结构图

  该车身控制系统包括车灯模块、车门模块、车内模块、控制面板模块和仪表盘模块,分别完成对相应负载的控制和监测,同时通过CAN总线完成数据交换。其中车灯模块和车门模块基于CAN/LIN总线以分布式的形式实现。本文重点论述的是LIN协议的实现。

  LIN协议分析和状态机的设计

  有限状态机是由一组状态、一个起始状态、输入以及将输入与当前状态转换为下一个状态的转换函数所组成,它是一个特殊的有向图,包括一些状态节点和连接这些状态的有向弧。对特定的状态机而言,首先要建立一些有效的状态,然后设计相应的算法完成状态的转换。

  一个完整的LIN帧由间隔场、同步场、PID、数据场以及校验和场组成,LIN协议驱动器要实现的便是依序完成间隔场和同步场的检测、ID的发送和接收、数据场字节的发送和接收,最后完成校验。状态机形式与LIN协议数据链路层规范的定义相吻合,可以通过建立相应的状态来描述相应的场从而描述整个 LIN帧,且可以通过监控当前状态,按照当前接收到的字节切换其状态,从而以状态转换的方式依序完成各个场的发送和接收。设计以下几个状态:IDLE、BREAK、SYNBYTE、 IDENTIFY、TRANCEIVE和 CHECKS UM,设置标志位state反映LINdriver的状态,idle,pendin g,succe ss,当处于LIN正确通讯的中间状态时,state=pending,当LIN通讯失败,state=idle,当完成一次完整的LIN通讯,state=success。

  状态的监控和转换是在UART接收中断服务程序中实现的。因为LIN总线采用单根线通信,UART外接 LIN物理层收发器,所以当UART发送的总线数据和接收到的总线数据一样时,UART接收到的数据便是UART发送的数据,在接收中断服务程序中完成状态转换算法,如图2。通过判断当前状态和接收到的数据切换LINdriver的状态,同时更新标志位。

 
图2 LIN协议状态机

  软件设计

  软件设计流程如图3所示。首先进行初始化,主要包括UART模块的初始化和I/O脚初始化,设置波特率,使能接收中断,设置LIN物理层收发器相应I/O脚方向及电平,然后在UART接收中断服务程序中以状态机的形式完成LIN通讯。下面结合LIN帧结构和 LINdriver的状态转换对该状态机算法进行阐述。

图3 软件流程图

LIN帧以间隔场起始的,LIN- driver的起始状态为IDLE,此时state=idle。间隔场是一个13位0的场,引起接收中断同时置位UART模块的frameerror位,在UART接收中断服务程序中,判断接收到的数据为0x00且frameerror标志位为1时,便认为接收到了间隔场,这时LINdriver从 IDLE切换到BREAK,state=pending。

  同步场是一个0x55的字节,当前状态为BREAK时,如果接收到的数据为 0x55,LINdriver切换为SYNBYTE,state=pending保持不变,否则切换为IDLE,state=idle;

  PID 是带奇偶校验的ID,它以低6 位 ID0-ID5表示ID,高两位P0、P1是对 该ID的奇偶校验,当前状态为SY NBYTE时,收到的数据便为PID。首先按照奇偶校验算法对PID进行校验,校验通过再按照应用层协议对该PID进行过滤,过滤成功则 LINdriver切换为TRANCEIVE,校验失败或者过滤失败则LINdriver返回IDLE,state=idle;

  当前状态为 TRANCEIVE时,接收到的数据便是数据场中字节,当数据接收完毕,LINdriver切换为CHECKSUM。当前状态为CHECKSUM时,接收到的数据便为校验和场,校验成功,便置state=success,表示成功地完成了一次LIN通讯,这时数据场中的数据是有效的,可以用于应用程序;校验失败表示LIN通讯失败,数据场中数据无效。

  结语

  本文针对普通单片机,借助于其片上 UART,以状态机的形式实现了LIN协议驱动,降低了LIN的实现成本,运行可靠稳定,符合LIN总线以低成本作为CAN总线有效补充的初衷。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

串行通信是一种通信方式,数据在通信线上按位进行传输。每位数据占据固定的时间长度,使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

关键字: 串行通信 UART

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

UART(通用异步收发器),这是用于全双工串行通信的最常见协议。它是设计用于执行异步通信的单个LSI(大规模集成)芯片。该设备将数据从一个系统发送到另一系统。

关键字: 数据通信协议 UART 异步收发器

UART将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: UART 通信协议

加州卡尔弗城2023年8月3日 /美通社/ -- 蜗牛游戏公司(纳斯达克代码:SNAL)("蜗牛游戏"或"公司"),一家全球领先的独立互动数字娱乐开发商和出版商,今日宣布与Wolp...

关键字: TI GE AI STATE

更加智能的农业用喷药机,为农民带来更大收益 伦敦2023年3月14日 /美通社/ -- 凯斯纽荷兰工业集团收购了Augmenta,加速发展创新的“感知与执行”技术...

关键字: 机器视觉 UG STATE FORWARD

上海2023年2月10日 /美通社/ -- 作为全球领先的多元化科技创新企业,3M长期以来致力于为多元化的STEM(科学、技术、工程及数学)人才创造成长的沃土,借助科学的力量携手各界创造更美好的未来。在第八个&...

关键字: SCIENCE BSP INDEX STATE

苏州2023年2月3日 /美通社/ -- 2023年2月2日,国际独立第三方检测、检验和认证机构德国莱茵TUV大中华区(以下简称"TUV莱茵")为科沃斯家...

关键字: UART 机器人 科沃斯 GO

暴雪与网易的授权协议将于2023年1月23日到期 暴雪部分国服游戏将随即下线 上海2022年11月17日 /美通社/ -- 2022年11月17日,暴雪娱乐今日宣布,其与网易公司现有的授权协议将于2...

关键字: STATE FORWARD BSP FUTURE

发个方便测试I2C、SPI、1Wire接口的工具模块 总的思路是通过USB或者UART接口发送一些协议字符串,由模块转换成上面几种接口的硬件时序电信号,实现与这几种接口芯片、设备的快速测试。 首先声明一下,大家都是搞...

关键字: 可编程USB UART I2C SMBusS SPI
关闭
关闭