《AUTOSAR谱系分解(ETAS工具链)》之Can
Can
CanConfigSet
-
CanControllers【CANNODE】
-
CanController
- Can_Network_CANNODE_0
- Can_Network_CANNODE_1
- Can_Network_CANNODE_2
- 。。。。。。
-
CanBusoffProcessing
- EXP:设置busoff的处理方式,是中断还是轮询。(多重性:1)
- POLLING
- INTERRUPT
-
CanControllerActivation
- EXP:定义CAN控制器是否处于激活状态以进行配置。(多重性:1)
-
CanControllerId
- EXP:它提供每个CAN驱动程序唯一的控制器ID。(多重性:1)
-
CanControllerBaseAddress
- EXP:
-
CanRxProcessing
- EXP:设置接收的处理方式,是中断还是轮询。(多重性:1)
- POLLING
- INTERRUPT
-
CanTxProcessing
- EXP:设置发送的处理方式,是中断还是轮询。(多重性:1)
- POLLING
- INTERRUPT
-
CanWakeupProcessing
- EXP:设置唤醒的处理方式,是中断还是轮询。(多重性:1)
- POLLING
- INTERRUPT
-
CanControllerDefaultBaudrate
- EXP:提供对Can Controller的波特率配置容器的引用。
-
CanControllerBaudrateConfig
- EXP:该容器包含每个CAN控制器与位时序相关的配置参数。
-
CanControllerBaudRate
- EXP:设置控制器的波特率,以kbps为单位。(多重性:1)
-
CanControllerPropSeg
- EXP:它定义时间量中的传播延迟。(多重性:1)
-
CanControllerSeg1
- EXP:它定义时间段中的相位段1。(多重性:1)
-
CanControllerSeg2
- EXP:定义时间段中的相位段2。(多重性:1)
-
CanControllerSyncJumpWidth
- EXP:它定义控制器在时间量上的同步跳转宽度。(多重性:1)
-
-
CanHardwareObjects【MailBox】
-
CanHandleType
- EXP:
Full CAN一个Hoh对应一个MailBox而Basic CAN一个MailBox可以处理多个PDU.
Full CAN是硬件滤波而Basic CAN软件滤波,因此配成Basic的要设置滤波.
Full CAN一个Buffer对应一个ID报文,无缓存功能而Basic CAN以FIFO的方式接受特定的多个报文,有缓存功能.
因此:
对于诊断报文和NM报文的接收报文必须配置成Basic Can,其他报文最好配成高效的Full CAN. - FULL
- BASE
- EXP:
-
CanHwObjectCount
- EXP:
配置成Tx并选择BASIC,配置决定该HTH可以使用几个MailBoxs,此处配置为32,第一个Region全部用作了发送
- EXP:
-
CanIdType
- STANDARD
- MIX
- EXTENDED
-
CanObjectId
-
CanObjectType
- RECEIVE
- TRANSMIT
-
CanControllerRef
- EXP:
该信号属于哪路Cantroller就选哪路
- EXP:
-
CanHwFilter
- EXP:
对于发送来讲是不需要配置Filter的,以该信号为例CAN ID = 0x7DF, 则需在Filter处配置CanHwFilterCode = 0x7DF, CanHwFilterMask = 0x7ff ,滤波就是Code&Mask = ID&Code, 所以在Driver层会自动计算写入寄存器。
如果是RxBasic 则需要计算出来Code&Mask配置好即可 - EXP:
白名单模式计算原则是: received ID & Mask == Code & Mask.
Code Value里面填写ID大的那个ID值, Mask Value里面填写ID小的那个ID值.
例如:我只想接受0x7DF和0x7D4这两个报文,将其他报文过滤掉. 根据计算公式,
对于0x7DF报文, 0x7DF & 0x7D4 == 0x7DF & 0x7D4
对于0x7D4报文, 0x7D4 & 0x7D4 == 0x7DF & 0x7D4 - EXP:
mask决定filter是否起作用,因此想要接收全部报文,直接mask设置为0就搞定。如果mask设置了,则相应位过滤器起作用。过滤器的作用就是:与我相同我才接收。这样,一组功能描述就够清楚了。
CanHwFilterCode:Specifies (together with the filter mask) the identifiers range that passes the hardware filter.
CanHwFilterMask:Describes a mask for hardware-based filtering of CAN identifiers. The CAN identifiers of incoming messages are masked with the appropriate CanFilterMaskValue. Bits holding a 0 mean don’t care, i.e. do not compare the message’s identifier in the respective bit position. - EXP:
CanHwFilterMask掩码,仅在BASE模式下起作用,FULL模式下只有CanHwFilterCode起作用。 - CanHwFilterCode(匹配值)
- CanHwFilterMask(掩码)
- #CAN 接收邮箱 掩码设置方法.docx
- EXP:
-
CanMessageBufferRegionRef
- EXP:
选择使用哪一个BufferRegion,一定要注意每个Region最多配置32个8Byte的报文
- EXP:
-
EXP:
-
EXP:
- EXP:
CanHardwareObjects其实就是MailBox,是硬件上的存在。CANIF下面的Hoh包含Hrh(接收)和Hth(发送)是报文收发的句柄,是一个软件概念。
- EXP:
-
CanGeneral
-
CanDevErrorDetection
-
CanIndex
-
CanLPduReceiveCalloutFunction
-
CanMainFunctionBusoffPeriod
- 0.001
-
CanMainFunctionModePeriod
- 0.001
-
CanMainFunctionWakeupPeriod
-
anMultiplexedTransmission
-
CanPublicIcomSupport
-
CanSetBaudrateApi
-
CanTimeoutDuration
-
CanVersionInfoApi
-
CanOsCounterRef
-
CanSupportTTCANRef
-
EXP:
-
EXP:
-
-
EXP:
-
EXP:
-
EXP:
-
评论记录:
回复评论: