(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf_第1页
(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf_第2页
(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf_第3页
(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf_第4页
(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf_第5页
已阅读5页,还剩84页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于8bitmcu的两种接口电路设计.pdf.pdf 免费下载

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

文档简介

南开大学学位论文版权使用授拶删 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:琵唏 2 0 d g 年箩月t t 日 经指导教师同意,本学位论文属于保密,在乡年解密后适用 本授权书。 指导教师签名: 高菇违 学位论文作者签名: 孑么琦 解密时间: 汐i 年 岁月 f7 日 各密级的最长保密年限及书写格式规定如下: 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:弓么畸 冽孑年5 月f 7 日 摘要 摘要 随着电子技术的不断发展,计算机外部设备也在不断发展。如何将这些产 品与电子计算机相连接,进行快速准确的数据交换,成为设计计算机外设接口 需要考虑的问题。 u s b 低速产品和p s 2 产品可以采用纯硬件实现的方法,然而通过软件和硬件 相结合的方法则具有更大的灵活性。即将p s 2 接口和u s b i 1 接口集成于8 b i tm c u 核作为一个通用i p 核,通过软件来实现u s b p s 2 设备的功能。 本论文首先详细分析了p s 2 和u s b i 1 接口协议,使用v e r il o g 硬件描述语 言设计了p s 2 接口和u s b i 1 接口电路,并实现了这两种接口电路与8 b i tm c u 总 线进行通信的电路。 然后,文中以u s b p s 2 鼠标为例,使用c 语言完成了在8 b i t m c u 中内嵌固件程 序的设计,设计了p s 2 和u s b 鼠标的主机方模型,通过模拟主机方与设备方的 通信过程,很好的验证了两种接口以及整个系统的功能,实现u s b 低速设备或 p s 2 设备。 最后,对整个电路进行了仿真和综合。仿真阶段,使用s y n o p s y s 公司的 n c - v e r i l o g 仿真工具对各个子模块进行功能仿真,并进行了整个电路的功能仿 真,仿真结果达到了要求。综合阶段,使用s y n o p s y s 公司的综合工具d e s i g n c o m p i l e r 对电路进行了逻辑综合,综合采用了中芯国际0 3 5 u m c m o s 工艺库,采 用自顶向下的综合方法,综合后,从时序报告中可以看出设计满足时序要求, 整个系统为1 7 8 2 4 门。 关键词:p s 2 接口通用串行总线低速控制器m c u a b s t r a c t a b s t r a c t a tp r e s e n tt h e e l e c t r o n i ct e c h n o l o g yi s d e v e l o p i n gr a p i d l y , w h i c hb o o s t st h e u p d a t i n go fv a r i o u sc o m p u t e rp e r i p h e r a ld e v i c e s t h e r e f o r e ,i ti s ac o n s i d e r a b l e p r o b l e mt h a tc o n n e c t i n gt h e s ep r o d u c t st op ca n dl e t t i n gt h e mt r a n s m i td a t af a s ta n d e x a c t l y 1 1 1 eu s bl o ws p e e dp r o d u c ta n dp s 2p r o d u c tc a l lb er e a l i z e di nt r a d i t i o n a lp u r e h a r d w a r em e t h o d ,a l t h o u g hi ti sm o r ea g i l i t yt or e a l i z ei tb ye m b e d d i n gf i r m w a r ei n m c ut oc o m p l e t et h ec o n t r o lf u n c t i o na n di n t e g r a t e du s b1 1a n dp s 2i n t e r f a c eo n t h em c ut ot r a n s m i td a t a t 1 :1 i st h e s i sf i r s te l a b o r a t e st h ep r o t o c o lo fp s 2i n t e r f a c ea n du s bi n t e r f a c e ,t h e n d e s i g n st h et w oi n t e r f a c e sb yv e r i l o gh d la n dr e a l i z e st h ec i r c u i tt h a tt h et w o i n t e r f a c e sc o n n e c tt o8b i tm c u s e c o n d ,t h et h e s i st a k e su s b p s 2m o u s ea sa ne x a m p l e ,d e s i g n saf i r m w a r e e m b e d d e di n t o8 b i tm c u b ycl a n g r a g e a f t e rt h a t ,i td e s i g n st h eh o s tm o d e lo fp s 2 m o u s ea n du s bm o u s e ,b yw h i c hv e r i f i e st h ef u n c t i o no ft h et w oi n t e r f a c e sa n dt h e w h o l es y s t e m f i n a l l y , i ts i m u l a t e sa n ds y n t h e s i z e st h ew h o l ec i r c u i t i nt h es i m u l a t i o np h a s e ,i t s i m u l a t e se a c hs u bm o d u l ea n dt h ew h o l em o d u l eb yn c _ v e r i l o go fs y n o p s y sc o l t d t h er e s u l to fs i m u l a t i o nm e e t st h er e q u i r e m e n t i nt h es y n t h e s i sp h a s e ,i t s y n t h e s i z e st h ew h o l ec i r c u i tb yd e s i g nc o m p i l e ro fs y n o p s y sc o l t d a n do 。35 u r n c m o sp r o c e s sl i b r a r yo fs m i c ,t h er e s u l to fw h i c hi sa l s om e e tt h e t i m i n g r e q u i r e m e n t k e yw o r d s :p s 2i n t e r f a c e u s bl o ws p e e dc o n t r o l l e rm c u i i 目录 目录 第一章引言1 第一节p s 2 接口与u s b 接口的简介1 1 1 1 计算机外设接口的发展1 1 1 2p s 2 接口简介2 1 1 3u s b 接口简介2 第二节p s 2 和u s b 设备的结构及本论文研究的工作3 第三节本论文的组织结构5 第二章接口协议介绍6 第一节p s 2 接口协议6 2 1 1p s 2 接口数据通讯协议引6 2 1 2p s 2 设备通信协议h 1 9 第二节u s b i 1 接口协议瞄1 1 4 2 2 1u s b 协议总揽1 4 2 2 2u s b 通信模型1 5 2 2 3u s b 接口层设计1 6 2 2 4u s b 设备层1 7 2 2 5u s b 功能层2 2 第三章p s 2 接口设计2 4 第一节顶层模块设计2 5 第二节子模块的设计2 7 3 2 1c l k d i v 模块的设计2 7 3 2 2s t a t e c h e c k 模块的设计2 7 3 2 3s e n d b y t e 模块的设计3 0 3 2 4r e c b y t e 模块的设计3 2 3 2 5p s 2 _ m c u _ b i 模块设计3 3 第四章u s b l 1 接口设计3 8 第一节顶层模块设计3 8 i i i 目录 第二节u s b 物理层设计3 9 4 2 1u s b _ p h y 模块3 9 4 2 2 子模块介绍4 l 第三节u s l 3 协议层设计4 4 4 3 1u s b _ p l 模块4 4 4 3 2 子模块介绍4 6 第四节u s b 应用层设计5 2 第五章固件的设计与接口电路的验证、综合5 9 第一节固件的设计1 5 1 n 6 3 17 1 5 9 5 1 1 固件的功能5 9 5 1 2 固件的流程图说明6 0 5 1 3 固件的函数说明6 4 第二节接口电路的验证6 7 5 2 1 系统p s 2 接口的仿真验证6 7 5 2 2 系统u s b 接1 :3 的仿真验证n 8 m 0 1 7 0 第三节接口电路的综合7 2 5 3 1 综合流程简介7 2 5 3 2 综合结果7 4 第六章结论7 6 参考文献7 7 致谢7 8 个人简历7 9 i v 第一章引言 第一章引言 第一节p s 2 接口与u s b 接口的简介 1 1 1 计算机外设接口的发展 随着电子技术的不断发展,各种计算机外部设备产品也在不断发展。如何将 这些产品与电子计算机相连接,进行快速准确的数据传输,便成了设计计算机 外设接口需要考虑的问题。 通常,新接口并不会经常出现,因为人们已经习惯于旧有的接口,对于新接 口往往不会立即全盘接受。如果新接口是建立在旧接口的基础上,则不仅可节 约开发时间和成本,而且用户比较容易接受。 在i b mp c 最早的设计中,就是使用已经存在了2 0 年的并行接口( c e n t r o n i c s p a r a l l e lp o r t ) 及r s - - 2 3 2 串行接口( s e r i a lp o r t ) 。这不仅加速了原始p c 设计的 流程,并且允许将已经在市场上出现的打印机和调制解调器立即用于p c 上。 不过随着计算机外部设备的发展,并行接口和r s - - 2 3 2 串行接口己逐步成为 了通信的瓶颈,并且越来越严重,为了解决旧有接口中存在的问题,i b m 开发 出了p s 2 接口,主要用于鼠标、键盘等计算机外设类产品。 过去,一个新接口的开发通常都是单一公司的努力。例如h p ( h e w l e t t p a c k a r d ) 开发的h p i b ( h pi n t e r f a c eb u s ,h p 接口总线) ,用来连接实验室的仪 器。现在打印机所使用的并行接口,则由c e n t r o n i c s 数据计算机公司( c e n t r o n i c s d a t ac o m p u t e rc o r p o r a t i o n ) 开发,因此仍然称作c c n t r o n i c s 接口。 现在开发的接口,则通常使用一群有共同利益的公司或组织联合开发的。例 如i e e e ( i n s t i t u t eo fe l e c t r i c a la n de l e c t r o n i c se n g i n e e r s ,电气和电子工程师学会) 组织和t i a ( t e l e c o m m u n i c a t i o ni n d u s t r ya s s o c i a t i o n ,电信工业协会) 组织就开 发并公布了许多规范a 许多旧有制造业标准,都已经被这些组织所指定的新标准所取代。例如 c c n t r o n i c s 接口被i e e e 一1 2 8 4 标准取代,而h p i b 则是i e e e - - 4 8 8 的基础。 这些组织除了更改旧有规范外,也指定新的规范。u s b 就是由c o m p a q , h e w l e t t - - p a c k a r d ,i n t e l ,l u c e n t ,m i c r o s o f t ,n e c 及p h i l i p s 这7 家公司共同制 定的标准。 第一章引言 1 1 2p s 2 接口简介 p s 2 接口是在上世纪八十年代由i b m 公司首先开发的,起初主要应用在它的 p s 2 计算机上的鼠标、键盘或并行端口的接口。后来市场上p c 的主板上通常都 留有两个p s 2 接口,分别接p s 2 鼠标和p s 2 键盘。 p s 2 接口常用来取代原先的r s - - 2 3 2 串行接口,其鼠标和键盘逐渐成为了市 场上的主流产品。这几年出现了通用串行总线( u s b ) ,随之使用u s b 接口的各 种产品所占的市场份额越来越多。但一般来说,p c 机上大多配置p s 2 鼠标和键 盘,笔记本上大多配置u s b 鼠标。 p s 2 接口是一种同步串行接口,有一条数据线和一条时钟线,同时还有+ 5 v 及接地线。设备方提供时钟来做双向通信。设备方传送鼠标的数据和接收主机 命令用时钟的上升沿同步。数据的格式使用1 1 位:1 个为0 的开始位、8 个数据 位、1 个奇偶校验位、以及1 个为1 的结束位。主机是在开机时向设备发送一系 列初始化命令来识别设备的。 1 1 3u s b 接口简介 u s b 规范的前身是a c c e s s b u s 规范,有p h i l i p s 与数字设备公司( d i 百t m e q u i p m e n tc o r p o r a t i o n ) 所指定并成为公开的标准。a c c e s s b u s 的设计是让键 盘、指示设备以及其他设备在每秒1 0 0 k b i t 的速度下工作。a c c e s s b u s 可以支 持1 2 5 个设备,以及1 0 米长的电缆。这些设备是插入式的,电缆则包括+ 5 v 电 源线和接地线。 1 9 9 4 年1 1 月,i n t e l 公司提出了u s b 接口的概念,并获得了n e c ,i b m , m i c r o s o f t , c o m p a g 等各大厂商的支持。1 9 9 5 年成立的u s b 开发者论坛 ( u s bi m p l e m e n t e r sf o r u m ) 主导了各种u s b 外围设备的开发,并制定了u s b 相关的协议。 1 9 9 6 年1 月,u s b l 0 版本发表。随后u s b l 1 修订了1 0 版本的问题,并且 增加了一个新的传输类型( 中断传输) 。u s b 2 0 于2 0 0 0 年4 月发表,新增了高 速模式。 本文设计的u s b 接口按照u s b l 1 协议设计,使用低速( 1 5 m b i t s ) 通信模 式和计算机连接。该接口的低速应用主要是u s b 鼠标、u s b 游戏手柄、u s b 无 线鼠标或键盘的接收方、以及其它一些低速u s b 设备。 u s b 接口具有自动检测的功能,外围设备接入计算机不需要关闭计算机电 2 、 第一章引言 源,适合作为系统和计算机进行数据通信的媒介。u s b 是一个高速的串行接口, 可由不同的计算机外设共享。计算机是u s b 总线的主控者,负责对各个外围设 备发出各种命令。u s b 是以令牌包为主的通信模式,主机发送令牌包,符合其 设备地址的设备就会做出相应的操作。 第二节p s 2 和i j s b 设备的结构及本论文研究的工作 如前所述,p s 2 接口和u s b 接口是当前低速设备中使用比较广泛的两种接 口。为了更方便更灵活的使用两种接口,诸如鼠标、键盘、游戏手柄等产品中 往往会将两种接口集成在同一个芯片里,使之具有u s b 和p s 2 双重接口的功能, 生产商可以根据实际需要,决定具体使用哪个接口。这两个接口通过一个 u s b p s 2 复合接口连接到主机上。u s b p s 2 复合接口的结构如图1 1 所示。 这种复合接口的原理是将p s 2 接口的数据输入和输出端口分别与 p s 2 d a t a i 、p s 2 d a t a o r 连接,时钟输入和输出端口分别与p s 2 c l k i 、 p s 2 c l k o r 连接,+ 5 v 和接地线分别与v d d 和g n d 连接;再将u s b 的d + 和d 一分别与u s b d + 、u s b d 一连接,+ 3 3 v 和接地线分别与v 3 3 v 和g n d 连接。当设置p s 2r p e n 信号为1 ,u s br p e n 为o 时,v d d 为下面的集电极 开路结构供电,此时p s 2 接口开始正常工作;反之,当p s 2r p e n 信号为o , u s br p e n 信号为1 时,v 3 3 v 为电路供电,此时集电极开路结构不工作,u s b 接口开始正常工作。 u s b d u s b d + p s 2 d a t a 工 p s 2 c l k 工 p s 2 d a t a o r p s 2 c l k o r :_ 图1 1u s b p s 2 符合接口结构图 由于这种设计结构具有非常好的灵活性,尽管成本略有增加,还是得到了广 3 第一章引言 泛的认可。 另外,当前大多数的u s b p s 2 产品都是全硬件的专用集成电路芯片,即整个 产品从物理层到应用层的所有模块都通过硬件实现。结构如图1 2 所示。 图1 2 全硬件实现的u s b p s 2 产品的结构 这种结构实现起来成本比较低廉,然后,灵活性却受到了很大的限制,由于 模块的功能在流片前就已经确定了,因此后期如果想要在功能上进行改进就会 比较困难。 针对这样的情况,便出现了一种软件和硬件相结合的解决方案,即将接口模 块集成到m c u 上,而把应用层的模块用嵌入到m c u 的固件来代替,结构如图 1 3 所示。这种方法由于引入了m c u ,大大提高了电路的灵活性。如果需要在 功能上进行改进,只需修改固件程序。 图1 3 软硬件结合的u s b p s 2 产品的结构 4 第六章是结论部分,对两种接口电路的设计做一个总结。 5 第二章接口协议介绍 第二章接口协议介绍 第一节p s 2 接口协议 p s 2 ( p e r s o n a ls y s t e r n 2 ) 接口协议是i b m 公司在2 0 世纪8 0 年代末提出的一项 接口标准。它为计算机外设提供了一种新的接口。今天,绝大多数个人电脑的 鼠标和键盘都采用p s 2 接口。 尽管p s 2 接口已经成为一种被广泛采用的标准接口,但是其协议原本却始终 没有被公开。因此,相关的介绍文档并不多。仅有的一些也都是根据作者的实 际经验总结而成。但是这些经验已经被证明是正确的,本论文的p s 2 鼠标接口 控制器就是根据这些经验文档设计完成的。 p s 2 接口协议可以分为两大部分。一部分为通用的p s 2 接口数据通讯协议。 另一部分为针对某一具体设备( 键盘或鼠标) 的接口协议,由于本论文通过模 拟鼠标来验证接口的功能的正确性,因而下面就分别介绍通用p s 2 接口协议和 p s 2 鼠标协议。 2 1 1p s 2 接口数据通讯协议哺1 2 1 1 1 概述 p s 2 接口共有两种:5 - p i nd i n 和6 - p i nm i n i d i n 。其管脚的具体分布如图 2 1 所示。目前主板上的p s 2 接口基本上都是6 - p i nm i n i d i n 。 s - p i nd i n 辫i - c l o c k i m p l e m e n t e d 2 d a t a 、il , 3 州o t:、一, l h d ef e m a l e 4 - o r o u n d m a l ef e m a l e 5 + 5 v 图2 1p s 2 接口管脚分布 6 _ p i ni i n i d i n 1 d a t a 2 硼o ti m p l e m e n t 3 - 1 汪o u n d t 一+ s v s c l o c k 6 1 i o tl a p l e n e n t e d p s 2 接口共有四根信号线:g n d 、v c c = 5 v 、d a t a ,c l o c k 。其中电源由 主机( h o s t ) 提供。在主机方d a t al i n e 和c l o c kl i n e 都采用图2 2 所示的结 构。设备方则采用相同的结构或者漏极开路的结构。 6 第二章接口协议介绍 d 山 c h 味 图2 2 主机方数据线的电路结构 p s 2 接口数据通讯协议属于半双工同步串行通讯协议。就是说,数据是靠时 钟沿同步一位一位发送的。数据既可以由主机发往设备,也可以由设备发往主 机。但是主机对通讯具有优先控制权。 主机在接收数据时,在时钟的下降沿读取数据;设备在接收数据时,在时钟 的上升沿读取数据。不管数据的通讯是由设备到主机还是由主机到设备,时钟 始终由设备产生。 一般来说,p s 2 接口时钟频率不能超过5 0 k h z ,最好是在1 5 k h z 左右。 2 1 1 2 设备向主机发送数据 设备向主机发送数据时采用的是1 1 位的串行通讯协议。即 1s t a r tb i t a l w a y s0 8d a t ab i t s ,l e a s ts i g n i f i c a n tb i tf i r s t 1p a r i t yb i t ( o d dp a r i t y ) ( 只校验8 位d a t ab i t s ) ls t o p b i t a l w a y s1 设备在向主机发送每一个字节前都必须检查c l o c kl i n e 和d a t al i n e 的状 态,只有在二者均为高电平时,才能向主机发送数据;在发送每一位之前也必 须检查c l o c kl i n e 的状态,只有当其为高电平时才能发送。设备必须保证在 c l o c k 的下降沿到来之前将要发送的数据稳定输出到d a t al i n e 上。 图2 3 就是p s 2 设备向主机发送一个字节的实例。设备方首先检查到d a t a l i n e 和c l o c kl i n e 均为高电平,认为可以发送数据,于是产生时钟发送数据。 本例中发送的数据是3 8 h ,奇偶校验位是0 。请注意在发送完停止位后,c l o c k 7 第二章接口协议介绍 l i n e 被拉低了一段时间。这是主机方主动作用的结果。主机方每接到一个字节 就会把c l o c kl i n e 拉低一段时间,禁止一切数据通信,以便利用这段时间进行 数据处理。 图2 3设备向主机发送数据实例 2 1 1 3 主机向设备发送数据 设备在接收数据时采用的是1 2 位的通信协议。即: 1s t a r tb i t a l w a y s0 8d a t ab i t s ,l e a s ts i g n i f i c a n tb i tf i r s t 1p a r i t yb i t ( o d dp a r i t y )( 只校验8 位d a t ab i t s ) ls t o p b i t a l w a y s1 1a c k n o w l e d g e a l w a y s0 ( 由设备产生) p s 2 协议规定,主机在发送数据之前必须把c l o c kl i n e 拉低至少1 0 0u s ( 禁 止任何通信) ,再把d a t a l i n e 拉低( 相当于起始位o ) ,然后释放c l o c kl i n e , 等待设备方产生时钟,自己发送数据( 不包括起始位o ) 。设备方在接收数据时 靠c l o c k 的上升沿同步,即设备在c l o c kl i n e 的每个上升沿从d a t al i n e 上 读取数据。图2 4 是p s 2 设备接收数据的示意图。 图2 4 中上半部分是主机方对c l o c kl i n e 和d a t a l i n e 进行的操作,下半 部分是设备方对c l o c kl i n e 和d a t al i n e 进行的操作。从图中可以看出,主机 先把c l o c kl i n e 拉低了一段时间,然后把d a t al i n e 拉低,跟着释放c l o c k l i n e ( 相当于发出了起始位0 ) 。设备方探测到c l o c kl i n e 为高电平、d a t a l i n e 为低电平的状态,认为主机将要发送数据,于是产生时钟,读取1 0 位数据( 8d a t a b i t s + 1p a r i t y b i t + 1s t o pb i t ) 。设备方在收到停止位后需要发出1 位a c k n o w l e d g e b i t ( a l w a y so ) 。在发送该位时设备方必须在时钟的下降沿以前将d a t al i n e 置 零,这样主机在读取该位时靠下降沿同步才不会出错。另外,p s 2 协议还对某些 8 第二章接口协议介绍 状态的持续时间做了规定,比如( a ) 状态持续时间最长不能超过1 5 m s ,c o ) 状 态持续时间最长不能超过2 m s 。这两条件只要有一个得不到满足,主机方都会报 错。 窃而i 吁一 呈磊f _ 、; ) x ( ) 丌一 - 一一- 一一- 一- 一一- 一j - 一一一一一一一一一一一一一- - 一- 一- 一一j 一一- - - 一一- 燮瓦元f 几nr 几r n 几r 几n 厂一 岂d a t au lll薹l薹薹l薹耋l - - 卜 卜_ 卜卜ox 爵舌舌苫苫舌舌舌苫盂云譬 图2 4p s 2 设备接收数据示意图 注意:在空闲状态,c l o c kl i n e 和d a t al i n e 都应该是高电平。这就要求 无论是主机还是设备在发送完一次数据后,都应该释放c l o c kl i n e 和d a t a l i n e ,使它们处在高电平。只有这样才能维持正常的数据通信。 2 1 2p s 2 设备通信协议m 1 针对鼠标的p s 2 接口设备协议主要包括一个命令集和鼠标动作数据包的格 式。 2 1 2 1 基本概念 , 在介绍具体命令以前,先介绍三个与鼠标相关的重要概念。 ( 1 ) 分辨率( r e s o l u t i o n ) 分辨率是指鼠标在x 方向或y 方向上每移动l m m ,位移计数器增加的个数。 默认值是4 c o u n t s r a m 。主机可以通过命令0 x e 8 设置鼠标的分辨率。主机发送给 鼠标的分辨率设置值共有4 种:o x 0 0 表示1 c o u n t s m m ,0 x 0 1 表示2 c o u n t s r a m , o x 0 2 表示4 e o u n t s m m ,o x 0 3 表示8e o u n t s m m 。 ( 2 ) 缩放比例( s c a l i n g ) 主机可以对鼠标的缩放比例进行设置,共有两种缩放比例:s c a l i n g = l :1 和 s c a l i n g = 2 :1 。缩放比例对鼠标位移计数器的值并不产生任何影响,但是对打包后 的位移数值会产生影响。具体来说:当s c a l i n g = 1 :1 时,打包后的位移数值与位 移计数器中的数值相等;当s c a l i n g = 2 :1 时,打包后的位移数值按照图2 5 的算法 由位移计数器中的值推算得出。s c a l i n g 的默认值是1 :1 。 9 第二章接口协议介绍 图2 5 位移量修正算法 ( 3 ) 采样率( s a m p l er a t e ) 采样率是指每秒钟鼠标芯片采集鼠标动作信息的次数,也就是每秒钟鼠标向 主机发送数据包的次数。在鼠标初始化的时候,主机会对鼠标的采样率进行设 置,一般来说采样率可能值包括:1 02 04 06 08 01 0 02 0 0 s a m p l e s s e c 。默认值是 1 0 0 。根据实践经验,虽然主机在初始化时对鼠标芯片的采样率进行设置,但是 在数据通讯过程中鼠标发送数据包的频率并不受采样率的限制。例如:主机在 初始化时设置鼠标的采样率为6 0 s a m p l e s s e c ,初始化完成后,鼠标以1 0 0 次s e e 的频率向主机发送数据包,并不会产生任何错误。 ( 4 ) p s 2 鼠标d 按照鼠标的功能可以将p s 2 鼠标分为三种:标准p s 2 鼠标、3 d 3 b 鼠标和3 d 5 b 鼠标。每一种鼠标都拥有一个i d 号,以供主机识别。标准p s 2 鼠标的i d 号是 0 x 0 0 ,3 d 3 b 鼠标的i d 号是0 x 0 3 ,3 d 5 b 鼠标的i d 号是0 x 0 4 。 2 1 2 2 命令集 主机对p s 2 鼠标的控制是通过一系列命令来实现的。这些命令加起来共有 十六条,但是作者经过研究发现,只有十条命令比较常用。一般来说如果一个 鼠标芯片可以正确完成对这1 0 条命令的应答,就可以实际应用了。 ( 1 ) 0 x f f ( r e s e t ) p s 2 鼠标在收到这条命令后首先要向主机回复0 x f a ,表示成功的接收到了 这条命令。然后,p s 2 鼠标芯片要进行自检,同时设置一些默认值: s a m p l er a t e = 1 0 0s a m p l e s s e c , r e s o l u t i o n = 4 c o u n t s m m , s c a l i n g = l :1 , 禁止鼠标向主机发送数据。 自检通过以后鼠标要依次向主机发送0 x a a 和0 x 0 0 。0 x a a 表示自检通过, 1 0 第二章接口协议介绍 0 x 0 0 是标准p s 2 鼠标的i d 号。 ( 2 ) 0 x f 6 ( s e t sd e f a u l t s ) p s 2 鼠标在收到这条命令后首先要向主机回复0 x f a , 这条命令。然后自动载入默认设置: s a m p l er a t e = 10 0s a m p l e s s e c , r e s o l u t i o n = 4 c o u n t s r a m , s c a l i n g = l :1 , 禁止鼠标向主机发送数据。 ( 3 ) 0 x f 5 ( d i s a b l ed a t ar e p o r t i n g ) p s 2 鼠标在收到这条命令后首先要向主机回复0 x f a , 这条命令。然后禁止鼠标向主机发送数据。 ( 4 ) 0 x f 4 ( e n a b l ed a t ar e p o r t ) 表示成功的接收到了 表示成功的接收到了 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a ,然后就可以进入向主机 发送动作信息的状态。一般来说,初始化过程中的做后一条令都是0 x f 4 。 ( 5 ) 0 x f 3 ( s e ts a m p l er a t e ) 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a ,然后再从主机那里读取 一个字节,这个字节就是主机发出的采样率的值。在成功读取了采样率字节以 后,p s 2 鼠标还需向主机回复0 x f a 。 ( 6 ) o x f 2 ( g e td e v i c ei d ) 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a ,紧接着向主机发送自己 的d 号( o x 0 0 ,0 x 0 3 ,0 x 0 4 三者之一) 。在发送d 号的时候还有一些细节需要注 意,下文中将会提到。 ( 7 ) 0 x e 9 ( s t a t u sr e q u e s t ) 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a ,然后发出一个三字节的 状态数据包。状态数据包的具体格式如图2 6 所示。 b 赶7b 吐6b 虹5b 2 4b 赶3b i l 2b 矗ib i t 0 吣1 区亟砸亚逝歪夏区菱巫歪逦运匿匦 b 咖2 ! ! ! ! 些! ! b 协3s a m p i e r 斑e 图2 6s t a t u s 数据包格式 第二章接口协议介绍 如果有按键被按下,则对应的按键位被置一,否则清零; 如果缩放比例为1 :1 ,则s c a l i n g = o ,缩放比例为2 :1 ,则s a c l i n g = l ; 如果鼠标处在禁止向主机发送数据的状态,则e n a b l e = o ,否则e n a b l e = 1 ; 如果鼠标处在r e m o tm o d e ,则m o d e = l ,处在s t r e a mm o d e ,m o d e = 0 ; 至于r e s o l u t i o n 和s a m p l er a t e 就是当前分辨率和采样值。 典型的状态数据包内容为:b y t e l = 0 x 0 0 ,b y t e 2 = 0 x 0 0 ,b y t e 3 = 0 x 6 4 。 ( 8 ) 0 x e 8 ( s e tr e s o l u t i o n ) 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a ,然后从主机读取一个字 节( 分辨率字节) ,再向主机回复0 x f a 。分辨率字节的值和其对应的分辨率如图 2 7 所示。 l b y t er e a d f r o m h o 盘 r e s o l u t i o n ; l 0 x 0 0 le o u n t h r 雌; l 0 x 0 12c o u n t r a m 9 0 x 0 24c o u n t 柚n l o x 0 38e o a h t l m m 图2 7 分辨率设置 ( 9 ) 0 x e 7 ( s e ts c a l i n g2 :1 ) 接到该命令后,p s 2 鼠标首先要向主机回复0 x f a , 设为2 :1 。 ( 1 0 ) 0 x e 6 ( s e ts c a l i n g1 :1 ) 接到该命令后,p s 2 鼠标首先要向主机回复o x f a , 设为1 :l 。 然后把自己的缩放比例 然后把自己的缩放比例 2 1 2 3 鼠标动作数据包的格式 p s 2 鼠标可以分为标准p s 2 鼠标、3 d 3 b 鼠标和3 d 5 b 鼠标。每一种鼠标都 有自己特定的数据包格式。 ( 1 ) 标准p s 2 鼠标的数据包格式 b i l 7 b i t 6 b i i 5b n 4b i l 3b i t 2b i t lb i l 0 r v t 1 a y t e 3 y m e v er n e n t 图2 8标准p s 2 鼠标的数据包格式 ( 2 ) 3 d 3 bp s 2 鼠标的数据包格式 1 2 第二章接口协议介绍 b i t 7b i t 6b 丑5b 1 4b i t 3b i t 2b i t lb 主10 呐,匾五巫递亟亟趟递五丕蔓玉运萄画画 b y t e2 x m o v e m e n t a v t e3 :y m o v e m e n t b y t e 4 z m o v a m e n t 图2 93 d 3 bp s 2 鼠标数据包格式 ( 3 ) 3 d 5 bp s 2 鼠标的数据包格式 b 迁7b i t 6b i t 5b i t 4b i t 3b i l 2b i i lb i l 0 日_ i t e1p ,t ,_ r _ i yo v e t l o 吣0 v e r l o v d 舯b l s g n 眦一旧捧1 i d d l eb t nr 峥眦b t n e nb t n l 日把2 【一,h o 垤m 酬l 呐。 二二二二二二五五蕊二二二二二 日t e4l 苎! 竺! ! ! :皂岫! l 塾盥l 熊盥i 翌翌i 量! | 罂i 图2 1 03 d 5 bp s 2 鼠标的数据包格式 这三种数据包的基本格式是相同的,即:某个按键位被置1 ,表示对应的键 被按下;被清零表示对应的键被抬起。x 方向和y 方向的位移数均用9 位表示 ( 1 位符号位,8 个数据位。) ,其数值范围是2 5 5 2 5 5 ,相当于用反码表示。z 方向则不同,无论是图2 9 所示的8 位表示还是图2 1 0 所示的4 位表示,其位 移数目均用补码表示,且范围只能是8 7 。x 方向为正表示鼠标向右移动;y 方 向为正表示鼠标向右移动;z 方向为正表示滚轮向下滚动( 相当于p a g ed o w n ) 。 2 1 2 4 主机如何获取鼠标的类型 前面已经提过,p s 2 鼠标共分三种。那么主机是如何知道所连接的鼠标到底 是哪一种呢? 主机是靠鼠标d 来识别鼠标类型的。但是鼠标如何发送自己的i d 才能让主机正确识别还是颇有些学问的。 在上电复位后,不管是哪类鼠标都要发送i d0 x 0 0 ,通知主机有p s 2 鼠标连 接到了主机上。 此后,如果主机支持3 d 5 b 鼠标,那么主机会连续发出下面一系列命令: s e ts a m p l er a t e2 0 0 s e ts a m p l er a t e2 0 0 s e ts a m p l er a t e8 0 如果主机支持3 d 3 b 鼠标,主机会发出下面一系列命令: s e ts a m p l er a t e2 0 0 s e ts a m p l er a t e1 0 0 13 第二章接口协议介绍 s e ts a m p l er a t e8 0 发完这些命令后,主机会发出“g e td e v i c ei d 命令( 0 ) 【f 2 ) ,然后等待鼠标 的回答。如果鼠标回复0 x 0 3 ,则主机认为是3 d 3 b 鼠标;如果鼠标回复0 x 0 4 , 则主机认为是3 d 5 b 鼠标。 请注意,p s 2 设备与主机之间的通讯是由设备首先发起的,p s 2 设备应在上 电以后3 0 0 - 5 0 0 m s 之间发出自检成功的标志。而u s b 设备与主机之间的通讯是 由主机发起的。这一点对于上电复位以后判别接口类型非常重要。附录一是作 者实测的一只3 d 3 b 鼠标在w i n 2 0 0 0 系统下的初始化过程。 第二节u s b l 1 接口协

温馨提示

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

评论

0/150

提交评论