首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μC/OS-Ⅱ的线控转向FlexRay通信控制 05

基于μC/OS-Ⅱ的线控转向FlexRay通信控制 05

 3.2.2 数据接收发送任务
  FlexRay数据的接收发送是通过中断服务程序进行的,因此在该任务中,只需判断POC状态是否进入正常主动状态,如果是则使用全局变量对接收函数Fr_receive_da()和发送函数Fr_transmit_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所示。
返回列表