
汽車電子嵌入式(公眾號/CSDN)開始更新全新的AUTOSAR項目實戰專欄內容,從0到1搭建一個AUTOSAR工程,內容會覆蓋AUTOSAR通信協議棧、存儲協議棧、診斷協議棧、MCAL、系統服務、標定、Bootloader、復雜驅動、功能安全等所有常見功能和模塊,全網同步更新開發設計文檔(后期也會更新視頻內容)。本文為MCAL系列配置-Can Driver模塊配置實踐。
Can Driver正常工作是CAN通信正常工作的必要條件,在《Can通信協議棧分析(1)-Can Driver》一文中我們介紹了AUTOSAR架構下的Can Driver模塊概念并詳細介紹了RH850 U2A芯片的CAN硬件模塊;在《TC3xx芯片CAN模塊詳解》一文中我們詳細介紹了TC3xx芯片的CAN硬件模塊;在《AUTOSAR架構下TC3xx芯片是如何將一幀CAN報文發送出去的》一文我們詳細介紹了AUTOSAR架構下TC3xx芯片是如何將一幀CAN報文發送出去的;在《AUTOSAR架構下TC3xx芯片是如何將一幀CAN報文接收上來的》一文我們詳細介紹了AUTOSAR架構下TC3xx芯片是如何將一幀CAN報文接收上來的。
本文作為Can Driver的基礎入門介紹,將從0到1介紹如何配置一個Can Driver模塊并測試其基本功能,同時給出一些實際項目開發中的防止問題發生的設計以及查找問題的辦法。
AUTOSAR BSW Tool:Vector
AUTOSAR MCAL Tool:EB
Hardware Platform: Infineon Tricore TC387
Build Tool: Tasking
Debug Tool: UDE
AUTOSAR項目實戰系類文章
AUTOSAR項目實戰(1)-數據地址訪問對齊問題分析
AUTOSAR項目實戰(2)-內存訪問異常問題分析
AUTOSAR項目實戰(4)-系統總線及外設錯誤問題分析
AUTOSAR項目實戰(3)-OsCounter訪問權限問題分析
AUTOSAR項目實戰(5)-MCU模塊配置實踐
AUTOSAR項目實戰(6)-Port及Dio模塊配置實踐
AUTOSAR項目實戰(7)-程序的啟動地址分析
AUTOSAR項目實戰(8)-Load Bus Error異常問題分析
AUTOSAR項目實戰(9) -CanTrcv模塊配置實踐
AUTOSAR項目實戰(10)-Alignment Error異常問題分析
AUTOSAR項目實戰(11)-AUTOSAR OS MPU配置及調試
AUTOSAR架構下XCP從0到1開發配置實踐
AUTOSAR架構下XCP DAQ功能配置實現
SMU Bring up關鍵步驟及注意事項
Retention Ram的具體實現

如上圖所示,TC387的開發板使用了英飛凌公司自己的收發器TLE9251VSJ(一般常用NXP公司的TJA1044, TJA1043, TJA1145這幾個收發器),Pin腳和NXP的TJA1044收發器類似。
關于CanTrcv和Port的配置可以參考《AUTOSAR項目實戰(6)-Port及Dio模塊配置實踐》和《AUTOSAR項目實戰(9) -CanTrcv模塊配置實踐》。
收發器的TXD和RXD和MCU的TXD(Pin20.8)RXD(Pin20.7)直連,CANH和CANL和CAN總線直連。
使用Vector的Davinci工具配置通信相關的模塊時一般都不用從0到1去配置每一個模塊,在第一次導入DBC文件的時候Davinci工具會根據DBC中的內容自動生成絕大部分通信模塊的基本配置。我們只要在這個基本配置根據項目軟硬件需求適配即可。
CanController下就兩個參數需要適配,其他很容易理解或者保持導入DBC后的默認配置即可。

Basis Address Enum: 配置使用哪一個TC3xx芯片CAN硬件模塊的哪一個CAN NODE.

由1章節可知我們使用P20.7作為CAN的Rx引腳,P20.8作為CAN的Tx引腳。如下圖所示,我們就使用CAN00 Node.
注意:TC387芯片有3個CAN unit,每個CAN unit下有4個CAN NODE, 它們在芯片手冊上的描述為: