基于ZigBee网络的公交电子站牌及监控系统.docx
- 文档编号:8853965
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:46
- 大小:2.09MB
基于ZigBee网络的公交电子站牌及监控系统.docx
《基于ZigBee网络的公交电子站牌及监控系统.docx》由会员分享,可在线阅读,更多相关《基于ZigBee网络的公交电子站牌及监控系统.docx(46页珍藏版)》请在冰豆网上搜索。
基于ZigBee网络的公交电子站牌及监控系统
基于ZigBee网络的公交电子站牌及监控系统
摘要
公共交通具有个体交通无法比拟的强大优势,优先发展城市公共交通系统是解决大、中城市交通问题的最佳途径。
近年来,城市公交系统的智能化已成为公共交通研究领域的主要方向,针对唐山城市公交站牌间距较短的特点,在现有的智能公交系统方案中引入ZigBee短距离无线通信技术,这样将使乘客通过电子站牌就可以随时了解自己想要乘坐公交车的具体运行位置,减少了候车时的被动性,方便了市民的出行。
本文设计了一个基于ZigBee网络的公交电子站牌及监控系统,该系统是以公交站牌为协调器,以公交车为终端形成的ZigBee网络,公交车每到一个公交站牌,就将自己的车辆信息发送给公交站牌,此时公交站牌模块为ZigBee网络中的协调器,其完美支持Modbus协议,每当上位机轮询的时候,将收到的车辆信息通过Wifi发送到上位机,经过系统分析,再通过Wifi将车辆到站信息发回到公交站牌,由公交站牌的电子屏幕进行显示,实时告诉人们公交车的位置。
关键词:
ZigBee;公交电子站牌;Z-Stack;Modbus协议;力控组态软件
目次
摘要I
目次1
第一章绪论2
1.1背景介绍2
1.2公交智能化国内外研究现状3
1.2.1国外智能公交系统研究现状3
1.2.2国内智能公交系统研究现状4
1.3基于ZigBee网络的公交电子站牌及监控系统5
第二章相关知识概述7
2.1ZigBee协议介绍7
2.1.1ZigBee协议体系结构7
2.1.2ZigBee网络拓扑结构9
2.2Z-Stack协议栈介绍9
2.2.1地址定义10
2.2.2网络地址分配10
2.2.3寻址11
2.2.4ZigBee术语14
2.3Wifi介绍16
2.3.1Wifi定义16
2.3.2Wifi的特点16
2.3.3Wifi在本系统中的应用16
2.4Modbus协议介绍16
2.5力控组态软件介绍19
第三章系统总体方案设计20
3.1系统实现原理20
3.2系统需要实现的功能21
3.3系统设计方案21
第四章系统的硬件设计22
4.1硬件设计22
4.1.1CC2530射频收发模块22
4.1.2实验室现有的硬件介绍24
4.1.3Wifi模块26
第五章软件设计27
5.1ZigBee模块的软件设计27
5.1.1主协调器的设计27
5.2Modbus协议软件设计33
5.2.2Modbus函数部分34
5.3终端节点的设计42
5.4三维力控组态软件47
第六章系统测试53
6.1系统测试53
第七章总结54
7.1设计过程中遇到的问题54
7.2结论54
第一章绪论
1.1背景介绍
城市公共交通是与人民群众生产生活息息相关的重要基础设施。
但是我国的城市公交系统的智能化发展处于一个落后的水平,广大乘客可以获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。
我国智能公交系统的现状特点如下:
1)乘客可以获得的公交信息很少,而且方式主要是常规手段。
我国乘客一般获得公交信息的方式局限于电话,交通图,向熟人问讯等常规方式。
乘客可以获得的公交信息很少,除去线路,站点等基本信息以外,有关班次,车辆到离站时间的信息基本上没有。
2)乘客出行中获得信息困难,基本上没有实时信息。
除去在杭州,上海等少数几个城市,乘客可以通过分布于城市中的若干电子站牌获得一些公交车辆的运营信息以外,在其它城市“出行中”的乘客无法获得任何实时信息。
在我国一些城市中,有不少装饰华美的公交站台,但在这些站台上却找不到实用的城市交通图。
总而言之,我国乘客在出行中无论是“静态线路信息”还是“动态实时信息”都很难获得。
3)缺乏专门的交通信息发布管理机构,乘客获得的信息准确性得不到保证。
目前,我国大多数城市对于交通信息的发布没有专门的管理机构和规章制度。
在城市交通信息服务需求小的情况下尚可应付。
但随着城市交通信息服务需求的增长,从事交通信息服务的人员和企业数量的增加,需要有专门的管理机构和制度。
当前的城市交通信息服务存在着混乱和低效的问题,有些甚至是对乘客的误导。
4)我国公交信息系统与网络的结合还是低层次的。
在我国一些城市出现了基于网络的公交信息服务系统(例如中国公交查询网,它可提供全国大约七十多个城市的公交系统信息查询),但总体上还是处于一个较低的层次。
这些信息系统还处于一种静态的公交信息查询系统,还不能作到为乘客的出行自动的生成出行计划或方案。
由上所述,我国公交系统的智能化信息系统总体上处于较低水平。
较低的发展水平既是发展的困难,也是发展的机遇。
我们应将发展智能公交系统作为一个提高公交效率,增强公交吸引力的重要手段。
1.2公交智能化国内外研究现状
1.2.1国外智能公交系统研究现状
国外在公交智能化方面的研究要追溯到上个世纪六七十年代,由于第三次科学技术革命的带动,在一些发达国家,特别是美国、日本以及欧洲的部分国家,居民汽车的拥有量飞速增长,伴随着城市交通状况不断的恶化,许多国家将交通运输发展的重点放在了公共交通行业,为了吸引居民乘坐公交出行,许多国家大力的提高城市公交的运营服务水平,因此,先进的技术和设备被应用到公交领域中,公交智能化方面的研究也就因此开始。
在公交智能化方面的研究中,日本的起步较早,日本对于公交智能化的研究起始于20世纪的70年代,日本在70年代研制出了公共汽车定位系统,这一系统的问世标志着日本公交智能化研究的正式起步。
该系统安装在公交车上,能够在公交车运行到达调度站的前一站时,通过无线通讯,将车辆信息传回监控站,这是智能化公交系统的雏形;这一系统的研制,使得公共交通监控管理进入了智能化的管理时代。
随后,在20世纪80年代,日本在公交智能化方面的研究取得了进一步的研究成果,一种叫做乘客自动计数器的设备被安装在了城市公交车上面,这一设备的主体功能是记录公交车上下车的客流量,公交管理部门通过这一设备能够实时的掌握公交站点的客流情况,通过对公交站点客流的分析,能够为公交企业制定监控计划提供决策支持。
到了20世纪的90年代,由于日本城市交通拥堵十分的严重,公交的运营服务水平急剧下降,为了扭转公交行业竞争力日渐下降的趋势,重新赢得乘客对于公交的信息,日本的东京都交通规划院开发设计了一套城市公交车综合运输控制系统,这就是人们耳熟能详的CTCS系统,该系统的问世,大大的改善了日本公交运营的面貌,日本原本日渐萎缩的公交行业又重新焕发了生机。
美国从事公交智能化方面的研究相对日本较晚,美国从事智能公交方面的研究起源于20世纪80年代美国城市公共交通管理局(UTMS)启动的智能公共交通系统的项目,UTMS基于现场试验得出了通过实时智能化的公共交通系统能够很好的改善城市的交通状况。
基于此,美国开始从事智能化公共交通系统的研究,美国在公共交通系统的研究方面主要侧重于对出行者信息,电子收费,车队管理以及交通需求管理等方面的研究,其中车队管理方面,主要研究以下几个方面:
GIS系统、乘客自动计数系统、通信系统以及自动车辆定位系统等。
欧洲国家开始从事智能公交方面的研究可追溯到20世纪的80年代,欧洲由于其历史原因,大部分国家的城市的历史比较悠久,城市街道普遍比较狭窄,所以,欧洲国家在从事公交方面的研究中结合了本地区道路比较狭窄的特点,将公交发展的方向放在了建设公交专用道和公交信号优先上,并已经取得了许多研究成果。
1.2.2国内智能公交系统研究现状
与国外发达国家相比,我国从事公交智能化方面的研究相对较晚,城市公共交通运营方面发展一直比较落后,公交车在城市交通运输中的重要作用一直没有被政府给予充分的重视。
截止到1990年,我国公交车的保有量仅仅为13万辆,到2011年,统计数据显示我国的公交车保有量为45万辆,由此看出公交车在城市交通方面的作用越来越大。
另外,与国外发达国家相比,我国在管理水平上面也存在着很大的差距,但随着近几年城市交通问题的逐渐恶化,交通拥挤、堵塞问题的持续增加,政府加大了对公交运营方面的投入力度,在许多城市对公交车辆进行了更新,增加了公交企业的补贴,鼓励公交的发展,在理论研究方面,国内的许多学者也开始对公交监控问题进行大量的研究,其中比较有代表性的人物有吉林大学的杨兆升、北京航空航空航天大学的张飞舟等学者。
通过国内这些学者的研究开发,我国在公交智能化方面的研究已经初见端倪。
在一些大城市里已经开始应用智能化的公交系统。
在上海,先进的UNGEL自动检票机已被成功安装在了线路上,该系统能够实现自动记录地铁线路上面的乘客上下车流量。
在杭州、大连、北京等一些大城市,一些先进的车辆定位系统和车载设备被安装在了移动的公交车辆上面,并且电子站牌也被安装在了公交站点,这些城市的部分线路已经实现了对公交车辆的跟踪定位,极大的提高了公交运营的效率。
从而吸引了更多出行者选择公交车作为出行的工具.
1.3基于ZigBee网络的公交电子站牌及监控系统
传统的公交车系统使得乘客在等车时存在盲目性,不能准确预知公交车何时到站,可能会因此浪费不少时间,给等车的乘客带来很多不便,本论文介绍基于ZigBee网络的公交电子站牌及监控系统,打破传统的站牌模式,结合ZigBee技术,实现电子站牌的可视化,使乘客方便,明了的知道要等的公交车的位置,具体还差几站地,变传统的被动等车为现在的智能候车,此外结合Wifi技术,odbus协议和力控组态软件,可以轻松的实现一个低功耗,成本低,时延短,网络容量大,可靠、安全的系统.
由于唐山市电子站牌间距大多在500米左右,监控中心没有必要对公交车进行实时全范围的监控,而只需知道公交车的站牌区间范围便可大致定位,我们采用ZigBee技术来进行公交车的监控。
ZigBee是一种短距离双向无线通讯技术,相比于之前的基于GPRS服务的公交电子站牌系统的优越性还是非常明显的,比如ZigBee系统通信不受制于第三方通信网络通讯商的情况。
虽然通讯商在安装SIM模块时会对政府部门适当打折,但是以每月60元/车(国内某地区GPRS包月费用),每月200元/电子站牌,一个布置了200个电子站牌和2000辆公交车的电子站牌系统每年需要向中国移动、中国联通等第三方通讯商缴纳约192万元的通信费用。
此外ZigBee有着低功耗的通信通信特点,这是因为ZigBee的传输速率很低,只有250kbps,发射功率仅为0dbm,而且可以进入低功耗的休眠模式。
ZigBee设备仅靠两节5号电池就可以维持长达一年甚至更长时间,这是它相比与其他设备的优势所在。
此外ZigBee网络容量很大,根据ZigBee协议的16位短地址定义,一个ZigBee网络最多可以容纳65535个节点,而且还可以通过64位的IEEE地址进行扩展。
种种优势成就了ZigBee在公交电子站牌系统上的应用。
第二章相关知识概述
2.1ZigBee协议介绍
2.1.1ZigBee协议体系结构
ZigBee协议栈建立在IEEE802.154的PHY层和MAC子层规范之上。
它实现了网络层(NWK)和应用层(APL)。
在应用层内提供了应用支持子层(APS)和ZigBee设备对象(ZDO)。
应用框架中则加入了用户自定义的应用对象。
ZigBee的体系结构由称为层的各模块组成。
每一层为其上层提供特定的服务:
即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。
ZigBee协议的体系结构如图2-1所示:
图2-1ZigBee协议的体系结构
1)物理层(PHY)
物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。
2)介质接入控制子层(MAC)
MAC层负责处理所有的物理无线信道访问,并产生网络信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。
3)网络层(NWK)
ZigBee协议栈的核心部分在网络层。
网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。
4)应用层(APL)
ZigBee应用层框架包括应用支持层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。
应用支持层的功能包括:
维持绑定表、在绑定的设备之间传送消息。
ZigBee设备对象的功能包括:
定义设备在网络中的角色(如ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。
ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。
5)应用程序框架(AF):
运行在ZigBee协议栈上的应用程序实际上就是厂商自定义的应用对象,并且遵循规范(profile)运行在端点1~240上。
在ZigBee应用中,提供2种标准服务类型:
键值对(KVP)或报文(MSG)
6)ZigBee设备对象(ZDO):
ZigBee设备对象(ZDO)的功能包括负责定义网络中设备的角色,如:
协调器或者终端设备。
还包括对绑定请求的初始化或者响应,在网络设备之间建立安全联系等。
实现这些功能,ZDO使用APS层的APSDE-SAP和网络层的NLME-SAP。
ZDO是特殊的应用对象,它在端点(entire)0上实现。
远程设备通过ZDO请求描述符信息,接收到这些请求时,ZDO会调用配置对象获取相应描述符值。
2.1.2ZigBee网络拓扑结构
ZigBee网络支持星状、树状和网状三种网络拓扑结构,如图2-2所示,分别依次是星状网络,树(簇)状网络和网状网络。
图2-2ZigBee网络拓扑结构
1)星状网络由一个PAN协调器和多个终端设备组成,只存在PAN协调器与终端的通讯,终端设备间的通讯都需通过PAN协调器的转发。
2)树状网络由一个协调器和一个或多个星状结构连接而成,设备除了能与自己的父节点或子节点进行点对点直接通讯外,其他只能通过树状路由完成消息传输。
3)网状网络是树状网络基础上实现的,与树状网络不同的是,它允许网络中所有具有路由功能的节点直接互连,由路由器中的路由表实现消息的网状路由。
该拓扑的优点是减少了消息延时,增强了可靠性,缺点是需要更多的存储空间开销。
2.2Z-Stack协议栈介绍
因为我们是用的奥尔斯公司的套件,芯片是CC2530,所以我们再此只介绍ZigBee2007/PRO无线传感器网络,ZigBee2007/PRO无线传感器网络与ZigBee2006无线传感器网络相比,最大区别在于其支持最新ZigBee2007/PRO网络,提供更多更精确传感器(如增加高精度温湿度数字传感器等),提供更多可扩展接口,提供更大网络支持,速度更快/处理能力更强低功耗微控制器等。
ZStack-CC2530-2.3.1-1.4.0软件全面支持ZigBee与ZigBeePRO特性集并符合最新智能能源规范,非常适用于高级电表架构(AMI)。
功能强大,协议栈底层已实现,对于简单的应用,开发者只需要在应用层开发即可。
下面对Z.Stack的功能进行介绍。
2.2.1地址定义
ZigBee设备有两种类型的地址。
一种是64位IEEE地址,即MAC地址,另一种是16位网络地址。
64位地址是全球唯一的地址,设备将在它的生命周期中一直拥有它。
它通常由制造商或者被安装时设置。
这些地址由IEEE来维护和分配。
16位网络地址是当设备加入网络后分配的。
它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
其中,协调器的网络地址为0x00。
#defineNWK_PAN_COORD_ADDR0x0000;
2.2.2网络地址分配
ZigBee2007/PRO使用的随机地址分配机制,对新加入的节点使用随机地址分配,为保证网络内地址分配不重复,使用其余的随机地址再进行分配。
当一个节点加入时,将接收到父节点的随机分配地址,然后产生“设备声明”(包含分配到的网络地址和IEEE地址)发送至网络中的其余节点。
如果另一个节点有着同样的网络地址,则通过路由器广播“网络状态-地址冲突”至网络中的所有节点。
所有发生网络地址冲突的节点更改自己的网络地址,然后再发起“设备声明”检测新的网络地址是否冲突。
终端设备不会广播“地址冲突”,他们的父节点会帮助完成。
如果一个终端设备发生了“地址冲突”,他们的父节点发送“重新加入”消息至终端设备,并要求他们更改网络地址。
然后,终端设备再发起“设备声明”检测新的网络地址是否冲突。
当接收到“设备声明”后,关联表和绑定表将被更新使用新的网络地址,但是路由表不会被更新。
在每个路由加入网络之前,寻址方案需要知道和配置一些参数。
这些参数是MAX_DEPTH(最大网络深度)、MAX_ROUTERS(最多路由数)和MAX_CHILDREN(最多子节点数)。
这些参数是栈配置的一部分,ZigBee2007协议栈已经规定了这些参数的值:
#if(STACK_PROFILE_ID==ZIGBEEPRO_PROFILE)
#defineMAX_NODE_DEPTH20
#elif(STACK_PROFILE_ID==HOME_CONTROLS)
#defineMAX_NODE_DEPTH5
#elif(STACK_PROFILE_ID==GENERIC_STAR)
#defineMAX_NODE_DEPTH5
#elif(STACK_PROFILE_ID==NETWORK_SPECIFIC)
#defineMAX_NODE_DEPTH5
#endif
#defineNWK_MAX_ROUTERS6
#defineNWK_MAX_DEVICES21
MAX_DEPTH决定了网络的最大深度。
协调器(Coordinator)位于深度0,它的儿子位于深度1,他的儿子的的儿子位于深度2,以此类推。
MAX_DEPTH参数限制了网络在物理上的长度。
MAX_CHILDREN决定了一个路由(Router)或者一个协调器节点可以处理的儿子节点的最大个数。
MAX_ROUTER决定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。
这个参数是MAX_CHILDREN的一个子集,终端节点使用(MAX_CHILDREN–MAX_ROUTER)剩下的地址空间。
2.2.3寻址
为了向一个在ZigBee网络中的设备发送数据,应用程序通常使用AF_DataRequest()函数。
数据包将要发送给一个afAddrType_t(在ZComDef.h中定义)类型的目标设备。
typedefstruct
{
union
{
uint16shortAddr;
ZLongAddr_textAddr;
}addr;
afAddrMode_taddrMode;
byteendPoint;
uint16PANID;//usedfortheINTER_PANfeature
}afAddrType_t;
注意,除了网路地址之外,还要指定地址模式参数。
目的地址模式可以设置为以下几个值:
typedefenum
{
afAddrNotPresent=AddrNotPresent,
afAddr16Bit=Addr16Bit,
afAddr64Bit=Addr64Bit,
afAddrGroup=AddrGroup,
afAddrBroadcast=AddrBroadcast
}afAddrMode_t;
因为在ZigBee中,数据包可以单点传送(unicast),多点传送(multicast)或者广播传送,所以必须有地址模式参数。
一个单点传送数据包只发送给一个设备,多点传送数据包则要传送给一组设备,而广播数据包则要发送给整个网络的所有节点,这个将在下面详细解释。
1)单点传送(Unicast)
Unicast是标准寻址模式,它将数据包发送给一个已经知道网络地址的网络设备。
将afAddrMode设置为Addr16Bit并且在数据包中携带目标设备地址。
2)间接传送(Indirect)
当应用程序不知道数据包的目标设备在哪里的时候使用的模式。
将模式设置为AddrNotPresent并且目标地址没有指定。
取代它的是从发送设备的栈的绑定表中查找目标设备。
这种特点称之为源绑定。
当数据向下发送到达栈中,从绑定表中查找并且使用该目标地址。
这样,数据包将被处理成为一个标准的单点传送数据包。
如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。
上一个版本的ZigBee(ZigBee2004),有一个选项可以讲绑定表保存在协调器(Coordinator)当中。
发送设备将数据包发送给协调器,协调器查找它栈中的绑定表,然后将数据发送给最终的目标设备。
这个附加的特性叫做协调器绑定(CoordinatorBinding)。
3)广播传送(broadcast)
当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式。
地址模式设置为AddrBroadcast。
目标地址可以设置为下面广播地址的一种:
NWK_BROADCAST_SHORTADDR_DEVALL(0xFFFF)——数据包将被传送到网络上的所有设备,包括睡眠中的设备。
对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时(NWK_INDIRECT_MSG_TIMEOUT在f8wConifg.cfg中)。
NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)——数据包将被传送到网络上的所有在空闲时打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。
NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)——数据包发送给所有的路由器,包括协调器。
4)组寻址(GroupAddressing)
当应用程序需要将数据包发送给网络上的一组设备时,使用该模式。
地址模式设置为afAddrGroup并且addr.shortAddr设置为组ID。
在使用这个功能呢之前,必须在网络中定义组。
(参见Z-stackAPI文档中的aps_AddGroup()函数)。
注意组可以用来关联间接寻址。
再绑定表中找到的目标地址可能是是单点传送或者是一个组地址。
另外,广播发送可以看做是一个组寻址的特例。
下面的代码是一个设备怎样加入到一个ID为1的组当中:
aps_Group_tgroup;
//Assignyourselftogroup1
group.ID=0x0001;
group.name[0]=0;//Thiscouldbeahumanreadablestring
aps_AddGroup(SAMPLEAPP_ENDPOINT,&group);
2.2.4ZigBee术语
1)属性
属性Attribute是一个反映物理数量或状态的数据值,比如开关值(On/Off),温度值、百分比等。
2)群集
群集Cluster是包含一个或多个属性(attribute)的群组。
简单的说,群集就是属性的集合。
每个群集都被分配一个唯一的群集ID且每个群集最多有65536
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ZigBee 网络 公交 电子 站牌 监控 系统