引 言
FlexRay總線(xiàn)是最近推出的一種采用點(diǎn)對(duì)點(diǎn)(星型拓?fù)浣Y(jié)構(gòu))連接,借助無(wú)屏蔽或屏蔽雙絞線(xiàn)電纜的先進(jìn)高速串行同步和異步通信系統(tǒng)。FlexRay總線(xiàn)具有故障容限,可提供500kbps~10 Mbps的確定數(shù)據(jù)傳輸速率和24位CRC(循環(huán)冗余)校驗(yàn)碼。FlexRay是一種時(shí)間觸發(fā)型總線(xiàn),所有的子系統(tǒng)按照預(yù)先設(shè)定的時(shí)隙進(jìn)行連續(xù)通信。FlexRay總線(xiàn)的推出可以解決目前車(chē)載多種電子設(shè)備的網(wǎng)絡(luò)連接問(wèn)題,而早期的CAN總線(xiàn)和LIN總線(xiàn)已經(jīng)無(wú)法滿(mǎn)足現(xiàn)代車(chē)載電子設(shè)備的高速通信要求。
本文介紹一種在嵌入式數(shù)字信號(hào)處理器(DSP)OMAP5912上實(shí)現(xiàn)FlexRay總線(xiàn)的方法。FlexRay總線(xiàn)負(fù)責(zé)將各個(gè)設(shè)備的數(shù)據(jù)傳輸?shù)紻SP,DSP負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行分析和處理。由于系統(tǒng)采用了DSP,因此可以對(duì)車(chē)載電子的語(yǔ)音和圖像數(shù)據(jù)的復(fù)雜算法進(jìn)行處理。本文著重討論DSP和FlexRay總線(xiàn)的軟硬件連接。
1 FIexRay總線(xiàn)及其控制器MFR4200
FlexRay總線(xiàn)是一種全新的總線(xiàn)系統(tǒng)。其主要特性有:
①支持雙通信通道,每個(gè)通道的速率均達(dá)到lO Mbps。與CAN協(xié)議相比,可用的帶寬提高了lO~40倍。
②總線(xiàn)數(shù)據(jù)的訪問(wèn)是基于同步時(shí)基的。該時(shí)基通過(guò)協(xié)議自動(dòng)建立和同步,并提供給應(yīng)用層。時(shí)基的精確度介于0.5 μs和10μs之間。由于采用同步時(shí)基,消息在通信周期中擁有固定位置,接收器已經(jīng)提前知道,消息到達(dá)的時(shí)間,因此可以根據(jù)時(shí)間對(duì)各種特殊情況進(jìn)行相應(yīng)的處理。
③FlexRay總線(xiàn)提供消息冗余傳輸或非冗余傳輸兩種選擇,系統(tǒng)可以進(jìn)行優(yōu)化,以提高可用性或吞吐量,用戶(hù)無(wú)需調(diào)整現(xiàn)有節(jié)點(diǎn)中的軟件就可以擴(kuò)展整個(gè)系統(tǒng);同時(shí),支持總線(xiàn)或星型拓?fù)浣Y(jié)構(gòu)。FlexRay總線(xiàn)提供了大量配置參數(shù),可以支持對(duì)系統(tǒng)進(jìn)行調(diào)整,如通信周期的持續(xù)時(shí)間、消息長(zhǎng)度等,以滿(mǎn)足不同應(yīng)用場(chǎng)合的需求。
FlexRay總線(xiàn)的這些特性使其可以用于替代CAN總線(xiàn),適合車(chē)載骨干網(wǎng)絡(luò)、分布式控制系統(tǒng)以及安全系統(tǒng)等應(yīng)用場(chǎng)合。目前已有多家公司生產(chǎn)FlexRay總線(xiàn)控制器。這里選用Freescale公司的MFR4200總線(xiàn)控制器,介紹其內(nèi)部結(jié)構(gòu)以及和DSP的軟硬件連接方法。
MFR4200總線(xiàn)控制器的內(nèi)部功能框圖如圖1所示。從圖中可以看出,MFR4200總線(xiàn)控制器主要由物理層接收/發(fā)送通道、主機(jī)HCSl2接口、MEM控制器、電源管理模塊以及時(shí)鐘管理模塊等多個(gè)部分組成。
物理層通道有兩個(gè)獨(dú)立的接收/發(fā)送通道,每個(gè)通道的速率均達(dá)到10 Mbps。在工作狀態(tài)下,主機(jī)可以訪問(wèn)MFR4200的接收通道FIFO和發(fā)送消息緩沖區(qū);通過(guò)對(duì)FIFO和消息緩沖區(qū)的配置、控制和讀寫(xiě),實(shí)現(xiàn)對(duì)物理層數(shù)據(jù)的收發(fā)。接收FIFO最大可以存儲(chǔ)59個(gè)消息,總線(xiàn)上 的數(shù)據(jù)幀都將到達(dá)總線(xiàn)上所有的MFR4200。每一個(gè)MFR4200在收到總線(xiàn)數(shù)據(jù)幀后,都將經(jīng)過(guò)接收濾波器;濾波器將不屬于自己地址的數(shù)據(jù)幀濾除,只將屬于自己的數(shù)據(jù)幀和廣播幀存儲(chǔ)到接收FIFO中。
2 系統(tǒng)硬件結(jié)構(gòu)
整個(gè)系統(tǒng)由OMAP5912、MFR4200、AD/DA、人機(jī)接口以及Flash組成,硬件連接如圖2所示。圖中,DSP是核心控制單元;AD用于將采集的模擬信號(hào)轉(zhuǎn)變成數(shù)字信號(hào),DA將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào);人機(jī)接口包括LCD和鍵盤(pán)接口;Flash保存DSP所需要的程序,供DSP上電調(diào)用。此外,將DSP的HPI接口連接到PC機(jī),這樣所有的總線(xiàn)數(shù)據(jù)均可以通過(guò)PC機(jī)存儲(chǔ)和顯示,PC機(jī)的數(shù)據(jù)也可以通過(guò)DSP發(fā)送到總線(xiàn)上。可以根據(jù)不同的需要選擇PC機(jī)或者LCD和鍵盤(pán)。圖中,EMIFS(External MemoryInterface Slow)是OMAP5912的慢速外部存儲(chǔ)器接口。
AD負(fù)責(zé)采集電子設(shè)備的數(shù)據(jù),可以是溫度傳感器數(shù)據(jù)、顏色傳感器數(shù)據(jù),也可以是語(yǔ)音信號(hào)、圖像信號(hào)或者其他信號(hào)。DSP對(duì)這些數(shù)據(jù)處理后,將處理后的結(jié)果根據(jù)不同的情況通過(guò)MFR4200發(fā)送到總線(xiàn)上的其他節(jié)點(diǎn);相反,DSP通過(guò)MFR4200讀取總線(xiàn)上其他節(jié)點(diǎn)發(fā)送的數(shù)據(jù)幀,DSP對(duì)這些數(shù)據(jù)幀進(jìn)行處理,將結(jié)果發(fā)送到DA,可以實(shí)現(xiàn)對(duì)本節(jié)點(diǎn)電子設(shè)備狀態(tài)的控制。
3 MFR4200和OMAP5912的硬件設(shè)計(jì)
MFR4200和OMAP5912的連接是系統(tǒng)硬件連接的關(guān)鍵,具體連接如圖3所示。使用OMAP5912的EMIFS接口連接MFR4200。EMIFS可以方便地和外部Flash、異步SRAM等設(shè)備連接。本系統(tǒng)的MFR4200控制器模塊FlexRay總線(xiàn)協(xié)泌,其最高數(shù)據(jù)傳輸速率為10 Mbps,OMAP5912的EMIFS接口適合滿(mǎn)足其速度要求。
MFR4200和OMAP5912的EMIFS連接,MFR4200作為OMAP5912的外部16位從異步設(shè)備。由于OMAP5912的內(nèi)部數(shù)據(jù)總線(xiàn)寬度為32位,而MFR4200的數(shù)據(jù)總線(xiàn)寬度為16位,因此,將每32位數(shù)據(jù)分成兩個(gè)16位數(shù)據(jù)傳輸。當(dāng)MFR4200有數(shù)據(jù)上傳時(shí),使用INT_CC引腳發(fā)送中斷信號(hào)到OMAP5912的外部中斷引腳EXT_INT4,OMAP5912根據(jù)當(dāng)前自身的工作情況來(lái)處理和MFR4200的通信。OMAP5912也可以使用通用I/O引腳控制MFR4200的復(fù)位信號(hào),當(dāng)連續(xù)多次未收到MFR4200的響應(yīng)信號(hào)時(shí),OMAP5912可以軟件復(fù)位MFR4200,從而避免通信的互鎖現(xiàn)象。此外,MFR4200的#IF_SEL0和#IF_SELl引腳上拉后直接連接到物理層。
4 MFR4200和OMAP5912的軟件設(shè)計(jì)
MFR4200的初始化流程如圖4所示。首先設(shè)置標(biāo)準(zhǔn)電壓,可以是5 V和3.3V。由于本系統(tǒng)和OMAP5912連接,采用3.3 V標(biāo)準(zhǔn)電壓。初始化設(shè)置數(shù)據(jù)和地址總線(xiàn)后,讀取MFR4200的MNR(Magic Number Register)寄存器。一旦MFR4200初始化成功,該寄存器內(nèi)容為0x0815,之后,就可以設(shè)置MFR4200的其他寄存器,進(jìn)行正常的總線(xiàn)數(shù)據(jù)讀寫(xiě)。
OMAP5912和MFR4200的數(shù)據(jù)通信流程如圖5所示。系統(tǒng)初始化后,OMAP5912判斷當(dāng)前是否有數(shù)據(jù)讀寫(xiě)。數(shù)據(jù)的讀是通過(guò)判斷是否有掛起的硬件中斷,該中斷由MFR4200產(chǎn)生,一旦MFR4200收到總線(xiàn)數(shù)據(jù)幀,都將發(fā)出該中斷;數(shù)據(jù)寫(xiě)是通過(guò)判斷上層程序是否有數(shù)據(jù)發(fā)的軟件中斷。無(wú)數(shù)據(jù)讀寫(xiě)情況下,OMAP5912將定期發(fā)送測(cè)試命令到MFR4200,以便確定MFR4200在正常工作。也可以根據(jù)需要,將MFR4200設(shè)置到低功耗狀態(tài),這樣就不需要發(fā)送測(cè)試命令。如果讀取的數(shù)據(jù)的校驗(yàn)錯(cuò)誤較多.則表明無(wú)線(xiàn)通信當(dāng)前的信道噪聲很大,或者M(jìn)FR4200的總線(xiàn)被干擾出現(xiàn)紊亂。0MAP5912將軟件復(fù)位MFR4200模塊,使得。MFR4200重新設(shè)囂總線(xiàn),避免在低信噪比情況下多次重復(fù)發(fā)送同樣的數(shù)據(jù),縮短無(wú)效通信時(shí)間。
由于OMAP5910具有C55系列DSP核,因此一些數(shù)字信號(hào)處理算法可以很容易地實(shí)現(xiàn)。對(duì)于語(yǔ)音信號(hào),可以進(jìn)行濾波以提高語(yǔ)音質(zhì)量;對(duì)于圖像信號(hào),可以進(jìn)行圖像識(shí)別。在車(chē)載電子設(shè)備中,圖像識(shí)別可以檢測(cè)車(chē)前方的各種情況,以便進(jìn)行相應(yīng)的自動(dòng)處理,使得系統(tǒng)更實(shí)用,應(yīng)用范圍更廣。
5 總結(jié)
在基于OMAP5912和MFR4200的總線(xiàn)控制器連接設(shè)計(jì)中,使用OMAP5912的EMIFS接口連接總線(xiàn)控制器MFR4200,可實(shí)現(xiàn)FlexRay總線(xiàn)的數(shù)據(jù)收發(fā)。使用MFR4200模塊實(shí)現(xiàn)總線(xiàn)協(xié)議,使系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,實(shí)現(xiàn)方便。由于采用具有DSP核的處理器,系統(tǒng)還可以方便地應(yīng)用各種數(shù)據(jù)信號(hào)處理算法,尤其適合車(chē)載電子設(shè)備的語(yǔ)音和圖像處理。