ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:326.40KB ,
资源ID:9332395      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9332395.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(绍兴市第二届大学生电子设计竞赛多路数据采集系统.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

绍兴市第二届大学生电子设计竞赛多路数据采集系统.docx

1、绍兴市第二届大学生电子设计竞赛多路数据采集系统2008年绍兴市第二届大学生电子设计竞赛设 计 报 告 书题目 多路数据采集系统 参赛学校 绍兴文理学院 参赛学生 陈利庆 胡佳波 徐步杰 时 间 2008年7月13日 设计任务书1、设计任务 设计一个八路数据采集系统,系统框图如图所示。图1 八路数据采集系统框图主控系统能对100米外的各路数据采集器的数据进行巡呼接收,通过串行传输线(测试可以用100米电缆线代替)进行采集和显示。具体设计任务是:(1)设计现场信号产生器(2)设计八路数据采集器(3)设计主控器,不允许使用PC机替代2、设计要求2.1、基本要求:(1)、设计一台现场信号产生器,能够产

2、生稳定可调的02V直流信号,并保证输出低阻抗特性,能够在带10K电阻负载后输出无明显变化。(2)、设计数据采集器(不要求显示功能),能够采集自己设计的02V直流信号,采集精度0.5。支持与主机通讯,就能够将采集的数据上传。数据传输采用串行方式,传输的电器特性自己选择。系统能够容纳8台子机,实际要求制作2台子机即可,但要求2台子机能够模拟18号中的任意一台子机。(3)设计一台主控器,主控器通过串行传输线对各路数据采集器进行采集存储。采集方式暴扣循环采集(即1路、2路、8路、1路)和选择采集(任选一路)两种方式。如果采用循环方式,采集8路信号的采集周期为1S。设计主控器显示功能,要求能够显示:采集

3、器路数18;能够显示各路数据02.000V。支持手动显示和自动巡回显示。(4)所有电源要求自制。2.2、发挥部分:(1)、提高数据采集器的采集精度到0.1以上。(2)、主机具有历史数据保存功能,每10S保存1点。要求煤炉可以连续保存20点,循环刷新,要求数据存储在非易失数据存储器中,人机界面支持历史数据查看。(3)支持8路采集器上限报警功能,上限数据可以任意设定,要求数据存储在非易失数据存储器中,掉电不丢失,要求显示界面能够清晰显示报警状态。(4)、其他功能的改进。多路数据采集系统摘 要本设计是一个主从系统,采用单片机控制,从机负责采集八路数据,采集精度可以达到0.1以上,同时应答主机发送的命

4、令,将采集的数据上传;主机进行数据处理,数据显示,键盘输入,系统报警。在主机与从机的通讯中,采用国际标准的RS485差分方式接口,使通讯的速率和传输距离均大于RS232的标准接口方式,并且用线最少(只要两根)。本设计通讯距离可达100米。关键词 数据采集系统;单片机;RS485Multi-channel data acquisition systemABSTRACTThis design is a master and slave system, using SCM control, eight-way from the plane responsible for collecting dat

5、a, the gathering precision may achieve above 0.1%, simultaneously replies the order which the main engine transmits, will gather data upload; mainframe data processing, data show , Keyboard input, alarm system. And from the host machine communication, using international standards RS485 differential

6、 way interface, so that communication and the rate of transmission distance was greater than the standard RS232 interfaces, and the use of at least (as long as two). The design of communications range of up to 100 meters.Key words Data Acquisition System;SCM;RS4851、系统方案1.1 系统概述本系统可模拟远距离多路采集的现场,实现多路模

7、拟信号同时采样,A/D采集、主从CPU通信与数据处理、键盘控制与数据显示。系统结构框图如图1-1-1所示:图1-1-1 系统结构框图11.2 方案论证1.2.1 信号源产生电路方案一、制作一个稳压直流电源,在输出端通过电位器分压获得02V连续可调的直流信号,此方法简便易行,缺点是通过电位器分压输出,输出阻抗较大,带负载能力弱,并且不能得到0V电压。方案二、通过基准源获得稳定的电压,再经运算放大器反相,最后再在输出端采用运放跟随输出,这样经反相既可以获得0V电压输出,采用运放跟随输出又保证了低输出阻抗的特点。考虑到设计任务中要求信号源低输出阻抗,并且要求包括02V可调输出,故本设计采用方案二。1

8、.2.2 A/D转换器方案一、采用MC14433(国产5G14433)位(BCD码)单片双积分式A/D转换器,模拟输入电压范围为01.999V或0199.9mV,因为它有一个超量程标志,所以可以认为当显示超量程标志位时为2.000V。缺点是不能测量超过1.999V的电压2。方案二、采用位A/D,ICL7135,测量精度可达0.005,可以轻松满足测量精度0.1以上的要求,具有精度高和价格低的特点。本设计采用方案二。1.2.3 温度采集方案一、采用一线式数字温度传感器DS18B20,由于只有一根线控制,可节省大量的引线和逻辑电路,但也正是由于只有一根线控制,对它进行操作不允许被打断,同时占用的机

9、时较长。方案二、采用LM71集成温度传感器,功耗低,具有三线串行接口SPI总线,在操作过程中不受中断影响,因此使用更为方便。故本设计采用方案二。1.2.4 通信方案一、采用RS232通信,但RS232的可靠通信距离仅为15米。方案二、采用RS485总线,它采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。由于本设计要求主控器能对100米以外的数据采集器的数据进行采集和控制,故本设计采用RS485总线。1.2.5 键盘与显示由于本设计要显示的内容较多,LED已不能胜任,故采用图形液晶显示模块12864,显示

10、分辨率为12864点。由于功能按键数量较少,故直接使用I/O口控制。1.2.6 监控方案一、对MCU采用手动复位,此方法电路简单,但需要操作者每时每刻注意MCU的工作状态,很不方便。方案二、采用监控电路MAX813L,可以对电源电压及MCU工作状态进行监控,当电源电压降低或工作状态不正常时,便会输出一个复位信号,使MCU复位,此方法大大增加系统可靠性。本设计采用方案二。1.2.7 存储器方案一、采用EEPROM 24C256,存储空间有256K,足以满足每路每10S存一点,一共存20点的要求,但是读写速度较慢。方案二、使用X5045,看门狗芯片X5045内部有512字节的存储空间,每一路存20

11、点,一共8路,需要存储160点,每一点需要2个字节,所需内存为320字节。所以本设计采用方案二,并且X5045的读写速度较快。2、理论分析与计算2.1 测量与控制方法2.1.1 信号源信号源要求能够产生稳定可调的02V直流信号,并保证输出低阻抗特性。首先信号源必须涵盖0V和2V这两个临界值,所以可以用运放将信号反相,得到负值,再将输出信号通过一级运放跟随,便可以得到02V的低输出阻抗的信号源。由于电源的电压波动较大,故不能直接用来作为运放的输入,这时就需要用到基准源芯片。它能在负载电流、温度和时间变化时电压保持稳定不变。2.1.2 信号采集信号采集主要通过ICL7135将输入模拟量转换成数字量

12、,芯片的积分过程包括了对测量信号的积分阶段及对基准电压的放电阶段,对测量信号积分时间固定为10000个时钟周期,而对基准放电的时间计数就是A/D转换结果。只要对BUSY信号的高电平进行时钟同步计数,再减掉10000就能够得到A/D结果。具体的设计是使用单片机T0计数,INT0接BUSY做门控,同时使用INT0的后沿中断获得A/D转换结果。接口及BUSY信号波形参见图2-1-1:图2-1-1 ICL7135管脚排列、接口及积分波形图2.1.3 通信RS-485是一种应用十分广泛的通信协议。其显著特点是信号采用“差分”的方式传输,因此抗干扰能力很强,通信距离也比RS-232远得多。RS-485通信

13、一般是半双工的,仅需要2根信号线,也可以是全双工的,需要4根信号线。在RS-485通信中,发送过程主要采取了总线仲裁机制:在向485总线写数据时,主设备先写一字节的地址请求,所有的从设备均会收到,只有地址与之相等的从设备端口打开,其他设备全部关闭。这样,主设备与从设备之间的通信就是点对点的。每一个从设备均有一根请求线与主设备相连,若从设备需要与主设备通信时,先通过请求线进行请求,当请求成功后,从设备应能检测到总线上的地址与自身地址相同,从设备才能打开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放总线,以保证其他从设备这段时间能与主设备正常通信,提高通信效率。数据接收时,采用中断方式,

14、当有数据来到的时候该任务会立刻自动响应,提高系统的实时性。接收方判断开始485通信帧的条件是,设备不报告接收错误的情况下,接收到结束标志之后的第一个非结束标志。判断帧结束的条件是,帧接收已经开始,遇到第一个尾标志字符。当链路层的通信帧接收已经开始的情况下,设备报告字符接收错误,此时应当丢弃本帧,结束帧的接收,重新开始搜索下一帧。长度字段后面的字节个数不等于长度字段指示,并且也不等于长度字段加2时,指示长度错误,作无效帧。帧长度小于帧头的长度的帧视为无效帧。当接收的字符个数超过最大的485通信帧字节数262时,也认为接收错误,重新开始搜索头标志,检出下一帧数据。超时保护:如果接收收方在接收一帧数

15、据时,在未接收完一帧时,超过20ms(2个Ticks)仍未有数据到达,则认为本帧数据接收结束,并将其丢弃。2.2 理论计算2.2.1 信号源制作信号源输出要求02V稳定的电压,所以不能用电源直接提供基准电压,应该使用基准源芯片。要求信号源输出包括0V,便需要用到运放反相来获得负电压,从而保证信号源能够输出0V。故要采用双电源对运放供电,这里采用双5V电源。考虑到最大输出电压为2V,应留有一定的余量,故采用2.5V的基准源。选用LM338-2.5,基准源只要流过1mA的电流便能稳定工作。由于采用5V电源供电,在基准源上的压降为2.5V,所以为保证基准源能够稳定工作,应该串一个2.2K的限流电阻。

16、2.2.2 数据采集器ICL7135基准电压的大小与满度值的关系是:为了留出一定的余量这里选用基准电压为1.23V,则输入电压最大值可以达到2.46V。ICL7135要求每秒钟至少进行3次A/D转换,每次转换需要40000个时钟脉冲,因此晶振频率应大于120KHz,这里取250KHz,可以有2MHz的晶振经过8分频得到。以输入电压Vx为例,“BUSY”输出端(ICL7135的21脚)高电平的宽度等于积分和反积分时间之和,如图2-1-1所示。ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例。如果利用单片机内部的计数器对ICL7135的时钟脉冲计数

17、,利用“BUSY”作为计数器门控信号,控制计数器只能在BUSY为高电平时计数,将这段BUSY高电平时间内计数器的内容减去10001,其余数便等于被测电压的数值。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

18、,ICL7135,它只有三根线控制,其中sclk为时钟输入端,POL为输出数据的符号位,BUSY为数据输出端。sclk信号是由2MHz晶振经过8分频而得到的250KHz的方波信号。LM71是温度传感器,测温范围为-40150,温度分辨率为0.03125,测温精度在-40150范围内为1.5,电源电压为2.65V5.5V,具有三线串行接口SPI/MICROWIRE兼容接口,容易和微处理器连接。图3-1-2中U11的串行时钟SC、串行输入输出SI/O、片选CS分别与单片机的P2.5,P2.6,P2.7相连,用来监测机箱内温度。U15,MAX813L是MAXIM公司推出的低成本微处理器监控芯片,它用

19、来监测单片机的电源电压,当电源电压降到+4.65V以下时,RESET输出高电平,对单片机进行复位,从而保证单片机正常工作。S1为拨码开关,可以设定子机的地址,当开关导通时I/O口为低电平,四位拨码开关可以设定16个地址。U10是RS485通信芯片75LBC784。3.1.3 主机图3-1-3 主机电路图主机能对8路子机进行巡呼,能够将子机发送上来的数据进行显示。图中U14为X5045,在本设计中当作存储器使用。MAX813L为看门狗电路,用来监测电源电压,当电源电压下降时,给P3.2一个信号,单片机便进入掉电保护程序,将当前数据写入X5045中。S2S5为设置用的功能按键。D6为超限报警指示灯

20、,当某一路或某几路的值超过设定值时,便会闪烁。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 主要程序分析4、结果分析参考文献1 冯涛,秦永左,赵巍.实用多路数据采集系统J.长春理工大学学报.2003,26(2):832 赵茂泰.智能仪器原理及应用M.2004年7月第1版.7-121

21、-00017-2.北京:电子工业出版社,2004.23283 张萌,和湘,姜斌.单片机应用系统开发综合实例M.2008年7月第1版.978-7-302-15458-7.北京:清华大学出版社,2007.94117附录1、主机源程序#include#include#define uchar unsigned char#define WriteDeviceAddress 0xa0 /写驱动地址指令#define ReadDeviceAddress 0xa1 /读驱动地址指令/变量说明:/I循环发送时存放的通道数/td用于循环显示电压的变量值/time show_time time为128ms扫描一次

22、的时间标志位 屏幕刷新的频率,大约是16时累计时间为1秒/temp为属性变量寄存器,即页面属性的变量寄存器/sel_flag,show_flag为为sel的菜单状态寄存器和显示结果的状态标志位,根据不同的情况调出不同的菜单/x_sw,x_gw,x_time 分别代表的是十位,个位,即计数的个数/x_dat=0,x_add=0; x_sz=0,代表的是X5045的双字节读写时数据和地址。以及读取出数字数据暂存变量uchar e=0,sec=1,select; /sec为秒的十位uchar at_add=0;unsigned int sec_page;uchar idata x_rdat40; /

23、at_add为在AT24C02中所存的数值(掉电)bit w = 0; /调时标志位uchar at_i=0; /用于作为通道的标志位uchar idata t10=0,0,0,0,0,0,0,0; /作为温度显示uchar alarm8=0,0,0,0,0,0,0,0,alarm_td,alarm_flag,alarm_stop=0,x_j,alarm_i;uchar idata x_tdat16=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;unsigned int r_dat;unsigned char time, show_time;unsigned char tem

24、p,sel_flag,show_flag;unsigned char fs_td,td; / td用于循环显示的通道数目/键盘引脚定义sbit dog=P20;sbit alarm_led=P21;sbit e_485 = P24; /485数据传输和接收使能端。sbit KEY_1 = P16; /左上 功能:退出显示数据功能sbit KEY_2 = P17; /左下 功能:加一sbit KEY_3 = P15; /右上 功能:设置时间sbit KEY_4 = P14; /右下 功能:减一sbit ep_sck=P22;sbit ep_si=P23;sbit ep_so=P35;sbit e

25、p_cs=P34;/向5045中写入数据void xinput(unsigned char v) unsigned char data v1; for(v1=0;v18;v1+) ep_sck=0; /拉低时钟 ep_si=v&0x80; /送出一位数据 ep_sck=1; /拉高时钟触发移位寄存器 v=v1; /准备输出下一位 ep_si=1;/数据的读出/辅助函数:从5045输入一个字节8位数据,首先输出高位。unsigned char xout() unsigned char data v1,x,y; ep_sck=0; /拉低时钟 for(v1=0;v18;v1+) ep_sck=1;

26、 /拉高时钟 x=x1; /输出字节先左移 y=ep_so; /获得一位输出 x=x|y; /组装输出结果 ep_sck=0; return x;/辅助函数:写结束测试void wip_poll() unsigned char data v; do ep_cs=1; ep_cs=0; xinput(0x05); /准备读状态寄存器 v=xout(); ep_cs=1; v=v&0x01; while(v=1); /测试寄存器低位,为零则写结束。/辅助函数:打开写开关,所有写操作前必须运行本程序,命令字为06Hvoid wren() ep_cs=1; ep_cs=0; xinput(0x06);

27、 /发出打开开关命令 ep_cs=1;/辅助函数:关闭写开关,所有写操作后必须运行本程序,以防止误写,命令字为04Hvoid wrdi() ep_cs=1; ep_cs=0; xinput(0x04); ep_cs=1;/辅助函数:写状态寄存器,包含WREN_CMD命令。/功能:改变块锁定控制位BL1,BL0(D3,D2)及看门狗超时控制位WD1,WD0(D5,D4)void wrsr(unsigned char x) wren(); /打开写开关 ep_cs=1; ep_cs=0; xinput(0x01); /送入命令 xinput(x); ep_cs=1; wip_poll(); /测试

28、写结束 wrdi();/关闭写开关/辅助函数:读状态寄存器。unsigned char rdsr() unsigned char data x; ep_cs=1; ep_cs=0; xinput(0x05); x=xout(); ep_cs=1; return x; /单字节写子程序,使用中调用wren()。如果使用了块锁定,还需要先写状态寄存器解除锁定。/函数带有形参wrdat和wradd,前者为写入的字符型数据,后者为整形地址。void byte_write(unsigned char wrdat,unsigned int wradd) unsigned char data x; wren

29、(); ep_cs=1; ep_cs=0; if(wradd256) /据输入地址决定写前256地址块或者后256块 xinput(0x02); /02表示使用低256区块 else xinput(0x0a); /0a表示使用高256区块 x=wradd%256; /高位地址已经输入,此处只需要输入低8位地址 xinput(x); xinput(wrdat); ep_cs=1; wip_poll(); wrdi();/单字节读子程序,本函数返回字符型结果unsigned char byte_read(unsigned int rdadd) unsigned char data x; ep_cs

30、=1; ep_cs=0; if(rdadd256) /根据要读取的地址写入命令字 xinput(0x03); else xinput(0x0b); x=rdadd%256; xinput(x); x=xout(); ep_cs=1; return(x); /双字节写子程序。使用中调用wren()。如果使用了块锁定,还需要先解除锁定。/函数带有形参wrdat1和wradd1,前者为写入的整型数据,后者为整形地址。void word_write(unsigned int wrdat1,unsigned int wradd1) unsigned char data x; wren(); ep_cs=1; ep_cs=0; if(wradd18; /写入高字节 xinput(x);

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

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