海洋占地球表面的71%,是各国分别占有和世界共有的。世界海洋中有2.5亿平方千米公海和国际海底区域,其中有丰富的共有海洋资源。海洋是富饶而未充分开发的资源宝库。随着陆地战略资源的日益短缺,沿海各国不断加大向海洋索取资源的力度和强度。因此,开发一种可采集深海环境信息的设备,对深入开发海洋资源,具有极其重要的作用。已有的深海环境信息采集系统有采样精度低、功耗大等缺点,无法长期在水下工作,不适于深海勘探。本文提出的深海环境数据采集系统可用于4 000 m深海环境,不仅能对温度、压力、盐度等信息进行采集,还可以自动存储到Flash中,并上传到上位机进行显示、分析。该系统具有精度高、功耗低等优点,一次充电可工作一年左右,非常适合深海探测。
1 硬件电路设计
数据采集系统主要由主控制器、存储器、时钟信号模块、A/D转换模块和传感器模块组成。主控制器是数据采集系统的核心,控制系统同时对3路传感器信号进行采样,将采集到的大量数据(2 M)存储到Flash中,掉电数据不丢失。完成一个工作周期后,系统自动进入睡眠状态。在设备出水后,工作人员可以通过人机界面对采集到的每路数据进行读取,并进行动态曲线显示,读取后的数据自动存入上位机。同时,还可以通过人机界面设定下次工作时的系统睡眠时间和采样时间间隔。系统整体结构框图如图1所示。
1.1 主控制器
NSP430是TI公司近几年推出的16位系列单片机,采用了最新低功耗技术。NSP430F169工作在1.8~3.6 V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPN1、LPM2、LPM3、LPM4),并可在各种工作模式之间切换。此外,MSP430F169单片机集成了多通道12 bit的A/D转换、片内精密比较器、多个具有PWM功能的定时器、斜边A/D转换、片内USART、看门狗定时器、片内数控振荡器(DCO)、大量的I/O端口以及大容量的片内存储器,可以满足绝大多数的应用需要。
1.2 存储器
存储器选用基于SPI通信模式的SST25VF020芯片,它是SST25VF系列产品中的一员,有以下特点:总容量为2 M;单电源读和写操作,工作电压为2.7~3.3 V;低功耗,工作电流为7 mA,等待电流为3μA;时钟频率高达33 MHz,快速编程、快速擦除、快速读取;小型一致闪区尺寸4 kB;数据保存100年;CMOS I/O兼容等。芯片引脚功能如表1所示。
[page]
1.3 时钟信号模块
DS1302是Dallas公司推出的一款高性能、低功耗的实时时钟芯片,附加31 Bytes静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能,时钟操作可通过AM/PM指示决定。采用24或12 h格式。工作电压宽达2.5~5.5 V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302与单片机之间能采用同步串行的方式进行通信仅需用到3个口线,1)RES复位;2)I/O数据线;3)SCLK串行时钟。RAM的读/写数据以1 Bvte或多达31 Byte的字符组方式通信,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1 mW。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。芯片引脚功能如表2所示,电路原理图如图2所示。
1.4 A/D转换模块
A/D转换模块选用ADS1100,它是采用2.7~5.5 V单电源供电的连续自校准模/数(A/D)转换器。它具有高分辨率、接口简单、比例放大、功耗低、体积小等优点。ADS1100电源电压为基准电压,可按比例进行A/D转换,同时带有差分输入且具有高达16 bit的分辨率。
ADS1100每秒可采样8、16、32或128次以进行A/D转换,并提供I2C端口与外部通信。片内可编程增益放大器(PGA)能提供高达8倍的增益,允许对小信号进行测量。ADS1100有2种工作方式:单周期转换方式和连续周期转换方式。在单周期转换方式中,ADS1100进行一次A/D转换后将自动掉电以减少电流消耗。芯片引脚功能如表3所示,电路原理如图3所示。
[page]
2 系统软件设计
上电后,首先进行系统初始化,如果没有到达设定工作时间,直接进入睡眠状态,否则,启动一次A/D转换,对当前深海环境信息进行采集,并读取采样时刻,将采集得到的数据和采样时刻一起存储到Flash中,直到完成设定的采样次数,然后进入睡眠状态,等待下一次工作时间的到来。系统程序流程如图4所示。
系统关键源程序如下:
3 人机界面设计
人机界面如图5所示。
下水前,点击电路板复位按钮,启动下位机程序,同时,打开界面,连接串口;点击擦除Flash按钮,清空Flash中的原有数据,为下次存储做准备;点击发送按钮,对系统工作模式进行设置(如设定好,此步骤可省略);点击地址复位按钮,使地址指针指向地址开端;点击Fl-ash初始化按钮。设置Flash工作模式,并初始化为写状态;点击确定或者取消按钮,退出界面,设备下水。
出水后,首先,打开界面,连接串口;点击地址复位按钮,再点击1路按钮,读取压力数据,存储后点击擦除按钮擦除:点击地址复位按钮,再点击2路按钮,读取浊度数据,存储后点击擦除按钮擦除;点击地址复位按钮,再点击3路按钮,读取温度数据,存储后点击擦除按钮擦除;点击确定或者取消按钮,退出界面。
4 结论
本文在已有的相关系统基础上,设计并完成了一种基于MSP430F169的深海环境信息采集系统,克服采样精度低和系统功耗过高等缺点,满足深海探测的需要。但系统仍然存在一些不足,如采样通道不足,采样点分布不均等,在以后的工作中需要进一步改善。
关键字:数据采集 SST25VF020 单片机 MSP430F169
引用地址:
基于MSP430F169的深海环境数据采集系统设计
推荐阅读最新更新时间:2024-03-30 22:14
PIC单片机DS18B20温度报警程序及仿真
1、采用直插式数字温度传感器DS18B20; 2、本程序只显示正数部分,负数部分请自行解决,而且精度保留后两位; 3、使用DS18B20的跳过ROM指令,不支持单总线多个传感器的采集; 4、采用pic18f45k22芯片及共阴极数码管显示; 5、源程序如下: *#include “p18f45k22.h” *#define uchar unsigned char *#define DQ PORTBbits.RB0 *#define DQ_HIGH() TRISBbits.RB0=1 *#define DQ_LOW() TRISBbits.RB0=0;DQ=0 uint tempr; uchar a1,
[单片机]
AVR单片机教程——随机点亮LED
之前我们做的闪烁LED和流水灯,灯效都是循环的。这次我们来尝试一些不一样的——每一次随机选择一个LED并点亮。 要实现随机的效果,我们要用C语言标准库中的相关设施: 1 #define RAND_MAX /*implementation defined*/ 2 int rand(); 3 void srand(unsigned seed); 以上设施都定义在 stdlib.h 中。其中,rand() 可以返回 范围内的伪随机整数,srand() 用于给 rand() 提供种子,当种子相同时,多次调用 rand() 得到的序列是相同的,这就是为什么称 rand() 产生的数为“伪随机数”。如果使用 rand() 之前没有
[单片机]
#51单片机#中断实现按键消抖
在实际工程中常用到中断的算法来实现按键消抖。 思路:启动一个定时中断,每2ms进一次中断扫描按键状态并储存。连续扫描8次后,观察这8次按键状态是否一致。如果一致,即按键没有发生动作,处于稳定状态。 被监测到的按键动作,通常如下图所示: 具体代码如下: #include reg52.h unsigned char code LedChar ={//数码管显示的数字0~9。 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; sbit KEY1 = P3^3; sbit DigitalTube = P1^0; bit KeySta = 1; //当前按
[单片机]
基于c51单片机8位数码管显示电子时钟程序
/* 8位数码管显示 时间格式 05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include reg52.h sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED =P1^2; //定义指示灯参数 code unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned
[单片机]
51系列单片机之串口通信
单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了.而前面学习过的定时器与中断将是单片机通信的基础. 单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤,而串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了.我在实验过程中用到的是1号定时器来设定的波特率,用到了计时器方式2,也就是8位自动重装,这样可以简化编程,她的实现思想
[单片机]
如何自制一个AVR单片机ISP下载线
自制AVR单片机ISP下载线单片机编程器的作用是将调试好的程序烧写到单片机的存储器中。本文介绍的AVR单片机ISP下载线的成本只有10元左右,非常适合初学者自制。 AVR单片机的程序可以使用串行在线编程(ISP)方式下载写入,即可直接在电路板上进行程序的烧写和修改,所需的装置就是一根ISP下载线。 本文介绍的ISP下载线使用计算机的并口对单片机编程.不仅支持AVR单片机,也支持对51单片机中AT89S系列单片机的编程。 一、下载线电路 下载线的电路见图1。该下载线是STK200/300型的下载线。74HC244是8缓冲器电路,用来作计算机并口和单片机的缓冲隔离。图1中的LPT连接到计算机的并口,作计算机上的下载软件和单片机进行
[单片机]
基于AT89C52的超声波测距倒车防撞报警系统设计
摘要:利用AT89C52单片机作为主控制器,结合超声波测距原理,实现倒车防撞报警功能。进行系统硬件和软件的设计,检波接收电路和温度补偿电路分别采用了CX20106A和DSl8820两款集成芯片,减小了电路间的相互干扰,提高了精度。该系统的最大测距误差不超过1 cm,测距范围为10~300 cm。另外,系统还具有结构简单,体积小,使用方便等特点。 0 引言 随着国民经济的高速发展,我国汽车的拥有量在大幅增加,造成道路拥堵,交通事故频发,给人们的生命和财产安全带来了巨大的损失。安全驾驶成为大家关注的焦点,其中汽车防撞系统(Collision Avoidance System,CAS)的设计和需求显得非常重要和迫切。针对
[汽车电子]
基于MSP430单片机及USB总线的便携式血压计
目前,市场上的血压计大部分仍是水银血压计,电子血压计在国外已经大量普及,而我国才开始应用。水银血压计每次测量必须由医生戴上听诊器进行测量,测量过程复杂,而且不同的医生,测量结果可能不同。而电子血压计弥补了水银血压计的不足。本文使用低功耗MSP430单片机对人体血压信号进行采集,通过USB控制芯片CH375将这些数据存储到U盘中,可以通过PC机的软件分析一天中血压的变化。 1 硬件设计 1.1芯片介绍 MSP430是近几年流行的16位单片机,由于它具有超低功耗(在5V电压下运行于12MHz的80C51工作电流达到十几mA;而MSP430在3V时的工作电流为340μA,在2.2V的工作电流为220μA)、众多的片内
[单片机]