基于USB总线和89C51单片机的数据采集设计.doc
《基于USB总线和89C51单片机的数据采集设计.doc》由会员分享,可在线阅读,更多相关《基于USB总线和89C51单片机的数据采集设计.doc(37页珍藏版)》请在三一办公上搜索。
1、论文题目:基于USB总线和89C51单片机的数据采集系统设计学生姓名:所在院系:机电学院所学专业:应用电子技术教育导师姓名:完成时间:摘 要本文介绍了基于USB总线的数据采集设备的开发法,包括数据采集硬件设计、USB总线的硬件设计,同时也简单的介绍了设备固件设计、基于USB的远程数据采集。89C51通过对多路采集模块进行控制,选出一路通道的数据寄存在单片机,再通过USB芯片将89C51采集到的数据上传给上位机。关键词:数据采集,89C51,通用串行总线Based on the USB bus and 89C51 single-chip data acquisition system desig
2、nAbstract This paper introduces the acquisition based on USB bus-based data acquisition, including the data acquisition hardware design and USB bus of the hardware design. Also introduces USB-based remote data acquisition system and firmware design. 89C51 selects the way data storage channel in the
3、single-chip by controlling multi-channel module, and then the data collected by 89C51 upload to the host computer. through the USB chipsKey word: Data Acquisition, 89C51 Single-chip, Universal Serial Bus目 录1 引言12 总体方案设计12.1 设计思路12.2 设计方框图13 数据采集设计23.1 模拟信号的多路选择23.2 多路开关原理23.3 A/D转换介绍33.3.1 分辨率33.3.2
4、 误差和精度43.3.3 转换速率43.3.4 A/D转换的方法43.4 数据采样电路44 单片机介绍64.1 单片机的基本组成64.2 单片机引脚及功能65 USB接口电路设计75.1 USB芯片内部结构85.1.1 端点085.1.2 端点195.1.3 端点295.1.4 外部固件参考流程95.2 USB芯片与单片机的接口电路105.3 USB设备驱动程序设计116 应用程序设计127 设备固件设计138 远程数据采集系统设计149 结束语15致谢15参考文献15附录一 整体电路图17附录二 CH375芯片管脚18附录三 程序清单191 引言在工业生产和科学技术研究过程中,常常需要对各种
5、数据进行采集,现在常用的数据采集方式是在PC机或工控机内部安装数据采集卡,如A/D卡、RS-422卡及RS-485卡。采集卡不仅安装麻烦,易受机箱内其他电路的干扰,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。本设计利用通用串行总线(Universal Serial Bus,简称USB) 设计了基于USB总线的数据采集设备很好地解决以上这些冲突。2 总体方案设计2.1 设计思路 本设计主要包括三部分:数据采集设计部分,单片机控制部分和USB设计部分。数据采集由多路模拟开关、滤波采样保持、隔离放大、A/D转换、光电隔离器组成。单片机采用AT89C51。USB电路主要采用CH
6、375芯片。单片机再从地址寄存器中发出地址控制信号经光耦控制多路模拟开关。多路模拟模拟开关根据地址控制信号选择一路信号进行滤波、放大、A/D转换后送至单片机的移位寄存器。移位寄存器将采集到得数据转换为8位并行是传送到USB芯片的数据缓冲区中;一旦数据缓冲区存满,USB芯片自动将数据打包即时请求读入数据,然后89C51系统将数据从数据缓冲区中读出,由收发器通过数据线(D+、D-)送至主机。2.2 设计方框图光 电 隔 离 器多 路 模 拟 开 关单 片 机USB 电 路上 位 机滤 波 采 样隔 离 放 大A/D 转 换 图1 设计方框图3 数据采集设计3.1 模拟信号的多路选择32路模拟电压信
7、号(如1-5V)送往多路模拟开关组成的模拟数据选择器,选择控制信号决定其中1路模拟信号经滤波、隔离放大、A/D转换,变为M位十进制数据,存到单片机的移位寄存器中移位寄存器,单片机再将采集到得数据转换为8位并行数据由USB接口电路送到上位机。当地址线为8位是,最多可达2的8次方256路。如不采用数据选择方案,则所需的隔离放大器、A/D转换器也将多达256个4。3.2 多路开关原理多路开关是切换数字信号和模拟信号的器件,也称多路转换器或多路复用器,记为MUX,能切换数字信号的多路开关也称数据选择和数据分配器;能切换模拟信号的多路开关也称多路模拟开关,模拟开关同时也能切换数字信号。早期的多路开关曾采
8、用继电器,但它有速度慢、体积大、噪声大、使用寿命短等缺点。现在的数据采用电路中多采用集成的多路开关,典型的多路开关有4双通道多路开关、单8通道多路开关、双8通道多路开关、单16通道多路开关等。其中单8通道多路开关典型的产品型号为CD4051,但由于它们是早期标准CMOS产品,性能已经不能满足控制系统的许多要求。AD公司的ADG658/659是CD4051/CD4052的改进型。现已ADG658/ADG659为例介绍其机构和功能,ADG658/ADG659引脚图如图2所示,其功能见表1。 图2 ADG658/ADG65引脚图表1 ADG658功能表A2A1A0EN/输出DXXX1与输入断开000
9、0S10010S20100S30110S41000S51010S61100S71110S8ADG658有一个使能端EN/和三个选择/分配控制端A2、A1、A0,S1-S8和D分别为多路开关引出端,S1-S8既可作输出,也可做输入。S1-S8做输入时,D做输出。当把ADG658视为8选1数据选择器时,A2、A1、A0为选择控制端,S1-S8做输出,D为输入:当把ADG658视为1至8数据分配器时,A2、A1、A0为分配控制端,使能端EN/=1是,S1-S8与D之间断开。EN/和A2、A1、A0为逻辑信号输入端,S1-S8与D之间可传逻辑信号4。表2 ADG659功能表A1A0EN/输出DA输出D
10、BXX1与输入断开与输入断开000S1AS1B010S2AS2B100S3AS3B110S4AS4BADG659有一个使能端EN/和两个选择分配控制端A1、A0,S1A-S4A和DA、S1B-S4B和DB分别构成4:1MUX,它同时受EN、A1、A0控制。3.3 A/D转换介绍 3.3.1 分辨率分辨率是用来表示ADC对于输入模拟信号的分辨能力,也即ADC输出的数字编码能反映多么微小的模拟信号变化。ADC转换器的分辨率定义为满量程电压于在最小有效值之比值。例如,具有12位分辨率的ADC能够分辨出满量程的1/4096,对于10V的满量程能够分辨输入模拟量电压变化的最小值约为1.5mV.对3位半A
11、/D转换器,满量程数据位1999,其分辨率为1/1999。显然ADC数字编码的位数越多,其分辨率越高8。3.3.2 误差和精度误差包括量化误差、偏离误差、线性度登。量化误差是由于ADC的有限分辨率所引起的误差。偏离误差时指输入信号为0是输出信号不为0的值,所以有时也称零值误差。线性度有时也称非线性度,它是指ADC实际的输入/输出特性曲线与理想直线的最大偏差。精度通常也称转换精度,有绝对精度和相对精度之分。绝对精度是指为例产生某的数字码,所对应得模拟信号值与实际值之差的最大值,它包括所有的误差。相对精度是绝对精度与满量程输入信号的百分比。它通常不包括能够被用户消除的误差。对于线性编码的ADC,相
12、对精度就是非线性度,其值为加减1/2LSB.精度通常与分辨率密切相关,高精度的前提必须有高分辨率,当然单有高分辨率还不一定就可达到高精度。3.3.3 转换速率ADC的转换速率就是能够重复进行数据转换的速度,即每秒转换的次数。有时也用完成的一次A/D转换所需要的时间来表示,称为转换时间。转换时间也就是转换速度的倒数。不同转换方式的ADC其转换速率有很大不同。低的只有1次/秒,高的可达百万次/秒。3.3.4 A/D转换的方法A/D转换的实现方法有多种,随着大规模集成电子技术的飞速发展,新型设计思想的A/D转换器就不断涌现。不同方法实现的A/D转换器也就使用于不同的场合。比如说并行式ADC它的特点就
13、是转换速度最快但是分辨率不高,适合高频采样的场合;逐次比较式ADC它的转换速度高,转换分辨率比较高,速度和分辨率能满足大部分要求,但常态干扰的抑制能力较差。适用于温度、压力、流量、语音、电量等信号的采集。3.4 数据采样电路图3给出的是1个利用4片ADG658和1片ADC0831组成的32路数据采样电路。32路模拟量输入的为毫伏级电压,经多路开关选取其中1路信号,送至RC滤波电路,再经高精度运放OP-07放大然后送至ADC0831进行A/D转换,转换后的数据以串行输出。放大器的增益电压约为100,ADC0831的Ref基准电压为2.5V,由MAX6034_25提供,因而可测量输入信号的电压范围
14、为2.5V/100=25mV.假定输入信号来自K分度号热电偶,在输出电势为0-25mV时,对应的测量温度为0C-600C。该数据采用电路如应用于热电偶的检测,还有三点需要考虑,一是零点补偿,二非线性校正,三是量程校正。零点补偿电路可加在放大器之前,也可通过其他传感器测量冷端温度,然后通过软件补偿。非线性校正一般可采用软件方法,在精度要求不高的情况下,对K分度热偶也可省略非线性校正。量程校正即对放大器增益的校正,通过电路中的电位器微调增益。如希望K分度热电偶600C时的电势24.902mV与输出2.5V对应,则电压增益应校正为2.5/0.24902=100.39另外可以通过对ADC8031的Re
15、f经电阻衰减作为校正信号,从输入通道中引入,通过软件自动校准,但此时会减少1路输入。图3 32路数据采样电路采样电路控制信号通过光电隔离与单片机相连,输入信号由P1.5-P1.0控制,P1.6和P1.7用于控制A/D转换,A/D转换结果由T1引入。4 单片机介绍4.1 单片机的基本组成89C51单片机包括一个:一个8位的80C51微处理器。片内256字节数据存储器RAM/SFR,可以存放可以读/写的数据,如运算的中间结果以及预显示的数据等。片内4KB程序存储器Flash ROM,用以存放可以程序、一些原始数据和表格。4个8位并行I/O端口P0P3,每个端口既可以用作输入,也可以用于输出。两个1
16、6位的定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。具有5个中断源、两个中断优先级的中断控制系统。一个全双工UART(通用异步接受发送器)的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信。片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接,最高允许振荡频率为24MHz。89C51单片机与8051相比,具有节电工作方式,即休闲方式及掉电方式9。以上各个部分是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择省电方式空闲方式和掉电方式。在空闲方式中CPU停止工作,而
17、RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。4.2 单片机引脚及功能 各个引脚及其功能:VCC(40脚):电源端,为+5V。Vss(20脚): 接地端。XTAL2(18脚):接外部晶体和微调电容的一端。在89C51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体的固有频率。若须采用外部时钟电路,则该引脚悬空。要检查89C51的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚
18、):接外部晶体和微调电容的另一端。在片内,它是振荡电路反向放大器的输入端。在采用外部时钟时,该引脚输入外部时钟脉冲。RST(9脚):RST是复位信号输入端,高电平有效。定时器T0(3.4)和定时器T1(3.5)是两个16位的定时器/计数器,都具有定时和事件计数功能,可用于定时控制、延时、对外部事件计数和检查等场合。P1:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2:P2是
19、一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位
20、双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有的多种特殊功能,具体如下表所示:表3 P3口的第二功能端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0) P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)5 USB接口电路设计USB接口芯片采用南京沁恒公司的一种专用芯片HC375。全
21、速设备接口,兼容USB V1.1即插即用,外围元器件只需要晶体和电容。提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输。具有省事的内置固件模式和灵活的外部固件模式。内置固件模式下屏蔽了相的关USB 协议,自动完成标准的USB 枚举配置过程,完全不需要本地端控制器作任何处理,简化了单片机的固件编程。支持5V 电源电压和3.3V 电源电压,CH375 芯片还支持低功耗模式。CH375芯片是CH372芯片的升级版,CH375在CH372基础上增加了USB主机方式和串口通讯方式等功能,所以硬件功能更多,但是其它功能完全兼容CH372,可以直接使用CH375 的WDM 驱动程序和DLL 动
22、态链接库。采用SSOP-20 封装其功管脚能见附录二。5.1 USB芯片内部结构该芯片CH375 芯片内部集成了PLL 倍频器、USB 接口SIE、数据缓冲区、被动并行接口、命令解释器、通用的固件程序等主要部件。PLL 倍频器用于将外部输入的12MHz 时钟倍频到48MHz,作为USB 接口SIE 时钟。USB 接口SIE 用于完成物理的USB 数据接收和发送,自动处理位跟踪和同步、NRZI 编码和解码、位填充、并行数据与串行数据之间的转换、CRC 数据校验、事务握手、出错重试、USB 总线状态检测等。数据缓冲区用于缓冲USB 接口SIE 收发的数据。被动并行接口用于与外部单片机交换数据。命令
23、解释器用于分析并执行外部单片机提交的各种命令。通用的固件程序用于自动处理USB 默认端点0 的各种标准事务等。CH375芯片内部物理端点:5.1.1 端点0端点0 的接收缓冲区和发送缓冲区各是8个字节。SETUP事务和OUT 事务使用同一个接收缓冲区,但是使用不同的事务应答方式。当CH375成功完成端点0的SETUP 事务后,CH375将自动设置端点0 的接收器和发送器的同步触发标志为1,然后才以中断方式通知外部单片机读取SETUP 数据并处理。当CH375成功完成端点0的OUT事务后,CH375将自动触发端点0的接收器的同步触发标志,由0 触发为1,由1 触发为0。当CH375 成功完成端点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 USB 总线 89 C51 单片机 数据 采集 设计
链接地址:https://www.31ppt.com/p-4141558.html