當(dāng)前廣泛應(yīng)用的車載總線技術(shù)(如CAN、VAN,、LIN等總線)由于缺少確定性,、同步性及容錯(cuò)機(jī)制等并不能滿足要求,FlexRay聯(lián)盟推進(jìn)了FlexRay的標(biāo)準(zhǔn)化,,使之成為了新一代汽車內(nèi)部網(wǎng)絡(luò)通信協(xié)議,。FlexRay關(guān)注的是當(dāng)今汽車行業(yè)的一些核心需求,包括更快的數(shù)據(jù)速率,、更靈活的數(shù)據(jù)通信,、更全面的拓?fù)溥x擇和容錯(cuò)運(yùn)算。
FlexRay總線中的每個(gè)接入端稱為節(jié)點(diǎn),。節(jié)點(diǎn)主要由電源供給系統(tǒng)(Power Supply),、總線驅(qū)動(dòng)器(Bus Driver)、固化有FlexRay通信協(xié)議的通信控制器(Communication Controller)及主機(jī)(Host)4個(gè)部分組成,。通信控制器是通信節(jié)點(diǎn)的核心器件,。它主要的功能有媒體接入控制、時(shí)鐘同步,、編解碼,、協(xié)議操作控制等。媒體接入控制功能是通信控制器的核心功能,,解決數(shù)據(jù)進(jìn)入FlexRay通信控制器的方式,,為通信控制器的編解碼功能做好時(shí)間準(zhǔn)備以及數(shù)據(jù)準(zhǔn)備。
本文提出一種FlexRay通信控制器媒體接入控制的設(shè)計(jì)方法,。該方法直接訪問(wèn)內(nèi)存,,大大縮短了獲取配置的時(shí)間;設(shè)計(jì)更加精簡(jiǎn),,能夠保證通信的穩(wěn)定性,。
1 媒體接入控制的設(shè)計(jì)
本文提出的基于內(nèi)存方式實(shí)現(xiàn)媒體接入控制的方法包括以下步驟:首先,媒體接入控制模塊的所有子模塊在統(tǒng)一時(shí)鐘域下工作,,用戶把與媒體接入控制相關(guān)的配置信息寫(xiě)入內(nèi)存,;然后,媒體接入控制的各個(gè)子模塊直接從內(nèi)存中讀取該信息,。媒體接入控制原理圖如圖1所示,。
時(shí)鐘產(chǎn)生模塊根據(jù)用戶的配置信息,對(duì)控制器晶振產(chǎn)生的最小時(shí)鐘節(jié)拍按照協(xié)議規(guī)定形成系統(tǒng)所需要的時(shí)鐘周期,;控制模塊根據(jù)用戶配置的信息將時(shí)鐘周期進(jìn)一步劃分為4個(gè)獨(dú)立的段,,即靜態(tài)段、動(dòng)態(tài)段,、符號(hào)窗口,、網(wǎng)絡(luò)空閑段,;計(jì)時(shí)器模塊根據(jù)用戶配置信息實(shí)現(xiàn)計(jì)時(shí)功能,用來(lái)記錄媒體接入控制所需要的時(shí)間,。
1.1時(shí)鐘產(chǎn)生模塊
時(shí)鐘產(chǎn)生模塊實(shí)現(xiàn)媒體接入控制所需要的時(shí)鐘周期,,為編解碼功能做好時(shí)間準(zhǔn)備,同時(shí)把該信息傳遞給控制模塊,。該模塊首先從內(nèi)存中讀取所需配置信息,,主要有g(shù)MacroPerCycle、gdStaticSlot,、pMicroPerCycle.時(shí)鐘產(chǎn)生模塊根據(jù)這些配置信息進(jìn)行初始化操作,,然后等待晶振的最小時(shí)鐘節(jié)拍(vMicrotick)。當(dāng)最小時(shí)鐘節(jié)拍大于等于pMicroPerCycle/(gMacroPerCyclc-1)時(shí),,該模塊產(chǎn)生周期,。
時(shí)鐘產(chǎn)生模塊處理流程如圖2所示。
1.2控制模塊
控制模塊主要為FlexRay通信控制器的媒體接入控制功能提供所需的時(shí)隙劃分,,主要有靜態(tài)段(static segment),、動(dòng)態(tài)段(dynamic seg ment)、符號(hào)窗口(symbol window),、網(wǎng)絡(luò)空閑段(network idle time),。
本文提出的基于內(nèi)存的方式實(shí)現(xiàn)控制功能的思路如下:首先從內(nèi)存中讀取所需要的配置信息,主要有g(shù)dstaticSloc,、gNumberOfMinislo ts、gdSymbolWindow,、gdActionPointOffset,、gdMinislotActionPointOffset.當(dāng)接收到時(shí)鐘產(chǎn)生模塊提供的周期開(kāi)始信號(hào)時(shí),控制模塊根據(jù)gdstaticSloc實(shí)現(xiàn)周期中的靜態(tài)段,。靜態(tài)段使用靜態(tài)槽實(shí)現(xiàn)TDMA,,以協(xié)調(diào)數(shù)據(jù)的傳輸。在每個(gè)通道,,通信控制器上設(shè)置一個(gè)槽計(jì)數(shù)器(vslotcountcr),,統(tǒng)計(jì)靜態(tài)槽的個(gè)數(shù)。當(dāng)時(shí)鐘周期開(kāi)始的時(shí)候,,設(shè)置槽計(jì)數(shù)器的值為1,;當(dāng)槽結(jié)束的時(shí)候,槽計(jì)數(shù)器的值加1.對(duì)于一個(gè)具體的簇,,靜態(tài)槽的總數(shù)是一定的,,由參數(shù)gNumberOfStaticSlots確定。對(duì)于每個(gè)靜態(tài)槽,,F(xiàn)lexRay通信控制器根據(jù)用戶的配置和MAC模塊當(dāng)前的操作模式?jīng)Q定是否為編解碼模塊提供數(shù)據(jù),。
根據(jù)gNumberOfMinislots,,該模塊實(shí)現(xiàn)周期中的動(dòng)態(tài)段。動(dòng)態(tài)段使用動(dòng)態(tài)槽實(shí)現(xiàn)事件觸發(fā)的媒體接入方法,,以協(xié)調(diào)數(shù)據(jù)的發(fā)送,。通信控制器在每個(gè)通道上設(shè)置一個(gè)動(dòng)態(tài)槽計(jì)數(shù)器,統(tǒng)計(jì)動(dòng)態(tài)槽的個(gè)數(shù),。每個(gè)動(dòng)態(tài)槽根據(jù)zMinislot來(lái)計(jì)數(shù),,當(dāng)有數(shù)據(jù)傳送時(shí),動(dòng)態(tài)槽可能占用多個(gè)zMinislot,;當(dāng)沒(méi)有數(shù)據(jù)傳送時(shí),,動(dòng)態(tài)槽占用一個(gè)zMinislot.所以動(dòng)態(tài)槽的大小是根據(jù)是否有數(shù)據(jù)發(fā)送決定的。對(duì)于一個(gè)具體的簇,,zMinisl ot的總數(shù)是一定的,,由參數(shù)gNimberOfMinislots確定;最后它根據(jù)gdSymbolWindow實(shí)現(xiàn)周期中的符號(hào)窗口,。最后一個(gè)周期中剩下的時(shí)間就是網(wǎng)絡(luò)空閑段,。
具體處理流程如圖3所示。
2設(shè)計(jì)驗(yàn)證
確保設(shè)計(jì)正確性的關(guān)鍵是設(shè)計(jì)驗(yàn)證,,主要通過(guò)邏輯功能仿真,。邏輯功能仿真是在不考慮信號(hào)延遲的情況下對(duì)設(shè)計(jì)的邏輯功能進(jìn)行驗(yàn)證。驗(yàn)證過(guò)程是:首先編寫(xiě)好設(shè)計(jì)的HDL代碼,;然后編寫(xiě)對(duì)應(yīng)的TestBcnch,,對(duì)設(shè)計(jì)進(jìn)行關(guān)鍵性的驗(yàn)證;最后利用仿真軟件ModelSim進(jìn)行模擬,,查看波形或者輸出,,若發(fā)現(xiàn)錯(cuò)誤則查找錯(cuò)誤原因、修改代碼或者測(cè)試文件,,直到符合設(shè)計(jì)要求,。
設(shè)計(jì)驗(yàn)證的首要工作是根據(jù)FlexRay協(xié)議設(shè)定具體的參數(shù)。具體參數(shù)的設(shè)定如下:gMacroPcrCycle=48,,gdStaticSlot=4,,pMicroPerCyc le=672,gNumberOfMinislots=15,,gdSymbolWindow=3,,gdActionPointOffsct=1,gdMinislotActionPointOffset=1.
圖4是時(shí)鐘產(chǎn)生模塊的周期信號(hào)圖,。從圖中可以看到,,時(shí)鐘產(chǎn)生模塊需要等待晶振的最小時(shí)鐘節(jié)拍信號(hào),然后進(jìn)行判斷產(chǎn)生周期信號(hào),。當(dāng)周期信號(hào)開(kāi)始時(shí),,周期編號(hào)從默認(rèn)的63變?yōu)?,,然后一直編號(hào)下去直到63.
圖5是對(duì)圖4產(chǎn)生的周期信號(hào)開(kāi)始周期的四個(gè)段的劃分。從圖中可以看到,,0周期分為靜態(tài)段,、動(dòng)態(tài)段、符號(hào)窗口,、網(wǎng)絡(luò)空閑段,。
圖6是靜態(tài)段的媒體接入方式。從圖中可以看到,,槽計(jì)數(shù)器(vslotcounter)從1開(kāi)始編號(hào)直到用戶配置的值,。在第一個(gè)靜態(tài)槽實(shí)現(xiàn)了媒體接入。
圖7是動(dòng)態(tài)段的媒體接入方式,。從圖中可以看到,,周期8的動(dòng)態(tài)段有動(dòng)態(tài)槽計(jì)數(shù)器zMinislot,從0開(kāi)始編號(hào)直到用戶配置的值,。在第5個(gè)動(dòng)態(tài)槽實(shí)現(xiàn)了媒體接入,。
結(jié)語(yǔ)
本文介紹了基于FlexRay協(xié)議的媒體接入控制的設(shè)計(jì)過(guò)程,并進(jìn)行了設(shè)計(jì)驗(yàn)證,。從仿真結(jié)果分析,,它符合協(xié)議的要求,能夠生成通信控制器的時(shí)鐘周期,,將時(shí)鐘周期進(jìn)一步劃分為4個(gè)段,,并且給出靜態(tài)段和動(dòng)態(tài)段的具體媒體接入方式。