0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SH69P04单片机实现USB和PS2端口的MOUSE设计

电子设计 来源: E代电子 作者:佚名 2020-06-15 07:58 次阅读

引言:

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

SH69P04的功能及特点

基于SH69P04单片机实现USB和PS2端口的MOUSE设计

图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

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驱动程序会去完成。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632695
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4411

    浏览量

    167041
  • usb
    usb
    +关注

    关注

    60

    文章

    7888

    浏览量

    263929
收藏 人收藏

    评论

    相关推荐

    如何用SH69P04单片机实现USBPS2端口MOUSE设计

    基于SH69P04单片机实现USBPS2端口MOUSE
    发表于 01-27 07:27

    用4BIT OTP单片机实现USB PS2 MOUSE的设计

    USB低速设备的设计发展到现在已经有了相当的成熟度。 各家IC公司都推出了USB DEVICE端的解决方案, 一般以8 BIT CPU CORE + USB SIE为主流构架。 SH69P04
    发表于 11-05 14:16 28次下载

    SH69P8XX系列单片机定时/计数器使用指南

    本使用指南介绍SH69P8XX系列单片机(SH69P801/SH69P802/SH69P822/SH69
    发表于 08-06 12:26 28次下载

    基于单片机普通的IO脚(非中断)模拟PS2协议

    基于单片机普通的IO脚(非中断)模拟PS2协议
    发表于 01-06 14:31 31次下载

    PS2 Keyboard Mouse

    PS2 Keyboard Mouse,PCB学习好资料,欢迎下载学习。
    发表于 03-23 10:17 0次下载

    关于PS2键盘与单片机通信

      PS2键盘与单片机通信的方法与原理说明。
    发表于 08-30 15:21 25次下载
    关于<b class='flag-5'>PS2</b>键盘与<b class='flag-5'>单片机</b>通信

    PS2键盘在单片机系统中的应用

    PS2键盘在单片机系统中的应用
    发表于 10-27 14:41 17次下载
    <b class='flag-5'>PS2</b>键盘在<b class='flag-5'>单片机</b>系统中的应用

    使用单片机实现PS2键盘输入1602液晶显示的C语言程序免费下载

    本文档的主要内容详细介绍的是使用单片机实现PS2键盘输入1602液晶显示的C语言程序免费下载。
    发表于 03-26 15:27 30次下载

    单片机扩展PS2标准微机键盘的技术

    单片机扩展PS2标准微机键盘的技术说明。
    发表于 04-08 15:11 13次下载
    <b class='flag-5'>单片机</b>扩展<b class='flag-5'>PS2</b>标准微机键盘的技术

    实例制作一个51单片机连接PS2键盘讲解

    实例制作一个51单片机连接PS2键盘讲解(单片机原理及应用技术)-该文档为实例制作一个51单片机连接PS2键盘讲解资料,讲解的还不错,感兴趣
    发表于 07-22 12:11 39次下载
    实例制作一个51<b class='flag-5'>单片机</b>连接<b class='flag-5'>PS2</b>键盘讲解

    SH69P25/69K25单片机规格书

    电子发烧友网站提供《SH69P25/69K25单片机规格书.pdf》资料免费下载
    发表于 10-09 15:39 1次下载
    <b class='flag-5'>SH69P</b>25/<b class='flag-5'>69</b>K25<b class='flag-5'>单片机</b>规格书

    SH69P42/69K42单片机规格书

    电子发烧友网站提供《SH69P42/69K42单片机规格书.pdf》资料免费下载
    发表于 10-09 15:38 0次下载
    <b class='flag-5'>SH69P</b>42/<b class='flag-5'>69</b>K42<b class='flag-5'>单片机</b>规格书

    SH69P43/69K43单片机规格书

    电子发烧友网站提供《SH69P43/69K43单片机规格书.pdf》资料免费下载
    发表于 10-09 15:37 0次下载
    <b class='flag-5'>SH69P</b>43/<b class='flag-5'>69</b>K43<b class='flag-5'>单片机</b>规格书

    SH69P48A单片机规格书

    电子发烧友网站提供《SH69P48A单片机规格书.pdf》资料免费下载
    发表于 10-09 15:34 0次下载
    <b class='flag-5'>SH69P</b>48A<b class='flag-5'>单片机</b>规格书

    基于STM32单片机PS2鼠标使用库文件设计源代码

    基于STM32单片机PS2鼠标使用库文件设计源代码
    发表于 04-26 14:58 6次下载