基于usb的数据采集卡设计.doc

上传人:laozhun 文档编号:4136712 上传时间:2023-04-07 格式:DOC 页数:33 大小:426KB
返回 下载 相关 举报
基于usb的数据采集卡设计.doc_第1页
第1页 / 共33页
基于usb的数据采集卡设计.doc_第2页
第2页 / 共33页
基于usb的数据采集卡设计.doc_第3页
第3页 / 共33页
基于usb的数据采集卡设计.doc_第4页
第4页 / 共33页
基于usb的数据采集卡设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《基于usb的数据采集卡设计.doc》由会员分享,可在线阅读,更多相关《基于usb的数据采集卡设计.doc(33页珍藏版)》请在三一办公上搜索。

1、四川师范大学成都学院本科毕业设计 基于USB的数据采集卡设计学生姓名杜学成学 号2009101038所 在 系通信工程系专业名称通信工程班 级2009级1班指导教师段纯爽四川师范大学成都学院二一三年三月基于USB的数据采集卡设计学生:杜学成 指导教师:段纯爽内容摘要:本论文所设计的数据采集卡是在单片机AT89C5131控制下进行数据采集,主要核心部分是微控制器和USB控制器,通过两者结合实现上位机和下位机之间的USB通信,使用AT89C5131单片机采集到数据通过USB数据线传输给PC机,在从PC机上的USB数据采集界面,可显示出采集数据的波形图功能,最后实现数据采集功能。在数据采集系统中,传

2、统外接设备与主机通信口一般采用ISA、PCI、1394等标准,但是基于这些接口的产品,要不安装麻烦,要不就是价格昂贵,还受到计算机插槽数量和地址中断资源的限制,并且可扩展性差,但USB的出现很好地解决了以上所有问题。作为一种新型串口通信标准,它不但具有较高的传输速率,而且可扩展性好、采用总线供电,因此使用起来更加灵活。USB数据采集共有4种传输模式:同步传输、控制传输、批量传输、中断传输,以此用来适应不同设备的需求。同时信息技术与电子技术发展迅猛,也使得计算机和计算机外围设备得到飞速发展和应用。过去人们单纯追求计算机与外设之间的数据传输速度,而现在操作安装的简易性和纠错能力也成为人们关注的问题

3、。USB通讯技术出现后,使高传输速度、强纠错能力、易扩展性、即插即用等优点有机的结合在一起,使得USB数据采集发展前景更为广阔。关键词:数据采集 USB接口 控制器 Design of data acquisition card based on USBAbstract:The data acquisition system designed is under the control of SCM data acquisition in AT89C5131. The micro controller and the USB controller as the core part, implem

4、entation of USB communication between upper machine and lower machine through the combination of the two, there to the data line via the USB data is transmitted to the PC through the AT89C5131 collection. And the development of applications on PC, from the USB data acquisition interface on PC machin

5、e, can display the waveform function of data acquisition, data acquisition function.In data acquisition system, communication host and peripherals traditional mouth generally use the ISA, PCI, 1394 standards, these interface products, based on the installation of trouble, the price is expensive, and

6、 the slot number, address and interrupt resources constraints, poor scalability, USB, is a good solution to the above problem. USB is a kind of serial communication standard model, the transmission rate is high, good scalability, the bus power supply, the use of flexible. It has a total of 4 transmi

7、ssion modes: control transfer, interrupt transfer, synchronous transmission, mass transfer, in order to adapt to the needs of different equipment. The rapid development of information technology and electronic technology, the computer and peripheral equipment has also been rapid development and appl

8、ication. In the past people only pursue the transmission speed between computer and peripherals, simplicity of installation error correction ability and operation now has become one of the focuses of the target. USB communication technology, the high transmission speed, strong error correction abili

9、ty, expansibility, easy plug-and-play, organic unifies in together, at the same time, also make the development of a broader USB data acquisition.Keywords: Data acquisition USB interface controller 目录1 USB简介51.1 USB的互连61.2 USB的主机71.2.1 USB驱动(USBD)71.3 USB设备71.4 USB的物理层82 整体方案设计82.1 方案论证92.2 方案比较103

10、单元模块设计113.1 微控制器及USB控制器接口电路模块113.1.1 AT89C5131封装及引脚说明113.1.2 AT89C5131的USB接口电路123.2 AD转换电路模块143.2.1 A/D转换器143.2.2A/D转换器接口电路163.3 外接存储器接口电路173.3.1 外接存储器173.3.2 外接存储器接口电路183.4 系统外围电路193.5 软件设计203.5.1 固件程序203.5.2 USB设备驱动程序243.5.3 应用程序264 小结295 致谢306 参考文献317 附录327.1 硬件连接电路图327.2 PCB图331 USB简介通用串行总线标准USB

11、是1995年微软、康柏、DEC、IBM等公司为解决传统总线不足的问题而推出的一种新型通信标准。该标准具有高带宽、安装方便、易扩展诸多优点,逐渐成为现代数据传输的主要手段。基于USB数据采集卡充拥有USB总线的上述优点,有效优化解决传统数据采集卡的安装麻烦、扩展不便等弊端。随着现代工业生产和现代科学研究对数据采集的要求日益提高。许多地方都要求数据采集系统朝着便携化的方向发展,并且要求系统功耗低、体积小、使用方便灵活、传输速率快。当前数据采集系统开发过程中考虑的主要问题有如下两点:1,如何才能节省电能以使系统工作时间更长。2,如何通信才能使得系统数据传输速度更快。在我国国民经济和工业生产迅速发展,

12、传统工业数据采集已经满足不了工业现代化的发展。因我国工业现场数据的复杂性,所以数据的采集正在向网络化、智能化、集成化等方向发展。传统的数据采集方式有许多种,比如并口采集数据、安装数据采集板卡、串口采集数据。其最常用的方法是安装数据采集板卡,但它的缺点是安装麻烦,每次安装都需要关机后打开机箱才能插入板卡,受到计算机插槽数量、地址以及中断资源的限制,外接设备数量有限,此外机箱环境干扰可能导致通讯过程中产生中断。随着计算机技术的高速发展,通用计算机外设接口有了明显改观,并口、串口等传统接口已不再使用,从而传统的数据采集方式已经过时,USB数据采集卡的时代已经到来。在此也浅淡一下数据采集检测技术,数据

13、采集监测技术已成为日益重要的检测技术,广泛应用于需要监控湿度、温度、压力等工农业中。数据采集过程是工业控制等系统中的重要过程,通常主要采用一些功能独立的单片机系统来采集,是测控系统不可缺少的一部分,因为数据采集的性能特点直接影响到整个系统的稳定性。在生产过程中这一系统可对现场的工艺参数进行监视、采集以及记录,从而提高产品质量,提供信息和手段,降低生产成本。而在科学研究中应用该系统可以获得大量动态然后研究瞬间物理过程,也成为获取科学奥秘重要手段之一。总之,无论在哪个领域,数据采集系统应用的越及时,工作效率就愈高,获得经济利益就愈大,这是毋庸置疑的。USB数据采集卡是在实验的基础上结合单片机研发的

14、课题,在实际应用中有着无法取代的地位,使数据采集技术上升了又一台阶。此次论文的设计巩固了我对单片机的基础知识以及各门学科知识,由于设计所涉及到的知识面很广,就如对我的大学所学知识的一个整体回顾。既然此论文是基于USB的,下面就让我们先来了解一下USB。1.1 USB的互连一个USB系统主要被定义为三个部分:l USB的互连;l USB的设备; l USB的主机。USB互连是指USB设备与主机之间进行连接和通信的操作,主要包括以下几方面:总线拓扑结构:USB设备与主机之间各种连接方式;内部层次的关系:根据性能叠置,USB任务被分配到系统的每一个层次;数据流模式:描述数据在系统中通过USB从产生方

15、到使用方的流动方式;USB的调度:USB提供一个共享的连接,可以使用的连接进行了调度以支持同步数据传输,并且避免了判别优先级。1.2 USB的主机主机和设备都被划分成不同层次。由图2-1可见主机上垂直的箭头是实际的信息流。设备上的对应接口是基于不同实现的。在主机与设备之间所有通信最终都是通过USB的电缆进行,然而,在上层水平层之间存在逻辑的主机-设备信息流。主机上的客户软件以及设备功能部件之间的通信是基于实际的应用需求及设备所能提供的能力。图1.1展示的是USB通信模型之间基本的信息流与互连关系。客户USB系统主机控制器功能部件USB设备USB总线接口逻辑流实际流图1.1 通信模型层次关系图1

16、.2.1 USB驱动(USBD)USBD提供供操作系统组件特别是设备驱动程序访问设备的一组接口。这些操作组件只能通过USBD来访问USB。USBD的具体实现是基于不同的操作系统。一个USBD可以访问一个或多个HCD(主机控制器的驱动程序),而一个HCD可能与一个甚至多个主机控制器相连。某些操作系统很可能允许对USBD的初始化进行一些设置。从客户观点来看,通过客户进行通信的USBD管理着所有连接着的USB设备。1.3 USB设备USB设备可被划分三层:1) 首先底层是传送和接收数据包的总线接口。2) 其次中间层处理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源

17、或数据接收端(Sink)。3) 最上层功能是由串行总线设备提供,比如鼠标或ISDN接口。1.4 USB的物理层USB物理接口包括电气特性和机械特性。USB主要通过四线电缆来传输信号与电源,如图1.2所示。图1.2 USB电缆定义其中D+和D-是一对差模的信号线而VBus和GND则提供了5V的电源它可以给一些设备(包括Hub)供电当然要有一定的条件限制。USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m。而在低速模式时中可以使用不带屏蔽或不是双绞的线,但最长不能超过30m。这主要是由于信号衰减的限制,为了提供信号电压保证以及与终端负载相匹配,在电缆的每一端都使用了不平衡的终端

18、负载,这种终端负载也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。所有的设备都有上行的接口,上行和下行的接头是不能互换的,这保证了不会有非法的连接出现。插头与插座有两个系列分别为A和B系列,A用于基本固定的外围设备,而系列B用于经常拔插的设备,这两个系列是不能互换的。本文设计的基于USB总线的数据采集系统正是充分地利用了USB 总线的上述优点,从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、实时的数据采集,适用于对瞬态信号进行采集和处理。 2 整体方案设计硬件实现:首先选择合适的微控制器及USB控制器芯片,使采集到的数据通过A/D转换变为数字量进

19、入微控制器,再通过USB总线将数据送到PC机中进行处理,从而完成USB数据采集器的硬件实现。软件实现:可通过对系统固件程序、USB设备驱动程序和主机的应用程序的设计实现数据波形图在PC机界面上的显示,最后实现对系统数据采集功能进行测试。在目前的市场上芯片的类别繁多,选择哪些芯片才能使设计完成可靠,快速的数据采集就成为在做这个系统之前要考虑的一个很重要的问题,它会直接关系到所设计系统的可实行性和实用性。应尽量在条件允许的条件下做出性价比最优的系统或产品。那么设计方案的选择就很重要。设计本课题时考虑了两种方案,下面综合比较这两个方案的优缺点以便选者最合适的设计方案。2.1 方案论证方案一整个采集系

20、统以ISP1581为核心,它主要负责A/D转换,通过AD转换采集数据,然后将采集的数据送入RAM中,再向单片机发送请求,单片机接受采集来的数据,通过USB的控制芯片1581将数据送到PC机中完成与主机之间的通信以及数据传输,最终实现数据采集的目的。如图2.1。方案二此方案主要采用多通道分时A/D转换器,其特点是多路输入模拟信号进入A/D转换器进行分时转换,在A/D转换器内部的多路模拟开关负责选择信号通道;将A/D转换得到的数字数据输入AT89C51后,再通过带有USB接口的USB控制器实现上位机PC和下位机的USB数据通信,数据可通过USB连接线快速传输到PC机中进行保存、处理。系统中外接存储

21、器用来存储单片机固件程序,单片机就可以从外部存储器中读取并执行程序实现数据采集功能。如下图2.2。A/D单片机89C51RAMUSB控制芯片ISP1581USB接口图2.1 数据采集器整体方案一框图微控制器USB控制器存储芯片多通道分时A/D转换器PC图2.2 数据采集器整体方案二框图2.2 方案比较由于方案一整体涉及到的硬件电路特别复杂,消耗功率相对较大,同时考虑到方案二中的AT89C5131采集数据方便,便于处理、采用多通道分时A/D转换器对数据进行采集,转换后的数据单片机接受后直接存放在存储芯片中,并时刻向AT89C5131发送请求,一旦允许马上将数据传输到USB接口中。充分体现了实时性

22、、高速的特性,调试也较方便,因此决定采用方案二。3 单元模块设计为了实现USB数据采集功能,系统硬件电路可分为以下几个部分:微控制器及USB控制器接口电路、A/D转换电路、外接存储器接口电路和系统外围电路。3.1 微控制器及USB控制器接口电路模块AT89C5131单片机具有内置USB控制器为核心部分,通过二者的结合才能实现上位机和下位机之间的USB通信,从而使PC机获得采集到的数据。3.1.1 AT89C5131封装及引脚说明根据方案二的需要,选择AT89C5131作为USB控制芯片。其引脚分配如图3.1所示。图3.1 AT89C5131 VQFP64引脚分配图下面对AT89C5131单片机

23、的主要管脚进行介绍:P0.0P0.7、P1.0P1.7、P2.0P2.7、P3.0P3.7、P4.0P4.1是并行端口P0、P1、P2、P3以及P4口I/O信号引脚。其中P0口作为地址/数据复用总线,当P0口作为地址总线时,P0.0P0.7上为低8位地址,P1.0P1.7与键盘接口信号KIN0KIN7复用,同时P1.0和P1.1与T2和T2EX复用,P1.2与可编程计数器队列的外部时钟输入引脚ECI复用,P1.3P1.7与捕获外部信号输入比较外部信号输出CEX0CEX4复用。P2口也可以作为地址线时P2.0P2.7上输出高8位地址。P3口各引脚均具有第二功能,P3.0和P3.1与串行信号接口R

24、XD和TXD复用,P3.2和P3.3与外部触发脉冲、 复用,P3.4与P3.5与定时器/计数器T0和T1复用,P3.6与P3.7则与写信号和读信号复用;另外P3.3P3.7还跟驱动LED输出引脚LED0LED3复用。P4.0P4.1分别与TWI串行时钟SCL和TWI串行数据SDA复用。RST引脚是单片机复位信号引脚,当此芯片处于休眠或低功耗模式时复位可使芯片恢复到正常工作状态,此外当RST引脚保持64个时钟周期就会使芯片复位。ALE引脚是地址锁存使能信号引脚,只有当读写外部的程序存储器和使用MOVX指令时该引脚信号有效。在系统编程模式,当PSEN引脚复位后是用与检测ISP的外部硬件的。当EA(

25、)引脚接高电平时芯片是从内部存储器寻址,只有接低电平时才能使芯片从外部程序存储器从起始地址0000h开始寻址。VREF引脚是USB总线参考电压引脚,该引脚是通过一个1.5K电阻和D+相连以实现软件断开功能。D+引脚和D分别是USB总线正信号I/O引脚和负信号I/O引脚,复位后D+引脚和D表示高电平和低电平。本系统主要利用D+和D两个引脚与USB端口的两根数据线D+和D相连,以实现USB数据通信。3.1.2 AT89C5131的USB接口电路AT89C5131单片机的USB总线正信号I/O引脚D+和负信号I/O引脚D分别与USB端口J1的两根数据线D+和D相连(电阻R2和R3为可选电阻),然后再

26、通过USB连接线即可与PC机的USB接口相连进行通信。此单片机的模拟地引脚AVSS和数字地引脚VSS均接地;此外模拟电源引脚AVDD和数字电源引脚连接正电源VCC,目的是给单片机提供工作所需电源。USB总线的参考电压引脚VREF通过1.5K的电阻R1与D+相连,从而可实现软件断开功能。在本系统中PC机作为USB主机,AT89C5131作为USB设备,D+和D无需连接下拉电阻。 关于其他引脚说明:UCAP引脚是与一个外部电容(图中为C1)连接来给USB提供电源。PLLF作为锁相环低通滤波器的输入引脚,需与一个RC网络(图中为R5和C3)构成的低通滤波器相连。电容C1、电阻R1和按键S1构成单片机

27、复位电路,将复位信号输入单片机RST引脚。XTAL1引脚和XTAL2则分别是单片机的内部反相振荡放大器的输入端和输出端21,它们一起与作为反馈元件的片外石英晶体Y1及电容C4和C5一起构成一个自激振荡器,好产生单片机工作所需的时钟信号。 AT89C5131内置USB设备控制器能提供AT89C5131和USB总线进行数据交换的硬件接口;USB控制器要求48MHz(0.25%)的参考时钟,此参考时钟通过AT89C5131的PLL锁相环输出,然后能产生12MHz的全速时钟提供给USB控制器和USB总线之间的数据交换。AT89C5131单片机还具有USB接口功能,可直接与USB端口连接,通过USB总线

28、与PC机通信。具体USB接口电路如图3.2所示图3.2 USB接口电路 3.2 AD转换电路模块AD转换电路主要负责采集数据,并向单片机发送请求,转换后的数字数据被单片机接受后存放在存储芯片中。3.2.1 A/D转换器多路输入信号需要通过A/D转换器转换为数字信号才能被单片机接受,本设计所选择的A/D转换器是National Semiconduct Corporation的8位逐次逼近式A/D转换器ADC0809。该A/D转换器是一种单片CMOS器件,它包括8位模/数转换器、8通道多路转换器和与微处理器兼容的控制逻辑。ADC0809内带有锁存功能的8路模拟多路开关,可以对8路05V输入模拟电压

29、信号分时进行转换。主要功能特点包括:l 分辨率为8位;l 最大不可调误差小于1LSB;l 单一+5V电源供电,模拟输入电压范围05V;l 可锁存三态输出,输出与TTL兼容;l 功耗为15mW;l 典型转换时间为100 s。ADC0809的引脚如图:图3.3 ADC0809的引脚图ADC0809采用的是28脚双列直插式封装,其引脚功能说明如下:u IN0IN7:拥有8路输入通道的模拟量输入端口。u D0D7:拥有8位数字量输出端口。u START、ALE: ALE端口为地址锁存控制使能信号端口,START作为A/D转换启动控制端口。这两个端口连在一起,通过软件可输入一个正脉冲即可启动A/D转换。

30、u EOC、OE:EOC作为转换结束信号脉冲输出端口,OE作为输出允许控制端口。这两个端口连在一起可表示A/D转换结束。当OE端电平由低变高,打开三态输出锁存器,会将转换得到的数字量输出到数据总线上。u VREF()、VREF()、VCC、GND: VREF()和VREF()为参考电压输入端;VCC作为主电源输入端,GND作为接地端。一般将VREF()与VCC连接在一起,将VREF()与GND连接在一起。u CLK:作为时钟输入端。u ADD A、ADD B、ADD C:他们表示8路模拟开关的3位地址选通输入端,是用于选择对应的输入通道。对应关系如表3.1所示。 表3.1地址码与输入通道对应关

31、系ADDCADDBADDA输入通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ADC0809的工作时序如下图3.4所示。在图中tWE为最小ALE脉宽,其典型值100ns;tD为模拟开关延时,其典型值:1 s;tWS最小启动脉宽,其典型值:100ns;tEOC表示转换结束延时,最大为8个时钟周期:2 s;tC表示转换时间,其典型值:100 s。由图3.4得出结论:送入启动信号START后,EOC将保持一段时间的高电平,意义表示上一次A/D转换结束,在实际应用中可能引起误控。因此在启动转换后应延迟一段时间(最好大于tEOC)后再进行查询或者开中断

32、。图3.4 ADC0809工作时序3.2.2 A/D转换器接口电路单片机的P0口可分时输出低8位地址和数据,为了将地址的信息分离出来保存,就需外加地址锁存器(图中为74HC373),然后由单片机的地址锁存允许信号ALE的下降沿将地址信息锁存到地址锁存器中。通过锁存器锁存后的低三位地址Q0Q2分别与ADC0809的地址译码引脚ADDAADDC连接,选通IN0IN7中的一个通道。ADC0809具有了输出三态锁存器,因此其8位输出数据引脚D0D7可直接与单片机数据总线P0.0P0.7相连。在ADC0809片内无时钟,上图3.4中利用双4位二进制计数器74HC393给ADC080929提供时钟输入。单

33、片机ALE引脚与74HC393的时钟输入端CLK相连,计数器其中一路输出Q1与ADC0809的时钟输入端CLOCK相连,ALE引脚时钟频率经74HC393二分频后提供给ADC0809作为时钟信号。单片机的P2.7引脚作为ADC0809片选信号。上文图3.4中使用了4与非门芯片74ALS00和6反相器芯片74ALS04来控制ADC0809的启动和输出转换数据。当P2.71,(P3.6)=0,74ALS04的6号引脚输出为高电平,再将其与ADC0809的转换启动端口START和地址锁存端口ALE连接,最后将在锁存通道地址的同时启动A/D转换。当P2.7=1时,(P3.7)=0时,74ALS04的8

34、号引脚输出为高电平,再将其与ADC0809的输出允许引脚OE相连,允许将转换得到的数字量数据输出到数据总线上。本系统设计在软件上采用延时的方法来等待转换结束,因此没有使用转换结束信号引脚EOC。把ADC0809的正参考电压输入端VREF()和主电源输入端VCC都接5V电源,同时将负参考电压输入端VREF()和接地端GND均接地。ADC0809与单片机 AT89C5131的接口电路如图3.5所示图3.5 AT89C5131与A/D转换器和存储器芯片的连接电路 3.3 外接存储器接口电路设计外接存储器接口电路是为了将单片机接受到的数据存储起来,以达到采样功能。3.3.1 外接存储器在AT89C51

35、31单片机片内集成有两个Flash存储空间FM0和FM1,其FM0为32K字节的程序存储器(用户空间),并且支持并行编程和串行在线编程(ISP);其FM1为3K字节的引导启动程序和应用编程接口(API),只支持并行编程。因此编写单片机固件程序时可使用FM0的用户空间进行在线编程,但是本系统设计时未采用在线编程的方法,而直接将单片机程序存储在一片外接EEPROM存储器芯片中,通过将单片机的EA()接低电平,从而使单片机执行外部程序存储器中的程序。本系统中使用的存储器芯片是ATMEL公司的64K(8K8位)EEPROM芯片AT28C64。该存储器芯片采用了ATMEL非挥发性CMOS技术,其存取时间

36、仅需150ns,且功耗仅220mW。其封装形式有PDIP/SOIC28脚、PLCC32脚和TSOP28脚三种,引脚说明如表3.2所示。 表3.2 AT28C64引脚说明引脚功能A0-A12地址线CE芯片选择(片选)OE输出使能WE写入使能I/O0-I/O7数据输入/输出端VCC电源端GND接地端3.3.2 外接存储器接口电路单片机AT28C64与单片机AT89C5131的连接电路同样如图3.4所示。其P0口输出的地址信息经地址锁存器74HC373锁存后送入存储器AT28C64的低8位地址线A0A7后,P0口又AT28C64的数据线I/O0I/O7相连,可以分时输出存储的数据。单片机P2口作为高

37、位地址线,其P2口输出具有锁存的功能,不必加地址锁存器就可直接与AT28C64的高5位地址线A8A12相连。单片机AT89C5131引脚与AT28C64的片选端和输出允许端相连,从而就可选中外部存储器并允许从中读取程序指令。单片机端连接低电平,就使单片机执行外部程序程序存储器中的程序。 3.4 系统外围电路系统外围电路包括:电源电路、复位电路、时钟产生电路、PLL配置电路。(1)电源电路本系统中所有涉及的器件均可使用+5V电源电压,由于USB端口电源可通过USB总线从PC机获得,因此在本系统未使用外部电源,而是直接利用USB总线供电。(2)复位电路。由于单片机AT89C5131的引脚是复位信号

38、输入引脚,因此复位的实现一般可采用上电复位和外部手动复位两种方式,在本设计中采用手动复位方式,可通过按键S1来进行复位操作,其复位电路如图3.2所示。(3)时钟产生电路。单片机AT89C5131时钟发生器包括一个内部振荡器和一个锁相环(PLL),所有的外部设备以及CPU的内核工作所需的时钟信号都是由时钟发生器产生的。AT89C5131的XTAL1引脚和XTAL2分别是一个片内反相放大器的输入端和输出端。如果使用内部振荡器产生时钟信号,则可以将这两个引脚与作为反馈元件的片外晶振和电容相连接构成一个自激振荡器,其连接电路如图3.2所示。外接晶振的频率本系统选择12MHz,两个电容则通常选择20pF

39、30pF左右。当然也可选择采用外部振荡器来产生时钟信号只需将XTAL1引脚直接作为外部时钟的输入即可。本系统时钟信号由内部振荡器产生。(4) PLL配置电路。AT89C5131锁相环(PLL)是用来产生和外部低频时钟(外围设备时钟)同步的内部高频时钟(USB时钟)的,就是USB接口所需的时钟信号是由PLL产生的。PLL内部结构如图3.5所示,可看出是一个闭环结构。其N3:0和R3:0均位于PLLDIV寄存器,各为4位。内部振荡器参考时钟经过N分频和反馈回来的USB时钟经过R分频进入PFLD进行比较并产生合适的输出信号。其PLLCON寄存器的PLLEN位用来使能时钟信号的产生;当PLL被锁定时P

40、LLCON寄存器的PLOCK位则会被置位,此时它输出的时钟信号才是稳定的信号。PLLF引脚是PLL的低通滤波器连接引脚,它需要与一个RC网络相连接,其连接电路如图3.6所示。锁相环PLL输出的USB时钟频率为48MHz,它与在内部振荡器的输入时钟频率之间的数学关系是:USBclk=OSCclk(R+1)N+1。为了产生48MHz的时钟信号,可根据振荡器的频率来配置合适的分频数值(N和R),典型分频值见表3.3。因为本系统选用12MHz晶振,需要将PLLDIV寄存器设置为30h。图3.6 PLL结构内部结构框图 表3.3 典型分频值设置振荡器频率R+1N+1PLLDIV寄存器3MHz161F0h

41、6MHz8170h8MHz6150h12MHz4130h16MHz3120h18MHz8372h20MHz125B4h24MHz2110h32MHz3221h 3.5 软件设计本系统设计在软件上主要包括三部分:固件程序、USB设备驱动程序以及应用程序。固件程序和USB驱动程序可使PC机可以与USB设备进行正常的通信,且数据采集系统可以进行正常的数据采集;界面程序的设计可使采集到的数据波形图可以在PC机界面上显示出来。以下分别进行介绍。3.5.1 固件程序固件设计主要是完成两个方面的工作:一、控制A/D的采样和通过USB控制器与主机通信。二、控制A/D采样,由于控制采样的工作非常简单,在此论文中

42、不做介绍。对于固件程序的编程,它的基本结构如下:初始化,包括了处理器和外围电路的初始化;主函数,包括了完成符合设备特定要求的代码;中断处理,包括了处理各种中断的程序代码。固件程序代码如下:#define Usb_enable()(USBCON|=0x80)/USBE=1,使能USB控制器#define Usb_detach()(USBCON|=0x10)/DETACH=1,模拟USB总线断开#define Usb_attach()(USBCON&=0x10)/DETACH=0,模拟USB总线连接void configure_usb_clock(void)Usb_clear_EXT48(); /

43、PLLCON寄存器的D2位EXT48=0,取消外部48MHzPll_set_div(0x30); /PLLDIV=0x30,按照12MHz晶振频率设置PLL分配值为30h,以保证PLL输出48MHz的USB时钟Pll_enable(); /PLLCON寄存器的D1位PLLEN1,使能PLLwhile(Pll_check_clk(); /等待PLL被锁定,输出稳定的时钟void usb_configure_endpoint(Uchar ep_num,Uchar ep_type)Usb_select_ep(ep_num); /选择端点Usb_configure_ep_type(ep_type);

44、/配置端点类型 void usb_reset_endpoint(Uchar ep_num)UEPRST=0x01ep_num; /复位选择的端点UEPRST=0x00; /复位结束清零void usb_var_init(void)endpoint_statusEP_CONTROL=0x00;endpoint_statusEP_IN=0x00; /端点0和端点1复位usb_connected=FALSE;usb_configuration_nb=0x00;void usb_ep_init(void)usb_configure_endpoint(EP_IN,BULK_IN); /端点1配置为批量I

45、N类型usb_reset_endpoint(EP_IN); /复位端点1FIFOusb_configure_endpoint(EP_OUT,BULK_OUT); /端点2配置为批量OUT44类型usb_reset_endpoint(EP_OUT); /复位端点2FIFOUsb_select_ep(EP_CONTROL); /选择端点0if(Usb_setup_received() /端点0是否收到主机发出的SETUP包usb_enumeration_process(); /设备枚举Usb_select_ep(EP_IN); /选择端点1if(Usb_tx_complete() /IN数据是否发送完毕Usb_clear_tx_complete(); /TXCMPL=0,准备下次发送usb_idle=1; /设备挂起Void EX0_int(void) interrupt 0 /外部中断0EA=DISABLE; /关中断switch (bBECINT) /确定中断IDcase

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号