多路数据采集系统.docx

上传人:b****1 文档编号:10376992 上传时间:2023-05-25 格式:DOCX 页数:21 大小:315.37KB
下载 相关 举报
多路数据采集系统.docx_第1页
第1页 / 共21页
多路数据采集系统.docx_第2页
第2页 / 共21页
多路数据采集系统.docx_第3页
第3页 / 共21页
多路数据采集系统.docx_第4页
第4页 / 共21页
多路数据采集系统.docx_第5页
第5页 / 共21页
多路数据采集系统.docx_第6页
第6页 / 共21页
多路数据采集系统.docx_第7页
第7页 / 共21页
多路数据采集系统.docx_第8页
第8页 / 共21页
多路数据采集系统.docx_第9页
第9页 / 共21页
多路数据采集系统.docx_第10页
第10页 / 共21页
多路数据采集系统.docx_第11页
第11页 / 共21页
多路数据采集系统.docx_第12页
第12页 / 共21页
多路数据采集系统.docx_第13页
第13页 / 共21页
多路数据采集系统.docx_第14页
第14页 / 共21页
多路数据采集系统.docx_第15页
第15页 / 共21页
多路数据采集系统.docx_第16页
第16页 / 共21页
多路数据采集系统.docx_第17页
第17页 / 共21页
多路数据采集系统.docx_第18页
第18页 / 共21页
多路数据采集系统.docx_第19页
第19页 / 共21页
多路数据采集系统.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

多路数据采集系统.docx

《多路数据采集系统.docx》由会员分享,可在线阅读,更多相关《多路数据采集系统.docx(21页珍藏版)》请在冰点文库上搜索。

多路数据采集系统.docx

多路数据采集系统

设计任务书

1、设计任务

设计一个八路数据采集系统,系统框图如图所示。

图1八路数据采集系统框图

主控系统能对100米外的各路数据采集器的数据进行巡呼接收,通过串行传输线(测试可以用100米电缆线代替)进行采集和显示。

具体设计任务是:

(1)设计现场信号产生器

(2)设计八路数据采集器

(3)设计主控器,不允许使用PC机替代

2、设计要求

2.1、基本要求:

(1)、设计一台现场信号产生器,能够产生稳定可调的0~2V直流信号,并保证输出低阻抗特性,能够在带10K电阻负载后输出无明显变化。

(2)、设计数据采集器(不要求显示功能),能够采集自己设计的0~2V直流信号,采集精度0.5%。

支持与主机通讯,就能够将采集的数据上传。

数据传输采用串行方式,传输的电器特性自己选择。

系统能够容纳8台子机,实际要求制作2台子机即可,但要求2台子机能够模拟1~8号中的任意一台子机。

(3)设计一台主控器,主控器通过串行传输线对各路数据采集器进行采集存储。

采集方式为循环采集(即1路、2路……、8路、1路)和选择采集(任选一路)两种方式。

如果采用循环方式,采集8路信号的采集周期为1S。

设计主控器显示功能,要求能够显示:

采集器路数1~8;能够显示各路数据0~2.000V。

支持手动显示和自动巡回显示。

(4)所有电源要求自制。

2.2、发挥部分:

(1)、提高数据采集器的采集精度到0.1%以上。

(2)、主机具有历史数据保存功能,每10S保存1点。

要求煤炉可以连续保存20点,循环刷新,要求数据存储在非易失数据存储器中,人机界面支持历史数据查看。

(3)支持8路采集器上限报警功能,上限数据可以任意设定,要求数据存储在非易失数据存储器中,掉电不丢失,要求显示界面能够清晰显示报警状态。

(4)、其他功能的改进。

 

多路数据采集系统

摘要

本设计采用单片机控制和RS485通信系统,包括一台主机和8台子机。

主机采用图形液晶显示模块,能够显示子机传输过来的0~2V电压值、采集现场温度、实时时钟、电压超限报警等,同时可以使用键盘输入控制主机的工作状态。

从机采用

位A/D,负责采集八路0~2V直流电压,采集精度可以达到0.1%以上,并且可以采集现场温度,同时应答主机发送的命令,将采集的数据上传,主机具有数据保存功能,并且掉电不丢失。

在主机与从机的通讯中,采用RS485总线通信方式,有效传输距离超过100米。

 

关键词数据采集系统;单片机;RS485

 

Multi-channeldataacquisitionsystem

ABSTRACT

ThisdesignusesthemonolithicintegratedcircuitcontrolandtheRS485communicationssystem,includingamainengineand8frommachine.ThemainengineusegraphicsLCDmodules,toshowthattransmissionfromtheplanefrom0~2Vvoltagevalue,collectedatthescenetemperature,real-timeclock,alarmvoltagegauge,atthesametimecanusethekeyboardinputtocontrolthemainengine.Fromtheuseof

bitA/D,isresponsibleforcollectingeight-way0~2VDCvoltage,thegatheringprecisionmayachieveabove0.1%,andmaygatherthescenetemperature,simultaneouslyrepliestheorderwhichthemainenginetransmits,willgatherdataupload.Inmainenginewithfrommachinethecommunication,usestheRS485mainlinemailingaddress,theeffectivetransmittingrangesurpasses100meters.Thisdesignhasthedatastoragefunction,andthepowerfailuredoesnotlose.

 

KeywordsDataAcquisitionSystem;SCM;RS485

 

目录

摘要II

ABSTRACTIII

1、系统方案1

1.1系统概述1

1.2方案论证1

1.2.1信号源产生电路1

1.2.2子机2

1.2.3通信2

1.2.4主机2

2、理论分析与计算3

2.1测量与控制方法3

2.1.1信号源3

2.1.2信号采集3

2.1.3通信4

2.2理论计算5

2.2.1信号源制作5

2.2.2数据采集器5

3、电路与程序设计6

3.1电路设计6

3.1.1信号源6

3.1.2子机6

3.1.3主机7

3.1.4总体电路图8

3.2程序设计10

3.2.1程序流程图10

3.2.2主要程序分析11

4、结果分析12

4.1测试及分析12

4.1.1测试工具12

4.1.2测试数据12

4.2结论13

参考文献14

附录15

1、系统方案

1.1系统概述

本系统可模拟远距离多路采集的现场,实现多路模拟信号同时采样,A/D采集、主从CPU通信与数据处理、键盘控制与数据显示。

系统结构框图如图1-1-1所示:

图1-1-1系统结构框图[1]

1.2方案论证

1.2.1信号源产生电路

方案一、制作一个稳压直流电源,在输出端通过电位器分压获得0~2V连续可调的直流信号,此方法简便易行,缺点是通过电位器分压输出,输出阻抗较大,带负载能力弱,并且不能得到0V电压。

方案二、通过基准源获得稳定的电压,再经运算放大器反相,最后再在输出端采用运放跟随输出,这样经反相既可以获得0V电压输出,采用运放跟随输出又保证了低输出阻抗的特点。

考虑到设计任务中要求信号源低输出阻抗,并且要求包括0~2V可调输出,故本设计采用方案二。

1.2.2子机

1.2.2.1A/D转换器

方案一、采用MC14433(国产5G14433)

位(BCD码)单片双积分式A/D转换器,模拟输入电压范围为0~

1.999V或0~

199.9mV,因为它有一个超量程标志,所以可以认为当显示超量程标志位时为2.000V。

缺点是不能测量超过1.999V的电压[2]。

方案二、采用

位A/D,ICL7135,测量精度可达0.005%,可以轻松满足测量精度0.1%以上的要求,具有精度高和价格低的特点。

本设计采用方案二。

1.2.2.2温度采集

方案一、采用一线式数字温度传感器DS18B20,由于只有一根线控制,可节省大量的引线和逻辑电路,但也正是由于只有一根线控制,对它进行操作不允许被打断,同时占用的机时较长。

方案二、采用LM71集成温度传感器,功耗低,具有三线串行接口SPI总线,在操作过程中不受中断影响,因此使用更为方便。

故本设计采用方案二。

1.2.3通信

方案一、采用RS232通信,但RS232的可靠通信距离仅为15米。

方案二、采用RS485总线,它采用平衡发送和差分接收,因此具有抑制共模干扰的能力。

加上总线收发器具有高灵敏度,能检测低至300mV的差分电压,传输信号能在千米以外得到恢复。

由于本设计要求主控器能对100米以外的数据采集器的数据进行采集和控制,故本设计采用RS485总线。

1.2.4主机

1.2.4.1键盘与显示

由于本设计要显示的内容较多,LED已不能胜任,故采用图形液晶显示模块12864,显示分辨率为128×64点。

由于功能按键数量较少,故直接使用I/O口控制。

1.2.4.2监控

方案一、对MCU采用手动复位,此方法电路简单,但需要操作者每时每刻注意MCU的工作状态,很不方便。

方案二、采用监控电路MAX813L,可以对电源电压及MCU工作状态进行监控,当电源电压降低或工作状态不正常时,便会输出一个复位信号,使MCU复位,此方法大大增加系统可靠性。

本设计采用方案二。

1.2.4.3存储器

方案一、采用EEPROM24C02,存储空间有2K,不能满足每路每10S存一点,一共存20点的要求。

方案二、使用X5045,看门狗芯片X5045内部有512字节的存储空间,每一路存20点,一共8路,需要存储160点,每一点需要2个字节,所需内存为320字节。

所以本设计采用方案二。

2、理论分析与计算

2.1测量与控制方法

2.1.1信号源

信号源要求能够产生稳定可调的0~2V直流信号,并保证输出低阻抗特性。

首先信号源必须涵盖0V和2V这两个临界值,所以可以用运放将信号反相,得到负值,再将输出信号通过一级运放跟随,便可以得到0~2V的低输出阻抗的信号源。

由于电源的电压波动较大,故不能直接用来作为运放的输入,这时就需要用到基准源芯片。

它能在负载电流、温度和时间变化时电压保持稳定不变。

2.1.2信号采集

信号采集主要通过ICL7135将输入模拟量转换成数字量,芯片的积分过程包括了对测量信号的积分阶段及对基准电压的放电阶段,对测量信号积分时间固定为10000个时钟周期,而对基准放电的时间计数就是A/D转换结果。

只要对BUSY信号的高电平进行时钟同步计数,再减掉10000就能够得到A/D结果。

具体的设计是使用单片机T0计数,INT0接BUSY做门控,同时使用INT0的后沿中断获得A/D转换结果。

接口及BUSY信号波形参见图2-1-1:

图2-1-1ICL7135管脚排列、接口及积分波形图

2.1.3通信

通讯采用的是485主从结构,通讯时,主设备先写一字节的地址请求,所有的从设备均会收到,只有地址与之相等的从设备端口打开,其他设备全部关闭。

这样,主设备与从设备之间的通信就是点对点的。

每一个从设备通过总线与主设备相连,若从设备需要与主设备通信时,先通过总线请求,当请求成功后,从设备应能检测到总线上的地址与自身地址相同,从设备才能打开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放总线,以保证其他从设备这段时间能与主设备正常通信,提高通信效率。

数据接收时,采用中断方式,当有数据来到的时候该任务会立刻自动响应,提高系统的实时性。

接收方判断开始485通信帧的条件是,设备不报告接收错误的情况下,接收到结束标志之后的第一个非结束标志。

判断帧结束的条件是,帧接收已经开始,遇到第一个尾标志字符。

当链路层的通信帧接收已经开始的情况下,设备报告字符接收错误,此时应当丢弃本帧,结束帧的接收,重新开始搜索下一帧。

长度字段后面的字节个数不等于长度字段指示,并且也不等于长度字段加2时,指示长度错误,作无效帧。

帧长度小于帧头的长度的帧视为无效帧。

超时保护:

如果接收收方在接收一帧数据时,在未接收完一帧时,超过3ms仍未有数据到达,则认为本帧数据接收结束,并将其丢弃。

2.2理论计算

2.2.1信号源制作

信号源输出要求0~2V稳定的电压,所以不能用电源直接提供基准电压,应该使用基准源芯片。

要求信号源输出包括0V,便需要用到运放反相来获得负电压,从而保证信号源能够输出0V。

故要采用双电源对运放供电,这里采用双5V电源。

考虑到最大输出电压为2V,应留有一定的余量,故采用2.5V的基准源。

选用LM338-2.5,基准源只要流过1mA的电流便能稳定工作。

由于采用5V电源供电,在基准源上的压降为2.5V,所以为保证基准源能够稳定工作,应该串一个2.2K

的限流电阻。

2.2.2数据采集器

ICL7135基准电压的大小与满度值的关系是:

为了留出一定的余量这里选用基准电压为1.23V,则输入电压最大值可以达到2.46V。

以输入电压Vx为例,“BUSY”输出端(ICL7135的21脚)高电平的宽度等于积分和反积分时间之和,如图2-1-1所示。

ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例。

如果利用单片机内部的计数器对ICL7135的时钟脉冲计数,利用“BUSY”作为计数器门控信号,控制计数器只能在BUSY为高电平时计数,将这段BUSY高电平时间内计数器的内容减去10001,其余数便等于被测电压的数值。

在实际测量中,采用数字校准,即在测试输入电压时,先用

数字万用表测量信号源的输出,调节为1.500V,认为这是实际值,再用子机取采集这一路信号,得到一个计数值记为Nx,则可以得到一个系数:

在调试时可以不断改变输入信号,测得多组X值,再求其平均值,便是最后得到的系数,记为X0。

在以后测量时将测得的值乘以X0便是实际所测的压。

3、电路与程序设计

3.1电路设计

3.1.1信号源

信号源电路如图3-1-1所示:

图3-1-1直流信号源电路图

图中D1为基准源,只要有1mA的电流流过D1,在D1的输出端便会输出稳定的2.5V电压。

经过U1反相,在R6的下端输出-2.5V的电压,在R2的上端输出+2.5V的电压,这样通过调节R4便可以得到

V的输出电压,再经过一级电压跟随,便得到了低输出阻抗的信号源。

3.1.2子机

图3-1-2数据采集器电路图

图中U8为

位A/D,ICL7135,它只有三根线控制,其中sclk为时钟输入端,POL为输出数据的符号位,BUSY为数据输出端。

sclk信号是由2MHz晶振经过8分频而得到的250KHz的方波信号。

LM71是温度传感器,测温范围为-40℃~150℃,温度分辨率为0.03125℃,测温精度在-40℃~150℃范围内为±1.5℃,电源电压为2.65V~5.5V,具有三线串行接口SPI/MICROWIRE兼容接口,容易和微处理器连接。

图3-1-2中U11的串行时钟SC、串行输入输出SI/O、片选CS分别与单片机的P2.5,P2.6,P2.7相连,用来监测机箱内温度。

U15,MAX813L是MAXIM公司推出的低成本微处理器监控芯片,它用来监测单片机的电源电压,当电源电压降到+4.65V以下时,RESET输出高电平,对单片机进行复位,从而保证单片机正常工作。

S1为拨码开关,可以设定子机的地址,当开关导通时I/O口为低电平,四位拨码开关可以设定16个地址。

U10是RS485通信芯片75LBC184。

3.1.3主机

图3-1-3主机电路图

主机能对8路子机进行巡呼,能够将子机发送上来的数据进行显示。

图中U14为X5045,在本设计中当作存储器使用。

MAX813L为看门狗电路,用来监测电源电压,当电源电压下降时,给P3.2一个信号,单片机便进入掉电保护程序,将当前数据写入X5045中。

S2~S5为设置用的功能按键。

D6为超限报警指示灯,当某一路或某几路的值超过设定值时,便会闪烁。

DS1302用来提供实时时钟。

3.1.4总体电路图

图3-1-4总体电路图

本系统的所有设计电路如图3-1-4所示,其中共有四个模块,信号源、主机和两个子机,每个模块都是一个独立的整体,都自带电源。

3.2程序设计

3.2.1程序流程图

图3-2-1为子机的程序流程图,图3-2-2为主机的程序流程图。

图3-2-1子机程序流程框图

图3-1-2主机程序流程框图

3.2.2主要程序分析

对于主机,与从机通讯完全是主动,通讯完全可以采用主程序完成。

对于从机为了满足实时任务处理的需要,采用中断方式接收处理,接收

则需要进行超时判断。

主机发送的格式为:

地址(1字节)+命令(1字节)+校验和(1字节)。

子机发送的格式为:

地址(1字节)+命令(1字节)+校验和(1字节)

返回地址可以增强主机的信息识别正确率。

此设计中主机发送三个字节,主机等待接收,之间进行超时判断。

为了保持系统的实时性,子机中断接收数据,返回应答信号,并且在中断函数中只是将接收的数据放入缓存区。

4、结果分析

4.1测试及分析

4.1.1测试工具

位数字万用表CDM8045A,秒表

4.1.2测试数据

首先通过拨动子机的拨码开关,将子机的地址在0~7之间变换,主机对不同地址的子机进行读操作,发现主机可以识别子机,并且自己能够响应主机,将数据传给主机。

说明子机地址可任意设定,并且通信可靠。

接着将子机1固定任意一个地址,这里选择地址号为4,进行数据测试,得到数据如表4-1所示

表4-1子机1测试数据

给定值(V)

实测值(V)

绝对误差

(V)

相对误差(%)

0.0000

0.000

0

0

0.4001

0.400

-0.0001

-0.025

0.7998

0.800

0.0002

0.025

1.2000

1.201

0.001

0.083

1.6005

1.601

0.0005

0.031

2.0000

2.001

0.001

0.05

表4-2子机2测试数据

给定值(V)

实测值(V)

绝对误差

(V)

相对误差(%)

0.0000

0.000

0

0

0.3998

0.400

0.0002

0.050

0.8003

0.800

-0.0003

-0.037

1.2001

1.200

-0.001

-0.008

1.6001

1.599

-0.0002

-0.012

1.9998

1.999

-0.0008

-0.04

表中的给定值是

位数字万用表测得的值,可以认为是真值,实测值是子机采集到传给主机的显示值,有表中的相对误差一栏可以看到,测量的精度不大于0.05%,远远高于设计要求,故设计满足要求。

然后将主机的工作状态设定为循环工作方式,用秒表对采样一周进行计时,多次测量取均值以后为7.92S,即每路采集周期为0.99S,满足设计要求。

将报警通道设定为通道3,报警电压设定为0.9V,调节信号源输出电压,使其逐渐增大,当增大到一定值时,LED灯开始闪烁,测量信号源输出电压为0.902V,查看报警通道为3,并且具有掉电保存报警电压功能。

将系统电源关掉,再上电以后,查看历史记录,选择通道3,可以看到20个历史数据,说明掉电数据不丢失。

4.2结论

经过测试,本设计满足设计的基本要求:

(1)采集范围0~2V,精度达到0.5%;

(2)子机可以任意设定地址;

(3)主机能对子机进行循环采集和选择采集,循环采集周期小于1S,并能显示数据。

发挥部分:

(1)采集精度达到0.1%以上;

(2)具有历史数据保存功能,能连续保存每路20个点;

(3)支持掉电数据不丢失,并能查看历史数据;

(4)支持采集器上限报警功能,上限值可以任意设定,并有明显的报警指示和掉电保存报警电压的功能。

除此之外,本设计还在子机上附加了温度传感器,可以实时监视子机的工作温度,保证子机在合适的环境下可靠地工作。

在主机上附加了时钟芯片,能够实时显示当前时间,为采集的数据添加了更多的信息。

参考文献

[1]冯涛,秦永左,赵巍.实用多路数据采集系统[J].长春理工大学学报.2003,26

(2):

83

[2]赵茂泰.智能仪器原理及应用[M].2004年7月第1版.7-121-00017-2.北京:

电子工业出版社,2004.23~28

[3]张萌,和湘,姜斌.单片机应用系统开发综合实例[M].2008年7月第1版.978-7-302-15458-7.北京:

清华大学出版社,2007.94~117

附录

操作说明

在初始界面按Set进入功能设置界面,进入功能设置界面以后会显示功能选择界面,按Next可以切换不同的功能,分别为:

循环工作,选择工作,报警通道,电压设置,历史回放。

在功能设置界面理选择相应功能以后按Esc返回初始界面,再在初始界面中按Dis便可显示相应的查询数据。

下面将举例说明:

(1)开机显示初始界面

 

图3初始界面

(2)按Set,进入循环采集界面

图4循环采集界面

此时可以通过+和-按钮来改变循环采集的数字,1表示循环采集,再按Esc便退回图3所示的初始界面,在图3界面下,按Dis便进入循环采集显示状态

图5循环采集显示界面

其中的“0”是通道号,会按照顺序循环,1.256V是对应的采集数据。

在此界面按Esc退回到初始界面。

(3)如果在图4的界面中按Next,则进入选择采样界面:

图6选择通道界面

此时可以通过+和-来选择0~7个通道中的任意一个,选择通道后,按Esc退回初始界面,再按Dis便可以显示刚才选择的通道的数据。

(4)如果在图6的基础上按Next,便进入报警选择界面:

图7报警通道选择界面

当选择报警通道以后,界面自动切换为报警电压设置界面:

图8报警电压设置界面

报警电压可以从0.0~9.9V任意设定,设定报警电压以后按Esc返回初始界面,若所测电压超出设定值,主界面上的一个LED便会闪烁,此时可以按Dis查看报警通道

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2