針對可重構(gòu)高速串行總線(UM-BUS)的特性,提出基于UM-BUS總線的智能輪椅系統(tǒng)的新型體系結(jié)構(gòu),該結(jié)構(gòu)在擴展性、動態(tài)容錯等方面優(yōu)于傳統(tǒng)體系結(jié)構(gòu)。在新型體系結(jié)構(gòu)的基礎(chǔ)上,設(shè)計了通用的硬件與軟件平臺。所設(shè)計的智能輪椅控制系統(tǒng)具有擴展便捷、高可靠以及通用性強的特點。 中文引用格式: 馮紹輝,朱曉燕,張偉功. 基于UM-BUS總線的智能輪椅系統(tǒng)的新型體系結(jié)構(gòu)[J].電子技術(shù)應(yīng)用,2018,44(9):137-140,145. 0 引言 智能輪椅作為服務(wù)機器人的一種,有助于提高老年人和殘疾人群體的生活質(zhì)量。經(jīng)過幾十年的發(fā)展,國內(nèi)外對智能輪椅的研究已取得很多的成果,如MAID項目、西班牙SIAMO項目、希臘MEYR-A項目、可配置的輪椅/床系統(tǒng)等[1]。但是,隨著技術(shù)進步與應(yīng)用需求的發(fā)展,智能輪椅對可靠性、標準化、擴展性方面提出了更高的要求。 智能輪椅是一個集環(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圖像傳感器、腦電儀、輔助機械臂等,以往的系統(tǒng)體系結(jié)構(gòu)會重新選擇性能更強的處理器來滿足接入設(shè)備的通信接口要求,這樣不僅提高了系統(tǒng)的成本,還不宜系統(tǒng)的擴展。 本文首先介紹UM-BUS總線特性,著重強調(diào)總線的擴展便捷性與故障容錯能力。然后提出基于UM-BUS總線的智能輪椅控制系統(tǒng)的新型體系結(jié)構(gòu),并與傳統(tǒng)體系結(jié)構(gòu)進行比較。同時,從組成結(jié)構(gòu)與通信過程方面,對新型體系結(jié)構(gòu)進行了闡述。最后,設(shè)計并實現(xiàn)了該結(jié)構(gòu)通用的硬件與軟件平臺。 1 UM-BUS總線 UM-BUS總線是一種新型高速串行總線。采用節(jié)點直接互連方式的總線型拓撲結(jié)構(gòu),最多可連接30個總線節(jié)點設(shè)備,最大傳輸距離40 m,無需中繼與路由器;最多支持N(N≤32)條通道并發(fā)傳輸,這些并發(fā)通道又互為冗余備份。因此為保證基本的容錯能力,硬件上需配置至少2條信號通道;采用多點低壓差分信號(M-LVDS)傳輸方式,單通道傳輸速率最高達200 Mb/s,因此在采用32條通道并發(fā)傳輸?shù)那闆r下,傳輸速率可達6.4 Gb/s[2]。圖1為三通道UM-BUS總線拓撲結(jié)構(gòu)圖,傳輸速率最高達600 Mb/s,最多可對2條信號通道進行容錯。 UM-BUS總線采用主從命令應(yīng)答式通信協(xié)議,每次通信只能由主控節(jié)點發(fā)起,從節(jié)點響應(yīng)主控節(jié)點的通信命令,最后在主控節(jié)點的控制下完成數(shù)據(jù)的接收或發(fā)送。該總線定義了按地址空間訪問的方式,可實現(xiàn)對遠程設(shè)備內(nèi)部功能單元的直接訪問。地址空間分為3種:存儲空間、IO空間和配置空間,各地址空間支持讀寫操作,按字節(jié)獨立編址[2]。其中配置空間可用來訪問總線設(shè)備的屬性配置數(shù)據(jù),包括地址空間需求、傳感器類型、總線帶寬配置等信息。通過訪問UM-BUS總線配置空間的配置信息,系統(tǒng)可對總線上接入的節(jié)點實現(xiàn)動態(tài)管理。在接入或更換某節(jié)點時,系統(tǒng)會對該節(jié)點進行自動識別,實現(xiàn)設(shè)備的“即插即用”。如圖1所示,CPU、存儲器設(shè)備、傳感器設(shè)備通過數(shù)據(jù)線、地址線、控制線與UM-BUS總線控制器相連,主設(shè)備將以訪問本地存儲單元的方式訪問遠程設(shè)備,相當(dāng)于將其中一部分功能模塊像傳統(tǒng)的分布式處理結(jié)構(gòu)那樣作為IO擴展單元,這樣主控單元既可作為系統(tǒng)的核心處理單元,又可進行類似的IO擴展,將某一部分功能模塊嵌入到本地測量系統(tǒng)中,整個系統(tǒng)看作一個集中控制的分布式系統(tǒng)。 UM-BUS總線具有故障檢測、故障隔離與動態(tài)容錯能力[2]。主節(jié)點通過所有通道向從節(jié)點發(fā)送通道檢測命令來檢測通道是否健康,并建立通道故障信息表。當(dāng)一個通道發(fā)生故障時,首先更新通道故障信息表,及時剔除故障通道,然后將數(shù)據(jù)重新組織分配到可用通道上進行傳輸,最終實現(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)境感知、身體狀況檢測等,如何更好地進行協(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ù)的研究已比較成熟。如人機交互的多樣性、導(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)的可擴展性與可重用性,即不能滿足模塊“接入即用”的功能。 相比集中式體系結(jié)構(gòu),分布式采用互聯(lián)總線將所有的嵌入式計算機系統(tǒng)連接在一起,提高了局部處理能力,如電機的控制、環(huán)境信息的采集等。每個嵌入式計算機系統(tǒng)負責(zé)完成智能輪椅相應(yīng)的功能,這樣具有模塊化,易于擴展。但對于多個嵌入式微處理器的使用,必然增加整個系統(tǒng)協(xié)調(diào)控制的復(fù)雜度,同時帶來功耗與成本的增加。另一方面,微處理器僅負責(zé)處理本地功能模塊,過多的資源不能進行遠程擴展,不僅造成資源的浪費,也不利于智能輪椅系統(tǒng)中多傳感器信息的融合處理。 2.2 智能輪椅系統(tǒng)的新型體系結(jié)構(gòu) 隨著半導(dǎo)體技術(shù)的快速發(fā)展,單個嵌入式計算機的處理能力與功能密度都在迅速提高,傳統(tǒng)分布式系統(tǒng)出現(xiàn)逐漸向單一計算機集中的趨勢[2]。同時,為使智能輪椅系統(tǒng)更加智能化,對各類傳感器數(shù)據(jù)采集的需求會急劇增長,應(yīng)用于智能輪椅的嵌入式計算機需要連接更多的輸入輸出。這使得嵌入式計算機系統(tǒng)不斷提升的處理能力以及功能集成能力,與系統(tǒng)對外擴展和連接之間的矛盾日益突出,采用傳統(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)將運動控制、人機交互和導(dǎo)航避障等模塊進行單獨設(shè)計,通過總線控制器接入智能輪椅系統(tǒng),實現(xiàn)功能模塊的“接入即用”;(2)可實現(xiàn)系統(tǒng)2條數(shù)據(jù)通道的動態(tài)冗余容錯,提高整個系統(tǒng)的可靠性;(3)系統(tǒng)中僅設(shè)置一個帶有處理器的總線主控節(jié)點,且可對總線上的從節(jié)點進行遠程穿透式訪問,構(gòu)成一種集中控制、分布處理的系統(tǒng)。 具體實現(xiàn)時將嵌入式計算機系統(tǒng)作為主節(jié)點,從節(jié)點主要包括運動控制、人機交互以及導(dǎo)航避障模塊。主、從節(jié)點通過總線控制器接入系統(tǒng)中,即總線控制器一端通過編寫相應(yīng)的硬件邏輯接口與功能模塊進行連接,另一端連接MLVDS線纜。總線控制器電路包括協(xié)議處理與總線驅(qū)動兩部分[4]。考慮到線纜尺寸與通信速率的因素,UM-BUS總線配備3條MLVDS信號通道,實現(xiàn)冗余度為2、傳輸速率最高為600 Mb/s的串行總線。由于其冗余容錯的能力,提高了智能輪椅系統(tǒng)的可靠性,且集中控制、分布處理的特性更利于多信息的融合處理,為精確導(dǎo)航提供可靠的依據(jù),從而使系統(tǒng)具有更高的魯棒性。本文設(shè)計中,運動控制模塊由用于檢測電機狀態(tài)的傳感器電路與電機驅(qū)動電路組成,人機交互模塊主要包括一種或多種交互方式,如操作桿、語音識別、腦-機接口[5]等。導(dǎo)航避障的關(guān)鍵是獲取周圍環(huán)境和自身位姿信息[6],主要包括環(huán)境感知電路與自定位電路。由于總線具有“即插即用”功能,實際搭建系統(tǒng)時,可根據(jù)功能需求動態(tài)接入相應(yīng)的模塊,通用性強。 實際通信過程中,主節(jié)點依次向各從節(jié)點發(fā)送命令,獲取用戶指令以及各傳感器信息,包括環(huán)境信息、電機的狀態(tài)信息等。主控節(jié)點通過相應(yīng)算法對數(shù)據(jù)進行處理,并向運動控制模塊發(fā)送控制命令,從而實現(xiàn)智能輪椅系統(tǒng)的自主導(dǎo)航。每一次的數(shù)據(jù)傳輸都是在主節(jié)點的控制下完成,由于總線既有高傳輸速率,又支持時間確定性調(diào)度能力,因此實時性也會有很好的保證。 本方案設(shè)計中,硬件平臺主要包括嵌入式計算機系統(tǒng)、總線控制器、信號調(diào)理模塊以及電機驅(qū)動模塊。由于信號調(diào)理模塊與電機驅(qū)動模塊設(shè)計簡單,本文著重對主控節(jié)點的設(shè)計進行闡述。主控節(jié)點包括嵌入式計算機系統(tǒng)和總線控制器兩部分,是本文設(shè)計的關(guān)鍵部分,其在結(jié)構(gòu)上由硬件和軟件兩部分組成。 3 硬件平臺設(shè)計 本文設(shè)計的主控節(jié)點采用嵌入式系統(tǒng)形式,相比由工控機搭建的系統(tǒ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ù)實際需要進行外設(shè)的擴展。搭建帶觸摸屏功能的LCD可進行上位機人機交互控制,USB接口、SD卡接口實現(xiàn)與其他設(shè)備的通信以及數(shù)據(jù)的存儲。外擴NOR Flash存儲器共32 MB,用于存儲引導(dǎo)程序、操作系統(tǒng)、文件系統(tǒng)、用戶的應(yīng)用程序以及系統(tǒng)掉電后需要保存的數(shù)據(jù);DDR2 SDRAM存儲器共128 MB,用于存放臨時數(shù)據(jù)和程序的運行。FPGA外部配以Flash芯片、晶振、JTAG接口、MLVDS收發(fā)器與總線接口,實現(xiàn)UM-BUS總線控制器功能,其接口采用網(wǎng)口對外連接。OMAP-L138與FPGA兩者之間通過EMIFA接口進行通信。主控節(jié)點的硬件結(jié)構(gòu)框圖如圖4所示。 OMAP-L138處理器的ARM核帶有存儲器管理單元MMU,可移植Linux、Windows CE這些多用戶多進程操作系統(tǒng),雙核具有各自獨立可見的緩存外,其內(nèi)部有128 KB RAM作為雙核的共享內(nèi)存,ARM核和DSP核都能進行訪問并進行數(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)度,并保證運動控制的實時性要求。OMAP-L138的啟動過程[7]如圖5所示。在移植Linux操作系統(tǒng)之前,需要做一些初始化與引導(dǎo)工作。首先從指定地方讀取用于啟動U-Boot的BootLoader(即UBL)對平臺進行初始化,接下來加載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)核模塊的插入等。本文主要對移植過程中修改的地方進行詳細的闡述。 (1)U-Boot的移植。本文將基于系統(tǒng)的需要,對TI提供的針對OMAP-L138處理器的U-Boot-03.-20.00.11源碼進行裁減和修改,定制適用于本文系統(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代碼的整個運行流程是先通過函數(shù)讀出本文系統(tǒng)板上NOR Flash的相關(guān)信息,然后與存放不同型號的NOR Flash數(shù)組進行匹配,成功后才能進行后續(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)不需要的默認初始化。進入內(nèi)核配置頁面,在da850_omapl138_deco-nfig的配置基礎(chǔ)上增加對NOR Flash的支持。然后取消一些對本文系統(tǒng)以外的設(shè)備支持,如McBS-P、SATA、NAND等。其他功能和驅(qū)動保留默認配置。重新編譯后即可得到針對本文系統(tǒng)的精簡Linux內(nèi)核。 (3)制作根文件系統(tǒng)?;赥I為OMAP-L138提供的根文件系統(tǒng)進行修改并完善這個基本的根文件系統(tǒng),然后使用mkfs.jffs2工具生成JFFS2文件映像即可。本文系統(tǒng)為實現(xiàn)對DSP核的控制與通信,在根目錄下的etc/profile中插入DSP Link命令。 按照OMAP-L138的啟動過程,分別對啟動中用到的程序代碼進行簡要分析,對應(yīng)系統(tǒng)需要進行修改,最后移植到本文系統(tǒng)上。移植完成后系統(tǒng)實現(xiàn)了獨立啟動,Linux內(nèi)核和文件系統(tǒng)都運行良好。 5 結(jié)論 本文提出的基于UM-BUS總線的智能輪椅控制系統(tǒng)的新型體系結(jié)構(gòu)著重解決了集中式結(jié)構(gòu)中不易系統(tǒng)標準化擴展以及分布式結(jié)構(gòu)中多MCU不易系統(tǒng)協(xié)調(diào)控制和高功耗問題,既提高了智能輪椅控制系統(tǒng)的魯棒性,又降低了成本。同時,硬件平臺采用嵌入式技術(shù)進行設(shè)計,軟件平臺采用Linux操作系統(tǒng)進行多任務(wù)協(xié)調(diào)管理,為通用智能輪椅控制系統(tǒng)的設(shè)計提供了一種良好的解決方案,具有較高的應(yīng)用價值。 參考文獻 [1] 魯濤,原魁,朱海兵.智能輪椅研究現(xiàn)狀及發(fā)展趨勢[J].機器人技術(shù)與應(yīng)用,2008(2):1-5. [2] 張偉功,周繼芹,李杰,等.UM-BUS總線及接入式體系結(jié)構(gòu)[J].電子學(xué)報,2015,43(9):1776-1785. [3] 劉釗.基于多傳感器信息融合的智能輪椅避障及運動控制研究[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) 招聘信息
|
|