已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)说明书1摘要通用串行总线USBUNIVERSALSERIALBUS是一种新型的微机总线接口规范。随着客户对系统数据采集速度要求的不断提高,USB以其使用方便、易于扩展、速度快等优点而越来越多的应用于数据采集系统中。本文介绍了一种基于USB总线的数据采集系统的设计方法,采用PHILIPS公司的USB接口芯片PDIUSBD12与单片机AT89C51进行通信,并和PC机通信。该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机89C51和USB接口芯片PDIUSBD12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是PDIUSBD12和ADC0809与单片机之间的接口电路问题,软件编程大致分为三部分一是为满足D12在USB上的最大传输速率而编写的固件程序二是在PC机中的WINDOWS2000工作环境下编写USB设备驱动程序;三是充分了解D12的主要功能特点,并编写出应用程序。通过该数据采集系统,我们可以对USB协议有很深刻的理解,对D12接口芯片有很熟练的应用,能更好领悟USB接口的优势。关键词USB;单片机;数据采集;固件毕业设计(论文)说明书1ABSTRACTUNIVERSALSERIALBUSISANEWSPECIFICATIONFORMICROCOMPUTERBUSINTERFACEWITHTHECONTINUINGADVANCEOFTHECLIENTSDEMANDFORTHESPEEDOFADATACOLLECTIONSYSTEM,USBISMOREANDMOREWIDELYUSEDINDATACOLLECTIONSYSTEMFORITSADVANTAGESSUCHASCONVENIENCE,EXPANDINGPORTWITHEASEANDHIGHSPEEDETCTHISPAPERPRESENTSAUSBBASEDDATAACQUISITIONSYSTEMDESIGNMETHODS,PHILIPSCOMPANIESUSINGTHEUSBINTERFACECHIPWITHPDIUSBD12PROGRESSIVEAT89C51OKCOMMUNICATION,ANDCOMMUNICATIONANDPCTHESYSTEMUSINGTRADITIONALUSBREPLACETHERS232SERIALBUS,THROUGHTHEUSBFRAMEWORKAGREEMENTANDEQUIPMENTWITHTHEFULLUNDERSTANDING,RIGHTTO89C51MICROCONTROLLERANDUSBINTERFACECHIPPDIUSBD12BASEDDATAACQUISITIONSYSTEMFORTHEHARDWAREPIECESOFSOFTWAREDESIGNANDPROGRAMMING,ANDINTHISDESIGNISGIVENONTHEBASISOFTHECORRESPONDINGDIAGRAMTHEMAINSOLUTIONOFHARDWAREDESIGNISTHECONNECTIONBETWEENPDIUSBD12ANDADC0809WITHTHEINTERFACEBETWEENTHEMICROCONTROLLERCIRCUIT,THESOFTWAREPROGRAMMEMAINLYINCLUDESTHEFIREWARECODEINNEEDOFD12SMAXIMUMTRANSMISSIONRATEUSBDEVICEDRIVERANDCLIENTAPPLICATIONUNDERTHECIRCUSTANCEOFWIN2000OPERATIONSYSTEMINCOMPUTERAFTERTHISDATACOLLECTIONSYSTEM,WECANUNDERSTANDTHEUSBPROTOCOLPROFOUNDLYANDAPPLYTHEINTERFACECHIPPDIUSBDI2PROFICIENTLYINALL,THEADVANTAGESOFTHISINTERFACETECHNIQUEMAYHELPSTOYOURDESIGNARRANGEMENTKEYWORDSUSB;DATACOLLECTION;MCU;FIRMWARE毕业设计(论文)说明书I目录1绪论111课题背景112课题的提出113本论文的结构安排32USB11协议421USB传输要件422事务、信息包和联络信号423USB的传输结构523USB总线枚举过程825USB的设备描述符926USB请求103数据采集系统的硬件设计1231硬件系统的结构1232芯片选择12321ADC080912322AT89C5114323PDIUSBD121633接口硬件电路设计19331A/D与单片机接口电路19332PDIUSBDI2与单片机接口电路204数据采集系统软件设计2141A/D转换时序控制2142固件的开发2143采用PDIUSBD12的固件设计22431固件编程的主要工作22432PDIUSBD12固件程序的编写2344固件结构24毕业设计(论文)说明书II45固件的编程实现26451底层函数26452命令接口27453中断服务程序ISRC28454主循环MAINLOOPC315USB设备驱动及应用程序设计3551USB设备驱动程序3552USB设备应用程序设计366结论39参考文献41致谢42附图43毕业设计(论文)说明书11绪论11课题背景随着数字化的广泛应用,数据采集也越来越重要,传统的外设与主机的通信口一般采用ISA、PCI、CPCI、1394等标准,基于这些接口的产品,安装麻烦,价格昂贵,并受计算机插槽数量、地址中断资源限制,且可扩展性差,USB的出现,很好地解决了以上问题。USB作为一种新型的串口通信标准,具有较高的传输速率,可扩展性好,采用总线供电,使用灵活。它共有4种传输模式控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用。过去人们单纯追求计算机与外设之间的传输速度,现在纠错能力和操作安装的简易性也成为人们关注的目标。USB通讯技术的出现,使高传输速度、强纠错能力、易扩展性、方便的即插即用,有机的结合在一起。USB设备需要依据USB协议进行数据的解包与打包,底层硬件设备与操作系统之间需要以驱动程序为桥梁。驱动程序以WDM为模型,以DDK为开发工具,以IRP为消息传播载体,来实现与WINDOWS系统底层核心机制相交互的功能。12课题的提出尽管RS232是一种十分成熟且应用广泛的通讯方式,但是随着控制系统的日益复杂,所要采集的量也会越来越多。因此寻求一种高速、安全、方便的通讯形式是十分必要的。USB技术虽然出现的时间并不长,但是由于它的种种优点,被越来越多的厂商和用户所接受,出现了USB打印机、摄像头等产品。尽管目前USB接口的应用主要集中在电脑的周边外设,但是USB产品进入工控领域将是必然的趋势。采用PDIUSBD12芯片和89C51单片机设计的基于USB总线的数据采集系统,具有可靠性高、数据不丢失、抗干扰性强、便于数据传输和处理等优点,可在信号测试、信号采集场合广泛使用。所以本课题的研究是具有一定的现实意义和经济意义的。下面对USB的性能做简单的介绍。毕业设计(论文)说明书2表121USB使用分类表通用串行总线UNIVERSALSERIALBUS,简称USB是康柏、微软、IBM,DEC等公司为了解传统总线的不足推出的一种新型串行总线接口规范,自1995年在COMDEX上亮相以来至今己广泛地为各PC厂家所支持。现在生产的PC机几乎都配备了,USB接口,MICROSOFT的WINDOWS98,NT以及MACOS,LINUX,FREEBSD等流行操作系统都增加了对USB的支持。USB的主要特点如下1速度快。USB有全速和低速两种方式,主模式为全速模式,速率为12MBPS,从而使一些要求高速数据的外设,如高速硬盘、摄像头等,都能统一到同一个总线框架下。另外为了适应一些不需要很大吞吐量但是有很高实时性要求的设备,如鼠标、键盘、游戏杆等,USB还提供低速方式,速率为15MBPS。如表121所示。新推出的USB20协议提供最高达480MBPS的数据传输速率可以适应各种不同类型的外设。2支持热插拔和即插即用。所有的USB设备可以随时的插入和拔离系统,USB主机能够动态的识别设备的状态,并自动给接入的设备分配地址和配置参数,添加、删除设备完全不用关闭计算机,也不必像过去那样需要手动跳线和拨码开关来设置新的外设。性能应用特性低速交互设备1020KB/S键盘、鼠标、游戏棒低价格、热插拔、易用性中速电话、音频、压缩视频500KB/S10MB/SISBN、PBX、POTS低价格、易用性、动态插拔、限定带宽和延迟高速音频、磁盘25500MB/S音频、磁盘高带宽、限定延迟、易用性毕业设计(论文)说明书33易于扩展。USB使用的是一种易于扩展的树状结构,通过使用USBHUB扩展可连接多达127个外设。标准USB电缆长度为3米低速为5米。通过HUB或中继器可以使外设距离达到30米。4使用灵活。USB共有4种传输模式控制传输CONTROL,同步传输SYNCHRONIZATION、中断传输INTERRUPT、批量传输BULK,适应不同设备的需要。5能够采用总线供电。普通使用串口、并口的设备都需要单独的供电系统,而USB设备则不需要,因为USB接口提供了内置电源EUSB电源能向低压设备提供最大5V,500MA的电源,从而降低了这些设备的成本并提高了性价比。6实现成本低。USB对系统与PC的集成进行了优化,适合于开发低成本的外设。本文设计的基于USB总线的数据采集系统正是充分地利用了USB总线的上述优点,从而有效地解决了传统数据采集系统的缺陷。很方便地就能够实现低成本、高可靠性、实时的数据采集,适用于对瞬态信号进行采集和处理。13本论文的结构安排本论文所设计的数据采集系统是在单片机89051控制下进行数据采集,并通过PHILIPS公司的USB接口芯片PDIUSBDI2上传给PC机进行分析、显示和存盘。该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机89C51和USB接口芯片D12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图。硬件设计主要解决的是D12与单片机的接口电路的设计。软件设计可分为三部分一是充分了解D12的主要功能特点,为满足D12在USB上的最大传输速率而编写固件程序,用C51语言编写二是了解USB的设备驱动程序与应用。毕业设计(论文)说明书42USB11协议21USB传输要件1、端点端点是USB设备的一个部分,所有的传输都是将端点作为发出点或者接收点。通常情况下,设备端点是一个内存区域,或者是控制芯片的一个缓存器,端点的作用是数据缓存。每个USB设备有一个唯一的地址,这个地址是在设备连上主机时由主机分配的,而设备中的每个端点在设备内部有唯一的端点号,这个端点号是在设备设计时被给定的。端点号可以是015,方向可以是IN(设备发送数据给主机)或者OUT(主机发送数据给设备)。每个设备必须将端点0设置为控制端点。控制端点是双向传输数据,其他端点都是单向数据传输。2、管道管道是设备端点和主机控制器之间的连接,在一个传输发生之前,必须首先建立一个管道。管道随着主机和设备的连接的建立而建立,当移除设备时,管道也跟着被移除。每一个设备都会和主机建立一个默认的控制管道(DEFAULTCONTROLPIPE),此管道使用端口0。不同的传输类型使用不同的管道,此外管道还可以被分为消息管道(MESSAGEPIPE)和流管道(STREAMPIPE)消息管道是指具有某种USB定义格式的数据流,是双向的管道;而流管道则是不具有USB定义格式的数据流,不具有双向性。控制传输是唯一使用双向消息管道的传输,其他传输都是使用单方向的流管道。22事务、信息包和联络信号每一个USB传输包含一个或多个事务,每一个事务又包含一到三个信息包。事务根据其数据流方向以及传输目的,可以分为3类输入、输出与设置。每一个传输类型的传输包括一个或多个阶段STAGE,一个阶段即一种类型的事务。每个阶段又可以分为一个或几个相位(PHASE),相位包含几个或两个事务毕业设计(论文)说明书5信息包。信息包是一个区块的固定格式信息,每个信息包由一个信息包标示符(PID)开头,作为信息包的识别。根据事务种类的不同,PID后面可能有端点地址、数据、状态信息,或者是一个在帧号码、错误校验位。在控制传输、批量传输和中断传输中都有一个相位是联络数据包,它包含的是联络信息。但是联络信号不是仅仅在联络数据包中,有些数据信息包中也包含联络信号。USB定义的联络信号如下ACKACKNOWLEDGE表示主机或设备已成功接收数据。NAKNEGATIVEACKNOWLEDGE表示设备在忙中。STALL表示3种意义,即不支持的控制要求、控制要求失败或端点失败。NYET(NOTYET)表示设备是否已准备好接收数据,只有高速设备使用。ERR(ERROR)表示在集线器和主机事务中,设备没有传回预期的联络信号。ERR只有在高速集线器完成事务分割时才会使用。23USB的传输结构USB的传输结构描述的是各个类型USB传输的时序、数据包和特征。下面分别介绍一下4种USB传输类型的传输结构1、控制传输控制传输用于在设备初次连接时对器件进行配置,以及对设备的状态进行实时检测,还有在设备配置完成后用于特殊传输目的。端点0只可以采用控制传送的方式。每一个控制传输都必须有设置与状态阶段,数据阶段则是选择性的。控制传输的设置事务传输结构如图231所示毕业设计(论文)说明书6图231控制传输结构示意图控制传送的数据阶段,由一个以上的输入或输出事务构成,遵守和批处理传送相同的协议规则。所有的数据阶段里的事务都必须有相同的方向(即全部输入或全部输出)。在数据项中要发送的数据的数量和其方向在建立阶段被指定。如果数据的数量超过了先前确定的数据包的大小,数据在支持最大的包大小的多个事务中被发送(输入或输出)。任何剩下的数据都作为剩余在最后的事务中被发送。2、批量传输批量传输包含一个或者多个传输事务,其传输是单方向的,即所有的事务都必须是输入或输出事务。如果需要双向传数据,需要另建立一个管道。批量传输的传输结构如图232所示SETUPDATA0ACKIDLETOKENDATAHANDSHAKEIDLEHOSTFUNCTIONINOUTDATA0/DATA1NAKSTALLDATA0/DATA1ACKACKNAKSTALLIDLEIDLEIDLEDATAERRORDATAERRORTOKENDATAHANDSHAKEHOSTFUNCTION毕业设计(论文)说明书7图232批量传输结构示意图3、中断传输中断传输适用于小批量的、点式、非连续的数据传输应用的场合。中断传输必须在指定的时间内完成,它一般应用于鼠标、键盘、游戏杆等HID(HUMANINTERFACEDEVICE)类设备以及集线器的状态报表中。中断传输的传输结构如图233所示图233中断传输结构示意图4、同步传输同步传输的意义在于每一个帧或者微帧内必须传输固定数目的字节数据,它适用于固定速度或者特定时间的传输。同步传输没有联络阶段,所以不能保证传输的完全可靠性。同步传输的传输结构如图234所示图234同步传输结构示意图INOUTDATA0/DATA1NAKSTALLDATA0/DATA1ACKACKNAKSTALLIDLEIDLEIDLEDATAERRORDATAERRORTOKENDATAHANDSHAKEHOSTFUNCTIONINOUTDATA0/DATA0IDLEIDLETOKENDATAHOSTFUNCTION毕业设计(论文)说明书823USB总线枚举过程USB规范定义的设备状态总共有6个,分别是连接(ATTACHED)、上电(POWERED)、默认(DEFAULT)、地址(ADDRESS)、配置(CONFIGURED)和挂起(SUSPEND)。USB总线枚举过程中,USB设备需要经历后4种状态。USB集线器负责监测设备的连接情况,而USB主机会通过集线器轮询地查询设备。当主机发现一个新的设备时,会要求集线器建立与设备的通信通道,即设备的端点0,控制传输端点。之后,主机会通过此通道向设备发送一系列的标准USB请求以获取所需的信息,设备必须响应这些请求并且采取适当的动作。这个过程即称为USB的总线枚举。总线枚举的过程如下设备连接USB设备通过USB总线与主机相连。设备上电USB设备可以采用USB总线供电,也可以使用外部电源供电。主机检测到设备,进行复位设备连接到总线后,主机通过检测设备在差分信号线的上拉电阻检测到有新的设备连接,并获释该设备是全速设备还是低速设备,如果上拉电阻与D线相连,则为全速设备,如果上拉电阻与D线相连,则为低速设备,主机确认有设备连接后,向该端口发送一个复位信号。设备默认状态设备收到一个复位信号后,连接到主机的所有设备的地址为默认地址(00H),主机会首先发送一个获取设备描述符的请求,设备通过这个默认地址向主机发送第一次设备描述符。毕业设计(论文)说明书9地址分配当主机接收到有设备对默认地址(00H)来响应的时候,就确认有设备连接,主机对设备分配一个空闲的地址(如02H),以后设备就只对02H地址进行响应。读取USB设备描述符主机分配给设备地址后,通过这个地址主机读取该设备描述符,确认USB设备的属性。设备配置主机依照读取的USB设备描述符来进行配置,如果设备所需的USB资源得以满足,主机就会查找驱动,当正确找到驱动后,主机给设备发送配置命令,配置完毕后,这个USB设备就枚举成功了。挂起为了节省电源,当总线保持空闲状态超过3MS以后,设备驱动程序就会进入挂起状态,在挂起状态时,设备的消耗电流不超过500A。当被挂起时,USB设备保留了包括其地址和配置信息在内的所有的内部状态。25USB的设备描述符标准的USB描述符包括设备(DEVICE)描述符、配置(CONFIGURATION)描述符、接口(INTERFACE)描述符、端点(ENDPOINT)描述符以及字符串(STRING)描述符,字符串描述符不是必须的。不同的描述符从不同的层级来表示设备的属性。设备描述符包含了整个设备的信息以及设备支持的配置号码,每一个设备只能由一个设备描述符。但每一个设备可以有几个配置描述符,它包含了电源管理信息以及所支持的接口号码。接口描述符包含了与端点通信所需要的信息,它可以有零个或多个端点描述符。各个描述符的树状结构如图251所示毕业设计(论文)说明书10图251描述符的树状结构设备描述符描述了一个USB设备的总体信息,它在枚举过程中主机从设备读取的第一个描述符。设备描述符总共有18个字节,分为14个字段。配置、接口以及端点描述符是在主机得到设备描述符之后发送给主机的。配置描述符描述了一个特定的设备配置信息,主机使用SET_CONFIGURATION请求来选择一个配置,用GET_CONFIGURATION请求来返回一个配置。当主机请求获取一个配置描述符的时候,与配置描述符相关的所有接口、端点描述符都会一并返回。配置描述符由9个字节组成,分为8个字段。接口描述符描述了一个配置中的特定接口。接口描述符总是作为配置描述符的一部分被返回,主机不能通过GET_DESCRIPTOR请求直接获取接口描述符。接口描述符由9个字节组成,分为9个字段。端点描述符包含了主机用来确定一个端点带宽要求的信息。除了端点0外,一个接口所使用的每一个端点都有它自己的描述符。端点0不需要描述符,它也不能直接由GET_DESCRIPTOR请求来获得。端点描述符由7个字节组成,分为6个字段。设备描述符配置描述符配置描述符配置描述符接口描述符接口描述符端点描述符接口描述符端点描述符端点描述符端点描述符端点描述符端点描述符毕业设计(论文)说明书1126USB请求USB规范定义了3种请求,分别是标准请求(STANDARDREQUEST)、类请求(CLASSREQUEST)和厂商请求(VENDORREQUEST)。USB规范定义了11种标准请求,所有设备都必须对这11种请求作出响应,即使当主机没有给设备分配一个地址或者没有配置设备。某些设备的功能类似或者提供类似的服务,USB协议就将它们归为一类,并且定义了特定的请求,称为类请求。但是只有类请求是不能满足众多USB厂商的需求的,所以,USB协议允许一个供应商为它的设备自定义特殊的请求,此类请求称为厂商请求。所有的USB总线设备以缺省控制管道响应主机发出的请求,这些请求是通过控制传输来完成的,请求及请求的参数通过SETUP包发向设备,由主机负责设置SETUP包内的每个域的值。SETUP包格式如表261所示。表261SETUP包格式大小(B)11222域BMREQUESTTYPEBREQUESTWVALUEWINDEXWLENGTH在表2451中,BMREQUESTTYPE表示设备请求类型,D7数据传输方向,0主机到设备,1设备到主机;D65类型,0标准,1类型,2厂商,3保留;D40接收方,0设备,1接口,2端点,3其它;431保留。BREQUEST表示USB设备请求值,标准请求有11个命令。WVALUE为值,它根据不同的请求,以字节来定义,例如,设备请求为GETDESCRIPTOR06H,WVALUE为01H时,表明要发送设备描述符。WLENGTH表示长度,如果传输的是一组数据,则这个长度的值表示要传输数据的字节数。本章介绍了USB协议的相关内容,包括USB传输要件,USB传输中的事务、信息包和联络信号,USB的传输结构,USB的总线枚举过程,USB的设备描述符以及USB请求。本章为本设计下面内容的展开奠定了基础。毕业设计(论文)说明书123数据采集系统的硬件设计31硬件系统的结构基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,该系统能够实现8路数据自动采集,系统的组成框图如图311所示。主要包括5个组成部分中央处理器选用AT89C51芯片,完成各部分控制功能和USB传输协议;A/D转换器和接口电路主要完成数据采集,并读入MCU处理;复位电路完成对MCU的上电复位和电源电压监视;电源电路主要为各部分提供要求的电源;外设与主机间的通信电路采用USB接口。单片机通过位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎SIE立刻对数据进行处理,包括同步模式识别、并串转换、位填充/不填充、CRC校验、PID确认、地址识别以及握手鉴定,处理完毕后数据由模拟收/发器通过D、D发送至PC。上述过程遵循USB11协议。图311数据采集系统硬件组成框图32芯片选择321ADC0809ADC0809允许的最大时钟频率为1280KHZ,主要管脚功能如下地址输入和控制线4条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道现场电信号A/D转换器USB接口芯片PC机MCU毕业设计(论文)说明书13的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路图3211ADC0809的内部逻辑结构模拟量输入。ADC0809对输入模拟量要求信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7毕业设计(论文)说明书14数字量输出及控制线11条ST为转换启动信号当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。VREF(),VREF()为参考电压输入。CLOCK时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZSTART启动脉冲输入端。在时钟脉冲频率为640KHZ时,START脉宽应大于100NS200NS。EOCEOC为转换结束信号,当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。D7DO转换所得八位输出数据,D7是最高位,而DO是最低位。OE允许输出端。OE端控制输出锁存器的三态门。当OE1时,转换所得数据出现在D7DO脚,当OE0时D7DO脚对外是高阻抗。ADC0809应用说明(1)ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连。(2)初始化时,使ST和OE信号全为低电平。(3)送通道的地址到A、B、C端口上。(4)在ST端给出一个至少有100NS宽的正脉冲信号。(5)是否转换完毕,我们根据EOC信号来判断。(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。毕业设计(论文)说明书15322AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFALSHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3221AT89C51管脚图主要特性14K字节可编程FLASH存储器寿命1000写/擦循环2全静态工作0HZ24KHZ3三级程序存储器保密锁定41288位内部RAM532条可编程I/O线6两个16位定时器/计数器76个中断源8可编程串行通道毕业设计(论文)说明书169低功耗的闲置和掉电模式10片内振荡器和时钟电路323PDIUSBD12PDIUSBD12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口。它还支持本地的DMA传输。这种实现USB接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器。这种灵活性减小了开发的时间风险以及费用(通过使用已有的结构和减少固件上的投资),从而用最快捷的方法实现最经济的USB外设的解决方案。PDIUSBD12完全符合USB11版的规范,它还符合大多数器件的分类规格成像类、海量存储器件、通信器件、打印设备以及人机接口设备。同样地,PDIUSBD12理想地适用于许多外设,例如打印机、扫描仪、外部的存储设备、ZIP驱动器和数码相机等等,它使得当前使用SCSI的系统可以立即降低成本。PDIUSBD12所具有的低挂起功耗连同LAZYCLOCK输出可以满足使用ACPI、ONNOW和USB电源管理的要求。低的操作功耗可以应用于使用总线供电的外设。此外它还集成了许多特性包括SOFTCONNETTM、GOODLINKTM、可编程时钟输出、低频晶振和终止寄存器。集合所有这些特性都为系统显著节约了成本,同时使USB功能在外设上的应用变得容易。D12芯片的主要特点包括(1)符合USB11版本规范;(2)可与任何外部微控制器/微处理器实现高速并行接口2MB/S;(3)采用GOODLINK技术的连接指示器,在通信时使LED闪烁;(4)主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;毕业设计(论文)说明书17(5)在批量和等时模式下均可实现1MB/S的数据传输率;(6)完全自治的直接内存存取DMA操作。PDIUSBD12内部结构如图3231所示。图3231PDIUSBD12内部结构说明1、模拟收发器集成的收发器接口可通过终端电阻直接与USB电缆相连。2、电压调整器片内集成了一个33V的调整器用于模拟收发器的供电。该电压还作为输出连接到外部15K的上拉电阻。可选择PDIUSBD12提供的带15K内部上拉电阻的软件连接到外部15K内部上拉电阻的软件连接技术。3、PLL锁相环片内集成了6MHZ时钟乘法PLL,这样就可使用低成本的6MHZ晶振,EMI也随之降低。PLL的工作不需要外部元件。4、位时钟恢复位时钟恢复电路使用4X过采样规则,从进入的USB数据流中恢复时钟,能跟踪USB规定范围内的抖动和频漂。5、PHILIPS串行接口引擎(PSIE)PSIE实现了全部的USB协议层,且完全由硬件实现而不需要固件的参与。该模块的功能包括同步模式的识别;PLL锁相环位时钟恢复电路串行接口引擎模拟收发器33VD15K6MHZ内部RAM存储管理单元并口和DMA接口电压调整器DD毕业设计(论文)说明书18并行/串行转换;位填充/解除填充;CRC校验/产生;PID校验/产生;地址识别和握手评估/产生。6、SOFTCONNECTTMSOFTCONNECTTM与USB的连接是通过15K上拉电阻将D(用于高速USB器件)设置为高实现的。15K上拉电阴集成在PDIUSBD12片内,默认状态下不与V相连,其连接的建立是通过外部系统微控制器发送命令来实现的。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。PDIUSBD12在连接可以建立之前会检测USB规格的5,但用于连接的VSE电压规格仍然有足够的余量。SOFTCONNECTTM是PHILIPS半导体一项尚未获批准的专利技术。7、GOODLINKTMGOODLINKTM技术可提供可提供良好的USB连接指示。在枚举中,LED指示根据通信的状况间歇闪烁。当PDIUSBD12成功地枚举和配置后,LED指示将一直点亮。随后与PDIUSBD12之间成功的传输(带应答)将关闭LED。处于挂起状态时,LED将会关闭。该特性为USB器件,集线器和USB通信状态提供了用户友好的指示。作为一个诊断工具它对隔离故障的设备是很有用的。该特性降低了现场支持和热线的成本。8、存储器管理单元(MMU)和集成RAM在以12MB/S的速率传输并与微控制器并口相连时,MMU和集成RAM作为USB之间速度差异和缓冲区。这就允许微控制器以其自己的速率对USB信息包进行读写。9、并行和DMA接口一个普通的并行接口定义成易于使用,快速而且可以主流的微控制器直接连接的接口。对一个微控制器而言,PDIUSBD12看起来就像一个带位数据总线和一个地址(占用个位置)的存储器件,PDIUSBD12支持多路复用和非复用的地址和数据总线;支持主端点与本地共享RAM之间直接读取的DMA传输;还支持单周期和突发模式的DMA传输。10、DMA传输直接存储器寻址(DMA)允许在主端点和本地共享存储器毕业设计(论文)说明书19间实现数据块的有效传输。使用DMA控制器,PDIUSBD12的主端点和本地共享存储器间的数据传输可自主进行,而不需要本地CPU的干预。要处理任何DMA传输,本地CPU从主机接收必要的SETUP信息,并对DMA控制器进行正确的编程。典型的,对DMA控制器的传输模式,字节计数寄存器和地址计数器进行正确的编程。在该模式下,PDIUSBD12发出请求时开始传输,当字节计数器减少为零时终止。在DMA控制器编程之后,本地CPU在初始化传输时,将PDIUSBD12中的DMA使能位置位。PDIUSBD12可编程为单周期DMA或突发模式DMA。在单周期DMA中,DMREQ在每单个应答后直到被DMACK_N重新激活之前保持无效。在突发模式DMA中,DMREQ器件中突发编程时一直保持有效。该过程持续到PDIUSBD12通过EOT_N接收到一个DMA终止信息,这时产生一个中断指示本地CPU,DMA操作已经完成。33接口硬件电路设计由D12接口组成的通信电路原理如图3311所示。多路地址/数据总线ALE接单片机的ALE脚,这样使用传送指令可以与D12接口,对D12操作就象对D12操作一样,此时忽略A0(命令口和数据口地址线)的输入。因为没有使用DMA传输方式,所以没有用到DMACK_N、EOT_N和DMREQ_N等DMA引脚。INT_N是USB中断请求脚,发出USB中断请求;GL_N是GOODLINK指示灯,在调试过程中非常有用,在通信时会不停闪烁。如果一直亮或者一直暗,表示USB接口有问题,如果D12挂起,则LED关闭。CLKOUT是D12的时钟输出,可以通过固件编程改变其频率,在调试固件时,可作为参考。331A/D与单片机接口电路毕业设计(论文)说明书20图3311ADC0809与89C51的接口电路89C51通过P27和读、写控制线来控制转换器的模拟输入通道地址锁存、启动和允许输出。编程时注意启动AD0809后,EOC在一定时间才能变成低电平。332PDIUSBDI2与单片机接口电路PDIUSBD12与89C51的连接电路如图3321所示。89C51的ALE和PD12的ALE相接,表示采用单独地址和数据总线配置。其AO脚接高电平用于控制命令或数据输入到PDIUSBD12,也就是编程中OUTPORTCMD和OUTPORTDATA函数。此外89051的多位地址/数据复用总线PO可直接与PDIUSBD12的数据总线相连,CLKOUT时钟输出为89C51提供时钟输入。图3321PDIUSBD12与89C51的连接电路在该数据采集系统中,用ADC0809采集05V的电压信号,经A/D转换后将数字量存入预先设定的缓冲区里,利用接口芯片D12将数据送至USB总线上。设备毕业设计(论文)说明书21应用程序从缓冲区里取数据显示,通过数值来说明USB接口的采集速率比一般的串行总线速度高。当前端的电压信号不断变化的同时,在PC上可以观察到数据的变化,这就表明利用USB接口在数字采集系统中进行数据传输是能够实现的,而且能够很好的实现。毕业设计(论文)说明书224数据采集系统软件设计41A/D转换时序控制采用延时等待A/D转换结束方式,分别对8路模拟信号轮流采样一次,并依次把结果存入存储器。在软件编程时,令P270,A0、A1、A2给出被选择的模拟通道地址和启动A/D转换;执行一条输入指令,读取A/D转换结果。图411A/D转换程序流程图42固件的开发KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇指向通道0地址启动A/D转换延时等待A/D转换结束读A/D转换值,存内存指向下一个通道地址8个通道转换完继续YESNO毕业设计(论文)说明书23编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。KEILC51的工具包中,UVISION是C51FORWINDOWS的集成开发环境IDE,可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件OBJ。目标文件可由LIB51创建生成库文件,也可以与库文件一起经C51连接定位生成绝对目标文件ABS。ABS文件由OH51转换成标准的HEX文件,以供调试器DSCOPE51或TSCOPE51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。43采用PDIUSBD12的固件设计431固件编程的主要工作固件是FIREWARE的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用C语言或是汇编语言。它的操作方式与硬件联系紧密,包括USB设备的连接USB协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入MCU中,当把设备连接到主机上时,上位机可以发现新设备,然后建立连接。因此,编写固件程序的一个最主要的目的就时让WINDOWS可以检测和识别设备。USB固件程序程序由三部分组成初始化单片机和所有的外围电路(包括PDIUSBD12);主循环部分;中断服务程序。根据USB协议,任何传输都是由主机开始的。单片机作它的前台工作,等待中断。主机首先要发令牌包给USB设备(这里是PDIUSBD12),PDIUSBD12接收到令牌包后就给单片机发中断。单片机进入中断服务程序,首先读PDIUSBD12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。在毕业设计(论文)说明书24USB单片机程序中,要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端口0的编程。单片机与PDIUSBD12的通信主要是靠单片机给PDIUSBD12发命令和数据来实现的。PDIUSBD12的命令字分为三种初始化命令字、数据流命令字和通用命令字。PDIUSBD12数据手册给出了各种命令的代码和地址。单片机先给PDIUSBD12的命令地址发命令,根据不同命令的要求再发送或读出不同的数据。因此,可以将每种命令做成函数,用函数实现各个命令,以后直接调用函数即可。432PDIUSBD12固件程序的编写USB设备启动流程如下1USB设备接入USB口,发出连接USB命令;2主机发出读设备描述符两次;3主机根据设备描述符厂商ID、产品ID,启动相应设备驱动程序;4设备驱动程序初始化USB设备;读设备描述符;读配置描述符;选择接口、端点(管道),确定传输方式。USB设备在正常使用以前,必须由主机配置设备。主机一般会从USB设备获取配置信息后再确定此设备有哪些功能。作为配置操作的一部分,主机会设备设备的配置值,如果必要的话会选择合适的接口备选设备。在发出连接USB命令后,主机先读取设备描述符,然后发出设置USB地址SETUP包,设置USB地址后,进行主机客户驱动与设备初始化。其余端点依此类推。在其头文件里需定义USB规范中的各种描述符格式,包括设备描述表、配置描述表、接口描述表、端点描述表、字符串描述表以及描述表类型。这样,在发送配置联合描述表时,主机USBD可以根据描述类型标识区分各种分描述表。毕业设计(论文)说明书2544固件结构本数据采集系统的固件有着如下的积木式结构图441数据采集系统固件结构固件设计的目标就是使PDIUSBD12在USB上达到最大的传输速率。外围设备可使用PDIUSBD12在USB上传输数据,这些设备的CPU要忙于处理许多设备控制和数据处理等任务。PDIUSBD12的固件设计成完全的中断驱动,当CPU处理前台任务时,USB的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。后台ISR中断服务程序和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现,例如PDIUSBD12的批量输出端点可使用循环的数据缓冲区,当PDIUSBD12从USB收到一个数据包,那么就对CPU产生一个中断请求,CPU立即响应中断在ISR中固件将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12的内部缓冲区,以使能接收新的数据包CPU可以继续它当前的前台任务直到完成然后返回到主循环检查循环缓冲区内是否有新的数据并开始其它的前台任务。主循环发送USB请求、读入数据、采集通道和处理USB总线事件等等MAINLOOPC标准请求CHAP_9C厂商请求PROTODMAC中断服务程序ISRCPDIUSBD12命令接口D12CIC硬件提取层EPPHALC毕业设计(论文)说明书26图442数据采集系统的固件结构由于这种结构,主循环不关心数据是来自USB串口还是并口,它只检查循环缓冲区内需要处理的新数据。这样主循环程序专注于数据的处理,而ISR能够以最大可能的速度进行数据的传输。相似的控制端点在数据包处理时采用了同样的概念。ISR接收和保存数据缓冲区中的控制传输并设置相应的标志寄存器。主循环向协议处理程序发出请求。由于所有的标准器件级别和厂商请求都是在协议处理程序中进行处理,ISR得以保持它的效率。硬件提取层EPPHALC这是固件中的最底层代码,它执行对D12和硬件I/O相关访问。PDIUSBD12命令接口D12CIC为了进一步简化PDIUSBD12的编程,固件定义了一套压缩了所有访问PDIUSBD12功能的命令接口,以对PDIUSBD12芯片进行操作。中断服务程序ISRC这部分代码的处理由PDIUSBD12产生的中断,在中断服务程序中,它将数据从PDIUSBD12的内部FIFO取回到CPU存储器并建立正确的事件标志,以通知主循环程序进行处理。ISR通过设定事件标志“EPPFLAGS”和SETUP包数据缓冲区“CONROL_XFER”与主循环进行通信。主循环MAINLOOPC主循环在初始化完单片机CPU和PDIUSBD12芯片后,检毕业设计(论文)说明书27查事件标志,并进入对应的子程序进行进一步的处理,在开发套件中,它还包含人机接口的代码。协议层CHAP_9C和PROTODMAC协议层处理标准的USB器件请求和特殊的厂商请求。45固件的编程实现451底层函数最底层为两个面向硬件电路的函数OUTPORTB,INPORTB,用以完成CPU和D12之间的数据传输,这是所有其它函数的基础。具体代码如下VOIDOUTPORTBUNSIGNEDCHARPORT,UNSIGNEDCHARVALUNSIGNEDCHARXDATAEXT_ADDRESS;EXT_ADDRESS0XFF00PORT;EXT_ADDRESSVAL;UNSIGNEDCHARINPORTBUNSIGNEDCHARPORTUNSIGNEDCHARC;UNSIGNEDCHARXDATAEXT_ADDRESS;EXT_ADDRESS0XFF00PORT;CEXT_ADDRESS;RETURNC;毕业设计(论文)说明书28452命令接口在D12的数据手册中定义了一套压缩了所有访问PDIUSBD12功能的命令集,命令接口部分就是将各命令用函数的形式加以实现。对应的函数主要有VOIDD12_SETADDRESSENABLEUNSIGNEDCHARBADDRESS,UNSIGNEDCHARBENABLE;/设置地址使能VOIDD12_SETENDPOINTENABLEUNSIGNEDCHARBENABLE;/设置端点使能VOIDD12_SETMODEUNSIGNEDCHARBCONFIG,UNSIGNEDCHARBCLKDIV;/设置模式UNSIGNEDSHORTD12_READINTERRUPTREGISTERVOID;/读中断寄存器UNSIGNEDCHARD12_SELECT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成本技术创新驱动的效益提升
- 2025 小学二年级数学上册测量黑板(长度单位选择)课件
- 2025 三年级数学上册长方形和正方形期末突破课件
- 呼吸机故障应急处置护理演练
- 肾小球滤过与临床蛋白尿检测
- 癫痫苯妥英钠案例教学课件
- 2025年浙江电力职业技术学院招聘真题(行政管理岗)
- 中药炮制对药理影响案例课件
- 骨科术后肺栓塞多学科协作护理模式
- 产后瘦身饮食护理:健康减重不节食
- 铁路工务安全规则试题(含答案)
- 2025广东学法用法考试题目及答案
- 2025四川遂宁发展投资集团有限公司招聘8人笔试参考题库附答案
- 2025年数字金融行业数字金融与金融科技研究报告及未来发展趋势
- 中国马克思主义与当代2024版教材课后思考题答案
- 老年人的养老规划方案
- 2025河南郑州巩义市金桥融资担保有限公司招聘3人考试笔试备考题库及答案解析
- 2025江苏农村商业联合银行股份有限公司社会招聘考试笔试参考题库附答案解析
- 房建测量培训教学课件
- 物联网应用技术大学生职业生涯规划书
- 水系锌离子电池市场分析报告-培训课件
评论
0/150
提交评论