[AutoSar]BSW_Com08 CAN driver 模块介绍及参数配置说明 (二)

[AutoSar]BSW_Com08 CAN driver 模块介绍及参数配置说明 (二) 目录关键词平台说明一、CanControllers二、CanControllerBaudrateConfig三、CanFilterMask四、CanHardwareObjects五、CanGeneral关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector 芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录一、CanControllers1.CanBasisAddressEnum:选择用哪个CAN 控制器。2.Busoff Processing:选择出来busoff 的方式中断还是轮询Can_MainFunction_BusOff()来通知上层。3.Common CAN:针对特殊平台的选项例如可以将两个物理CAN通道连接到一个逻辑CAN控制器时激活此参数。这允许你为这个控制器使用更多的FullCAN对象。只能在第二个物理通道上配置Rx FullCAN对象。4.CanControllerActivation是否使用该控制器。5.CanCpuClockRef引用在MCU模块配置的时钟。6.Interrupt PriorityCAN模块的中断优先级。发送、接收共用同一个中断优先级。7.CanRxProcessing接收方式轮询还是中断。8.CanWakeupProcessing唤醒处理方式轮询还是中断。9.CanTxProcessing发送方式轮询还是中断。10.CanWakeupSourceRef引用在ECUM中定义的唤醒源。二、CanControllerBaudrateConfig1.Baudrate ClockCAN模块配置的波特率的时钟通过Controller Default Baudrate定义。2.Baudrate Prescaler简称BRP波特率预分频通过CanBaudrateClock计算。3.Controller Baud Rate设置CAN波特率的值4.Controller Baud Rate Config ID该ID值被SetBaudrate函数作为参数使用用于设置哪个控制器的波特率。5.Controller Prop Seg传播段的时间。它定义了CAN总线上发送输出驱动器和收发电路的物理传播延迟。6.Controller Segl采样点前的时间段。7.Controller Seg2采样点后的时间段。8.Controller Sync Jump Width同步跳跃宽度用于重同步的时间。采样点简介Sync Seg(同步段):长度固定为1Tq, 所以配置工具中没有它的配置.在Vector的配置工具中, 定义PropSeg1 TSeg1, Seg2 TSeg2,以采样点为80%计算:(同步段(1) TSeg1)/(同步段Tseg1Tseg2) 80%,如果一个BitTime中Tq总和固定了,比如为16个Tq,同步段(1) TSeg1 TSeg2 16。根据这个二元一次方程组则很容易算出各段的值.Sync Seg固定为1, TSeg1 11, Seg2 4.SyncJumpWidth:它的值是用于调整相位缓冲段1和相位缓冲段2的值, 用于CAN的同步,比如相位缓冲段1向前增长了3个,则相位缓冲段2向后减少3个Tq.—也就是一次同步中相位缓冲段改变的长度.所以Sync Jump Width的设置有2个原则:Sync Jump Width 3,Sync Jump Width Min(Seg1, Seg2), 因为一次同步调整的幅度不能超出相位缓冲段1和2中任意一个。三、CanFilterMask根据MASK 将不符合的报文过滤只用于接收报文。公式Received CAN ID .Mask Code。后面在软件滤波和硬件滤波章节单独讲。[AutoSar]BSW_Com016 硬件滤波、软件滤波、mask、code 配置四、CanHardwareObjects该配置主要是配置硬件物理层的参数。1.Common CAN Node如果参数Common CAN被激活那么该参数用于该硬件hardware object 选择它所属的物理CHANNEL。注意只有RX_FULLCAN的硬件hardware object才可以配置其他的hardware object的值都是A2.Controller Ref该 hardware object所属的 CAN 控制器。3.Enable Polling Processing该 hardware object是否使用轮循的方式去发送CAN报文。4.CanFdPaddingValue该值用于填充CAN FD帧中 8字节的未指定数据进行传输。这是必要的因为如果 8字节DLC的可能值是离散的。5.Handle TypeFULL CAN或者 BASIC CAN**Full CAN**一般表示仅存在1个的Hardware Object与之对应且该Full CAN类型的Hardware Object与特定的CAN ID Message绑定**Basic CAN**一般表示存在1个或者多个的Hardware Object与之对应且该Basic CAN类型的Hardware Object与非特定的CAN ID Message或者一定范围内的CAN ID Message绑定6.Id Type标准帧或扩展帧。7.Id Value:CAN ID。8.Main Function RW Period Ref引用一个读写发送周期的值该值在CanGeneral→CanMainFunction RWPeriods中定义。9.Object Hw Handle定义硬件hardware object的索引号。10.Object Hw Size定义该消息使用硬件缓冲区的个数。11.Object Id定义该硬件hardware object所属的逻辑handle的ID号。12.Object Type接收还是发送。五、CanGeneral1.CPU Core serving CAN Interrupt依赖于平台选择在哪个核获取can中断。2.CanChangeBaudrateApi是否允许使用an_ChangeBaudrate函数。3.CanCounterRef系统时钟源。4.Data Quality Of Service指定Message RAM读写数据操作时的内存优先级访问。5.CanDevErrorDetectionDET。6.CanEccInit指定Can驱动程序是否应该执行Can消息RAM的初始化。如果Message RAM具有奇偶校验或ECC功能建议在硬件复位后初始化Message RAM。如果禁用此功能将给出应用程序标注7.CanFdHardwareBufferOptimization如果选中FullCAN对象的硬件缓冲区将被限制为要接收的实际消息的帧长。一般来说这可以节省硬件资源但是如果接收到较大帧长的CAN-FD消息它们可能会被驱动程序丢弃。如果禁用此功能则将硬件缓冲区配置为能够接收所有消息的最大大小。8.Fd NISO指定CAN-FD帧格式一致性(ISO11898-1, Bosch CAN FD Spec. V1.0)。9.CanFdSupport是否支持CAN FD。10.CanGenericConfirmation是否使用通用的发送确认函数。该函数被所有的发送事件调用。11.CanGenericConfirmationAPI2为了支持总线镜像该参数改变了’ canenericconfirmation 的签名。第二个用例是支持用于总线镜像的CDD镜像组件。12.CanGenericPreTransmit此参数定义启用此复选框时是否调用所有Tx消息的通用预传输公共。在发送消息之前使用它来更改数据或中止传输。13.CanGenericPrecopy是否使用通用的预复制函数该函数在消息被接收到之后调用。14.CanGetStatus是否使用获取状态函数如果勾选该属性那么CAN模块会提供一个函数Can_GetStatus供上层调用15.CanHardwareCancelByAppl该参数定义应用层是否可以取消硬件Loop Check。如果该参数被使用那么下面的三个函数必须被实现。ApplCan TimerStart();ApplCanTimerLoop();ApplCanTimerEnd()。16.CanHwTxFifoSupport该参数定义CAN驱动是否支持任何CanHardwareObject (TxBasicCAN)的硬件TX fifo。(全局切换优化)。17.CanHardwareHandleType根据平台的不同需要使用超过8位的“硬件邮箱句柄”(由AutoSar 3.x定义)。因此可以使用8位或16位类型(由AutoSar 4.x定义)。限制:当使用没有此支持的CanInterface时‘CanHardwareHandleType’需要设置为8位(Vector Interface 4.12支持16位)。18.CanIdenticalIdCancellation启用/禁用具有相同ID的挂起pdu的取消。“硬件传输取消”也会从硬件邮箱中取消具有相同标识符(将发送更新的数据)的消息。否则只有较低的优先标识符将被取消。(将发送旧数据)限制:’ canidenticalidcancel ‘仅在CAN接口参数’ caniftransmitcancel 设置时使用。19.CanHwTxFifoSupport该参数定义CAN驱动是否支持任何CanHardwareObject (TxBasicCAN)的硬件TX fifo。(全局切换优化)。20.CanIndividualProcessing单独配置每个Rx和Tx邮箱对象时请激活此选项(取消激活以减少运行时和内存消耗)。21.CanInterruptCategory指定中断函数的类型。类别1:中断函数必须添加到中断向量表中。第2类:中断函数用ISR()定义。[AutoSar]BSW_OS 04 Autosar OS_ISR 中断22.CanInterruptLock:选择哪个模块去关中断和开中断可选的模块有CANDriver或APPL或CAN Driver和APPL。23.CanLPduReceiveCalloutFunction:该参数定义了是否存在一个callout函数并定义了在成功接收到CAN Rx L-PDU后调用该函数的名称。如果省略此参数则不会发生标注。24.CanMainFunctionBusoffPeriod:该值指定循环调用Can_MainFunction_Busoff的周期。EcuC的单位是秒。25.CanMainFunctionModePeriod:该值指定循环调用Can_MainFunction_Mode的周期。EcuC的单位是秒。26.CanMainFunctionWakeupPeriod:此值指定描述循环调用Can_MainFunction_Wakeup的周期。EcuC的单位是秒。27.CanMaxRxDataLen:指定在激活CAN FD的情况下接收缓冲区使用的最大字节数。28.CanMaxTxDataLen:指定在CAN FD被激活的情况下用于传输缓冲区的最大字节数。29.CanMcanRevision:指定特定的底层M_CAN核心步骤和子步骤释放。MCAN_REV_30: MCAN版本3.0。x, CAN-FD支持具有更高的比特率和扩展的数据长度MCAN_REV_310: MCAN Release 3.1.0不兼容更改到以前的版本MCAN_REV_315: MCAN Release 3.1.5, CAN-FD支持与ISO-11898-1兼容MCAN修订3.2。x与MCAN_REV_315兼容因此不单独提及。30.CanMessageRAM:指定CAN消息内存的起始地址。注意:配置决定了实际分配的RAM数量。31.CanMirrorModeSupport:使用CDD镜像组件将消息路由到其他控制器。32.CanOverrunNotification:该参数定义Rx超时通知是否激活。None:不做任何事情。DET:调用DET。APP:Appl_CanOverrun被调用。33.Ram Check检查硬件MO是否有效None不作检查Active检查如果无效函数ApplCanMemCheckFailed会被调用34.Relnitalization While Start Transition当CAN控制器模式被重新设置为START模式的时候是否重新初始化CAN模块。35.Run Time Measurement Support如果配置该参数那么可以通过CAN模块发送系统运行时的一些参数比如CPU使用率等等发送到CANape上供用户实时监测系统运行的效率。36.Rx Basic CAN Support是否支持Rx Basic CAN37.Rx Full CAN Support是否支持Rx Full CAN38.Rx Queue是否支持接收队列。如果配置那么所有的接收数据都被缓存到接收队列中在Can_MainFunction_Read函数中被处理。39.Rx Queue Size定义接收队列的大小。40.CanSecureTempBuffer此参数定义hw-邮箱对象的安全临时缓冲区的使用情况。41.CanSetBaudrateApiCan_SetBaudrate API的支持是可选的。如果该参数设置为true则支持Can_SetBaudrate API。否则不支持该API。42.CanSilentModeSupport该参数定义CAN驱动程序是否支持CAN总线静默模式(全局开关优化)。43.Timeout Duration定义超时参数的最大值。44.Transmit Cancellation取消挂起的发送报文。如果发送的报文太多超出了硬件MO 发送的能力那么最新的报文将被发送。需要硬件的支持。45.Tx Full CAN Support是否支持Tx Full CAN。46.Use Nested CAN Interrupts是否支持可嵌套的中断。47.User Config File使用用户配置文件这个配置文件将会被include到Can_Cfg.h文件中48.Version Info Api使用获取版本信息的API函数。49Wakeup Support是否支持wakeup功能。需要硬件的支持。回到总目录