MicroBlaze微處理器在實(shí)時(shí)汽車(chē)系統(tǒng)中的應(yīng)用
算法實(shí)施
起初,我們想提供一種單處理器系統(tǒng)。不過(guò)很快發(fā)現(xiàn),專(zhuān)用處理器可以簡(jiǎn)化算法開(kāi)發(fā)工作每次迭代所需的集成工作。我們把主處理器和 Foot-LITE 算法處理器隔離開(kāi)來(lái),中間用MicroBlaze? Fast Simplex Link (FSL) 總線系統(tǒng)來(lái)實(shí)現(xiàn)通信。這樣可以把兩個(gè)處理器的存儲(chǔ)完全隔離開(kāi)來(lái)(與常見(jiàn)的共享存儲(chǔ)的做法不同),可以大幅度簡(jiǎn)化集成工作,因?yàn)殄e(cuò)誤不會(huì)通過(guò)內(nèi)存損壞而從一個(gè)處理器遷移到另一個(gè)處理器上。
此外,這樣可以避免對(duì)處理器周期的競(jìng)相爭(zhēng)用。這就意味著我們的合作伙伴可以放心,我們對(duì)主機(jī)應(yīng)用所做的任何修改都不會(huì)影響他們的應(yīng)用性能。
圖 2 – 基于 Spartan 的處理模塊
我們開(kāi)發(fā)了一系列封裝功能,允許我們?cè)L問(wèn)Simulink? 編譯器生成的 C 語(yǔ)言程序,而無(wú)需對(duì)接口進(jìn)行大幅更改。我們可通過(guò) I2C 總線提供少量非易失板上緩存空間,用于存儲(chǔ)Foot-LITE 算法中的各種調(diào)節(jié)參數(shù) (tune parameter)。這就需要一個(gè)簡(jiǎn)單的封裝程序,以便算法在 Simulink 環(huán)境下實(shí)現(xiàn)輕松訪問(wèn),從而在啟動(dòng)時(shí)讀取該內(nèi)存,并在關(guān)斷時(shí)寫(xiě)回。
該系統(tǒng)需要測(cè)量加速度和橫擺角速度,并通過(guò)CAN總線與車(chē)道和車(chē)輛檢測(cè)系統(tǒng)通信。由于我們已經(jīng)有了底層CAN 驅(qū)動(dòng)程序,而且我們擔(dān)心Linux應(yīng)用在40毫秒的時(shí)間范圍內(nèi)測(cè)量車(chē)輛動(dòng)態(tài)信息的及時(shí)性,我們決定在系統(tǒng)中再增加一個(gè)MicroBlaze。這樣可以不必把 CAN 驅(qū)動(dòng)程序?qū)隠inux,而且可以通過(guò)另一個(gè)隔離的處理節(jié)點(diǎn)實(shí)現(xiàn)確定的性能。這對(duì)算法非常重要,因?yàn)樗惴ㄊ褂玫膭?dòng)態(tài)測(cè)量值。此外,這種方法還可以讓我們把編寫(xiě)軟件的工作拆開(kāi),進(jìn)行并行開(kāi)發(fā)。這里我們還是使用 FSL 作為動(dòng)態(tài)處理器和Foot-LITE 算法處理器之間的接口。
視頻捕獲與壓縮
系統(tǒng)的初步構(gòu)想是把視覺(jué)系統(tǒng)的數(shù)據(jù)通過(guò)CAN 總線傳輸給 Foot-LITE 算法單元,為車(chē)道寬度和偏移量、與前方車(chē)輛之間的距離等提供簡(jiǎn)單的測(cè)量。項(xiàng)目合作伙伴決定強(qiáng)化其設(shè)置,將捕獲到的視頻幀傳輸?shù)椒?wù)器,進(jìn)行離線環(huán)境分析,以轉(zhuǎn)譯系統(tǒng)提供的信息的含義。鑒于這項(xiàng)要求只針對(duì)“互聯(lián)網(wǎng)質(zhì)量”的視頻(頻率為5 Hz 時(shí),像素為 300x200),我們覺(jué)得我們可以再用一個(gè) MicroBlaze,把視頻流實(shí)時(shí)壓縮成一系列 JPEG 圖像。攝像頭捕獲的圖像是寬VGA(頻率為30Hz 時(shí),像素為 720 x 480,)視頻流。很明顯,圖像降采樣工作應(yīng)該交給硬件來(lái)做。
我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的外設(shè),通過(guò)交替去掉像素和行來(lái)進(jìn)行降采樣操作,生成360 x 240的圖像。該外設(shè)還每 5 幀去掉 4 幀,以獲得所需的幀率。無(wú)需進(jìn)行更復(fù)雜的處理就可以獲得視覺(jué)上可以接受的結(jié)果,因?yàn)镴PEG 處理會(huì)讓走樣的人為效果不可見(jiàn)。我們使用系統(tǒng)生成器來(lái)開(kāi)發(fā)該外設(shè),因?yàn)樗梢灾苯訉?dǎo)出到 EDK,而且我們已經(jīng)有了使用系統(tǒng)生成器進(jìn)行更加復(fù)雜的圖像處理的經(jīng)驗(yàn)。
進(jìn)入連接到 JPEG 處理器的 SDRAM 的數(shù)據(jù)由降采樣外設(shè)的總線負(fù)責(zé)控制,數(shù)據(jù)隨即被逐幀壓縮,送入循環(huán)緩沖區(qū),直到Foot-LITE算法發(fā)出標(biāo)志。JPEG處理器將壓縮后的視頻幀(也是通過(guò) FSL)發(fā)送到主機(jī) MicroBlaze。我們使用獨(dú)立 JPEG 小組提供的代碼庫(kù),而且發(fā)現(xiàn)基本不需要優(yōu)化就可以工作在 5Hz 的條件下。
另外,通過(guò)隔離的處理器讓另一位軟件工程師(身處異地)在進(jìn)行系統(tǒng)相同部分開(kāi)發(fā)的時(shí)候,都可以并行不悖。
評(píng)論