已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高精度无人值守病情辅助检测器第一章. 概述 有没有发现,当你发烧时,医生需要不停的测量病人的体温以观测你的病情状况,而当你生病时,最需要的是休息,时不时的测量温度不仅打扰到病人休息,而且医生也同样需要休息,并且每天都有许多人遭受身体发热的困扰,医生无法同时兼顾众多病人。然而,很多情况下,一些传染性病人病情危急,很需要对病情进行实时监测,但医生又无法太过接近,造成一些重要病情需要观测治疗,但却很难采集病症信息的尴尬。有没有发现,很多发热状况不是简简单单的感冒发烧而已。也许一些发热症状是由于一些可怕的病情,但又没有其他可辨别的病情症状,只能靠发热来判断。但是,现如今并没有一个能够连续的观测发热的系统提供数据以供医生快速,准确的判断病情的类属,使治疗更加有效。例如一种病,名叫疟疾,这种病在中国刚成立初期曾经危害到许多人的生命,原因之一就是没有一个有效的记录,连续观测病人体温变化的数据采集系统来让医生辨别发热症状到底是由于普通感冒还是这种顽疾。毫无疑问,如果有一种能够进行连续数据采集,无人值守,并且提供波形记录的医用数据采集器,则医生能够通过连续的温度变换波形来排除很多病症从而更接近与真实病症的判定诊断,比如感冒患者的体温在一段时间你应该是一条微小变化的直线,而疟疾患者体温则是有明显变化的。有没有发现,很多退烧药的药效并不如想象中的那么好,不同的体质对药物都有不一样的反应,而这就需要一种有效的手段来采集人体对退烧类药物的反应,例如采集药物试验者在一定时间内体温的变化,如果波形显示出很明显的下降,那就证明药物的效力不错,如果很长时间内体温波形还在保持水平,那么药物生产者就会对波形进行分析,从而改进药品提高药效。如果有这样一种能够连续记录数据的医用仪器,就很容易提供药物对不同体质的药效的信息以便分析改进。基于上述医疗的需要,我们团队决定对这种非常实用的医用设备进行开发,因为要通过这种仪器对很多病人采集数据,则它必须具有成本低以供大规模应用,体积小功耗低以便不影响病患的正常生活,于是,我们决定使用NULL 温度传感器,基于AMAGE8的A/D数据采集器,来组成一种可以无人值守观测病情,方便连续记录病人温度变化的波形以便医生诊断病情,检测药物对患者疗效的医用病情辅助检测器,药物疗效评估器。第二章 主要部件及功能1.温度传感器NULL2.信号处理电路NULL3A/D数据采集器基于AMAGE8的8位数字/模拟信号采集器是我们团队开发的USB总线数据采集器, 可与带USB接口的各种台式计算机, 笔记本机, 工控机连接构成高性能的数据采集测量系统. 该产品采用AMAGE8位A/D转换芯片, 设计讲究, 测量精度高, 速度快, 编程简便, 且具有USB设备体积小巧, 连接方便, 无需外接电源, 即插即用, 可带电拔插等特有优点. 可广泛应用于科学实验, 工业测量,成像等领域.一.主要功能及特点分辩率 : 8bit最高采样频率 : 4KHz最高输入电压:2.5V带有程控放大器方便测量小信号16KB先进先出(FIFO)缓冲存储器, 可实现自动数据块采集软件或定时器触发采样, 可任意设定采样频率可连续大数据量采集小盒式, 小机箱式供应方便使用二.技术指标1.A/D部分 分辩率: 8bit精度: 优于0.05%(满量程)最高实用采样频率: 4KHz 模入范围: 02.5V触发方式: 定时器触发, 软件触发FIFO存储器: 16KB(可扩 23KB) 2 I/O 部分USB输出接口2.02PIN接口第三章.硬件连接说明一.A/D卡的连接A/D采集器主板上一端装有一只2PIN接口, 另一端装有方形USB插座. 使用时, 2PIN借口接信号; USB插座接USB电缆, 电缆另一端接主机USB插口. 2PIN借口, 定义如下图: 基于AMAGE的8位数字/模拟信号多功能采集器实物图 2PIN接头 PC与采集器通迅接口二.I/O连接将2PIN接头传感器与AD采集器连接用串口连接AD采集器与PC第四章. 使用方法一 安装USB转串口驱动,以及观测程序AMAGESAMPL.EXE二 连接AD采集器与PC三 打开程序AMAGESAMPL.EXE即可观测信号波形和具体数字并进行数据记录 软件界面第五章. 多功能A/D采集器的应用实例。一 环境温度采集:环境温度测量,是为了解决在生产生活中由于温度变化而导致的问题,用温度采集器将周围温度变化,或是精确温度直观地以数据或图表形式呈现出来,便于提前发现问题,解决问题。但环境温度传感器输出一般多为模拟信号,不便观测,但经过多功能A/D采集器后,便可将此信号直观显现出来,从而方便人们使用。工作流程图如下:环境温度传感器A/D转换器进行数据采集终端仿真波形和采集数据 只要使用 接口并用变压器执行将电压输出范围保证在02.5V,便可以接入本A/D多功能采集器中,最后实现输出仿真和测量。二 地震数据采集:在数字地震观测学中,测量地震的位置,震级,波形,对今后预测地震的发生,预警,有着至关重要的作用,因此,将数据直观地呈现出来具有重大意义。目前,地震计输出的大部分为模拟信号。运用A/D数据采集器便可将原本较为抽象的模拟信号转换为数字信号直观地呈现出来,便于工作人员检验和观测。工作流程图如下:A/D采集器进行数据采集地震计外部地震信号终端仿真波形和采集数据只要使用 接口并用变压器执行将电压输出范围保证在02.5V,便可以接入本A/D多功能采集器中,最后实现输出仿真和测量三 人体微信号采集 在医疗科学中,人体微信号采集能够为医生收集许多珍贵素材,例如人体脉搏信号采集可以将患者的身体状况准确的传给医生,抑或是在某些医疗条件下,医生无法直接接触到病人电子观测设备可以将患者对医疗条件下的反应反馈给医生。目前,人体信号主要由医疗器械以模拟信号的形式输出,然而,经过A/D多功能数据采集器的采集数据,转换数据的功能,便能将此信号通过终端观测设备,例如计算机,将信号测量并输出波形以供医生参考使用。工作流程图如下:A/D采集器进行数据采集人体微信号医用观测设备终端仿真波形和采集数据只要使用 接口并用变压器执行将电压输出范围保证在02.5V,便可以接入本A/D多功能采集器中,最后实现输出仿真和测量四 汽车点火系统数据采集 在汽车制造系统中,汽车点火十分重要,但因为点火信号不易观测从而进行检验,而带来很多观测与修复的麻烦,而多功能数据采集器可以解决这个问题,将模拟信号转换成数字信号并采集,进行观测。 采集后输出的数据可以直观的反映出来。第六章 单片机源程序AMAGE8(完成A/D转换功能) C+ 源代码:/*This program was produced by theCodeWizardAVR V1.25.7a StandardAutomatic Program Generator?Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. Project : Version : Date : 2007-10-23Author : F4CGCompany : F4CGuartComments: decideChip type : ATmega8LProgram type : ApplicationClock frequency : 4.000400 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 256*/#include #include unsigned char indata; unsigned long samplestatus; unsigned long count341;int i,j,kk,mm,hh;unsigned char TIM1_OVFlable =0; unsigned char PDAWRITEHardware =0;char precorrecttimee =0;char sufcorrecttime = 0; char PreCorrecTime6;char sufCorrecTime6; unsigned char INStimebuf6;unsigned char sufCorrecTimeins6;unsigned char startPbattervol30; unsigned char startNbattervol30; short int poweropenlable;/ =1;/char ss=0xaa;char gpslabl = 0; char correcttimeliable =0; / 纬度char regm_dLat2;/ 经度char regm_dLon2; char regSeaHigh6; char uartlable;/ char const pMonth_tab = 0, unsigned char pMonth_tab = 0,31, /128, /231, /330, /431, /530, /631, /7 31, /830, /931, /1030, /1131 /2; /unsigned long systemtime,systemms;#define nwrite 128 #define nastrobe 64 #define ndstrobe 32 #define SWoscPWER 16#define greenled 8 /#define PORTDVALUE 0xea; / Specify the output types#define USART0 0 /#define USART_RXC 12 #define FIRST_ADC_INPUT 0#define LAST_ADC_INPUT 1 unsigned char adc_dataLAST_ADC_INPUT-FIRST_ADC_INPUT+1; #define ADC_VREF_TYPE 0xE0/2.56V 的片内基准电压源, AREF 引脚外加滤波电容unsigned char input_index=LAST_ADC_INPUT;int usartoutpointer; int usartintpointer;char outchar; /char YEARLABLE;char outbufer39;char inbuffer160; char ADCLABLE;char worknum;char sendcount;unsigned char PGA; unsigned char SampleFreq;char STARTnum; char STARnum2;unsigned long StartTime31; char ENDnum;unsigned long ENDTime30;unsigned long wrcydradrs;char STATIONNUM6;char SeaHigh6; unsigned long temp; unsigned char m_lDay;unsigned char m_lMonth;unsigned char m_lYear;unsigned char m_lHour;unsigned char m_lMinute;unsigned char m_lSecond; unsigned int m_mSecond; unsigned long allMinute;unsigned long regallMinute;int nSectionID ; / 纬度char m_dLat2;/ 经度char m_dLon2;/ Declare your global variables here void RetREADGPSSTATUS() / unsigned char tt; / #asm(WDR) outbufer0 =R; / outbufer1 =E; / outbufer2 =A; outbufer1 =D; outbufer2 =G; outbufer3 =P; outbufer4 =S; / outbufer7 =S; / outbufer8 =T; /outbufer9 =A; / outbufer10 =T; / outbufer11 =U; /outbufer12 =S; outbufer5 =0x20; outbufer6 =STARnum0; outbufer7 =STARnum1; outbufer8 =0x20; outbufer9 =SeaHigh0; outbufer10 =SeaHigh1; outbufer11 =SeaHigh2; outbufer12 =SeaHigh3; outbufer13 =SeaHigh4; outbufer14 =SeaHigh5; outbufer15 =0x20; outbufer16 =allMinute&0xff; outbufer17 =(allMinute&0xff00)/0x100; outbufer18 =(allMinute&0xff0000)/0x10000; outbufer19 =0x20; outbufer20 =m_lSecond&0x3f; outbufer21 =0x20; outbufer22 =m_dLat0; outbufer23 =m_dLat1; outbufer24 =0x20; outbufer25 =m_dLon0; outbufer26 =m_dLon1; outbufer27 =0x20; sendcount = 28; if(correcttimeliable = 1) / SEND TP PDA outbufer28 = P; outbufer29 = R; outbufer30 = E; outbufer31 = e; outbufer32 = sufCorrecTime0; outbufer33 = sufCorrecTime1; outbufer34 = sufCorrecTime2; outbufer35 = sufCorrecTime3; outbufer36 = sufCorrecTime4; outbufer37 = sufCorrecTime5; sendcount = 38; correcttimeliable = 0; usartoutpointer = 0; / sendcount = 28; /usartintpointer = 0; UCSRB = 0xfb; /send void switchrelay(char ctrl) /switchrelay /0x10 open /0x20 close PORTC=(PORTC&0xcf)+ctrl; delay_us(600); PORTC=(PORTC&0xcf); char readepp(int adrs) /write adrss PORTD = (PORTD&0x1a)+ nwrite+nastrobe+ndstrobe;/+4; PORTD = (PORTD&(0xfa- nwrite);/+4; PORTD = (PORTD&(0xfa-nastrobe- nwrite);/+4; DDRB=0xFF;/1 FOR OUT ,0 for in PORTB = adrs ; PORTB = adrs ; PORTD = (PORTD&0x1a)+ nastrobe+ndstrobe;/+4; PORTD = (PORTD&0x1a)+ nwrite+nastrobe+ndstrobe;/+4; DDRB=0x00;/1 FOR OUT ,0 for in / read data PORTD = (PORTD&(0xfa-ndstrobe);/+4; / DDRB=0x00;/1 FOR OUT ,0 for in indata = PINB;/PORTB; delay_us(25); indata = PINB;/PORTB; PORTD = (PORTD&0x1a)+ nwrite+nastrobe+ndstrobe;/+4; / indata =7;return indata; void wrset(int adrs,int outdata) / PORTD = (PORTD&0xfe)+ nwrite+nastrobe+ndstrobe; /write adrss PORTD = (PORTD&(0xfb- nwrite);/li+4; PORTD = (PORTD&(0xfb- nwrite-nastrobe);/+4; DDRB=0xFF;/1 FOR OUT ,0 for in PORTB = adrs ; PORTD = (PORTD&0x1a)+ nastrobe+ndstrobe);/li+4; PORTD = (PORTD&0x1a)+ nwrite+nastrobe+ndstrobe);/+4; /write data PORTB = outdata; PORTD = (PORTD&(0xfb- nwrite);/li+4; PORTD = (PORTD&(0xfb- nwrite-ndstrobe);/+4; PORTD = (PORTD&0x1a)+ nastrobe+ndstrobe;/li+4; PORTD = (PORTD&0x1a)+ nwrite+nastrobe+ndstrobe;/+4; DDRB=0x00;/1 FOR OUT ,0 for in void wrfpga(unsigned char adrs,char dout ) wrset(6,adrs);/wrfpga adrss wrset(7,dout);/wrfpga datachar rdfpga(unsigned char adrs) wrset(6,adrs);/wrfpga adrss return readepp(6);/readfpga data void readINStime(unsigned char * buf) / minu unsigned char pp; for(pp=0;pp6;pp+) bufpp = readepp(0xa7+pp); /* buf0 = readepp(7); buf1 = readepp(8); buf2 = readepp(9); /second buf3 = readepp(10); / micro second buf4 = readepp(11); buf5 = readepp(12); */ void wrsettoram(void) unsigned char pp; for(pp=0;pp30;pp+) wrfpga(0x38,pp*6);/ramadress wrfpga(0x0f,StartTimepp&0xff);/ramadress start time byte0 wrfpga(0x38,pp*6+1);/ramadress wrfpga(0x0f,(StartTimepp&0xff00)/0x100);/ramadress start time byte1 wrfpga(0x38,pp*6+2);/ramadress wrfpga(0x0f,(StartTimepp&0xff0000)/0x10000);/ramadress start time byte2 wrfpga(0x38,pp*6+3);/ramadress wrfpga(0x0f,ENDTimepp&0xff);/ramadress start time byte0 wrfpga(0x38,pp*6+4);/ramadress wrfpga(0x0f,(ENDTimepp&0xff00)/0x100);/ramadress start time byte1 wrfpga(0x38,pp*6+5);/ramadress wrfpga(0x0f,(ENDTimepp&0xff0000)/0x10000);/ramadress start time byte2 wrfpga(0x38,190+2*pp);/ramadress wrfpga(0x0f, startPbattervolpp); wrfpga(0x38,190+2*pp+1);/ramadress wrfpga(0x0f, startNbattervolpp); for(pp=0;pp6;pp+) wrfpga(0x60+pp,STATIONNUMpp);/ramadress / wrfpga(0x0f,STATIONNUMpp); wrfpga(0x23+pp,sufCorrecTimepp); wrfpga(0x29+pp,sufCorrecTimeinspp); wrfpga(0x10+pp,PreCorrecTimepp); wrfpga(0x50+pp,regSeaHighpp); /* for(pp=0;pp30;pp+) wrfpga(0x38,190+2*pp);/ramadress wrfpga(0x0f, startPbattervolpp); wrfpga(0x38,190+2*pp+1);/ramadress wrfpga(0x0f, startNbattervolpp); */ /* for(pp=0;pp6;pp+) wrfpga(0x23+pp,sufCorrecTimepp); wrfpga(0x29+pp,sufCorrecTimeinspp); wrfpga(0x10+pp,PreCorrecTimepp); */ /* for(pp=0;pp6;pp+) wrfpga(0x29+pp,sufCorrecTimeinspp); for(pp=0;pp6;pp+) wrfpga(0x10+pp,PreCorrecTimepp); for(pp=0;pp6;pp+) regSeaHighpp = rdfpga(0x50+pp); */ for(pp=0;pp2;pp+) wrfpga(0x56+pp,regm_dLatpp); wrfpga(0x58+pp,regm_dLonpp); wrfpga(0X22,adc_data0); /npower wrfpga(0X21,adc_data1); /ppower void readsettoram(void) unsigned char pp; for(pp=0;pp30;pp+) wrfpga(0x38,pp*6);/ramadress StartTimepp = rdfpga(0x20);/ramadress start time byte0 wrfpga(0x38,pp*6+1);/ramadress StartTimepp = StartTimepp + 0x100l*rdfpga(0x20);/ramadress start time byte1 wrfpga(0x38,pp*6+2);/ramadress StartTimepp = StartTimepp + (0x10000l*rdfpga(0x20);/ramadress start time byte1 wrfpga(0x38,pp*6+3);/ramadress ENDTimepp = rdfpga(0x20);/ramadress start time byte0 wrfpga(0x38,pp*6+4);/ramadress ENDTimepp = ENDTimepp + 0x100l*rdfpga(0x20);/ramadress start time byte1 wrfpga(0x38,pp*6+5);/ramadress ENDTimepp = ENDTimepp + (0x10000l*rdfpga(0x20);/ramadress start time byte1 /baterry / wrfpga(0x38,190+2*pp);/ramadress / startPbattervolpp = rdfpga(0x20); / wrfpga(0x38,190+2*pp+1);/ramadress / startNbattervolpp = rdfpga(0x20); for(pp=0;pp6;pp+) / wrfpga(0x38,180+pp);/ramadress STATIONNUMpp = rdfpga(0x60+pp); sufCorrecTimepp = rdfpga(0x23+pp); sufCorrecTimeinspp = rdfpga(0x29+pp); PreCorrecTimepp = rdfpga(0x10+pp); /* for(pp=0;pp30;pp+) /baterry wrfpga(0x38,190+2*pp);/ramadress startPbattervolpp = rdfpga(0x20); wrfpga(0x38,190+2*pp+1);/ramadress startNbattervolpp = rdfpga(0x20); */ /* for(pp=0;pp6;pp+) sufCorrecTimepp = rdfpga(0x23+pp); for(pp=0;pp6;pp+) sufCorrecTimeinspp = rdfpga(0x29+pp); for(pp=0;pp6;pp+) PreCorrecTimepp = rdfpga(0x10+pp); for(pp=0;pp6;pp+) regSeaHighpp = rdfpga(0x50+pp); */ /* for(pp=0;pp2;pp+) regm_dLatpp =rdfpga(0x56+pp); regm_dLonpp =rdfpga(0x58+pp); */ if(readepp(0x22) = 0x81) samplestatus = 0; /* for(pp=0;pp4;pp+) armclrstattuslable = 1; samplestatus =samplestatus + (unsigned long)readepp(0x22+pp)1000) indata = 4&PIND;/PORTB; delay_us(150); #asm(WDR) if(4&indata) = 0) goto closel; ss+; / while(TIM1_OVFlable = 1) TIM1_OVFlable =0; poweropenlable =0; wrset(5,0xaa); #asm(WDR) for(ss=0;ss35;ss+) delay_us(900); #asm(WDR) TIM1_OVFlable =0; / #asm(WDR) /TIMSK = 0x00; /close timer1 over interuput / PORTD = (PORTD&0xf3) + SWPWERrf+4; PORTD = 0xf2; delay_us(900); / wrset(5,0xaa); / wrset(5,0xaa); switchrelay(0x20); /switchrelay /0x10 open pass /0x20 close unpass for(ss=0;ss3500;ss+) delay_us(900);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (完整)纱窗安装施工方案
- 2025年外科医疗安全不良事件相关知识培训考试试题及答案
- 2025版慢性阻塞性肺病症状解读及护理要点
- 美国总统介绍
- 2025版高血压心脏病变症状解析及护理指导
- 辽宁省2025八年级语文上册期末专题训练七文言文阅读课件新人教版
- 女生生理期科普
- 调度材料技巧与方法
- 游泳普及课课件
- 茶艺师中级职业技能鉴定练习试题与答案
- 成长赛道戏剧影视美术设计专业1500字
- 全国公开课一等奖四年级上册数学新人教版《条形统计图》课件
- ALK阳性NSCLC诊断方法更新
- 《危险货物道路运输企业车辆专用停车场技术要求》
- 南京大屠杀:历史教育主题班会教案
- 案例分析一次成功的学术会议汇报制作经验
- -人教版四年级下册英语全册教案-
- 2024至2030年中国不锈钢节能水箱行业投资前景及策略咨询研究报告
- (高清版)DB35∕T 836-2015 学生服装
- 软件维护与管理操作手册
- 第十四届全国交通运输行业“大象科技杯”城市轨道交通行车调度员(职工组)职业技能大赛理论题库-上(单选题)
评论
0/150
提交评论