您好!欢迎访问亚博APp买球!
专注精密制造10载以上
专业点胶阀喷嘴,撞针,精密机械零件加工厂家
联系方式
陈小姐:13899999999
周先生:13988888888
您当前的位置: 主页 > 新闻动态 > 常见问题 >

常见问题

基于UART以状态机的形式实现LIN通信

更新时间  2021-02-07 00:08 阅读
本文摘要:随着汽车智能化程度的提升和很快升级换代的必须,汽车电子网络正在由集中式掌控向分布式掌控发展。LIN总线作为CAN总线的有效地补足,以较低速率和低成本的构建有效地解决问题了分布式掌控带给的成本增加问题。车身分布式控制系统中,使用CAN总线和LIN总线相连各个掌控单元,已完成单元之间的数据交换,系统结构如图1右图。

亚博体彩英超合作伙伴

随着汽车智能化程度的提升和很快升级换代的必须,汽车电子网络正在由集中式掌控向分布式掌控发展。LIN总线作为CAN总线的有效地补足,以较低速率和低成本的构建有效地解决问题了分布式掌控带给的成本增加问题。车身分布式控制系统中,使用CAN总线和LIN总线相连各个掌控单元,已完成单元之间的数据交换,系统结构如图1右图。

图1车身控制系统结构图该车身控制系统还包括车灯模块、车门模块、车内模块、控制面板模块和仪表盘模块,分别已完成对适当阻抗的掌控和监测,同时通过CAN总线已完成数据交换。其中车灯模块和车门模块基于CAN/LIN总线以分布式的形式构建。本文重点阐述的是LIN协议的构建。

LIN协议分析和状态机的设计受限状态机是由一组状态、一个接续状态、输出以及将输出与当前状态切换为下一个状态的切换函数所构成,它是一个类似的有向图,还包括一些状态节点和相连这些状态的有向弧。对特定的状态机而言,首先要创建一些有效地的状态,然后设计适当的算法已完成状态的切换。

一个原始的LIN帧由间隔场、实时场、PID、数据场以及校验和场构成,LIN协议驱动器要构建的乃是依序已完成间隔场和实时场的检测、ID的发送到和接管、数据场字节的发送到和接管,最后已完成校验。状态机形式与LIN协议数据链路层规范的定义相吻合,可以通过建立相应的状态来叙述适当的场从而叙述整个LIN帧,且可以通过监控当前状态,按照当前接管到的字节转换其状态,从而以状态切换的方式依序已完成各个场的发送到和接管。设计以下几个状态:IDLE、BREAK、SYNBYTE、IDENTIFY、TRANCEIVE和CHECKSUM,设置标志位state体现LINdriver的状态,idle,pending,success,当正处于LIN准确通讯的中间状态时,state=pending,当LIN通讯告终,state=idle,当已完成一次原始的LIN通讯,state=success。

状态的监控和切换是在UART接管中断服务程序中构建的。因为LIN总线使用单根线通信,UART外接LIN物理层收发器,所以当UART发送到的总线数据和接管到的总线数据一样时,UART接管到的数据乃是UART发送到的数据,在接管中断服务程序中已完成状态切换算法,如图2。

通过辨别当前状态和接管到的数据转换LINdriver的状态,同时改版标志位。图2LIN协议状态机软件设计软件设计流程如图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的奇偶校验,当前状态为SYNBYTE时,接到的数据之后为PID。

首先按照奇偶校验算法对PID展开校验,校验通过再行按照应用层协议对该PID展开过滤器,过滤器顺利则LINdriver转换为TRANCEIVE,校验告终或者过滤器告终则LINdriver回到IDLE,state=idle;当前状态为TRANCEIVE时,接管到的数据乃是数据场中字节,当数据接管完,LINdriver转换为CHECKSUM。当前状态为CHECKSUM时,接管到的数据之后为校验和场,校验顺利,之后改置state=success,回应顺利地已完成了一次LIN通讯,这时数据场中的数据是有效地的,可以用作应用程序;校验告终回应LIN通讯告终,数据场中数据违宪。

结语本文针对普通单片机,借助其片上UART,以状态机的形式构建了LIN协议驱动,减少了LIN的构建成本,运营可信平稳,合乎LIN总线以低成本作为CAN总线有效地补足的想法。


本文关键词:亚博APp买球,基于,UART,以,状态机,的,形式,实现,LIN,通信

本文来源:亚博APp买球-www.nyece.com