基于CC2430的城市车辆限行系统研究

   2024-01-18 互联网1270

  系统均选用较低功耗器件,电子标签中有源器件包括电压转换芯片、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以太网控制器,实现路边采集单元与远程计算机的信息交互。该系统主要完成车辆识别,及车辆信息发送工作。经测试,可准确识别车辆,完成出行天数统计的要求。交管部门可利用车辆车型信息进行车辆出行天数的统计,作为收取拥堵费的依据,从而实现车辆限行。

 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅