TMS320C28346的CAN總線的引腳


一、概述
TMS320C28346 是 TI C2000? Piccolo 系列中性能強(qiáng)勁的一款 MCU,廣泛應(yīng)用于電機(jī)控制、可再生能源、電源管理和汽車電子等領(lǐng)域。其內(nèi)置的兩路 CAN 控制器(CAN-A、CAN-B)提供了高速、可靠的車載局域網(wǎng)通信能力,是實(shí)現(xiàn)分布式控制和診斷功能的關(guān)鍵模塊。CAN 總線的物理接口與芯片引腳直接關(guān)聯(lián),合理的引腳配置和外部電路設(shè)計對于系統(tǒng)的穩(wěn)定性和抗干擾性能至關(guān)重要。
下面將詳細(xì)介紹 TMS320C28346 上 CAN 總線的相關(guān)引腳,包括引腳名稱、封裝位置、電氣參數(shù)、復(fù)用功能、軟件配置要點(diǎn)以及外部硬件連接示例等,幫助開發(fā)者在硬件設(shè)計和固件開發(fā)中準(zhǔn)確、高效地應(yīng)用 CAN 通信功能。
二、CAN 引腳列表
以下列表匯總了 TMS320C28346 封裝中與 CAN-A 和 CAN-B 對應(yīng)的引腳名稱及其功能描述:
CAN-A 通道
CANTXA:CAN-A 總線發(fā)送引腳,差分輸出(與 CANTXB 配合)
CANTXB:CAN-A 總線發(fā)送反相引腳,與 CANTXA 構(gòu)成差分對
CANRXA:CAN-A 總線接收引腳,差分輸入(與 CANRXB 配合)
CANRXB:CAN-A 總線接收反相引腳,與 CANRXA 構(gòu)成差分對
CAN-B 通道
CANTXB:CAN-B 總線發(fā)送引腳(差分對的正相)
CANTXB:CAN-B 總線發(fā)送反向引腳(差分對的負(fù)相)
CANRXB:CAN-B 總線接收正相輸入
CANRXB:CAN-B 總線接收負(fù)相輸入
(注:以上正負(fù)相成對出現(xiàn),具體實(shí)際管腳名稱與封裝應(yīng)參考最新 TI 數(shù)據(jù)手冊,部分引腳在不同封裝或引腳復(fù)用設(shè)置下可能略有差異。)
三、引腳封裝與定位
TMS320C28346 提供 LQFP-176 和 BGA-257 兩種封裝,以下以 LQFP-176 為例給出 CAN 引腳在封裝上的大致位置:
CANTXA:引腳編號 Pxx(位于芯片右側(cè)中部)
CANTXB:引腳編號 Pxy(與 CANTXA 相鄰,構(gòu)成差分對)
CANRXA:引腳編號 Pxz(位于左側(cè)中部,與 CANRXB 相鄰)
CANRXB:引腳編號 Pxa
在 BGA-257 封裝中,對應(yīng)的球柵編號略有不同,建議根據(jù) TI 官方封裝圖手冊進(jìn)行精確定位,并在 PCB 設(shè)計時嚴(yán)格按照差分對布線規(guī)范走線,確保差分對長度、間距一致,避免時鐘抖動和信號失真。
四、電氣特性與差分對布線
CAN 總線采用差分信號傳輸,可顯著提升抗干擾能力。TMS320C28346 上的 CAN 引腳按照 ISO 11898-2 標(biāo)準(zhǔn)設(shè)計,支持 1 Mbps 的高速傳輸,典型差動輸出電平為 ±1 V。主要電氣參數(shù)如下:
差分輸出擺幅:2 V(典型)
共模電壓范圍:–2 V 至 +7 V
接收閾值:±200 mV(可校準(zhǔn))
最大傳輸速率:1 Mbps
在 PCB 設(shè)計時,CAN 總線差分對應(yīng)按以下要求布線:
差分對間距:保持 100 μm–150 μm,以維持特性阻抗約 120 Ω
等長布線:正、負(fù)相信號線長度差應(yīng)小于 5 mils(約 0.127 mm)
持續(xù)阻抗:全程保持 120 Ω 差分阻抗,避免分支與中斷
參考平面:盡量靠近連續(xù)地平面布線,減少 EMI 與反射
五、引腳復(fù)用與外設(shè)配置
在 TMS320C28346 芯片的多功能管腳設(shè)計中,CAN 引腳通常可復(fù)用為通用 GPIO 或其他外設(shè)信號。要啟用 CAN 功能,需在引腳配置寄存器(PxCR)中將對應(yīng)管腳模式設(shè)為 CAN-A/CAN-B 功能,并關(guān)閉 GPIO 模式。示例如下(偽代碼):
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIOxx = 0; // 使能內(nèi)部上拉
GpioCtrlRegs.GPAQSEL1.bit.GPIOxx = 3; // 設(shè)置為異步輸入
GpioCtrlRegs.GPAMUX2.bit.GPIOxx = 2; // 2: CAN功能復(fù)用
EDIS;
在系統(tǒng)初始化函數(shù)中,還需配置 CAN 控制器時鐘、波特率分頻寄存器(CANBTC)和模式寄存器(CANMC),并對消息對象(MOB)進(jìn)行初始化設(shè)置,以便接收與發(fā)送 CAN 報文。
六、外部電路與收發(fā)器選型
TMS320C28346 內(nèi)部集成了 CAN 協(xié)議層,但不包含物理層收發(fā)器,因此系統(tǒng)設(shè)計中需要外部 CAN 收發(fā)器芯片(如 TI 的 TCAN1042、MCP2562 等)。收發(fā)器主要負(fù)責(zé)電平轉(zhuǎn)換、總線仲裁與驅(qū)動,連接方式如下:
MCU 的 CANTXA/CANTXB 引腳接至收發(fā)器的 CAN_TX+ / CAN_TX– 引腳
MCU 的 CANRXA/CANRXB 引腳接至收發(fā)器的 CAN_RX+ / CAN_RX– 引腳
收發(fā)器 的 CAN_H/CAN_L 端口連接至總線,并且需在總線上兩端各并聯(lián) 120 Ω 端接電阻
收發(fā)器 可選集成過壓、短路保護(hù)與低功耗待機(jī)功能,可大幅增強(qiáng)系統(tǒng)可靠性
電路示例:
MCU CANTXA —— CAN_TX+ —— 收發(fā)器 —— CAN_H —— 120Ω —— 總線 —— 120Ω —— CAN_H
MCU CANTXB —— CAN_TX– —— —— CAN_L —— 120Ω —— 總線 —— 120Ω —— CAN_L
MCU CANRXA —— CAN_RX+ —— 收發(fā)器
MCU CANRXB —— CAN_RX– —— 收發(fā)器
VCC —— 收發(fā)器 VCC
GND —— 收發(fā)器 GND
七、系統(tǒng)設(shè)計與調(diào)試建議
終端電阻:務(wù)必在 CAN 總線兩端并聯(lián) 120 Ω 端接,減少信號反射
地線布線:CAN 收發(fā)器 GND 應(yīng)與 MCU GND 共地,并通過寬銅箔或地平面連接,確保信號參考一致
ESD 保護(hù):在收發(fā)器 CAN_H / CAN_L 端口外側(cè)可并聯(lián) TVS 二極管,用于浪涌電壓抑制
波特率校準(zhǔn):結(jié)合局部總線長度與節(jié)點(diǎn)數(shù),合理選用波特率(如 125 kbps / 250 kbps / 500 kbps / 1 Mbps)并通過報文監(jiān)測與測試儀校準(zhǔn)
軟件診斷:在固件中使用 CAN 發(fā)送心跳與錯誤幀監(jiān)測功能(CANERRCNT),實(shí)時檢測總線錯誤與狀態(tài)
八、典型應(yīng)用場景
分布式電機(jī)控制:各電機(jī)驅(qū)動模塊通過 CAN 總線接收中央控制器指令,并定期上傳故障狀態(tài)與反饋數(shù)據(jù)
智能電表與電網(wǎng)監(jiān)控:低速 CAN(125 kbps)用于遠(yuǎn)程抄表與現(xiàn)場狀態(tài)監(jiān)測,結(jié)合 LIN 或 RS-485 實(shí)現(xiàn)多總線融合
車載診斷系統(tǒng):符合 ISO 11898-2 標(biāo)準(zhǔn),可與車載 ECU、儀表盤、傳感器模塊組網(wǎng),實(shí)現(xiàn) OBD-II 兼容診斷與故障碼上報
九、CAN 控制器內(nèi)部架構(gòu)與報文對象配置
TMS320C28346 的 CAN 控制器內(nèi)部集成了多達(dá) 32 個報文對象(Message Object),每個對象可被配置為發(fā)送、接收或遠(yuǎn)程幀響應(yīng)功能。報文對象內(nèi)部包含 ID 寄存器、面板寄存器和數(shù)據(jù)寄存器,允許用戶精細(xì)控制幀的格式與過濾條件。典型配置過程中,需要對以下寄存器分組進(jìn)行設(shè)置:
MSGID 寄存器:定義幀標(biāo)識符,可設(shè)置標(biāo)準(zhǔn)幀(11 位)或擴(kuò)展幀(29 位)模式。擴(kuò)展幀支持更大地址空間,適用于復(fù)雜網(wǎng)絡(luò)。
MASK 寄存器:用于接受過濾,只有當(dāng)接收報文 ID 與 MASK 和過濾 ID 匹配時,才能觸發(fā)該對象的接收事件。通過掩碼可以實(shí)現(xiàn)組播或廣播方式的過濾。
CONTROL 寄存器:設(shè)置幀類型(數(shù)據(jù)幀、遠(yuǎn)程幀)、數(shù)據(jù)長度(0–8 字節(jié))、中斷使能與溢出處理方式。
DATA 寄存器:用于存放待發(fā)送或已接收的最多 8 字節(jié)數(shù)據(jù)。
初始化示例(偽代碼):
EALLOW;
// 配置報文對象 1 作為接收標(biāo)準(zhǔn)數(shù)據(jù)幀
CANMOBS(1).MSGID = (0x123 << 2); // 標(biāo)準(zhǔn) ID 0x123
CANMOBS(1).MASK = (0x7FF << 2); // 精確匹配
CANMOBS(1).CONTROL = (DATA_FRAME | RTR_OFF | DLC(8) | INTERRUPT_ENABLE);
EDIS;
上述配置將報文對象 1 設(shè)置為接收 ID 為 0x123 的 8 字節(jié)數(shù)據(jù)幀,并在接收完成時觸發(fā)中斷。
十、接受過濾與多級屏蔽技術(shù)
為了在總線上高效處理海量報文,C28346 的 CAN 控制器支持多級過濾策略,不僅能依據(jù) ID 匹配,還可結(jié)合數(shù)據(jù)字段進(jìn)行高級過濾。用戶可以通過配置兩個級別的掩碼(MASK0、MASK1)并通過控制寄存器的優(yōu)先級選擇,實(shí)現(xiàn)在硬件層面篩選特定節(jié)點(diǎn)或功能報文。對于更復(fù)雜的場景,還可借助軟件層面的循環(huán)隊(duì)列與標(biāo)志位機(jī)制,對相似 ID 的一組報文進(jìn)行批處理。
此外,CAN 控制器還支持報文對象分組(Group),將多個報文對象歸為一組統(tǒng)一處理。通過組中斷標(biāo)志位,開發(fā)者可在一次中斷服務(wù)中檢查所有對象的接收狀態(tài),大大縮短中斷響應(yīng)時間。
十一、錯誤處理與自動重傳機(jī)制
TMS320C28346 內(nèi)部實(shí)現(xiàn)了完善的 CAN 錯誤管理,包括差錯檢測、總線錯誤計數(shù)與自動重傳功能。主要機(jī)制如下:
位錯誤與校驗(yàn)錯誤:CAN 硬件自動檢測位填充錯誤、CRC 校驗(yàn)失敗,出現(xiàn)錯誤時會立即終止當(dāng)前幀并在總線上輸出錯誤幀。
監(jiān)聽器與錯誤計數(shù)器:接收與發(fā)送錯誤計數(shù)器(RXERR、TXERR)用于累計錯誤事件,當(dāng)計數(shù)器超過閾值時,節(jié)點(diǎn)進(jìn)入被動錯誤或總線關(guān)閉狀態(tài)。軟件可通過讀取 ERRCNT 寄存器實(shí)時監(jiān)控錯誤水平,并決定是否復(fù)位 CAN 控制器或重新初始化總線。
自動重傳:當(dāng)發(fā)送報文未被確認(rèn)(ACK),硬件會持續(xù)重試,直至成功或達(dá)到最大重傳次數(shù),之后可通過錯誤回調(diào)由用戶決定是否重新發(fā)送或報告故障。
應(yīng)用示例:在出現(xiàn)連續(xù) 15 次發(fā)送失敗后,軟件可主動切斷總線并重新進(jìn)入初始化階段,以規(guī)避總線掛起風(fēng)險。
十二、時鐘同步與時間戳功能
TMS320C28346 的 CAN 控制器支持基于時間戳的報文調(diào)度與同步,特別適合需要精確定時或事件同步的控制系統(tǒng)。如分布式電機(jī)同步、智能電網(wǎng)聯(lián)合跳閘等場景。硬件內(nèi)置的時間戳寄存器可在報文到達(dá)或發(fā)送時自動記錄系統(tǒng)時鐘值(微秒級精度),軟件可根據(jù)時間戳對數(shù)據(jù)幀進(jìn)行排序或延遲補(bǔ)償。
示例:在兩個 DSP 節(jié)點(diǎn)各自采集傳感器數(shù)據(jù)后,通過 CAN 幀攜帶時間戳,接收節(jié)點(diǎn)可對齊時序并執(zhí)行融合算法,從而獲得多源同步數(shù)據(jù)。
十三、網(wǎng)絡(luò)拓?fù)渑c節(jié)點(diǎn)配置優(yōu)化
在設(shè)計 CAN 總線網(wǎng)絡(luò)時,應(yīng)根據(jù)節(jié)點(diǎn)數(shù)量、總線長度與工作速率選擇合適的拓?fù)浣Y(jié)構(gòu)。TMS320C28346 推薦以下最佳實(shí)踐:
總線長度與速率:1 Mbps 速率適合不超過 40 m 總線,500 kbps 可支持約 100 m,250 kbps 支持 200 m 以上。
終端電阻與分布式終端:嚴(yán)禁在總線上任意中點(diǎn)放置終端電阻,且兩端電阻值需精確 120 Ω。對于樹狀或分支較多網(wǎng)絡(luò),可使用分布式終端方案,每段放置低阻抗電阻形成等效 120 Ω。
節(jié)點(diǎn)地址規(guī)劃:根據(jù)功能與優(yōu)先級給每個節(jié)點(diǎn)分配標(biāo)準(zhǔn)(11 位)或擴(kuò)展(29 位) ID,避免沖突并留出保留 ID 區(qū)間。
軟件節(jié)點(diǎn)配置:每個節(jié)點(diǎn)通過 DIP 開關(guān)或 EEPROM 讀取唯一節(jié)點(diǎn) ID,并在初始化時設(shè)置對應(yīng)報文對象,減少固件定制化次數(shù)。
十四、性能調(diào)優(yōu)與測試方法
為了評估 CAN 通信性能并優(yōu)化系統(tǒng)可用帶寬,工程師可借助以下方法:
硬件示波器與 CAN 分析儀:實(shí)時監(jiān)測 CAN_H/CAN_L 信號品質(zhì)、位時間抖動與總線負(fù)載。
軟件性能監(jiān)測:利用 RTDX/Trace 收集中斷響應(yīng)時間、DMA 延遲及報文處理時序,并繪制甘特圖分析瓶頸。
負(fù)載測試:在實(shí)驗(yàn)平臺上構(gòu)建多節(jié)點(diǎn)測試,連續(xù)發(fā)送高頻率報文,并統(tǒng)計幀丟失率、錯誤幀次數(shù)與重傳次數(shù)。
中斷優(yōu)先級調(diào)整:根據(jù)分析結(jié)果,通過重新分配中斷優(yōu)先級和報文對象配置,確保高優(yōu)先級報文獲得及時處理。
十五、應(yīng)用案例:電動汽車車身控制網(wǎng)絡(luò)
在電動汽車車身控制域中,常見模塊如車門控制單元(DCU)、車燈控制單元(LCU)與儀表盤(ICU)通過 CAN 總線互聯(lián)。TMS320C28346 可作為 DCU 的主控 MCU,負(fù)責(zé)讀取傳感器(門鎖位置、開關(guān)狀態(tài)等),并通過 CAN 向 LCU 發(fā)送命令驅(qū)動照明。DCU 還需接收來自中央車載網(wǎng)關(guān)的診斷與遠(yuǎn)程固件更新指令。該場景下,節(jié)點(diǎn)需同時兼顧實(shí)時控制與固件安全更新,因此在硬件設(shè)計中必須預(yù)留 Boot Loader 與安全引導(dǎo)機(jī)制,并在 CAN 控制器上啟用錯誤中斷與心跳幀監(jiān)測功能,確保任何異常均可被及時檢測和處理。
十六、CAN 波特率與位定時詳解
在 CAN 總線通信中,波特率(Baud Rate)及位定時配置直接決定了系統(tǒng)的可靠性與抗干擾能力。TMS320C28346 的 CAN 控制器通過位定時寄存器(CAN_BTR)提供對以下四個關(guān)鍵時段的配置:
同步段(Sync_Seg):固定為一個時間量子(Tq),用于節(jié)點(diǎn)間同步,是采樣點(diǎn)的參考點(diǎn)。
傳播段(Prop_Seg):補(bǔ)償總線傳播延遲,包括線路延遲和信號門限延遲,可通過設(shè)定 PROPSEG 寄存器字段調(diào)整。
相位緩沖段 1(Phase_Seg1):允許節(jié)點(diǎn)在采樣前對時鐘進(jìn)行微調(diào),通過 PHASESEG1 字段配置。
相位緩沖段 2(Phase_Seg2):允許在采樣后對時鐘進(jìn)行微調(diào),通過 PHASESEG2 字段配置。
以 150 MHz CAN_CLK 為例,若需設(shè)置 500 kbps 波特率,可按下式計算:
Tq = (Sync_Seg + Prop_Seg + Phase_Seg1 + Phase_Seg2) / CAN_CLK
Bit_Time = Baud_Rate?1 = Tq × (1 + PROPSEG + PHASESEG1 + PHASESEG2)
典型配置:PROPSEG = 7, PHASESEG1 = 7, PHASESEG2 = 7,總 22 Tq,對應(yīng) Bit_Time = 22/150MHz ≈ 146.7 ns × 22 ≈ 3.227 μs → ≈ 310 kbps;可相應(yīng)調(diào)整各段以精確匹配 500 kbps。
TMS320C28346 還支持重同步跳躍寬度(SJW)配置,用于在突發(fā)抖動時對位時鐘進(jìn)行調(diào)整,SNSJW 字段通常設(shè)置為 1–4 Tq,以兼顧抖動補(bǔ)償能力與定時穩(wěn)定性。
十七、雙通道 CAN 協(xié)同與診斷功能
C28346 的兩個 CAN 通道(CAN-A、CAN-B)可并行工作,實(shí)現(xiàn)雙總線拓?fù)浠蛉哂鄠浞莨δ堋T诙嗫偩€系統(tǒng)中,可將關(guān)鍵控制命令與監(jiān)控數(shù)據(jù)分配到不同通道,避免總線擁塞;在安全關(guān)鍵應(yīng)用,還可啟用雙通道熱備份,當(dāng)主通道發(fā)生嚴(yán)重錯誤時,備份通道自動接管通信,保證系統(tǒng)連續(xù)運(yùn)行。
每個通道均獨(dú)立維護(hù)發(fā)送/接收錯誤計數(shù)器(TEC、REC),并在錯誤超限時進(jìn)入錯誤被動或總線關(guān)閉狀態(tài)。軟件可通過讀取 CAN_ES(Error Status)寄存器得知通道當(dāng)前狀態(tài),并觸發(fā)相應(yīng)的保護(hù)邏輯,如切換備份通道、記錄故障日志或重置 CAN 模塊。
十八、CAN 環(huán)回與監(jiān)聽模式
為了調(diào)測與系統(tǒng)驗(yàn)證,TMS320C28346 CAN 控制器支持多種診斷模式:
環(huán)回模式(Loopback):所有發(fā)送幀在控制器內(nèi)部直接回送至接收通道,無需外部收發(fā)器和總線終端,用于純寄存器級功能測試。
監(jiān)聽模式(Listen-Only):控制器僅監(jiān)聽總線流量,不發(fā)送任何幀或 ACK,用于總線健康監(jiān)測與故障定位。
靜默模式(Silent):與監(jiān)聽模式類似,但可在需要時通過軟件切換為正常模式,適合在系統(tǒng)運(yùn)行中動態(tài)診斷。
使用示例(偽代碼):
CAN_CTRL_REG |= (LOOPBACK_EN | SILENT_EN); // 同時開啟環(huán)回與靜默
十九、CAN 引導(dǎo)加載(Boot over CAN)
在分布式控制系統(tǒng)中,通過 CAN 進(jìn)行固件更新和診斷是常見需求。TMS320C28346 支持基于 CAN 的引導(dǎo)加載(Boot Loader)功能:在上電時,Boot ROM 可檢測 CAN 總線上是否有特定標(biāo)識的固件更新請求幀;若存在,則進(jìn)入 CAN Boot 模式,通過預(yù)定義的協(xié)議(如 XCP over CAN)接收并寫入片內(nèi)或外部 Flash,否則按常規(guī)方式從 Flash 啟動。
該引導(dǎo)方案通常與 DCSM 安全模塊配合使用,對固件映像進(jìn)行簽名驗(yàn)證,保證只有合法固件才能被寫入設(shè)備,增強(qiáng)系統(tǒng)安全性。
二十、實(shí)戰(zhàn)建議與最佳實(shí)踐
時鐘抖動控制:采用低抖動振蕩器,確保 CAN_CLK 穩(wěn)定;在 PCB 布線時為時鐘與地之間添加旁路電容,減少 EMI。
分支與終端:避免在 CAN 總線上出現(xiàn)多處分支,若不可避免,可結(jié)合分支電纜與分布式終端(60 Ω+60 Ω)維持信號完整性。
節(jié)點(diǎn)喚醒:配置 CAN 控制器的喚醒檢測(WAK_INT_EN),當(dāng)總線上有遠(yuǎn)程幀或遠(yuǎn)程喚醒信號時可觸發(fā)中斷,喚醒 MCU 進(jìn)入正常模式。
負(fù)載均衡:合理分配發(fā)送任務(wù),避免短周期高占空比報文導(dǎo)致總線長時間占用;可結(jié)合循環(huán)發(fā)送隊(duì)列(Round-Robin)與優(yōu)先級機(jī)制。
軟件升級與容錯:基于 CAN Boot Loader 方案,實(shí)現(xiàn)故障安全的固件回滾與多版本存儲,防止升級失敗導(dǎo)致設(shè)備失控。
二十一、J1939 協(xié)議棧及高層軟件集成
在汽車和重型設(shè)備領(lǐng)域,SAE J1939 已成為覆蓋 CAN 總線之上的主流高層應(yīng)用協(xié)議,它定義了基于 CAN 的網(wǎng)絡(luò)層、傳輸層及應(yīng)用層幀格式和參數(shù)組(PGN)。TMS320C28346 不僅在硬件層面提供標(biāo)準(zhǔn) CAN 控制,還可通過 TI 提供的 J1939 協(xié)議棧或第三方開源棧(如 Microchip 的 J1939 Stack、SavvyCAN Library)完成軟件層面的完整實(shí)現(xiàn)。該協(xié)議棧通常包含如下模塊:
? 網(wǎng)絡(luò)管理(NM):負(fù)責(zé)節(jié)點(diǎn)啟動、關(guān)機(jī)、巡檢與狀態(tài)廣播,對應(yīng) NMEA/ISO 架構(gòu)中的 TP.NA 功能;
? 傳輸協(xié)議(TP):通過單幀、兩幀或多幀方式分段傳輸大于 8 字節(jié)的數(shù)據(jù),支持傳輸確認(rèn)、重傳和擁塞控制;
? 參數(shù)組(PG)處理:按照 J1939-21 定義,使用標(biāo)準(zhǔn)或擴(kuò)展 PGN 對空調(diào)控制、發(fā)動機(jī)監(jiān)控、車速傳感器等進(jìn)行數(shù)據(jù)映射;
? 診斷消息(DM):支持故障碼(SPN)報告與清除,結(jié)合 DM1/DM2 報文實(shí)現(xiàn)節(jié)點(diǎn)自診斷與遠(yuǎn)程診斷。
在 C28346 上部署時,一般將協(xié)議棧的底層 CAN 接口封裝為 HAL(Hardware Abstraction Layer),上層應(yīng)用可通過 HAL 提供的初始化、發(fā)送、接收回調(diào)等 API 與硬件解耦。TI-RTOS 下,可將 J1939 服務(wù)作為獨(dú)立任務(wù)運(yùn)行,利用消息隊(duì)列(Message Queue)與中斷服務(wù)例程(ISR)協(xié)同完成幀處理與業(yè)務(wù)邏輯分發(fā)。采用 SysConfig 自動生成的代碼可快速配置 CAN 引腳、報文對象與中斷優(yōu)先級,并自動導(dǎo)入 J1939 協(xié)議棧模板,極大簡化工程量。
二十二、向 CAN FD 及未來 CAN XL 演進(jìn)
隨著汽車電子與工業(yè)自動化系統(tǒng)對數(shù)據(jù)帶寬和實(shí)時性能需求的不斷提升,CAN FD(Flexible Data-Rate)和 CAN XL(Extended Length)應(yīng)運(yùn)而生。雖然 TMS320C28346 原生僅支持經(jīng)典 CAN 協(xié)議,但應(yīng)用層可通過外部 CAN FD 收發(fā)器(如 TI 的 TCAN4550)與 FPGA/附加 CPLD 實(shí)現(xiàn) FD 協(xié)議支持。具體做法包括:
? FD 收發(fā)器映射:使用 SPI 或 GPIO 接口與收發(fā)器通信,配置物理層速率切換、位定時與填充規(guī)則;
? 幀拼裝與解析:在 DSP 端軟件中對 12~64 字節(jié)的數(shù)據(jù)長幀進(jìn)行分段與重組,結(jié)合 EDMA 自動搬運(yùn)大容量數(shù)據(jù);
? 錯誤監(jiān)控與兼容模式:在 FD 總線與經(jīng)典總線混合場景中,收發(fā)器提供經(jīng)典模式兼容與自動降級功能,軟件需根據(jù)總線狀態(tài)做相應(yīng)的幀類型處理。
面向即將到來的 CAN XL 標(biāo)準(zhǔn),工程師可借鑒 FD 方案,通過可編程邏輯(FPGA/CPLD)或外部 SoC+ PHY 解決方案先行驗(yàn)證,并在未來 TI 新一代 C2000 平臺(如 C2839x)中獲得原生 XL 支持??傮w而言,通過硬件與軟件的協(xié)同設(shè)計,TMS320C28346 依舊能夠在現(xiàn)有項(xiàng)目中平滑過渡至更高帶寬、更低延遲的下一代 CAN 網(wǎng)絡(luò)。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對此聲明的最終解釋權(quán)。