基于ZigBee的城市公交车定位系统设计
引言
城市现代化建设中,公交交通工具的管理和调度是其很重要的一个方面。管理中心可以随时通过路况和乘客的需求调度车辆;另外一方面,通过公交站台的显示器,通告给乘客等待中的车辆离站还有多远距离,这样在堵车的情况下可以让乘客自己选择出行方式。本文设计一个基于ZigBee 无线传感器网络的定位系统,本系统中,公交车被视为定位节点,在城市道路沿线广布参考节点,通过参考节点计算出定位节点,在把定位信息上报给网关,通过网关传至主干网络,最后传至控制中心。
1 无线定位系统的网络原理和实现
该网络定位的原理如图1 所示,从图中可以看出,该网络定位几乎全部可以采用无线传输,这样可以解决道路布线困难,且节约大量的硬件成本。
图1 定位系统原理
①主机:管理中心的计算机,在计算机上配备相关界面化软件,便于观察各条公交线路的公交车位置情况,这样也便于管理和调度。
②网关:采用CC2430 设计,能够组建一个ZigBee 网络,在每个区域中,即每条公交线路上,网关充当协调器的角色,把定位节点,即各辆公交车位置信息上报给管理中心。
③参考节点:参考节点也采用CC2430 设计,在网络中充当路由器角色,在本系统定位过程中布置在公交线路上,由用户指定固定坐标,并为定为节点提供该坐标和RSSI 平均值。另外,参考节点还可以扩展,通过视频功能,可以获取路况信息,进一步为管理中心提供数据。
④定位节点:定位节点采用CC2431 设计,其内部具有定位引擎,能够根据参考节点提供的固定坐标和RSSI 平均值计算出自身的精确坐标位置,并把该坐标协同定为节点标识号发送给网关。
2 系统各节点具体设计
2.1 定位节点
定位节点采用CC2431 设计,利用内部引擎计算自身的位置,然后传至网关。其设计原理如图2 所示。从图可以看出,仅仅采用CC2431 和加上外部必要的无线器件,没有其它外设,一方面简化设计,另一方面利于节省能源。
图2 定位节点设计原理
定位节点通过接受定位区域内所有参考节点的RSSI 值后,经过定位算法来计算其坐标值。定位节点包含以下功能:
①加入网络,无线收发数据功能。
②控制参考节点多次收集与定位节点通信时信号强度值的功能。
③控制参考节点计算多次手机定位节点信号强度值的平均值并发送给定为节点功能。
④能被协调器空中动态配置标准参数的功能。
⑤掉点后标准参数信息不丢失的功能。
⑥计算,发送XY 坐标。
⑦发送定位节点编号的功能。
定位节点的基本功能包含了无线收发数据的功能,控制参考节点多次收集和定位节点通信时的信号强度值,并且控制参考节点计算多次收集定位节点信号强度值的平均值并发送给定位节点。定位节点还要接受网关进行空中动态配置标准参数,并且保证掉电后标准参数信息不会丢失。
定位节点上电以后,系统将给与它一个默认的标准参数,包括A 值,N 值,模式,收集等待时间,自动模式下周期,最小参考节点数等信息,如果是第一次加入参考网络,则系统将这些数据写入flash;否则如果已存在于网络中,就将存放在flash 中的标准参数读出。
2.2 参考节点
参考节点是一种已知的静态节点,其坐标(X,Y)值是固定的,不参与定位计算,由CC2430 实现。本设计过程中一个区域采用8 个参考节点组成。
参考节点必须正确的配置在定位区域中的位置。它的任务是提供一个包含自己位置X,Y 坐标和RSSI 平均值[7 的信息包给定位节点。
在参考节点部分共有4 个输入串ID,分别是RSSI 请求,参考节点配置,参考节点的请求配置,多次收集RSSI 平均值。参考节点收集到信息后。根据串ID 对信息进行处理,并实现相应的功能。
参考节点在上电以后,如果是第一次加入定位网络,那么系统讲给与它一个默认的X,Y 值,并将数据写入flash;否则如果已经存在于网络中,则首先要将flash 中的X,Y 坐标值读出,已确定自己的位置。
2.3 网关的功能及设计
网关应具有以下功能:
①建立网络,无线收发数据的功能。
②利用串口和计算机通信的功能。
③计算校验的功能。
④通过液晶显示器显示参考节点和定位节点坐标网络地址的功能。
⑤转发计算机数据配置和请求配置参考节点和定位节点的功能。
⑥转发计算机数据请求定位节点坐标的功能。
网关节点模块选择CC2430,它是系统中至关重要的模块。首先,网关要接收由监控软件提供的各个参考节点和定位节点的配置数据,并根据不同的方式发送给相应的节点;其次还要接收个节点的反馈数据,判断数据的有效性,并传输给监控中心。
整个定位系统通过串命令控制整个流程,每1 个串命令都实现1 个相对应的功能。网关是一个中心控制站,自己涉及的串命令比较少。网关处理各个节点发送过来的有效数据进行处理。这些数据包含了操作系统值,节点网络地址,有效数据长度,串ID,坐标数据长度和坐标数据。这些数据被网关收集之后,首先通过串口发送给pc 机,然后对这些数据进行数据校验。系统中数据校验的方法是取出数据操作系统值,即第1 位,对各位数据进行异或计算。
PC 机通过串口接收到数据之后,首先判断第1 位是否为操作系统值,然后根据数据长度分配空间装载数据。在数据装载完成之后,立即对数据进行校验。
3 实验结果及数据分析
为模拟公交定位系统的实现,采用了8 块CC2430 模块为参考节点,2 块CC2431 模块为定位节点,1 个网络扩展卡和1 个CC2430 模块组成网关,进行模拟公交车定位系统,最后将网关的数据通过串口[11]与计算机相连。因为定位系统的控制源是控制中心的计算机,所有的流程都由计算机控制。在网关收到或发送数据的时候,总会计算1 个校验值验证或做数据的最后以一位,所以以下实验数据中数据格式由数据帧[11]和校验位[12]两部分组成。
通过串口读到的数据为:02 10 18 0B CB B8 3C D2 1500 08 FF FF FF FF 83。各位数据含义如下:
表1 串口各位数据含义
从表中可以看出,0B 是数据长度,为从这以为开始一直到校验位的所有数据位,B8 3C 表示网络地址,低位在前,高位在后,表示的网络地址为0x3CB0。15 00 表示串ID 号,地位在前,高位在后,所以串ID 地址为0x0015。后面的是XY 坐标上电后的初始地址。
在定位节点上电之后,首先把数据发送给网关。因为系统采用非自动模式,所以网关会一直等待,直到上位机需要节点数据时,发送如表2 所示的一条命令。
表2 上位机数据
从命令的形式可以看出,该命令的发送形式为短地址形式。发送该命令以后,只有地址为0x5324 的节点会收到该信息。发送后上位机收到的数据为:02 10 18 14 CB 32 65D3 14 00 11 00 06 00 1F 00 04 B8 3C 00 00 28 00 28 CF31 32 33 34。
从结果可以看出,上位机正常收到数据,通过改变定位节点在网络中的位置,就可以得到一组不同的数据,在根据数据中特定的信息位可以得到坐标结果。在实际应用系统中,对应的坐标位都在地图上进行显示,可以直观的看到各辆公交车在路线上的位置信息。
4 结语
Zigbee 的无线定位系统基于无线单片机CC2431,利用CC2431 自带的RSSI 定位引擎,再运用无线自组网进行定位并向控制中心传送定位信息。该系统设计简单,定位精确度高,设备成本低廉,适合现代化城市的公交车系统智能管理。