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