文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174701
中文引用格式: 馮紹輝,,朱曉燕,張偉功. 基于UM-BUS總線的智能輪椅系統(tǒng)的新型體系結(jié)構(gòu)[J].電子技術(shù)應(yīng)用,,2018,,44(9):137-140,145.
英文引用格式: Feng Shaohui,,Zhu Xiaoyan,,Zhang Weigong. The new architecture of smart wheelchair system based on UM-BUS[J]. Application of Electronic Technique,2018,,44(9):137-140,,145.
0 引言
智能輪椅作為服務(wù)機(jī)器人的一種,,有助于提高老年人和殘疾人群體的生活質(zhì)量。經(jīng)過幾十年的發(fā)展,,國內(nèi)外對智能輪椅的研究已取得很多的成果,,如MAID項目、西班牙SIAMO項目,、希臘MEYR-A項目,、可配置的輪椅/床系統(tǒng)等[1]。但是,,隨著技術(shù)進(jìn)步與應(yīng)用需求的發(fā)展,,智能輪椅對可靠性,、標(biāo)準(zhǔn)化,、擴(kuò)展性方面提出了更高的要求。
智能輪椅是一個集環(huán)境感知,、動態(tài)規(guī)劃,、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)[1]。對于各功能模塊之間的互連,,大部分智能輪椅采用CAN,、LonWorks等現(xiàn)場總線,而采用現(xiàn)場總線往往使控制系統(tǒng)具有高度的分散性,,這會導(dǎo)致多MCU帶來的高功耗問題,,并且各模塊的異步性增加了系統(tǒng)的復(fù)雜度。同時,,隨著智能化程度的提高,,面對不斷增加的傳感器和復(fù)雜功能模塊的連接需求,,如Kinect圖像傳感器、腦電儀,、輔助機(jī)械臂等,,以往的系統(tǒng)體系結(jié)構(gòu)會重新選擇性能更強(qiáng)的處理器來滿足接入設(shè)備的通信接口要求,這樣不僅提高了系統(tǒng)的成本,,還不宜系統(tǒng)的擴(kuò)展,。
本文首先介紹UM-BUS總線特性,著重強(qiáng)調(diào)總線的擴(kuò)展便捷性與故障容錯能力,。然后提出基于UM-BUS總線的智能輪椅控制系統(tǒng)的新型體系結(jié)構(gòu),,并與傳統(tǒng)體系結(jié)構(gòu)進(jìn)行比較。同時,,從組成結(jié)構(gòu)與通信過程方面,,對新型體系結(jié)構(gòu)進(jìn)行了闡述。最后,,設(shè)計并實現(xiàn)了該結(jié)構(gòu)通用的硬件與軟件平臺,。
1 UM-BUS總線
UM-BUS總線是一種新型高速串行總線。采用節(jié)點直接互連方式的總線型拓?fù)浣Y(jié)構(gòu),,最多可連接30個總線節(jié)點設(shè)備,,最大傳輸距離40 m,無需中繼與路由器,;最多支持N(N≤32)條通道并發(fā)傳輸,,這些并發(fā)通道又互為冗余備份。因此為保證基本的容錯能力,,硬件上需配置至少2條信號通道,;采用多點低壓差分信號(M-LVDS)傳輸方式,單通道傳輸速率最高達(dá)200 Mb/s,,因此在采用32條通道并發(fā)傳輸?shù)那闆r下,,傳輸速率可達(dá)6.4 Gb/s[2]。圖1為三通道UM-BUS總線拓?fù)浣Y(jié)構(gòu)圖,,傳輸速率最高達(dá)600 Mb/s,,最多可對2條信號通道進(jìn)行容錯。
UM-BUS總線采用主從命令應(yīng)答式通信協(xié)議,,每次通信只能由主控節(jié)點發(fā)起,,從節(jié)點響應(yīng)主控節(jié)點的通信命令,最后在主控節(jié)點的控制下完成數(shù)據(jù)的接收或發(fā)送,。該總線定義了按地址空間訪問的方式,,可實現(xiàn)對遠(yuǎn)程設(shè)備內(nèi)部功能單元的直接訪問。地址空間分為3種:存儲空間、IO空間和配置空間,,各地址空間支持讀寫操作,,按字節(jié)獨(dú)立編址[2]。其中配置空間可用來訪問總線設(shè)備的屬性配置數(shù)據(jù),,包括地址空間需求,、傳感器類型、總線帶寬配置等信息,。通過訪問UM-BUS總線配置空間的配置信息,,系統(tǒng)可對總線上接入的節(jié)點實現(xiàn)動態(tài)管理。在接入或更換某節(jié)點時,,系統(tǒng)會對該節(jié)點進(jìn)行自動識別,,實現(xiàn)設(shè)備的“即插即用”。如圖1所示,,CPU,、存儲器設(shè)備、傳感器設(shè)備通過數(shù)據(jù)線,、地址線,、控制線與UM-BUS總線控制器相連,主設(shè)備將以訪問本地存儲單元的方式訪問遠(yuǎn)程設(shè)備,,相當(dāng)于將其中一部分功能模塊像傳統(tǒng)的分布式處理結(jié)構(gòu)那樣作為IO擴(kuò)展單元,,這樣主控單元既可作為系統(tǒng)的核心處理單元,又可進(jìn)行類似的IO擴(kuò)展,,將某一部分功能模塊嵌入到本地測量系統(tǒng)中,,整個系統(tǒng)看作一個集中控制的分布式系統(tǒng)。
UM-BUS總線具有故障檢測,、故障隔離與動態(tài)容錯能力[2],。主節(jié)點通過所有通道向從節(jié)點發(fā)送通道檢測命令來檢測通道是否健康,并建立通道故障信息表,。當(dāng)一個通道發(fā)生故障時,,首先更新通道故障信息表,及時剔除故障通道,,然后將數(shù)據(jù)重新組織分配到可用通道上進(jìn)行傳輸,,最終實現(xiàn)數(shù)據(jù)的動態(tài)分配與通道的動態(tài)重構(gòu)。
伴隨CPS與物聯(lián)網(wǎng)新興技術(shù)的興起,,信息物理系統(tǒng)的融合正在不斷現(xiàn)實化,通過網(wǎng)絡(luò)互聯(lián)實現(xiàn)信息交互,、資源共享,、協(xié)同計算是未來嵌入式系統(tǒng)重要的發(fā)展趨勢。為實現(xiàn)信息物理的深度融合,需要在系統(tǒng)中部署大量各類傳感元件實現(xiàn)信息的大量采集,,這使得其嵌入式控制系統(tǒng)的規(guī)模不斷增大,,如何從系統(tǒng)體系結(jié)構(gòu)方面考慮,解決傳感器數(shù)量大幅增加情況下對信息的實時可靠采集,,并能夠降低系統(tǒng)能耗和成本,,已成為智能制造系統(tǒng)需要重點解決的問題之一。在新發(fā)展需求下,,智能輪椅控制系統(tǒng)面臨同樣的問題,,即在多類傳感器接入的情況下,如環(huán)境感知,、身體狀況檢測等,,如何更好地進(jìn)行協(xié)調(diào)控制與融合處理[3]。本文設(shè)計使用UM-BUS總線作為智能輪椅控制系統(tǒng)的互連總線,,硬件平臺采用嵌入式系統(tǒng)技術(shù),。
2 基于UM-BUS總線的智能輪椅系統(tǒng)結(jié)構(gòu)
2.1 智能輪椅系統(tǒng)的傳統(tǒng)體系結(jié)構(gòu)
多功能智能輪椅的控制系統(tǒng)是融合了多領(lǐng)域技術(shù)的綜合電子系統(tǒng),其相關(guān)技術(shù)的研究已比較成熟,。如人機(jī)交互的多樣性,、導(dǎo)航避障算法的優(yōu)化等。但目前,,智能輪椅控制系統(tǒng)的體系結(jié)構(gòu)主要體現(xiàn)為集中式和分布式兩種,,如圖2所示。
集中式體系結(jié)構(gòu)由中央處理器完成智能輪椅系統(tǒng)功能,,中央處理器與每個功能模塊實現(xiàn)點對點通信,,實現(xiàn)起來簡單高效。各功能模塊間的耦合度高,,易實現(xiàn)信息的融合處理,。但是,從硬件和軟件角度來講,,降低了智能輪椅系統(tǒng)的可擴(kuò)展性與可重用性,,即不能滿足模塊“接入即用”的功能。
相比集中式體系結(jié)構(gòu),,分布式采用互聯(lián)總線將所有的嵌入式計算機(jī)系統(tǒng)連接在一起,,提高了局部處理能力,如電機(jī)的控制,、環(huán)境信息的采集等,。每個嵌入式計算機(jī)系統(tǒng)負(fù)責(zé)完成智能輪椅相應(yīng)的功能,這樣具有模塊化,,易于擴(kuò)展,。但對于多個嵌入式微處理器的使用,,必然增加整個系統(tǒng)協(xié)調(diào)控制的復(fù)雜度,同時帶來功耗與成本的增加,。另一方面,,微處理器僅負(fù)責(zé)處理本地功能模塊,過多的資源不能進(jìn)行遠(yuǎn)程擴(kuò)展,,不僅造成資源的浪費(fèi),,也不利于智能輪椅系統(tǒng)中多傳感器信息的融合處理。
2.2 智能輪椅系統(tǒng)的新型體系結(jié)構(gòu)
隨著半導(dǎo)體技術(shù)的快速發(fā)展,,單個嵌入式計算機(jī)的處理能力與功能密度都在迅速提高,,傳統(tǒng)分布式系統(tǒng)出現(xiàn)逐漸向單一計算機(jī)集中的趨勢[2]。同時,,為使智能輪椅系統(tǒng)更加智能化,,對各類傳感器數(shù)據(jù)采集的需求會急劇增長,應(yīng)用于智能輪椅的嵌入式計算機(jī)需要連接更多的輸入輸出,。這使得嵌入式計算機(jī)系統(tǒng)不斷提升的處理能力以及功能集成能力,,與系統(tǒng)對外擴(kuò)展和連接之間的矛盾日益突出,采用傳統(tǒng)的單一結(jié)構(gòu)難以解決這一矛盾,,研究一種能夠融合集中式與分布式結(jié)構(gòu)優(yōu)點的嵌入式系統(tǒng)體系結(jié)構(gòu)對智能輪椅的發(fā)展具有重要的現(xiàn)實意義,。
本文提出基于UM-BUS總線的智能輪椅控制系統(tǒng),它采用可重構(gòu)的UM-BUS總線作為各功能模塊之間數(shù)據(jù)傳輸通道,,如圖3所示,。本文設(shè)計的結(jié)構(gòu)優(yōu)點在于:(1)將運(yùn)動控制、人機(jī)交互和導(dǎo)航避障等模塊進(jìn)行單獨(dú)設(shè)計,,通過總線控制器接入智能輪椅系統(tǒng),,實現(xiàn)功能模塊的“接入即用”;(2)可實現(xiàn)系統(tǒng)2條數(shù)據(jù)通道的動態(tài)冗余容錯,,提高整個系統(tǒng)的可靠性,;(3)系統(tǒng)中僅設(shè)置一個帶有處理器的總線主控節(jié)點,且可對總線上的從節(jié)點進(jìn)行遠(yuǎn)程穿透式訪問,,構(gòu)成一種集中控制,、分布處理的系統(tǒng)。
具體實現(xiàn)時將嵌入式計算機(jī)系統(tǒng)作為主節(jié)點,,從節(jié)點主要包括運(yùn)動控制,、人機(jī)交互以及導(dǎo)航避障模塊。主,、從節(jié)點通過總線控制器接入系統(tǒng)中,,即總線控制器一端通過編寫相應(yīng)的硬件邏輯接口與功能模塊進(jìn)行連接,另一端連接MLVDS線纜,??偩€控制器電路包括協(xié)議處理與總線驅(qū)動兩部分[4],??紤]到線纜尺寸與通信速率的因素,,UM-BUS總線配備3條MLVDS信號通道,實現(xiàn)冗余度為2,、傳輸速率最高為600 Mb/s的串行總線,。由于其冗余容錯的能力,提高了智能輪椅系統(tǒng)的可靠性,,且集中控制,、分布處理的特性更利于多信息的融合處理,為精確導(dǎo)航提供可靠的依據(jù),,從而使系統(tǒng)具有更高的魯棒性,。本文設(shè)計中,運(yùn)動控制模塊由用于檢測電機(jī)狀態(tài)的傳感器電路與電機(jī)驅(qū)動電路組成,,人機(jī)交互模塊主要包括一種或多種交互方式,,如操作桿、語音識別,、腦-機(jī)接口[5]等,。導(dǎo)航避障的關(guān)鍵是獲取周圍環(huán)境和自身位姿信息[6],主要包括環(huán)境感知電路與自定位電路,。由于總線具有“即插即用”功能,,實際搭建系統(tǒng)時,可根據(jù)功能需求動態(tài)接入相應(yīng)的模塊,,通用性強(qiáng),。
實際通信過程中,主節(jié)點依次向各從節(jié)點發(fā)送命令,,獲取用戶指令以及各傳感器信息,,包括環(huán)境信息、電機(jī)的狀態(tài)信息等,。主控節(jié)點通過相應(yīng)算法對數(shù)據(jù)進(jìn)行處理,,并向運(yùn)動控制模塊發(fā)送控制命令,從而實現(xiàn)智能輪椅系統(tǒng)的自主導(dǎo)航,。每一次的數(shù)據(jù)傳輸都是在主節(jié)點的控制下完成,,由于總線既有高傳輸速率,又支持時間確定性調(diào)度能力,,因此實時性也會有很好的保證,。
本方案設(shè)計中,硬件平臺主要包括嵌入式計算機(jī)系統(tǒng),、總線控制器,、信號調(diào)理模塊以及電機(jī)驅(qū)動模塊,。由于信號調(diào)理模塊與電機(jī)驅(qū)動模塊設(shè)計簡單,本文著重對主控節(jié)點的設(shè)計進(jìn)行闡述,。主控節(jié)點包括嵌入式計算機(jī)系統(tǒng)和總線控制器兩部分,,是本文設(shè)計的關(guān)鍵部分,其在結(jié)構(gòu)上由硬件和軟件兩部分組成,。
3 硬件平臺設(shè)計
本文設(shè)計的主控節(jié)點采用嵌入式系統(tǒng)形式,,相比由工控機(jī)搭建的系統(tǒng),具有小型化,、低功耗,、強(qiáng)實時性與高性價比等特點。硬件部分選擇TI公司的OMAP-L138作為核心處理器,,Xilinx公司的FPGA芯片XC6SLX16作為UM-BUS總線協(xié)議處理芯片,,包括周圍相關(guān)外設(shè)的搭建。OMAP-L138是一款雙核異構(gòu)的SoC芯片,,內(nèi)部集成了456 MHz的ARM926EJ-S RISC內(nèi)核和456 MHz的C6748 VLIW DSP核[7],。以O(shè)MAP-L138為核心處理器,再搭配電源模塊,、晶體,、JTAG接口構(gòu)成最小系統(tǒng),然后根據(jù)實際需要進(jìn)行外設(shè)的擴(kuò)展,。搭建帶觸摸屏功能的LCD可進(jìn)行上位機(jī)人機(jī)交互控制,,USB接口、SD卡接口實現(xiàn)與其他設(shè)備的通信以及數(shù)據(jù)的存儲,。外擴(kuò)NOR Flash存儲器共32 MB,,用于存儲引導(dǎo)程序、操作系統(tǒng),、文件系統(tǒng),、用戶的應(yīng)用程序以及系統(tǒng)掉電后需要保存的數(shù)據(jù);DDR2 SDRAM存儲器共128 MB,,用于存放臨時數(shù)據(jù)和程序的運(yùn)行,。FPGA外部配以Flash芯片、晶振,、JTAG接口,、MLVDS收發(fā)器與總線接口,實現(xiàn)UM-BUS總線控制器功能,,其接口采用網(wǎng)口對外連接,。OMAP-L138與FPGA兩者之間通過EMIFA接口進(jìn)行通信。主控節(jié)點的硬件結(jié)構(gòu)框圖如圖4所示,。
OMAP-L138處理器的ARM核帶有存儲器管理單元MMU,,可移植Linux,、Windows CE這些多用戶多進(jìn)程操作系統(tǒng),雙核具有各自獨(dú)立可見的緩存外,,其內(nèi)部有128 KB RAM作為雙核的共享內(nèi)存,,ARM核和DSP核都能進(jìn)行訪問并進(jìn)行數(shù)據(jù)的交換[7]。
4 軟件平臺設(shè)計
本文系統(tǒng)軟件是一個典型而又復(fù)雜的多任務(wù)系統(tǒng),,它有許多任務(wù)需要控制,,如圖形顯示,、與UM-BUS總線上各功能模塊的數(shù)據(jù)交換以及對DSP核的訪問與控制等,。各個功能模塊之間存在一個并發(fā)執(zhí)行和時序配合的問題,因此系統(tǒng)采用移植Linux操作系統(tǒng)來管理各個任務(wù)的協(xié)調(diào)調(diào)度,,并保證運(yùn)動控制的實時性要求,。OMAP-L138的啟動過程[7]如圖5所示。在移植Linux操作系統(tǒng)之前,,需要做一些初始化與引導(dǎo)工作,。首先從指定地方讀取用于啟動U-Boot的BootLoader(即UBL)對平臺進(jìn)行初始化,接下來加載U-Boot,,然后U-Boot會根據(jù)啟動參數(shù)解壓,、啟動Linux內(nèi)核,最后,,Linux內(nèi)核根據(jù)啟動參數(shù)加載根文件系統(tǒng),。針對主控節(jié)點的硬件資源以及功能需求,在每一步的移植過程中修改相應(yīng)的參數(shù),,如硬件相關(guān)代碼,、DSP Link內(nèi)核模塊的插入等。本文主要對移植過程中修改的地方進(jìn)行詳細(xì)的闡述,。
(1)U-Boot的移植,。本文將基于系統(tǒng)的需要,對TI提供的針對OMAP-L138處理器的U-Boot-03.-20.00.11源碼進(jìn)行裁減和修改,,定制適用于本文系統(tǒng)的U-Boot,。同時通過AISgen.exe工具將U-Boot.-bin文件轉(zhuǎn)換成AIS格式文件,這樣省去二級啟動代碼UBL,。由于本文系統(tǒng)與源碼支持的OMAP-L1-38板僅存在硬件配置上的差異,,需要針對實際情況做必要的修改,主要就實際占用的片選資源,、串口配置,、存儲器容量以及分區(qū)信息做一些修改,將有關(guān)NAND,、SPI和I2C的定義全部去掉,。為支持NOR Flash的啟動,,本文做了相關(guān)修改工作。以下的程序片段描述了對NOR Flash存儲器容量以及分區(qū)信息的修改,。
…
#define CONFIG_SYS_FLASH_BASE
DAVINCI_ASYNC_EMIF_DATA_CE2_BASE
#define PHYS_FLASH_SIZE(32<<20)
…
#define MTDIDS_DEFAULT
"NOR0=physmap-flash.0"
#define MTDPARTS_DEFAULT \
"mtdparts= physmap-flash.0:512k(bootloaders+ env),4m(kernel),-(filesystem)"
…
而NOR Flash代碼的整個運(yùn)行流程是先通過函數(shù)讀出本文系統(tǒng)板上NOR Flash的相關(guān)信息,,然后與存放不同型號的NOR Flash數(shù)組進(jìn)行匹配,成功后才能進(jìn)行后續(xù)的讀寫操作,。本文系統(tǒng)使用的NOR Flash型號為S29GL256N90FFIR10,,在drive-r/mtd/jedec_flash.c文件里的jedec_table[]數(shù)組中增加如下代碼。
…
#ifdef CONFIG_SYS_FLASH_LEGACY_32Mx16
{
.mfr_id = (u16)0x01,
.dev_id = 0x227E,
.name = "S29GL256N90FFIR10",
.uaddr = {
[1]= MTD_UADDR_0x0555_0x02AA
},
.DevSize = SIZE_32MiB,
.CmdSet = P_ID_AMD_STD,
.NumEraseRegions= 1,
.regions = {
ERASEINFO(0x20000,256),
}
},
#endif
…
(2)Kernel移植,。本文采用TI提供的Linux內(nèi)核源碼Linux-03.20.00.11,,內(nèi)核中涉及的與電路板的硬件配置和初始化相關(guān)文件已基本包含在內(nèi),只需修改串口號,,同時刪掉本文系統(tǒng)不需要的默認(rèn)初始化,。進(jìn)入內(nèi)核配置頁面,在da850_omapl138_deco-nfig的配置基礎(chǔ)上增加對NOR Flash的支持,。然后取消一些對本文系統(tǒng)以外的設(shè)備支持,,如McBS-P、SATA,、NAND等,。其他功能和驅(qū)動保留默認(rèn)配置。重新編譯后即可得到針對本文系統(tǒng)的精簡Linux內(nèi)核,。
(3)制作根文件系統(tǒng),。基于TI為OMAP-L138提供的根文件系統(tǒng)進(jìn)行修改并完善這個基本的根文件系統(tǒng),,然后使用mkfs.jffs2工具生成JFFS2文件映像即可,。本文系統(tǒng)為實現(xiàn)對DSP核的控制與通信,在根目錄下的etc/profile中插入DSP Link命令,。
按照OMAP-L138的啟動過程,,分別對啟動中用到的程序代碼進(jìn)行簡要分析,對應(yīng)系統(tǒng)需要進(jìn)行修改,,最后移植到本文系統(tǒng)上,。移植完成后系統(tǒng)實現(xiàn)了獨(dú)立啟動,Linux內(nèi)核和文件系統(tǒng)都運(yùn)行良好,。
5 結(jié)論
本文提出的基于UM-BUS總線的智能輪椅控制系統(tǒng)的新型體系結(jié)構(gòu)著重解決了集中式結(jié)構(gòu)中不易系統(tǒng)標(biāo)準(zhǔn)化擴(kuò)展以及分布式結(jié)構(gòu)中多MCU不易系統(tǒng)協(xié)調(diào)控制和高功耗問題,,既提高了智能輪椅控制系統(tǒng)的魯棒性,又降低了成本,。同時,,硬件平臺采用嵌入式技術(shù)進(jìn)行設(shè)計,軟件平臺采用Linux操作系統(tǒng)進(jìn)行多任務(wù)協(xié)調(diào)管理,為通用智能輪椅控制系統(tǒng)的設(shè)計提供了一種良好的解決方案,,具有較高的應(yīng)用價值,。
參考文獻(xiàn)
[1] 魯濤,原魁,,朱海兵.智能輪椅研究現(xiàn)狀及發(fā)展趨勢[J].機(jī)器人技術(shù)與應(yīng)用,,2008(2):1-5.
[2] 張偉功,周繼芹,,李杰,,等.UM-BUS總線及接入式體系結(jié)構(gòu)[J].電子學(xué)報,2015,,43(9):1776-1785.
[3] 劉釗.基于多傳感器信息融合的智能輪椅避障及運(yùn)動控制研究[D].北京:北京工業(yè)大學(xué),,2015.
[4] 王嘉佳.動態(tài)可重構(gòu)總線控制器的設(shè)計與實現(xiàn)[D].北京:首都師范大學(xué),2012.
[5] 陳真誠,,龐雪燕,,孫統(tǒng)雷,等.腦控智能輪椅控制系統(tǒng)[J].電子技術(shù)應(yīng)用,,2014,40(9):126-129.
[6] 雷雙雙.多功能智能輪椅的研究[D].廣州:華南理工大學(xué),,2014.
[7] OMAP-L138 processor technical reference manual[Z].USA:Texas Instruments,,2011.
作者信息:
馮紹輝1,2,,朱曉燕1,,張偉功1,3
(1.首都師范大學(xué) 信息工程學(xué)院,,北京 100048,;2.首都師范大學(xué) 電子系統(tǒng)可靠性技術(shù)北京市重點實驗室,北京100048,;
3.北京成像技術(shù)高精尖創(chuàng)新中心,,北京100048)