多路数据采集系统设计报告Word格式文档下载.docx
- 文档编号:17337349
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:427.42KB
多路数据采集系统设计报告Word格式文档下载.docx
《多路数据采集系统设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《多路数据采集系统设计报告Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
(4)上位计算机与数据采集系统(下位机)通信方式:
串口通信,主从通信方式,上位机为主机,下位机为从机。
由上位机发起通信,下位机响应,将采集到的8路数据一并发送到计算机中。
三、设计方案
设计方案如图1所示。
图1设计方案
系统允许有8路模拟信号输入。
在单片机的控制下,任意一时刻,多路模拟开关选通其中一路模拟信号送入双积分AD转换器ICL7109。
ICL7109将模拟量转换成数字量,单片机读取数字量。
通过控制模拟开关,8路模拟信号依次接入AD转换器转换成数字量。
当8路模拟信号全部转换完毕,数据存放在单片机的RAM中,单片机将转换的数字量通过串口发送到计算中。
四、电路原理
4.1、AT89S52单片机电路
功能特性描述
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU
停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图2AT89C51单片机电路
4.2、ICL7109工作原理
ICL7109内部有一个14位(12位数据和一位极性、一位溢出)的锁存器和一个14位的三态输出寄存器,同时可以很方便地与各种微处理器直接连接,而无需外部加额外的锁存器。
ICL7109有两种接口方式,一种是直接接口,另一种是挂钩接口。
在直接接口方式中,当ICL7109转换结束时,由STATUS发出转换结束指令到单片机,单片机对转换后的数据分高位字节和低位字节进行读数。
在挂钩接口方式时,ICL7109提供工业标准的数据交换模式,适用于远距离的数据采集系统。
ICL7109为40线双列直插式封装,各引脚功能参考相关文献。
ICL7109与89C51的接口
本系统采用直接接口方式,7109的MODE端接地,使7109工作于直接输出方式。
振荡器选择端(即OS端,24脚)接地,则7109的时钟振荡器以晶体振荡器工作,内部时钟等于58分频后的振荡器频率,外接晶体为6MHz,则时钟频率=6MHz/58=103kHz。
积分时间=2048×
时间周期=20ms,与50Hz电源周期相同。
积分时间为电源周期的整数倍,可抑制50Hz的串模干扰。
在模拟输入信号较小时,如0~0.5伏时,自动调零电容可选比积分电容CINT大一倍,以减小噪声,CAZ的值越大,噪声越小,如果CINT选为0.15μF,则CAZ=2CINT=0.33μF。
由传感器传来的微弱信号经放大器放大后为0~5V,这时噪声的影响不是主要的,可把积分电容CINT选大一些,使CINT=2CAZ,选CINT=0.33μF,CAZ=0.15μF,通常CINT和CAZ可在0.1μF至1μF间选择。
积分电阻RINT等于满度电压时对应的电阻值(当电流为20μA、输入电压=4.096V时,RINT=200kΩ),此时基准电压V+RI和V-RI之间为2V,由电阻R1、R3和电位器R2分压取得。
本电路中,CE/LOAD引脚接地,使芯片一直处于有效状态。
RUN/HOLD(运行/保持)引脚接+5V,使A/D转换连续进行。
A/D转换正在进行时,STATUS引脚输出高电平,STATUS引脚降为低电平时,由P2.6输出低电平信号到ICL7109的HBEN,读高4位数据、极性和溢出位;
由P2.7输出低电平信号到LBEN,读低8位数据。
本系统中尽管CE/LOAD接地,RUN/HOLD接+5V,A/D转换连续进行,然而如果89C51不查询P1.0引脚,那么就不会给出HBEN、LBEN信号,A/D转换的结果不会出现在数据总线D0~D7上。
不需要采集数据时,不会影响89C51的工作,因此这种方法可简化设计,节省硬件和软件。
A﹒积分电阻RINT的选择
缓冲放大器和积分器能够提供20UA的推动电流,积分电阻要选得足够大,以保证在输入电压范围的线性。
积分电阻RINT=满度电压/20UA
当输入满度电压=4﹒096V时,RINT=200KΩ,此时基准电压REFIN-和REFIN+之间为+2V,由电阻R2和电位器R1分压取得。
如满度电压为方便用户4﹒096MV,则RINT=20KΩ,基准电压=0.2V。
RINT接入缓冲放大器输出端BUF(30脚)。
B.积分电容CINT的选择
积分电容根据积分器给出的最大输出摆幅电压选择。
此电压应使
积分器不饱和(大约低于电源0.3V)。
对ICL7109的±
5V电源。
模拟公共点接地,积分器输出摆幅一般为±
3.5V至±
4V。
对不同的时钟频率,电容值也要改变,以保证积分器输出电压的摆幅。
CINT=2048*时钟周期*20UA/积分器输出摆幅
为了使积分器不饱和,积分器输出的摆幅最大为±
4V,所以积分器的最小电容为1UF。
积分器电容越大,积分器输出摆幅越小,所以,CINT也不应选的过大,如果电路设计时选用不同的时钟频率,则积分电容应根据上面的公式计算,以便选择合适的CINT的值。
积分电容CINT接入积分电容连接端INT(32脚)。
C.自动调零电容CAZ的选择
积分电容CINT选定以后,自动调零电容CAZ的选择是非常容易的。
在模拟输入信号较小时,如0—409.6MV,这时抑制噪声是主要的。
而这时积分电阻又较小,所以,自动调零电容CAZ可选为比积分电容CAZ大一倍,以减少噪声。
CAZ的值越小,噪声越小。
对于大部分实际应用系统,由传感器来的微小信号都要经过放大器放大成较大的信号,如0—+4﹒096mV。
这时噪声的影响不是主要的,可把积分电容Cint选大一些以减少复零误差,使Cint=2Caz。
D﹒基准电容Cref的选择
一般情况下Cref取值1uf较好。
但如果存在一个大的共模电压(即基准电压低端不是模拟公共点),对于模拟输入为0—+409﹒6MV的情况下,要求电容值较大,以防止滚动误差,在这种情况下,如选Cref=10uf可以使滚动误差在0﹒5以内。
4.3、MAX308作用
MAX308是带串行接口的14位模数转换集成电路(ADC),它包含有跟踪/保持电路的一个底飘溢、底噪声、掩埋式齐纳电压基准电源。
它的转换速度快、功率消耗底、采样速率高达308ks/s点,满量程输入电压范围为±
5V,功耗为210mW。
可与大多数流行的数字信号处理器的串行接口直接接口,该输入可以接收TTL或CMOS的信号电平,时钟频率为0.1-5.5MHz。
图48路模拟信号输入端
4.4、负电源生成电路
利用ICL7660将+5V电源变换成-5V电源的电路如下图所示。
C1、C2
采用漏电小、介质损耗低的10uF旦电容,以提高电源转换效率。
当UDD﹤+6.5V时,5脚可直接作为输出(将5脚沿虚线接输出端Uo);
当UDD﹥6.5V时,为避免损坏芯片,输出电路需串入二极管D。
该电路的输出电流不宜超过10mA
图5负电源生成电路
图6电源接线端
4.5原理图
如图7为总电路原理图
图7总电路图
由于我们已经单片机最小系统设备,因此我们制作时省去了单片机部分。
图8为8通道精密模拟量数据采集模块原理图
图9为8通道精密模拟量数据采集模块pcb图
五、软件设计
流程图
主机程序流程图
子程序流程图
程序
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitLBEN=P2^0;
sbitHBEN=P2^1;
sbitLOAD=P2^2;
sbitRUN_HOLD=P2^3;
sbitSTATUS=P3^2;
ucharnum_channel=0;
uchardata_temp[16],data_send[16];
uchardata_voltige[8];
uchardata_receive,counter=0;
ucharchan_table[]={0,1,2,3,4,5,6,7,8};
voiduart_init(void)
{
//uchari;
TMOD=0x20;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
IT0=1;
IE=0x91;
TR1=1;
RUN_HOLD=1;
//for(i=0;
i<
16;
i++)
//data_send[i]=0;
}
voidmain()
uart_init();
while
(1)
{
P1=num_channel&
0x07;
//STATUS=1;
}
voiduart_send(void)
for(counter=0;
counter<
counter++)
SBUF=data_send[counter];
while(TI==0);
TI=0;
voiduart_receive(void)interrupt4
if(RI==1)
RI=0;
data_receive=SBUF;
if(data_receive==0xaa)
uart_send();
voidxint0()interrupt0
uchari=0;
EX0=0;
RUN_HOLD=0;
LOAD=0;
HBEN=0;
//读高字节数据
data_temp[2*num_channel]=P0&
0x3f;
//暂存数据
HBEN=1;
LOAD=1;
LBEN=0;
//读低字节数据
data_temp[2*num_channel+1]=P0;
//HBEN=1;
LBEN=1;
num_channel++;
if(num_channel==8)//8路已经转换完成
{
num_channel=0;
for(i=0;
data_send[i]=data_temp[i];
8;
data_voltige[i]=((data_send[2*i]&
0x04)*256+data_send[2*i])*0.005;
}
EX0=1;
六、电路的装配与调试过程
6.1电路焊接
焊接时要主要布线和焊点的合理分布,采用手工布线,尽量做到美观。
实际焊接过程中,要保证焊笔不要碰到已经焊好的线,否则焊好的线很容易脱落。
每焊接完一部分电路,就立即进行调试,测试无误后方可进心下一阶段的焊接。
插拔集成芯片时用力要均匀,避免芯片管脚在插拔中变弯、折断
6.2调试过程
实际调试中出现了不少问题,如通讯不正常,采集不稳定等等。
仔细检测后发现主要是电路的一些接线有错以及虚焊。
下面是我们的通电源逐级调试,逐级排除故障错误的调试调试过程:
七、收获、体会和建议
收获与体会:
1、加强了团队合作精神,磨练了我们的意志力。
我们各人之间好好的配合,分工合作,设计过程没有一团乱麻。
更为可贵的是,我们彼此鼓励,同舟共济地处理每个问题。
这种团队精神将是我们美好的回忆。
我们花了很多心血来做这个课程设计,由于这两个星期又要考试所以很紧的时间,后面出错的时候经常检查电路到凌晨2点多,但凡事不是一帆风顺的,我们遇到了许多困难。
有些困难甚至看进来难于解决,确实也是打击了我们的信心。
但我们毫不气馁,认真地检查电路,检查焊接的好坏,用坚强的意志解决问题,最终取得了最后的胜利。
2、加强我们对电子器件的了解。
一直以来,我们都对电子器件都很感兴趣,对电子应用感到好奇。
这次我们亲自制作一个电子器件,虽然原理并不太复杂,但我们在这一个过程,了解电子应用的奇妙之处。
3、做到理论联系实际。
刚刚学过了单片机这门课程,还没完全弄懂某些元器件的原理和用途,而此次课程设计恰恰提供了一个好机会,让我们从实践中加深了对所学知识的理解。
参考文献
1、单片机原理技术.
2、模拟电子技术第五版康华光主编高等教育出版社2006
3、数字电路实验与课程设计施云编著哈尔滨工程大学2001
4、电子线路实验-数字电路实验沈小丰主编清华大学出版社2007
附录元件清单
元件清单
名称/规格
数量
单片机AT89S52
1
ICL7109
MAX232
MAX308
ICL7660
TL431
10UF
5
0.1UF
3
1UF
6
0.022UF
0.33UF
0.15UF
3.3NF
22PF
2
1M
10K
2.2K
2K
20K可调电阻
200K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路数 采集 系统 设计 报告