基于有限状态机的LIN 总线车灯控制系统层次优化设计
2013-11-04彭晓珊余明扬
彭晓珊,余明扬
(1.贵阳学院 物电系,贵州 贵阳 550003;2.中南大学 信息科学与工程学院,湖南 长沙 410012)
1 引言
在汽车电子领域,车载总线的应用能有效的实现信息共享、减少线束,并提升车辆有效使用空间和降低油耗[1]。在各类总线中,低速LIN 总线作为中速CAN 总线的补充和末梢,正以其高性价比的特点越来越广泛地应用于各类车型,在外部车灯、雨刮、电动车窗、车门锁等众多的车载电控单元ECU 中LIN 总线随处可见。车载LIN 总线系统的优劣主要取决于系统的可靠性、网络负载率、系统功耗、设计文档的规范性,同时还需兼顾研制成本和周期,目前LIN 总线系统设计主要依赖开发者的单片机系统设计经验和对LIN 协议的理解,设计中出现的随意性强、设计流程不规范、开发周期长、难以优化等问题使LIN 总线系统的维护、移植以及后续开发十分困难。提出了新型的LIN 总线层次优化设计模式,利用网络描述文件和有限状态机对LIN 总线协议层数据单元和应用层行为的描述快速构建并优化LIN 总线系统,并降低研发成本,缩短研发周期,为相关LIN 总线系统设计提供了规范高效的解决方案。
2 层次优化设计模式原理
车载LIN 总线是面向低端分布式应用的多路复用串行通信总线,根据LIN 协议的定义,LIN 协议模型分为三个层次:底层物理层、中间协议层和顶层应用层[2],其中物理层实现报文帧的收发;协议层实现报文帧有关数据的封装,相关要素由通用的LIN网络描述文件来定义,如波特率、总线主从节点、信号、帧和进度表等,其中进度表被LIN 协议定义的各类帧(无条件帧、事件触发帧、零星帧、诊断配置帧、自定义帧)填充;应用层则体现用户的设计意图,实现不同的进度表控制策略和对报文帧的响应,进度表控制策略使用有限状态机进行描述和优化。LIN 总线层次优化设计模式,如图1 所示。
系统层次优化设计模式中,当LIN 总线系统功能定义后,首先设计低功耗系统硬件,然后设计相应的LIN 总线网络描述文件来定义LIN 协议层各数据单元;LIN 总线的低功耗设计除体现在系统硬件平台外,应用层进度表合理的控制策略至关重要,利用有限状态机实现优化设计进度表调用访问机制,可有效降低网络负载实现低功耗。在设计最后阶段将LIN 网络描述文件、有限状态机、API 和系统硬件图作为受控设计文件归档,可充分降低系统后续维护、升级及后续开发的难度。
图1 层次优化设计模式原理图Fig.1 Schematic of Layer Optimized Design Mode
3 LIN 总线车灯控制系统层次优化设计
3.1 系统硬件结构
LIN 总线车灯控制系统功能定义为:系统由组合开关节点ECU(LIN 主节点)、左前车灯ECU(LIN 从节点)、右前车灯ECU(LIN 从节点)、左后车灯ECU(LIN 从节点)、右后车灯ECU(LIN 从节点)五个部分组成,组合开关节点ECU 通过LIN 总线相连其他LIN 从节点,实现车灯的控制和自身状态的监控。将设计模式应用于车灯控制系统转向部分的之中,其他组合灯光的控制(如远光灯、近光灯、小灯、前雾灯、后雾灯等)均可集成在同一块ECU 之中。
为实现低功耗的设计目的,LIN 主从节点微控制器分别采用具备休眠低功耗功能的PIC16F877 和PIC16F873 实现[3],LIN 总线接口部分均采用收发驱动芯片MCP201,其接口电路原理,如图2 所示。根据MCP201的内部逻辑,MCP201 处于何种内部状态由CS 引脚的电平控制,CS 引脚电平被芯片内部电路有效采样需保持1ms 以上,利用PIC16F877的RC5 引脚控制CS 引脚电平变化,使MCP201 进入有效工作状态或低功耗状态[4]。
图2 LIN 接口电路原理图Fig.2 Schematic Circuit of Lin Interface
根据车灯组合开关操作的偶然性和即时性,接口硬件设计上将各开关连接到主节点电控单元的微控制器PIC16F877 芯片具备电平变化中断功能的RB1~RB7 引脚上。车灯组合开关在大部分时间内开关没有操作,无电平变化中断,系统进入休眠状态,满足低功耗要求;当组合开关有操作,即通过相应引脚的高低电平变化产生中断唤醒PIC16F877 微控制器,使其发起后续LIN总线通信行为。车灯组合开关接口电路原理,如图3 所示。
图3 车灯组合开关接口电路原理图Fig.3 Schematic Circuit of Vehicle Light’s Combination Switch Interface
3.2 系统软件设计
3.2.1 网络描述文件设计
根据优化设计流程,在系统功能定义后,使用LIN 网络描述文件对LIN 总线协议数据单元进行描述,语法规则符合修改的BNF 语法[5],系统的网络描述文件设计(略):网络描述文件描述了LIN 协议中的节点、信号、帧、进度表等数据单元,所包括信息为:主节点名MC(主控),从节点名FL(左前)、FR(右前)、BL(左后)、BR(右后);总线无条件控制帧S_R_lamp 包含控制右转向灯闪亮信号R_lamp、帧S_L_lamp 包含控制左转向灯闪亮信号L_lamp;总线无条件状态帧R_FR_lamp 包含右前转向灯故障信号Err_FR_lamp,帧R_BR_lamp 包含右后转向灯故障信号Err_BR_lamp,帧R_FL_lamp 包含左前转向灯故障信号Err_FL_lamp,帧R_BL_lamp 包含左后转向灯故障信号Err_BL_lamp;事件触发帧Lamp_Status_Event 关联上述四个状态帧;设计了三类进度表,Main、Lamp_Status_Event 和Collision_resolver。
3.2.2 应用层有限状态机的设计
图4 非优化进度表控制策略有限状态机Fig.4 Finite-State Machine of Non-optimization Time Schedule Control Strategy
网络描述文件对总线协议数据单元进行了描述,不涉及应用层行为,而进度表控制策略是应用层设计核心,体现LIN 总线应用层各种行为,通过有限状态机实现快速设计进度表控制流程。非优化进度表控制策略的有限状态机,如图4 所示,系统主进度表main 和冲突解决Collision_resolver 进度表均采用普通帧填充,报文间隔20ms,未使用事件触发Lamp_Status_Event 进度表。进度表的控制策略为主节点监控左转和右转信号,并发送相应的数据场执行相应控制,然后依次轮询四个转向灯状态,以上过程循环进行。
上述控制策略使得LIN 总线在所有时刻都保持工作状态,导致负载率偏高,系统功耗增加。优化设计利用车灯LIN 总线系统中其组合开关的动作是即时且零星的特点,采用零星帧填充进度表,因此在大部分时间内无条件帧中体现组合开关动作的信号不会更新,总线保持静默满足低功耗的需求。根据LIN 协议对帧的定义及车灯应用系统的特点,优化进度表控制策略的有限状态机设计,如图5 所示[6]。
图5 优化进度表控制策略有限状态机Fig.5 Finite-State Machine of Optimization Time Schedule Control Strategy
车灯LIN 总线系统网络描述文件定义的三类进度表,Main、Lamp_Status_Event 和Collision_resolver。Main 进度表设计为系统的主进度表,由零星帧填充。当时间槽轮转到主进度表时,如果对应的左或右转向开关没有动作即其零星帧所关联的无条件帧的信号无更新时,时间槽总线保持静默,LIN 总线进入休眠状态;如果信号有更新,则执行优先级最高的无条件控制帧。应用层以1s的间隔切入进事件触发进度表Lamp_Status_Event,如果事件触发帧的数据场第一个字节无任何数据,即其关联的左右四个转向灯的状态帧无信号更新,该时间槽结束后返回主进度表;如果数据场第一个字节有所关联的状态帧的ID,则数据场后续数据是该状态帧的所更新的信号;如果数据场第一个字节有无法识别的ID,表明出现了总线冲突,则等该时间槽结束后,转向Collision_resolver 进度表,轮询左右共四个转向灯的无条件状态帧,轮询结束后再切换回主进度表[7]。
3.2.3 总线负载率测试
LIN 总线网络负载率是各报文帧总线占用百分比之和,由以下公式确定:
式中:Pm—总线报文帧发送周期;Cm—总线报文帧传输时间;UCm—报文帧占用总线的百分比;Ut—总线平均负载率[8]。
针对以上进度表的两种控制策略,采用CANoe 工具对实际车灯转向部分进行测试分析,测试条件为:系统设定波特率19.2Kb/s,转向灯组合开关拨动频率30 次/min,持续时间2min。测试分析两种控制策略下总线平均负载率,测试结果如表1 所示,序号1 代表非优化策略,序号2 代表优化策略。
表1 两种控制策略测试结果对照表Tab.1 Test Results of Two Kinds of Control Strategys
测试结果表明,在相同的测试条件下,优化控制策略下LIN总线平均负载率比非优化控制策略下的数据低34.4%。
4 结束语
系统的网络描述文件实现了对LIN 协议层所有要素的描述,而有限状态机实现了进度表控制策略的优化设计,采用基于两者的层次优化设计模式能有效提高系统设计效率,降低系统负载率和整体功耗,便于系统测试和故障界定。同时测试也标明该模式是实现LIN 总线系统快速优化设计的有效策略。
[1]蒋淑霞,韩志刚,周永军.基于CAN/LIN 总线车身网络优化设计与CAN通信实现[J].仪表技术与传感器,2011(6):48.(Jiang Shu-xia,Han Zhi-gang,Zhou Yong-jun.Bus body network optimization design and CAN communication realization based on CAN/LIN[J].Instrument Technology and Sensor,2011(6):48.)
[2]LIN Consortium.LIN Specification Package Revision 2.1[S].Nov 24,2006(2006-11-24)
[3]Microchip.PIC16F877 Data Sheet[M].Chandler,Arizona USA,2004.
[4]Microchip.MCP201Data Sheet[M].Chandler,Arizona USA,2004.
[5]ihr GmbH.LIN Driver and Configuration Tool V1.05-User Guide[M].Baden Germany:ihr GmbH,2009.
[6]王飞,裴海龙,王清阳.有限状态机在数控系统任务控制策略中的应用[J].机械设计与制造,2011(5):245-245.(Wang Fei,Pei Hai-long,Wang Qing-yang.The application of finite state machine in the numerical control system of the mission control strategies[J].Mechanical Design and Manufacture,2011(5):245-245.)
[7]马建辉,王知学,李研强.基于LIN 总线的车灯控制系统[J].电子设计技术,2007(8):175.(Ma Jian-hui,Wang Zhi-xue,Li Yan-qiang,etc.Bus lamp control system based on LIN[J].Electronic Design Technology,2007(8):175.)
[8]王蓉,程安宇,薛元.汽车L IN 总线在线测试系统[J].自动化仪表,2010,31(7):15-16.(Wang Rong,Cheng An-yu,Xue Yuan,etc.Bus online testing system of car L IN[J].Automation Instrument,2010,31(7):15-16)