当前位置:首页 期刊杂志

基于Zig Bee的轨道列车模型系统的设计与实现

时间:2024-07-28

钱存元,孔博伟,吴雄文

(同济大学 铁道与城市轨道交通研究院,上海 201804)

0 引言

列车及其设备的庞大、昂贵,致使轨道列车信号系统与列车控制网络系统的实车验证成本高、难度大;而纯计算机仿真环境下的信号逻辑实验及验证的实践性低、直观性差。由此考虑搭建轨道列车网络模型,采用全仿真列车、轨道及信号设备,同时建立控制中心,通过网络通信,模拟轨道列车运行。由此建立的轨道列车模型系统具有体积小、成本低、可控性高、扩展性好、直观性强的特点,适合于轨道列车信号系统研发测试及逻辑验证。

1 模型系统设计

系统设计采用2辆1:40全仿真列车,40 m双环仿真轨道,2个道岔(包括转辙机)及4个信号灯设备。在各设备上嵌入无线控制芯片,自组织成网络,移植现有协议栈,通过建立应用支持子层,分离底层及应用层,提供对上接口。根据不同种类的轨道设备,建立有限状态机逻辑,编程嵌入节点。最终通过模型运转寻找轨道列车信号系统的逻辑问题。

考虑到无线通信可以降低线路排布复杂度,以及系统应具有容量扩展、自组网、抗干扰能力[1]和经济性,选择以低功耗、低速率、低成本为目标的ZigBee-IEEE 802.15.4[2]标准作为网络协议,并采用TI公司的CC2530片上系统为硬件核心,移植符合ZigBee 2007 Pro规范、支持1 000个以上节点的Z-Stack协议栈为软件核心,建立仿真系统。

2 硬件电路设计

2.1 芯片组合选择

采用ZigBee技术搭建网络,必要硬件包括无线收发模块以及微处理器。无线收发模块和微处理器可为分立芯片,如Freescale公司的ZigBee无线收发器MC13193配合MCF523x系列的32位微处理器;或使用单芯片方案,即无线收发模块和微处理器在同一芯片中集成,如TI公司的CC2430芯片等。

分立方式操作灵活,收发模块、微处理器性能可根据课题需求进行选择,但开发难度较单芯片大。单芯片方式集成度高、成本低廉,有数个可选级别,在空间局限板路中布置方便,但对于特殊要求微处理器与收发器方法有限。

业界有多种单芯片解决方案[3],如Freescale公司的MC13214、TI公司的CC2530[4]。考虑到CC2530集成的增强型8051内核易于开发,性能与容量符合应用要求,最终选择CC2530芯片。

图1 节点电路

2.2 电路设计

节点电路以CC2530芯片为核心。根据Datasheet以及经验设计天线[5]、晶振、接地和复位电路构成最小系统,如图1所示。

主节点电路增加RS232串口电路与电脑通信;增加12864液晶显示屏,通过74HC595串口转并口芯片通信,提高IO复用率;增加按键,利用分压电路使4个按键并入同个IO,根据电压采样获得按键输入。

3 软件设计

3.1 协议栈层结构

ZigBee协议栈体系结构基于标准开放式系统互连(Open System Interconnect,OSI)七层协议模型,如图2所示。

图2 ZigBee分层结构

协议栈有两个物理层,它操作于两个分离的频率范围:900 MHz和2.4 GHz。低频率主要用于欧美大陆,高频率全球通用,本文使用2.4 GHz频率段。物理层采用16个信道、伪噪声PN序列 (Pseudo-noise Sequence)扩频以及O-QPSK编码方式,以避免同频干扰[1]。

MAC层信道时间控制使用超帧方式,竞争接入信道使用的是载波侦听多点接入/避免冲撞 (Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)方式。

网络层完成网络建立、加入和离开,使用AODV[6]等路由算法发现、选择和维护网络。

应用支持子层(Application Support Sublayer,APS)用于维护和建立绑定表。

设备对象层 (ZigBee Device Object,ZDO)层 用于 定义设备在网络中的角色,发起或响应绑定请求。

应用层是本文功能逻辑实现的具体位置。

Z-Stack协议栈是ZigBee协议标准的一个实体,符合上述层结构。

3.2 操作系统流程

各节点栈分层任务通过OSAL(OperatingSystem Abstraction Layer)操作系统实现。

OSAL操作系统具有任务优先权,每层任务在执行完成后回到循环原点。以应用层为例,如果链路层与应用层任务同时激活,先执行链路层任务,任务结束后,系统回到循环原点。如果这时链路层又有任务被激活,那么应用层的任务将再次得不到执行,只有当所有较低层的任务全部执行完成后,才会执行应用层任务。

这样构建系统的原因在于底层任务需要维持网络运行以及设备实际操作,并保证操作的实时性。应用层在处理完应用请求后,一般也是把消息传递给底层,使底层实际完成应用层的请求。实际系统处理速度快,较少遇到底层任务繁多迫使高层无法运行的情况。

3.3 控制中心状态机

图3所示为控制中心应用层有限状态机模型,其主要功能是建立和维护网络。

图3 控制中心状态机

首先建立网络,完成后,控制中心即允许列车节点加入网络,实时接收、定时显示列车信息(包括车号、车速以及目标车速)。

控制中心能要求列车以给定的速度运行。列车的速度控制作为非周期操作,使用键盘的中断方式输入。

列车信息是周期数据,10 Hz的信息频率使用接收中断激活任务。若网络的信息显示频率过高,将导致CPU的大部分时间都在等待LED控制芯片的应答,从而降低系统工作效率,因此根据人的大脑一般条件反应时间为0.1~0.5 s以及复杂选择性反应时间为1~3 s,设定控制中心信息显示周期为1 s。

为节省通信带宽,列车反馈信息不含列车目标车速。目标车速在每次控制中心发送控制命令时被截获,直到下一次控制中心再次发送控制命令,信息才会被修改。

3.4 列车状态机

图4所示为列车节点应用层有限状态机模型,列车的主要功能是加入网络、控制电机、反馈并显示列车信息、实时接收控制命令。

图4 列车状态机

列车在初始化阶段扫描信道中的协调器信标,一旦发现协调器(即控制中心),就向控制中心发出请求加入网络帧。加入网络后,定时接收网络中的信标帧,一旦失联,就向上报错处理。

“接收控制”、“信息反馈”、“电机控制”和 “显示信息”具有不同优先级。

“电机控制”优先级最高,是设计的服务目标。采用后台的PWM波输出,定时改变PWM输出值,只要间隔够短,离散控制将接近实时控制,其影响系数将通过数字PID控制给出。实践中,单核多任务系统通过心跳保证实时性在可控范围内,OSAL最小心跳为1 ms,采用控制频率为100 Hz。

“接收控制”优先级次之,是完成“电机控制”的依据。由于不可预测,用中断的方式较好。中断处理函数应尽量短,不增加系统的响应延时。这里只执行保存控制命令一条语句。

“信息反馈”具有次一等优先级,它是控制中心掌控列车信息的依据。根据人的反应速度,选择反馈信息频率为5 Hz。

“显示信息”优先级最低,列车上的信息显示为调试接口,设置显示周期为5 s。

4 实验过程与结果

移植Z-Stack协议栈,在应用支持子层建立应用号、簇号以及绑定表,注册任务信息。根据控制中心及列车节点有限状态机,编写应用层程序。通过控制中心按键改变列车车速,实时观察各列车信息。实验过程如图5所示。

实验结果显示,网络具有自组网、掉线重入网能力,控制中心可以控制列车节点速度并实时显示列车节点当前速度。控制节点实时列车信息如图6所示。

图5 实验过程

图6 控制节点实时列车信息显示

5 结论

本文介绍了以CC2530为硬件核心,以Z-Stack协议栈为软件核心,基于ZigBee无线技术的列车模型软硬件设计方法,并且在一个控制中心、两个列车节点环境下完成了通信控制过程。该方法为轨道列车信号系统与列车控制网络系统的实车设计与逻辑验证提供了直观可行的半实物仿真环境。

[1]SALLABI F M,GAOUDA A M,EL-HAG A H,et al.Evaluation of ZigBee wireless sensor networks under high power disturbances[J].IEEE Transactions on Power Delivery,2014,29(1):13-20.

[2]汤镇辉,张正明.基于CC2530的ZigBee无线路灯节能智能监控系统[J].微型机与应用,2011,30(19):81-83.

[3]周怡,凌志浩.ZigBee无线通信技术及其应用探讨[J].自动化仪表,2005,26(6):5-9.

[4]黄新波,罗兵,刘存孝,等.采用ZigBee芯片的无线加速度传感器网络节点的实现[J].高电压技术,2010,36(8):1962-1969.

[5]李俊斌,胡永忠.基于CC2530的ZigBee通信网络的应用设计[J].电子设计工程,2011,19(16):108-111.

[6]KIM T H,KIM S H,YANG J Y,et al.Neighbor table based shortcut tree routing in ZigBee wireless networks[J].IEEETransactionsonParallelandDistributedSystems,2014,25(3):706-716.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!