APP下载

基于STM32微控制器和CH438Q数据采集器的设计与实现

2021-02-25赵培刚

仪表技术与传感器 2021年1期
关键词:数据格式微控制器串口

刘 君,程 凯,赵培刚,徐 爽,马 超

(中国海洋大学,光学光电子青岛市重点实验室,山东青岛 266100)

0 引言

海洋为人类提供了丰富的海洋资源与发展空间[1]。传统的海洋科学研究方法只能从地面或者乘船从海面观察海洋,随着卫星遥感技术的发展,也可从空中对海洋进行观测,但这些方法都只能得到海洋表面的数据[2]。随着科学技术的发展,海洋探测技术也相应的在不断发展与改进。深海运载器探测技术、深海光学传感器探测技术、深海电磁学传感器技术等[3]为人类科学地认识深海提供了方法。认识海洋的前提是需要依靠各种传感器探测到的数据,传感器在不同海洋环境下的控制和传感器数据存取则主要依托于数据采集系统。

在设计数据采集系统中,采用微控制器STM32作为系统的控制核心,由于试验需要搭载多种RS232串行接口的传感器进行测试,而STM32所提供的3个串口不能满足需求,必须进行串口扩展。本文结合STM32单片机和串口扩张芯片CH438Q设计实现了一种集成度高、配置灵活、小型化、多种传感器接入的数据采集系统。

1 系统架构

海洋数据采集系统集传感器供电与管理于一体,兼容数字量、模拟量等接口传感器,可以广泛地应用在各种海洋监测平台系统建设中,能够满足在线观测与自容监测的设计需要[4]。数据采集系统的整体设计是基于深海环境背景下设计的,其整体设计图如图1所示。

数据采集系统主要分为供电电源,微控制器,串口扩展三部分。供电电源负责为微控制器、串口扩展以及外接传感器提供电源管理;串口扩展部分负责与各种传感器进行通信对接,将传感器探测的数据传输到微控制器之中。微控制器是整个数据采集系统的核心,负责控制整个数据采集系统的工作,需要对各类数据进行采集、处理、存储,对各种传感器工作状态工作进行监控,保证整个采集工作的稳定进行。

数据采集系统各部分的详细设计需要考虑所搭载传感器的工作电压、通信方式、通信速率、数据格式等主要参数。本试验所搭载的主要传感器和其性能参数如表1所示。

表1 传感器类型及性能参数

传感器返回的数据格式如下所示。

(1)CTD返回的数据格式为:温度,电导率,压力,盐度,声速,日期,时间。

(2)甲烷返回的数据格式为:1:甲烷浓度对应的电压值;2:温度;3:保留;4:保留;5:保留;6:保留;7:保留;8:保留。

(3)自研CO2返回的数据格式为:开始标志,年月,日,时,分,秒,参考A/D,当前A/D,未校正CO2浓度,校正后CO2浓度,传感器温度,气压,内部电池温度,电源电压,记录器温度,模拟输入1,模拟输入2,数字输入1,数字输入2。

(4)MiniCO2返回的数据格式为:CO2浓度。

2 串口扩展

串口扩展部分是数据采集器中的重要部分,它主要负责接收各种传感器探测获得的数据、将微控制器发送的指令传达给部分传感器以及将接收到的数据再返回到微控制器,微控制器再进行相应的分类存储。在此部分的设计中,选用了CH438Q芯片进行串口扩展。CH438Q芯片可以扩展为8路串口,只需要在控制部分进行相应的初始化配置即可使用,而不会影响单片机自身具备的串口功能,且支持最高4 Mbit/s的通讯波特率,可以用于单片机/嵌入式系统的RS232串口扩展、带自动硬件速率控制的高速串口等,支持串口低功耗睡眠模式。CH438Q与STM32通信原理如图2所示。

图2 CH438Q与STM32F103RCT6通信原理图

CH438Q集成扩展出来的通信接口为TTL电平,在本次数据采集器中所要搭载的传感器均为RS232通信方式,因此,在串口扩展设计模块中,需要采用MAX3232芯片将TTL电平转换成RS232电平与传感器进行通信。

3 控制部分设计

微控制器采用STM32F103RCT6芯片,它基于高性能、低成本、低功耗嵌入式应用的ARMCortex-M3内核,采用ARM V7构架,支持Thum-2指令集,具有位带操作、定时器、可嵌套中断、低成本、低功耗、接口丰富等优势[5]。

在数据采集系统中,STM32微控制器负责对串口扩展模块中的CH438Q寄存器进行初始化、将采集到的数据进行整合、存储以及对整个系统运行进行监测。微控制器主要功能示意图如图3所示。

图3 控制模块主要功能示意图

控制模块的软件设计部分是在Keil uVision5集成开发环境下完成的。软件架构基于模块化思想,针对不同的功能模块进行函数封装,提高了软件重用性和简洁性。

3.1 CH438软件配置

CH438Q芯片内部具有8个完全独立的异步串口,在寄存器地址空间分布上,每个串口各占用8个字节的地址空间。对CH438Q的串口进行初始化要根据串口号对应的地址进行相应的设置,主要包括:波特率、内部时钟频率、FIFO的设置。

(1)波特率的设置是基于搭载传感器的波特率大小选择的。在本次试验中将串口1的波特率设置为115 200 bit/s,其他串口统一设置为9 600 bit/s。

(2)内部时钟频率的大小要根据CH438Q外部晶体的大小进行计算,其计算公式为:

设计中选用了频率为7.372 8 MHz石英振荡器作为外部晶振,以1.843 2 MHz作为串口内部基准时钟,所需波特率为9 600 bit/s,则公式计算后,内部时钟频率大小为0.614 4 MHz。

(3)设置FIFO模式为打开状态,触发点为112字节,便于数据缓存。

3.2 数据处理

考虑到所搭载传感器的数量和返回数据的重复,有必要对数据进行相应的处理,这样有利于数据的存储以及后期处理。

微控制器将接收到CTD传感器、甲烷传感器、MiniCO2传感器、自研CO2传感器、舱内温湿度传感器以及pH传感器数据,每个传感器保留必要的数据后并用分号隔开进行组合。数据处理后的格式为:标志位,日期,时间,温度,电导率,压力,溶解氧,盐度,声速;甲烷浓度;参考A/D,当前A/D,未校正CO2浓度,校正后CO2浓度,传感器温度,气压,内部电池温度,电源电压;CO2浓度;舱内温度,舱内湿度;pH值。

3.3 数据存取

存储模块应具有非易失性,及在掉电后的数据不会被丢失。常用的有固化存储器主要包括FLASH、E2PROM和SD卡[6]。

在深海探测时,由于深度原因,数据一般无法进行实时传输到水面,可以采用大容量存储设备,以存储数据。这里选用SD卡作为数据存储器是非常合适的。它不仅容量可以做到很大(32 GB以上),而且方便移动,并且有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸等),能满足不同应用的要求。

微控制器在将数据处理完成之后,将数据以.TXT文件格式存储到SD卡之中,并以时间作为文件名。此外,为了方便测试后数据读取处理,设计了USB的硬件接口功能并编制了相应的控制程序,方便了数据的读取。

4 近海实验结果

数据采集系统装载在耐压舱体中,通过定制电缆分别与CTD传感器、甲烷传感器、自研CO2传感器、MiniCO2传感器等进行连接,工作电源由AUV提供24 V直流电源。近海试验表明,数据采集器在长时间运行下可以稳定工作,通过USB读取的实验数据分类存储完整,达到了预期目标。部分实验数据整理后如表2~表4所示。

表2 CTD传感器数据

表3 甲烷和MiniCO2传感器数据

表4 自研CO2、温湿度、pH传感器数据

5 结束语

针对于深海资源探测设计的数据采集系统,在完成了串口扩展问题的基础上,不仅做到了集成度高、低功耗、低成本,还可以根据不同的探测任务需求,灵活搭载不同的传感器。后期还可以针对微控制器STM32功能进行深入开发,设计不同的功能模块,满足不同领域通信控制和数据传输的需求。

猜你喜欢

数据格式微控制器串口
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
MCS—51单片机中的多串口通讯技术的应用
一种融合多业务的信息化系统框架研究
电磁导向智能车设计探讨
基于MC9S08QG8低端微控制器的无线控制器设计
基于VC串口通信的实现