基于ZigBee技术的计量数据采集系统在食品溯源监管中的应用
2019-04-25陈亚阳
陈亚阳
(龙海市质量计量检验检测所,福建 漳州 363100)
当前,食品企业对内部生产销售原始记录大多采用书面形式,造成人工成本增加,影响数据的及时性和客观性,给食品安全监管的科学性和高效性造成一定的影响。基于ZigBee技术的计量数据采集是充分结合食品企业生产销售各个环节中原始记录的核心点——计量,通过ZigBee技术,把各个计量关键点无线联接起来,建立由传感器采集终端、路由器端、协调器端以及PC端组成的计量数据采集系统,形成企业台帐自动记录。
1 ZigBee技术
1.1 ZigBee协议
ZigBee与Bluetooth、Wi-Fi、IrDA等都是目前比较常见的短距离传输的无线网络协议,相比于其他短线网络,ZigBee具有低速率、低功耗、低成本、易架设的特点,支持主从模式和点对点模式,支持大量节点和多种网络拓扑,同时支持2.4GHz、915MHz、868MHz频段,传输可靠性高,广泛应用于物联网及智能家居等领域。
ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中PHY和MAC遵循IEEE 802.15.4标准的规定,在此基础上,ZigBee联盟定义了网络层 (NWK)和应用层(APL),如图1所示。
图1 IEEE与ZigBee Alliance分工
ZigBee网络中设备可定义三种角色,即协调器(ZC)、路由器(ZR)和终端节点(ZED),其中,ZC负责发起并维护一个无线网络,识别网络中的设备加入网络;ZR支撑网络链路结构,完成数据包的转发;ZED节点是网络的感知者和执行者,负责数据采集和可执行的网络动作。
1.2 ZigBee模块
根据ZigBee协议以及适用特性,各大厂家纷纷开发了ZigBee芯片,并围绕该芯片技术推出了适用各种端口的外围电路,即为“ZigBee模块”,主要由微控制器模块、存储器、无线收发模块、电源模块和其它外设功能模块组成。文中采用的ZigBee模块是由TI公司生产的CC2530F256。
2 ZigBee计量数据采集系统设计
2.1 计量数据采集系统框架设计及工作原理
2.1.1 计量数据采集系统框架设计
基于ZigBee技术的计量数据采集系统,如图2所示,由硬件和软件组成。硬件包括:电子秤4台、CC2530模块6块、PC主机1台;软件包括:IAR编译软件、仿真器SmartRF04EB(或CC Debugger)、数据采集开发软件LabWindows/CVI(或Visual C++)、SSCOM3.2串口调试软件、串口驱动程序。
图2 基于ZigBee技术的计量数据采集系统
2.1.2 工作原理
把CC2530模块安装在需要的位置后,用IAR软件编译程序,分别定义协调器(ZC)、路由器(ZR)和终端节点(ZED)三个角色,并通过仿真器SmartRF04EB(或CC Debugger)烧写到CC2530模块上,ZED与计量器具接连后,对计量称重实时数据以无线传输模式中转至ZR(如果距离不大,不需要设置),由ZR无线传输给ZC,ZC与PC以RS232连接方式进行数据通信,在上位机的软件上(通过LabWindows/CVI或Visual C++开发)进行数据汇集归纳分析,形成进料、配料、投料及出料等环节的电子台帐。
2.2 ZigBee硬件架设
2.2.1 网络节点电路模块设计
2.2.1.1 终端节点与传感器的电路连接
电子秤称重模板一般采用HX711模块。在连接时,HX711称重传感器对应CC2530开发板的电路接口为:VOC接 3.3V,SCK接P0.6,DT接P0.6,GND接 GND。
2.2.1.2 协调器节点与PC的电路连接
CC2530协调器有两个串行通信接口USART0和USART1,为TTL电平,而PC机的串行通信接口是RS-232电平接口,两者的电气规范不一致,需要借助接口芯片进行电平转换,然后实现两者之间的数据通信。现在大部分PC机与外部数据对接时都采用USB接口,因此,可以选用C8051F320单片机作为USB的控制芯片,其结构图如图3所示。
图3 USB接口与PC机对接
2.3 软件设计与使用
2.3.1 软件安装
安 装 IAR7.60、LabWindows/CVI或 Visual C++、SmartRF Flash Programme及串口调试助手软件以及SmartRF04EB(或CC Debugger)仿真器驱动程序和USB转串口驱动程序。
2.3.2 网络节点角色定义
从IAR软件中打开工程SampleApp.eww,在Workspace下拉框中选择不同的角色。
(1)编译协调器节点
连接第一个CC2530模块。在 Workspace 下拉框中选择“CoordinatorEB”,在工程名上点右键,选择”Rebuild All”(第一次一定要用“Rebuild All”,后面再修改代码只用“Make”即可),编译正确后下载到CC2530协调器节点上。
(2)编译终端节点
连接第二个CC2530模块。在Workspace下拉框中选择“EndDeviceEB”,方法如上。编译正确后,作为终端节点下载到该板上。
(3)编译路由器节点
连接第三个CC2530模块。在Workspace下拉框中选择“RouterEB-Pro”,方法同上。
2.3.3 数据采集软件开发
2.3.3.1 LabWindows/CVI简介
LabWindows/CVI软件在编写规范上基本与C语言一致,其工程文件格式为(*.prj),包含了源程序文件(*.c)、文件头(*.h)和用户界面文件(*.uir)。
2.3.3.2 LabWindows/CVI开发步骤
(1)确定数据采集框架。包括人机界面、软件框架和面板中控件的回调函数等。
(2)设计人机界面。在编辑窗口设计人机界面,包括控件的选择及放置、回调函数的设置等。
(3)编写程序的源代码。在人机界面编辑完成后,点击菜单下的代码,生成全部代码,程序会自动生成软件的主程序和回调函数的整体框架,设计人员只需向其中添加相应的代码即可。
(4)软件的调试运行。完成代码的编写后,点击菜单栏运行下的调试选项或者直接点击调试快捷键,对编写的软件进行调试修改。
2.4 数据采集系统组网测试
2.4.1 测试工具
SSCOM3.2串口调试软件。
2.4.2 对协调器、路由器进行串口测试
通过SSCOM3.2串口调试软件对协调器进行串口测试。在SSCOM3.2软件中选择相应的端口COM1,并设置参数,波特率为38400,数据位为8,停止位为1,奇偶校验方式为None,数据流控制方式为None。若在软件前两行中出现Starting ZPS和Stack started,则说明协议栈初始化成功。
对路由器串口调试方法同上。路由器搜寻网络成功时,会显示:Scan Channel:15 Channel Mask:00008000 与 Node rejoined network with Addr 0xb95两条记录。
2.4.3 通信测试
将协调器和路由器组号设置成0×0002,终端设备组号设成 0×0003。
连接串口,可以观察到只有0×0002的两个设备相互发送信息(注:此处略去各节点发送及接收的代码)(见图4)。
图4 协调器、路由器、终端节点调试
2.4.4 软件调试
打开数据采集软件界面,选择USB端口,然后进行测试,如图5所示。
图5 软件主界面
3 结语
目前,应用ZigBee对计量数据进行无线采集的技术较为成熟,应用领域也越来越广泛,在食品行业中推广使用计量数据采集系统将对食品企业的管理效率产生明显的提升作用,也会带动食品行业向数字化管理迈向重要的一步,从而积极推进食品安全溯源体系的健全和完善。