1項目背景及目標
1.1項目背景
本文課題源于華中科技大學瑞薩實驗室的移動機器人項目以及智能車競賽,主要目的是基于嵌入式技術和控制系統(tǒng)原理,基于FPGA結(jié)合ARM的基本架構(gòu)設計一個小型移動機器人平臺,可以研究自動駕駛、自動泊車、圖像處理、智能控制算法等機器人應用。
該平臺是一種模塊化、通用、層次結(jié)構(gòu)的設計方案,使得研究人員可以根據(jù)自己的要求選擇不同的模塊通過簡單的組合,構(gòu)建符合要求的移動機器人平臺。所設計的小型移動機器人平臺不光有助于機器人技術領域的研究,也是一個理想的嵌入式技術的研究和驗證平臺。
移動機器人領域在可重配置和模塊化方面一直有大量的研究。隨著FPGA在嵌入式系統(tǒng)中的廣泛應用,通過硬件語言編程來實現(xiàn)所需的邏輯功能、實現(xiàn)硬件平臺的重配置,為可重配置和模塊化機器人的設計提供了一種新的方法。FPGA負責實現(xiàn)連接各類傳感器和執(zhí)行機構(gòu)的邏輯電路功能和必要的信號處理,只需編寫不同的硬件語言程序,即可實現(xiàn)所需的電路功能,連接相應的傳感器和執(zhí)行機構(gòu),實現(xiàn)硬件的重新配置。隨著基于FPGA的SOPC技術的發(fā)展,使用SOPC技術來實現(xiàn)可重配置的機器人控制器也成為了機器人平臺研究的熱點。然而基于開發(fā)控制系統(tǒng)的商業(yè)性、系統(tǒng)可升級性、算法復雜度以及工具鏈、生態(tài)鏈成熟度的角度考慮,使用基于ARM的CPU作為主控制器更易于實現(xiàn)該平臺。因此本項目將基于分立的ARM和FPGA基本架構(gòu)實現(xiàn)移動機器人平臺。
該機器人平臺系統(tǒng)分為三個層次:實時控制層、控制數(shù)據(jù)流層、傳感器與驅(qū)動器層。系統(tǒng)高兩層使用串行計算的MCU(ARM7)和并行計算的FPGA(Spartan6)這樣的AMP架構(gòu),處理器間高效的通信將是提升整個系統(tǒng)性能的關鍵,基于開發(fā)經(jīng)驗,本平臺將采用EMC與SSP這樣串并結(jié)合的通信方式。平臺還可以上擴一個高端嵌入式系統(tǒng)接口,ARM7可以通過USB與ARM Cortex A9通信,完成更復雜的功能。傳感器與驅(qū)動器層可以搭載多種傳感器與驅(qū)動器模塊,運算在FPGA中完成。
關于軟件平臺設計,該小型移動機器人可以移植非常有商業(yè)前景的TOPPERS實時嵌入式操作系統(tǒng),既可以在ARM7上移植,也可以考慮在Spartan6上移植。
該課題思想已經(jīng)在專業(yè)課程、移動機器人項目以及兩項智能車競賽中得到數(shù)年設計的充分驗證,團隊有成熟的硬件平臺、OS及組件系統(tǒng)移植范例、IP設計范例、算法資源和測試數(shù)據(jù),已經(jīng)開始相關模塊的實現(xiàn)。
1.1.1FPGA處理底層密集數(shù)據(jù)流
FPGA相對CPU的特點在于并行計算和高速,因此適合于處理批量數(shù)據(jù)。針對本項目,F(xiàn)PGA負責數(shù)字圖像處理、智能控制、圖像人機接口等典型應用的底層密集數(shù)據(jù)流。
以點陣液晶LCM作為基本人機接口為例說明。引入映射緩沖區(qū)這一思想,可以把LCM接口的物理接口部分和數(shù)據(jù)部分分開,即ARM只讀寫映射區(qū)的數(shù)據(jù),而FPGA負責液晶的具體時序要求,通用性、可移植性大大增強。引入雙口RAM,則可實現(xiàn)ARM的快速數(shù)據(jù)通道EMC接口與LCM的慢數(shù)據(jù)通道接口的跨時鐘域設計。這樣一來,系統(tǒng)的同步、模塊化、高效大大加強。同時可以利用C語言邏輯描述優(yōu)勢實現(xiàn)復雜的畫圖功能,而利用Verlilog HDL物理并行優(yōu)勢在數(shù)據(jù)間插入復雜的時序、命令及狀態(tài)機操作。
1.1.2ARM處理上層復雜控制流
CPU相對硬件的特點是復雜函數(shù)計算。實時嵌入式操作系統(tǒng)TOPPERS在ARM7上的移植可以豐富系統(tǒng)的應用及加強實時性。同時結(jié)合豐富的協(xié)議棧及應用支持,系統(tǒng)功能可以得到較大擴展。利用ARM處理復雜控制流并擴展功能、利用FPGA處理密集數(shù)據(jù)流,正是該平臺最顯著的特點。
1.2主要實現(xiàn)目標
1.2.1ARM與FPGA高效通信及重配置
采用的ARM7芯片擁有32 位外部存儲器控制器EMC以及串行同步接口SSP。EMC支持異步靜態(tài)存儲器(如SRAM、Flash)和動態(tài)存儲器(例如SDRAM)的并行接口,而SSP兼容SSI、SPI、MicroWave等格式,并支持DMA傳輸。
為了充分發(fā)揮接口性能,ARM7與Spartan6之間的通信采用雙向EMC與雙向SSP結(jié)合的方式,其中一路SSP被配置成SPI模式,完成ARM對FPGA從串配置。