《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > FlexRay的通信控制器媒體接入控制設計
FlexRay的通信控制器媒體接入控制設計
互聯(lián)網(wǎng)
摘要: 當前廣泛應用的車載總線技術(如CAN,、VAN,、LIN等總線)由于缺少確定性、同步性及容錯機制等并不能滿足要求,,F(xiàn)lexRay聯(lián)盟推進了FlexRay的標準化,,使之成為了新一代汽車內(nèi)部網(wǎng)絡通信協(xié)議[1]。FlexRay關注的是當今汽車行業(yè)的一些核心需求[2],,包括更快的數(shù)據(jù)速率,、更靈活的數(shù)據(jù)通信、更全面的拓撲選擇和容錯運算,。
Abstract:
Key words :

引言
當前廣泛應用的車載總線技術(如CAN,、VAN、LIN等總線) 由于缺少確定性,、同步性及容錯機制等并不能滿足要求,,FlexRay聯(lián)盟推進了FlexRay的標準化,使之成為了新一代汽車內(nèi)部網(wǎng)絡通信協(xié)議[1],。FlexRay關注的是當今汽車行業(yè)的一些核心需求[2],,包括更快的數(shù)據(jù)速率、更靈活的數(shù)據(jù)通信,、更全面的拓撲選擇和容錯運算,。

FlexRay總線中的每個接入端稱為節(jié)點。節(jié)點主要由電源供給系統(tǒng)(Power Supply),、總線驅動器(Bus Driver),、固化有FlexRay通信協(xié)議的通信控制器(Communication Controller) 及主機(Host)4個部分組成。通信控制器是通信節(jié)點的核心器件,。它主要的功能有媒體接入控制,、時鐘同步、編解碼,、協(xié)議操作控制等[3],。媒體接入控制功能是通信控制器的核心功能,解決數(shù)據(jù)進入FlexRay通信控制器的方式,,為通信控制器的編解碼功能做好時間準備以及數(shù)據(jù)準備[4],。

本文提出一種FlexRay通信控制器媒體接入控制的設計方法,。該方法直接訪問內(nèi)存,大大縮短了獲取配置的時間,;設計更加精簡,,能夠保證通信的穩(wěn)定性。

1 媒體接入控制的設計
本文提出的基于內(nèi)存方式實現(xiàn)媒體接入控制的方法包括以下步驟:首先,,媒體接入控制模塊的所有子模塊在統(tǒng)一時鐘域下工作[5],,用戶把與媒體接入控制相關的配置信息寫入內(nèi)存;然后,,媒體接入控制的各個子模塊直接從內(nèi)存中讀取該信息,。媒體接入控制原理圖如圖1所示。

時鐘產(chǎn)生模塊根據(jù)用戶的配置信息,,對控制器晶振產(chǎn)生的最小時鐘節(jié)拍按照協(xié)議規(guī)定形成系統(tǒng)所需要的時鐘周期,;控制模塊根據(jù)用戶配置的信息將時鐘周期進一步劃分為4個獨立的段,即靜態(tài)段,、動態(tài)段,、符號窗口、網(wǎng)絡空閑段,;計時器模塊根據(jù)用戶配置信息實現(xiàn)計時功能,,用來記錄媒體接入控制所需要的時間。



圖1 媒體接入控制原理圖

1.1 時鐘產(chǎn)生模塊

時鐘產(chǎn)生模塊實現(xiàn)媒體接入控制所需要的時鐘周期,,為編解碼功能做好時間準備,,同時把該信息傳遞給控制模塊。該模塊首先從內(nèi)存中讀取所需配置信息,,主要有gMacroPerCycle,、gdStaticSlot、pMicroPerCycle,。時鐘產(chǎn)生模塊根據(jù)這些配置信息進行初始化操作,,然后等待晶振的最小時鐘節(jié)拍(vMicrotick),。當最小時鐘節(jié)拍大于等于pMicroPerCycle/(gMacroPerCycle-1)時,,該模塊產(chǎn)生周期。

時鐘產(chǎn)生模塊處理流程如圖2所示,。



圖2 時鐘產(chǎn)生模塊處理流程

1.2 控制模塊

控制模塊主要為FlexRay通信控制器的媒體接入控制功能提供所需的時隙劃分,,主要有靜態(tài)段(static segment)、動態(tài)段(dynamic segment),、符號窗口(symbol window),、網(wǎng)絡空閑段(network idle time)[3]。

本文提出的基于內(nèi)存的方式實現(xiàn)控制功能的思路如下[6]:首先從內(nèi)存中讀取所需要的配置信息,,主要有gdstaticSloc,、gNumberOfMinislots,、gdSymbolWindow、gdActionPointOffset,、gdMinislotActionPointOffset,。當接收到時鐘產(chǎn)生模塊提供的周期開始信號時,控制模塊根據(jù)gdstaticSloc實現(xiàn)周期中的靜態(tài)段,。靜態(tài)段使用靜態(tài)槽實現(xiàn)TDMA,,以協(xié)調數(shù)據(jù)的傳輸。在每個通道,,通信控制器上設置一個槽計數(shù)器(vslotcounter),,統(tǒng)計靜態(tài)槽的個數(shù)。當時鐘周期開始的時候,,設置槽計數(shù)器的值為1,;當槽結束的時候,槽計數(shù)器的值加1,。對于一個具體的簇,,靜態(tài)槽的總數(shù)是一定的,由參數(shù)gNumberOfStaticSlots確定,。對于每個靜態(tài)槽,,F(xiàn)lexRay通信控制器根據(jù)用戶的配置和MAC模塊當前的操作模式?jīng)Q定是否為編解碼模塊提供數(shù)據(jù)。

根據(jù)gNumberOfMinislots,,該模塊實現(xiàn)周期中的動態(tài)段,。動態(tài)段使用動態(tài)槽實現(xiàn)事件觸發(fā)的媒體接入方法,以協(xié)調數(shù)據(jù)的發(fā)送,。通信控制器在每個通道上設置一個動態(tài)槽計數(shù)器,,統(tǒng)計動態(tài)槽的個數(shù)。每個動態(tài)槽根據(jù)zMinislot來計數(shù),,當有數(shù)據(jù)傳送時,,動態(tài)槽可能占用多個zMinislot;當沒有數(shù)據(jù)傳送時,,動態(tài)槽占用一個zMinislot,。所以動態(tài)槽的大小是根據(jù)是否有數(shù)據(jù)發(fā)送決定的。對于一個具體的簇,,zMinislot的總數(shù)是一定的,,由參數(shù)gNumberOfMinislots確定;最后它根據(jù)gdSymbolWindow實現(xiàn)周期中的符號窗口,。最后一個周期中剩下的時間就是網(wǎng)絡空閑段,。
 

具體處理流程如圖3所示。



圖3 處理流程

2 設計驗證

確保設計正確性的關鍵是設計驗證,,主要通過邏輯功能仿真[5],。邏輯功能仿真是在不考慮信號延遲的情況下對設計的邏輯功能進行驗證,。驗證過程是:首先編寫好設計的HDL代碼;然后編寫對應的TestBench,對設計進行關鍵性的驗證,;最后利用仿真軟件ModelSim進行模擬,,查看波形或者輸出,若發(fā)現(xiàn)錯誤則查找錯誤原因,、修改代碼或者測試文件,,直到符合設計要求。
 

設計驗證的首要工作是根據(jù)FlexRay協(xié)議設定具體的參數(shù),。具體參數(shù)的設定如下: gMacroPerCycle=48,,gdStaticSlot=4,pMicroPerCycle=672,,gNumberOfMinislots=15,,gdSymbolWindow=3,gdActionPointOffset=1,,gdMinislotActionPointOffset=1,。
 

點擊瀏覽原圖
圖4 時鐘產(chǎn)生模塊的周期信號圖

點擊瀏覽原圖
圖5 控制模塊的四個段

圖4是時鐘產(chǎn)生模塊的周期信號圖。從圖中可以看到,,時鐘產(chǎn)生模塊需要等待晶振的最小時鐘節(jié)拍信號,,然后進行判斷產(chǎn)生周期信號。當周期信號開始時,,周期編號從默認的63變?yōu)?0,,然后一直編號下去直到63。

圖5是對圖4產(chǎn)生的周期信號開始周期的四個段的劃分,。從圖中可以看到,,0周期分為靜態(tài)段、動態(tài)段,、符號窗口,、網(wǎng)絡空閑段。

圖6是靜態(tài)段的媒體接入方式,。從圖中可以看到,,槽計數(shù)器(vslotcounter)從1開始編號直到用戶配置的值。在第一個靜態(tài)槽實現(xiàn)了媒體接入,。

圖7是動態(tài)段的媒體接入方式,。從圖中可以看到,周期8的動態(tài)段有動態(tài)槽計數(shù)器zMinislot,從0開始編號直到用戶配置的值,。在第5個動態(tài)槽實現(xiàn)了媒體接入。


點擊瀏覽原圖
圖6 靜態(tài)段的媒體接入方式

點擊瀏覽原圖
圖7 動態(tài)段的媒體接入方式

結語
本文介紹了基于FlexRay協(xié)議的媒體接入控制的設計過程,,并進行了設計驗證,。從仿真結果分析,,它符合協(xié)議的要求,能夠生成通信控制器的時鐘周期,,將時鐘周期進一步劃分為4個段,,并且給出靜態(tài)段和動態(tài)段的具體媒體接入方式。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載,。