微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于μC/OS-Ⅱ的Flexray线控转向系统的实现

基于μC/OS-Ⅱ的Flexray线控转向系统的实现

时间:08-21 来源:现代电子技术 点击:

smit_data()的消息缓冲区进行数据的读取和更新。

  3.2.3 故障检测任务

  在通信过程中,当其他节点因故障重启或是通信线路中断时,可以利用故障检测任务检查POC状态,当协议运行在正常被动状态时,则判断为通信线路出现故障,将故障LED指示灯设定为闪烁状态;当协议运行在暂停状态时,则判断为节点控制器故障,故障LED指示灯设定为常亮状态,并对FlexRay通信启动任务进行解挂,重新对协议进行配置,待故障解决,系统可以自动启动节点运行。程序流程图如图3所示。

  4 实验验证

  使用Vector公司的CANoe软件,可以方便地观察FlexRay总线上的数据流情况。实验中,将CANoe软件提供的FlexRay接口板VN3600接入总线网络中,之后参考MC9S12XF512芯片手册中FlexRay通信的MicroTick定义为25 ns,因此在FlexRay初始化定义中,设置参数P_MICRO_PER_M-ACRO_NOM为40,则一个MareroTick等于40个MicroTick,也就是说,FlexRay通信配置的基准时间片为lμs。据此,配置通信周期为5 000 μs;1个静态时槽长度为24μs,共有91个;1个动态时槽为5μs,共有289个;特征窗与网络空闲时间为1 371μs。

  程序中对节点Node_A和Node_B的时槽定义如表2所示。

  实验结果如图4所示,运行时间2 289 s,时槽变化与周期数均与设计一致,数据收发正常。由图5可知,帧速率为3 200帧/s,总计传输7 369 600帧,没有出现无效帧与错误帧,达到了实时性和稳定性的要求。



  在通信过程中,分别进行故障模拟实验。

  (1)突然断开总线来模拟应用现场出现线路故障的情况,可以发现数据停止更新,故障检测LED指示灯闪烁,说明程序检测到了线路故障问题并进行报警。当再次连接总线后,故障检测LED熄灭,数据继续更新,说明通信自动重新启动。

  (2)将任意一个控制器进行掉电,模拟单一控制器故障情况,可以发现数据停止更新,故障检测LED指示灯开始常亮,说明程序检测到了任意节点故障导致通信中断的问题并进行报警。当再次开启掉电控制器后,故障检测LED熄灭,数据继续更新,说明通信自动重新启动。通过以上两个实验,验证了故障检测报警功能良好。

  5 结语

  针对线控转向系统FlexRay通信过程中存在的问题,将实时操作系统μC/OS-Ⅱ应用于系统中,进行了代码移植和通信任务设计。之后通过硬件实验,对数据结果和故障检测进行了测试,从实验结果可以看出,该系统解决了FlexRay总线应用的复杂问题,并利用μC/OS-Ⅱ操作系统保证了系统实时性、稳定性和安全性的要求,为今后实现线控转向系统在汽车辅助驾驶和智能驾驶方面的应用奠定了基础。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top