当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:为了更好地实现物联网或工业控制领域中传感器网络设备的远程监控功能,本文设计了一种基于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 来进行设计,因而具有很好的灵活性、可配置性等特点。

图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 的硬件设计。

图 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 嵌入式实时操作系统包含了任务调度、任务管理、时间管理、内存管理、任务间通信和同步等功能,但没有提供输入输出管理、文件系统、网络等额外服务,其中任务管理是最核心的部分。

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

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

图 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网络的节点位置信息和传 感器数据信息都会模拟显示出来,并能够实现控制节点。

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

4结论

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

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

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

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

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭