![[AutoSar]BSW_Com08 CAN driver 模塊介紹及參數(shù)配置說明 (二)](http://pic.xiahunao.cn/yaotu/[AutoSar]BSW_Com08 CAN driver 模塊介紹及參數(shù)配置說明 (二))
目錄關鍵詞平臺說明一、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控制器時激活此參數(shù)。這允許你為這個控制器使用更多的FullCAN對象。只能在第二個物理通道上配置Rx FullCAN對象。4.CanControllerActivation是否使用該控制器。5.CanCpuClockRef引用在MCU模塊配置的時鐘。6.Interrupt PriorityCAN模塊的中斷優(yōu)先級。發(fā)送、接收共用同一個中斷優(yōu)先級。7.CanRxProcessing接收方式輪詢還是中斷。8.CanWakeupProcessing喚醒處理方式輪詢還是中斷。9.CanTxProcessing發(fā)送方式輪詢還是中斷。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函數(shù)作為參數(shù)使用用于設置哪個控制器的波特率。5.Controller Prop Seg傳播段的時間。它定義了CAN總線上發(fā)送輸出驅動器和收發(fā)電路的物理傳播延遲。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。根據(jù)這個二元一次方程組則很容易算出各段的值.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根據(jù)MASK 將不符合的報文過濾只用于接收報文。公式Received CAN ID .Mask Code。后面在軟件濾波和硬件濾波章節(jié)單獨講。[AutoSar]BSW_Com016 硬件濾波、軟件濾波、mask、code 配置四、CanHardwareObjects該配置主要是配置硬件物理層的參數(shù)。1.Common CAN Node如果參數(shù)Common CAN被激活那么該參數(shù)用于該硬件hardware object 選擇它所屬的物理CHANNEL。注意只有RX_FULLCAN的硬件hardware object才可以配置其他的hardware object的值都是A2.Controller Ref該 hardware object所屬的 CAN 控制器。3.Enable Polling Processing該 hardware object是否使用輪循的方式去發(fā)送CAN報文。4.CanFdPaddingValue該值用于填充CAN FD幀中 8字節(jié)的未指定數(shù)據(jù)進行傳輸。這是必要的因為如果 8字節(jié)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引用一個讀寫發(fā)送周期的值該值在CanGeneral→CanMainFunction RWPeriods中定義。9.Object Hw Handle定義硬件hardware object的索引號。10.Object Hw Size定義該消息使用硬件緩沖區(qū)的個數(shù)。11.Object Id定義該硬件hardware object所屬的邏輯handle的ID號。12.Object Type接收還是發(fā)送。五、CanGeneral1.CPU Core serving CAN Interrupt依賴于平臺選擇在哪個核獲取can中斷。2.CanChangeBaudrateApi是否允許使用an_ChangeBaudrate函數(shù)。3.CanCounterRef系統(tǒng)時鐘源。4.Data Quality Of Service指定Message RAM讀寫數(shù)據(jù)操作時的內存優(yōu)先級訪問。5.CanDevErrorDetectionDET。6.CanEccInit指定Can驅動程序是否應該執(zhí)行Can消息RAM的初始化。如果Message RAM具有奇偶校驗或ECC功能建議在硬件復位后初始化Message RAM。如果禁用此功能將給出應用程序標注7.CanFdHardwareBufferOptimization如果選中FullCAN對象的硬件緩沖區(qū)將被限制為要接收的實際消息的幀長。一般來說這可以節(jié)省硬件資源但是如果接收到較大幀長的CAN-FD消息它們可能會被驅動程序丟棄。如果禁用此功能則將硬件緩沖區(qū)配置為能夠接收所有消息的最大大小。8.Fd NISO指定CAN-FD幀格式一致性(ISO11898-1, Bosch CAN FD Spec. V1.0)。9.CanFdSupport是否支持CAN FD。10.CanGenericConfirmation是否使用通用的發(fā)送確認函數(shù)。該函數(shù)被所有的發(fā)送事件調用。11.CanGenericConfirmationAPI2為了支持總線鏡像該參數(shù)改變了’ canenericconfirmation 的簽名。第二個用例是支持用于總線鏡像的CDD鏡像組件。12.CanGenericPreTransmit此參數(shù)定義啟用此復選框時是否調用所有Tx消息的通用預傳輸公共。在發(fā)送消息之前使用它來更改數(shù)據(jù)或中止傳輸。13.CanGenericPrecopy是否使用通用的預復制函數(shù)該函數(shù)在消息被接收到之后調用。14.CanGetStatus是否使用獲取狀態(tài)函數(shù)如果勾選該屬性那么CAN模塊會提供一個函數(shù)Can_GetStatus供上層調用15.CanHardwareCancelByAppl該參數(shù)定義應用層是否可以取消硬件Loop Check。如果該參數(shù)被使用那么下面的三個函數(shù)必須被實現(xiàn)。ApplCan TimerStart();ApplCanTimerLoop();ApplCanTimerEnd()。16.CanHwTxFifoSupport該參數(shù)定義CAN驅動是否支持任何CanHardwareObject (TxBasicCAN)的硬件TX fifo。(全局切換優(yōu)化)。17.CanHardwareHandleType根據(jù)平臺的不同需要使用超過8位的“硬件郵箱句柄”(由AutoSar 3.x定義)。因此可以使用8位或16位類型(由AutoSar 4.x定義)。限制:當使用沒有此支持的CanInterface時‘CanHardwareHandleType’需要設置為8位(Vector Interface 4.12支持16位)。18.CanIdenticalIdCancellation啟用/禁用具有相同ID的掛起pdu的取消?!坝布鬏斎∠币矔挠布]箱中取消具有相同標識符(將發(fā)送更新的數(shù)據(jù))的消息。否則只有較低的優(yōu)先標識符將被取消。(將發(fā)送舊數(shù)據(jù))限制:’ canidenticalidcancel ‘僅在CAN接口參數(shù)’ caniftransmitcancel 設置時使用。19.CanHwTxFifoSupport該參數(shù)定義CAN驅動是否支持任何CanHardwareObject (TxBasicCAN)的硬件TX fifo。(全局切換優(yōu)化)。20.CanIndividualProcessing單獨配置每個Rx和Tx郵箱對象時請激活此選項(取消激活以減少運行時和內存消耗)。21.CanInterruptCategory指定中斷函數(shù)的類型。類別1:中斷函數(shù)必須添加到中斷向量表中。第2類:中斷函數(shù)用ISR()定義。[AutoSar]BSW_OS 04 Autosar OS_ISR 中斷22.CanInterruptLock:選擇哪個模塊去關中斷和開中斷可選的模塊有CANDriver或APPL或CAN Driver和APPL。23.CanLPduReceiveCalloutFunction:該參數(shù)定義了是否存在一個callout函數(shù)并定義了在成功接收到CAN Rx L-PDU后調用該函數(shù)的名稱。如果省略此參數(shù)則不會發(fā)生標注。24.CanMainFunctionBusoffPeriod:該值指定循環(huán)調用Can_MainFunction_Busoff的周期。EcuC的單位是秒。25.CanMainFunctionModePeriod:該值指定循環(huán)調用Can_MainFunction_Mode的周期。EcuC的單位是秒。26.CanMainFunctionWakeupPeriod:此值指定描述循環(huán)調用Can_MainFunction_Wakeup的周期。EcuC的單位是秒。27.CanMaxRxDataLen:指定在激活CAN FD的情況下接收緩沖區(qū)使用的最大字節(jié)數(shù)。28.CanMaxTxDataLen:指定在CAN FD被激活的情況下用于傳輸緩沖區(qū)的最大字節(jié)數(shù)。29.CanMcanRevision:指定特定的底層M_CAN核心步驟和子步驟釋放。MCAN_REV_30: MCAN版本3.0。x, CAN-FD支持具有更高的比特率和擴展的數(shù)據(jù)長度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數(shù)量。31.CanMirrorModeSupport:使用CDD鏡像組件將消息路由到其他控制器。32.CanOverrunNotification:該參數(shù)定義Rx超時通知是否激活。None:不做任何事情。DET:調用DET。APP:Appl_CanOverrun被調用。33.Ram Check檢查硬件MO是否有效None不作檢查Active檢查如果無效函數(shù)ApplCanMemCheckFailed會被調用34.Relnitalization While Start Transition當CAN控制器模式被重新設置為START模式的時候是否重新初始化CAN模塊。35.Run Time Measurement Support如果配置該參數(shù)那么可以通過CAN模塊發(fā)送系統(tǒng)運行時的一些參數(shù)比如CPU使用率等等發(fā)送到CANape上供用戶實時監(jiān)測系統(tǒng)運行的效率。36.Rx Basic CAN Support是否支持Rx Basic CAN37.Rx Full CAN Support是否支持Rx Full CAN38.Rx Queue是否支持接收隊列。如果配置那么所有的接收數(shù)據(jù)都被緩存到接收隊列中在Can_MainFunction_Read函數(shù)中被處理。39.Rx Queue Size定義接收隊列的大小。40.CanSecureTempBuffer此參數(shù)定義hw-郵箱對象的安全臨時緩沖區(qū)的使用情況。41.CanSetBaudrateApiCan_SetBaudrate API的支持是可選的。如果該參數(shù)設置為true則支持Can_SetBaudrate API。否則不支持該API。42.CanSilentModeSupport該參數(shù)定義CAN驅動程序是否支持CAN總線靜默模式(全局開關優(yōu)化)。43.Timeout Duration定義超時參數(shù)的最大值。44.Transmit Cancellation取消掛起的發(fā)送報文。如果發(fā)送的報文太多超出了硬件MO 發(fā)送的能力那么最新的報文將被發(fā)送。需要硬件的支持。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函數(shù)。49Wakeup Support是否支持wakeup功能。需要硬件的支持?;氐娇偰夸?