基于UWB技术的室内外一体定位系统设计*
2020-03-24任志敏
邓 凯,任志敏
(常州纺织服装职业技术学院,江苏 常州 213164)
0 引言
随着新一代物联网技术,云计算技术,区块链技术的发展与成熟,不断改变着人们原有的生活方式,有些变化甚至是革命性的。比如定位技术,人们可以依靠一部带有导航软件的手机去往任何目的地,这在过去是无法想象的。众所周知,现有的导航软件主要依靠基于卫星的定位系统(比如:GPS,北斗),主要用于户外,但是由于建筑物屏蔽造成卫星信号的衰减,在室内几乎接收不到卫星信号,因此,造成室内导航的盲点。但是,室内导航的需求量又非常巨大,比如工厂的人员定位,贵重资产的物资定位,搬运AVG机器人的防碰撞设计,商场店铺、医院科室等导航需求。因此,设计一个室内室外一体的定位系统有着迫切的现实需求。
1 方案设计
室外导航技术、产品相对成熟,可以采用GPS/北斗导航系统。但室内导航仍旧处于百花齐放的阶段,目前可用的室内定位技术有:Wi-Fi、蓝牙、红外线、超宽带(UWB)、RFID、ZigBee和超声波,从技术路线、成本、定位精度等方面考虑,各有利弊,其中基于802.15.4协议的UWB的定位精度最高,可达10cm,功耗也较低,因此本课题使用UWB技术实现室内三维定位。
室外定位通过GPS/北斗模组获取经度纬度坐标信息,室内定位通过UWB获取x,y,z三维坐标。对于定位系统来说,获取坐标信息是最为关键的第一步,第二步是如何处理和呈现数据,考虑到定位的不同需求,本课题以工厂人员定位的需求作为研究对象。一是工厂人员的活动场所可能是室外或室内;二是人员会流动,可能在办公楼的一层,也可能在其他楼层;三是作为工厂管理方,希望能够在办公室或出差期间均能看到员工上班期间的定位信息。
基于以上需求,本课题采集室外经纬度坐标、室内UWB定位坐标,系统电池余量值,以及员工ID等数据,通过GPRS模组/NB-IoT模组把这些数据送到云端,工厂从云端获得这些数据,既可以在PC端显示,也可以在手机等移动设备端显示。总体设计框图如图1所示。
图1 总体设计框图
在本课题的方案中,获取室外经纬度坐标相对简单,重点在于如何通过UWB获取室内定位的x,y,z坐标。通过研究发现,本课题选用Decawave公司生产的DWM1001模组组成网络实现室内定位。DWM1001模组室内定位整体设计框架如图2所示。
图2 室内定位整体设计图
DWM1001模组是由Decawave公司生产的基于UWB技术的定位模组,在定位系统中其可以充当多种角色,包括基站、标签、网关等,因此可以很方便地利用DWM1001模组组成DRTLS(Two-Way-Ranging Real Time Location System)网络。在如图2所示的网络中,基站的位置是固定的,并设定对应的坐标,如图3所示,图3展示了4个基站和1个标签的定位结构。
图3 4基站+1标签的定位结构
基站1、2、3、4组成了一个小区域定位网络,4个基站可以实现x,y,z三维定位。两个基站之间的最长距离可以达60米,若配置定位刷新频率为1秒/次,4个基站内最多可以容纳150个标签[1],显然刷新频率越低,可以容纳的标签越多,对于人员定位而言,刷新频率可以降为5秒/次,因此可以容纳750个标签,在4个基站组成的360 m2的区域内,可同时容纳750个员工显然大大超过了实际情况。每个基站的坐标x,y,z是固定设置的,为了保证定位精度,最好每个基站处于同一高度平面上,即z坐标相同。标签在基站区域内移动,每隔5秒,标签相对于基站的坐标即会输出。
2 硬件系统设计
基于总体设计框图,定位坐标、电量、员工ID需要采集并上传至云端,因此需要设计GPS模组,GPRS/NB-IoT模组和微控制器系统,以及设计DWM1001模组与微控制器系统的连接。
2.1 GPS模组硬件设计
选择S1216F8-BD作为经纬度定位模组。S1216F8-BD是一个性价比极高的全球定位接收贴片封装模组,其基于Skytraq Venus 8定位技术,定位精度达2.5m CEP accuracy,可以作为GPS/Beidou卫星信号的接收器。该模组内部集成滤波器和高性能LNA,与主动和被动天线一起工作,标准的NMEA-0183定位数据通过UART串行接口输出,便于用户上手[2]。
2.2 NB-IoT模组电路设计
目前市场上主流的NB-IoT芯片主要有三家,分别是紫光展锐的春藤8908,华为海思的Boudica系列和联发科的MT2625。
N256是一款基于MT2625平台的多功能无线模块。该模块可支持3GPP/R13/R14的NB-IoT标准,工作的频段为: B1、B3、B5和B8四个频段。作为一款用于嵌入式系统的通信模组,N256模块17.6×15.7×2.3mm的尺寸可以很好满足工程应用中对空间尺寸的要求。满足M2M(machine to machine)的需求,包括可穿戴服务、安全系统、无线POS机、工业级PDA、智能电表、无线遥控等。N256模块一共引出MT2625的42脚作为其物理接口,提供了用户可能用到的所有硬件接口,包括一个UART固件下载接口,一个全功能串口和一个三线串口[3]。
2.3 微控制器系统电路设计
基于设计需求,控制板有待完成的任务包括:采集室内室外定位坐标、与NB-IoT模块通信、采集电池余量等。
本课题选择STM32F103RCT6作为核心控制器。STM32F103RCT6是ST意法半导体公司生产的基于ARM Cortex-M3内核的32位微控制器,工作最高主频可达72 MHz;48Kx8大小的运行内存;256Kx8大小的FLASH程序存储器;集成了CAN、I2C、IrDA、SPI、UART/USART、USB等丰富的通信的接口;提供了多个基本定时器、通用定时器和高级定时器等多样定时器资源;芯片内部集成多路ADC、DAC、SDIO和GPIO资源;芯片采用64-LQFP封装[4]。
UART1用于与NB-IoT模块的数据收发接口,UART2用于与GPS模块的数据收发接口,UART3用于与DWM1001模组的数据收发接口。ADC1用于采集电池余量接口。
3 软件系统设计
3.1 GPS经纬度数据采集程序
GPS定位模组S1216与STM32F103RCT6通信接口采用UART的方式,本课题采用115200 bps,S1216输出的定位数据符合$GNRMC(Recommended Minimum Specific GPS/Transit Data)推荐定位信息协议。根据$GNRMC协议,编程解析获取各种数据信息,程序流程如图4所示。
图4 解析$GNRMC协议流程图
3.2 DWM1001模组室内定位数据采集程序
根据DWM1001的技术文档,DWM1001模组可以通过SPI,UART等接口与上位机进行数据传输,数据传输采用TLV(Type-Length-Value)协议传输。本课题使用STM32F103RCT6的UART接口与DWM1001进行数据传输。本课题只要获取DWM1001输出的x,y,z坐标,根据TLV协议,STM32F103RCT6端发送命令0x02,0x00即可,DWM1001返回的数据见表1。
表1 DWM1001返回定位数据
首先判断错误代码,若是0x00,表示正确,然后采集对应的x,y,z坐标即可。
3.3 微控制器系统程序设计
获取定位数据后,需要把数据发送到云端,本课题选择机智云作为云端平台。按照机智云平台的要求,首先需要待上传的数据点,其次编写程序把数据发送到机智云。STM32F103RCT6与NB-IoT在软件上通过AT指令通信。程序总的流程如图5所示。
数据发送到机智云在TIM3定时中断实现,每隔5秒发送一次数据。衡量一个监控系统是否优劣的评判标准主要有两条:一是采集数据的准确性,二是传输数据的稳定性、可靠性。为了最优化实现评判标准二,本课题在软件部分设计了以下措施:
1) 每次发送数据后,判断应答反馈是否准确,一旦未接收到期望数据,立刻软件复位,系统重启。
2) 在应答反馈准确的前提下,再次判断应答反馈是否有错误信息,一旦有错误信息,同样复位,系统重启。
图5 STM32F103RCT6总体程序流程图
3) 每30分钟检查一次是否仍旧在线,若离线,则重启系统。
4) 每12小时主动离线,重启系统。
5) 使用独立看门狗保证程序不跑飞。
6) 初始化时,复位NB-IoT,登录机智云时连续三次不成功则复位系统。
4 结论
为了测试和展示采集数据,本课题借助机智云平台提供的Android应用开发SDK包[5],设计Android应用程序,实时获取机智云平台的室内外坐标数据,显示到用户手机端。