文档库 最新最全的文档下载
当前位置:文档库 › 基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)

基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)

基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)
基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)

课程设计(论文)任务书

信息工程学院物联网专业2014-2 班

一、课程设计(论文)题目基于Ucos 的多通道数据采集系统

二、课程设计(论文)工作自2017 年06 月26 日起至2017 年06 月30 日止。三、

课程设计(论文) 地点:嵌入式系统实验室

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)使学生掌握嵌入式开发板(实验箱)各功能模块的基本工作原理;

(2)培养嵌入式系统的应用能力及嵌入式软件的开发能力;

(3)使学生较熟练地应用嵌入式操作系统及其API 开发嵌入式应用软件;

(4)培养学生分析、解决问题的能力;

(5)提高学生的科技论文写作能力。

2.课程设计的任务及要求

1)基本要求:

(1)分析所设计嵌入式软件系统中各功能模块的实现机制;

(2)选用合适嵌入式操作系统及其API;

(3)编码实现最终的嵌入式软件系统;

(4)在实验箱上调试、测试并获得最终结果。

2)创新要求:

在基本要求达到后,可进行创新设计,如改善嵌入式软件实时性能;扩展嵌入式软件功能及改善其图形用户界面。

3)课程设计论文编写要求

(1)要按照书稿的规格打印誊写课程设计论文。

(2)论文包括目录、正文、小结、参考文献、谢辞、附录等(以上可作微调)。

(3)课程设计论文装订按学校的统一要求完成。

4)课程设计评分标准:

(1)学习态度:20 分;

(2)回答问题及系统演示:30 分

(3)课程设计报告书论文质量:50 分。

成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。

5)参考文献:

(1)罗蕾.《嵌入式实时操作系统及应用开发》北京航空航天大学出版社

(2)Jean https://www.wendangku.net/doc/0b19153014.html,brosse. 《嵌入式实时操作系统uC/OS-II》北京航空航天大学出版社

(3)王田苗.《嵌入式设计与开发实例》.北京航空航天大学出版社

(4)北京博创科技公司. 《嵌入式系统实验指导书》

6)课程设计进度安排

(1)准备阶段(4 学时):选择设计题目、了解设计目的要求、查阅相关资料。

(2)嵌入式软件设计分析阶段(4 学时):程序总体设计、详细设计。

(3)嵌入式软件代码编写调试阶段(8 学时):程序模块代码编写、调试、测试。

(4)撰写论文阶段(4 学时):总结课程设计任务和设计内容,撰写课程设计论文。

7)课程设计题目具体要求:

本题的具体任务是设计多任务的嵌入式软件——,通过分析、设计、编程、调试、测试等步骤,形成一个基于ucos 可稳定运行的嵌入式多任务软件系统。

学生签名:

2017 年6 月26 日

课程设计(论文)评审意见

(1)考勤(10 分):优()、良()、中()、一般()、差();

(2)系统设计(20 分):优()、良()、中()、一般()、差();

(3)编程调试(10 分):优()、良()、中()、一般()、差();

(4)回答问题(15 分):优()、良()、中()、一般()、差();

(5)论文撰写(35 分):优()、良()、中()、一般()、差();

(6)创新思想(10 分):优()、良()、中()、一般()、差();综合评定等级:

评阅人:职称:副教授

2017 年6 月30 日

目录

一、课设目的及内容 (1)

1.1课设目的 (1)

1.2课设内容 (1)

二、设计的原理 (2)

2.1总体设计原理 (2)

2.2A/D 转换器原理 (2)

2.3基于uc/os2II 的系统程序流程 (3)

三、环境搭建及开发环境 (5)

四、主要程序代码设计 (7)

五、运行测试结果 (20)

六、心得体会 (22)

七、参考文献 (23)

一、课设目的及内容

1.1课设目的

在二十一世纪的今日,人们生活在一个信息的的时代,各种各样不同的信息给予我们很多不同的选择。对于信息的需求,各类人有着不同的需求,但是肯定的是,对于信息的重要性大家已经有了认识。数据采集已经成为一种专业的技术,在各个领域得到了广泛的应用。数据采集系统起源于 20 世纪50 年代,并当即就获得了初步的认可,在很多的地方得到了运用。在 60 年代前后,国外就有了用于专业数据采集的系统。20 世纪 70 年代后期,随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集系统。由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因而获得了惊人的发展。到了现在,经过更长久的发展,嵌入式系统已经走进千家万户,嵌入式的数据采集系统不仅功耗低,而且操作简单,正适合应用于在家中,路上或者生活中的各处。

1.2课设内容

一、基本要求(必做)

(1)求出四路通道的平均值,并绘制在显示屏上(平均值应该象其他通道的值一样,可以根据实时采集值的变化而变化)。

(2)报警,在超出阈值时报警一次,如果此后此通道的值不变则不再报警,若此通道的值被调小为小于阈值而后又被调为大于阈值,则再次报警

一次。

(3)设置时间和日期初值,并实时显示在 LCD 上(同各通道的值同屏显示)。并能够在整点的时候发声提示。

二、提高要求(选做)

在一的基础上利用四路通道平均值的大小控制电机的转动速度,使电机实时转动。

二、设计的原理

2.1 总体设计原理

本系统由硬件和软件两部分组成。硬件以AT89C51 和12 位ADC芯片AD574A为核心, 具有键盘控制和液晶显示功能,并有一路数模转换输出。该系统还具有实时时间显示和看门狗功能,可以通过RS232 和GPIB接口以便与外部(微机)通信。系统的软件以实时嵌入式操作系统uc/os2 为基础,采用多任务机制,通过任务调度和任务监视,系统具有较好的实时性和安全性。uc/os2II是源码公开的实时嵌入式操作系统,采用优先级调度算法完成任务间的调度,并支持抢占式调度。uc/os2II具有可裁减的体系结构,并具有内存管理、中断管理和任务控制块(TCB)扩展的功能。

uc/os2II还提供很多系统服务,例如邮箱、消息队列、信号量等等。

2.2A/D 转换器原理

主要介绍以下三种方法:逐次逼近法、双积分法、电压频率转换法

1)逐次逼近法

逐次逼近式A/D是比较常见的一种A/D转换电路,转换的时间为微秒级。

采用逐次逼近法的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成,如图所示。

基本原理是从高位到低位逐位试探比较,好像用天平称物体,从重到轻逐级增减

砝码进行试探。

逐次逼近法的转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高位置 1,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为 Vo,与送入比较器的待转换的模拟量Vi进行比较,若Vo

位1 被保留,否则被清除。然后再置逐次逼近寄存器次高位为 1,将寄存器中新的数字量送D/A转换器,输出的 Vo再与Vi比较,若Vo

数字量送入缓冲寄存器,得到数

字量的输出。逐次逼近的操作过程是在一个控制电路的控制下进行的。

2)双积分法

采用双积分法的A/D转换器由电子开关、积分器、比较器和控制逻辑等部件组成。如图所示。基本原理是将输入电压变换成与其平均值成正比的时间间隔,再把此时间间隔转换成数字量,属于间接转换。

双积分法

积分法A/D转换的过程是:先将开关接通待转换的模拟量Vi,Vi采样输入到积分器,积分器从零开始进行固定时间T的正向积分,时间T到后,开关再接通与Vi极性相反的基准电压VREF,将VREF输入到积分器,进行反向积分,直到输出为 0V 时停止积分。Vi越大,积分器输出电压越大,反向积分时间也越长。计数器在反向积分时间内所计的数值,就是输入模拟电压Vi所对应的数字量,实现了A/D转换。

3)电压频率转换法

采用电压频率转换法的A/D转换器,由计数器、控制门及一个具有恒定时间的时钟门控制信号组成,它的工作原理是V/F转换电路把输入的模拟电压转换成与模拟电压成正比的脉冲信号。电压频率转换法的工作过程是:当模拟电压Vi加到V/F 的输入端,便产生频率F与Vi成正比的脉冲,在一定的时间内对该脉冲信号计数,时间到,统计到计数器的计数值正比于输入电压Vi,从而完成A/D转换。

2.3基于uc/os2II 的系统程序流程

基于uc/os2II的程序流程如图 1 所示。程序中,每个模块对应一个任务,彼此之间是并行的,但每个模块都对应着一个不同的优先级,由操作系统进行调度运行。系统可以通过监控模块对其他模块的工作进行监控,从而减少看门狗的复位次数。而且通过uc/os2II内核的任务调度,系统的实时性会提高很多。

图 1 基于uc/os2II的程序流程

图2 传统程序流程图

三、环境搭建及开发环境

系统的硬件组成框图如图 3 所示。信号经前向处理后,通过多路模拟开关和采样保持器,输入到A/D转换芯片进行数据采集。经A/D转换后的数字量被单片机读入, 经处理后由通信接口读入微机进行进一步的处理和分析,同时也可由D/A芯片进行数/模转换得到一路模拟信号。液晶有系统提示和实时时间显示,可以通过键盘进行选择和控制。

图 3 系统组成框图

系统信号前向处理电路包括自动增益控制和滤波电路,8 路模拟开关CD4051。A/D 转换采用AD公司的 12 位逐次逼近式ADC,适合高精度数据采集,转换时间可达

25us;D/A转换采用美国国民半导体公司的DAC0832 芯片。系统外部扩展 32kROM和RAM,供缓存数据和存贮程序。液晶采用日本DMC系列产品中的DMC24138,可以在一行上显示 24 个5×11 点阵字符。时间芯片采用的是M48T86,具有实时时间和日历显示功能。整个系统采用全地址译码法,外部设备和存储器统一编址。CPU访问外

部存贮器的一切指令均可用于对I/O端口的访问,大大增强了CPU对外设端口信息的处理能力。

1、A/D转换器

在本设计所选用的LPC2138 硬件系统中带有A/D转换器. 特性:

(1)、10 位逐次逼近式模数转换器

(2)、8 个管脚复用为输入脚

(3)、掉电模式

(4)、测量范围:0~3V

(5)、10 位转换时间>=2.44US

(6)、一个或多个输入的 Burst 转换模式

(7)、可选择由输入跳变或定时器匹配信号触发转换

(8)、2 个转换器的全局启动命令

描述: A/D 转换器的基本时钟由 VPB 时钟提供。每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的 4.5MHZ。完全满足精度要求的转换需

要11 个这样的时钟。

2、4X4 键盘

键盘按与微控制器的连接方式,其结构可分为线性键盘和矩阵键盘两种形式。

线性键盘由若干个独立的案件组成,每个按键的一端与微控制器的一个 I/O 口相连。有多少个键就要有多少根线与微控制器的 I/O 口相连,适用于按键少的场合。矩阵

键盘的按键按 N 行M 列排列。根据矩阵键盘的识键和译键的不同,矩阵键盘又可

以分为非编码键盘和编码键盘两种。非编码键盘主要用软件的方法识键和译键。

根据扫描方法的不同,可以分为行扫描法,列扫描法和反转法三种。在本设计中,使用了节省口线的行扫描法来检测键盘,与 4X4 的矩阵键盘接口只需要 8 根口线,

设置 KEY1~KEY 为输出扫描码的端口,KEYA~KEYB 为键值读入口。

3、LCD 显示模块

在这里应用了 LCD 显示模块来进行数据的输出。GUI 即图形用户接口,是操作

系统和用户的人机接口。 GUI 是一种嵌入式应用中的图形支持系统。它设计用于

为任何使用 LCD 图形显示的应用提供高效的独立于处理器和 LCD 控制器的图形

用户接口,它适用单任务或是多任务系统环境,并适用于任意 LCD 控制器

和 CPU 下任何尺寸的真实显示或是虚拟显示。它的设计结构是模块化的,由不同模

块中的不同层组成,由一个 LCD 驱动层来包含所有对 LCD 的具体图形操作。使

用 GUI 来控制 LCD 的显示,不仅代码容易,简单,而且在任何的 CPU 上都能运行。所以本人在这里选择了这样的方式。

四、主要程序代码设计

完成要求 1:求出四路通道的平均值,并绘制在显示屏上(平均值应该象其他通道的值一样,可以根据实时采集值的变化而变化)。

#include"..\ucos-ii\includes.h" /* uC/OS interface */

#include "..\ucos-ii\add\osaddition.h"

#include "..\inc\drv.h"

#include

#include"..\inc\drv\ad.h"

#include "..\inc\drv\IIS-S3C44B0.h"

#include "..\inc\drv\OSFile.h"

#define ID_ChannelTextCtrl 101

#define ID_ValueTextCtrl 102

#define Draw_Wnd_ID 104

PTextCtrl pChannelTextCtrl,pValueTextCtrl;

float result_AD0,result_AD1,result_AD2,result_AD3,average;

int WarnningData[5]={33,33,33,33,33};

int edit[2]={0,0};

int buffer[AUDIO_IN_BUFFERSIZE*20];

///******************任务定义***************///

OS_STK Main_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void Main_Task(void *Id); //Main_Test_Task

#define Main_Task_Prio 12

OS_STK Display_Task_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void Display_Task(void *Id); //Main_Test_Task

#define Display_Task_Prio 20

OS_STK AD0_Task_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void AD0_Task(void *Id); //Main_Test_Task

#define AD0_Task_Prio 21

OS_STK AD1_Task_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void AD1_Task(void *Id); //Main_Test_Task

#define AD1_Task_Prio 22

OS_STK AD2_Task_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void AD2_Task(void *Id); //Main_Test_Task

#define AD2_Task_Prio 23

OS_STK AD3_Task_Stack[STACKSIZE*8]={0, }; //Main_Test_Task 堆栈

void AD3_Task(void *Id); //Main_Test_Task

#define AD3_Task_Prio 24

/**************已经定义的OS 任务*************

tcp 监控任务11

以太网物理层监控任务8

触摸屏任务9

键盘任务10

lcd 刷新任务59

系统任务 1

*****************************************************/

///*****************事件定义*****************///

OS_EVENT *Nand_Rw_Sem; //Nand_Flash 读写控制权旗语

//and you can use it as folloeing:

// Nand_Rw_Sem=OSSemCreate(1); //创建Nand-Flash 读写控制权旗语,初值为1 满足互斥条件//

// OSSemPend(Nand_Rw_Sem,0,&err);

// OSSemPost(Nand_Rw_Sem);

OS_EVENT *Uart_Rw_Sem; //Uart 读写控制权旗语

//and you can use it as folloeing:

// Uart_Rw_Sem=OSSemCreate(1); //创建Uart 读写控制权旗语,初值为1 满足互斥条件//

// OSSemPend(Uart_Rw_Sem,0,&err);

// OSSemPost(Uart_Rw_Sem);

//////////////////////////////////////////////////////////

void initOSGUI() //初始化操作系统的图形界面

{

initOSMessage();

initOSList();

initOSDC();

initOSCtrl();

initOSFile();

}

/////////////////////////////////////////////////////

// Main function. //

////////////////////////////////////////////////////

int Main(int argc, char **argv)

{

ARMTargetInit(); //开发板初始化

OSInit(); //操作系统初始化

uHALr_ResetMMU();//复位MMU

LCD_Init(); //初始化LCD 模块

LCD_printf("LCD initialization is OK\n");//向液晶屏输出数据

LCD_printf("320 x 240 Text Mode\n");

initOSGUI();//初始化图形界面

LoadFont();//调Unicode 字库

LoadConfigSys();//使用config.sys 文件配置系统设置

LCD_printf("Create task on uCOS-II...\n");

OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_Stack[STACKSIZE*8-1], Main_Task_Prio);// 创建系统任务

OSTaskCreate(Display_Task,(void *)0, (OS_STK *)&Display_Task_Stack[STACKSIZE-1], Display_Task_Prio);// 20

OSTaskCreate(AD0_Task,(void *)0, (OS_STK *)&AD0_Task_Stack[STACKSIZE-1], AD0_Task_Prio);

OSTaskCreate(AD1_Task,(void *)0, (OS_STK *)&AD1_Task_Stack[STACKSIZE-1], AD1_Task_Prio);

OSTaskCreate(AD2_Task,(void *)0, (OS_STK *)&AD2_Task_Stack[STACKSIZE-1], AD2_Task_Prio);

OSTaskCreate(AD3_Task,(void *)0, (OS_STK *)&AD3_Task_Stack[STACKSIZE-1], AD3_Task_Prio);

OSAddTask_Init();//创建系统附加任务

LCD_printf("Starting uCOS-II...\n");

LCD_printf("Entering graph mode...\n");

LCD_ChangeMode(DspGraMode);//变LCD 显示模式为文本模式

InitRtc();//初始化系统时钟

Nand_Rw_Sem=OSSemCreate(1); //创建Nand-Flash 读写控制权旗语,初值为1 满足互斥条件//

OSStart();//操作系统任务调度开始

//不会执行到这里

return 0;

}

////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////

void Wave();

//void init_ADdevice()

//{

//} //rADCPSR=20;

//rADCCON=ADCCON_SLEEP;

U8 onKey(int nkey, int fnkey) {

static BOOLEAN input=FALSE; static int EditNumber=1;

if(EditNumber==1)

{

switch(nkey)

{

case 14://OK

if(!input)

{

} else {

} SetWndCtrlFocus(NULL, ID_ChannelTextCtrl); pChannelTextCtrl->text[0]=0; //清空文本框SetTextCtrlEdit(pChannelTextCtrl, TRUE); DrawTextCtrl(pChannelTextCtrl);

input=TRUE;

edit[0]=1;

SetTextCtrlEdit(pChannelTextCtrl, FALSE); DrawTextCtrl(pChannelTextCtrl);

input=FALSE;

edit[0]=0;

EditNumber=2;

return TRUE;

case 16://Cancel

SetTextCtrlEdit(pChannelTextCtrl, FALSE);

input=FALSE;

edit[0]=0;

EditNumber=2;

return TRUE;

}

}

else if(EditNumber==2)

{

switch(nkey)

{

case 14://OK

if(!input)

{

SetWndCtrlFocus(NULL, ID_ValueTextCtrl);

pValueTextCtrl->text[0]=0; //清空文本框

SetTextCtrlEdit(pValueTextCtrl, TRUE);

} else { DrawTextCtrl(pValueTextCtrl);

input=TRUE;

edit[1]=1;

SetTextCtrlEdit(pValueTextCtrl, FALSE);

DrawTextCtrl(pValueTextCtrl);

input=FALSE;

edit[1]=0;

EditNumber=1;

WarnningData[ Unicode2Int(pChannelTextCtrl-

>text)]=Unicode2Int(pValueTextCtrl->text);

}

return TRUE;

case 17://Cancel

SetTextCtrlEdit(pValueTextCtrl, FALSE);

DrawTextCtrl(pValueTextCtrl);

input=FALSE;

edit[1]=0;

EditNumber=1;

return TRUE;

}

}

return FALSE;

}

void Main_Task(void *Id) //Main_Test_Task {

POSMSG pMsg;

init_ADdevice(20,ADCCON_SLEEP);

for(;;)

{

POS_Ctrl pCtrl;

pMsg=WaitMessage(0);

if(pMsg->pOSCtrl)

{

} else { if(pMsg->pOSCtrl->CtrlMsgCallBk)

(*pMsg->pOSCtrl->CtrlMsgCallBk)(pMsg);

switch(pMsg->Message)

{

case OSM_KEY:

pCtrl=GetCtrlfromID(NULL, GetWndCtrlFocus(NULL));

if(pCtrl->CtrlType==CTRLTYPE_WINDOW)

{

if((((PWnd)pCtrl)->style&WND_STYLE_MODE)==WND_STYLE_MODE)

{

//焦点是有模式窗口,消息直接传递过去

OSOnSysMessage(pMsg);

break;

}

}

if(onKey(pMsg->WParam,pMsg->LParam) )

break;

default:

OSOnSysMessage(pMsg);

break;

}

}

DeleteMessage(pMsg);

OSTimeDly(200);

}

}

void Display_Task(void * Id) //Main_Test_Task

{

PDC pdc;

int a0,a1,a2,a3,a4;

structRECT ChannelTextCtrl_Rect,ValueTextCtrl_Rect,Draw_Wnd_Rect;

char Channel_Caption_8[10]="Channel:";

char Value_Caption_8[10]="Value:";

char Draw_Wnd_Caption_8[]="Draw Window";

char vol_8[]="Vol";

char chn_8[]="Chn";

char chn0_8[]="0";

char chn1_8[]="1";

char chn2_8[]="2";

char chn3_8[]="3";

char chn4_8[]="ave";

char vol_10_8[]="10";

char vol_20_8[]="20";

char vol_30_8[]="30";

u16 Channel_Caption_16[10];

u16 Value_Caption_16[10];

U16 Draw_Wnd_Caption_16[20];

u16 vol_16[5];

u16 chn_16[5];

u16 chn0_16[2];

u16 chn1_16[2];

u16 chn2_16[2];

u16 chn3_16[2];

u16 chn4_16[5];

u16 vol_10_16[3];

u16 vol_20_16[3];

u16 vol_30_16[3];

Wnd Draw_Wnd;

PWnd pDraw_Wnd;

int warnning[5]={1,1,1,1,1};

BOOLEAN IsEdit=0;

pdc=CreateDC();

pDraw_Wnd=&Draw_Wnd;

strChar2Unicode(Draw_Wnd_Caption_16, Draw_Wnd_Caption_8);

strChar2Unicode(Channel_Caption_16, Channel_Caption_8);

strChar2Unicode(Value_Caption_16, Value_Caption_8);

strChar2Unicode(chn_16, chn_8);

strChar2Unicode(vol_16, vol_8);

strChar2Unicode(chn0_16, chn0_8);

strChar2Unicode(chn1_16, chn1_8);

strChar2Unicode(chn2_16, chn2_8);

strChar2Unicode(chn3_16, chn3_8);

strChar2Unicode(chn4_16, chn4_8);

strChar2Unicode(vol_10_16,vol_10_8);

strChar2Unicode(vol_20_16,vol_20_8);

strChar2Unicode(vol_30_16,vol_30_8);

SetRect(&ChannelTextCtrl_Rect, 10,50,55,75);

SetRect(&ValueTextCtrl_Rect, 10,125,55,150);

SetRect(&Draw_Wnd_Rect, 74, 9, 301, 216);

pChannelTextCtrl=CreateTextCtrl(ID_ChannelTextCtrl, &ChannelTextCtrl_Rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL,NULL);

pValueTextCtrl=CreateTextCtrl(ID_ValueTextCtrl, &ValueTextCtrl_Rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL,NULL);

pDraw_Wnd=CreateWindow(Draw_Wnd_ID, &Draw_Wnd_Rect, FONTSIZE_SMALL,WND_STYLE_MODELESS, Draw_Wnd_Caption_16, NULL);

ClearScreen();

TextOut(pdc, 55, 10, vol_16, TRUE, FONTSIZE_SMALL);

TextOut(pdc, 290, 215, chn_16, TRUE, FONTSIZE_SMALL);

TextOut(pdc, 110, 215, chn0_16, TRUE, F ONTSIZE_SMALL);

TextOut(pdc, 150, 215, chn1_16, TRUE, F ONTSIZE_SMALL);

TextOut(pdc, 190, 215, chn2_16, TRUE, F ONTSIZE_SMALL);

TextOut(pdc, 230, 215, chn3_16, TRUE, F ONTSIZE_SMALL);

TextOut(pdc, 270, 215, chn4_16, TRUE, F ONTSIZE_SMALL);

TextOut(pdc, 60, (int)(205-1*200/3.3), vol_10_16, TRUE, FONTSIZE_SMALL); TextOut(pdc, 60, (int)(205-2*200/3.3), vol_20_16, TRUE, FONTSIZE_SMALL); TextOut(pdc, 60, (int)(205-3*200/3.3), vol_30_16, TRUE, FONTSIZE_SMALL); DrawTextCtrl(pChannelTextCtrl);

DrawTextCtrl(pValueTextCtrl);

a0=0;a1=0;a2=0;a3=0;a4=0;

for(;;)

{ average= (result_AD0+ result_AD1+ result_AD2+ result_AD3)/4;

TextOut(pdc, 10, 35, Channel_Caption_16, TRUE, FONTSIZE_SMALL);

TextOut(pdc, 10, 110, Value_Caption_16, TRUE, FONTSIZE_SMALL);

if(edit[0]==1)

{

if(IsEdit==1)

{

}

else

{

}

} FillRect(pdc, 10, 35, 60, 45, GRAPH_MODE_NORMAL, COLOR_WHITE); IsEdit=0;

IsEdit=1;

if(edit[1]==1) {

if(IsEdit==1)

{

}

else

{

}

} FillRect(pdc, 10, 110, 60, 120, GRAPH_MODE_NORMAL, COLOR_WHITE); IsEdit=0;

IsEdit=1;

DrawWindow(pDraw_Wnd); MoveTo(pdc, 75, 15); LineTo(pdc, 80,10);

LineTo(pdc, 85, 15);

MoveTo(pdc,80 , 10);

LineTo(pdc, 80, 210);

LineTo(pdc, 300, 210);

MoveTo(pdc, 295, 205);

LineTo(pdc, 300, 210);

LineTo(pdc, 295, 215);

MoveTo(pdc, 80, (int)(210-1*200/3.3));

LineTo(pdc, 300, (int)(210-1*200/3.3));

MoveTo(pdc, 80, (int)(210-2*200/3.3));

LineTo(pdc, 300, (int)(210-2*200/3.3));

MoveTo(pdc, 80, (int)(210-3*200/3.3));

LineTo(pdc, 300, (int)(210-3*200/3.3));

if(result_AD1>WarnningData[1])

if(a0==0){Wave();a0=1;}

if(result_AD2>WarnningData[2])

if(a1==0){Wave();a1=1;}

if(result_AD0<=WarnningData[0])

{

FillRect(pdc, 105, (int)(210-result_AD0*20/3.3), 120, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);

}

else

{

if(warnning[0]==1)

{

FillRect(pdc, 105, (int)(210-result_AD0*20/3.3), 120, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

warnning[0]=0;

}

else

{

warnning[0]=1;

FillRect(pdc, 105, (int)(210-WarnningData[0]*20/3.3), 120, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

}

if(result_AD1<=WarnningData[1])

{

FillRect(pdc, 145, (int)(210-result_AD1*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

else

{

if(warnning[1]==1)

{

FillRect(pdc, 145, (int)(210-result_AD1*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

warnning[1]=0;

}

else

{

warnning[1]=1;

FillRect(pdc, 145, (int)(210-WarnningData[1]*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

}

if(result_AD2<=WarnningData[2])

{

FillRect(pdc, 185, (int)(210-result_AD2*20/3.3), 200, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);

}

else

{

if(warnning[2]==1)

{

FillRect(pdc, 185, (int)(210-result_AD2*20/3.3), 200, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

warnning[2]=0;

}

else

{

warnning[2]=1;

FillRect(pdc, 185, (int)(210-WarnningData[2]*20/3.3), 200, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

}

if(result_AD3<=WarnningData[3])

{

FillRect(pdc, 225, (int)(210-result_AD3*20/3.3), 240, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);

}

else

{

if(warnning[3]==1)

{

FillRect(pdc, 225, (int)(210-result_AD3*20/3.3), 240, 210,

GRAPH_MODE_NORMAL,COLOR_BLACK);

warnning[3]=0;

}

else

{

warnning[3]=1;

FillRect(pdc, 225, (int)(210-WarnningData[3]*20/3.3), 240, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

}

if(average<=WarnningData[4])

{

FillRect(pdc, 265, (int)(210-average*20/3.3), 280, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);

}

else

{

if(warnning[5]==1)

{

FillRect(pdc, 265, (int)(210-average*20/3.3), 280, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

warnning[5]=0;

}

else

{

warnning[5]=1;

FillRect(pdc, 265, (int)(210-WarnningData[4]*20/3.3), 280, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);

}

}

OSTimeDly(500);

}

}

void AD0_Task(void * Id) //Main_Test_Task

{

for(;;)

{

result_AD0=GetADresult(0)*33/1024;

//Uart_Printf("result_AD0=%d\n",result_AD0);

OSTimeDly(100);

}

}

基于Ucos的多通道数据采集系统(DOC)(可编辑修改word版)

课程设计(论文)任务书 信息工程学院物联网专业2014-2 班 一、课程设计(论文)题目基于Ucos 的多通道数据采集系统 二、课程设计(论文)工作自2017 年06 月26 日起至2017 年06 月30 日止。三、 课程设计(论文) 地点:嵌入式系统实验室 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握嵌入式开发板(实验箱)各功能模块的基本工作原理; (2)培养嵌入式系统的应用能力及嵌入式软件的开发能力; (3)使学生较熟练地应用嵌入式操作系统及其API 开发嵌入式应用软件; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析所设计嵌入式软件系统中各功能模块的实现机制; (2)选用合适嵌入式操作系统及其API; (3)编码实现最终的嵌入式软件系统; (4)在实验箱上调试、测试并获得最终结果。 2)创新要求: 在基本要求达到后,可进行创新设计,如改善嵌入式软件实时性能;扩展嵌入式软件功能及改善其图形用户界面。 3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文。 (2)论文包括目录、正文、小结、参考文献、谢辞、附录等(以上可作微调)。 (3)课程设计论文装订按学校的统一要求完成。 4)课程设计评分标准: (1)学习态度:20 分; (2)回答问题及系统演示:30 分 (3)课程设计报告书论文质量:50 分。 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献: (1)罗蕾.《嵌入式实时操作系统及应用开发》北京航空航天大学出版社 (2)Jean https://www.wendangku.net/doc/0b19153014.html,brosse. 《嵌入式实时操作系统uC/OS-II》北京航空航天大学出版社 (3)王田苗.《嵌入式设计与开发实例》.北京航空航天大学出版社 (4)北京博创科技公司. 《嵌入式系统实验指导书》

数据采集系统简介研究意义和应用.doc

一前言 1.1 数据采集系统简介 数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。数据采集系统是结合基于计算机(或微处理器)的测量软硬件产品来实现灵活的、用户自定义的测量系统。该数据采集系统是一种基于TLC549模数转换芯片和单片机的设备,可以把ADC采集的电压信号转换为数字信号,经过微处理器的简单处理而交予数码管实现电压显示功能,并且通过与PC的连接可以实现计算机更加直观化显示。 1.2 数据采集系统的研究意义和应用 在计算机广泛应用的今天,数据采集的在多个领域有着十分重要的应用。它是计算机与外部物理世界连接的桥梁。利用串行或红外通信方式,实现对移动数据采集器的应用软件升级,通过制订上位机(PC)与移动数据采集器的通信协议,实现两者之间阻塞式通信交互过程。在工业、工程、生产车间等部门,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。例如:在工业生产和科学技术研究的各行业中,常常利用PC或工控机对各种数据进行采集。这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是通过数据采集板卡,常用的有A/D 卡以及422、485等总线板卡。卫星数据采集系统是利用航天遥测、遥控、遥监等技术,对航天器远地点进行各种监测,并根据需求进行自动采集,经过卫星传输到数据中心处理后,送给用户使用的应用系统。 1.3 系统的主要研究内容和目的 本课题研究内容主要包括:TLC549的工作时序控制,常用的单片机编辑C语言,VB 串口通信COMM控件、VB画图控件的运用等。 本课题研究目的主要是设计一个把TLC549(ADC)采集的模拟电压转换成八位二进制数字数据,并把该数据传给单片机,在单片机的控制下在实验板的数码管上实时显示电压值并且与计算机上运行的软件示波器连接,实现电压数据的发送和接收功能。

基于NIELVIS_的温度采集系统设计

收稿日期:2009-09 作者简介:徐苒(1985—),女,硕士研究生,研究方向为在线检测技术。 基于N I E L V I S I I 的温度采集系统设计 徐 苒,金暄宏,戴曙光 (上海理工大学光电信息与计算机工程学院,上海200093) 摘要:介绍E L V I S 在温度采集系统设计中的应用,探讨以虚拟仪器为核心的数据采集系统及其实现信号检测技术的设计方案。利用E L V I SI I 实验板以及开发软件L a b V I E W 搭建一个温度检测系统,结果表明,E L V I S 平台比传统的数据采集装置更具有灵活性、创新性和实践性。 关键词:E L V I SI I ;虚拟仪器;温度信号检测 中图分类号:T P 39 文献标识码:B 文章编号:1006-2394(2010)02-0033-03 T h e T e m p e r a t u r e T e s t i n g E x p e r i m e n t B a s e d o n N I E L V I S I I X UR a n ,J I NX u a n -h o n g ,D A I S h u -g u a n g (S h a n g h a i U n i v e r s i t y o f S c i e n c e a n d T e c h n o l o g y O p t i c a l -e l e c t r i c a l a n d C o m p u t e r E n g i n e e r i n g C o l l e g e ,S h a n g h a i 200093,C h i n a ) A b s t r a c t :T h e a p p l i c a t i o n o f E L V I S i n t h e s y s t e md e s i g n i s i n t r o d u c e d i n t h i s p a p e r .T h e d a t a a c q u i s i t i o n s y s t e m b a s e d o n v i r t u a l i n s t r u m e n t i s p r e s e n t e d ,a n d d e s i g n s c h e m e s o f s i g n a l d e t e c t i n g t e c h n i q u e a r e p r o p o s e d .T h e t e m p e r a -t u r e t e s t i n g s y s t e mi s b a s e d o n N I E L V I S I I a n d t h e L a b V I E W s o f t w a r e .T h e r e s u l t s p r o v e t h a t E L V I S i s m o r e f l e x i b l e ,i n n o v a t i v e a n d p r a c t i c a l c o m p a r e d w i t h t h e t r a d i t i o n a l d a t a a c q u i s i t i o n d e v i c e . K e y w o r d s :E L V I S ;v i r t u a l i n s t r u m e n t ;t e m p e r a t u r e s i g n a l d e t e c t i n g 1 E L V I S 简介 N I 教学实验室虚拟仪器套件(N I E L V I S )是动手设计与原型设计平台,它集成了最常用的12个仪器,包括示波器、数字万用表、函数发生器、波特图分析仪等,将它们集成在适合于硬件实验室中使用。基于N I L a b V I E W 图形化系统设计软件,带有U S B 即插即用功能的N I E L V I S 提供了虚拟仪器的灵活性,并且允许进行快速简单的测量采集与显示。全新的U S B 即插即用连接性简化了试验设备的搭建和维护,用户现在可以使用个人电脑对应用进行测试和原型设计,并通过U S BM 系列数据采集设备来完成数据采集任务。此外,本系统用到的N I E L V I S I I 还根据用户反馈,比之前的版本增加了牢固性。各部分名称如图1所示。1.1 安装在计算机上的软面板仪器(S F P ) 如图1所示,计算机平台上安装有虚拟仪器软件开发工具L a b V I E W ,E L V I S 加载了在L a b V I E W 中创建的S F P 仪器以及仪器的源代码,用户可以通过修改L a b V I E W 代码来修改S F P 的功能或者提高它们的功用。这些软面板仪器都是系统设计中典型的和必须的通用电子仪器的虚拟仪器,主要包括示波器、函数发生 器、数字万能表、可编程控制的电源以及波特分析器、动态信号分析仪与任意波形发生器。 1.2 用户自定义工作台 如图1,原型实验面包板与工作台相连接,在此上搭建模拟电路,允许设计过程中输入/输出信号的连接,同时原型面包板上给出了E L V I S 所有的信号终端,它们分列在电路面包板两旁,并通过电缆连接至电 ①计算机上的软面板仪器(S F P ) ②U S B 即插即用电缆 ③用户自定义工作台 ④原型实验面包板 ⑤和⑥是电源适配器和电源线 图1 N I E L V I S I I 系统 · 33·2010年第2期 仪表技术

脉搏监测系统

姓名: 学院: 机电工程学院班级: 10机工A1 学号: 指导老师: 实训时间: 2013.6 实训地点: 14号楼411

脉搏监测系统 (一)内容 基于单片机或PC机,设计一套测试系统,用于将外周血管搏动(即脉搏跳动)信号进行采集分析。 集体要求: 1.测量脉搏显示波形图 2.计算脉搏测量的结果,并进行报警判断,控制报警灯显示 3.保存测量数据 4.数据回放 (二)要求 1.提出设计方案(提出测量原理,选择传感器,构建测试系统) 2.设计测量电路 3.测试软件设计 利用汇编语言、Labview或其他的开发程序(VB、VC等),设计测试软件进行数据是采集和分析。 4.调试 5.撰写报告 (三)报告要求 1.综合实践的内容 2.撰写总体的设计方案,并画出测试系统框图 3.硬件选用(包括传感器、采集卡的选用和安装等) 4.电路设计(包括测量电路的设计等电路,系统总电路) 5.测量软件的设计 利用Labview或其他的开发程序(VB、VC等),设计测试软件进行数据是采集和分析。包括软件设计流程图,各功能实现的方法和代码(包括各主程序,子程序的描述以及相应的重要参数设置等描述) 6.小结和体会(可以包含调试中遇到的问题)。

目录 一、实训目的 二、总体方案设计 三、系统硬件元器件选用 四、电路总体设计 五、测试软件设置 六、课程设计小结 七、参考文献

脉搏监测系统传感器设计 一、实训目的 本次传感器应用实训的目的是巩固《传感器与检测技术》所学的各种传感器的原理及应用,同时综合《电子技术》《可编程控制技术》等课程所学的专业知识,制作并调试一个典型传感器作品,熟悉传感器及其处理电路的设计、制作、与调试方法,熟练掌握各种常用测量仪表的使用。 二、总体方案设计 1.测试原理 累积数千年来丰富临床经验的脉诊,是中国医学独特的诊病方法,在诊“望、闻、问、切”中占有重要的位置。由脉诊所得的脉象反映人体各和病理 状况,反映了五脏六腑气血盛衰观察体内功能变化的一个重要根据脉象的变化,可探测人体脏腑的气血、阴阳、生理与病理的状况。我国中医学家千年 的实践总结而成的脉学理论在中医辨证论治中起着重要的作用,也是人类的 重大贡献。目前,通过脉搏波的分析已经可以方便的估算出被测者的心血管 血流动力学的各项参数,如心输出量、外周阻力、血管顺应性等。然而要想 准确的判断患者的心血管等方面的情况和预测心血管疾病发生的可能性, 以 便及时采取措施有效地减少危险因素,首要的条件是要能准确清晰的获取患 者的脉搏信号。随着电子计算机技术和测量技术的迅速发展,脉搏测量、记 录和分析也有了很大的改善和进步。 脉搏的测量有很多方法,本系统主要是利用压力式传感器来获取脉搏信号。由压力式传感器采集脉搏信号,经过前置放大电路、滤波电路、积分和 比较电路后得到与脉搏相关的脉冲信号。人体的脉搏波可用特制的脉搏描记 器记录下来。从可见每个脉搏波描记曲线都由升支A和降支K构成。随后心 室舒张,心室内压低于主动脉血压,于是动脉血倒流,导致主动脉瓣关闭, 在曲线上形成降支切迹N,也叫降中峡或重波谷降支的形状与外周阻力的大 小有关;如阻力大则降支坡度较缓,其切迹的位置较高;反之,切迹的位置 较低。脉搏波的形状,因循环系统的情况改变而不同。 该系统的最大特点是用LabVIEW虚拟仪器的操作面板及相应的程序, 显 示出脉搏的波形。虚拟仪器系统一般是由计算机、应用软件、数据采集卡和

基于LabVIEW的多通道数据采集系统信号处理

目:基于LabVIEW的多通道数据采集系统 2010 年 03 月 20 日 互联网会议PPT资料大全技术大会产品经理大会网络营销大会交互体验大会 毕业设计开题报告 1.结合毕业论文课题情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 1. 本课题的研究背景及意义 近年来,以计算机为中心、以网络为核心的网络化测控技术与网络化测控得到越来越多的应用,尤其是在航空航天等国防科技领域。网络化的测控系统大体上由两部分组成:测控终端与传输介质,随着个人计算机的高速发展,测控终端的位置原来越多的被个人计算机所占据。其中,软件系统是计算机系统的核心,设置是整个测控系统的灵魂,应用于测控领域的软件系统成为监控软件。传输介质组成的通信网络主要完成数据的通信与采集,这种数据采集系统是整个测控系统的主体,是完成测控任务的主力。因此,这种“监控软件-数据采集系统”构架的测控系统在很多领域得到了广泛的应用,并形成了一套完整的理论。 2. 本课题国内外研究现状 早期的测控系统采用大型仪表集中对各个重要设备的状态进行监控,通过操作盘进行集中式操作;而计算机系统是以计算机为主体,加上检测装置、执行机构与被控对象共同构成的整体。系统中的计算机实现生产过程的检测、监督和控制功能。由于通信协议的不开放,因此这种测控系统是一个自封闭系统,一般只能完成单一的测控功能,一般通过接口,如RS-232或GPIB接口可与本地计算机或其他仪器设备进行简单互联。随着科学技术的发展,在我国国防、通信、航空、气象、环境监测、制造等领域,要求测控和处理的信息量越来越大、速度越来越快。同时测控对象的空间位置日益分散,测控任务日益复杂,测控系统日益庞大,因此提出了测控现场化、远程化、网络化的要求。传统的单机仪器已远远不能适应大数量、高质量的信息采集要求,产生由计算机控制的测控系统,系统内单元通过各种总线互联,进行信息的传输。 网络化的测控技术兴起于国外,是在计算机网络技术、通信技术高速发展,以及对大容量分布的测控的大量需求背景下发展起来,主要分为以下几个阶段:第一阶段: 起始于20世纪70年代通用仪器总线的出现,GPIB实现了计算机与测控系统的首次 结合,使得测量仪器从独立的手工操作单台仪器开始总线计算机控制的多台仪器的测控系统。此阶段是网络化测控系统的雏形与起始阶段。第二阶段:

基于PDA的地下管线数据采集系统

基于PDA的地下管线数据采集系统 1、管线普查现状存在的主要问题 1)目前管线普查所采用的基本流程图(图1) 2)管线普查中目前存在的主要问题 (1)手工纸质记录维护难度大、查找困难: 由于纸质记录的局限性,当数据量增大时,对图纸记录维护和查询将变得越来越来困难,如果作业小组的草图没有及时的建立成内业数据库,则重号、错连、漏入等人为出错几率会直线增加。 (2)由外业管线探测到内业建立数据库,中间环节多,出错几率大:现有的管线普查流程可以看出,由外业管线探测到内业建立数据库,白天外业采集作业,晚上内业加班录入数据,现在还有的做法是同一管线属性(如埋深、管径数值型属性)事先记录在草图上,再由草图抄写管线探测手簿,然后根据管线探测手簿由内业人员建立成管线数据库,管线属性和连接关系至少经过两到三道工序才能建立到数据库中,在不同人员,不同工序的影响下,加大了的数据出错的几率。 (3)填写管线探测手簿与内业建库加大了内业处理工作量: 由于管线外业探测的不确定性,同一管线属性可能会多次进行修改,此过程在整个管线普查的过程持续存在。因此对每一项管线属性的修改必须同时修改草图、数据库、管线探测手簿,特别是对管线探测手簿的填写,平均必须抄写两遍以上或更多,加大了内业处理工作量。 (4)项目部无法对作业进度和各物探小组的作业情况进行全面跟踪掌握:对于纸质记录的外业管线探测手簿,如果没有及时进行整理或内业没有及时录入到数据库中,则项目部无法对实际已经完成的物探外业工作量进行情细的统计与查询,也无法对各物探小组每天的工作情况进行细致全面的进行跟踪了解。 2、系统总体介绍 1)为什么要采用PDA方式进行数据采集

-基于Labview的多通道数据采集系统设计

第一节系统整体结构 系统的整体组成结构是测量目标经过传感器模块后转换成电信号,在由信号调理模块对信号做简单的调理工作,例如,scc-sg04全桥应变调整模块,scc-td02模块,scc-rtd01热电偶热电阻制约模块等,将调理好的信号传送到数据采集模块中进行数据采集,然后在用软件进行特定的处理。在采集的过程中同时将数据保存到指定数据库里。如图4-1多通道数据采集系统硬件结构图所示。 图4-1 多通道数据采集系统硬件结构图 第二节数据采集系统的硬件设计 一、PC机 传统仪器很多情况完成某些任务必须借助复杂的硬件电路,而由于计算机数据具备极强的信号处理能力,可以替代这些复杂的硬件电路,这便是虚拟仪器最大的特点。数据采集系统能够正常运行的前提便是选择一个优良的计算机平台。由于数据采集功能器件通常工作在工业领域中,往往伴随着强烈的振动,噪声,电源线的干扰和电磁干扰等。为了保证记录仪正常的运行,设计系统时选定工业计算机。考虑到计算机平台的可靠运行工业计算机通常采取了抗干扰措施。另一方面的考虑是工业计算机通常具有很多类型的接口,这样有利于功能进一步的扩展。 二、传感器 传感器设备能接受到来自测量目标发来的信号,而且把接受到的讯息,通

过设定的变换比例将其改变成为电信号亦或其它形式,从而能够完成数据信号的处理、存储、显示、记录和控制等任务。传感器是系统进行检测与控制的第一步。 三、信号调理 经过传感器的信号大多是要经过信号调理才可以被数据采集设备所接收,调理设备能够对信号进行放大、隔离、滤波、激励、线性化等处理。由于不同类型的传感器各有不同的功能,除了考虑一些通用功能之外,还要依据不同传感器的性质和要求来实现特殊的信号调理功能。信号调理电路的通用功能由如下几个方面: (1)放大功能为了提高系统的分辨率以及降低噪声干扰,微弱信号必须要进行放大,从而使放大之后信号电压与模数转换的电压范围一致。信号在经过传感器之后便直接进入信号调理模进行调理,这样就不易受到外部环境的影响,从而使得信噪比进一步的改善。 (2)隔离功能隔离是指为了避免直接的电连接,通过光线、交互电源或变压等方法,使得数据信息在系统之间进行传递。使用隔离的原因:一是为了安全考虑;二是能够保证采集到的数据不会受到其它原因的影响。 (3)滤波滤波是为了保证测量的信号的纯洁性,滤去不需要的信号。大部分的信号调理模块具有一个低通滤波器是用来过滤噪声。通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。 (4)激励功能信号调理模块能够为某些传感器提供激励信号,而且很多信号调理模块都提供有电流源和电压源以便给传感器提供激励。 (5)线性化大部分的传感器是测量信号的线性和非线性响应的结合,为了使传感器误差补偿,对输出信号的线性化是必要的。目前,该数据采集系统可以通过软件解决这个问题。 四、输入信号的类型 要知道信号采集到的数据集,这是因为信号的要求和系统性能的不同的测量是不同的,只有了解被测信号的性质,才可以准确地选择合适的采集系统。 一个任意的信号在时间上是一个物理量的变化。在一般情况下,信号携带的信息是非常广泛的,如:状态,率,水平,形式,频率等。根据信号运载信息的不同,可以将信号分为数字信号或模拟信号。其中数字信号包括脉冲信号和开关信号两种类型。模拟信号包括直流信号、时域信号、频域信号等。 (1)数字信号 第一类数字信号为开关量信号,如图4-2所示。一个开关信号携带信息信

基于STM32单片机的多路数据采集系统设计

基于STM32单片机的多路数据采集系统设计 The Design Of Multi-channel Data Acquisition System Based On STM32 中国地质大学(北京) 指导教师 2013.3.31

摘要 本文是基于ARM Cortex-M3的STM32系列嵌入式微控制器的应用实践,介绍了基于STM32单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用。本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机STM32来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。该系统从机负责数据采集并应答主机的命令。输入数据是由现场模拟信号产生器产生,8路被测电压再通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据传输到上位机,由上位机负责数据的接受、处理和显示,并用LCD数码显示器来显示所采集的结果。软件部分应用Keil uVision4通过C++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计。 关键词:数据采集 89C52单片机 ADC0809 Keil uVision4

Abstract This article is an application of STM32 series embedded ARM controller based on Cortex-M3 and it describes the hardware design and software design of the data on which based on signal-chip microcomputer .The data collection system is the link between the digital domain and analog domain. It has an very important function. The introductive point of this text is a data to collect the system. The hardware of the system focuses on signal-chip microcomputer .Data collection and communication control use modular design. The data collected to control with correspondence to adopt a machine 8051 to carry out. The part of hardware’s core is STM32, is also includes A/D conversion module, display module, and the serial interface. Slave machine is responsible for data acquisition and answering the host machine.8 roads were measured the electric voltage to pass the in general use mold-few conversion of ADC0809,the realization carries on the conversion that imitates to measure the numeral to measure towards the data that collect .Then send the data to the host machine.the host machine is responsible for data and display, LED digital display is responsible display the data. The software is partly programmed with C++ of the Keil uVision4. The software can realize the function of monitoring and controlling the whole system. It designs much program like data-acquisition treatment,data-display and data-communication ect. Keyword: data acquisition AT89C52 ADC0809 Keil uVision4 目录

数据采集系统

湖南工业大学科技学院 毕业设计(论文)开题报告 (2012届) 教学部:机电信息工程教学部 专业:电子信息工程 学生姓名:肖红杰 班级: 0801 学号 0812140106 指导教师姓名:杨韬仪职称讲师 2011年12 月10 日

题目:基于单片机的数据采集系统的控制器设计 1.结合课题任务情况,查阅文献资料,撰写1500~2000字左右的文献综述。 近年来,数据采集及其应用技术受到人们越来越广泛的关注,数据采集系统在各行各业也迅速的得到应用。如在冶金、化工、医学、和电器性能测试等许多场合需要同时对多通道的模拟信号进行采集、预处理、暂存和向上位机传送、再由上位机进行数据分析和处理,信号波形显示、自动报表生成等处理,这些都需要数据采集系统来完成。但很多数据采集系统存在功能单一、采集通道少、采集速率低、操作复杂、并且对操作环境要求高等问题。人们需要一种应用范围广、性价比高的数据采集系统,基于单片机的数据采集系统具有实现处理功能强大、处理速度快、显示直观,性价比高、应用广泛等特点,可广泛应用于工业控制、仪器、仪表、机电一体化,智能家居等诸多领域。总之,无论在那个应用领域中,数据采集与处理越及时,工作效率就超高,取得的经济效益就越大。 数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。 数据采集系统的市场需求量大,特别是随着技术的发展,可用数据器为核心构成一个小系统,而目前国内生产的主要是数据采集卡,存在无显示功能、无记忆存储功能等问题,其应用有很大的局限性,所以开发高性能的,具有存储功能的数据采集产品具有很大的市场前景。 随着电子技术的迅速发展,,一些高性能的电子芯片不断推出,为我们进行电子系统设计提供的更多的选择和更多的方便,单片机具有体积小、低功耗、使用方便、处理精度高、性价比高等优点,这些都使得越来越广泛的选用单片机作为数据采集系统的核心处理器。一些高性能的A/D转换芯片的出现也为数据采集系统的设计提供了更多的方便,无论是采集精度还是采样速度都比以前有了较大的提高。其中一些知名的大公司如MAXIM公司、TI公司、ADI公司都有推出性能比效突出的 A/D转换芯片,这些芯片普通具有低功耗、小尺寸的特点,有些芯片还具有多通道的同步转换功能。这些芯片的出现,不仅因为芯片价格便宜,能够降低系统设计的成本,而且可以取代以前繁琐的设计方法,提高系统的集成度。 数据采集器是目前工业控制中应用较多的一类产品,数据采集器的研制已经相当成熟,而且数据采集器的各类不断增多,性能越来越好,功能也越来越强大。 在国外,数据采集器已发展的相当成熟,无论是在工业领域,还是在生活中的应用,比如美国FLUKE公司的262XA系列数据采集器是一种小型、便携、操作简单、使用灵活的数据采集器,它既可单独使用又可和计算机连接使用,它具有多种测量

基于单片机的多通道的温度数据采集系统

摘要 由于数据采集系统的应用越来越广、其所涉及到的对信号的测量方式和涉及到的信号源的类型也将越来越多、因为对测量的要求也就越来越高,现在国内已有不少用于数据的测量与采集的系统,可很多系统存在着功能单一、采集速率比较低、操作非常复杂,并且对测试的环境要求较很高等问题。人们急切需要一种应用范围广、价格低廉的数据采集系统。 在分析了各种类型单片机的特点及其与PC机的各类通信技术的基础后,本人设计了由单片机控制的温度采集系统,并且通过串口通信的方式实现了单片机与PC机间的通信,实现了数据传送并将数据在PC机上进行显示或存储,完成了此次设计。 基于单片机的多通道的温度数据采集系统是由将来自温度传感器的信号进行放大、滤波、采样保持等分步处理之后,输入到A/D转换器转换为数字信号后由单片机进行采集的,然后再利用单片机与PC机之间的通信将数据传送至PC 机进行数据的存储处理及显示等,实现了数据的采集与处理等,此设计可广泛应用于工控、仪器仪表、机电智能化及智能家居等诸多的应用领域。 联系扣扣:2825772782 关键词:单片机;温度数据采集;多通道

Abstract S ince the wide range of data acquisition system, which involves the measurement signal and the type of signal source more and more, Surveyors are increasingly high requirements of the domestic now have a lot of data acquisition and measurement system But there are many single function systems, collecting less access, low collection rate, complicated operations, and the demands of the test environment and other issues.It requires abroad scope of application, high reliability and low-cost data acquisition system. Based on the analysis of the characteristics of different types of SCM and SCM and PC communication technology, SCM control of the collection system designed and adopted MCU serial communication between PC and communications, Data transmission and display of data stored on the PC.Single completed the multi-channel data acquisition system design and implementation. Based on SCM′s multi-channel data acquisition system is adopted will come from the sensor signal amplification, linear filtering, After processing maintain synchronous sampling, which converted to digital signal input A/D conversion by SCM Acquisition, Then, SCM and PC to PC communications data to the data storage, post-processing and display. a powerful data processing, visual shows, friendly interface and high performance-price ratio, a wide range of features. can be widely used in industrial control equipment, instruments, and electrical engineering integration, intelligent home and many other fields. Key words Multi-channel Data Acquisition Microcontroller

脉搏测量仪 报告

五邑大学 电子系统设计开题报告 题目:脉搏测量仪 五邑大学教务处制 2011年8月

一、课题来源、国内外研究现状与水平及研究意义、目的。 1.课题来源 便携式心率测试仪 2.国内外研究现状与水平 在先进科学技术的推动下,医疗仪器的相关技术日新月异,全球医疗仪器的发展朝微小化迈进。便携式、低功耗的心率计会越来越受到人们的青睐。长期以来,各种静态的、动态的、随身携带的、远程遥控的心率计已经相继问世。 由于心率和心率变异是临床心血管疾病诊断所需要的重要生理参数,有关心率和心率计的研究一直以来成为医学、电子学、工程技术领域科研的工作者们的涉足焦点。在国外到06年底,已经开始研究可佩戴式心率计。植入人体式心率计。国内的心率计产品由于受相关科学水平及生产设备的限制,功能和集成度不及国外。 脉搏测量仪的发展主要向以下几个趋势发展: (1)自动测量脉搏并且对所得到的脉搏进行自动分析。 目前很多脉搏测量仪都具有检测血氧等其他功能,但是对于这些信号的分析和诊断还需要一些有经验的医生观察,进行分析以 后才能确认结果,浪费大量的人力,且认为引入的误差较大。因 此,未来脉搏自动监测的内容将更加详细,自动分析诊断的功能 也将更加强大。 (2)数字化技术等先进技术的应用。 随着数字科学技术的发展,脉搏测量仪的集成度将更高,更便于携带。数字信号处理的运用将使干扰更小,测量更加准确。 (3)多功能化越来越明显。 目前的脉搏测量仪,一般都有测试血氧、心电图等功能,单纯的脉搏测量仪已经很少见到。随着电子技术的发展,脉搏测量仪 必将实现更多的功能。 设计中使用到的系统利用压电陶瓷片将脉搏转化为电压信号,经过信号调理后利用AT89S51单片机进行信号采集和处理,在短时 间内,测量人体一分钟的脉搏数,并将心率进行实时显示,便于 携带。达到了方便、快速、准确测量心率的目的。这样的脉搏测 量系统性能良好,结构简单,性价比高,输出显示稳定,比较适 应大众化,适合家庭进行自我检查以及医院护士进行每日的临床 记录。 3.研究意义和目的 (1)通过该课题学习掌握心率测量的原理、方法、实现过程。 (2)学会相关的单片机知识,能够较全面的融合电路、电子技术、信号采集和处理、程序设计等等的专业知识。 (3)使中医更加科学化,不是单凭经验就得出患病的诊断。 (4)实现脉搏的可见性,方便家庭和护士临床检查使用。

数据采集系统数据库.

create table treaty_table ( TID INT identity(1,1, Tname varchar(20, F-route varchar(50, period int, filename varchar(50, Type_ID INT, constraint PK_TREATY_TABLE primary key (TID create table type_table ( Type_ID INT identity(1,1, typename varchar(20, bourse varchar(40, constraint PK_TYPE_TABLE primary key (Type_ID ; create table CY_table ( CY_ID INT identity(1,1, MF varchar(20, pt datetime, Type_ID INT, constraint PK_CY_TABLE primary key (CY_ID ; create table Time_table ( Time_ID INT identity(1,1, DATE DATETIME, constraint PK_TIME_TABLE primary key (Time_ID ; create table K_table ( Root_ID INT identity(1,1, Type_ID INT, period INT, date datetime, rootnum INT, constraint PK_K_TABLE primary key (Root_ID ; create table Min1_table ( Min1_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min1_ID ; create table Min5_table ( Min5_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min5_ID ; create table Min15_table ( Min15_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min15_ID ; create table Min30_table ( Min30_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Min30_ID ; create table Hour1_table ( H our1_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Hour1_ID ; create table Hour4_table ( Hour4_ID INT identity(1,1, treaty_name varchar(20, date datetime, open money, Close money, Heigh money, low money, Vol money, OPI money, S money, constraint PK_MIN1_TABLE primary key (Hour4_ID ; create table Day_table ( Day_ID INT identity(1,1, treaty_name

温度采集系统原理

1.现有16路温度信号,16路压力信号,48路流量信号和10路物位信号,用单片机构成一个数据采集系统。

答:系统的原理框图如上图所示,图中的T1表示第一路温度信号,同理,P16表示第16路压力信号,F48表示第48路流量信号,H10表示第10路物位信号。 (1)由于温度信号的温度范围是0~100度,系统要求的精度为0.5%,所以对于温度信号采用8位的A/D即可满足要求(100/255=0.4度)。系统使用的是ADC0809,由于ADC0809内部含有多路开关,所以系统设计时,在外部没有添加多路开关,16路温度信号运用两片ADC0809,正好能采集16路温度信号。 (2)16路压力信号的精度要求是精确到0.1%,8位的AD已不能满足要求,假如所测的最大压力为1个大气压, 如果用8位AD,则其分辨率为100000/255=392,而使用16位AD其分辨率为100000/65535=1.5,所以选 用16路AD较为精确。系统使用的是AD7701(相关资料请见本次作业第二题),AD7701内部不含多路开关,所以要外接多路开关,系统中使用的多路开关是CD4067B,CD4067B是16通道双向多路模拟开关,它具有两种电源输入端,VDD和VSS,可以在-0.5~18V之间进行选择。 (3)48路流量信号的精度要求是精确到0.1%,同压力信号一样,8位AD不能满足精度要求,故采用16位AD,系统中采用的还是AD7701。由于流量信号对采集的速度要求不是很高,所以采用多通道共用放大器,采样保持器和AD转换器。48路流量信号可以用3片CD4067B进行切换,由多路开关轮流采集流量信号,经放大器,采样保持器和AD转换进入单片机。 (4)10物位信号的精度要求同温度信号,其精度要求是精确到0.5%,所以采用8位的AD7574, 与ADC0809不同的是其内部不含多路开关,10信号如使用两片多路开关,则增加了系统的复杂度,所以采用一片CD4067B 即可。AD7574采用CMOS工艺,单片行,含有内部时钟振荡器,+5V供电,芯片内部设有比较器和控制逻辑,以及功耗低,转换速度快的逐次逼近型A/D转换器。 2.选一串行的16位ADC。 答:所选的AD7701可变串行接口、16位模/数转换器,以下是相关资料。 AD7701是美国AD公司推出的16位电荷平衡式A/D转换器它具有分辨率高、线性度好、功耗低等特点,并且由于该芯片采用了采样技术和线性兼容CMOS工艺集成技术,且片内含有自校准控制电路,可以有效地消除内部电路、外部电路的失调误差和增益误差G,AD7701具有灵活的串行输出模式,其转换结果通过串行接口输出,数据输出速率达4kbps。串行接口有异步方式、内时钟同步方式和外时钟同步方式三种::异步方式可以直接与通用异步接收/发送器(UART)接口;内时钟同步方式可将串行转换结果经移位寄存器转换为并行输出;外时钟同步方式可以连接与单片机接口。所以它具有精度高、成本低、工作温度范围宽、抗干扰能力强等特点。因此适用于遥控检测、过程 (1)主要性能: .AD7701芯片内含有自校准电路 .片内有可编程低通滤波器; .拐点频率;0.1Hz一10HZ .可变串行接口:分辨率16位; .线性误差:0.0015%: ·功耗低。正常状态:40mW;睡眠状态:10uW。 (2)芯片引肿图和引脚说明: AD770I的核心部分是二阶调制器和6阶高斯低通数字滤波器 构成的16位ADC,另外有校准控制器、校准SRAM、时钟发 生器和串行接口电路。AD7701芯片的引脚名称和说明如下。 MODE:串行接口方式选择。AD7701 方式。 当MODE接十5v时,串行接口工作在内时钟同步方式。AD7701可以通过外部移位寄存器将串行数据转换为并行数据输出。 当引脚MODE接DGND时,AD7701串行接口工作于外时钟同步方式。在这种方式下,AD7701能直接与具有同步串行接口的单片机连接,也可以利用普通I/O端口,通过软件编程产生SCLK时钟以读取AD770I的转换数据。 当引脚MODE接一5V时,AD7701串行接口工作于异步方式。在这种工作方式下, AD7701可以直接与通用异步接收发送器(UART)相连接,适用于AD7701与单片机(或微控制器)之间的距离比较远的应

相关文档
相关文档 最新文档