(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf_第1页
(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf_第2页
(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf_第3页
(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf_第4页
(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(环境工程专业论文)基于windows+xp下usb转rs232接口转换器驱动程序的开发.pdf.pdf 免费下载

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

文档简介

摘要 通用串行总线( u n i v e r s a ls e r i a lb u s ,u s b ) 己经成为计算机必备的接口,各种 计算机电子消费产品也逐渐配置了性能优越的u s b 接口,而r s 2 3 2 产品还大量 存在,为实现通信,开发u s b 转r s 2 3 2 接口转换器非常必要。课题利用w i n d o w s x pd d k 、v i s u a lc 抖6 0 、d b g v i e w 、w i n d b g 等开发和调试工具开发出以w i n d o w s x p 为平台的接口转换器驱动程序,创建了和真实串口功能基本相同的虚拟串口, 为接口转换器的使用提供软件保证。论文首先通过分析通信协议国内外现状说明 了本课题的必要性,接下来对接口转换器硬件设计进行了分析,对w i n d o w sd r i v e r m o d e ( w d m ) 驱动模式进行了说明;设计了接口转换器驱动模型、确立了开发方案、 了解分析了所需的各种机制、设计了重点例程的实现策略;论文最后对驱动程序 的测试、安装过程进行了说明,对整个设计做了总结,并提出了进一步的完善思 路。 关键词:w i n d o w s 驱动模式通用串行总线r s 2 3 2 接口转换器 输入输出请求包通用串行总线请求包 a b s t r a c t u n i v e r s a ls e r i a lb u s 哪s b ) h a sb e c o m ea i le s s e n t i a li n t e r f a c et oc o m p u t e r , a n d v a r i o u sc o m p u t e re l e c t r o n i c sc o n s u m e rp r o d u c t sg r a d u a l l ye q u i p p e dw i t hs u p e r i o r p e r f o r m a n c eu s bi n t e r f a c e w h i l et h er s 一2 3 2p r o d u c t sa r ea l s oe x i s ti nl a r g en u m b e r s , f o rt h er e a l i z a t i o no fc o m m u n i c a t i o n ,s od e v e l o pt h eu s bt or s 一2 3 2i n t e r f a c ec o n v e r t e r i sv e r yn e c e s s a r y t h i sp a p e r , w i t hw i n d o w sx pd d k ,v i s u a lc + + 6 0 ,d b g v i e w , w i n d b ga n do t h e rd e v e l o p m e n tt o o l sa n dd e b u g g i n gt o o l su s e d ,d e v e l o p e d ai n t e r f a c e c o n v e n e rd r i v e ro nw i n d o w sx pp l a t f o r m ,a n dc r e a t e dt h es a m ef u n c t i o n a l i t ya n dr e a l s e r i a lp o r t sv i r t u a ls e r i a lp o r t t h ei n t e r f a c ed r i v e rp r o v i d e st h ei n t e r f a c ec o n v e r t e ru s i n g w i t hs o f t w a r ea s s u r a n c e p a p e rf i r s ta n a l y z e dt h ec u r r e n ts i t u a t i o nc o m m u n i c a t i o n p r o t o c o la th o m ea n da b r o a d ,s h o w i n gt h en e e df o r t h i st o p i c n e x t ,t h ea r t i c l ea n a l y z e d h o wt od e s i g nt h eh a r d w a r eo ft h ei n t e r f a c ec o n v e r t e ra n dd e s c r i b e dt h ew i n d o w s d r i v e rm o d e ( w d m ) d r i v e rm o d e l a n dt h e nd e s i g n e dt h ei n t e r f a c ec o n v e r t e rd r i v e r m o d e l ,e s t a b l i s h e dd e v e l o p m e n tp r o g r a m s ,u n d e r s t o o da n da n a l y z e d av a r i e t yo f m e c h a n i s m s ,a n dd e s i g n e dt h es t r a t e g yo fi m p o r t a n tr o u t i n ei m p l e m e n t a t i o n f i n a l l y , t h e p a p e rd e s c r i b e dt h ed r i v e rt e s t i n ga n di n s t a l l a t i o n ,s u m m a r i z e dt h ee n t i r ed e s i g na n dp u t f o r w a r di d e a sf o rf u r t h e ri m p r o v e m e n t k e yw o r d s :w d m u s br s 一2 3 2i n t e r f a c ec o n v e r t e ri r pu r b 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名: 辫 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名: 日期: d 厶,d 羔么 d 里纽:望羔笪 埤耻 第一章绪论 第一章绪论 1 1r s - 2 3 2 串行接口标准综述 r s 2 3 2 串行接口标准由美国电子工业联盟( e l e c t r o n i ci n d u s t r i e sa l l i a n c e ) 在 1 9 6 9 年制定。它适合于数据传输速率在0 - - 一2 0 0 0 0 b s 范围内的通信。该标准主要定 义了串行通信中以下几个方面的内容:数据终端设备和数据通信设备的定义、接 口的模拟电子特性、接口的机械特性、子电路的结构和接口、用于调制传输的电 路接口f l 】。随着个人计算机和大型商用服务器的基本构架一致化以及互联网的兴 起,r s 2 3 2 得到广泛应用。大量的以r s 2 3 2 为接口的产品开发出来,而随着对传 输速度的要求,串口及r s 2 3 2 在个人计算机上渐渐被u s b 、i e e e l 3 9 4 等高速接口 取代,然而工业上依然有大量的数控及程控设备使用串口及r s 2 3 2 兼容接口。 1 2 通用串行总线u s b 综述 u s b 自问世到协议规范2 0 版本,一直在不断自我完善,走向成熟。u s b 技术 作为一种计算机领域的新型接口技术,与其它老式接口相比,u s b 总线具有以下 优点:对于终端用户的易用性,即插即用,操作方便;接口通用性;良好的扩展 性;速度优势;稳定的性能;低廉的价格;可选供电模式;热插拔;不需要系统 资源;错误检测和恢复;电源保护;支持4 种类型的传输方式1 2 。基于以上优势, u s b 接口得到了广泛应用。从普通计算机用户,计算机工程师,到硬件芯片生产 厂商,都已经完全认可了u s b 。厂商对于u s b 硬件和软件的支持也越来越完备,现 在开发一个u s b 夕b 设产品,需要投入的成本和时间大大降低了,但是这些产品都 需要计算机的参与。在u s b 的拓扑结构中居于核心地位的是u s b 主机,任何一次 u s b 数据的通信都必须由主机来发起和控制,所有的u s b 设备都只能和主机建立连 接。目前,我们日常使用的u s b 产品,如u 盘、u s b 摄像头等,都是u s b 设备;绝 大多数u s b 主机功能都集成在各种类型的计算机上,比如台式机,笔记本电脑, 服务器等。随着u s b 应用领域的逐渐扩大,人们对于u s b 的期望也越来越高,希望 u s b 能应用在各种计算机领域中,尤其是在工业场合中工业接口和u s b 接口数据通 信的实现。常用的工业接口,如r s 一2 3 2 ,这些接口都是上个世纪七、八十年代设 计的。随着u s b 设备的普及,如何方便实现r s 2 3 2 接口到u s b 接口的转换,实现 u s b 到r s 2 3 2 的双向数据通信,就成为当前急需解决的问题。 2 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 1 3 国内外现状 当前u s b 已经成为个人计算机( p e r s o n a lc o m p u t e r ,p c ) 必备接口,各种p c 电子 消费产品也逐渐配置了这种标准的接口。为了顺应这种情况,对于习惯使用r s 2 3 2 产品的开发人员可以设计u s b 至u r s 2 3 2 的转接器,以便通过u s b 总线传输r s 2 3 2 数据。 设备控制芯片的技术难度较小,国外有很多公司都开发出了相应的控制芯片, 中国台湾地区也有许多公司有u s b 设备控制器的相关产品。国内集成电路设计公 司能力还有限,只限于在一些简单的应用、单个的产品中,市场占有率还很小, 目前正处于发展阶段。设备控制芯片分为通用设备控制器,定位于某几类u s b 产 品的编程应用;专用设备控制器,定位于某一个u s b 产品的应用。通用设备控制 器大部分被国外芯片垄断,国内在专用设备控制器已有所发展。 基于u s b 的串口转换控制器是一个u s b 专用设备控制器。对于这一类u s b 产 品,做得比较好的公司有:台湾的p r o l i f i c 、o t i 、s i l a b ,英国的f t d i 等公司,大 陆市场基本被这些公司所垄断。这一系列的产品已经定型,国内还没有成熟的产 品。今后的竞争主要是成本的竞争,综合实力及技术水平的竞争。国内公司具有 人力成本优势,有一定技术积累,完全有能力开发出具有竞争力的同类产品,并 会获得较好的市场前景。 国内外已有很多商业上成熟的此类接口转换器,其重点都是放在虚拟串口设 备的设计上。一个好的转接器需要设计一个能列举虚拟串口的驱动程序,在这种 情况下,p c 端的应用软件依然是针对r s 2 3 2 串行端口编程的,外设也是以r s 2 3 2 为数据通信通道,但从p c 到外设之间的物理连接却是u s b 总线,其上的数据通信 也是u s b 数据格式。采用这种方式的好处在于:一方面可以保护原有的软件开发 投入,并使已有的针对r s 2 3 2 乡 1 - 设的应用软件不加修改,便可继续使用;另一方 面就是u s b 总线的高传输速率和即插即用的特性得到了充分利用。虚拟串口的用 途最初都是用于串口转网络通信接口,也就是把对网口的操作映射为对串口操作。 例如,在传统的门禁系统、考勤系统、售饭系统、p o s 消费系统和一些其中控 制系统中,传统串口总线获得了大量的应用。但与网络相比,传统串口总线在传 输距离和可靠性方面存在较大的局限性,随着网络的普及,通过t c p i p 网络实现 网络连接,解决传统串口在传输距离和可靠性方面方面存在较大的局限性成为必 然选择。由于原来的平台软件是通过电脑串口收发数据,为了使平台软件不用改 变工作方式,需要在电脑平台上安装虚拟串口驱动,通过虚拟串口驱动可以将硬 件转换器从网络上传送来的数据重定向到一个虚拟串口上。这样,平台软件通过 虚拟串口进行数据收发。 第一章绪论 1 4 本文研究背景与工作内容 驱动程序就是用来向操作系统提供访问、使用硬件设备的接口,实现操作系 统和系统中的硬件设备之间的通信程序,它能告诉操作系统硬件设备所具有的功 能,并且在软件系统要求实现某个功能时,它能调动硬件用最有效的方式去完成。 形象地说,驱动程序就是软件与硬件之间的“传令兵”,这个环节是非常重要的, 一旦驱动出现了问题,那么性能强大的硬件便实现不了应有的功能,因此说驱动 是硬件的灵魂。日常使用的大部分电脑在安装了w i n d o w s 操作系统之后,就已经安 好了驱动程序。当前的个人计算机操作系统内部集成了庞大的驱动程序库。一般 情况下,当用户添加了一个新硬件后,操作系统就会为该硬件寻找一个合适的驱 动程序并自动安装。本文开发的是非标准u s b 设备,在w i n d o w sx p 驱动程序库中 不存在相应的兼容设备驱动。当前现有的驱动程序在内存使用效率方面不是很高, 造成较多内存“空洞”,不仅造成了内存的浪费,而且使得驱动程序的效率不高, 本课题基于以上背景自行开发了合适的驱动程序。 本文在第一章分析了开发工作的必要性,第二章介绍了了传输协议,第三章 分析并设计了u s b 转r s 2 3 2 接口转换器硬件,在第四章中着重分析了接口转换器 驱动模型和实现机制并确定了开发方案,在分析和确立方案过程中对所用到的各 种机制进行了阐述,在第五章当中对接口转换器驱动程序重点例程的设计做出了 详细的分析,在文章最后对驱动程序进行了测试并介绍了如何安装使用,并对优 点和不足做了总结,指出了下一步工作的方向。 第二章通信协议研究 5 第二章通信协议研究 2 1r s - 2 3 2 串行接口标准 r s 2 3 2 是p c 机与通信工业中应用最广泛的一种串行接口,是一种在低速率串 行通讯中增加通讯距离的单端标准。r s 2 3 2 采取不平衡传输方式,即单端通讯方 式。 通信速率低于2 0 k b s 时,r s 2 3 2 所直接连接的最大物理距离为1 5 m 。传输电缆 长度由r s 2 3 2 c 标准规定在码元畸变小于4 的情况下,传输电缆长度应为1 5 m ,在 实际应用中,约有9 9 的用户是按码元畸变1 0 2 0 的范围工作的,所以实际使用 中最大距离会远超过1 5 m ,在9 6 0 0 b s 的时候可以达至l j 7 5 m 1 3 1 。 r s 一2 3 2 的通讯标准是以一个2 5 针的接口来定义的,并在早期的计算机如p c 或 x t 机型上广泛使用,而在当前的计算机机型上均采用9 针的简化版本应用,且当前 所说的r s 2 3 2 通讯均默认为9 针的接口。 d s r 6 v r x d 2 v r t s 7 o t x d3 v c i s 8 o 九 d t r 4 v r i 9 o 厂、 s g 5 v 图2 1 串口9 针接1 2 1 图 图2 1 显示了9 针通讯的接1 2 1 管脚名称,表2 1 是各管脚的说明【1 1 。 在设计计算机与外围设备的通信时,通常在9 针的基础进行简化,只用其中的 2 、3 、5 - - - 个管脚进行通信,这三个管脚分别是接收线、发送线和地线。一般情况 下可满足通讯的要求,计算机和外部通讯的接线方法如图2 2 所示。 6 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 表2 1 串口9 针接口管脚名称及说明 旧制j i s 名称新制j i s 名称全称说明 f g s g f r a m eg r o u n d 连到机器的接地线 t x ds dt r a n s m i t t e dd a t a 数据输出线 r x dr dr e c e i v e dd a t a 数据输入线 r t sr s r e q u e s tt os e n d 要求发送数据 回应对方发送的r t s 的发 c t sc sc l e a rt os e n d 送许可,告诉对方可以发送 d s rd rd a t as e tr e a d y 告知本机在待命状态 d a t at e r m i n a l 告知数据终端处于待命状 d t re r r e a d y 态 载波检出,用以确认是否收 c dc dc a r d e rd e t e c t 到m o d e m 的载波 信号线的接地线( 严格的说 s gs g s i g n a lg r o u n d 是信号线的零标准线) jvu - - t9 6 v 4 2 v oo 8 7九 v 3 3 v oo 一 ,、78 ,、 v 24 v oo 69 v0 厂、 15 r 、 图2 2 简化9 针接口接线方法 需要注意的是,图2 2 中2 、3 两脚是交叉互联的,因为一个设备的发送线必须 联接到另外一台设备的接收线上,反之亦然。 2 2u s b 通信协议 本课题研究的通讯协议主要是指设备和主机间的数据流协议以及其他相关协 议。u s b 包含4 种传输类型:控制传输、中断传输、同步传输、批量传输【2 】。传输 是由事务构成的,事务按特点可分为输入事务、输出事务、设置事务。任何传输 都是由三种事务组成。事务由信息包组成,信息包主要有令牌包、数据包、握手 包三类【4 】。 信息包是u s b 总线上数据传输的最小单位,包含了进行u s b 通信所需的全部信 息。它由一系列字段组成:同步字段、包标识字段、地址字段、端点字段、帧号 字段、数据字段和循环冗余检验( c r c ) 字段。 第二章通信协议研究 7 u s b 协议规定:u s b 总线最先发送最低有效位( l s b ) ,跟着是下一个最低有效 位,最后是最高有效位( m s b ) 。 2 2 1 同步字段 所有包都从同步字段( s y n c h r o n i z a t i o ns e q u e n c e ,s y n c ) 开始,同步字段是产 生最大的边缘转换密度( e d g e t r a n s i t i o n d e n s i t y ) 的编码序列。同步字段作为空闲状 态出现在总线上,后面跟着以n r z i 编码的二进制串“k j k j k j k k ,l 引。通过被定义为 8 位长的二进制串,输入电路以本地时钟对齐输入数据。同步字段用于同步机制。 同步字段最后2 位是同步字段结束的记号,并且标志了包标识符( p a c k e ti d e n t i f i e r f i e l d ,p i d ) 的开始。 2 2 2 包标识字段 u s b 信息包中,包标识字段紧跟同步字段,用来指明信息包的类型、格式和 所采用的差错控制机制,由4 位类型字段和4 位校验字段组成【6 】。其中校验字段是类 型字段的二进制补码,用于保证p i d 字段译码的可靠性,使信息包的其余部分都能 被正确接收。按p i d 字段的功能可分为4 类:令牌、数据、握手、和专用,并由字 段的前2 位指明。 主机和u s b 设备都要对接收到的p i d 字段进行正确的译码。当校验字段有错误 或者得到未定义的值,则认为该p i d 字段己被破坏,则忽略信息包的其余部分。如 果u s b 设备接收到一个其不支持的p i d 字段,则不予应答,例如i n 端点会忽略所有 的o u t 令牌。 2 2 3 地址字段 地址字段( a d d r e s sf i e l d ,a d d r ) ,也称地址域。地址字段用于指定u s b 系统 中的一个u s b 设备,具有唯一性,由主机分配。其格式包含6 个数据位,最多可指 定1 2 8 个设备,其中地址0 只能用作缺省地址,不能分配给u s b 设备。u s b 设备是数 据的发送方还是接收方则取决于p i d 字段的值。 i n 、o u t 、s e t u p 、s p l i t 和p i n g 令牌包中都必须有地址字段,以指明与其 通信的u s b 设备。如果指定的设备不存在,则该令牌包将被忽略。在u s b 设备上电 和复位时,其将使用缺省地址0 来与主机通信。每个设备会由主机分配一个唯一的 设备地址。 8 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 2 2 4 端点字符 端点字符( e n d p o i n tf i e l d ,e n d p ) ,也称端点域。用于指定u s b 设备中的端点。 高速、全速设备最多可有1 6 个端点,低速设备最多只能有3 个端点。所有u s b 设备 都必须含有一个0 号控制端点,以完成与主机间的配置通信,除0 号端点外,其余 端点都是具体u s b 设备所特有 6 1 。 i n 、o u t 、s e t u p 、s p l i t 和p i n g 令牌包中都必须是有端点字段,以指明与 其进行数据传输的u s b 设备端点。以下情况令牌包忽略:指定的端点不存在时, 端点初始化之前就访问的。 2 2 。5 帧号字段 帧号字段( f r a m ef i e l d ,f r a m ) ,也称为帧号域。u s b 协议中,l 帧就是l m s 。 u s b 总线上1 帧是一个独立单元,包含一系列总线动作。帧字段用于指出当前的帧 号,每一个帧都有特定的帧号,仅在帧开始的s o f 令牌包中发送。长度为11 位,每 传1 帧,主机就将其内容加1 ,当达到最大值7 f f h 时归零。 2 2 6 数据字段 数据字段( d a t af i e l d ,d a t a ) ,也称数据域。数据字段包含主机和u s b 设备间 需要传输的数据,以字节为单位,最大长度为1 0 2 4 字节。不同的传输类型中,数 据字段的长度各不相同,必须为整数个字节,每个字节都是最低有效位( l s b ) 被传 输。 2 2 7 循环冗余检验字段 循环冗余检验字段( c y c l i cr e d u n d a n c yc h e c k s ,c r c ) ,也称循环冗余检验域。 为保证数据传输可靠性,u s b 在令牌包和数据包中都使用了循环冗余检验,它能 百分之百识别出信息包中的一位或者两位错误。c r c 检验失败标识在被保护的信 息包中至少有一个字段出错,这时接收方将忽略该字段,在大多数情况下忽略整 个信息包。 c r c 在发送方进行填充位之前产生的,接收方必须去掉填充位之后,再对c r c 字段进行译码。信息包中的p i d 本身含有检验字段,所以不要对其进行c r c 保护。 循环冗余检验对于令牌包和数据包的校验不一样:对于令牌包u s b 采用5 位的c r c 校验法;而对于数据包,则采用1 6 位的c r c 校验法。 第三章u s b 转r s - 2 3 2 接口转换器硬件 9 第三章u s b 转r s 2 3 2 接口转换器硬件 u s b 转r s - 2 3 2 接口转换控制器是基于u s b 的低功耗转换芯片,解决了u s b 接口 与r s 2 3 2 串口的串行数据传输问题。它支持即插即用,热插拔技术;支持u s b l 1 全速设备协议规范和r s 2 3 2 接口标准;支持7 5 b s 到6 m b s 的系y u r s 2 3 2 波特率可 编程设置;还有可选的外部e e p r o m ,用于u s b 设备的配置。 3 1 系统整体结构 系统的总体结构图如图3 1 所示,由u s b 接口实现计算机和设备的数据通信, 由通用异步收发器( u n i v e r s a la s y n c h r o n o u sr e c e i v e r t r a n s m i t t e r ,u a r t ) 接口实 现r s 2 3 2 的功能,与r s 2 3 2 设备进行数据通信,由1 2 c 接口电路实现e e p r o m 的读 写控制。 e e p r o m l 4 8 m h zl l 一 , 7 1 2 c 接口电路 唰 波特率 1 rl b 。n e 总线 - i 端点 l u 胁 i 2 1 13 u s b r s 2 3 2 接口转换器整体结构 实现u s b 接口的功能控制,实现对u a r t 接口参数设置,以及通过1 2 c 接口实现对eeprom的读写操作控制,相当于执行一个简单的微控制器的功能。 双端口先进先出存储器( f i r s ti n p tf i r to u t u t ,f i f o ) 数据缓冲区, 用于b数据和rs232数据的批量输入、输出的交换缓冲,大小总共为512b。在 配置可以选择批量输出256b和批量输入256b、批量输出128b和批量输入384b、 批量0b和批量输入512b三种模式。根据usb接口和uart接口的数据传输速 l o 基于w i n d o w sx p 下u s b 转r s 一2 3 2 接口转换器驱动程序的开发 度和传输频率而定,以达到最好的传输效率。 包含一块e e p r o m ,用来存储接口转换器的、产品、设备i d 等信息。在设备 配置过程中,这些信息会被读入,当不存储个性化信息时,设备配置会使用内部 r o m 中存储的参数。 整个系统可以分两部分来描述:数据路径、控制路径。 ( 1 ) 数据路径 数据路径主要处理串行接口引擎( s e r i a li n t e r f a c ee n g i n e ,s i e ) 批量端点2 、3 和u a r t 之间大量数据的传输。数据路径包括s i e 、端点2 和3 的端点寄存器组、数 据缓存f i f o 、f i f o 控制器及u a r t 接口部分。 这个通道是数据流以及少量的控制信号的通道。设备配置完成,即可开始与 r s 2 3 2 设备进行通信,从u s b 主机到r s 一2 3 2 设备和从r s 2 3 2 设备到u s b 主机两个 方向的数据流都通过数据路径进行传输。 从u s b 主机到r s 2 3 2 设备的数据传输由端点2 、f i f 0 2 、u a r t 发送模块共同完 成。端点2 为批量输出端点,处理主机输出的数据。端点2 检测到f i f o 不“满”的 情况下,将接收到的主机数据去除u s b 格式后送入f i f 0 2 ,u a r t 的发送模块检测 到f i f 0 2 中有数据口,将数据取出,添加附加位,组成r s 2 3 2 格式的数据,发送到 r s 2 3 2 设备。数据格式的变化如图3 2 所示。 u s b 主机 u s b 数据格式 r s 2 3 2 设各 s i e l- i 端点2 r s 2 3 2 数据格式u ar ,r t x 模块 无格式数据 图3 2 从u s b 主机到r s - 2 3 2 设备的数据格式变化 从r s 2 3 2 设备到u s b 主机的数据传输由u a r t 接收模块、f i f 0 3 、端点3 共同完 成。 u a r t 接收模块接收完r s 2 3 2 设备的数据,将附加位去掉后存入f i f 0 3 ,端点 3 为批量输入端点,处理从r s 2 3 2 设备来的数据。端点3 收到主机的i n 令牌后,检 测f i f 0 3 中是否有数据。如果f i f 0 3 为“空”向主机返回n a k ,如果有数据,取出 数据,以u s b 格式发送给主机。数据格式的变化如图3 3 。 第三章i s b 转r s - 2 3 2 接口转换器硬件 1 1 图3 3 从r s - 2 3 2 设备到u s b 主机的数据格式变化 此通道中也有少量的控制流,端点2 、3 j a f i f o 读数据或者向里写数据的时候, 需要根据f i f o 状态调整端点状态。如果端点2 检测到f i f o “满”则向主机返回 n a k ,告知主机不能传输数据;如果端点3 检测到f i f 0 3 为“空”则向主机返回n a k , 告知主机没有数据传输。同理,当u a r t 发送模块检n j 至i j f i f o 为“空 则停止向 r s - 2 3 2 设备发送数据;u a r t 接收模块检测到f i f 0 3 为“满 则阻止r s 2 3 2 设备继 续发送数据。 ( 2 ) 控制路径 控制路径用来配置u s b 设备,以及设置u a r t 属性。控制路径包括s i e 、u s b 端点0 和端点1 的寄存器组、主控制器、b u f f e r 和1 2 c 总线接口。设备未配置前默认 地址为0 ,主机只能通过端点0 与u s b 设备通信,主机需要从端点0 获取设备的基本 信息,给设备分配地址,这个过程通过向设备发送请求的方式完成。设备必须向 主机返回正确的设备描述符才能顺利完成配置过程。 系统内置一块2 5 6 b 的r o m ,存储了设备的默认描述符,外部的e e p r o m 可以 存储设备制造商的厂商i d 号、产品i d 号等个性化信息。设备复位期间,主控制器 会读取e e p r o m 的头两个字节,如果为“v e n d o r ,则认为e e p r o m 中的数据 有效,将其它字节读入,取代设备默认描述符中的相应字节;如果不为“v e n d o r , 则认为e e p r o m 中的数据无效,使用默认描述符。 配置过程在主控制器的控制下完成。主控制器要对主机发送的请求命令进行 解析,然后决定需要应答的描述符;同时它还需要对s i e 端点o 的寄存器进行正确 的设置,使s i e i 作在适当的状态下,对数据进行正确的应答处理。 3 2u s b 端口 当前计算机常用端口均为u s b 端口,如要实现与计算机通信就必须配备u s b 端口。 在开发过程中开发的u s b 端口支持1 个控制端点、一个中断端点和2 个批量端 点。控制端点用于u s b 设备配置,终端端点用于获取u a r t 的属性参数,批量端点 1 2 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 用于u s b 主机和r s 2 3 2 设备之间的数据传输。 u s b 端口的设计分为三层,分别为物理层( p h y ) 、协议层( p l ) 、功能层 ( f l ) 。u s b 端口的整体结构如图3 4 所示。 图3 4u s b 端口整体结构 u s b 收发器用于实现物理层的u s b 规范,由接收器和发送器组成。接收器接受 来自主机的d + ,d 信号,处理后发送到串行接口引擎,发送器用于驱动d + 、d 信号,处理后发送它们到主机。 串行接口引擎主要解析协议层的u s b 规范,如时钟数据分离、n r z i 编解码、 比特填充与抽取、c r c 检验码产生与检测、p i d 产生与检测、串并转换、并串转 换等。 串行接口引擎包括p h y 和p l 两个层,主要完成功能如下:( 1 ) 由p h y 完成:时 钟数据分离;s o p e o p 信号的检测、产生;n r z i 编码、解码;比特填充、提取; 串并转换、并串转换。( 2 ) 由p l 完成:c r c 检验码的产生、检测;p i d 产生、检 测;地址检测。 功能层主要处理功能层的u s b 规范,功能层与串行接口引擎之间的数据交互 通过一个数据缓存区进行,可以协调串行接口引擎与功能层之间不同的处理速度。 3 3 1u a r t 整体结构 3 3u a r t u a r t 是用于控制计算机与串行设备的芯片,提供了r s 2 3 2 数据终端设备接 口,使得计算机可以和使用r s 2 3 2 c 接口的串行设备通。u a r t 接口是一个全双工 的接口,包含发送通道和接收通道,可以实现r s 2 3 2 的全部功能,整体结构图如 图3 5 所示。 第三章u s b 转r s 一2 3 2 接口转换器硬件 1 3 图3 5u a r t 整体结构 各个模块说明如下: u a r tr e g :u a r t 寄存器模块,包含1 7 个寄存器,分别为r b r 、l s r 、m c s r 、 f c r 、t h r 、l c r 、p c r m 、p c r l 、b r m 、f c n t r 、f c n t t 、f t r 、f t t 、i m r h 、 i m r l 、i r q h 和i r q l 。 u a r t b r m :比特率乘法器。 u a r t c t r l 包含两个子模块,u a r t b r m 和u a r t p s c a l e 。该模块可以 产生采样始终信号和所有对u a r t t x 、f i f o t x 、f i f o r x 模块的控制信号;产 生中断信号发送完寄存器模块。 f i f o r x :从u a r t r x 接受信号,发送往寄存器模块,是同步f i f o ,为一个 环形b u f f e r 。该指针指向b u f f e r 的开始,写指针执行b u f f e r 的结尾。 f i f o t x :从寄存器模块接受信号,发送完u a r t r x 。该模块结构与f i f o r x 相同。 u a r t r x :u a r t 接收器。 u a r t t x :u a r t 发送器。 模块可完全实现r s 2 3 2 的功能,支持5 , - - 一8b i t 共4 种数据字长度;支持4 种校验 方式:奇校验、偶校验、空白位校验和标志位校验,在该课题中用到的是奇校验; 支持两种停止位:1 位或2 位停止位;u a r t 支持自动波特率检测。 u a r t 的默认检测波特率为9 6 0 0b s ;u a r t 的默认数据字格式为8 个b i t 数据, 无检验位,1 位停止位的格式。 1 4 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 3 - 3 2u a r t 的功能 u a r t 主要实现以下三个功能: ( 1 ) u a r t 波特率设置 u a r t 要正确地采样数据,就要使自己的采样频率和r s 2 3 2 设备的比特率一 致。因此要确定好u a r t 的采样频率。如果已知外设的波特率,主控制器需要配置 寄存器来获得合适的采样频率;如果外设的波特率未知,则主控制器需要设置 u a r t 工作在波特率自动检测模式下,通过检测获得合适的采样频率。当确定合适 的采样频率之后,u a r t 模块工作在正常的工作模式下,可进行数据收发。 ( 2 ) u a r t 接受数据 u a r t - r x 模块在采样时钟的控制下,接受从r s 一2 3 2 设备发送的串行数据,因 为u a r t 与r s 2 3 2 设备的通信格式和波特率都是匹配的,在计数器的控制下,将串 行数据转换成并行数据,并去掉r s 2 3 2 数据的附加位。u a r t r x 模块将无格式数 据发送至f i f o r x ,通过u a r t r e g 的发送寄存器存入外部f i f o 。 ( 3 ) u a r t 发送数据 外部f i f o 的数据通过u a r t r e g 的接收寄存器送入内部的f i f o t x ,数据在 采样时钟控制下,经过u a r t t x 模块,将并行无格式数据转化为串行r s 2 3 2 数据, 以与r s 2 3 2 设备波特率相同的速率发送给设备。 3 4b u f f e r u s b 转r s 一2 3 2 接口转换器中b u f f e r 模块集成了一个2 5 6 b 的r o m 和1 6 b 的 r a m ,主要用于s i e 的端点o 、1 的数据缓存,r o m 中存储了各种描述符供s i e 直接 读取。将r o m 集成到b u 脏r 中,s i e 直接读取描述符,而不必先向主控制器发出请 求,由主控制器读取r o m ,再将数据传输给s i e 。使得s i e 读取描述符的过程得到 很大程度上的简化,提高了速度,缓解了主控制器的压力。 描述符的内容是可以改变的,如果描述符有变化,主控制器提前将数据写入 r a m 中,设备控制寄存器,b u f f e r 控制器将根据不同的读模式,分别将r o m 、r a m 的数据按一定的顺序输送给s i e 。s i e 是分不出数据的来源的,这个过程需要由 b u f f e r 控制器按照主控制器的命令来执行。b u f f e r 的结构图如图3 6 所示。 基址 偏移量 第三章u s b 转r s 一2 3 2 接口转换器硬件 1 5 图3 6b u f f e r 控制器整体结构 在图3 6 中分别表明了r a m 和r o m 的地址、数据流向。s i e 的数据接口是一个 双向端口,输出用一个三态门。 w i s h b o n e 和s i e 接口各自的读写控制、地址、数据是物理独立的。应用中必须 保证w i s h b o n e 和s i e 的读写不同时发生。设置了一个8 位基址寄存器,实现基址+ 偏 移量读r o m ,还设置了一个8 位控制寄存器,实现对各种读写方式的控制选择,以 上两个寄存器都能被w i s h b o n e 总线读写。内部还设置了一个控制器,根据控制器 的设置,实现各种特殊读写操作。 3 5f i f 0 u s b 转r s 2 3 2 接口转换器电路主要实现两种不同接口之间的数据传输。f i f o 是s i e 和u a r t 之间的一个数据缓冲器,是实现批量数据传输的纽带。f i f o 即先进 先出的数据缓存器与普通存储器的区别是无外部读写地址线,优点是使用简单, 缺点是只能顺序写入读出数据,其数据地址由内部读写指针自动加1 完成,不能像 普通存储器那样由地址线决定读取或写入指定的地址。 3 5 1f i f o 整体结构 根据f i f o 模块需要实现的功能,可以将它划分为f i f o 状态识别模块、读写计 数器模块、地址产生模块和f i f o 存储模块供4 个子模块,如图3 7 所示。 1 6 基于w i n d o w sx p 下u s b 转r s 2 3 2 接口转换器驱动程序的开发 f i f o 状态 识别电路 1 n r 读写计数器 s 正u a r t 叫 f i f o b 。 t 丁 l ll j 地址产生电路 图3 7f i f o 模块整体结构图 读写计数器在s i e 或u a r t 的读写信号驱动下,自动做加1 、减1 运算,分别记 录f i f o 中现有的数据量。 f i f o 状态识别电路通过比较读写计数器的值来判断f i f o 是否满或空。 地址产生电路在s i e 或u a r t 的读写信号的驱动下,其作用效果相当于一个读 写指针,指向下一个将要读或写的单元。 f i f o 存储块是f i f o 模块的数据存储核心,其他子模块都是以它为中心并围绕 它而设计的。 f i f o 的主要参数包括:f i f o 的宽度、f i f o 的深度、满标志、空标志、读时钟、 写时钟、读指针、写指针。具体介绍如下: f i f o 的宽度:是f i f o 一次读写操作的数据位,f i f o 的宽度在单片成品i c 中是 固定的,也有可选择的,如果用f p g a 自己实现一个f i f o ,其数据位即宽度可以自 己定义。 f i f o 的深度:指的是f i f o 可以存储多少个n 位的数据。如一个8 位的f i f o ,若 深度为8 ,它可以存储8 个8 位的数据,深度为1 2 ,就可以存储1 2 个8 位的数据,f i f o 的深度可大可小。在f i f o 实际工作中,其数据的满空标志可以控制数据的继续写 入或读出。在具体的应用中也不可能由一些参数算数精确的所需f i f o 深度为多少, 在写速度大于读速度的理想状态下是可行的,但在实际中用到的f i f o 深度往往要 大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和f i f o 成本的情况 下估算一个大概的宽度和深度。对于写速度慢于读速度的应用,f i f o 的深度要根 据读出的数据结构和读出数据的由那些具体的要求来确定。 满标志:f i f o 已满或将要满时由f i f o 的状态电路送出的信号,以阻止f i f o 的 写操作继续向f i f o 中写数据造成溢出。 空标志:f i f o 已空或将要空时由f i f o 的状态电路送出的信号,以阻止f

温馨提示

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

最新文档

评论

0/150

提交评论