说到汽车软件开发中的通信,不得不提到CAN通信。CAN通信作为一种通信方式,尤其在汽车领域的应用十分普遍。对于CAN信息的介绍,网上多的是,这里就不一一介绍了。本次主要简单介绍AurixTc277这款芯片中的MultiCAN模块以及在AutoSAR COM Stack中的使用,以及本人在使用中遇到的一些问题和解决办法。
Aurix TC277 MultiCAN介绍
Aurix TC277 MultiCAN支持11位ID的标准帧和29位的扩展帧,支持CANFD功能;同时包含了CAN的四种基本帧类型(数据帧、错误帧、远程帧、过载帧);支持CAN消息的错误诊断和错误处理(CRC错误、ACK错误、Form错误、Bit错误、Stuff错误);支持Basic CAN和Full CAN(在实现的层面上表现为Full CAN的一个Message占用一个Message Object而Basic CAN所有的CAN收发报文各用一个Message Object。Full CAN通过单独的Message Object实现对数据、ID自动过滤,降低CPU的load,更好的处理高速传输)。下图粗略的展示了本人对AurixTc277 CAN的理解。
在AurixTC277 CAN模块中包含了四个CAN节点,CAN节点相关寄存器决定了CAN相关的基本参数的配置,包括时钟、通信速度、位时序、中断处理、错误处理等。时钟的选择在TC277中也是十分重要的,对于外部输入时钟的选择