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