基于C8051F单片机的便携式波高数据采集系统

2014-03-22 00:42阳志杰王金海
仪表技术与传感器 2014年8期
关键词:波高缓冲区字节

王 臣,郑 羽,阳志杰,王金海

(天津工业大学电子与信息工程学院,天津 300387)

0 引言

一般水工学者对波浪的研究是通过在实验室水槽中利用造波机来模拟自然环境下的波浪,并利用波高传感器对试验水槽中多点进行实时的波高数据采集并对采集的数据进行分析和处理,从而为水工实验提供准确可靠的波浪参数[1]。传统的波高数据采集系统直接将采集的数据传给上位机进行处理,无法脱离上位机进行数据采集,并且由于水工实验环境的限制,当市电接入不方便时,采集系统无法工作。因此研究一款能够在水工实验环境下实时采集、显示、存储波高数据的便携式波高数据采集系统非常必要。

1 系统总体结构及工作原理

该系统整体结构如图1所示。由图1可以看出,整个采集系统由波高传感器、A/D转换器、系统控制芯片、温度传感器、LCD液晶、FLASH数据存储器、电源模块以及与上位机通信模块等组成。

图1 系统总体结构框图

波高传感器主要用于将波浪的高度值转化为电压信号并对电压信号进行放大和滤波后输出,以实现对波高的检测;A/D转换器用来实现将模拟信号(采集的电压信号)转化为数字信号,以便控制器的进一步处理;系统控制芯片主要负责整个系统的数据采集,实时显示和存储的基本指令,以及对整个系统工作时序的控制,它是整个采集系统中最重要的一部分;显示与存储器主要负责对采集的数据实时显示与存储;BS18B20负责水温的采集;电源模块是整个系统的动力;通信模块是整个系统与上位机信息交互的渠道。

2 系统硬件电路设计

2.1波高传感器

传感器采用电容式波高传感器,该传感器主要是将波高值转化为电压值并输出,其检测误差小于0.5% F·S,输出电压范围为-5~+5 V,测量长度为60 cm,满足水工实验中对波高数据采集的需要。传感器结构图如图2所示。

图2 波高传感器结构图

它的正极由聚乙烯绝缘材料所包裹的金属线构成,负极为裸露的金属杆,由正极和负极构成的电容器的容值取决于传感器入水长度、金属线半径、金属线包裹层厚度及包裹层的介电常数,影响因素中除了传感器深入水中的长度不断变化外,其余因素为固定常数,因此电容值与传感器放入水中的长度正相关,检测电路通过检测电容器的电容值便可得出水位的高度。因在测量的过程中由于水温的变化会对绝缘材料的介电常数有影响,从而影响测量的精度,所以需要通过温度补偿来减小测量值的误差。该传感器的数学模型如下:

H=(0.014 840 435-0.000 131 39T)U-

0.001 421T2+0.237 141T-7.230 89

(1)

式中:T为水温值;U为传感器输出电压值;H为对应的水位值。

系统采用不锈钢封装的防水型DS18B20温度探头来指示水温,它可通过单线与单片机进行通信。编程时,通过DS18B20测出的水温值和传感器输出的电压值与传感器数学模型相结合,便可以求出所测水位值。

2.2微处理器

考虑到系统成本和低功耗的要求,采用C8051F023单片机作为系统的主控芯片。它的供电电压为2.7~3.6 V,具有丰富的数字外设接口,可同时使用的硬件接口包括SMBus、SPI及2个UART串口,其70%的指令执行时间仅为1个或2个系统时钟周期,明显提高了指令执行效率[2]。主控芯片硬件连接图如图3所示。

图3 C851F023硬件连接图

2.3A/D转换

模数转换芯片采用AD7888,它是一款高速低功耗12位模数转换器,工作电压为2.7~5.25 V,最大采样速率为125 kSPS,正常工作时功率为2 mW,掉电状态下功率为3 μW,制作工艺采用CMOS,降低了功率消耗。它包含8路模拟输入,并可通过SPI串行接口与单片机进行通信,设计中,AD7888的选通信号通过单片机的I/O端口P1.2来提供。

因AD7888是高分辨率的ADC,电源的耦合电路尤为重要,在对电路设计时,对所有模拟电源的输入加一级去耦电路,在制作PCB板时,为了使去耦效果更好,并且消除因连接线路太长带来的干扰,去耦电容应靠近芯片的电源引脚。

2.4显示模块

采用带字库的HS12864-LYH点阵图形液晶作为系统的显示模块,该模块工作电压为3.5~5.5 V,内置8 192个16×16点汉字和128个16×8点ASCII字符集。模块接口方式灵活简单、指令操作方便,编码时可以方便地构成全中文人机交互界面。该液晶模块显示屏尺寸为66.52 mm×33.24 mm,显示分辨率为128×64,可以显示8×4行16×16点阵的汉字,也可完成图形显示,通过该显示模块用户可以清楚地看到采集的数字信号及采集的信号波形。

2.5存储模块

图4 数据存储

2.6电源模块

为了使仪器使用方便,采用输出电压为12 V的可充电锂电池给系统供电,考虑到电池在使用的过程中会随着自身电量减少,导致供电电压不足,需采用稳压电源模块给系统提供相对稳定的电压。

系统需要+5 V电源给液晶供电,考虑到能耗和电源转换效率,采用AS1117-5芯片将电池输出的+12 V电压转化为+5 V电压,该芯片输入电压范围为7.5~12 V,这保证了随着电路的耗能而使蓄电池输出电压降低时,AS1117-5芯片仍可输出+5 V电压,使系统继续正常工作;另外系统还需要+3.3 V的电压,经过筛选,采用78LC33模块将+5 V电压转化为+3.3 V.系统电源模块电路图如图5所示。

图5 电源电路

为了节约能源使系统能够较长时间的工作,电路中的器件尽量都采用节电的CMOS器件,并且尽量都采用低功耗的SOP封装形式,这样可以将系统的功耗大幅度降低[3]。

2.7通信模块

采用MAX3221E芯片作为该通信模块的主控芯片,作为双向驱动接收器,它可以将单片机I/O口的逻辑电平信号转变成RS-232电平信号,也可以RS-232电平信号转变成单片机I/O口所需的逻辑电平信号。通信模块连接图如图6所示,系统可以通过该模块来实现与上位机的通信功能,将采集到的数据传给上位机软件。

图6 数据通信

3 系统软件设计

系统软件设计包括单片机各功能模块的程序设计、应用程序设计2个部分。系统流程图如图7所示。

图7 系统流程图

系统初始化时,通过配置交叉开关为UART0 、SPI0分配端口引脚,按 UART0EN=1、SPI0EN=1设置XBR0=0X06,XBR1=0X00,XBR2=0X40。当开始进行数据采集时,启动定时器3,使其定时0.5 s进入中断处理程序,将采集的数据进行实时处理并且进行显示与存储。下面重点介绍A/D转化、数据存储以及应用程序的设计过程。

3.1A/D转换程序设计

图8 数据转换流程图

3.2数据存储程序设计

图9 AT45DB161D功能框图

当进行数据写入时,可以先将数据写入缓冲区(512字节),当缓冲区写满后,再将缓冲区中的数据导入到主存储器中。数据写入缓冲区的指令格式为:操作码(缓冲区1操作码84H 缓冲区2 操作码87H)+3字节地址+要写入的数据,3字节地址由15个无关位和9位缓冲区地址组成。数据从缓冲区写入主存储器的指令格式为:操作码(缓冲区1 操作码83H 缓冲区2 操作码86H)+3字节地址,3字节地址由3个无关位、12位地址位以及9个无关位组成。

当进行数据读取时,可以一次对1个页(512字节)进行连续的读取,读取数据指令格式为:操作码(E8H)+3字节地址+4无关字节,3字节地址由3个无关位、12位页地址以及9位页内地址组成。当读到一个页的结尾时,会从下一页开头继续读取。存储器数据读/写流程图如图10所示。

图10 数据读/写流程图

3.3系统应用程序设计

采用C#语言在Visual Studio 2010.NET 编程环境下进行系统应用程序的设计,通过上位机软件读取Flash存储器中的数据并将读取的数据保存到数据库中,读取结束后可以对读取的数据做进一步处理。应用程序流程图如图11所示。

图11 应用程序流程图

系统主要使用.NET类库中的SerialPort类来实现与下位机的通信,并且为了提高系统的并发能力,采用多线程的编程思想实现在主线程中利用Thread类创建通信线程和数据存储线程,通信线程主要完成将接收的数据放入接收缓存队列中,数据存储线程负责将缓存队列中接收到的数据保存到数据库中。数据处理主要包括对采集的波高值进行波浪统计和功率谱分析,由于原始数据是数据处理的依据,不可随意修改其内容,在设计过程中对数据库文件进行了加密处理。上位机采集界面如图12所示,当下位机收到上位机发送的十六进制数0A 0B 0C 0D时,下位机将FLASH存数器中的数据依次传给上位机。

图12 采集界面

4 结束语

文中详细介绍了整个系统的设计思想和设计流程,并对系统一些主要模块从硬件方面和软件方面做了具体的阐述。另外,在系统机体外壳设计上,为了满足便携的要求,设计该系统外壳长×宽×高=200 mm×100 mm×80 mm,经测试,在可充电锂电池充满电后系统可正常工作10 h左右。与现有波高采集系统相比,该系统携带方便,操作简单,数据采集实时高效并且可以脱离市电正常工作,满足水工实验的需求。

参考文献:

[1]李宏伟.数值水池造波方法研究:[学位论文].哈尔滨:哈尔滨工程大学,2009.

[2]潘琢金.C8051F020 /1 /2 /3混合信号ISP FLASH 微控制器数据手册.沈阳:新华龙电子公司,2005:7-11.

[3]姚东伟,王培先,张江波.便携式倾角传感器的研究设计.仪表技术与传感器,2012(11):25-27.

[4]马立国.AD7888与AT89C51单片机接口应用技术.集成电路通讯,2007,25(2):32-36.

[5]张俊谟.SOC 单片机原理与应用——基于C8051F 系列.北京:北京航空航天大学出版社,2007:35-48.

猜你喜欢
波高缓冲区字节
No.8 字节跳动将推出独立出口电商APP
珊瑚礁地形上破碎波高试验研究
基于漂流浮标的南大洋卫星高度计有效波高研究
海堤设计波高计算
复合土工膜缺陷条件下平原水库波高分布研究
No.10 “字节跳动手机”要来了?
一类装配支线缓冲区配置的两阶段求解方法研究
关键链技术缓冲区的确定方法研究
初涉缓冲区
多目标缓冲区生成算法