在工業(yè)自動化、智能交通、機(jī)器人等領(lǐng)域,CANFD(CAN with Flexible Data-Rate)技術(shù)正逐步取代傳統(tǒng)CAN,以適應(yīng)更高的數(shù)據(jù)速率和更復(fù)雜的通信需求。本文將深入解析RZ/N2L CANFD模塊的緩沖區(qū)機(jī)制,幫助工程師更高效地管理CAN消息,提高系統(tǒng)性能。(下面的內(nèi)容主要涉及RZN2L CANFD外設(shè)手冊的解讀,篇幅較長,感興趣的讀者可以收藏,以備日后不時之需)
RZN2L CAN-FD模塊提供高達(dá)8 Mbps的數(shù)據(jù)速率,支持豐富的緩沖管理機(jī)制(獨立緩沖、FIFO緩沖、共享緩沖),提供完整的消息過濾、錯誤檢測、消息路由及傳輸管理,同時具備低功耗模式和測試功能,適用于工業(yè)控制、汽車電子、自動化系統(tǒng)等需要高可靠性和高性能通信的應(yīng)用。
接著前面的章節(jié),下面了解一下在FIFO模式下的共享FIFO緩沖區(qū)的配置:

1共享FIFO緩沖區(qū)的模式配置
配置寄存器:通過CFDCFCCn.CFM[1:0]位設(shè)置共享FIFO緩沖區(qū)的模式。
00b(RX模式):默認(rèn)模式,僅允許從RX FIFO或配置為RX的共享FIFO讀取消息(消息存儲基于AFL條目)。
01b(TX模式):消息可以讀寫到以TX模式配置的共享FIFO緩沖區(qū)中,寫入的消息會被發(fā)送到對應(yīng)CAN通道。
10b(GW模式):僅允許讀取消息,但CPU讀取操作不改變讀寫指針(指針由CANFD模塊自動管理)。
11b(保留模式):禁止寫入,否則可能導(dǎo)致未定義行為。
2GW模式下的緩沖區(qū)滿處理策略
行為控制位:由CFDCFCCEn.CFMOWM位決定緩沖區(qū)滿時的操作:
CFMOWM=0:丟棄新消息,并置位CFDCFSTSn.CFMLT標(biāo)志。
CFMOWM=1:覆蓋最舊數(shù)據(jù),讀指針自動指向下一個舊消息,并置位CFDCFSTSn.CFMOW標(biāo)志。
錯誤處理:
在發(fā)送緩沖區(qū)滿且發(fā)生總線錯誤或仲裁丟失時,消息丟失且不重傳,讀指針自動后移。
3關(guān)鍵注意事項
硬件復(fù)位后狀態(tài):所有共享FIFO緩沖區(qū)默認(rèn)處于RX模式,需配置完成后再啟用。
指針管理:
GW模式:指針僅由CANFD模塊控制(如新消息存儲或發(fā)送完成時)。
TX/RX模式:指針由CPU讀寫操作直接管理。
保留值風(fēng)險:不可配置為11b,否則可能引發(fā)系統(tǒng)異常。
配置建議
1模式選擇:
RX模式:適用于純接收場景(如傳感器數(shù)據(jù)采集)。
TX模式:適用于需主動發(fā)送消息的場景(如控制指令下發(fā))。
GW模式:適用于網(wǎng)關(guān)或數(shù)據(jù)轉(zhuǎn)發(fā)場景(需自動管理緩沖區(qū))。
2溢出策略:
若需保留歷史數(shù)據(jù),選擇CFMOWM=0(丟棄新消息)。
若需保證最新數(shù)據(jù),選擇CFMOWM=1(覆蓋舊數(shù)據(jù))。
3錯誤處理:
在GW模式下,需結(jié)合總線監(jiān)控機(jī)制,避免因仲裁丟失或錯誤導(dǎo)致關(guān)鍵消息丟失。
潛在問題
指針不一致:在GW模式下,若手動操作指針可能導(dǎo)致數(shù)據(jù)錯亂,需嚴(yán)格依賴模塊自動管理。
配置順序錯誤:未完成模式配置前啟用FIFO緩沖區(qū),可能導(dǎo)致消息路由異常。
關(guān)于FIFOTX消息緩沖區(qū)的鏈接配置的解讀:

1FIFO TX消息緩沖區(qū)鏈接的必要性
應(yīng)用場景:當(dāng)共享FIFO配置為TX模式或GW模式時,必須將其鏈接至一個Normal TX消息緩沖區(qū),以參與CAN通道的傳輸掃描。
核心作用:通過鏈接實現(xiàn)FIFO緩沖區(qū)與CAN通道的通信調(diào)度,確保數(shù)據(jù)傳輸?shù)膮f(xié)調(diào)性。
2關(guān)鍵配置規(guī)則
唯一性約束:
每個共享FIFO必須鏈接到唯一的TX消息緩沖區(qū),禁止多個FIFO共享同一緩沖區(qū)(避免數(shù)據(jù)沖突)
操作限制:
禁止向已鏈接的TX消息緩沖區(qū)直接寫入數(shù)據(jù)。
鏈接的TX消息緩沖區(qū)不可加入TX隊列(避免干擾FIFO傳輸邏輯)。
3配置方法
寄存器設(shè)置:通過CFDCFCCn.CFTML[4:0]位(5位字段)配置鏈接的TX消息緩沖區(qū)編號。
可選范圍:
0x00→TX Message Buffer 32
0x01→TX Message Buffer 33
...
0x1F→TX Message Buffer 63
緩沖區(qū)總數(shù):共32個專用TX消息緩沖區(qū)(編號3263)。
4注意事項
配置沖突風(fēng)險:若兩個FIFO鏈接到同一緩沖區(qū),可能導(dǎo)致數(shù)據(jù)覆蓋或傳輸錯誤。
范圍限制:必須確保CFDCFCCn.CFTML[4:0]的值在0x000x1F范圍內(nèi)(超出會導(dǎo)致未定義行為)。
配置流程建議
1分配緩沖區(qū):
根據(jù)系統(tǒng)需求,為每個TX/GW模式的共享FIFO分配唯一的TX消息緩沖區(qū)(從32到63中選擇)。
2寄存器寫入:
通過CFDCFCCn.CFTML[4:0]位設(shè)置對應(yīng)的緩沖區(qū)編號。
3驗證隔離性:
確保鏈接的緩沖區(qū)未加入TX隊列,且未被其他FIFO占用。
潛在問題與解決
傳輸失敗:若未正確鏈接緩沖區(qū),可能導(dǎo)致FIFO無法參與傳輸掃描,需檢查CFDCFCCn.CFTML配置。
數(shù)據(jù)丟失:若多個FIFO共享同一緩沖區(qū),需重新分配緩沖區(qū)編號并更新寄存器設(shè)置。
示例配置
FIFO1:配置為TX模式,鏈接至TXMessageBuffer32(CFTML[4:0]=0x00)。
FIFO2:配置為GW模式,鏈接至TXMessageBuffer33(CFTML[4:0]=0x01)。
其他FIFO:依此類推,確保編號唯一。
下面是關(guān)于FIFO深度配置的解讀:

1FIFO深度配置
(FIFO Depth Configuration)
配置寄存器:
RX FIFO:通過CFDRFCCn.RFDC[2:0]位設(shè)置深度。
共享FIFO:通過CFDCFCCn.CFDC[2:0]位設(shè)置深度。
關(guān)鍵限制:
RAM分配上限:總消息數(shù)(RX消息緩沖區(qū)+FIFO緩沖區(qū))不得超過((n+1)*256),n為CAN通道數(shù)或其他參數(shù))。
用戶需自行確保配置不超限,否則可能導(dǎo)致內(nèi)存溢出或數(shù)據(jù)丟失。
鏈接有效性條件:
當(dāng)共享FIFO深度≥4消息時,其TX消息緩沖區(qū)鏈接始終有效(無論FIFO是否啟用)。
若深度為0,鏈接無效。
2FIFO有效載荷大小配置
(FIFO Payload Size Configuration)
配置寄存器:
RX FIFO:通過CFDRFCCn.RFDC[2:0]位設(shè)置深度。
共享FIFO:通過CFDCFCCn.CFDC[2:0]位設(shè)置深度。
默認(rèn)值:8字節(jié)(寄存器值000b)。
配置注意事項
1深度與鏈接關(guān)系:
若需使用共享FIFO的TX消息緩沖區(qū)鏈接,必須確保其深度≥4消息。
深度為0時,F(xiàn)IFO無法啟用且鏈接無效。
2性能與容量權(quán)衡:
增加FIFO深度可緩存更多消息,但會占用更多RAM。
增大有效載荷支持更大數(shù)據(jù)幀,但可能降低實時性(需匹配總線速率)。
潛在問題與解決方案
配置超限風(fēng)險:若總消息數(shù)超過RAM上限,需減少FIFO深度或調(diào)整RX消息緩沖區(qū)數(shù)量。
無效鏈接操作:若深度<4時嘗試啟用鏈接,需檢查CFDCFCCn.CFDC[2:0]值并重新配置。
數(shù)據(jù)截斷:若接收幀超過配置的有效載荷大小,需結(jié)合CFDGCFG.CMPOC位設(shè)置處理策略(見前文解析)。
示例配置
1共享FIFO配置:
模式:TX模式(CFDCFCCn.CFM[1:0]=01b)。
深度:16消息(CFDCFCCn.CFDC[2:0]=011b)。
有效載荷:64字節(jié)(CFDCFCCn.CFPLS[2:0]=111b)。
TX緩沖區(qū)鏈接:TXMessageBuffer32(CFDCFCCn.CFTML[4:0]=0x00)。
2RXFIFO配置:
深度:32消息(CFDRFCCn.RFDC[2:0]=100b)。
有效載荷:32字節(jié)(CFDRFCCn.RFPLS[2:0]=101b)。
-
緩沖區(qū)
+關(guān)注
關(guān)注
0文章
36瀏覽量
9516 -
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129987 -
fifo
+關(guān)注
關(guān)注
3文章
407瀏覽量
45748 -
CANFD
+關(guān)注
關(guān)注
0文章
106瀏覽量
5899
發(fā)布評論請先 登錄
解析RZ/N2L CANFD模塊的緩沖區(qū)機(jī)制(1)
解析RZ/N2L CANFD模塊的緩沖區(qū)機(jī)制(3)
RZ/N2L工業(yè)網(wǎng)絡(luò)SOM套件應(yīng)用說明
RZ/T2M、RZ/N2L、RZ/T2L組 硬件設(shè)計指南
RZ/T2M, RZ/T2L, RZ/N2L電機(jī)解決方案套件數(shù)據(jù)手冊
瑞薩電子RZ MPU家族精品RZ/N2L產(chǎn)品介紹
解析RZ/N2L CANFD模塊的緩沖區(qū)機(jī)制(2)
評論