摘 要:针对目前市场上盲用导航产品的不足,采用基于ARM11的S3C6410微处理器和基于Win CE软件,设计了智能导航盲杖系统。通过GPS模块,该系统可以提供盲用定位与导航功能。利用超声波测障模块,系统能够实现一定范围内的障碍物告警,极大地解决了盲人独立出行困难的问题。
关键词:ARM11;WinCE;盲用导航;GPS;超声波
目前市场上现有的GPS产品主要集中在车载导航或面向正常人的手持导航系统,视障人士很难享受到与正常人一样的导航服务。迄今为止,国内还没有一款专门为视障人士开发的GPS导航系统。为提高视障人士的生活水平,为他们的出行带来便利,开发出适用于特殊群体的GPS导航系统势在必行。
本文采用了基于ARM11-Win CE平台的嵌入式系统作为系统的控制平台,以提高系统的性能、集成度以及可扩展性;运用GPS定位技术和TTS文语转换系统,实现了对视障人士的GPS定位及电子地图导航;利用超声波测距功能,系统可以提供一定距离内的障碍物探测与告警。为实现上述功能,采用Trimble公司的GPS接收模块Lassen iQ实现了GPS定位功能,处理器采用三星公司的S3C6410(ARM1176JZF-S核心)芯片,操作系统为Windows CE 6.0。
1 系统硬件设计
1.1 系统整体结构
本智能导航盲杖系统是为了实现GPS定位、电子地图查询、路径选择以及超声波探测、语音输出等主要功能,系统设计图如图1所示。各个功能模块实现功能如下:
(1)GPS信号接收模块:接收GPS信号,输出当前经纬度、移动方向与速度、时间等信息。完成与中央处理器的通信,报告工作状态,并接收中央处理器的控制[1]。
(2)存储模块:存储系统程序、电子地图数据以及GPS获取的信息等,可以进行存储、读取、查询信息等操作。
(3)超声波测障模块:发送和接收超声波脉冲,反馈给中央处理器并接收其控制信号。
(4)人机接口模块:包括显示和键盘输入、语音输出,采用中央处理器控制和监测。
(5)中央处理器:控制并接收GPS模块、超声波测障模块产生的信号,监视键盘状态,并控制LCD显示、语音输出等。
1.2 系统主要模块设计
(1)GPS模块。系统选择Trimble公司的Lassen iQ GPS接收器作为GPS信号接收模块,其接口电路如图2所示。为了利于在户外手持使用,系统要考虑体积、功耗以及精度的需求。系统选用的GPS模块面积仅有8 cm2,功耗小于89 mW,而其GPS定位精度可达10 m,速度精度能够达到0.1 km/h,GPS方向可精确到2°,基本能够满足本系统的要求。
(2)中央处理器。系统选用Samsung公司的S3C6410A-XH66作为中央处理器。
S3C6410A-XH66是一款基于ARM1176JZF-S内核的32 bit RSIC微处理器,其优化的外部存储器接口分为DRAM和Flash/ROM/DRAM两路端口,能满足本系统读取电子地图时对数据带宽的要求。另外,S3C6410A-XH66还有Camera接口、TFT 24 bit真彩色LCD控制器、4通道的UART、I2C总线等。处理器内部时钟为533 MHz,可以满足较复杂导航算法的需要。
(3)存储模块。系统选用两片64 M×16 bit的Mobile DDR芯片K4X1G163PC,构成共256 MB的内存模块,以及一片1 G×8 bit的NAND Flash芯片K9G8G08U0M作为外部存储。内存模块设计如图3所示,两片K4X1G163PC的连接方式相同,使用1.8 V工作电压,主频为166 MHz,在处理器内部时钟为533 MHz时,能够接近最高使用效率。需要注意的是,在进行PCB布线工作时,两片内存芯片的地址线和数据线必须进行等长设置。
(4)超声波测障模块。该模块使用两个超声波换能器,分别完成超声波发送和检测接收的任务。发送模块在设计之初采用反相器74LS04,但在测试过程中发现由于脉冲时间过短,而造成反相器输出波形不够理想。经过多次调试比较,最终采用Philips公司的高速反相器74HC04,其在工作电压VCC为4.5 V时,标准跳变时间可达6 ns,极佳地实现了系统功能。超声波检测接收模块使用CX20106进行信号放大,如图4所示。
2 系统软件设计
系统软件的设计充分利用了硬件平台提供的资源[2],实现业务流程的有序运行,是整个系统设计的重要组成部分[3]。软件的设计主要有:(1)建立交叉编译环境。(2)Windows CE 6.0操作系统(包括驱动)的移植。(3)GPS定位与导航程序设计。(4)超声波测障功能设计。
2.1 GPS定位与导航模块软件设计
GPS定位与导航模块首先要完成用户位置信息的采集、处理与存储。由于GPS采用串行口通信,所以本文在串行口通信的基础上实现了对GPS数据的接收、处理和存储。该模块软件设计的基本思想是:首先接收完整的NMEA0183语句,然后提取相关的数据(如时间、经纬度、速度等),再将这些数据发送给中央处理器进行下一步操作,并且可以保存以便日后查看[4]。
本系统使用Lassen iQ的串口1输出的数据,串口通信流程如图5所示。所获取的NMEA0183语句格式为:$GPRMC,162 206,A,3 955.400 7,N,11 612.0591 E,000.0,000.0 181010 002.5,W*71,表示目前的时间是2010年10月18日16点22分06秒(这是UTC时间,不是本地时间,两者大约相差8小时),位置是北纬39°55.4007′、东经116°12.0591′,速度为0。
系统在获取到当前经纬度等信息后,进行坐标转换和地图匹配[5]。本系统结合超图格式(pwr,pmw)的北京市地图数据,调用超图接口函数读取电子地图数据,并对用户选择的目标点和当前点进行路径选择,最终导航信息以文本方式输出到界面,如图6所示。在经过添加TTS(Text to Speech)文语转换系统后,可将导航信息以语音播报的方式播送给盲人用户使用。
2.2 超声波测障模块软件设计
本模块的主要功能是自动测出用户与最近障碍物的距离,并将该数据传送给中央处理器。在一般条件下,当障碍物与用户之间小于极限安全距离(一般为0.6 m)时,系统会发出警告,提醒用户注意避让。
超声波测障软件工作流程如图7所示。S3C6410微处理器通过一个GPIO口的一个反相器来控制超声波的发送,然后不停地检测XEINT0引脚,当XEINT0引脚的电平由高电平变为低电平时,认为超声波已经返回,通过换算超声波所经历的时间,就可以得到传感器与障碍物之间的距离。
本文设计了基于ARM11-Win CE的软硬件平台,系统具有较高的集成度和可扩展性、成本低、功耗低、处理性能高、稳定性好等特点。软硬件系统均考虑到了视障用户的切身需求,针对视障人士的特点进行专门的功能设计,完全支持盲操作,提高了视障人群在日常生活中的便利性,是定位于视障人士独立出行的辅助性器材。
参考文献
[1] 韩飞.MiniGUI在车载导航终端中的应用[J].单片机与嵌入式系统应用,2005(6):61-63.
[2] 张冬泉,谭南林,苏树强.WindowsCE实用开发技术[M].北京:电子工业出版社,2009.
[3] 李别.基于S3C4510B的ARM开发平台[J].微计算机信息,2006,10(2):34-36.
[4] 张文军.GPS与嵌入式系统软硬件接口及导航信息提取软件[J].计算机工程,2005,31(18):210-212.
[5] 翟霞晖,唐明浩.基于ARM7的汽车导航定位与防盗系统[J].自动化仪表,2003,28(3):30-32.