尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

[AutoSar]BSW_Com09 CAN driver 模块FULL(BASIC)CAN、FIFO选择

[AutoSar]BSW_Com09 CAN driver 模块FULL(BASIC)CAN、FIFO选择 目录关键词平台说明一、缩写和定义二、Hardware Object、MailBox 定义三、FIFO 和 Dedicated Buffer3.1 使用范围3.2 在vector 和EB 中的配置四、FULL CAN 和Basic CAN五、Tx BufferTx FIFOTx Queue5.1 Tx Buffer5.2 FIFO buffer5.2.1 Tx FIFO buffer5.2.2 Tx Queue buffer5.3 混合模式Tx Buffer Tx FIFO buffer5.4 混合模式Tx Buffer Tx Queue buffer六 Rx Buffer 和Rx FIFO6.1 Rx Buffer6.2Rx FIFO七、不同报文类型如何选择FULL CAN或者BASIC CAN7.1 应用报文7.2 网络管理报文7.3 标定报文7.4 诊断报文八、注意事项关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector EB芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录一、缩写和定义abbreviations定义Hardware Object Handle (HOH)HRH 和HTH 的统称Hardware Receive Handle (HRH)由CAN驱动程序定义和提供。每个HRH通常只代表一个Hardware Object。HRH可用于优化软件过滤。Hardware Transmit Handle (HTH)由CAN驱动程序定义和提供。每个HTH通常只表示一个或多个Hardware Object这些对象被配置为硬件传输缓冲Hardware ObjectCAN硬件对象定义为CAN硬件单元/ CAN控制器的CAN RAM内的PDU缓冲区。可以直接理解为一个Hardware Object 就是一个L-PDUData Length CodeDLCL-PDU中SDU 的长度Physical Channel物理通道表示从CAN控制器到CAN网络的接口。CAN硬件单元的不同物理通道可以访问不同的网络。可以理解为一个网关CAN controller一个can TX OR RX 连接的节点CAN Hardware unit一个或者多个CAN controller 一个或者多个CAN RAM area二、Hardware Object、MailBox 定义我们可以将Hardware Object 理解为存放CAN L-PDU 的buffer里面有且只有一个CAN message 包含 PCI CAN ID DLC SDUdata[AutoSar]BSW_Com02 PDU详解。而MailBox就是一个 Hardware Object属于CAN controller 上的物理空间。三、FIFO 和 Dedicated Buffer每个CAN module [AutoSar]BSW_Com08 CAN driver 模块介绍及参数配置说明 (一)都有属于自己的 RAM。在MCAL 中被分为了FIFO buffer 和Dedicated Buffer。一般CAN module RAM 如下FIFO 机制如下:3.1 使用范围Dedicated Buffer 用于FULL CAN Hareware Object与HRH/HTH一一对应FIFO用于 basic can即一个HRH/HTH对应多个HarewareObject。但是Dedicated Buffer FIFO buffer 不能超过芯片硬件的CANTx BufferRx Buffer。3.2 在vector 和EB 中的配置vectorEB四、FULL CAN 和Basic CAN我们可以通过CanHandleType 来配置为FULL CAN 还是 Basic CAN其实就是选择HOH 的类型。区别1.功能支持Basic CAN有一个或者多个Hardware ObjectL-PDUs 与其对应并且 一个Hardware Object L-PDUs 对应某个范围内的 CAN message ID。Full CAN只能有一个Hardware Object L-PDUs与其对应并且 一个Hardware Object L-PDUs 对应一个 CAN message ID。2.性能区别Basic CAN采用硬件滤波减少不必要的中断节约CPU负载。L_PDU 到了上层 canif后是软件滤波。Full CAN比较占用CPU负载但是如果硬件资源足够优先选择FULL CAN。五、Tx BufferTx FIFOTx Queue5.1 Tx Buffer与FULL CAN 的 hardware object 一一对应即为Dedicated Buffer。ID 越小优先级越高。5.2 FIFO bufferFIFO buffer 包括Tx FIFO和Tx Queue5.2.1 Tx FIFO buffer按照“先进先出”的方式来进行发送忽略CAN ID优先级一般为了防止出现优先级反转现象不建议使用FIFO模式。5.2.2 Tx Queue buffer与Tx buffer 一样ID越小优先级越高。5.3 混合模式Tx Buffer Tx FIFO buffer1.分别取出Tx Buffer中ID最小的message_A和Tx FIFO buffer 中最老的messag_B。2.判定message_A和messag_B哪个ID小就优先发哪个。5.4 混合模式Tx Buffer Tx Queue buffer1.分别取出Tx Buffer中ID最小的message_A和Tx Queue buffer中ID最小的messag_B。2.判定message_A和messag_B哪个ID小就优先发哪个。六 Rx Buffer 和Rx FIFO6.1 Rx Buffer和Tx Buffer一样在FULL CAN 中与单个message ID对应。当老的数据没有处理完新的数据不会被处理。6.2Rx FIFO遵循先进先出的原理一般有两个FIFO Rx FIFO 0 and Rx FIFO 1 can be configured to hold up to 64 elements each.当FULL 的时候有两种处理模式**Blocking Mode**如果FIFO满了只有等到数据处理完成之后才可以放入新的数据一般推荐使用该方式**Overwrite Mode**表示如果FIFO已经满了新来的数据可以覆盖掉最老的数据。可能会导致数据丢失。七、不同报文类型如何选择FULL CAN或者BASIC CAN7.1 应用报文推荐使用FULL CAN因为一般不需要缓存使用最新收到的报文就行。但是要注意 需要发送的报文数量必须 hardware object如果超出则要考虑部分使用 basic can形成 basic full 的组合方式。即 5.3 5.4 章节所述。7.2 网络管理报文因为网络管理报文为一个范围推荐使用basic can。7.3 标定报文因为标定报文为一个固定ID推荐使用full can。7.4 诊断报文推荐使用basic CAN。诊断报文对时序和完整性有严格要求不允许丢失因此要用FIFO。八、注意事项1.在hardware object的配置过程中建议先将FULL CAN类型的HOH统一配置在前Basic CAN类型的HOH配置在后以免造成生成的代码中Maibox使用错乱。回到总目录
返回列表