用单片机实现USB/PS2 MOUSE的设计

发布者:科技驿站最新更新时间:2011-12-31 关键字:单片机  USB  PS2  MOUSE 手机看文章 扫描二维码
随时随地手机看文章

    引言

    USB 低速设备的设计发展到现在已经有了相当的成熟度。 各家IC公司都推出了USB DEVICE端的解决方案, 一般以8 BIT CPU CORE + USB SIE为主流构架。 SH69P04是中颖电子(Sinowealth)本着丰富USB产品应用,降低USB IC成本而设计的4BIT OTP单片机, 用以开发USB DEVICE设备。

    SH69P04的功能及特点

  

                                         图1   

    如图1, SH69P04集成了USB SIE, 支持USB和PS2端口复用。 内建1.5K可控上拉电阻为用户节约成本, 并能建立和PC稳定的通讯。 专门为MOUSE设计的I/O端口。 双CLOCK系统使IC耗电更少, 轻易满足USB-IF对SUSPEND电流的要求。 8K×16 BIT的OTP ROM, 方便用户开发。 最大可支持40×8 的LCD显示或31个I/O, 满足用户的各种应用。 另外还内建Watch Dog, Low Power Detect功能。

  1. USB和PS2端口共用

  通过寄存器实现USB端口和PS2端口的切换

  

  PS2PU = 1: 如果PS2IS = 1, 则内部PS2专用上拉电阻起作用。当需要使用USB端口时, 只要让PS2IS = 0即能关闭PS2端口及其上拉电阻。

  

  2. 1.5KΩ可控上拉电阻

  如图2, 有了这个1.5KΩ可控上拉电阻一方面可以节约成本, 另一方面可以实现软开关, 确保PC认出DEVICE。

  当USB DEVICE和PC相连后由于内部1.5KΩ上拉电阻并未打开, 所以PC不认为有新的设备连接。 在打开上拉电阻前用户可以放心的完成程序初始化及其它客户程序, 而不必担心需要及时响应USB总线上的信号。 这是因为如果没有可控的上拉电阻而是直接外加, 那么当DEVICE和PC相连后, PC马上就会知道有新的设备连接, 在一定时间后就会向DEVICE发送信号, 如果DEVICE连续几次通讯失败的话, PC就认为该DEVICE出错而不会再和它通讯。

  另外结合Watch Dog可以进一步确保DEVICE的连接。 用户可以事先计算一下整个USB初始化过程所需的时间, 并设置Watch Dog。 万一USB初始化出错就可以产生Watch Dog Reset, 1.5KΩ上拉就被关闭, 程序重新开始。 PC就会认为DEVICE有了一次插拔动作。程序死锁也可以用这种方法来解决。

  

  3. 专为MOUSE设计的I/O端口

  如图3, 原理分析时Q1.1和Q1.3是输出方波。 实际上由于Photo Transistors是采用光敏三极管, 当光栅转动时, 光敏三极管受到的光线也是连续变化的, 所以输出的波形也是连续变化的。 又因为光栅无法完全阻隔光线, 所以会产生一个OFFSET电平。 实际波形如图4。

  

  图中VIH表示一旦输入电平高于VIH, 那么MCU就认为是高电平。 VIL表示一旦输入电平低于VIL, 那么MCU就认为是低电平。 在图4所示的这种状态下MCU可以很方便的读到光栅转动的情况。 但是由于干扰或者元器件老化等原因造成OFFSET电平发生变化, 使得输入信号的电平无法和VIH、VIL相交(如图5), MCU就会认为输入的信号一直为高或一直为低。

  

  SH69P04为每一个MOUSE的端口提供三档下拉电阻(如图4)来控制OFFSET电平。 通过寄存器来选择下拉电阻的阻值, 用以解决由于OFFSET电平的变化而引起的错误。

  软件设计

  USB协议虽然很复杂, 但是MOUSE端需要编写的程序却十分有限。 用户很容易就能和PC建立联系。(Windows端HID驱动程序由操作系统提供)

  1. USB/PS2端口的监测

  第一步: 上电, delay 50ms 第二步: 在2ms的时间内监测D-的电平, 如果有4次为高电平, 就是PS2接口。 否

则进入第三步第三步: 打开USB上拉电阻, delay500us, 反复监测D+和D-的电平, 直到其中有一个出现高电平。 如果D+是高电平, 则为PS2接口。 如果D-是低电平, 则进入第4步。第四步: 关闭USB上拉电阻, delay 100us。 如果D+/D-都为低电平, 则为USB接口。

  否则就是PS2接口。

  2. USB Enumeration过程

  整个过程有点像做测试题。 PC问, MOUSE回答。 其中关键是要告诉PC, 自身是一个MOUSE, 支持HID协议。 由于篇幅有限, 就不详细列出了。

  3. 把MOUSE的信息传给PC

  在Enumeration过程中, MOUSE会告诉PC后续X,Y,Z,按键这些信息的格式。 当MOUSE有动作时, 只要按这个格式把数据返回给PC就可以了。 剩下的事情PC端HID驱动程序会去完成。

关键字:单片机  USB  PS2  MOUSE 引用地址:用单片机实现USB/PS2 MOUSE的设计

上一篇:串行显示驱动器PS7219及单片机的SPI接口设计
下一篇:用ATMEL89单片机构建的水文缆道测验系统

推荐阅读最新更新时间:2024-03-16 12:50

基于STM32单片机发送字符串的函数
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str 需要发送的字符串 #include “stm32f10x.h” void Usart_SendString(USART_TypeDef* US
[单片机]
实时操作系统μC/OS-II在51单片机上的移植
μC/OS-II是一种公开源代码、结构小巧、具有可剥夺实时内核的嵌入式开发系统,代码简短、条理清晰、实时性及安全性能很高,绝大部分代码用C编写,现已被移植到多种处理器的构架中。随着51单片机片内资源的日益丰富,在51单片机上移植μC/OS-II已成为可能,植入系统后,由系统来管理软件与硬件资源,简化应用程序的设计,并且使应用系统功能更加完善。因此在51单片机上移植μC/OS-II具有十分重要的意义。 1 μC/OS实时操作系统概述 μC/OS-II实时操作系统是一种可移植、可固化、可裁剪即可剥夺型的多任务实时内核,适用于各种 微处理器 和微控制器。μC/OS-II主要包括任务调度、时间管理、内存管理、事件管理(信号量、邮箱
[单片机]
实时操作系统μC/OS-II在51<font color='red'>单片机</font>上的移植
PIC单片机 配置位如何写 (MPLAB X集成开发环境,XC编译器)
最近刚接触MPLABX集成开发环境,X16和X8编译器,和以前的PIC的开发环境有了很大的区别,这里就说一下新建工程的第一步,配置位的编写。 1:MPALB X IDE用户指南里面例子的配置位写法: 2:根据MPALB X IDE用户指南里面的描述,可以自动生成配置位的代码 3:根据MPALB X IDE用户指南,说明配置位的编写是和编译器相关的,因此我们看编译器的说明文档 4:根据X8编译器的说明文档,看编译器安装目录下的文档说明 5:下面就是编译器安装目录下的文档说明 16F877A Support Information #pragma config Usage #prag
[单片机]
PIC<font color='red'>单片机</font> 配置位如何写 (MPLAB X集成开发环境,XC编译器)
采用PIC16F877单片机的汽车电动助力转向系统
  1 引言   随着电子控制技术的发展及其在 汽车 领域的广泛应用, 电动助力转向系统 (Electric Power Steering, 简称EPS)越来越成为目前汽车电子技术研究的热点之一。与传统的转向系统相比,EPS系统结构简单,灵活性大,可以获得理想的操纵稳定性,能动态地适应汽车行驶状况的变化,在操纵舒适性、安全性、环保、节能、易于维修等方面也充分显示了其优越性 。目前, 电动助力转向已部分取代液压助力转向并获得广泛应用,如日本的大发、三菱、本田汽车公司,美国的Delphi汽车系统公司,德国的ZF公司等都相继研制出各自的EPS并装配使用。国内对EPS 系统的研究起步较晚,仅有清华、华中科大、吉林大学、合肥工大等高校开展
[单片机]
采用PIC16F877<font color='red'>单片机</font>的汽车电动助力转向系统
基于单片机的高性能直流稳压电源
0 引言 众所周知,许多科学实验都离不开电,并且在这些实验中经常会对通电时间、电压高低、电流大小以及动态指标有着特殊的要求,因此,如果实验电源不仅具有良好的输出质量而且还具有多功能以及一定的智能化,那么就省去了许多不精确的人为操作,取而代之的是精确的微机控制,而我们所要做的就是在实验开始前对一些参数进行预设。这将会给各个领域中的实验研究带来不同程度的便捷与高效。因此,直流电源今后的发展目标之一就是不仅要在性能上做到效率高、噪声低、高次谐波低、既节能又不干扰环境,还要在功能上力求实现数控化、多功能化与智能化。本文所介绍的就是一个将开关电源和线性电源有机地结合起来,兼具二者优点的高性能直流稳压电源。由于在该电源中引入了单片机控
[电源管理]
基于<font color='red'>单片机</font>的高性能直流稳压电源
基于89C51时钟电路的设计与制作
随着电子技术的飞速发展,单片机的使用率越来越高。教学之余,为了激发学生对51单片机的学习兴趣,我利用89C51制作了一款电子时钟,经验证这款电子时钟简单实用,以至于班上的每个同学都制作一款。由于51系列单片机机展小巧、程序编写简、功能强大、价格便宜等优点,由51单片机制作的小型智能产品越来越多,也是电子技术相关专业学生毕业设计的首选芯片(见图1)。 1 电路设计流程框图(见图2) 2 基于89C51时钟电路的方案及原理 基于89C51时钟电路主要由主要由微处理器电路、LED数码管显示电路、键盘电路、显示驱动电路、时钟模块、电源电路等组成。89C51的管脚及技术细节可以查阅有关手册。电路模块的基本工作过程是: (1)显示
[单片机]
基于89C51时钟电路的设计与制作
USB库STM32F0x2移植到STM32F070笔记
1. 前言 ST官方提供的USB库STM32F0x2_USB-FS-Device_LibV1.0.0 是基于标准库的,适用于STM32F0x2系列MCU,但是对于STM32F070来说,就需要稍作修改,本文就一直到STM32F070作一个笔记。 2. 移植 从STM中文官网上下载STM32F0x2 USB库,地址:http://www.stmcu.org/document/detail/index/id-214961。用MDK打开,首先在Manager Project Items下的Project Targets下新增一项 “STM32F070”: 然后切换到”STM32F070”这个Target: 。此后对所有工程
[单片机]
<font color='red'>USB</font>库STM32F0x2移植到STM32F070笔记
RTOS实现双核MCU消息通信
手机、电脑多核的CPU你可能经常看见,但多核的单片机相对来说就不那么常见了。随着需求的增加、技术的进步,单片机已不再局限于单核了,因此,近几年陆续出现了双核的单片机了。 你可能会好奇,双核单片机之间怎么通信?其实,通信的方式和方法有很多种。本文就给大家描述一下:使用FreeRTOS消息缓冲区,实现简单的非对称多处理(AMP)核心到核心通信,结合STM32H7(M4和M7) 双核处理器为例。 分享正文之前推荐一个嵌入式招聘信息的平台: 概述 实现STM32H7双核之间通信是FreeRTOS官方提供的一个方案,是基于FreeRTOS消息缓冲区,该消息缓冲区是无锁循环缓冲区,可以将大小不同的数据包从单个发送方传递到单个接收方。
[单片机]
RTOS实现双核<font color='red'>MCU</font>消息通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved