APP下载

基于STM32与NB-IOT网络的新型倾角传感器研究设计

2020-04-23栾文平汤浩郭亚

农业工程技术·农业信息化 2020年1期
关键词:编程

栾文平 汤浩 郭亚

摘 要:倾角传感器在农业、工业、铁路、航空航天等领域有重要的应用。本文基于STM32微处理器和高精度倾角传感器SCA103T并结合NB-IoT网络实现了一种低功耗、高精度和无线传输的新型倾角传感器。系统待机电流仅1.3mA,精度可达0.001°,无线传输速率为200Kbps。通过设计相关的外围电路并结合Keil环境编程实现倾角传感器信息的读取、分析和处理,以及实现在Windows上利用C#编程从NB-IoT服务器端获取数据并进行数据的可视化。设计结果表明该倾角传感器具有测量方便、传输稳定、高精度、成本低等特点,能够广泛应用到各个相关领域。

关键词:高精度倾角传感器;STM32微处理器;NB-IoT网络;C#编程

1   介绍

倾角传感器在农业、工业、铁路、航天航空等领域有重要的应用,主要体现在农用机械设备利用其检测倾角信息,用于农用无人机检测空中喷洒农药时的姿态控制,也用于农作物及牲畜的姿态检测;另外还用于工业上机床控制的精确角度检测,以及航空航天的设备姿态高精度反馈控制等。倾角传感器相对于其他传感器而言,研发的机构与供应厂商不多,市场上价格比较昂贵,除此之外,传感器的参数也不是最优的。而本文所设计的倾角传感器成本约为200元人名币,可以为广大用户接受,且在传感器精度和数据传输方面具有一定的优势。随着中国科技的发展,研究具有自主知识产权的传感器非常重要。

对于很多精密仪器与传感器,不仅在体积上要做到很小,而且还要有可扩展的接口以方便与其它设备连接。无线传感器连接起来非常方便,但还需考虑到电源的低功耗处理。现如今的4G、WIFI等无线方式对于数据的发送功耗不可忽视[1,2],基于NB-IoT的组网方式对能耗要求低,因此本设计使用该方式设计一款倾角传感器。表1提供了几种通信方式的对比[3,4,5]。

2   系统方案设计

本系统的结构框图简如图1所示,其中STM32作为主控中心[6],由电源管理电路对其提供电能,供整个系统使用;时钟电路为MCU提供运行所需的时钟频率;SCA103T为本设计的传感器感知元件,其内部有数字SPI温度数据输出和两轴加速度数据输出,由于数字SPI加速度数据的精度不高,因此本设计使用AD采集该传感器输出的模拟信号,温度数据直接由SPI通信得到;STM32采集到数据之后将其进行打包,通过485模块将数据发送到PC机或者转由NB-IoT模块发送给云端服务器[7],最后在PC机上开发一款上位机,该上位机既可通过485有线的方式读取该倾角传感器的数据,也可通过网络编程以无线传输的方式读取传感器的数据。

3   STM32主控单元

STM32F4是意法半导体提供一款具有M4内核的ARM处理器[8,9,10],其系统频率高达168MHz,STM32F4主控单元主要包括电源电路、时钟电路、复位电路以及程序下载电路。

STM32是当今嵌入式领域发展得相当迅速的微控制器,STM32F4芯片高达64个引脚,加上本身的高传输速率,在嵌入式开发领域非常重要。该控制器与51单片机相比,它的外设更加丰富,而且库函数也很便捷,便于快速开发,从经济角度上看也完全满足控制系统的需求。另外此最小系统拥有A/D转换器24个通道,能够实现更多外部数据的采集,同时拥有17个定时器和15个通信接口,本文使用了2个AD采集通道和1个SPI通信接口[11]及发送數据的串口,除此之外,芯片还余有很多扩展引脚,方便将来其他功能引入。

3.1  电源设计

电源管理电路在STM32最小系统中很重要,本设计的该部分电源不仅给芯片供电,还给感知器件供电,处理不好会导致芯片运行不平稳,该部分的电源输入电压是12V,但单片机的供电电压是3.3V,需要利用线性稳压芯片对其进行降压到5V或者3.3V,本设计中先利用IB1205S将电源电压转换为5V的稳压源。进一步利用线性稳压芯片将5V电压转换为3.3V为芯片供电,此外,在STM32芯片周围加上了滤波电容,以避免外部杂波的干扰,给芯片的平稳运行提供保障。图2为电源管理模块的原理图。

3.2  485接口电路设计

485通信是现如今工业上用得比较多的通信方式,因为它有良好的抗干扰能力,而且也只需要两条线就可以进行通讯,除此之外还有一大优点就是可以很快地进行总线传输,不需要另外电路将所有的485线接到一起。485通信方式是半双工,其传输协议并没有很严格的要求,用户可以自定义协议,比RS-232通信的方式更好。232通信时,线之间的电压差很大,容易损坏接口,此外232的传输距离和485也不能比拟,485的通信距离可达1.5km,232却只有几十米。在进行总线传输的时候,最大支持400个节[12],值得注意的是,在电路的设计中,除了在输入端具有发送和读取的使能端口外,在发送端也有一个匹配电阻,该阻值一般选取为120Ω,另外为了增加通信的抗干扰性能,会将AB两线分别进行上拉和下拉。图3即为通信的电路原理图。

3.3   SCA103T模块设计

图4即为本文选取的基于3D MEMS技术的倾角传感器感知部件,它是由芬兰VTI公司开发的一款高精度加速度计芯片,经常用于制造基于MEMS的倾角仪的传感元件。该加速度计芯片在开发的单轴测斜仪上具有两个可测量的范围,即±15°和±30°。SCA103T芯片适用于恶劣的外部条件,在温度和冲击方面具有耐久性[13,14]。

3.4  SCA103T感知倾角原理

基于MEMS的加速度计对重力敏感,因此,处于静止状态的基于MEMS的加速计传感器测量静态加速度和由于重力引起的加速度。在这种情况下,由于重力在静态加速度和加速度之间产生一定角度。该角度对应于传感器的斜率或所谓的倾角[15]。

图5中显示了沿x轴(αx)的加速度和由于重力(g)引起的加速度,这是由传感器位置的变化产生的。αx和g之间的关系用等式(1)和(2)表示,其中α表示传感器的斜率:

αx=g · sinα                                                 (1)

α=arcsin(αx/g)                                            (2)

3.5  SPI通信协议及温度读取的设计

在低速的嵌入式领域随处可见IIC协议和SPI协议,这两种协议的通信方式不大相同,一种是全双工读取数据,一种是半双工读取数据,本设计运用的SPI通信协议就是一种全双工的通信方式,由于传感器的数字输出采取SPI数字接口,因此需要遵循該传感器的协议模式才能完整读取数据。

SPI需要一个单独的节点使能线来选择连接在总线上的设备。由于选择线通常由主设备(微控制器)提供,这极大地限制了系统中传感器节点的数量,从而大大限制了系统中传感器节点的数量。此外,与IIC不同,SPI总线不允许在没有任何额外外部接口的情况下将新传感器轻松添加到系统中。SPI智能传感器系统无法通过剪切或松开传感器进出总线而不会影响总线上的任何其他电路来进行修改或升级。同时SPI也没有用于新传感器或中断检测的控制信号使其不适用于许多应用程序,包括环境监视和事件检测。根据SCA103的时钟序列示意图,可以编写如下代码读取内部温度数据。

uint8_t  Get_Sca103tT( void )

{

int Tresult = 0;

HAL_GPIO_WritePin(GPIOA,SPI_CS_Pin,GPIO_PIN_SET);

HAL_Delay(1);

HAL_GPIO_WritePin(GPIOA,SPI_CS_Pin,GPIO_PIN_RESET);

HAL_Delay(10);

SCA103TSendByte( RWTR );

HAL_Delay(10);

Tresult=SCA103TSendByte( MEAS );

HAL_Delay(1);

HAL_GPIO_WritePin(GPIOA,SPI_CS_Pin,GPIO_PIN_SET);

return Tresult;

}

4   NB-IoT模块设计

在过去20年中,物联网(Internet of Things,IoT)技术得到了显著发展 [16],异构性等方面取得了显著的进步[17,18]。从传输速率的角度来看,物联网的通信服务可以粗略地分为两类:高数据速率服务(如视频服务)和低数据速率服务(如抄表服务)[19]。ATECH在2017年的统计数据显示,低数据速率服务占物联网服务总量的67%以上,这表明低数据速率的广域网技术是可取的。

NB-IoT是一种旨在支持窄带物联网应用的新型协议,并已被列为未来第五代(5G)移动通信的重要组成部分[20,21],在NB-IoT终端中,支持的信号带宽在单边模式下可以是3.75kHz或15kHz,在多边模式下可以是15kHz的任何整数倍,并且可以根据应用场景选择工作频段(独立、保护带或带内)。但是它缺乏计算能力,因此,设计了该模块的开发板。

4.1 稳压电源电路设计

NB-IoT主控有两个供电接口,其典型输入电压值不同于以往的MCU,它的供电电压是3.6V的直流输入,电源电路的设计对于该模块来说至关重要,首先必须具有至少0.5A的电流驱动能力,这意味着在PCB板设计需要对电源的走线加粗以能够通过如此大的电流,此外该模块的电压输入范围大致为3.1-4.1V,也就是说不管在何种工作环境下,即使不能提供稳定的3.6V供电电压,也不能让输入电压低于3.1V以下,否则会引起通讯异常,导致模块内的参数发生改变。鉴于以上考虑,本设计采取LM2596可调节稳压芯片作为电压的控制芯片,其电路原理图如图6所示。LM2596可以最高提供3A的饱和电流,满足本设计的需求,另外只需要调节输出端两个电阻的比例即可控制电压的输出,其输出电压如表达式(3)所示:

Vout=VREF (1+R2/R3)                                                (3)

其中VREF = 1.23V

4.2  SIM卡模块电路设计

该NB-IoT模块包括一个外部的SIM卡接口,支持通过SIM卡访问网络,该SIM卡也支持3GPP规范的功能,该模块仅支持3V供电,供电电压来源于NB73内部电压,其中CCLK引脚为外部SIM卡的时钟线,CCIO为外部SIM卡的数据线,CCRST为外部SIM卡的复位线,在外部SIM卡的设计中,为了确保SIM卡的良好性能,需要增加一个静电保护电路;此外,为了避免干扰,外部 SIM 卡座的地与模块的地线布线要适当加粗。为保证相同的电势,需确保布线宽度不小于0.5mm。供电电源的去耦电容不超过1uF,且电容应靠近外部 USIM 卡座摆放。其具体的电路原理图如图7所示。

4.3  RS-232接口电路设计

如图8所示,RS-232是异步传输接口,该模块的设计包含两个同样的接口设计,其电路原理图几乎一致,主串口主要用来发送AT指令,它可用于AT命令通信和数据的传输,波特率设置为9600bps,另一个则是调试串口,可以进行日志信息的软件调试。本设计中的串口转换芯片采取了SP3232芯片,另外,当主机系统电平是3.0V或者3.3V时,为了降低串口功耗,需要在模块和主机的串口连接上加入1K以上的电阻,用于降低串口电流。对于更高的电压系统之间的电平匹配,需要在模块和主机之间增加电平转换芯片以保证通信正常。

5  上位机开发设计

上位机软件系统是针对下位机而言的,下位机一般指实体部分,由于节约下位机开发成本,其数据的呈现性不是很好,往往需要将数据打包发送给对应的上位机,对数据重新进行解析与可视化,本设计将采取.NET技术,用C#语言开发一款具有无线接口的上位机软件系统。

5.1 .NET技术介绍

由于C#的一些优点,即简单、易用,功能强大和跨平台等特点,它已成为最有效的语言之一[22]。.NET框架是由Microsoft提供的基于Windows的软件框架,它一直被广泛认为是软件世界中最重要的技术。未来的其他Microsoft技术可能都会依赖于它。该框架拥有两个主要组件:公共语言运行库(CLR)和.NET框架类库。作为软件执行环境,CLR是.NET框架的基础,提供了大量服务,例如内存管理、线程管理、增强的安全性、调试和分析服务、异常处理、代码检查和编译等,以在创建.NET组件期间帮助系统开发人员。类库是一个全面的,面向对象的代码集合,可以与开发人员自己的代码结合使用,以便在各种应用程序中使用。本文就是基于.NET框架,利用C#语言开发一款具有友好而便捷的人机交互界面软件。

5.2  软件模块设计

PC上位机软件主要包括有线连接界面、无线连接界面、波形显示界面、日志显示界面。为了方便用户使用,该软件系统将有线连接和无线连接都写到了一个界面上,也就是说该软件既可以进行数据的有线传输,也可以进行数据的无线传输,具体的布局与功能如图9所示。

如图9所示,该界面主要包括设备的初始化,連接与释放,登录所需的用户名和密码,有数据的订阅与取消订阅,可以通过输入设备的ID号来接收传感器发送的原始数据,消息的推送中可以通过给不同的设备发送命令来读取不同设备的数据,即可以实时查看各节点的值。

5.3  软件编程逻辑设计

在系统启动过程中,要确定系统的通信正常和下位机通信正常才能连接上位机系统,正常启动好应用程序之后,应用程序会启动自身有所的进程,应用程序完成自身启动之后开始检查网络的连接状态,然后开始读取数据,其结构如图10所示:

数据的获取过程依然会经过一个连接过程,若是有线连接系统,则需要确定通信端口、通信之间的波特率以及校验码等,若是选择的NB无线连接,则需要核定登录的用户名以及密码,或者提供该设备在有人为联网之下的设备号,详细流程如图11所示所示。

5.4   C#网络编程

C#语言是面向对象的语言,具有边界检查和垃圾收集。因此,它有助于通过防止危险指针和内存管理错误来编写安全代码,例如访问数组中的数组元素或与创建和删除对象相关的问题。然后,由C#编译器生成的元代码由CLI解释器执行,可用于Windows系统和Linux系统。C#网络编程一般有如下几个步骤。

(1)服务端对端口进行侦听

(2)客户端与服务端进行连接

(3)服务端获取客户端连接

6   结论

本文设计了一种倾角传感器,可以有线接入PC机,也可以通过NB-IoT无线接入PC机,给用户提供了极大便捷,另外良好的人机交互界面也是此系统的一大优势,该人机交互界面分为有线交互和无线交互两个部分,可以显示两轴的倾角数据以及数据的可视化波形图,在倾角传感器的波动中可以实时显示两轴的动态曲线,此外,本文在对输出的两轴加速度进行了硬件RC滤波,能够过滤掉一些无关的干扰。引入NB-IoT进行组网是本设计的另外一个特色,NB-IoT具有超强覆盖、强连接、低功耗以及低成本等特点,将其运用到本系统中降低系统成本计能耗。该设计主要实现了以下要求:

(1)基于SCA103T倾角感知元件,设计与该传感器匹配的外围采样电路,实现了系统能够正常工作和高精度感知倾角信息;

(2)实现了多节点多方位的倾角信息采集子系统和多节点测试组网扩展功能;

(3)实现了485接口电路,使其能够方便地接入互联网,使数据传输更加稳定,网络容纳量更高;

(4)实现了与其对应的多节点上位机显示,能够很方便地查看各个节点的倾角信息;

(5)实现了基于NB-IoT的低功耗无线数据传输。

参考文献:

[1] Weisi Guo,SiyiWang,O'Farrell, T.,Fletcher, S.. Energy Consumption of 4G Cellular Networks: A London Case Study[P]. ,2013.

[2] Li Sun,Sheshadri, R.K.,WeiZheng,Koutsonikolas, D.. Modeling WiFi Active Power/Energy Consumption in Smartphones[P]. Distributed Computing Systems (ICDCS), 2014 IEEE 34th International Conference on,2014.

[3] 徐金苟.低能耗蓝牙4.0协议原理与实现方法[J].微型电脑应用,2012,28(10):16-19.

[4] Vaquerizo-HdezDaniel,Mu?ozPablo,R-Moreno María D,F Barrero David. A Low Power Consumption Algorithm for Efficient Energy Consumption in ZigBee Motes.[J]. Sensors (Basel, Switzerland),2017,17(10).

[5] 李娟,胡晓玲,李自刚.窄带物联网NB-IOT能耗测试浅析[J].电信网技术,2016(08):65-67.

[6] 沈方华.基于STM32微处理器的可编程序控制器设计[J].教育现代化,2017,4(34):159-160+168.

[7] 李岩博,潘明岩,陈东红,陈锡爱.基于NBIOT和微信的空气质量直播系统[J].科技资讯,2018,16(24):12-13.

[8] 顾雯雯.基于Cortex-M4单片机的多功能虚拟示波器的设计与实现[J].现代计算机(专业版),2014(36):71-75.

[9] Dapeng Li. Research of Array CCD Imaging System Based on STM32F4[A]. Information Engineering Research Institute,USA.Proceedings of 2013 the Fourth International Conference on Information,Communication and Education Application(ICEA 2013) Volume 30[C].Information Engineering Research Institute,USA:Information Engineering Research Institute,2013:6.

[10] 意法半導体(ST)推出新一代STM32 Dynamic Efficiency~(TM)微控制器,使其性能强大的STM32F4系列产品更加丰富完整[J].电子设计工程,2014,22(04):22.

[11] 罗洋坤.基于STM32串口通信的车联网终端设计[J].无线电通信技术,2018,44(05):470-473.

[12] 唐夕晴,李建闽,佘晓烁.RS485总线接口性能测试仪设计与开发[J].电测与仪表,2019,56(07):142-147.

[13] 谢奕钊.数字电路设计中的抗干扰技术研究[J].无线互联科技,2016(14):106-107.

[14] 刘素贞.电磁超声检测系统中消除电磁干扰电路的设计[A].中国电工技术学会、全国无线电干扰标准化技术委员会、全国电磁兼容标准化技术委员会、全国电磁屏蔽材料标准化技术委员会.2015中国电磁兼容大会论文集[C].中国电工技术学会、全国无线电干扰标准化技术委员会、全国电磁兼容标准化技术委员会、全国电磁屏蔽材料标准化技术委员会:中国电工技术学会,2015:4.

[15] 张泽宇.加速度计构造原理、工作特点及应用的研究[J].科技风,2018(04):205.

[16] 孙月,全秋浩,马云飞,李田.大数据与物联网的关系及应用[J].吉林农业,2019(07):110.

[17] 沈典.云环境下面向异构负载大数据应用的资源管理机制研究[D].东南大学,2018.

[18] Jianfeng Liao,Jianping You,Qun Zhang. Research on Library Big Data Cleaning System based on Big Data Decision Analysis Needs[P]. Proceedings of the 3rd International Conference on Mechatronics Engineering and Information Technology (ICMEIT 2019),2019.

[19] 韩进,张玺.窄带物联网的远程无线抄表系统设计[J].单片机与嵌入式系统应用,2019,19(04):63-68.

[20] 吴泉.5G通信技术应用场景及关键技术分析[J].网络安全技术与应用,2019(05):61-62.

[21] Nianqin Zhou. Research on Several Key Technologies for 5G[P]. Proceedings of the 3rd International Conference on Mechatronics Engineering and Information Technology (ICMEIT 2019),2019.

[22] 郭玮.基于.NET Framework的WinForm Control开发框架[D].西安电子科技大学,2008.

猜你喜欢

编程
编程可以做什么?
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于C语言的计算机软件编程
值得推荐的青少年编程玩具
基于遗传编程的逆变器拓扑进化设计
基于VC与Fortran混合编程的超大型冷却塔热力计算软件编程
宏程序编程的几种应用