基于CC2430的城市车辆限行系统研究
扫描二维码
随时随地手机看文章
摘要:随着车辆的增多,城市交通拥堵越来越严重,影响了市民日常出行。实行车辆限行是缓解交通拥堵的有效方法。利用Chipcon AS公司的射频芯片CC2430进行车辆无线识别,结合单片机与以太网实现远程通信,设计了一套根据车辆出行天数进行城市车辆限行的系统。为了获得车辆出行天数,对根据出行天数进行车辆限行的方法进行了论述,重点是系统的硬件设计,并对软件设计中的难点给出了说明。
关键词:车辆限行;CC2430;射频识别;8051单片机
0 引言
随着经济快速发展,各个城市都面临着不同程度的交通拥堵问题。交通拥堵之所以成为城市公害,是因为它严重影响社会正常秩序,而且还引发城市环境的持续恶化。交通拥堵对社会生活的影响,首先是出行时间和出行费用的消耗增加;其次,随着出行成本的增大,可能会抑制出行,致使城市人口生活质量下降;就能源消耗以及城市道路交通实施的有效利用而言,交通拥堵无疑又会导致资源的严重浪费;交通拥堵对公共交通的影响也十分严重,交通拥堵极大降低公共交通的运行效率;交通拥堵对城市环境质量的危害是另一个不可忽视的问题,交通拥堵会导致汽车尾气污染加重,还会使噪声污染变得更加严重。
车辆限行作为一种卓有成效的解决城市交通拥堵措施,经过了实践的证实,其效果也得到了社会的肯定。大多数城市进行车辆限行采用的是根据车牌尾号限行的方案,如单双号限行措施。根据车牌号进行限行有一系列缺点:限行号码、时间和路段过于混乱,难于记忆掌握;另一方面,限制了一些确实需要出行的车辆,对一些市民日常生活秩序造成一定程度的影响;甚至有一些家庭通过购买第二辆车来逃避车辆限行,使得与限行的初衷南辕北辙。
针对以上情况,本文将单片机技术和射频识别技术结合起来,设计了一套统计车辆出行天数的装置。车辆加装电子标签与道路上采集单元实现信息交互,道路采集单元识别并记录车辆信息。将车牌信息发送至交控中心服务器,由出行天数计算系统,计算出车辆的出行天数,作为收取拥堵费依据,从而实现车辆限行目的。
1 城市车辆限行方法
目前城市车辆限行主要是根据车辆车牌尾号进行限行。如北京,根据车牌尾号将车辆分为不同的几组,一周内每天分别指定一组或几组尾号的车辆限行。此方法采用行政手段,强制性限制车辆出行,不够人性化。
本文提出,根据车辆出行天数收取拥堵费,实现车辆限行的目的。系统模拟图如图1所示,该系统主要由车辆电子标签、采集单元和交控中心拥堵费计算系统组成。当车辆经过横跨车道上空的龙门架时,龙门架上安装识别单元,激活电子标签工作电路,车辆电子标签和识别单元进行信息交互,将车牌信息发送至识别单元。采集单元接收车牌信息,存储于内部芯片,并定时发送所存储数据至交控中心服务器。车辆电子标签由射频芯片和微处理器组成。道路上方采集单元包括射频信号接收模块,控制模块和数据发送模块。其中射频信号接收模块由接收天线和阅读器组成。控制模块控制数据的接收、存储和发送。
交控中心拥堵费计算系统主要功能是车辆出行天数统计和拥堵费计算。本文主要研究车辆出行天数的获得,对于拥堵费计算部分,各城市可根据自身实际情况,依据车辆的出行天数,制定拥堵费收取方案。
系统功能框图见图2,主要工作分为三个阶段。
1.1 无线射频信号收发阶段
当车辆通过安装了采集单元的龙门架前方附近时,处于采集单元内部阅读器天线的辐射区,电子标签开始发送加密载波信号至阅读器。二者之间属于微波通信,通信工作频率达2.4 GHz。对已接收车辆电子标签采用休眠-唤醒-休眠方式控制数据发送,避免车辆信息重复发送,降低功耗。
采用ALHOLA时分算法进行多个车辆的识别,防止多个标签信息发送发生碰撞。电子标签和阅读器之间的数据传送采用验证和加密方式保证数据传送安全。
阅读器解调接收信息后,将数据送至控制模块。
1.2 控制模块信息处理及数据发送
控制模块首先根据车牌前两位判断是否为本市车辆(只记录本地车辆出行数据)。若为本市车辆,则存入,否则继续判读下一条信息。将车牌信息结合当天日期进行编码,存入存储器。
控制模块选用微处理器作为控制芯片,外接存储芯片保存数据。选用以太网控制器芯片通过RJ45接口,连接外部以太网络。传输协议遵守标准TCP/IP协议,将数据发送至交控中心服务器。
1.3 拥堵费计算系统
采集单元将当天车辆出行信息发送至交控中心服务器。对各个单元内车辆出行信息进行筛选,去除重复数据,得出车辆当天的出行信息。
月底或年终,对车辆出行信息进行统计,得出车辆每月或每年总的出行天数,然后可根据车辆出行天数进行拥堵费收取。
交控中心应对安装采集单元的路段以及拥堵费收取费率作必要公示。每月以短信方式通告车主当月出行天数以及应缴拥堵费数额。年底,交控中心汇总计算车辆当年应缴拥堵费,并通知车主拥堵费缴纳时间。对于逾期不交、拖欠等行为,交管中心可对车辆进行适当罚款,以作必要警示。对于故意人为破坏电子标签等逃避车辆识别行为,采取教育、罚款等方式,确保车辆识别率,提高城市车辆限行效果。
2 硬件设计
系统硬件结构中主要包括射频收发芯片CC2430、以太网控制器RTL8019AS、存储芯片、网络隔离变压器。CC2430芯片在发送端自动完成对数据信号的打包、编码、调制,转换为RP、信号后通过后端输入/输出匹配电路送入天线,完成信号发送。接收端将从天线接收到的有用信号通过CC2430解调、拆包,并进行CRC校验,最终存储数据。CC2430芯片内部的8051单片机,控制以太网控制器RTL8019AS进行数据的发送,用到的主要芯片有RTL8019AS,CSl93C46(64×16 b的E2PROM),74HC573(8位锁存),62256(32KBRAM)。为分配好地址空间,采用CSI93C46进行读(或写)操作来设置RTL8019AS端口的I/O基地址和以太网物理地址。8051作为中央处理器,可控制射频芯片休眠或者将其唤醒,进行数据的收发。8051的两个外部中断输入端分别接开关K1和K2。开关K1的功能在于使用外部中断退出单片机的掉电模式,开关K2的功能在于实现单片机内部的数据发送控制。8051单片机作为中央处理器不仅需要控制无线信号收发,同时还要对以太网控制器进行控制,在软件设计中需要判别车牌信息是否为本市车辆,对数据进行存储,按照时钟定时发送或者接收交控中心发出的控制信号进行数据发送操作;射频收发芯片主要作为该系统的发送、接收设备,它用来实现车辆信息的给定,主要作用在于它可以实现电子标签和采集单元的数据交互;RTIL8019AS芯片,主要作用是实现单片机和远程PC通过以太网实现相互通信,将8051的串行口改为能介入以太网的RJ 45接口,数据传输遵循标准TCP/IP协议。
2.1 电子标签&阅读器
CC2430是真正的系统芯片(SoC)CMOS解决方案,能够提高性能并满足以ZigBee为基础的2.4 GHzISM波段应用对低成本、低功耗的要求。它结合了高性能的2.4 GHz DSSS(直接序列扩频)射频收发器核心和1颗工业级小巧高效的8051控制器。CC2430在单个片上集成了ZigBee射频(RF)前端、内存和微控制器,使用1个8位MCU(8051),具有32 KB/64 KB/128 KB的编程闪存和8 KB的RAM,还包含模/数转换器(ADC)、定时器(Timer)、AES-128安全协处理器、看门狗定时器(Watchdog Timer)、32 kHz晶振的休眠模式定时器、上电复位电路、掉电检测电路以及21个可编程I/O引脚。CC2430的8051内核的目标代码兼容标准8051微处理器,可以使用标准8051的汇编器和编译器进行软件开发。其21个可编程I/O引脚均可以通过软件设定1组SFR寄存器的位和字节,使这些引脚作为通常的I/O口或者作为接ADC、定时器或USART部件的外围设备I/O口使用。
CC2430电路连接图如图3所示。电路选用CC2430芯片作为电子标签以及采集单元内阅读器的核心部件。选用1个32.768 kHz的石英谐振器和2个电容组成32.768 kHz的晶振电路;选用1个32 MHz的石英谐振器和2个电容组成32 MHz的晶振电路(具体晶振电路图省略)。电压调节器可为所有要求1.8V电压的内部电源供电,电容是用来作为电源滤波的去耦合电容,以提高芯片工作的稳定性。电路中J2是I/O引脚JTAG仿真器接口。J1是CC2430芯片扩展输出口,在扩展输出口上主要预留了SPI口和整个P0 I/O口。设计了2个发光二极管指示灯,作为电路调试指示灯。使用1个非平衡天线,为了使天线性能更好,在天线与CC2430之间连接了1个非平衡变压器。非平衡变压器由电容和三个电感以及1个PCB微波传输线组成,整个结构满足RF输入/输出匹配电阻(50 Ω)的要求。
在电子标签中,由微控制芯片8051对CC2430进行控制,并通过SPI口将所要发送的数据送入CC2430,CC2430自动完成对数据信号的打包、编码、调制,转换为RF信号后通过后端输入/输出匹配电路送入天线,完成信号发送。采集单元阅读器中数据接收将从天线接收到的有用信号通过CC2430解调、拆包,并进行CRC校验,然后送入微控制器芯片进行处理,通过RS 232转换芯片进行输出。经过上述过程,进行数据的收发,RF收发器设计原理图如图4所示,虚线部分为阅读器部分,通过RS 232串口送至以太网控制器。
2.2 以太网控制器
以太网数据传输部分,选用Realtek公司的RTL8019AD以太网控制器,性能优良、价格低廉,在市场上占有相当大的比例。其主要性能如下:
(1)符合EthernetⅡ与IEEE 802.3(10Base5,10Base2,10BaseT)标准;
(2)全双工,收发可同时达到10 Mb/s的速率;
(3)内置16 KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;
(4)支持8/16位数据总线,8个中断申请线以及16个基地址选择;
(5)支持UTP,AUI,BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;
(6)允许4个诊断LED脚可编程输出;
(7)100脚的PQFP封装,缩小了PCB尺寸。
图5给出了8051单片机控制RTL8019AS的接口电路,实现与以太网通信,网络接口采用UTP RJ 45接口。用到的主要芯片有RTL8019AS,CSI93C46(64×16 b的E2PROM),74HC573(8位锁存器),62 256(32 KB的RAM)。
为分配好地址空间,采用对CSI93C46进行读(或写)操作来设置RTL8019AS的端口I/O基地址和以太网物理地址。CSI93C46是采用4线SPI串行接口的Serial E2PROM,容量为1 Kb,主要保存RTL8019AS的配置信息。RTL8019AS通过控制CSI93C46的CS,SK,DI引脚,通过ESDO接收CSI-93C46的DO引脚的状态。RTL8019AS复位后读取CSI93C46的内容并设置内部寄存器的值,如果CSI93C46中内容不正确,就无法正常工作。先通过编程器把配置好的数据写入CSI93C46,再焊入电路。
采用10BaseT布线标注通过双绞线进行以太网通信,而RTL8019AS内置了10BaseT收发器,所以网络接口的电路比较简单。外接一个隔离LPF滤波器0132,TPIN+/-为接收线,TPOUT+/-为发送线,经隔离后分别与RJ 45接口的RX+/-,TX+/-端相连。
时钟电路通过T1,T2接一个20 MHz晶振以及2个电容,实现全双工方式。
LED0,LED1各接一发光二极管以反映通信状态:LED0表示LED_COL,即通信有冲突;LED2表示LED_RX,即接收到网上的信息包。
2. 3 硬件传输性能及功耗
自由空间传播距离与发射功率、接收灵敏度以及所使用的载波频率有关,其数学表达式为:
式中:d为传播距离;Lp为自由空间损耗;c为光速;f为载波频率。由理论计算可知,CC2430最远识别距离可达1 500 m。实际中,由于外接干扰、障碍物遮挡和空气质量等因素影响,识别距离无法达理论长度。表1给出了利用CC2430实现远距离收发数据的测试结果。设数据包大小为32 B,数据速率为1 MHz。由电子标签到采集单元、和从采集单元到电子标签分别发送100个数据包,记录接收到正确数据包的数量。可见,在40 m以内的范围内,采集单元可以实现对车辆全部的识别,不会发生丢包现象。在实际使用中可能会遇到其他种种干扰,抗干扰能力是系统需要考虑的问题之一。
系统均选用较低功耗器件,电子标签中有源器件包括电压转换芯片、CC2430,它们的工作电流分别为3.5μA,27 mA(接收)/25 mA(发送)。且采用休眠-唤醒-休眠的工作方式,休眠时功耗更低。只需加装电池,即可满足3~5年的使用。实现低成本、低功耗、高性能的系统需求。
3 软件设计
软件设计分为CC2430进行无线收发部分和单片机控制以太网进行数据传输部分。软件设计的难点在于射频芯片数据的收发,下面主要介绍射频数据收发控制以及以太网数据传送控制,对这两方面的操作处理做简要分析。
3.1 射频数据传输协议
电子标签和采集单元之间的数据传输遵循ZigBee无线网络传输协议。ZigBee协议是在IEEE 802.15.4标准基础上建立的,工作于免授权的2.4 GHz频段,其规定了有关组网、安全和应用软件方面的技术标准。由一组子层构成,每层为其上层提供一组特定的服务:数据实体提供数据传输服务,管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为上层提供服务接口,并且每个SAP提供一系列的基本服务指令来完成相应的功能,ZigBee协议栈的体系结构模型如图6所示,IEEE 802.15.4标准定义了物理层(PHY)和介质接入控制子层(MAC);ZigBee联盟定义了网络层和应用层(APL)框架的设计。其中应用层框架主要包括3部分:应用支持子层(APS)、ZigBee设备对象(ZDO)和由制造商制定的应用对象。
ZigBee协议栈很好地解决了网络组网问题,整个协议栈的安全性好,层次性强,功耗低,可以实现网状网络。在ZigBee 2006协议栈中已经将CC2430的底层驱动全部固化在协议栈中,可以直接调用。选用CC2430芯片作为无线通信模块硬件核心芯片,软件部分选用ZigBee 2006协议栈来实现无线模块之间的通信功能。
3.2 射频数据收发处理程序
利用软件IAR 7.30B进行程序的开发。系统软件基于TIChipcon公司免费提供的ZigBee 2006协议栈,以Zstack-1.4.3-1.2.1版本中GenericApp例程为基础。下面给出串口部分和数据接收、发送部分程序。
3.2.1 串口初始化
主要是设置halUARTCfg_t结构体成员值:
通过对halUARTCfg_t赋值,可以设置波特率、字符数、数据位、停止位、奇偶校验位等。其中callBackFunc是自定义设置串口回调函数,即一旦出口有数据传送,OSAL会自动转到自定义的回调函数,执行自定义的操作。
3.2.2 数据接收
当有数据通过无线发送到应用层时,应用层会发送一个AF_INCOMING_MSG_CMD消息事件。
这里表示收到AF_INCOMING_MSG_CMD消息事件,然后调用收到消息事件的信息处理函数GenericApp_MessageMSGCB(MSGpkt),开始接收数据并通过调用串口HalUARTWrite(uint8 port,uint8*buf,uintl6 len)写函数发送、接收到的数据。
3.2.3 数据发送
当串口回调函数中有数据输入时,应用层会发送一个GENERICAPP_SEND_MSG_EVT消息事件。
调用GenericApp_SendTheMessage()数据发送函数,具体到TI/Chipcon公司所提供的ZigBee 2006协议栈中即为AF_DataRequest()函数,具体形式如下:
3.3 以太网数据传送控制
程序采用Franklin C51语言编制,可读性强,移植性好,开发简易。
3.3. 1 初始化RTL8019AS
通过C51的P3.4链接RTL8019AS的RESDRV来进行复位操作。RSTDRV高电平有效,只要给引脚施加一个1μs以上的高电平即可。
初始化页0、页1相关寄存器,页2的寄存器是只读的,不可以设置,页3的寄存器不是NE2000兼容的,不用设置。
(1)CR=0x21,选择页0的寄存器;
(2)TPSR=0x45,发送页的起始页地址,初始化为指向第一个发送缓冲区的页即0x40;
(3)PSTART=0x4c,PSTOP=0x80,构造缓冲环:0x4C~0x80;
(4)BNBY=0x4c,设置指针;
(5)RCR=0xcc,设置接收配置寄存器,使用按收缓冲区,仅接收自己地址的数据包(以及广播地址数据包)和多点播送地址包,小于64 B的包丢弃,校验错的数据包不接收;
(6)TCR=0xe0,设置发送配置寄存器,启用CRC自动生成和自动校验,工作在正常模式;
(7)DCR=0xe8,设置数据配置寄存器,使用FIFO缓存,普通模式,8位数据DMA;
(8)IMR=0x00,设置中断屏蔽寄存器,屏蔽所有中断;
(9)CR=0x61,选择页1的寄存器;
(10)CURR=0x4d,CURR是RTL8019AS写内存的指针,指向当前正在写的页的下一页,初始化时指向0x4c+1=0x4d;
(11)设置多址寄存器MAR0~MAR5,均设置为0x00;
(12)设置网卡地址寄存器PAR0~PAR5;
(13)CR=0x22,选择页1的寄存器,进入正常工作状态。
3.3.2 发送帧
将待发送的数据按帧格式封装,通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令,完成帧的发送。需要设置以太网目的地址、以太网源地址、协议类型,再按所设置的协议类型来设置数据段。之后启动远程DMA,数据写入RTL8019AS的RAM,再启动本地DMA,将数据发到网上。
RTL8019AS无法将整个数据包通过DMA通道一次存入FIFO,则在构造一个新的数据包之前必须先等待前一数据包发送完成。为提高发送效率,设计将12页的发送缓存区分为两个6页的发送缓存区,一个用于数据包发送,另一个用于构造新的数据包,交替使用。
通过调试,利用PC机接收一个构造的ARP请求包,接收效果比较满意。
4 结论
利用CC2430无线收发功能,结合单片机与以太网实现远程通信,设计了一套应用于车辆识别的城市交通限行系统,该系统利用CC2430低功耗、低成本、高性能等优点实现车辆识别。利用性能优越、价格低廉的RTL8019AS以太网控制器,实现路边采集单元与远程计算机的信息交互。该系统主要完成车辆识别,及车辆信息发送工作。经测试,可准确识别车辆,完成出行天数统计的要求。交管部门可利用车辆车型信息进行车辆出行天数的统计,作为收取拥堵费的依据,从而实现车辆限行。