基于SOPC的智能家居网关设计

2019-12-05 08:40龚名茂徐思燕
无线互联科技 2019年17期

龚名茂 徐思燕

摘   要:随着物联网技术的逐步成熟,智能家居已经进入实际运用阶段,让人们感受到科技带来的高效、舒适、智能化的生活。但是现在智能家居设备品种繁多,并且存在着多种通信协议,导致各种家居设备无法实现互联互通。在现有的物联网协议中,ZigBee是一种比较完备的通信协议。因此,为了实现协议的相互转换,在SOPC技术基础上,文章设计并实现了将ZigBee通信协议和TCP/IP协议相互转换的智能家居网关。

关键词:可编程片上系统;ZigBee通信协议;传输控制协议/因特网互联协议;协议转换

智能家居系统一般由智能家居业务平台、智能家居网关、智能家居终端传感器以及执行机构3个部分构成,其中,家庭网关作为智能家居的核心部分,主要实现不同协议的相互转换、协议数据转发、节点管理,实现家庭外部网络与室内各种家居设备之间的信息互联互通[1]。本文对原有的家庭网关方案进行研究和分析,在此基础上,提出利用可编程片上系统(System-on-a-Programmable Chip,SOPC)技术实现家庭网关方案。

1    网关硬件平台构建

网关总体的硬件结构如图1所示。网关硬件由可编程逻辑控制器EP4CE15和外围模块两部分组成[2]。在现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)内部构建了Nios Ⅱ处理器系统和时钟模块。外围电路包括FLASH,同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM),以太网电路,ZigBee通信模块,状态显示模块和联合测试行为组织(Joint Test Action Group,JTAG)电路[3]。其中,Nios Ⅱ处理器采用快速型内核,并且加入一个全功能模式的定时器timer0。静态随机存取存储器(Static Random Access Memory,SRAM)采用的是Hynix公司的HY57V2562GTR,FLASH芯片采用的是Altera公司生产的EPCS64。

网关与ZigBee模块通信使用通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART),通信协议为115200波特率,8位数据位,无奇偶校验,无硬件流控制。

EP4CE15系统内构建三速以太网(Triple-Speed Ethernet,TSE)核实现媒体介入控制层(Media Access Control,MAC),它主要接收来自外部网络的数据,并将其数据解析后重新封装成ZigBee協议,另外,也需要进行逆转换。系统选择的以太网芯片是PHY DP83848。根据本系统网关的需求,对Nios II处理器系统的IP进行设计和整合,最终生成Nios II的处理器系统。

2    网关软件平台设计

2.1  ZigBee通信协议设计

在智能家居控制系统中,为了实现智能家居网关对各种家居设备的管理和控制,需要有统一的通信协议作为信息交互的桥梁。ZigBee数据包协议格式如表1所示。

其中,0xAA,0x55:帧头,代表一帧数据的开始,接收端接收到该字段即表明数据来自于各个节点。

CMD:命令字,指定了这条指令将执行何种操作。

Payload:有效载荷,传输指令的参数,如温度传感器的温度数据等。

CRC16:16位CRC校验,该校验确保数据通信的可靠性。

0x0D,0x0A:帧尾,标志着一条指令的结束。

本设计通过该通信协议,将ZigBee协议变成传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP),实现ZigBee家居设备与智能家居控制中心之间的通信以及控制中心对设备的控制和管理。

2.2  应用程序设计

为了方便地使用TCP/IP网络协议,在上述硬件系统中加入μClinux操作系统,在该操作系统上进行ZigBee协议与TCP/IP协议转换。在该操作系统中应用程序设计主要包括串口和网口两个部分。

由于在μClinux系统中已经有串口驱动程序,因此,串口应用程序设计只需利用μClinux操作系统中应用层的open(),read(),write(),close()等函数对串口进行操作,其具体操作步骤如图2所示。

网络应用程序的设计首先需对已有的驱动程序进行修改,把本文中的端口物理层(Physical Layer,PHY)芯片的设备和状态信息、PHY和多址接入信道(Multiple Access Channel,MAC)配置信息加入到驱动程序中。在此基础上,才能利用μClinux系统中的socket套接字进行网络应用程序设计。

3    实验验证

利用网络助手和串口助手,对本文网关的功能进行验证。首先,利用串口助手向网关的串口发送符合ZigBee协议规定的数据,网络助手接收数据,然后利用网络助手向网关的网口发送ZigBee格式的数据,利用串口助手接收。经过反复的测试,TCP/IP与ZigBee协议之间能正确转换,在转换过程中数据出错次数为0,证明了本设计的可靠性和稳定性。

4    结语

本文设计了一个基于SOPC技术的智能家居网关,该网关能够实现ZigBee和TCP/IP协议转换。首先,对SOPC技术进行简介;其次,分别介绍网关的硬件设计和软件设计;最后,对网关的功能进行验证,证明本网关具备ZigBee和TCP/IP协议转换的功能。

[参考文献]

[1]赵海,邵士亮,朱剑,等.一种连接WSN与Intternet的多核嵌入式网关设计与实现[J].东北大学学报(自然科学版),2012(1):65-68.

[2]杜超,陈济民.基于SoC的嵌入式网关的设计与实现[J].计算机工程与设计,2011(9):89-93.

[3]张杰.基于FPGA的嵌入式以太网接口设计[D].西安:西安电子科技大学,2014.