微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > μC/OSII的CAN驱动程序设计

μC/OSII的CAN驱动程序设计

时间:11-25 来源:互联网 点击:

改。修改之后的程序代码如下所示:

void CAN1_RI_HANDLE() {
  RI_DATA.FRAME = CAN1RFS;
  RI_DATA.ID = CAN1RID;
  RI_DATA.DataA = CAN1RDA;
  RI_DATA.DataB = CAN1RDB;//解析报文标识符RI_DATA.ID中的SrcMACID段,根据解析结果使用OSQPost( )将RI_DATA发送到对应节点任务的消息队列中
  CAN1_COMMAND_RRB();//释放接收缓冲区
}

再结合CAN链路层的仲裁机制,就可以保证优先级别高的节点优先发送报文,并被接收节点优先处理。至此,CAN驱动程序的整个脉络已经非常清晰,其总体流程略——编者注。

结语

本文基于μC/OSII操作系统、针对实时性要求较高的CAN系统编写的CAN驱动程序简洁、高效,在不同的应用环境下只需添加相应的用户代码,就可以组成完整的CAN驱动程序。但在提高高优先级节点实时性的同时,在一定程度上也降低了低优先级节点的实时性,所以在工程应用中应根据实际需要兼顾高低优先级节点的实时性能。

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

网站地图

Top