基于HMC5883L的停车位ZigBee数据采集系统
扫描二维码
随时随地手机看文章
摘要:前期研究提出一种智能手机与ZigBee网络相结合的智能停车系统总体架构,具有低成本、交互性强等优点。为具体实现该架构中使用的 ZigBee网络,设计了一套停车场车位数据采集系统。该系统基于ZigBee技术搭建,由中心结点、路由器结点和终端结点组成。中心结点的微控制器选用低功耗的LPC11C14,GSM模块选用SIM300模块。三类结点的ZigBee通信芯片选用CC2530。综合多方面因素,选用基于地磁检测技术的 HMC5883L作为车位传感器,尺寸小、安装方便、对非铁磁性物体无反应、可靠性高是该传感器的优点。在硬件电路的基础上,设计了三类结点的数据收发和控制程序。经测试,所设计的车位数据采集系统实现了预期功能要求,且具有低成本、低功耗的特点。
关键词:智能停车系统;车位数据采集系统;ZigBee网络;HMC5883L传感器
智能停车系统是城市智能交通体系中的重要组成部分。目前,国内外现有城市智能停车系统通常由4部分构成:数据采集子系统、数据传输子系统、城市级管理控制中心、数据发布子系统。数据传输子系统与城市管理控制中心间,以及城市管理控制中心与数据发布子系统间,依靠GSM、GPRS、CDMA、3G、4G等移动通信方式进行通信,需长期缴纳通信费用,造成系统运营成本高。
为此,笔者所在的课题组提出一种无需建设城市级管理控制中心的系统架构。该架构通过在城市中的主要停车场或路边停车区域分别部署一个ZigBee网络,再与用户的智能手机相配合,即可实现城市范围内的智能停车。用户与ZigBee网络中控制结点间的小额通信费用,由用户进行承担,从而大大降低了城市智能停车系统的运营费用。
本文论述各ZigBee网络中的中心结点、路由器结点、终端结点等的主要电路设计及主要软件模块设计。
1 停车场级ZigBee网络的组成
部署在各停车场或路边停车区域的ZigBee网络,其内部结构如图1中的方框部分所示。该网络由1个中心结点、若干个路由器结点、以及数量更多的终端结点等组成。中心结点内部又由微控制器、协调器结点、GSM/GPRS/CDMA/3G/4G通信模块(为简化起见,在后文中简称GSM模块)等组成。每个终端结点都连接有1个车位状态检测传感器,用于实时采集各车位当前是否空闲。当车位状态发生变化时,终端结点将通过附近的路由器结点向协调器结点进行上报。协调器结点收到车位状态发生变化的消息后,一方面将消息传递给微控制器后存入E2PROM,另一方面通过路由器结点向终端结点发送反馈。此外,中心结点的GSM模块随时准备接收用户手机发送的停车请求,然后将请求传递给微控制器,微控制器在E2PROM中查找是否有空闲车位,最后将找到的空闲车位或所有车位已满的信息通过GSM模块反馈给用户手机。
2 ZigBee网络结点的主要电路设计
2.1 主要芯片选型
系统硬件由中心结点、路由器结点、终端结点等组成。中心结点又由微控制器、协调器结点、GSM模块等组成。考虑到某些室外停车场或路边停车区域可能缺乏供电条件,低功耗是硬件设计的首要原则。
微控制器选用恩智浦公司的LPC11C14芯片。该芯片基于Cortex—M0内核,特别适合于集成度较高和超低功耗要求的应用。协调器结点、路由器结点、终端结点的ZigBee芯片选用TI公司的CC2530芯片。由于从休眠模式转换到工作模式的耗时特别短,所以该芯片非常适合低功耗应用。GSM模块采用了市场上比较成熟的基于SIM300芯片的模块。
目前常用的停车位检测方法有感应线圈技术、视频检测技术、超声波感应技术、红外探测技术、地磁检测技术等。其中,感应线圈技术的检测精度较高,可靠性较好,但安装维护比较复杂,会对路面造成一定破坏;视频检测技术直观可靠,但数据量很大,检测的实时性较差,特别是会受到光线不足、灰尘、气候条件差等的影响;超声波感应技术通常需要在车位的上方安装传感器,一般仅适用于部分室内停车场,且成本较高;红外探测技术相对成熟,但比较容易会受到热源、光源等的干扰而引起误判;地磁检测技术是基于磁阻传感器的车位检测技术,具有尺寸小、便于安装、对非铁磁性物体无反应、可靠性高等特点,目前受到国内外的广泛重视。综上分析,车位状态检测传感器选用霍尼韦尔公司的HMC5883L地磁传感器。
由于LPC11C14芯片内部不含E2PROM,为实现车位状态数据在掉电条件下依然能够存储,通过I2C接口外接AT24C02芯片。LPC11C14 与CC2530间的数据通信设计为利用串口进行通信。因为LPC11C14只含有一个串口资源,为实现LPC11C14与GSM模块的串行通信,采用 SPI转串口芯片MAX3100进行转换。
LPC11C14板的电源芯片采用MIC5209。MIC5209是一款5 V变3.3 V的稳压电源芯片,5 V电源供给GSM模块,3.3 V供给LPC11C14芯片、SPI转串口电路等。CC2530板的电源芯片采用HT7533,该芯片拥有极低的静态电流及高电压输入的特性。
2.2 主要电路图
图2为微控制器与GSM模块之间的SPI转UART电路,SPI线与微控制器相连,UART线与GSM模块相连。采用的SPI转UART 芯片为美信公司的MAX3100芯片。MAX3100供电电源为3.3 V,外接晶振可选择3.686 4 MHz和1.843 2 MHz两种。SPI接口线主要为MOSI、MISO、SCLK、CS,其中MOSI为主机发送从机接收,MISO为主机接收从机发送,SCLK为时钟信号,CS为片选线。串口线为TX、RX,分别为发送与接收。IRQ需要接上拉电阻保持高电平,原因是在软件设计时,选择低电平触发外部中断。
图3为E2PROM芯片AT24C02的连接电路。图中,SCL和SDA分别为I2C总线的串行时钟管脚、串行数据/地址管脚,A0、A1、A2为从机地址引脚,WP为写保护管脚。因I2C通信中要求SCL和SDA管脚必须处于上拉状态,所以接有R10和R11两个上拉电阻。由于I2C总线上只挂接了一片 AT24C02,因此将A0、A1、A2管脚接地。将WP管脚接地,从而允许对AT24C02器件的正常读写。A124C02的芯片地址控制格式为8位,前七位为1010A2A1A0,第八位R/W为数据传输方向控制位。R/W位用于控制芯片是读还是写。当该位为0时,对芯片进行写操作;当该位为1时,对芯片进行读操作。所以当对芯片进行写操作时,芯片地址为A0H;当对芯片进行读操作时,芯片地址为A1H。芯片内的寻址范围为从00到FF,可对所有 256个字节进行操作。
图4为基于HMC5883L的车位传感器原理图。C1和C2连接着电源稳压芯片,抑制电压波动,保持电路中的电压稳定。由于I2C通信中要求SCL和 SDA管脚必须处于上拉状态,所以接有R1和R2两个上拉电阻。LED1为电源工作指示灯。C3和C4两个外部电容应为具有低ESR特性的陶瓷电容。
3 ZigBee网络结点的主要软件模块设计
3.1 协调器接收ZigBee网络数据
图5为协调器接收ZigBee网络数据的程序流程图。在接收程序中,首先要对系统和任务管理函数进行初始化,其次对主函数 SampleApp()函数进行初始化。接着进入系统的事件轮询循环中,当有事件同时发生时,要比较其优先级,先处理优先级高的事件,事件的优先级在初始化中设定。随后调用事件处理函数,事件处理函数判断系统消息,如果为接收数据包的消息,则调用数据包处理函数Sample App_MessageMSGCB(),最后判断事件的序列号,是否为初始化里注册的序列号,如果是原来注册的序列号,则接收该数据包中的数据。由于各终端结点都将所采集的数据传输给协调器,因此采用点播传输方式,各结点发送数据时的目的地址均为0X0000。
3.2 LPC11C14接收CC2530数据
终端结点通过传感器定时采集车位状态,当车位状态变化时,经路由器结点转发给中心结点的协调器模块CC2530。之后,CC2530将接收到的数据通过串口发送给微控制器LPC11C14。最后,LPC11C14将接收到的数据存储到外接的E2PROM芯片AT24C02中。整个传输过程中,LPC11C14为中断触发方式。图6以LPC11C14通过串口接收CC2530数据为例,给出了对应的流程图,LPC11C14通过串口向 CC2530发送数据的过程类似。LPC11C14读取CC2530采集到的数据后,通过I2C总线写到外接的AT24C02芯片中。
3.3 LPC11C14收发GSM模块数据
当LPC11C14需要向用户发送数据时,先通过MAX3100的发送缓冲区TXFIFO发送给GSM模块,然后GSM模块再将数据发送给智能手机。
当GSM模块接收到智能手机发送的数据时,会把数据发送到MAX3100的接收缓冲区RXFIFO,然后再把数据传输给LPC11C14。由于 MAX3100与LPC11C14为SPI连接,而GSM模块与MAX3100的连接为串口连接,但是SPI的传输速度是串口传输速度的几倍,因此需要在 SPI传输前加上一定时间的延时。图7以LPC11C14向GSM模块发送数据为例,给出了对应的流程图,LPC11C14从GSM模块接收数据的过程类似。
4 系统测试
4.1 HMC5883L采集磁场数据测试
在某小型停车场的停车位上进行了测试。根据该停车场的地理朝向,采集数据时将传感器X轴正方向朝正北,Y轴正方向朝正西。表1为车位上没有车时所采集的数据。表2为将终端结点放置于车辆下面时所采集的数据。表中的数字增益为440,即用表中的数字除以440可得到当前各个轴向以高斯为单位的磁场强度。
从表中数据可以看出,停车位有车和无车时,X轴和Y轴的读数变化不是特别明显,但是Z轴上的读数有显著的变化,只需要根据Z轴的数据即可判断停车位上是否有车辆。
4.2 ZigBee数据传输与存储测试
图8为从开发工具IAR中观察到的,LPC11C14所接收到的传感器数据。从该图右侧可看到,当前所接收到的磁场数据为“x:+0147 y:+0250 z:-0247”
为验证LPC11C14所接收的数据确实被准确地写到了E2PROM,用逻辑分析仪的探针接在SCL、SDA和MOSI引脚进行了测量,图9为测量结果的时序图。可将该图按时间顺序分成上、中、下三部分。每一部分都显示了SCL、SDA和MOSI 3个引脚在不同时间段的时序图。从各部分SDA管脚时序图上方的标注可看出,除必要的ACK应答信号以外,“x:+0147 y:+0250 z:-0247”的磁场强度信息确实被写到了AT24C02中且被准确读出。
5 结论
在课题组前期研究成果中,提出一种无需建设城市级管理控制中心的系统架构,从而有望大大降低城市级智能停车系统的建设及运营成本。
针对该架构中停车场内车位状态的数据采集问题,本文设计了一种基于ZigBee的停车场车位数据采集系统,给出了详细的设计方案、主要电路图、主要软件模块的流程图,从硬件和软件两方面介绍了系统的设计思路和实现方法。本设计采用HMC5883L地磁传感器的磁场数据用于车位检测,具有尺寸小、安装方便、可靠性高等优点。采用ZigBee技术组建无线网络用于传输各车位状态数据,不产生移动通信费用,运营成本低。