采用USB接口的高速数据采集器硬件设计毕业论文_第1页
采用USB接口的高速数据采集器硬件设计毕业论文_第2页
采用USB接口的高速数据采集器硬件设计毕业论文_第3页
采用USB接口的高速数据采集器硬件设计毕业论文_第4页
采用USB接口的高速数据采集器硬件设计毕业论文_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子

2、版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 1 绪论1.1 课题的提出及意义在工业生产和科研的各行业,常常利用pc或工控机对各种数据进行采集这其中有很多地方需要对各种数据进行采集,如液位、温度、压力、频率等。现在常用的采集方式是数据采集板卡,常用的有422、485等总线板卡。采用板卡不仅安装麻烦,容易受机箱内环境的干扰,而且由于受计算机插槽数量和地址、中断资源的限制不可能挂接很多设备。在目前pc的io模式中,外围设备通常被映射为cpu的io地址,并且被分配一个指定的irq(中

3、断请求),在某些情况下也可以是一个dma通道。这种地址分配的方法已经成为一种标准,软件开发者要根据指定的设备进行访问。这给编程者带来了不便,同时消耗了pc的许多系统资源,使许多系统资源不可使用,并且产生了很多冲突,由此造成了很多问题。根据调查显示,70%的严重系统错误和系统崩溃是由硬件冲突引起的。通用串行总线(universal serial bus,简称usb)的出现,很好的解决了以上这些问题。他不仅解决了i/o插口不够的问题,而且建立了一条连接和访问外设的方法。这些方法可以有效的减少总体成本,减少硬件冲突。因此,我们能够利用usb总线接口比较容易的实现低成本、高可靠性的多点数据采集系统。这

4、种采集系统由于采用了usb总线接口而具备了如下优点:1)设备安装和配置容易。usb设备支持即插即用,安装usb设备不必再打开机箱,加减已安装过的设备,完全不用关闭计算机。所有usb设备支持热拔插,系统对其进行自动配置,不再占用中断资源或者dma资源,彻底抛弃了过去的跳线和拨码开关设置。usb为接缆和连接头提供了单一模型,解决了外设越来越多造成的插槽紧张问题。2)接口数目多,每个usb主机通过usb集线器,可以同时挂接最多127个外围设备,有效地解决了多点数据采集系统i/o口不够用的问题。3)数据传输速度比一般的串行总线(如rs232,rs485等)快,usb1.1标准的接口最快可以达到12mb

5、ps,可以满足绝大多数多点数据采集系统的要求。在pc主机和采集系统都具备支持usb2.0标准的接口芯片时,最快可以达到480mbps,可以满足高速数据采集系统的要求。4)有总线电源保护,系统连续3ms没有总线活动,usb自动进入刮起状态。1.2 课题研究状况usb在1995年被提出,并由compaq、digital equipment corp(现在属于compaq)、ibm、intel、microsoft、nec和northern telecom七个计算机与通信工业领先的公司所组成的联盟所定义和加以推广。同一年,该联盟建立了实施者论坛(以下简称usb-if)来加速usb标淮的高质量兼容设备的

6、开发。在1996年,usb-if公布了usb规范1.0,这是第一个为所有的usb产品提出设计请求的标淮。1998年,在进一步对以前版本的标准进行阐述和扩充的基础上,发布了usb标准的1.1规范。第三个版本的usb2.0是发布于1999年。之后,随着usb的普及与推广,usb的成员一直持续不断地增加,如今已是非常庞大的推广组织了。历经8年的发展,usb技术已经非常成熟,也得到了lt业各硬件及件厂商的广泛支持。尤其是microsoft公司在其win98之后的操作系统中加强了对usb的系统支持后,usb总线迅速发展起来。目前,usb总线的协议版本已经达到了2.0,支持的最高速度达到了480mbps,

7、远远超过了一般并行总线的数据传输速度。随着usb总线的发展,usb总线接口在嵌入式系统以及个人电脑的外围设备中的应用发展非常迅速。计算机外围设备的市场上使用usb接口的数码相机、扫描仪、移动硬盘、鼠标、键盘等设备随处可见。但是usb接口在工业控制领域、数据采集系统以及只能仪器仪表中的应用还不多见。因此,我们提出了基于usb总线接口的数据采集系统。数据采集是信息科学的一个重要分支,是信息处理系统的最前端。它是以传感器、信号测量与处理、微型计算机等技术为基础而形成的一门综合应用技术,主要研究信息数据的采集、存储、处理以及控制等作业,具有很强的实用性。在工业生产和科学研究中经常需要对一些物理量进行采

8、集,为提高产品质量、降低成本提供信息和手段。在自动飞行控制和航天器的遥测、遥控中以及在国民经济的各个领域中,数据采集技术具有很重要的地位。随着大规模集成电路与计算机科学技术的发展,数据采集技术将在雷达、通信、水声、遥感、语音处理、智能仪器、工业自动化以及生物医学工程等众多领域得到广泛的应用。数据采集技术的发展是人机交互、状态监测、设备控制的基础。随着电子工业的发展,尤其是pc机的出现,大大地促进了工业自动化的程度,现在越来越多设备实现了自动控制和无人职守,而这一切又促进了数据采集技术的发展。在科学技术研究的各行各业中,常常利用pc机或工控机对各种数据进行采集,如液位、温度、压力、频率等。1.3

9、 本课题的主要内容本课题的内容按章节大致可以分为4个方面:(1) 了解基于usb接口的数据采集系统的研究背景,提出课题的研究意义,指出了用usb接口相较于其他接口的优势:易实现、成本低、快速、兼容性强。另外还指出了usb接口和数据采集系统的研究现状。(2) 具体地从usb系统组成、usb的传输、usb的数据单元、usb的设备请求等方面讨论了usbi.0、usb2.0、usbotg协议。(3) 提出系统总体设计方案。对pc机与数据采集器的接口方式和usb控制芯片的选取进行了分析,并说明了选用usb 主控芯片pdiusbd12和usb接口方式原因及其优势。同时简单介绍了pdiusbd12和单片机a

10、t89c51的特性和功能。最后,阐述了数据采集器的设计实现。(4) 系统硬件电路设计。详细叙述别介绍低通滤波器电路、采样保持电路、at89c51和pdiusbd12连接电路、usb接口硬件设计。2 usb软件通信协议2.1 usb系统构成一个usb系统由以下几部分构成:主机和设备:是指usb系统中的主要构件;物理构成:是指usb元件的连接方法;逻辑构成:不同的usb元件所担当的角色和责任,以及从主机和设备的角度出发usb所呈现的结构;客户软件与设备功能接口的关系。整个usb系统通信模块具体的参考模型如图2.1所示图2.1通信模块具体的参考模型从图2.1中可以看出usb通信的数据流结构。主机和设

11、备被分成如图2.1所示的几层。实箭头表示主机上的实际通信,设备上的相应接口根据不同的仪器而不同。主机和设备间的通信最终发生在物理线路上,然而,在每一水平层之间存在着逻辑接口。主机中客户程序软件与设备功能间的通信代表了设备需求与设备能力之间的约定。其中usb系统软件是由主控制器驱动程序(hcd)、usb驱动程序(usbd)和主机软件组成。主控制器驱动程序能够更容易的将不同的主控制器设备影射到usb系统中,因此客户可以在不知其设备连接在那个主控制器的情况下与设备相互作用。hcd与usbd间的接口叫hcdi,特定的hcdi由支持不同主控制器的操作系统定义。通用主控制器驱动器(uhcd)处于软结构的最

12、底层,由它来管理和控制主控制器。usb主控制器定义了一个标准硬件接口,以提供一个统一的主控制器可编程接口。uhcd实现了与usb主控制器通信和控制usb主控制器的一些细节,它对系统软件的其它部分是隐蔽的。系统软件中的更高层通过uhcd的软件接口与主控制器通信。usb驱动程序(usbd)位于uhcd之上,它提供驱动器级的接口,满足现有设备驱动器设计的要求。usbd所实现的准确细节随不同操作系统环境而有所不同,但usbd在不同操作系统环境下完成的是一样的工作。usbd以i/o请求包(irps)的形式提供数据传输构架,它由通过特定管道(pipe)传输数据的需求组成。客户软件位于软件结构的最高层,它负

13、责处理特定usb设备的设备驱动器,客户程序层描述了所有直接作用于设备的软件入口。当设备被系统检测到时,这些客户程序将直接作用于外围硬件,这个共享的特性将usb系统软件置于客户和它的设备之间,也就是说,一个客户程序不能直接访问设备硬件,而是根据usbd在客户端形成的设备映像由客户程序对它进行处理。2.2 usb的数据传输方式虽然usb设备的软硬件会自动处理所有传输的细节,但是如果想要设计usb设备,我们仍然需要对接口的内部工作原理有相当程度的了解。每一次传输是由事务(transaction)所组成,每一笔事务都是由信息包(packet)所组成,每一个信息包则是包含传输的信息。为了满足不同外设和用

14、户的要求,usb提供了四种传输方式:控制传输(control transfers)、块传输(bulk transfers)、中断传输(interrupt transrers)和等时传输(isochronous transfers)。它们在数据格式、通信流方向、数据包容量限制、总线访问限制、所要求的数据顺序等方面有着各自不同的特征。控制传输主要用于命令、控制、状态操作(如获取设备的设备描述符,设置设备的usb地址等,可以通过控制传输来定义自己对设备的控制操作,设置采样参数、开始或停止采样等),是由主机软件发起的请求/响应通信过程,具有突发性、非周期性的特点,每个usb设备都必须有控制传输的通道。

15、块传输主要用于完成主机和设备之间的大批量数据传输,这种传输方式可以利用任何可用的带宽进行传输,或可以延迟到有可利用的带宽时再进行传送数据。由于块传输在硬件级上对传输数据进行错误检测(若发生错误,它支持“重传”功能),因此它能保证数据传输的可靠性。块传输支持两个方面的数据传输(即主机到设备和设备到主机),适用于打印机、调制解调器等不定期传送大量数据的中速设备,具有非周期性和突发性强的特点。中断传输用来完成设备到主机的少量数据传输,它只支持设备到主机方向数据传输(中断传输与我们平常说的“中断”概念没有任何联系),适用于人工输入设备。具有数据量小、非周期性、低频率、延时一定等特点。等时传输亦称同步传

16、输,主要用于主机和设备与时间有关的信息传输,比如,实时数据的传输(如多媒体、音、视频数据)。同步传输不对传输数据进行错误检测,它主要保证数据的连续传输,适用于实时性要求比较高的场合,具有周期性、连续性的特点。这种传输类型保留了数据中时间压缩的概念,但并不意味着这一类数据传输都是实时的。在实际开发过程中,我们可以采用其中的一种或几种方式来设计我们的系统。2.3 usb的数据单元usb的通信结构一般是以同步域sync开始的,接着是pid域,后面紧跟着数据或控制信息,最后是crc校验。所有的数据通讯过程都可以归结为三种包的传输:令牌包、数据包和应答包,这些包都是由不同的域组成的,格式如表2-1所示。

17、表2-1各种包的格式令牌包syncpidaddr endpcrc5数据包pid datacrc16握手包 pid帧开始pid帧标号crc5同步域(sync field):所有的包都起始于同步域,它被用于本地时钟与输入信号的同步,并且在长度上定义为8位,sync的最后两位作为一个记号,表明pid域(标识域)的开始。标识域(pid paeket identifier field):是由一个4位的分组类型码加上4位类型码的反码组成,其格式如图2.2所示。对于每个包(pid)都是紧跟着sync的,pid指明了包的类型及其格式。主机和所有的外设都必须对接收到的pid域进行解码,如果出现错误或者解码为未定

18、义的值,那么这个包就会被接收者忽略,如果外设接收到一个pid,它所指明的操作类型或者方向不被支持,外设将不做出响应。图2.2 pid分组码格式pid可以分成4个码组:令牌、数据、握手和特定类型,如表2-2所列。表2-2 pid类型pid类型pid 名称pid30说明 令牌 (token)out0001b地址+端点号in1001b地址+端点号sof0101b帧标志,表示帧标号开始setup1101b地址+端点号数据(data)data00011b数据分组偶piddata11011b数据分组奇pid 握手(handsake)ack0010b接收器接受到无误的数据分组nak1010b接受设备不能接受

19、数据或发送设备不能发送的数据sall1110b端点被静止特殊pre1100b主机发出低速通信的前导信号地址域(addressfield):外设端点都是由地址域指明的,它包括两个子域:地址域和端点域,外设必须解读这两个域,其中有任何一个不匹配,这个令牌就会被忽略。外设地址域(addr)指定了外设,它根据pid所说明的令牌的类型指明了外设是数据包的发送者或接收者,addr共7位,因此最多可以有127个地址。一旦外设被复位或上电,外设的地址被缺省为0,这时必须在主机枚举过程中被赋予一个唯一的地址。0地址只能用于缺省值而不能分配作一般的地址。端点域(endp)有4位,它使设备可以拥有几个子通道,所有的

20、设备必须支持一个控制端点0(end point 0)。低速的设备最多支持2个端点0和一个附加端点,高速设备可以支持最多16个端点。.端点域:附加的4位的端点(endp)字段允许对那些需要不只一个子信道的功能部件进行更灵活的寻址。除了端点地址0之外,端点个数是由功能部件决定的。规定端点域只能供in、setup和out令牌的pid使用。所有的功能部件都必须在端点0提供一个控制管道(缺省控制管道)。对于低速(low speed)设备,每个功能部件最多提供3个管道:在端口0的控制管道加上2个附加管道(或是2个控制管道,或是1个控制管道和1个中断端口,或是2个中断端口)。全速(full speed)功能

21、部件可以支持最多可达16个任何类型的端点。帧号域(frame number field:帧号字段是一个11位的字段,主机每过一帧就将其内容加一。帧号字段达到其最大值ox7ffh时归零,这个域只存在于每帧开始时的sof令牌中。数据域(data):数据字段可以在0到1,023字节之间变动,但必须是整数个字节。图2.3为多字节显示格式,每个字节的范围内的数据位移出时都是最低位(lsb)在前。图2.3数据域格式crc校验:包括令牌校验和数据校验。循环冗余校验(crc)被用来在标记和数据包中保护所有的非pid字段。crc也必须满足位填充的要求,这意味着如果前6位都是1的话,就必须在crc的最后插入一个零

22、。(1)令牌crc标记使用了5位的crc字段,它覆盖了输入,建立和输出令牌的addr和endp字段,或sof标记的时间戳字段。生成多项式如下:g(x)=x5+x2+1 这个多项式的二进制位组合是00101b。如果所有的标记位都被准确无误地收到,接收机中的5位剩余将是01100b。(2)数据crc数据crc是作用于数据包的数据字段上的16位多项式。产生的多项式是如下:g(x)=x16+x15+x2+1 这个多项式的二进制位组合是1000000000000101b。如果全部的数据和crc位被准确无误地收到,16位剩余将是1000000000001101b。2.4 usb标准设备请求usb标准设备请

23、求是用来完成usb设备枚举的命令,usb设备必须对标准请求做出响应,不管该设备是否己经被分派了一个默认的地址或该设备目前正在配置。所有的标准设备请求都是使用默认管道来传输的。usb设备的请求由8个字节组成,格式定义如表2-3所列。表2-3 usb设备请求格式偏移量域大小值描述0bmrequesttype1位图请求特征: d7:传输方向 0=主机至设 1=设备至主d6.5:种类 0=标准 1=类 2=厂商 3=保留d4.0:接受者 0=设备 1=接口 2=端点 3=其他1brequest1数值usb设备请求2wvalue2值字长域,根据不同的请求含义改变4windex2索引和偏移字长域,根据不同

24、的请求含义改变。典型用于传送索引或偏移6wlength2计数如有数据传送阶段,此为数据字节数usb设备要想工作,必须对usb协议的标准命令请求做出正确响应,只有对标准的请求正确响应,设备才能枚举成功,才能和上位机通信。一般情况下,usb设备必须支持的标准请求有11个命令,对应的代码和说明如表2-4所列。表2-4 usb标准设备请求bmrequesttypebrequestwvaluewindexwlengthdata00000000b00000001b00000010bclear_feature特性选择符0接口号端点号0无10000000bget_configuration001配置值1000

25、0000bget_descripotr描述表种类和索引零或语言标志描述表长描述表10000001bget_interface0接口号1可选设置10000000b10000001b10000010bget_status00接口号端点号2设备,接口或端点状态00000000bset_address设备地址00无00000000bset_configurtion配置值00无00000000bset_descripto描述表0或语言标志描述表长描述表00000000b00000001b00000010bset_feature描述表种类和索引0接口号端点号0无00000001bset_interface

26、可选设置接口号0无10000010bsynch_frame0端点号2帧标号2.5 usb设备的描述符usb设备利用描述符来报告其属性。一个描述符是具有一个确定格式的一个数据结构。每个描述符都以一个一字节宽并包含了该描述符中所有字节数的域为开始,再跟上一个说明描述符类型的一字节宽的域。使用描述符使得单个配置的特性存储变得简明,因为每个配置可能会重复使用其它有相同特性的配置描述符的部分或全部,用这种方法,描述符用一个关系数据库来表绘一个个的单独数据记录。标准的usb设备有5种usb描述符,分别是设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。usb的描述符是通过get deserip

27、tor来读取的。设备描述符:是说明整个设备的信息,包括设备描述符长度、描述符类型、usb版本号、设备类、设备子类、设备协议、端点0的最大分组尺寸、厂商id、产品id和设备支持的配置数等。它用来配置设备,一个设备只能有一个设备描述符。配置描述符:定义了设备的配置信息,一个设备对它支持的每一种配置都有一个配置描述符,包括关于配置的一般信息,并且定义了当使用这些配置时接口的数量。一个设备可以有多个配置描述符。接口描述符:说明了关于接口的一般信息,它指出了特定的接口所支持的设备类,此外,它指出了该接口进行通信时所使用的端口数量。一个设备接口包含一个或多个端点描述符。端点描述符:包括了端点所支持的传输类

28、型、大小、方向等信息。usb设备的每一个端点都有自己的描述符。字符串描述符:是可有可无的。但是,如果一个设备无字符串描述符,所有其它描述符中有关字符串描述符的索引都必须为0。它可以为所有的设备定义,描述了配置和接口,并且字符串是以unicode的形式给出的,它们可以显示出来,而且用户可以读取它们。在程序设计时,各种描述符的每一个字段必须正确无误,尤其是描述符的长度和类型,否则设备枚举必将失败。2.6 usb2.0协议的介绍usb2.0协议是在usb1.1协议的基础上发展起来的,由7家公司在2000年4月份共同制定的,是版本更新的一大跃进,它加入了许多高速传输特性。原来的预测是希望提高到20倍的

29、传输速度,实际上达到了40倍的传输速度(480mb/s)。对打印机、扫描仪、硬盘、影像设备和高速数据采集系统等,无疑是一大福音,使得原来不能使用usb的视频传输都可以使用了。usb2.0协议除了满足usb1.1协议的一些特性外,还增加了一些新的特性。在描述符方面,usb2.0除了支持usb1.1的几种标准描述符外,还增加了新的描述符:device_qualifier、other_speed_configuration和interface_power,这些描述符包含了使用非目前选择的速度时设备的行为,只有同时支持全速与高速的设备才需要。device_qualifier描述符:当设备转换速度时候,

30、设备描述符中的某些字段可能改变。device_qualifier描述符储存目前不使用的速度的字段数值。设备描述符与device_qualifier描述符中的字段数值,视所选择的速度来做交替。other_speed_configuration描述符:此描述符的结构与配置描述符相同,唯一的差别是other_speed_configuration描述符描述的是当设备在非作用中速度时的配置。other_speed_configuration描述符的附属描述符与设备配置描述符相同。interface_power描述符:这是usb2.0新增的一个描述符,这个功能使得除了设备层级外,接口层级也能够启用电源管

31、理。usb2.0完全兼容usb1.1和usb1.0,他们使用相同的连接器与电缆。不过如果要使用最新的高速传输,则必须使用与usb2.0兼容的主机与集线器。usb2.0兼容的主机与集线器,同时也能够与usb1.1的外围设备沟通。如果您将较慢的外围设备连接到usb2.0兼容的集线器上,集线器会自动转换外围设备的速度。2.7 usbotg协议的介绍usb的广泛应用正在成为外设与pc及笔记本电脑连接的工业标准。我们开发了基于usb1.1协议的数据采集和控制系统以及usb和串行口通信板,取得了满意的效果。但这些设备都是由一个主计算机来管理所有的通信,外围设备不能够直接彼此沟通。在2001年,usb开发者

32、论坛(usb implementers forum,usbif)发布了专门用于usb外设间可移动互联的usb2.0补充规范usbotg(on-the-go)v1.0。usbotg为外设之间点对点通信的实现提供了一个完善而经济的解决方案,突破了主pc机的约束,允许一个usb外设拥有受限的主机功能,实现与其它选择的usb外设通信;利用小型的连接器来满足外设接口外形多变的要求;小功率特性延长了电池的使用寿命。usbotg并没有影响外设到pc的连接能力和要求,而是为在pc机连接不可行或不能实现的情况下提供一个外设之间直接通信的解决方案。usb己经成为了一种pc和外设之间交换数据的常用接口。由于日益增加

33、的便携式外设都使用usb接口和pc机进行通信,因此如果能实现这些设备相互之间的通信将会带来很大的方便,但是usb的某些规范使之实现起来有困难,尤其是usb通信只发生在一个主机和一个外设之间。为了取的pc主机的资格,设备必须包含以下几个特性:(l)存储大量的设备驱动程序;(2)产生大电流的能力;(3)一个标准主机连接插孔。要求大量的便携式设备都具有上述特性是不现实的,而且在很多情况下,并不需要使用到这些特性。为了满足这些限制要求,便携式usb的应用是作为usb2.0规范的补充发展起来的。它允许一个便携式设备成为一个usb主机,而不需要支持一个pc主机的所有功能。这个补充规范的目的是要定义一个对u

34、sb2.0规范作最低限度的改变来实现便携式usb设备的应用。usbotg并不是一个独立的规范,它是usb2.0规范的补充,任何一个在这个规范中没有更改的usb标准仍然受usb2.0规范的约束。这个补充规范并不单是为便携式电子设备制定的,其同样适用于pc机的外设或任何非便挤式设备。usbotg在usb2.0规范基础上增加了以下特性:双重功能设备:允许设备以主机和外设两种形式工作;主机处理协议(hnp:host negotiation protocol):用于转换usb主机和外设功能;会话请求协议(srp:session request protocol):完成与主机的会话;更具节能性的电源管理:

35、除了小功率和大功率之外,增加了微功率选择。超小连接器:除了标准的a和b系列连接器外,增加了微型连接器mini-ab,这些连接器比最初的usb连接器要小许多,更适合于便携式设备。usbotg是一种点到点的通信标准,其仍然保持在任何时候都有主机/从机。点到点的通信能力建立在定义好的结构上,允许在主机和从机之间的转换。点到点的连接方式并不仅限制在同种类的产品之间,不同类的产品也能相互连接,这使得便携式设备的发展有了更加广阔的空间。usbotg已受到cypress等芯片供应商、软件开发商和设备制造商的广泛支持,otg必将会成为新一代嵌入式设备的解决方案。2.8本章小结本节简要地从usb系统组成、usb

36、的传输、usb的数据单元、usb的设备请求等方面讨论了usbi.0、usb2.0、usbotg协议。从这些介绍中可以看出,usb1.1协议的速度可达1.5mb/s和12mb/s,适用于大多数中低速设备;usb2.0协议是在usb1.1基础上版本的一个升级,并增加了一些新的特性,速度可高达480mb/s,使得原来usb不能用于视频的传输也可以实现;以上这两种协议虽然可以满足大多数系统的需要,但在实际的通信过程中必须有主机的参与,离开了主机,设备便不可工作;而usbotg的出现正是为了解决这个问题,usbotg协议是usb2.0协议的一个补充,而不是一个独立规范,任何一个在这个规范中没有更改的us

37、b标准仍授usb2.0规范的约束。usbotg协议实现了无主机参与的数据通信,可以实现点对点的数据通信,而无须主机的介入,在嵌入式领域必将有广阔的应用前景。3 系统总体设计方案3.1 设计方案的确定3.1.1 数据采集器接口的选择数据采集设备与计算机之间的接口可以有多种方式,如rs232串行口、并行口、isa总线、pci总线、usb等。通过分析五种接口方式我决定选择usb接口方式,下面是各接口方式的优缺点:(1)rs232串行接口:串行接口是微机应用系统的常用接口,现在的pc机一般至少有两个串行口。串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下去。由于pc机的限制,其最高

38、数据传输率不超过115kbps,同时传输的距离也不会超过15米,且pc机上的串口数目也很有限。采样系统与pc机接口速度的瓶颈作用会导致一部分数据的丢失,失去连续采样的意义。(2) 并行接口:目前,计算机中的并行接口主要作为打印机端口,并行接口是在多根数据线上以字节为单位与输入/输出设备或被控对象传输信息的,这样数据传送速度大大提高,且并行传送的信息不要求固定的格式,但并行传送的距离受到限制,因为距离增加,干扰就会增加,容易出错。(3)isa总线isa总线是工业标准结构总线,又称为at总线。它的数据宽度16位,工作频率8mhz,数据传输率6mb/s,处理器的高速度和总线的低速度不同步,造成硬盘、

39、图形卡和其它外设只能通过一个慢速且狭窄的瓶颈发送和接收数据,使cpu的高性能受到了严重的影响。尽管isa总线传输速率低、占用硬件中断资源、不支持即插即用,但isa具有良好的兼容性及广泛的应用,而且这种总线特别适合于控制外设和进行数据通信的功能模块。但是随着计算机技术发展,isa总线逐渐被淘汰,目前市场上大多pc机主板已经没有isa插槽。(4)pci总线pci总线是intel公司推出的外围设备互连总线,是另一种局部总线规范pci总线具严格的规范,保证了它具有良好的兼容性,符合pci规范的扩展卡可插入任何pci系统可靠地工作。pci总线与cpi无关,与时钟频率亦无关,可适各种平台,支持多处理器和并

40、发工作;pci总线为外设提供了访问微处理器更宽更快的通路,有效地克服了数据传输的瓶颈现象。pci总线还具有良好的扩展性,通过pci桥路,可允许无限地扩展。但pci总线主要用于提高系统的性能。(5) 通用串行总线(usb)上述总线接口虽各具优点,但也都有其难以克服的缺点。它们在使用过程中安装麻烦、易受机箱内环境的干扰,受到计算机系统资源、插槽数量限制,不易扩展。而一种新的总线接口方式-usb,则是对其它总线接口技术扬长避短的产物。由于usb的热插拔特性,使得它的使用很方便,而且与串口、并口相比,usb的速度也快得多。我们可以很方便地对其作一些特殊处理或是更改设置,使用非常方便。usb是一些pc-

41、大厂商,如microsoft,intel等为了解决日益增加的pc外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信的标准,自1995年在cmodex上亮相以来,己广泛地为各cp厂家所支持。usb主要有以下优点:速度快。usb有高速和低速两种方式,主模式为高速模式,速率为12mbps,usb2.0版规范允许480mbps的速率传输数据。另外为了适应一些不需要很大吞吐量和很高实时性的设备,如鼠标等,usb还提供低速方式,速率为12mbps。相比之下,串口数据传输率是115kbps230kbps,标准并口的数据传输率为imbps,这些都远低于ubs的传输速率。设备安装和配置容易。usb设备支持

42、即插即用,安装ubs设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有usb设备支持热插拔,系统对其进行自动配置,不再占用中断资源或者dma资源,彻底抛弃了过去的跳线和拨码开关设置。usb为接缆和连接头提供了单一模型,解决了外设越来越多所造成的插槽紧张问题。易于扩展。通过使用hub扩展,可接多达127个外设。标准usb电缆长度为3m(5m低速),通过hub或中继器可以使外设距离达到30m使用灵活。usb共有4种传输模式:控制传输(control)、同步传输(synchronization)、中断传输(interrupt)、批量传输(bulk),以适应不同设备的需要。能够采用总线供电

43、。usb总线提供最大达5v,500ma电流,对于功耗较小的设备来说这是非常有效的。通过分析我们可以看出使用usb接口是最适合我们这个设计的要求。3.2 usb控制芯片的选择要实现一个usb设备,首先面对的问题就是选择一种适合的usb控制芯片。从芯片大的构架来分,市面上所有的usb控制器芯片可以分为不需要外接微控制器的芯片和需要外接微控制器的芯片。而不需要外接微控制器的芯片又可以分为专门为usb设计的芯片和嵌入通用微控制器内核的芯片。(1)专为usb设计的usb控制芯片:该类芯片是厂商为开发usb应用设备而专门设计的,内部用的是专用的cpu。较为典型的代表为cypress公司推出的cy7c631

44、01a、cy7c63723等等。(2)内嵌通用微控制器的芯片:内嵌通用微控制器的usb控制芯片可以说是在通用微控制器的基础上扩展了usb功能。这些控制器芯片的优点是开发者已经熟悉了这些通用微控制器的结构和指令集,所以开发起来救比较容易。即使用户不熟悉这些芯片的结构,但是介绍这些微控制器的书籍和关于他们的范例程序、开发工具等都可以作为设计时的参考。此类芯片的典型代表有:cypress公司的ez_usb系列芯片(内嵌80c186),amtel公司的at76c711(内嵌atmel avr),siemnes公司的c541u(内嵌80c51、80c52)等等。(3)需外接微控制器的芯片:这些usb控制

45、芯片只负责处理usb相关的通信工作,而且必须由外部微控制器的控制才能正常工作。如果选择了这种设计方按,那么必须再选择一个微控制器芯片,这样就增加了设备的体积。但其优点是用户可以选择任何一种自己熟悉的微控制器,而且这种芯片价格也相对便宜。既然需要外接微控制器,这些芯片就必须提供一个串行或者并行的数据总线来与微控制器进行连接。另外还需要一个中断引脚,当接口芯片收到或者是发送完usb总线数据时,这个中断引脚会向微控制器发出中断信号。此类芯片的典型代表有:philips公司的pdiusbd12、netchip公司的net2888芯片、national semiconductor公司的usbn9603.

46、等等。综合考虑现有工作环境、资料收集情况和价格等因素,本课题采用了需要外接微控制器的pdiusbd12芯片作为数据采集系统的usb控制芯片。3.2 pdiusbd12芯片简介pdiusbd12是philips公司的一款性价比很高的usb器件,其内部无微控制器,需要通过八位并行接口与其他微控制器配合使用,并支持dma传输。这种实现usb接口的标准组件,可以使设计者在各种不同类型微控制器中进行选择,最大限度的利用已有的设备和开发环境。微控制器分离的接口器件是开发usb设备较为快捷、经济的选择。pduisbd12芯片符合usb1.1协议;内部集成t320b的fifo(先进先出)储存器;支持总线供电(

47、从主机usb插槽获得电源)或设备自供电;提供goodlink指示器,在设备正确枚举、配置后使led持续点亮,数据传输时则闪烁;该芯片具有sop28及tssop28两种封装形式。图3.1 pdiusd12引脚图pdiusd12芯片八位并行i/o口线data0至data7具有可控的三态门电路,故而pdiusd12芯片可以直接与at89c52的数据总线相连。引脚cs_n即为该芯片的片选信号引入端。vdd、gnd、d+、d一四引脚与usb电缆的下游插座相连,其中vdd与gnd之间的5v电压可为设备提供电源;d+和d一为信号线。int_n引脚需与外部微控制器的中断引脚相连,用于在接口芯片收到或者发送完毕

48、usb总线数据时通知微控制器进入相应的中断处理。xtal1和xatl2为外部时钟信号引入端,使用6mhz晶振。在一般情况下其该芯片可达到2mbit/s的传输速率。芯片中串行输入引擎(sie)模块起着至关重要的作用,主要完成所有的usb协议层功能,例如同步模式识别、并/串转换、位填充/去填充、crc检验/产生、包pid产生/确认、地址识别、握手信号包响应/产生。另外pduisbd12芯片所独有的sotf connect功能非常实用,能使外部的usb设备随时可以重新初始化。在usb的d+和d一数据线上,为了消除连线上可能的外界干扰,需要分别连接一个1兆欧姆的下拉电阻。由于usb的即插即用,实际电路

49、的工作会带来芯片工作状态不定的负面影响,因此在芯片的eot管脚连接一个1千欧姆的上拉电阻到外接电源,同时连接一个1兆欧姆的下拉电阻到地。这样外围处理器可以处理usb不连接时的工作状态。芯片v3.3 out管脚输出3.3v的电压,通过一个1.5千欧姆的上拉电阻到d+线,通知主机外设位全速模式设置。d+和d一管脚上分别接有一个10欧姆的差分传输平衡电阻,以保证数据传送正确。gl_n管脚通过一个上拉电阻接led,led的点亮和熄灭可以显示当前设备usb是否正在传输和设备是否正常。ale管脚与单片机的ale管脚相连,此时可以把八位数据端口作为地址/数据复用总线使用。它的功能框图如3.2所示:图3.2

50、pdiusbd12功能框图pdiusbd12提供控制传输、中断传输、批量传输三种传输形式,芯片内除缺省控制管道端点0外,还有两个端点。端点1规定为同步模式的usb数据传输(只能为中断传输或者批量传输),有in和out两个方向。端点2(主端点)的数据传输方向有处理器模块通过“set mode”命令配置。如果配置为同步式(只能进行中断或者块传输),则分in和out两个方向;如果配置为等时in/out模式,也有两个方向;如果配置为等时in或等时out则只有一个方向。3.3 at89c51介绍at89c51单片机是采用高性能的静态soc51设计。由先进cmos工艺制造并带有非易失性flash程序存储器

51、。全部支持12时钟和6时钟操作,包含128字节和256字节ram、32条i/o口线、3个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行i/o口(可用于多机通信i/o扩展或全双工uart),以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围(频率可降至0)。可实现两个由软件选择的节电模式空闲模式和掉电模式。空闲模式冻结cpu,但ram、定时器、串口和中断系统仍然工作。掉电模式保存ram的内容,但是冻结振荡器,导致所有其它的片内功能停止工作。由于设计是静态的,时钟可停止而不会丢失用户数据。运行可从时钟停止处恢复。at89c51的管脚排列如下:图3.3 at8

52、9c51的管脚排列说明:vss接地。vcc电源:提供掉电、空闲、正常工作电压。p0(p00-p07):p0口是开漏双向口,可以写为1使其状态为悬浮用作高阻输入。p0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。p1(p10一p17):pl口是带内部上拉的双向i/o口,向p1口写入1时,p1口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的pl口会因为内部上拉而输出电流。p1口第2功能:t2(pl0) 定时/计数器2的外部计数输入/时钟输出t2ex(p11) 定时/计数器2重装载/捕捉/方向控制.p2(p20一p27):p2

53、口是带内部上拉的双向i/o口,向p2口写入1时,p2口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的p2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时,分别作为地址高位字节和16位地址(movxdptr),此时通过内部强上拉传送1。当使用8位寻址方式(movri)访问外部数据存储器时,p2口发送p2特殊功能寄存器的内容。p3(p30一p37) :p3口是带内部上拉的双向i/o口,向p3口写入1时,p3口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的p3口会因为内部上拉而输出电流。p3口还具有以下特殊功能:rxd(p30)串行输入口txd(p31)串

54、行输出口int0(p32)外部中断0int1(p33)外部中断t0(p34)定时器0外部输入tl(p35)定时器1外部输入wr (p36)外部数据存储器写信号rd(p37)外部数据存储器读信号rst复位:当晶振在运行中只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到vss,仅需要外接一个电容到vcc即可实现上电复位。ale地址锁存使能:在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ale输出信号恒定为1/6振荡频率。并可用作外部时钟或定时,注意每次访问外部数据时一个ale脉冲将被忽略。ale可以通过置位sfr的auxlliary.0禁止,置位后ale只能在执行mo

55、vx指令时被激活。psen程序存储使能:当执行外部程序存储器代码时,psen每个机器周期被激活两次,在访问外部数据存储器时psen无效,访问内部程序存储器时psen无效。ea/vpp外部寻址使能/编程电压:在访问整个外部程序存储器时,ea必须外部置低。如果ea为高时,将执行内部程序除,非程序计数器包含大于片内flash的地址。该引脚在对flash编程时接5v/12v编程电压(vpp)。如果保密位1已编程,ea在复位时由内部锁存。xatl1晶体1:反相振荡放大器输入和内部时钟发生电路输入。.xatl2晶体2:反相振荡放大器输出。3.4 系统硬件设计方案pc主机ujusb接口芯片pdiusbd12

56、传感器八路模拟转换开关a/d转换uan低通滤波前置放大电路单片机at89c51光电耦合隔离图3.4 usb数据采集系统框图本usb数据采集系统硬件主要由微控制器at89c51、a/d转换芯片adc0809、usb接口芯片pdiusbd12组成。pdiusbd12芯片需占用at89c51的一个硬件中断,当接口芯片收到或者是发送完usb总线数据时,这个中断引脚会向微控制器发出中断信号。adc0809内八通道多路转换器由89c51控制将某一路信号接入系统。转换得到的八位数据不断送入户at89c52内部数据存储区中目标数组中,并在主机发出要求后经usb接口芯片pdiusbd12送至主机。每次a/d转换的启动由主机软件的dveiceioconrtol命令来启动。本系统采用控制传输管道传送主机io控制信号、瓶量传输管道来传送、转换的数据。数据采集器的系统框图如图所示。3.5 本章小结提出系统总体设计方案。对pc机与数据采集器的接口方式和usb控制芯片的选取进行了分析,并说明了选用u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论