公交车到站自动预报系统设计
车停靠,若站台模块接收所有公交车模块信息,则必将影响站台模块的信息处理速度,同时还会增大误码率。因此,站台模块与车载模块间应建立身份验证机制,以保证数据的正确、高效处理。
基于上述需求,本文选用XBee S2模块(如图3所示)实现车载模块与站台模块间的通信。XBee S2模块是按ZigBee协议设计的,可实现具有低成本、低功耗等特殊需求的无线传感器组网,在室内/城市环境中其通信距离为40m,可通过设置 PAN(Personal Area Network)ID控制网络规模,通过设置64位地址实现数据传输。
2.3 无线数传模块选型
为了保证站台间信息传输的高可靠性和有效性,无线数传模块的通信距离最好大于大多数相邻站台间的距离。以长沙为例,目前,两相邻公交车站台间距离几乎都在500 m以内(不过,也有极个别相邻站台间距离达到了4000 m)。因此,为了保证相邻站台模块间能够正常通信,无线数传模块的通信距离不应小于1000 m。另外,考虑到天线高度、波特率、城市环境的复杂性对通信距离的影响,要求无线数传模块的通信距离不小于3 000 m。
基于上述需求,本文选用SV6202超远距离无线数传模块(如图4所示)实现站台模块间的无线通信以及通信中继。SV6202模块最大通信距离可达到5 000 m,可通过配置网络ID实现指定模块间的相互通信,不同网络ID配置的模块间不能相互通信。
2.4 控制面板设计
控制面板是保证用户方便、快捷操控和设置控制模块所必需的一部分。车载模块控制面板的主要功能应包括:①模块上电和断电;②当控制模块出现故障时,重新启动控制模块,使其进入正常工作状态;③设置公交车运行方向,以便对面站台模块接收到公交车模块信息时能够正确区分公交车运行方向。
本文最终所设计的车载模块控制面板结构如图5所示(为了防止候车乘客误操作站台模块,站台模块不设计控制面板)。
3 通信协议设计
公交车在运行过程中可能会出现如下两种情况:①某一时刻有多条线路公交车同时进站;②同一站点上行站台和下行站台均接收到了车载模块信息。显然,站台模块必须能正确应对这两种情况,它应能够从车载模块发送的数据帧中解析出公交车线路信息和运动方向信息。
本文设计的车载模块与站台模块间的通信协议如下所示:
当从车载模块发送的数据帧中分析出了公交车线路信息和运动方向信息后,站台模块应通过无线数传模块把该信息传递给其他站台模块。然而,无线数传模块在传递信息时可能会出现如下两种情况:①后继站台和未到站台均接收到了该站台信息;②上行站台和下行站台均接收到了该站台信息。显然,站台模块必须能正确应对这两种情况,能够从站台模块发送的数据帧中解析出公交车线路信息、运动方向信息和当前所在站台编号。
面向上述目标,本文设计的站台模块/中继模块间通信协议如下所示:
4 系统软件设计
4.1 车载模块软件设计
本文把车载模块设计成事件发起节点,即车载模块主动与站台模块通信。为了实现这一目标,车载模块需要定时向站台模块发送信息。因此,车载模块软件采用定时器中断发送信息。另一方面,车载模块还要接收控制面板的按键操作,而该操作是不定时的,为了方便程序开发,在软件的主程序循环中完成按键接收。车载模块软件流程如图6所示。
4.2 站台模块/中继模块软件设计
本文把站台模块/中继模块设计成事件接收及中继节点,即站台模块/中继模块被动接收车载模块信息和其他站台模块信息,同时主动把信息发送给其他站台模块。为了实现这一目标,站台模块/中继模块需要在串口有数据时立刻读取数据,而在没有数据时不应访问串日,因此,站台模块/中继模块软件采用串口接收中断接收信息。由于站台模块/中继模块没有控制面板,不需要处理其他外部事件,因此,其软件的主程序循环是空循环。站台模块/中继模块软件流程如图7、图8所示。
结语
目前,本文所设计系统在实验室和实际公交线路上进行了大量测试。实际测试表明,该系统运行稳定、工作可靠、使用方便,特别是安装、更换无需布线,可以做到即插即用。希望该项研究能够有效推动社会和谐发展,缓解日益拥堵的城市交通,让市民更愿意乘坐公共交通工具出行,减少汽车尾气排放,共同净化美好的家园。
- 用单片机实现公交车的自动考核与报站(02-06)
- 嵌入式软件架构设计(05-22)
- 软件架构设计之常用架构模式介绍(05-22)
- “开架式”软件架构设计(05-23)
- 基于DSP/BIOS的多信号并行处理软件架构设计(07-29)
- 基于DSP/BIOS的多信号并行处理软件架构设计(07-29)