当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:为了更好地实现物联网或工业控制领域中传感器网络设备的远程监控功能,本文设计了一种基于FPGA的嵌入式网关系统的随机方法。该设计通过构建可编程片上系统 (SOPC),并利用Nios II嵌入式系统通过串口通信来实现对多个ZigBee网络的数据采集,同时结合以太网通信实现数据传输和上位机实时监控功能。整个系统在DE2-115开发板[1]上实现并通过验证,实验结果满足设计要求,并具有较好的灵活性、可配置性和应用前景。

引言

社会信息化和网络化的高速发展,极大地推进了嵌入式系统向网络化和信息化的方向发展。嵌入式设备和网络的结合又使得信息共享、远程控制、检测、诊断、维护等变得异常简单。由此可以看出,嵌入式设备和网络的结合已经成为现代发展的必然趋势,事实上,嵌入式网络技术有着极其广泛的应用前景。

随着 FPGA 技术的迅速发展,SOPC 作为一种特殊的嵌入式系统,具备软硬件在线可编程、可裁剪、可扩充、可升级的功能,因此,本设计采用基于嵌入式 SOPC 技术和 µC/OS-II 实时操作系统,并通过在嵌入式实时操作系统 µC/OS-II上移植 NicheStack TCP/IP Stack 网络协议栈,同时加入外围ZigBee 网络的数据采集模块,成功地实现了多个外围网络的实时监控,最终完成了嵌入式网关系统的设计。

1 系统总体设计

本系统采用 FPGA + Nios II [2] 的架构,并利用 FPGA 灵活的编程特性进行设计,在其内部配置实现串口控制器,使系统具有多串口通信能力 , 然后利用以太网模块实现与以太网的通信。整个系统主要由 FPGA 部分、ZigBee 网络部分、上位机监控部分组成,系统的总体结构如图 1 所示。由图 1 可以看出 , 该系统的主要功能首先是将每个 ZigBee 无线网络节点的数据传送到自己的 ZigBee 网络协调器,然后利用异步串行通信方式 [3-4] 实现 FPGA 与多个 ZigBee 网络协调器的数据通信,在 FPGA 将获取的数据进行简单的处理后,通过以太网的 Socket 通信功能实时发送到 PC上位机,从而实现对多个ZigBee 网络的实时监控功能。

本设计利用 ZigBee 网络在无线通信方面的优点和 FPGA的 I/O 端口多,且可自由定义其功能、自由编程支配等特点,再配以 VHDL/Verilog HDL 编写的内部执行软件和 Nios II 来进行设计,因而具有很好的灵活性、可配置性等特点。

基于FPGA的嵌入式ZigBee网关的设计与实现

图1 系统总体结构框图

2 系统硬件设计

2.1 SOPC 的设计

本系统的 FPGA 硬件设计基于 Altera 公司的 SOPC开发环境 SOPC Builder。Altera 公司为 SOPC 工具提供了众多的IP 核支持,可以直接调用。本设计中采用的 Phy 芯片是千兆88E1111 PHY 芯片,并采用 Altera 提供的三倍速以太网控制器核,在定制界面中采用以太网 MAC 控制器为 RGMII 模式,RGMII 采用 8 位数据接口,工作时钟 125 MHz,因此,传输速率可达 1 000 Mb/s。同时兼容 MII 所规定的 10/100 Mb/s工作方式,支持的传输速率为 10 M/100 M/1 000 Mb/s。RGMII数据结构符合 IEEE 以太网标准,接口定义符合 IEEE 802.3-2000。采用 RGMII 的目的是降低电路成本,使实现这种接口的器件的引脚数从 25 个减少到 12 个。根据设计需要,本设计定制了多个 UART 内核,该 UART 内核只有 TXD 和 RXD 两个信号,而没有定制 RTS 和 CTS 控制信号。

将 Nios II 处理器、定时器、CFI 控制器、EPCS 控制器、PLL、片上存储单元、JTAG UART、SGDMA 控制器,多个UART 内核及三倍速以太网控制器核添加到 SOPC Builder 中所生成的 SOPC 系统如图 2 所示,点击 Generate 即可生成Nios II 系统,然后在 Quartus II上完成顶层模块的设计及硬件接口的连接,最后分配引脚,并编译下载到 FPGA中,从而完成 FPGA 的硬件设计。

基于FPGA的嵌入式ZigBee网关的设计与实现

图 2 SOPC系统配置2.2 ZigBee 网络部分

ZigBee 网络中一般含有三种类型的节点,即协调器、路由器和终端设备,其中协调器和路由器均为全功能设备 (FFD),而终端设备选用精简功能设备 (RFD)。

一个 ZigBee 网络有且仅有一个协调器,主要负责启动网络,配置网络成员地址,维护网络,维护节点的绑定关系表等,需要最多的存储空间和计算能力。协调器接收每一个终端设备的数据信息,并通过串行通信将该网络中的节点信息发送至 FPGA。

路由器主要实现扩展网络及路由消息的功能,作为网络中的潜在协调器,扩展网络也就是允许更多的设备接入网络。本设计采用星型网络组网,故没有加入路由器。

终端设备不具备成为协调器或路由器的能力,一般作为网络的边缘设备,负责与实际的监控对象相连,这种设备只与自己的父节点主动通信,将自身的传感器信息、节点位置发送给协调器,具体的信息路由则全部交由其协调器及网络中具有路由功能的协调器和路由器完成。

本设计选用 TI 公司的 CC2430 芯片是一颗真正的系统芯片 (SoC)CMOS 解决方案,这种解决方案能够提高性能并满足以 ZigBee 为基础的 2.4 GHz ISM 波段应用 , 可满足对低成本、低功耗的要求。使用时只需结合一个高性能 2.4 GHzDSSS( 直接序列扩频 ) 射频收发器核心和一颗工业级小巧高效的 8051 控制器即可。

3 系统的软件设计

本文的设计软件主要包括的内容有:µC/OS-II 嵌入式操作系统的移植、NicheStack TCP/IP Stack[7] 网络协议栈的实现以及顶层应用代码的编写和调试、PC 软件客户端的设计等。

3.1 软件的总体设计方案

本系统要求通过串口通信方式实时获取接入系统的协调器节点所发送的传感器数据信息,然后通过以太网传输到 PC机客户端,PC 机客户端负责实时监控各个协调器节点的信息。本系统的总体软件结构框图如图 3 所示。由于本系统需要调度、控制多个任务,所以必须在硬件平台上嵌入操作系统。

本系统的软件开发平台使用的是 Altera 公司的 Nios II 集成开发环境 (Nios II IDE ),这个集成开发环境已经移植了µC/OS-II嵌入式实时操作系统。

µC/OS-II 嵌入式实时操作系统 [8] 是一个通用的实时操作内核,是一个可移植、可固化、可裁剪的实时多任务内核。µC/OS-II 嵌入式实时操作系统包含了任务调度、任务管理、时间管理、内存管理、任务间通信和同步等功能,但没有提供输入输出管理、文件系统、网络等额外服务,其中任务管理是最核心的部分。

基于FPGA的嵌入式ZigBee网关的设计与实现

图 3 系统软件设计结构框图3.2 软件具体内容

软件框架由 3 个任务组成 : Socket Server 任务,ZigBee协 调 器 数 据 采 集 任 务 UARTnTask(),PC 命 令 调 度 任 务ControlDataTask() 和协调器数据汇集发送任务 GetDataTask()。图 4 所示是其软件流程图。

基于FPGA的嵌入式ZigBee网关的设计与实现

图 4 软件流程图

(1)Socket Server 任务

首先在程序中调用 alt_iniche_init() 和 netmain() 函数完成 NicheStack 网络栈的预初始化和NicheStack 网络栈的初始化和启动,接着调用 get_mac_addr() 和 get_ip_addr() 函数设置 MAC 和 IP 地址 , 然后由标准 Socket 接口完成网络操作。

(2)ZigBee 协调器数据采集任务

UARTnTask() 任务就是通过串口通信获取每一个 ZigBee协调器的数据信息,可在 SOPC 中定制多个 UART 核,并在NIOS II 集成开发环境中采用 C 标准库函数实现对 UART 的控制。其关键代码如下:

void UART0Task(void *pdata)

{

FILE *UART0;

Char rec;

UART0 = fopen(“/dev/UART0”,”r+”);

while(1)

{

rec = getc(UART0); // 判断串口接收到数据的类型

switch (rec)

{

while()

{

… // 利用状态机原理从串口获取完整的数据

}

}

OSTimeDlyHMSM (0, 0, 1, 0);

}

}

(3)ControlDataTask() 任务

该任务主要负责获取PC上位机对协调器节点的控制命令,然后转发给相应的的协调器。其关键代码如下:

void ControlDataTask(void *pdata)

{

Mymsg *smsg; // 定义的以太网传输的数据结构

while (1)

{

smsg = OSMboxPend(Mybox,0,&error_code); //Socket Server() 任务获取 PC 收到 PC上位机的控制命令后,利用邮箱 Mybox 传递给 ControlDataTask() 任务

switch (smsg->flag)

{

case‘A’:OSMboxPost(UART0box,smsg); // 将相应的控制命令信息发送给对应的协调器任务

break;

…….

}

OSTimeDlyHMSM (0, 0, 1, 0);

}

}

(4) GetDataTask()任务

该任务负责获取当前所有协调器节点的数据信息,并通过SOCKET通信发送给PC机。

3.3系统测试

PC 上位机软件可采用 Microsoft Visual Studio 2010 MFC 编写,并利用Socket接口实现与FPGA的通信。首先可设定 服务器的IP地址和端口,然后点击开启数据采集。本试验中 模拟了两路ZigBee网络的数据采集,图5所示是上位机实时 监控显示图。事实上,每个ZigBee网络的节点位置信息和传 感器数据信息都会模拟显示出来,并能够实现控制节点。

基于FPGA的嵌入式ZigBee网关的设计与实现

图5上位机实时监控显示图

4结论

随着计算机技术和互联网技术的深入发展,嵌入式网 关技术已经广泛应用于物联网行业及工业监控等领域,越来越多的设备需要网络接入功能,以实现设备的远程监控。本设计将嵌入式SOPC技术、µC/OS-II实时操作系统和基于 NicheStack TCP/IP Stack协议的以太网技术结合在一起组成了 嵌入式网关系统。本设计对从底层硬件到Nios n应用软件的 整个架构进行了设计,最后在开发板上实现并通过实验验证。

本设计方案的可配置性和灵活性具有广泛的应用前景。

20210915_6141781faec2f__基于FPGA的嵌入式ZigBee网关的设计与实现

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭