叶杨婷, 雷海东
(江汉大学 物理与信息工程学院, 武汉 430056)
基于ZigBee的工业无线网关设计与应用
叶杨婷, 雷海东
(江汉大学 物理与信息工程学院, 武汉 430056)
针对目前工业现场采用有线组网方式进行数据通信时,布线困难、灵活性差等问题,提出了一种基于Profibus-DP现场总线与ZigBee技术的工业无线网关装置,该装置可实现工业现场总线网络与ZigBee无线传感器网络之间的协议转换。为提高网关的工作效率,采用双CPU的硬件结构,分别对Profibus-DP网络和ZigBee网络的数据进行控制和处理,并通过双口RAM连接,实现两种网络的数据交换和协议转换。描述了该网关的硬件组成、工作流程及数据交换过程,实验结果验证其可靠性高、实时性强,很好地实现了无线网络和有线工业网络技术的相互结合,具有广阔的应用前景。
Profibus-DP; ZigBee; 现场总线; 工业无线网关; 双CPU; 双口RAM
近年来,物联网技术快速发展,与此相关的无线传感器网络ZigBee技术也得到了飞速发展,ZigBee技术以其可靠性高、成本低、功耗低、布局灵活等众多优势,越来越受到工业通信领域的重视[1-2]。如果将ZigBee无线终端节点代替传统的传感器或执行器,接入现场总线网络组成可移动的混合网络,可以解决工业现场总线布线困难、灵活性差等问题。为了解决这种兼容性,研究现场总线与ZigBee无线传感器网络之间的协议转换是非常有必要的[3-5],因此,本文设计了一种基于Profibus-DP现场总线与ZigBee技术的双CPU工业无线网关装置,实验结果验证了该系统的可行性。
传统的单主站Profibus-DP系统由一个PC或PLC主站和若干DP从站组成,并通过有线方式连接,主站周期的读取从站发来的数据并周期发送数据给从站[6]。如图1所示,本系统用ZigBee节点代替传统的DP从站(如传感器或执行器),接入Profibus-DP现场总线网络。在这个系统里,Profibus-DP/ZigBee网关在Profibus-DP网络一侧作为DP从站,在ZigBee网络一侧作为协调器,网关可将ZigBee节点通过无线的方式接入Profibus-DP现场总线网络里,组成可移动的混合工业网络,从而实现Profibus-DP现场总线网络与ZigBee无线传感器网络之间的数据通信。
该网关由Profibus-DP、ZigBee通信模块和双口RAM组成,如图2所示,其工作原理是CPU1和CPU2微处理器并行工作,分别对Profibus-DP总线通信模块和ZigBee通信模块的数据进行控制与处理,并通过双口RAM连接,实现两种网络的数据交换和协议转换。采用双CPU的硬件结构,可以使两个CPU并行工作,互不干扰,既减轻了CPU的工作负担,也简化了软件编程的复杂程度,大大提高了系统的工作效率[7]。CPU1与CPU2微处理器选用高速度的SOC单片机C8051F021,这种单片机与标准的8051结构相比,指令执行速度要提高不少[8]。
图1 系统整体结构
图2 系统硬件框图
2.1 Profibus-DP通信模块
Profibus-DP通信模块由CPU1微处理器、SPC3协议芯片、光耦隔离芯片和RS-485驱动器组成[9]。这里定义ZigBee网络向Profibus-DP网络发送的数据为输入数据,Profibus-DP网络向ZigBee网络发送的数据为输出数据,因此,CPU1微处理的主要工作任务是通过SPC3协议芯片将输入数据发送给Profibus-DP主站,并通过双口RAM把输出数据发送给ZigBee通信模块。
2.2 ZigBee通信模块
ZigBee通信模块由CPU2微处理器、CC2530芯片及相关外围电路组成。CPU2微处理器通过UART串口与CC2530芯片连接,实现与ZigBee模块的通信。CC2530作为ZigBee无线传感器网络的协调器,负责组建和管理ZigBee网络,与ZigBee路由器节点或终端节点进行无线通信[10]。
2.3 双口RAM
双口RAM选用高速1 Kb×8双口静态RAM的IDT7130芯片,适用于两个CPU之间大量数据高速双向传送[11]。CPU1与CPU2微处理器通过各自的数据/地址总线及读写控制总线与双口RAM两端连接,实现两种网络的数据交换。双口RAM被划分为数据发送缓冲区和数据接收缓冲区,数据发送缓冲区存放的是Profibus-DP网络向ZigBee网络发送的数据,数据接收缓冲区存放的是ZigBee网络向Profibus-DP网络发送的数据。
参考传统的Profibus-DP系统的工作流程[12],设计了Profibus-DP主站、Profibus-DP/ZigBee网关和ZigBee节点三者之间的通信流程,系统从上电到进入正常数据交换工作状态的整个过程分为以下几个步骤,其工作流程如图3所示。
(1) 系统上电后,主站、网关和ZigBee节点分别进行初始化,网关的初始化主要包括两个微处理器的初始化、SPC3协议芯片的初始化和ZigBee协调器CC2530的初始化。
图3 系统工作流程
(2) ZigBee协调器建立网络并允许ZigBee节点加入网络后,协调器会根据网络拓扑结构为每一个ZigBee节点分配网络地址,ZigBee节点在被分配网络地址后将其发送给协调器,再通过串口发送给CPU2微处理器,这样就可以在CPU2微处理器内建立一张ZigBee节点网络地址和Profibus-DP设备地址相对应的地址映射表,当发生设备断电导致网络地址改变时,只需及时更新地址映射表就可以保证设备的正常通信。
(3) 网关成功与Profibus-DP主站连接后,等待主站对其进行参数设置、组态设置、新地址设置等。 SPC3协议芯片根据接受到的不同报文,通过中断方式通知CPU1微处理器进行以上事件处理,当这些工作全部完成后,主站就可以循环地与从站交换用户数据[13]。
(4) 进入数据交换阶段,Profibus-DP/ZigBee网关监听来自主站发送的数据,并对Profibus-DP数据帧进行分析并重新打包成符合ZigBee协议的数据包,通过查询ZigBee网络与Profibus-DP网络对应的地址映射表,发送给地址相对应的ZigBee节点;同时网关也监听ZigBee网络发送来的数据,并对ZigBee数据帧进行分析并重新打包成符合Profibus-DP协议的数据包,发送给主站,主站会根据接收到的数据包内容判断是哪个ZigBee节点发送来的数据。
使用双CPU结构的网关,Profibus-DP和ZigBee通信模块可以相互独立进行开发,从而使网关软件的复杂度大大降低。因此,网关的软件开发分为3部分:①CPU1控制Profibus-DP总线通信模块完成Profibus-DP网络的数据通信;②CPU2控制ZigBee通信模块完成ZigBee网络的数据通信;③CPU1与CPU2通过双口RAM连接,按照一定的数据通信规约,实现两种网络的数据交换和协议转换。
双口RAM一般通过硬件仲裁或中断仲裁方式来避免数据冒险问题[14],为了保证系统的实时性,本文采用双口RAM的中断仲裁方式来通知对方CPU进行数据交换,两个CPU微处理器各包含一个主程序和一个中断子程序,其软件流程如图4所示。
具体步骤是:
(1) 首先 CPU1与CPU2微处理器进入主程序,CPU1微处理器查询是否收到Profibus-DP主站发送来的数据,如果是,则将Profibus-DP数据帧放入双口RAM的发送缓冲区,并对双口RAM的右端中断信箱进行写操作,向CPU2微处理器发/INTR中断;同时CPU2微处理器查询是否收到ZigBee通信模块发送来的数据,如果收到数据,则查询ZigBee网络与Profibus-DP网络对应的地址映射表,并对ZigBee数据帧进行分析并重新打包成符合Profibus-DP协议的数据包,存入双口RAM的接收缓冲区。
(2) CPU2微处理器响应/INTR中断,进入CPU2中断程序,读出双口RAM发送缓冲区的Profibus-DP数据帧后,对Profibus-DP数据帧进行分析并重新打包成符合ZigBee协议的数据包,并查询Profibus-DP网络与ZigBee网络对应的地址映射表,发送给ZigBee网络里地址相对应的的ZigBee节点,最后对双口RAM的右端中断信箱进行读操作,清除中断。之后对双口RAM的左端中断信箱进行写操作,向CPU1微处理器发/INTL中断。
(3) CPU1微处理器响应/INTL中断,进入CPU1中断程序,读出双口RAM接收缓冲区内已经打包好的数据帧后,发送给Profibus-DP主站,最后对双口RAM的左端中断信箱进行读操作,清除中断。这样该系统就完成了一次完整的数据交换和协议转换过程,之后再进入下一轮的数据交换。
5.1 系统搭建
系统在学校实验室搭建,由Profibus-DP主站、Profibus-DP/ZigBee网关以及带有不同传感器的3个ZigBee终端节点组成。如图5所示,主站是插有CP5611网络接口卡的PC机,3个ZigBee终端节点分别连接温度、湿度和气体传感器,对实验室的温度、湿度及气体进行采集,再通过Profibus-DP/ZigBee网关将这些数据传送给主站,主站PC机通过STEP7软件对网关进行组态及数据监测。
图5 系统应用示意图
5.2 系统配置
为了方便主站对网关的通信接口配置,规定每个ZigBee终端节点的输入/输出数据的格式及长度完全相同,用户可根据自己的需求定义输入/输出数据的格式及长度。在这里根据实验需求定义每个ZigBee节点的数据长度为8 byte输入和2 byte输出,其组态数据为0x17和0x21。
输入数据是ZigBee节点发送给Profibus-DP主站的数据,数据包格式如表1所示,长度为8 byte。当ZigBee节点发送数据给网关时,实际上只发送7 byte(不包含Profibus-DP设备地址),网关在接收到ZigBee节点发送来的数据后,会根据地址映射表查询到相应的Profibus-DP设备地址,并插入第3 byte组成8 byte的数据包后再发送给Profibus-DP主站,这样主站就知道是哪个ZigBee节点发送的数据。
表1 输入数据包格式表
输出数据是Profibus-DP主站发送给ZigBee节点的数据,长度为2 byte,也就是主站发送命令给网关,需要读取哪个ZigBee节点的数据。定义第1个字节为Profibus-DP设备地址;第2个字节为传感器类型。当Profibus-DP主站发送命令给网关后,网关会根据地址映射表查询到相应的ZigBee网络地址,并把网络地址插入输出数据的头两个字节组成4 byte的数据包后发送给ZigBee协调器,协调器再根据网络地址发送数据给对应的ZigBee节点,这样主站就可以准确无误地发送命令给指定的ZigBee节点。
5.3 系统测试
编写Profibus-DP/ZigBee网关的GSD文件,在STEP7中安装网关的GSD文件。网关作为Profibus-DP网络的从站,设置网关从站地址为3,通信速率为9 600 bit/s,并为网关配置一个输入数据为8 byte、输出数据为2 byte的模块,其硬件配置如图6所示,最后通过编写数据读写程序观测数据收发是否准确。经测试,Profibus-DP/ZigBee网关能准确将主站发送的数据传送给ZigBee终端节点,也能将ZigBee终端节点采集的温度、湿度及气体参数传送给主站。
图6 系统硬件配置
本文设计了一种基于Profibus-DP现场总线与ZigBee技术的工业无线网关装置,实现了工业现场总线向无线工业网络的延伸,解决了工业现场总线布线困难、扩展性差等问题。系统采用双CPU的硬件结构,并通过双口RAM实现两个CPU的高速通信,有效解决了因Profibus-DP网络与ZigBee网络速率不匹配而产生数据丢失、通信中断等问题。随着物联网技术的发展和工业无线通信的需求,这种工业无线网关装置必将具有广阔的应用前景[15]。
[1] 王小强,欧阳骏,黄宁淋.Zigbee无线传感器网络设计与实现[M]. 北京:化学工业出版社,2012.
[2] 叶杨婷.基于ZigBee和GPRS的地铁环境监控系统设计[J].实验室研究与探索,2015,34(12):65-68.
[3] 张建奇,张墨翰,张建锋,等. Profibus总线的无线网关设计[J].自动化仪表,2013,34(4):55-58.
[4] 赵坚钧,白 焰,汪凤珠,等.化学水超滤系统中Zigbee无线网关设计[J]. 电站系统工程,2012,28(2):46-48.
[5] 刘 晖. 一种ZigBee到PROFIBUS-DP网关的实现[D].北京:冶金自动化研究设计院,2009.
[6] 梁 涛,杨 彬,岳大为. Profibus现场总线控制系统的设计与开发[M].北京:国防工业出版社,2013:22-23.
[7] 房立镇,程广河,王茂励,等. 双口RAM在CAN与PROFIBUS-DP网关中的应用研究[J].信息技术,2010,34(8):124-126.
[8] 张培任,孙 力. C8051f系列单片机原理与应用[M].北京:清华大学出版社,2013:22-25.
[9] 陈思敏,李 奎,王丽丽,等. 智能断路器接入Profibus总线系统的新方法[J]. 仪表技术与传感器,2014(10):28-30.
[10] 孙利民,李建中,陈 渝. 无线传感器网络[M].北京:清华大学出版社,2005.
[11] 方彦军,张大海. 一种CAN与PROFIBUS-DP总线网关的实现[J]. 武汉大学学报,2005,38(3):137-140.
[12] 黄郭华,崔跃芬. 现场总线PROFIBUS-DP主-从站技术在变频调速系统中的应用[J].实验室研究与探索,2015,34(9):136-140.
[13] 关新平,高洪昌,陈彩莲,等. PROFIBUS-DP工业现场总线与无线ZIGBEE间的协议转换装置和方法[P]. 中国专利:CN200910310893.9. 2010-06-02.
[14] 陈德明,熊列彬. 双口 RAM 在自动化系统中的应用[J].国外电子元器件,2005(4):20-22.
[15] 方原柏. 无线技术是RTU发展的方向之一[J].自动化博览,2014(9):78-80.
·名人名言·
我不知道世上的人对我怎样评价。我却这样认为:我好像是在海上玩耍,时而发现了一个光滑的石子儿,时而发现一个美丽的贝壳而为之高兴的孩子。尽管如此,那真理的海洋还神秘地展现在我们面前。
——牛顿
Design and Application of the Industrial Wireless Gateway Based on ZigBee
YEYangting,LEIHaidong
(Physics and Information Engineering Institute, Jianghan University, Wuhan 430056, China)
At present, the data communication in the industrial field uses wired network, and it has disadvantages of wiring difficulty and poor flexibility. Aiming at this situation, the industrial wireless gateway device based on Profibus-DP fieldbus and ZigBee technology is presented. The device can realize the protocol conversion between the industrial fieldbus network and ZigBee wireless sensor network. In order to improve the work efficiency of the gateway,the hardware structure based on dual CPU is adopted to control and process the data of Profibus-DP network and ZigBee network, respectively. The data exchange and protocol conversion between those two kinds of networks can be realized by using dual port RAM. The hardware of the gateway,the workflow and the data exchange process are described in detail. The experimental results verify the high reliability and real-time performance. It is very good to achieve the combination of wireless network and wired industry network technology,so it has broad application prospects.
Profibus-DP; ZigBee; fieldbus; industrial wireless gateway; dual CPU; dual port RAM
2016-07-18
叶杨婷(1983-),女,湖北武汉人,硕士,实验师,主要从事无线传感器网络和工业无线网络的相关研究工作。
Tel.:13871263803;E-mail:yeyangting@126.com
雷海东(1978-),男,广西桂林人,博士,副教授,信息与控制实验室主任,主要从事物联网、时间频率领域的相关研究工作。
E-mail:272434390@qq.com
TP 23
A
1006-7167(2017)03-0148-05