当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:设计了一种气象数据采集系统,该系统能采集温度、湿度、气压、风速4个气象要素,采集的原始数据保存在本地SD卡中,同时对采集数据进行数据处理,处理后的数据打包成气象数据包,使用GPRS模块将数据包通过GSM网

摘要:设计了一种气象数据采集系统,该系统能采集温度、湿度、气压、风速4个气象要素,采集的原始数据保存在本地SD卡中,同时对采集数据进行数据处理,处理后的数据打包成气象数据包,使用GPRS模块将数据包通过GSM网络上传到上位机。采集系统主控制器使用基于Conex—M3内核的STM32处理器,在处理器上移植μc/os—II实时操作系统作为软件平台,保证了数据采集中较好的实时性和稳定性。在数据处理方面,参考地面观测规范对温度、湿度、气压采用筛除大小值取算术平均的算法,对风速测量数据采用滑动平均算法。经实验验证,系统正常运行,测量精度达到设计要求,具有成本低廉,精度高,具有较好的实时性和稳定性。
关键词:Correx-M3;STM32;气象数据采集;μc/os—II

0 引言
   
随着我国气象事业的快速发展,人们对气象信息采集的要求也越来越高,传统的人工操作和读数不仅劳动效率低下,而且容易出现人为错误,已无法满足现代气象观测的要求,近些年,电子技术的快速发展为气象数据采集技术的更新和设备换代提供了条件,Cortex—M3基于ARM公司最新的v7平台,它的数据处理能力是ARM7的两倍,而功耗只有ARM7的1/3,低廉的价格使其具有很高的性价比,在Cortex-M3上移植μc/os—II实时操作系统保证了系统的实时性和稳定性,其具有的诸多优点非常适合存自动气象数据采集领域使用。

1 系统整体设计
   
整个气象数据采集系统硬件主要由气象数据采集传感器模块、主控制模块、数据存储模块、数据发送模块以及上位机接收模块组成。传感器采集模块在主控制器的驱动下完成温度、湿度、气压、风速数据的采集,主控制模块由使用Cortex—M3内核的STM32处理器的最小系统组成,完成对数据采集传感器模块的控制以及对采集数据的数据处理工作,数据处理按照《地面气象规范2003》的基本要求执行,数据存储模块使用SD卡来完成测量数据的本地备份,处理完的数据打包成气象数据包使用GPRS模块通过GSM网络发送至上位机,上位机模块由GPRS模块和PC组成,上位机通过GSM网络接收测量数据并进一步处理,整体结构如图1所示。



2 气象数据采集模块
   
系统气压采集模块使用BMP085数字气压传感器,其和STM32通信使用标准的IIC协议,其内置的EEPROM中存储了补偿计算需要的11个参数,它们是11个连续存储的16位数据,存储地址为0XAA~0XBF,当STM32在读取了测量数据后需要通过补偿计算得到单位为hpa的测量数据。温湿度采集模块使用AM2301数字温湿度复合传感器,其与STM32通信使用单总线通信协议,该模块内置了一个8位的MCU,能自动完成数据的测量工作,当STM32得到了总线的控制权后,输出低电平大于800μs后,AM2301模块就得到了总线控制权并输出80μs的低电平作为响应信号并马上连续输出40bit的测量数据,测量数据格式为:40bit=湿度高8位+湿度低8位+温度高8位+温度低8位+校验位,其中校验位=湿度高位+湿度低位+温度高位+温度低位。风速采集模块使用FY-FS风杯式风速传感器,风吹动风杯转动会把风速信号转化为脉冲信号输出,STM32使用外部中断和定时中断来捕获脉冲频率并通过计算得到实时风速值。处理完成的数据存储在SD卡中,SD卡是一种存储容量为1 G的FLASH产品,与STM32通过SPI协议通讯。数据发送模块使用SIM300,利用短信息方式(TEXT模式)通过GSM网络与上位机通信,STM32使用AT指令通过串口与SIM300通信,上位机使用SIM300模块接收测量数据进行下一步处理。
    数据采集各模块的关键技术指标见表1,其中温湿度、气压使用平均算法,风速使用滑动平均算法。


    平均算法:测量一分钟,每分钟取样6次,去掉一个最大值和最小值,剩下4个值取算术平均。
    滑动平均算法:当采集速率每秒一次(t=1),平均期间T=3s,连续测量120s,代入下面公式计算:
   
    式中:n个样本值的平均值,:n-1个样本值的平均值,Yn:第n个样本值,t:采样时间,T:平均期间(s)。

3 软件设计
3.1 基于Cortex—M3的μc/os—II移植
    μc/os—II是一种典型的具有可剥夺型内核的基于任务优先级调度的实时操作系统,可同时管理多达64个任务,由于Cortex—M3不支持32位的ARM指令集,而只支持Thumb-2指令集,这种不向后兼容的方式使Cortex—M3之前平台使用的ARM汇编语言程序都不能直接移植到Cort ex—M3上,笔者从μc/os—II和Cortex—M3的内核结构研究着手,对μc/os—II内核中INCLUDES.H、OS_CFG.H、OS_CPU.H、OS_CPU_ C.C、OS_CPU_A.ASM五个与应用程序和处理器相关的文件进行修改,在INCLUDES.H中增加了与STM32处理器相关的外设寄存器定义和内存映射的头文件,在OS_CFG.H中完成对μc/os—II内核构造部分的配置工作,在OS_CPU.H中完成与编译器相关数据类型的定义、任务堆栈数据类型的定义,以及任务堆栈方向的设定工作,在OS_CPU_C.C中根据Cortex—M3内核结构完成系统任务堆栈结构设计,由于在C环境下无法对Cortex—M3的寄存器进行操作,所以需要在OS_CPU_A.ASM汇编环境中完成对临界区函数、上下任务切换函数以及中断服务子程序中的任务切换函数的设计工作,在完成以上修改后还需在c环境下增加系统时钟配置和中断函数为μc/os—II提供一个周期性信号源,在STM32中系统时钟是由SysTick定时器来提供的。
3.2 μc/os—II任务设计
   
在μc/os—II架构下整体设计中需要建立7个任务,如图2所示,由于统计任务主要作用是计算当前CPU的利用率,需要消耗相当的STM32内部资源,所以为节约系统资源在这里需要把系统配置OS_TASK_STAT_EN设置为0,禁止使用统计任务,空闲任务是必须的,在没有其它任务进入就绪状态时投入运行,当系统开始运行前自动建立,优先级自动配置为最低。由于系统要求在开始多任务调度前必须新建一个任务,所以我们建立了一个开始任务,开始仟务作用就是新建另外5个任务,包括:温湿度采集任务、气压数据采集任务、风速采集任务、数据存储任务、数据发送任务,完成这5个任务建立后开始任务就会自己挂起。完成对任务设计后还需要对任务的优先级进行设置,空闲任务优先级设置为最低,风速采集任务频率最高为1s/次,所以优先级应设置为最高,温湿度和气压采集任务频率相同为10s/次,设置优先级应低于风速采集任务,数据存储和发送任务应该都在前面几个数据采集任务完成后,所以设置优先级应该更低一些,开始任务由于在新建任务后被挂起并不参与任务调度,所以优先级可以设置为次于空闲任务的最低级。


3.3 系统整体调试
   
在主函数中需要进行初始化工作,主要完成STM32时钟系统和μc/os—II时钟系统配置,初始化操作系统后新建开始任务TaskStart后操作系统开始运行,在系统刚开始进行任务调度时由于只有空闲任务和开始任务参与任务调度,开始任务优先级最高所以执行开始任务,在开始任务中又新建气压测量任务(TaskPre)、温湿度测量任务(TaskTem)、风速测量任务(TaskV)、数据存储任务(TaskFlash)、数据发送任务(TaskSim),完成任务新建后开始任务被挂起进入休眠状态,不再参与任务调度,根据事先设计好的优先级系统总是执行优先级最高的任务,风速测量任务优先级最高,挂起时间一到总能得到处理器的使用权,当测量完毕后任务自动挂起不参与任务调度,类似的情况,温湿度测量、气压测量完成各自测量数据并完成数据处理器后也自动挂起,并把标志为置1表示测量工作完成,数据存储任务和数据发送任务根据判断标志位决定是否进行数据存储和数据发送工作,其主函数和开始任务主要代码如下:


    在完成新建任务后进行整体软件调试,PC机通过USB转串口线接入SIM300模块后通过串口调试助手来观察接收到的下位机测量的气象数据,在这里需要注意的是,在气压测量、温湿度测量、风速测量任务中,为了数据读取和处理方便我们取的数据都是整数的,比如温度为12.8℃,我们实际存储数据就是128且是分在三个变量来存储百、十、个位的,所以为了数据的发送,我们设置一个全局数组data设计为一个数据帧来存储测量的数据,整个数据格式作如下定义:u8 data=湿度数据[3位]+温度数据[3位]+气压数据[5位]+风速[3位]来存储测量的数据,在通过GPRS发送数据时只需要通过AT指令把数组中的数据发送即可,上位机接收到数据如图3所示。



4 结论
   
本设计实现了μc/os—II在Cortex-M3上的移植并通过了实验验证,同时依照设计功能要求在μc/os—II平台上完成了气象数据采集系统中各个任务的设计工作,经实验验证,本系统能正常运行,气象数据测量精度达到设计要求,具有成本低廉,精度高,易于实现等特点,具有较好的实时性和稳定性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭