基于ARM的流量计数据采集处理系统设计
2019-06-05华南师范大学
基于ARM的流量计数据采集处理系统设计
◆臧紫薇 刘宏展通讯作者
(华南师范大学 广东 510006)
4-20mA是当前工业仪器的标准信号之一。针对工业流量计的接口电流无法实现无线采集的问题,本文设计了一种基于ARM处理器的无线数据采集处理系统。整个系统由主控芯片STM32,信号调理电路,A/D模块,无线通信模块,无线Web服务器组成。在嵌入式单片机内搭建的Web 服务器可以实现对输出电流值的采集的同时,将采集到的数据通过服务器无线传输。
电流采集;STM32;LwIP协议;Web服务器
0 引言
针对工厂的能效测试,需要对多种能效测试仪器的共同使用得以实现。现场安装的能效测试仪器根据其自身的数据传输条件可以分为三类。其中一类仪器自身具备信号发射与接收功能,可以实现测量数据的传输;二类仪器虽带有数据串口,但受接口条件所限,无法自行实现仪表数据传输;三类仪器不具备数据串口。在工业仪表上,除RS232接口外,通常将测量流速、气压、气体浓度等的仪表测量得到的物理量变送为标准4-20mA模拟电流输出。
德国FLUXUS F601超声波流量计是通过超声波信号对于工业管道中的气、液体流速进行精密测量的仪器。该仪器具有标准化的电流输出接口,可以将所测得的流量值线性转化为4-20mA的电流信号。目前来讲,由于该仪器仅自带串口及模拟量输出接口,并不具备无线收发功能,对其的数据采集仍然只能依赖于串口数据采集或人工读表,这大大限制了数据采集的灵活性并增加了工作人员的工作负担。因此,本文介绍了一种针对上述仪器模拟量接口的基于ARM的流量计数据处理系统的设计。
1 系统工作原理
图1 系统硬件总体结构图
系统的总体框架结构如图1所示。
系统的主控模块选择的是基于ARM内核的STM32芯片。流量计读取的流速值被输出显示为与其线性对应的标准4-20m直流电流信号。该信号经过电流环接收器芯片RCV420进行放大和处理后成为0-5V的电压信号。该电压信号经A/D转换芯片变成可被STM32单片机读取并处理的数字信号。STM32RGTb通过SPI通讯方式读取A/D转换结果,并通过SDIO方式驱动WIFI芯片,实时处理并存储得到的电流值信息。在单片机内搭建形成一个基于STM32微处理器的Web服务器,带有WIFI功能的计算机作为子设备连接WIFI,并可直接获取单片机的采集数据。
2 主要电路模块
2.1 主控芯片
系统的主控模块选择美国ST公司生产的基于ARM内核的STM32F103RGTb芯片。该芯片是一个基于M3核的32位处理器,具有1MB的Flash容量,9KB的SRAM容量。其外设资源丰富,支持SDIO、SPI、UART及I2C等外设接口。因此它可以高度满足本设计的需求。
2.2 电流调理电路
为了将4-20mA的小信号输出电流转换为单片机可读的电压信号,本设计中选用了集成的高精度电流环接收芯片RCV420。该芯片是美国BURR-BROWN公司生产的一款针对小电流信号采集的接收转换芯片,它内部有精密的内电阻网络、运算放大器及10V基准电压[1],可以用于将4-20mA的电流信号转换为0-5V的输出电压,且理论误差仅有0.1%。应用RCV420芯片时不需添加其他外围电路,因此它大大降低了维护成本。
该芯片的应用电路图如图2。
16,4引脚分别为该芯片的正、负电源引脚。需要在其引脚旁各并接一个1µF的退交连电容,可滤除其直流电源中的其他成分,减小电源带来的波纹干扰。
图2 RCV芯片的应用电路
2.3 A/D转换电路
经电流环接受芯片转换后的电压值为0-5V,无法直接被单片机采集,故选用一个外置的AD转换模块。本设计中选用MAX187作为A/D转换芯片。MAX187芯片是一款12位的逐次逼近A/D 转化器,为单+5V电源供电,可将外部参考电压设置为+5V。MAX144与SPI,Micro Wire等多种串口标准兼容[2]。其外围电路连接简单,如图3所示。
图3 ADC芯片与其外围接线
2.4 WIFI模块
本设计中选用的WIFI芯片的是Marvell公司生产的marvellw8801。该芯片是一款低功耗,高性能,体积小的无线SoC芯片。它符合IEEE802.11e的标准,并且它的兼容性很高,能够向下兼容多种通信协议。它可通对等(Ad hoc)或集中控制(Infrastructure)的工作模式与无线设备快速联通。本WIFI芯片与单片机通过SDIO口进行通讯。由于芯片内部具有单次可编程内存OTP(One-time Programmable)可以减少对外部EEPROM的需求。图4为WIFI芯片的接线图。
图4 WIFI模块
3 基于STM32的Web服务器
一个Web服务器是一个由因特网、微处理器,以及相应的软硬件组合的套件,可以被用来监测和控制相关的系统[3]。服务器的硬件与协议的关系如图5所示。
图5 系统软件设计
3.1 Marvell 88W8801 WIFI模块驱动
单片机通过SDIO方式驱动该WIFI模块。SDIO设备的初始化在main.c内通过调用SD_Init()函数实现,使得其处于就绪状态。SDIO设备的初始化过程完成后,通过调用init_wifi()实现WIFI的初始化。
WIFI模块内部有一个微处理器,对其的驱动需要在其内部写入程序。Marvell的官网上可以下载到该程序的二进制固件。当固件下载完成后,可扫码连接一个热点或自己建立一个热点,这是能够实现在数据链路层上对数据帧的传输的物理基础。无线网卡与其他设备的通讯除需要链路层外,同时需要网络协议栈的支持。
3.2 μC/ OS2-II操作系统与LwIP协议
μC/ OS2-II操作系统是可在Micrium官网下载的开源C语言操作系统,已经被运用在很多的32位以下的MCU中,具有很好的稳定性[3]。LwIP协议是由瑞士计算机科学院在TCP/IP协议的基础上进行裁剪的轻量级通信协议。它是针对低配置CPU设计的,因此适合在嵌入式流量计采集系统之中进行应用。LwIP协议栈可以支持TCP、UDP、HTTP、IP等协议,支持多线程操作[4],且在无操作系统或有操作系统下均可运行[5]。
LwIP协议在μC/ OS2-II系统上的移植的实质就是调用μC/ OS的函数实现系统的初始化、任务同步、时间管理和内存管理[5]。其移植的步骤如下:
( 1 ) 在初始系统源文件夹下新建os子文件夹,内移植必备的os_core.c,os_cpu_a.asm,os_cup_c.c,app_cfg.c文件,并根据需求添加如下文件,如图6。
图6 添加文件
在文件夹中添加完成源文件后,在Keil4.12中打开Manage Components,在工程内添加源文件,并依次按照对应的文件夹添加.h头文件。
( 2 ) 分别按照ARM型号,和对函数的调用情况修改移植的源文件。
( 3 ) 利用μC/ OS2-II操作系统的函数完成LwIP功能的实现。
a. 建立并根据平台类型等建立相关的头文件Lwipopts.h,cc.h,perf.h,sys_arch.h;
b. 建立RTOS的抽象层文件sys_arch.c;
c. 根据网卡的驱动和LwIP的接口修改ethernetif.c等文件里的对应的static struct pbuf *low_level_input(struct netif *netif,void *p_buf,int size),low_level_init(struct netif *netif)函数;
d. 在μC/ OS2-II启动后初始化LwIP。
3.3 HTML 网页的实现
在嵌入式网页服务器中,网页是用户与其进行交互的媒介,属于LwIP的应用层[6]。用户通过在浏览器的地址栏输入服务器地址即可打开服务器网页,并向网页发送并接收来自网页的信息。Web服务器与网页有以下七个流程:
(1)建立TCP连接。由于HTTP是应用层协议,根据规则,需在TCP协议建立完成的基础上实现高层协议的连接。
(2)浏览器向Web服务器发送请求命令。这个过程在建立TCP连接后即发生。
(3)浏览器发送请求头信息。浏览器用一个空白行
(4)Web服务器产生应答。
(5)Web浏览器发送请求头信息。
(6)Web服务器向浏览器发送数据。
(7)Web服务器关闭TCP连接。
4 总结
本文设计了一种能够实现数据无线传输的无线电流数据采集系统,用户可将移动端连接至由单片机搭建的Web热点,从而实现采集电流的实时显示。不同于传统的通过串口通信的电流采集模块,本设计中对于无线网卡的应用使得系统摆脱了串口通信的限制,用户可在信号范围内的任意位置对数据进行采集和读取。本文中采用的ARM处理器不仅成本低,性能优良,其内存空间大,可以运行针对嵌入式处理器设计的μC/ OS2-II操作系统及LwIP协议栈,保证了传网络传输的稳定性和可靠性。设计中选用的Marvell8801无线模块,支持对等或集中控制的工作模式,为系统的应用环境提供了更多的选择。
[1]龚京.电流环接收器 RCV420及其应用[J].国外电子元器件,2000(2).
[2]张岳涛,史翔.12位A/D转换器MAX187原理及应用[J].国外电子元器件,2007(3).
[3]Allafi,I. and T. Iqbal. Design and implementation of a low cost web server using ESP32 for real-time photovoltaic system monitoring. in 2017 IEEE Electrical Power and Energy Conference (EPEC).2017. IEEE.
[4]杨俊,吕建平,徐峰柳.基于μC/OS-Ⅱ和LwIP的嵌入式Web服务器实现[J].网络安全技术与应用,2011.
[5]阙大顺.LwIP 协议在 μC/OS2II系统上的移植和实现[J].舰船电子工程,2006(4).
[6]林.J.基于Cortex-M3的嵌入式WEB 服务器监控系统的设计与实现[D].太原理工大学,2013,201(3):5.
国家自然科学基金,项目编号:61875057,61475049。