公交车的远卡自动收费系统设计
扫描二维码
随时随地手机看文章
引言
随着社会的发展,城市公共交通已变成我们生活中不可或缺的一部分。目前,公交收费主要有人工售票和刷卡投币收费两种方式。人工售票虽然具有监督性强、能有效防止偷票漏票现象的优点,但是每月需要给售票员发放工资,进而使得成本提高。刷卡和投币收费能解决成本问题,但是乘客上下车非常不便,特别是高峰期,大大减缓了上下车速度。当前国内外公交车收费采用的射频卡与收费机操作距离不超过0.1 m(下面简称这种射频卡为“近卡”),乘客缴费需要从衣袋,包内取卡,贴近收费机刷卡,再将卡放回衣袋、包内,这些动作减缓了乘客上车速度,特别对双手携带东西的乘客,刷卡操作会很不方便。
本文研究的公交车自动收费系统使用有源标签完成公交卡的设计,在保证较长使用寿命的基础上,使感应距离增大到1 m左右。将车载系统放置在距离公交车上客门口约1 m左右的距离,乘客上车时经过车载系统就能够成功刷卡,同时使用的防碰撞算法保证了在乘客上车拥挤的情况下也能够成功刷卡,成本低且效率高。近年来,地铁交通的大力发展也为人们的出行带来极大的方便,本系统经过修改后同样可以用于地铁的自动收费,应用空间比较广阔。
1 系统的整体构成
公交车远卡自动收费系统总体分为两大部分:公交卡和车载系统。公交卡主要由nRF24LEl射频模块和唤醒电路组成;车载系统主要由主处理器STM32、GPS定位模块、液晶显示电路、存储电路、语音报站电路、唤醒电路等构成。系统总体结构如图1所示。
当乘客携带公交卡上车经过车载系统时,公交卡的ATA5283唤醒电路接收到车载系统读卡器端ATA5276芯片发送的125 kHz电磁波后,激活处在睡眠模式下的公交卡,公交卡进入发送模式,将自己的ID号、卡内金额发送给车载系统。车载系统给公交卡发送信息,蜂鸣器响一下表示刷卡成功,并在液晶屏显示成功信息。同时,车载系统将此公交卡的ID号、金额、上车位置保存在AT24C512存储器里,当乘客要下车将公交卡再次靠近读卡器时,公交卡再次被唤醒并向车载系统发送数据。车载系统的处理器根据此公交卡的ID号找到上车时刷卡的信息来计算所需要扣费的金额,并向公交卡发送扣费数据;同时,会将本次乘车信息保存在数据库中,以备查询使用。公交车到达终点站后将会进行复位操作,如果有乘客下车时未能感应上,则按照到达终点站的路程进行扣费。
2 系统主要部分硬件实现
2.1 公交卡的硬件设计
采用nRF24LE1作为标签芯片,ATA5283作为唤醒芯片组成公交卡的硬件电路。nRF24LE1是一款带有处理器的2.4 GHz收发芯片,在一个很小的芯片上集成了51内核和nRF24L0 1收发内核,与nRF24L01采用相同的内嵌协议和GFSK调制方式,具有串口、SPI、I2C、PWM发生器、随机函数发生器等丰富的外设资源,该芯片功耗极低且具有非易失性数据存储器。
ATA5283是一款检测灵敏度高和功耗超低的125kHz无线唤醒芯片,具有1 mV的灵敏度,在待机侦听125kHz数据状态时,功耗仅为1~2μA,在接收125 kHz数据的过程中,功耗为2~4μA。在接收125 kHz数据时,至少检测到125 kHz载波持续时间为5.64 ms才进入正常工作模式。其中,前1.54 ms的载波周期的时间用于唤醒此芯片,后4.1 ms的载波周期用于进行自增益调整,把接收信号的放大增益调整到合适的值。两者再加上纽扣电池等外围电路构成了有源式公交卡,能实现远距离的信号发射与接收。公交卡硬件电路如图2所示。
在没有检测到125 kHz信号时,ATA5283芯片以非常低的功耗处于待机模式。在此模式下,COIL引脚的天线端一直在检测是否有载波信号到来,N_DATA和N_WAKEUP引脚为高电平,复位引脚RESET处在低电平状态。当COIL引脚的天线端接收至少704个载波序列后,ATA5283芯片进入工作模式,N_DATA开始接收载波数据,N_WAKEUP变为低电平,唤醒nRF24L E1。由于只需要唤醒功能,无需有效的载波数据传输,因此,只需将N_WAKEUP与nRF24LE1的P0.6引脚相连。最后,nRF24LE1的P0.0引脚给ATA5283的RESET引脚一个高电平,使ATA5283复位,让芯片重新回到待机监听模式。
2.2 车载系统射频模块电路设计
采用的nRF24L01射频模块与nRF24LE1的射频部分是相互兼容的,也工作在2.4GHz频率段,是通用ISM频段的无线收发芯片。内置射频发送接收器、数据缓冲器、GFSK调制/解调器、增强模式控制单元及与处理器连接的SPI接口。nRF24L01采用SPI总线方式与处理器通信,STM32处理器自带SPI接口。
本设计将时钟控制信号SCK、串行数据输出MISO、串行数据输入MOSI、芯片使能引脚CSN、中断信号IRQ、射频使能引脚CE分别与处理器的PA5、PA6、PA7、PC4、PB0、PC5引脚直接相连,具体电路如图3所示。同时,该芯片的增强模式具有自动重发和自动应答功能,中断信号IRQ用来告诉处理器其接收和发送数据的状态,使处理器及时根据状态来做出相应的处理,这些功能大大减少了MCU的工作量。
2.3 车载系统低频唤醒发射电路设计
采用不断发射低频125 kHz电磁波的形式去激活有源标签,发射芯片采用ATA5276,它能发射频率为125kHz的信号,该芯片驱动天线线圈的峰值电流是可调的,输出的最大峰值电流可以达到1.5 A,调制方式是ASK调制,波特率可达4Kps,芯片工作电压范围为8~24 V。处在待机模式时电流消耗小于50 μA,传输的125 kHz电磁波传给相应的接收器,通过STM32的PD0引脚可以控制该芯片工作。
设置DIO脚与STM32的唧引脚连接,如图4所示,PD0引脚平时处于低电平状态,当PD0发出高电平时,三极管导通,DIO引脚变为低电平,ATA 5276从待机模式转为工作发射模式;此时,DIO为低电平,L1和C4组成的串联谐振电路开始起振,125 kHz能量通过电感以磁场的形式传播出去,当DIO引脚检测到低电平时停止谐振。
3 系统软件实现
软件设计主要包括车载系统程序设计和公交卡程序设计,车载系统程序包括舡24C512存储器的I2C总线程序、GPS的串口通信程序、nRF24L01和ISD4004的SPI总线程序以及CD 12864的并口程序设计。公交卡程序主要包括nRF24LE1低功耗和防碰撞程序设计,采用的编程语言为C语言,灵活方便。软件开发平台是MDK,其集成度高,具有在线仿真和调试功能,非常适合嵌入式开发。
3.1 公交卡软件设计
公交卡软件设计要确保标签信息准确及时地发送出去,并及时接收读卡器处理完的数据。主要包括三部分:标签的发射与接收、低功耗设计、防碰撞算法的设计。软件流程如图5所示。
3.2 车载系统射频模块软件设计
车载系统射频模块nRF24L01的功能是:接收卡片的数据信息,交给处理器处理。与STM32通信采用SPI总线协议,STM32带SPI口,并且使用STM32库函数开发,大大简化了程序设计,只要对接口函数做出相应配置,就可以操作SPI寄存器。nRF24L01有多种工作模式,本设计主要使用基本的发送和接收模式,为了实现自动应答、自动处理字头和CRC校验码,采用 Enhanced ShockBurstTM 增强型的模式,这样简化了程序设计,减小了处理器的负担,而且使接收和发送数据更及时准确。软件实现流程如图6所示。
结语
本设计的车载系统需要在前门和后门各设置一个感应装置,要求乘客前门上车,后门下车。当前门的读卡器检测到乘客上车时,公交卡发送信息给车载系统,车载系统做出回应并记录公交卡发送来的信息。车辆运行时,不发送125 kHz的唤醒信号,因此公交卡不能被唤醒,只有在车门被打开、乘客靠近读卡器时,才能被唤醒。当乘客下车、被后门感应器检测到时,将接收到的公交卡信息与上次检测到的信息比较,做出相应扣费处理。模拟程序设计是每隔1分钟,站数加1,表示公交车走了1站,扣费标准为每10站扣1元。采用10张公交卡进行了测试。测试结果表明,该系统能及时完成对卡片的数据读取和数据处理。