查看:
1753
|
回复:
0
|
GD32 MCU 开发板 Workshop 报告:气压温度_NB-IoT传输与展示
|
wait31415
2
主题
19
回复 |
发表于2019-05-22 18:17:49
|
只看该作者
1#
电梯直达
GD32 MCU 开发板 Workshop 报告 气压温度_NB-IoT传输与展示 一、 方案简介
介绍使用 GD32 开发板所设计的方案,及方案主要功能。
本设计是一款数字气压温度检测和无线远传模块。以GD32E321C-START Dem开发板为核心,结合数字气压传感器 BMP085模块,制作的温度气压测量模块。
开发板上的MCU通过和BMP085传感器通信,采集气压和温度信号到单片机内容,然后将气压和温度号解算,最后将气压和温度信号通过的串口到NB-IoT无线传输模块。NB-IoT无线传输模块将气压和温度数据发送到云端,可以通过浏览器和微信显示。
二、芯片简介
GDE231系列单片机使用Arm® Cortex®-M23内核,可以广泛的应用于高速信号采集、混合信号处理、电机控制、传感器网络等工业应用场合。 GD32E231具有丰富的外设接口:多达4个16位通用定时器、1个支持三相脉宽调制PWM输出和霍尔采集接口的16位高级矢量控制定时器、1个16位基本定时器和1个多通道DMA控制器。通用接口则包括2个USART、2个SPI、2个I2C、1个I2S。 此外该芯片还配置了1个高速轨到轨输入/输出模拟电压比较器(COMP),2个高增益轨到轨运放(OPA),1个12位2.6M SPS采样率的高性能模数转换器(ADC),以高集成度简化硬件开发,节省PCB布板空间,从而形成最新的单芯片解决方案并有效降低系统成本。 GD32E231具有最高72MHz的运算主频,以及16KB到64KB的嵌入式闪存和4KB到8KB的SRAM缓存。配合Cortex®-M23内核内置的硬件乘法器、硬件除法器和加速单元,可以实现高性能实时控制和混合信号处理。 GD32E231提供的多个定时器可输出多路PWM直接用于各类电机控制。芯片集成的高性能ADC、电压比较器、高增益运放等模拟外设资源,可支持高速信号采集和电机的闭环控制算法。多种标准接口更方便连接传感器网络及多协议的数据通信。一步解决“采集、放大、传输、处理”等工业控制环节的各种开发需求。
芯片的内部架构图如下所示:
三、详细设计 · ? 硬件设计 本模块一款温度气压采集模块,使用BMP085为气压温度传感器。BMP085模块通过IIC接口和GD32E231单片机通信。单片机解算并转换气压和温度信号为浮点数,通过GD32的串口发送到NB-IoT无线远传模块。 NB-IoT模块使用的是电信网络,模块是有人的NB-75模块。 模块的硬件原理图模块图如下所示,
? 软件设计
BMP085的接口为IIC接口,本设计使用IO口模拟IIC接口。使用该种设计优点是程序移植简单,缺点是硬件效率低,控制复杂。 为了大家方便看懂代码,这里做一些IIC的简单介绍。 IIC 是 PHILIP 公司开发的一个总线标准,关于 IIC 总线可以参考下面的链接 http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf IIC 总线有两条线组成 SDA 与 SCL,时序关系如图所示
对于 IIC 总线,有以下几个关键部分需要注意,参考上图 (1) start condition (2) address code (3) R/w bit (4) Ack bit (5) Data code (6) Stop condition 上面几个关键部分的理解可以参考 IIC SPECIFICATION,这里面就不具体介绍 了。也可以参考 silicon lab 公司的应用笔记 AN113。
BMP085通信 完成IIC接口的相关内容,就可以是用IIC读取BMP085的输出信号了。读取BMP085的信号流程如下图所示: 解决了BMP085的通信,剩下的问题就简单了,整个软件的流程图如下所示:
四、模块应用 气压传感器够在步态判断过程中准确地判断上楼步态与下楼步态,尝试引入气压 计,通过测试上下楼气压的变化间接算出水平面高度的变化,从而判断出上楼或 者下楼的步态。 当然,使用气压传感器的用途还有很多,借用一下 BMP085datasheet 上面的介绍,气压传感器还可以用到以下的场合:盲区推估;户外导航;天气预测;垂 直运动速度测量。 其实气压传感器除了在一些关于气象、天气方面的应用以外,基本上都是用 来测试海拔高度。 从应用场合来看,盲区推估;户外导航;垂直运动速度测量也 都是用到了测量海拔高度这个应用。所以要想用好气压传感器,正确理解气压和 海拔高度的关系是很重要的。
五、模块展示
六、代码分享
|
|