【学术论文】基于UM-BUS总线的智能轮椅系统的新型体系结构
摘要:
针对可重构高速串行总线(UM-BUS)的特性,提出基于UM-BUS总线的智能轮椅系统的新型体系结构,该结构在扩展性、动态容错等方面优于传统体系结构。在新型体系结构的基础上,设计了通用的硬件与软件平台。所设计的智能轮椅控制系统具有扩展便捷、高可靠以及通用性强的特点。
中文引用格式: 冯绍辉,朱晓燕,张伟功. 基于UM-BUS总线的智能轮椅系统的新型体系结构[J].电子技术应用,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 引言
智能轮椅作为服务机器人的一种,有助于提高老年人和残疾人群体的生活质量。经过几十年的发展,国内外对智能轮椅的研究已取得很多的成果,如MAID项目、西班牙SIAMO项目、希腊MEYR-A项目、可配置的轮椅/床系统等[1]。但是,随着技术进步与应用需求的发展,智能轮椅对可靠性、标准化、扩展性方面提出了更高的要求。
智能轮椅是一个集环境感知、动态规划、行为控制与执行等多功能于一体的综合系统[1]。对于各功能模块之间的互连,大部分智能轮椅采用CAN、LonWorks等现场总线,而采用现场总线往往使控制系统具有高度的分散性,这会导致多MCU带来的高功耗问题,并且各模块的异步性增加了系统的复杂度。同时,随着智能化程度的提高,面对不断增加的传感器和复杂功能模块的连接需求,如Kinect图像传感器、脑电仪、辅助机械臂等,以往的系统体系结构会重新选择性能更强的处理器来满足接入设备的通信接口要求,这样不仅提高了系统的成本,还不宜系统的扩展。
本文首先介绍UM-BUS总线特性,着重强调总线的扩展便捷性与故障容错能力。然后提出基于UM-BUS总线的智能轮椅控制系统的新型体系结构,并与传统体系结构进行比较。同时,从组成结构与通信过程方面,对新型体系结构进行了阐述。最后,设计并实现了该结构通用的硬件与软件平台。
1 UM-BUS总线
UM-BUS总线是一种新型高速串行总线。采用节点直接互连方式的总线型拓扑结构,最多可连接30个总线节点设备,最大传输距离40 m,无需中继与路由器;最多支持N(N≤32)条通道并发传输,这些并发通道又互为冗余备份。因此为保证基本的容错能力,硬件上需配置至少2条信号通道;采用多点低压差分信号(M-LVDS)传输方式,单通道传输速率最高达200 Mb/s,因此在采用32条通道并发传输的情况下,传输速率可达6.4 Gb/s[2]。图1为三通道UM-BUS总线拓扑结构图,传输速率最高达600 Mb/s,最多可对2条信号通道进行容错。
UM-BUS总线采用主从命令应答式通信协议,每次通信只能由主控节点发起,从节点响应主控节点的通信命令,最后在主控节点的控制下完成数据的接收或发送。该总线定义了按地址空间访问的方式,可实现对远程设备内部功能单元的直接访问。地址空间分为3种:存储空间、IO空间和配置空间,各地址空间支持读写操作,按字节独立编址[2]。其中配置空间可用来访问总线设备的属性配置数据,包括地址空间需求、传感器类型、总线带宽配置等信息。通过访问UM-BUS总线配置空间的配置信息,系统可对总线上接入的节点实现动态管理。在接入或更换某节点时,系统会对该节点进行自动识别,实现设备的“即插即用”。如图1所示,CPU、存储器设备、传感器设备通过数据线、地址线、控制线与UM-BUS总线控制器相连,主设备将以访问本地存储单元的方式访问远程设备,相当于将其中一部分功能模块像传统的分布式处理结构那样作为IO扩展单元,这样主控单元既可作为系统的核心处理单元,又可进行类似的IO扩展,将某一部分功能模块嵌入到本地测量系统中,整个系统看作一个集中控制的分布式系统。
UM-BUS总线具有故障检测、故障隔离与动态容错能力[2]。主节点通过所有通道向从节点发送通道检测命令来检测通道是否健康,并建立通道故障信息表。当一个通道发生故障时,首先更新通道故障信息表,及时剔除故障通道,然后将数据重新组织分配到可用通道上进行传输,最终实现数据的动态分配与通道的动态重构。
伴随CPS与物联网新兴技术的兴起,信息物理系统的融合正在不断现实化,通过网络互联实现信息交互、资源共享、协同计算是未来嵌入式系统重要的发展趋势。为实现信息物理的深度融合,需要在系统中部署大量各类传感元件实现信息的大量采集,这使得其嵌入式控制系统的规模不断增大,如何从系统体系结构方面考虑,解决传感器数量大幅增加情况下对信息的实时可靠采集,并能够降低系统能耗和成本,已成为智能制造系统需要重点解决的问题之一。在新发展需求下,智能轮椅控制系统面临同样的问题,即在多类传感器接入的情况下,如环境感知、身体状况检测等,如何更好地进行协调控制与融合处理[3]。本文设计使用UM-BUS总线作为智能轮椅控制系统的互连总线,硬件平台采用嵌入式系统技术。
2 基于UM-BUS总线的智能轮椅系统结构
2.1 智能轮椅系统的传统体系结构
多功能智能轮椅的控制系统是融合了多领域技术的综合电子系统,其相关技术的研究已比较成熟。如人机交互的多样性、导航避障算法的优化等。但目前,智能轮椅控制系统的体系结构主要体现为集中式和分布式两种,如图2所示。
集中式体系结构由中央处理器完成智能轮椅系统功能,中央处理器与每个功能模块实现点对点通信,实现起来简单高效。各功能模块间的耦合度高,易实现信息的融合处理。但是,从硬件和软件角度来讲,降低了智能轮椅系统的可扩展性与可重用性,即不能满足模块“接入即用”的功能。
相比集中式体系结构,分布式采用互联总线将所有的嵌入式计算机系统连接在一起,提高了局部处理能力,如电机的控制、环境信息的采集等。每个嵌入式计算机系统负责完成智能轮椅相应的功能,这样具有模块化,易于扩展。但对于多个嵌入式微处理器的使用,必然增加整个系统协调控制的复杂度,同时带来功耗与成本的增加。另一方面,微处理器仅负责处理本地功能模块,过多的资源不能进行远程扩展,不仅造成资源的浪费,也不利于智能轮椅系统中多传感器信息的融合处理。
2.2 智能轮椅系统的新型体系结构
随着半导体技术的快速发展,单个嵌入式计算机的处理能力与功能密度都在迅速提高,传统分布式系统出现逐渐向单一计算机集中的趋势[2]。同时,为使智能轮椅系统更加智能化,对各类传感器数据采集的需求会急剧增长,应用于智能轮椅的嵌入式计算机需要连接更多的输入输出。这使得嵌入式计算机系统不断提升的处理能力以及功能集成能力,与系统对外扩展和连接之间的矛盾日益突出,采用传统的单一结构难以解决这一矛盾,研究一种能够融合集中式与分布式结构优点的嵌入式系统体系结构对智能轮椅的发展具有重要的现实意义。
本文提出基于UM-BUS总线的智能轮椅控制系统,它采用可重构的UM-BUS总线作为各功能模块之间数据传输通道,如图3所示。本文设计的结构优点在于:(1)将运动控制、人机交互和导航避障等模块进行单独设计,通过总线控制器接入智能轮椅系统,实现功能模块的“接入即用”;(2)可实现系统2条数据通道的动态冗余容错,提高整个系统的可靠性;(3)系统中仅设置一个带有处理器的总线主控节点,且可对总线上的从节点进行远程穿透式访问,构成一种集中控制、分布处理的系统。
具体实现时将嵌入式计算机系统作为主节点,从节点主要包括运动控制、人机交互以及导航避障模块。主、从节点通过总线控制器接入系统中,即总线控制器一端通过编写相应的硬件逻辑接口与功能模块进行连接,另一端连接MLVDS线缆。总线控制器电路包括协议处理与总线驱动两部分[4]。考虑到线缆尺寸与通信速率的因素,UM-BUS总线配备3条MLVDS信号通道,实现冗余度为2、传输速率最高为600 Mb/s的串行总线。由于其冗余容错的能力,提高了智能轮椅系统的可靠性,且集中控制、分布处理的特性更利于多信息的融合处理,为精确导航提供可靠的依据,从而使系统具有更高的鲁棒性。本文设计中,运动控制模块由用于检测电机状态的传感器电路与电机驱动电路组成,人机交互模块主要包括一种或多种交互方式,如操作杆、语音识别、脑-机接口[5]等。导航避障的关键是获取周围环境和自身位姿信息[6],主要包括环境感知电路与自定位电路。由于总线具有“即插即用”功能,实际搭建系统时,可根据功能需求动态接入相应的模块,通用性强。
实际通信过程中,主节点依次向各从节点发送命令,获取用户指令以及各传感器信息,包括环境信息、电机的状态信息等。主控节点通过相应算法对数据进行处理,并向运动控制模块发送控制命令,从而实现智能轮椅系统的自主导航。每一次的数据传输都是在主节点的控制下完成,由于总线既有高传输速率,又支持时间确定性调度能力,因此实时性也会有很好的保证。
本方案设计中,硬件平台主要包括嵌入式计算机系统、总线控制器、信号调理模块以及电机驱动模块。由于信号调理模块与电机驱动模块设计简单,本文着重对主控节点的设计进行阐述。主控节点包括嵌入式计算机系统和总线控制器两部分,是本文设计的关键部分,其在结构上由硬件和软件两部分组成。
3 硬件平台设计
本文设计的主控节点采用嵌入式系统形式,相比由工控机搭建的系统,具有小型化、低功耗、强实时性与高性价比等特点。硬件部分选择TI公司的OMAP-L138作为核心处理器,Xilinx公司的FPGA芯片XC6SLX16作为UM-BUS总线协议处理芯片,包括周围相关外设的搭建。OMAP-L138是一款双核异构的SoC芯片,内部集成了456 MHz的ARM926EJ-S RISC内核和456 MHz的C6748 VLIW DSP核[7]。以OMAP-L138为核心处理器,再搭配电源模块、晶体、JTAG接口构成最小系统,然后根据实际需要进行外设的扩展。搭建带触摸屏功能的LCD可进行上位机人机交互控制,USB接口、SD卡接口实现与其他设备的通信以及数据的存储。外扩NOR Flash存储器共32 MB,用于存储引导程序、操作系统、文件系统、用户的应用程序以及系统掉电后需要保存的数据;DDR2 SDRAM存储器共128 MB,用于存放临时数据和程序的运行。FPGA外部配以Flash芯片、晶振、JTAG接口、MLVDS收发器与总线接口,实现UM-BUS总线控制器功能,其接口采用网口对外连接。OMAP-L138与FPGA两者之间通过EMIFA接口进行通信。主控节点的硬件结构框图如图4所示。
OMAP-L138处理器的ARM核带有存储器管理单元MMU,可移植Linux、Windows CE这些多用户多进程操作系统,双核具有各自独立可见的缓存外,其内部有128 KB RAM作为双核的共享内存,ARM核和DSP核都能进行访问并进行数据的交换[7]。
4 软件平台设计
本文系统软件是一个典型而又复杂的多任务系统,它有许多任务需要控制,如图形显示、与UM-BUS总线上各功能模块的数据交换以及对DSP核的访问与控制等。各个功能模块之间存在一个并发执行和时序配合的问题,因此系统采用移植Linux操作系统来管理各个任务的协调调度,并保证运动控制的实时性要求。OMAP-L138的启动过程[7]如图5所示。在移植Linux操作系统之前,需要做一些初始化与引导工作。首先从指定地方读取用于启动U-Boot的BootLoader(即UBL)对平台进行初始化,接下来加载U-Boot,然后U-Boot会根据启动参数解压、启动Linux内核,最后,Linux内核根据启动参数加载根文件系统。针对主控节点的硬件资源以及功能需求,在每一步的移植过程中修改相应的参数,如硬件相关代码、DSP Link内核模块的插入等。本文主要对移植过程中修改的地方进行详细的阐述。
(1)U-Boot的移植。本文将基于系统的需要,对TI提供的针对OMAP-L138处理器的U-Boot-03.-20.00.11源码进行裁减和修改,定制适用于本文系统的U-Boot。同时通过AISgen.exe工具将U-Boot.-bin文件转换成AIS格式文件,这样省去二级启动代码UBL。由于本文系统与源码支持的OMAP-L1-38板仅存在硬件配置上的差异,需要针对实际情况做必要的修改,主要就实际占用的片选资源、串口配置、存储器容量以及分区信息做一些修改,将有关NAND、SPI和I2C的定义全部去掉。为支持NOR Flash的启动,本文做了相关修改工作。以下的程序片段描述了对NOR Flash存储器容量以及分区信息的修改。
…
#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代码的整个运行流程是先通过函数读出本文系统板上NOR Flash的相关信息,然后与存放不同型号的NOR Flash数组进行匹配,成功后才能进行后续的读写操作。本文系统使用的NOR Flash型号为S29GL256N90FFIR10,在drive-r/mtd/jedec_flash.c文件里的jedec_table[]数组中增加如下代码。
…
#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内核源码Linux-03.20.00.11,内核中涉及的与电路板的硬件配置和初始化相关文件已基本包含在内,只需修改串口号,同时删掉本文系统不需要的默认初始化。进入内核配置页面,在da850_omapl138_deco-nfig的配置基础上增加对NOR Flash的支持。然后取消一些对本文系统以外的设备支持,如McBS-P、SATA、NAND等。其他功能和驱动保留默认配置。重新编译后即可得到针对本文系统的精简Linux内核。
(3)制作根文件系统。基于TI为OMAP-L138提供的根文件系统进行修改并完善这个基本的根文件系统,然后使用mkfs.jffs2工具生成JFFS2文件映像即可。本文系统为实现对DSP核的控制与通信,在根目录下的etc/profile中插入DSP Link命令。
按照OMAP-L138的启动过程,分别对启动中用到的程序代码进行简要分析,对应系统需要进行修改,最后移植到本文系统上。移植完成后系统实现了独立启动,Linux内核和文件系统都运行良好。
5 结论
本文提出的基于UM-BUS总线的智能轮椅控制系统的新型体系结构着重解决了集中式结构中不易系统标准化扩展以及分布式结构中多MCU不易系统协调控制和高功耗问题,既提高了智能轮椅控制系统的鲁棒性,又降低了成本。同时,硬件平台采用嵌入式技术进行设计,软件平台采用Linux操作系统进行多任务协调管理,为通用智能轮椅控制系统的设计提供了一种良好的解决方案,具有较高的应用价值。
参考文献
[1] 鲁涛,原魁,朱海兵.智能轮椅研究现状及发展趋势[J].机器人技术与应用,2008(2):1-5.
[2] 张伟功,周继芹,李杰,等.UM-BUS总线及接入式体系结构[J].电子学报,2015,43(9):1776-1785.
[3] 刘钊.基于多传感器信息融合的智能轮椅避障及运动控制研究[D].北京:北京工业大学,2015.
[4] 王嘉佳.动态可重构总线控制器的设计与实现[D].北京:首都师范大学,2012.
[5] 陈真诚,庞雪燕,孙统雷,等.脑控智能轮椅控制系统[J].电子技术应用,2014,40(9):126-129.
[6] 雷双双.多功能智能轮椅的研究[D].广州:华南理工大学,2014.
[7] OMAP-L138 processor technical reference manual[Z].USA:Texas Instruments,2011.
作者信息:
冯绍辉1,2,朱晓燕1,张伟功1,3
(1.首都师范大学 信息工程学院,北京 100048;2.首都师范大学 电子系统可靠性技术北京市重点实验室,北京100048;
3.北京成像技术高精尖创新中心,北京100048)
招聘信息