导言
跟着轿车智能化程度的进步和迅 速升级换代的需求,轿车电子网络正在由集中式操控向分布式操控开展。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总线有用弥补的 初衷。
有限状态机在LIN总线开发中的使用
引言随着汽车智能化程度的提高和迅速升级换代的需要,汽车电子网络正在由集中式控制向分布式控制发展。LIN总线作为CAN总线的有效补充,以低速率和低成本的实现有效解决了分布式控制带来的成本增加问题。在笔者
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/224354.html