查看: 1731  |  回复: 0
GD32 MCU 开发板 Workshop 报告:气压温度_NB-IoT传输与展示

主题

回复
发表于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模块。

            模块的硬件原理图模块图如下所示,

 

? 软件设计


        IIC通信

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 上面的介绍,气压传感器还可以用到以下的场合:盲区推估;户外导航;天气预测;垂 直运动速度测量。 其实气压传感器除了在一些关于气象、天气方面的应用以外,基本上都是用 来测试海拔高度。

从应用场合来看,盲区推估;户外导航;垂直运动速度测量也 都是用到了测量海拔高度这个应用。所以要想用好气压传感器,正确理解气压和 海拔高度的关系是很重要的。


五、模块展示

 点击查看大图

 

点击查看大图

 点击查看大图

 点击查看大图

 

点击查看大图

 

 

 点击查看大图

 

六、代码分享

GD32E231_NB-IoT.zip 





主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部