APP下载

RISC-V处理器远程监测系统终端设计

2020-11-06黄平袁佳朱静羊日飞

物联网技术 2020年10期

黄平 袁佳 朱静 羊日飞

摘 要:远程监测系统终端是物联网系统的重要组成部分。针对物联网智能充电桩的实时有功功率监测,研究设计了一种以RISC-V架构处理器GD32VF103为主控芯片,以功率计量芯片HLW8012测量有功功率,以SIM800C模块通过GPRS网络提供无线连接方式的远程监测系统终端。系统采用的主控芯片是一款基于开源免费RISC-V架构的国产32位通用微控制器,具备高效的处理效能与均衡的系统资源,适用于工业控制、新兴IoT等领域。系统采用模块化设计具有通用性,可以为其他远程监测系统终端设计提供一定的技术参考与借鉴。

关键词:RISC-V;GD32VF103;GPRS;SIM800C;远程监测;HLW8012

中图分类号:TP393文献标识码:A文章编号:2095-1302(2020)10-00-03

0 引 言

物联网是无线通信技术、网络技术、计算机技术等的综合应用。随着物联网的快速发展,其中的远程监测系统应用也越来越广泛,如当前热门的物联网智能充电桩,其包含对充电电压、电流的实时监测,是一种典型的远程监测系统终端。在此背景下,本文介绍了一种远程监测系统终端设计,它以RISC-V处理器为主控制器,以SIM800C模块通过GPRS无线技术远程接收和发送数据。

1 系统总体方案设计

远程监测系统通常由移动设备(前端)、云服务器(后端)、嵌入式设备(终端)组成,具体如图1所示。

(1)前端运行有APP或其他小程序,提供与用户交互的界面。

(2)后端是云服务器上运行的后台服务程序,后端作为系统核心,具有连接前端与终端的作用,同时承担数据存储、大数据分析等职责。

(3)终端嵌入式设备与传感器连接,负责采集物理世界的状态和数据,经适当处理后传输至后端服务器。

本文设计的远程监测系统终端以RISC-V处理器为主控芯片,通过连接单相电能计量芯片采集充电桩实时充电的有功功率,将该有功功率值作为传输数据,经SIM800C模块连接GPRS网络,以TCP/IP协议连接后端服务器,不间断传输至远程服务器后端。终端系统硬件结构如图2所示。

2 系统硬件设计

2.1 RISC-V内核的微处理器GD32VF103

GD32VF103芯片是基于RISC-V内核的32位通用微控制器。RISC-V是由加州大学伯克利分校设计并发布的一种开源指令集架构[1]。RISC-V架构具有如下特点:

(1)具有简洁精练的指令集,其基本的RISC-V指令数目仅有40多条;

(2)具有模块化架构,其指令集使用模块化方式进行组织,通过模块化扩展指令数量并适应不同的应用场景。

GD32VF103微控制器内部采用RISC-V架构的RV32IMAC组合指令集,其适用于低功耗、小面积的嵌入式应用[2]。

GD32VF103微控制器主频为108 MHz,内置128 KB FLASH存储器与32 KB SRAM存储器,采用哈佛结构,使用獨立的总线读取指令和访问数据。内部集成有丰富的外设资源:16位定时器(5个),ADC/DAC(模数/数模转换),U(S)ART,I2C,SPI/I2S,CAN,USB FS等通信接口以及通用GPIO口。本系统使用该款芯片作为核心控制器较为合适。

2.2 GPRS网络模块SIM800C

SIM800C模块是一款性能稳定,性价比高的工业级GSM/GPRS模块,其工作频率支持4频850/900/1 800/1 900 MHz全球使用,可以实现语言、SMS、传真和数据信息的低功耗传输。

主控芯片通过AT命令集对SIM800C模块进行控制,模块与远端服务器进行TCP连接后可将本地系统采集的数据传输至服务器端,同时也可接收服务器发来的控制命令。模块供电范围为3.4~4.4 V,发射功率支持1 W或2 W,硬件由1路标准的全功能串口与主控芯片连接。

2.3 功率计量芯片HLW8012

HLW8012是深圳合力为科技推出的单相电能计量芯片,可以测量有功功率、电压、电流有效值,被广泛应用于智能家电、智能路灯等场合[3]。HLW8012通过VIP,VIN引脚外接康铜电阻采样电流信号,V2P引脚采样电压信号,芯片内部计算出有功功率,经CF引脚输出占空比为50%的脉冲信号,主控制器通过测量CF引脚脉冲信号的周期得到测量的有功功率值。

2.4 硬件电路设计

主控芯片GD32VF103采用3.3 V电源供电,外接8 MHz无源晶振作为时钟源,经内部PLL倍频产生108 MHz系统时钟。GD32VF103的通用GPIO口有5组,分别为PA,PB,PC,PD和PE,每组各有16个GPIO引脚。本电路选用其中一个引脚PC0作为输入,与经光耦隔离的HLW8012芯片CF引脚连接。PC0引脚设置为外部中断模式,可提高CF引脚脉冲信号下降沿的测量精度。

SIM800C模块的硬件电路如图3所示。模块供电电压为3.7 V,1脚UART1_TXD为串口发送端,数据从SIM800C发出;2脚UART1_RXD为串口接收端,用于模块从串口接收主控芯片的AT命令。GD32VF103主控芯片有6个串行异步收发口,本电路选用其中1个与SIM800C连接,串口配置为115 200 bit/s波特率、8位数据位、无校验位、1位停止位,由于SIM800C和主控芯片都是3.3 V电平,所以无需加入电平转换电路,只在两者之间串接1 kΩ电阻即可保证信号符合串口传输要求。

3 系统软件设计

软件设计主要包括两部分,即控制功率计量芯片HLW8012的软件设计与控制SIM800C模块的软件设计。

3.1 控制HLW8012的程序设计

因为HLW8012的CF引脚输出占空比为1∶1的高频方波信号,且方波的周期与测量的有功功率大小成反比,所以主控芯片将通过与CF连接的GPIO口作为输入,精确测量方波的周期后再经过公式计算获取有功功率。周期的测量原理利用了GPIO口的下降沿外部中断触发,同时利用定时器测量两次下降沿外部中断的时间间隔,得到脉冲周期。有功功率数值的公式计算利用测得的周期时间在主循环程序中进行。控制HLW8012程序流程如图4所示。

3.2 控制SIM800C的程序设计

主控芯片GD32VF103上电后,首先对芯片的USART口进行初始化,设置串口波特率等硬件参数,并配置内核中断控制器(ECLIC),编写相应串口中断服务子程序,用于接收SIM800C串口发来的数据。

主控芯片通过串口输出AT指令控制SIM800C模块,AT指令的语法格式是以“AT”前缀开头,指令结尾必须包含“\r\n”,十六进制数为0x0D,0x0A。SIM800C上电复位后,主控芯片首先发送一系列AT命令查询模块相关状态,具体命令如下:

(1)AT:测试模块响应,期待返回“OK”;

(2)AT+CGMM:查询模块型号,返回“SIMCOM_SIM800”;

(3)AT+CPIN:查询SIM卡状态,若返回“+CPIN:READY”,表示SIM卡状态正常;

(4)AT+CSQ:查询信号质量,返回SIM800C模块的无线信号强度,如“+CSQ:24,0”。

远程监测终端通过TCP/IP协议与后端服务器连接,终端作为TCP客户端,向服务器发送TCP连接请求,采用AT命令:AT+CIPSTART=“TCP”,“39.97.169.199”,“8086”。其中“39.97.169.199”是远端服务器的IP地址,“8086”为TCP端口号,模块接收到该命令后,将与服务器建立一个TCP连接,若连接成功将返回“CONNECT OK”。

其后,根据与服务器事先确定的业务流程,终端发送本设备的序列号,登录并更新服务器终端设备列表,服务器在确定终端上线并保持与终端连接时,可将前端用户的操作命令下传给终端,终端同时将监测到的有功功率值等数据上传到服务器。

4 结 语

本文设计实现了基于RISC-V架构GD32VF103微控制器的远程监测终端系统,系统将GD32VF103作为主控芯片,HLW8012为数据采集模块,SIM800C为GPRS网络模块,实现了数据的采集与远程传输。由于RISC-V架构处理器具备均衡的处理效能和系统资源,使本系统的解决方案具有一定的通用性,因此在此方案基础上进行扩展或修改,可以设计实现许多其他嵌入式或物联网应用。

注:本文通讯作者为羊日飞。

参考文献

[1]雷思磊.RISC-V架构的开源处理器及SoC研究综述[J].单片机与嵌入式系统应用,2017,17(2):56-76.

[2]胡振波.RISC-V架构与嵌入式开发快速入门[M].北京:人民邮电出版社,2019.

[3]深圳合力為科技.RV-STAR开发板用户指南V1.0[EB/OL][2020-01-13]. www.rvmcu.com.

[4] 佚名.SIM800C硬件设计手册V1.01[EB/OL].[2016-03-02].https://wenku.baidu.com/view/8b41ae843b3567ec102d8ae6.html#.

[5] GD32VF103 RISC-V 32-bit MCU用户手册[Z].1.0版本. GigaDevice,2019.

[6]韩进,马双.基于SIM800C的GPRS数据传输系统设计[J].电子产品世界,2016,23(11):39-42.

[7]于镭,崔宪伟.一种基于GPRS与485总线的无线采集器的设计[J].物联网技术,2017,7(6):30-32.

[8]蔡红娟,翟晟,蔡苗,等.基于STM32的GSM智能家居控制系统设计[J].自动化技术与应用,2013,32(8):37-40.

[9]伊新.基于GPRS的电梯在线监控系统的设计[J].物联网技术,2013,3(3):40-44.

[10]李其高.面向IoT终端设备的RISC-V微控制器设计与分析[J].单片机与嵌入式系统应用,2018,18(3):64-66.