基于USB接口芯片CH372的人机接口设备设计与实现

分享到:

        基于一种新型USB 总线接口芯片CH372,设计出一种人机接口设备-USB 鼠标。阐述了CH372 的工作原理和特点,给出了系统的硬件电路图;在软件设计中,分析了HID 类设备描述符枚举过程,根据主程序流程图,写出了部分单片机本地端主程序。通过硬件和软件调试,最后成功模拟出鼠标左键和右键功能。

  1 引言

  USB(Universal Serial Bus,通用串行总线)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。HID 是Human InterfaceDvices 的缩写,即人机接口设备,是USB 协议中最早提出并支持的一种设备类。典型的HID 有键盘和鼠标等,其主要用于和计算机进行交互通信。鼠标属于HID 设备,USB 串行总线规范专门定义了HID 类规范。Windows 操作系统能够方便地和HID 设备建立连接。

  2 USB总线接口芯片CH372

  2.1 功能介绍

  CH372 是一个USB 总线的通用设备接口芯片,是CH371的升级产品,是CH375芯片的功能简化版。

  CH372 具有8 位数据总线和读、写、片选控制线以及中断输出,可以方便的挂接到单片机/DSP/MCU/MPU 等控制器的系统总线上;在计算机控制中,CH372 的配套软件提供了简洁易用的操作接口,与本地端的单片机通讯就如同读写文件。

  CH372 内置了USB 通讯中的底层协议,具有省事的内置固件模式和灵活的外置固件模式。在内置固件模式下,CH372 自动处理默认端点0 的所有实物,本地端的单片机只要负责数据交换,所以单片机程序非常简洁。在外置固件模式下,由外部单片机根据需要自行处理各种USB 请求,从而可以实现符合各种USB 类规范的设备。

  2.2 通信原理

  

  图1 通信原理框图

  图1 为CH372 通信原理框图,D7~D0 为8 位双向数据总线、RD#为读选通输入引脚、WR#为写选通输入引脚、CS#为片选输入引脚、INT#为中断输出引脚、A0 为地址输入引脚。

  CH372 芯片的RD#和WR#可以分别连接到单片机的读选通输出引脚和写选通输出引脚。CS#由地址译码电路驱动,用于当单片机具有多个外围器件时进行设备选择。INT#输出的中断请求是低电平有效,可以连接到单片机的中断输入引脚或者普通I/O 引脚,单片机可以使用中断方式或者查询方式获知中断请求。

  当WR#为高电平并且CS#和RD#及A0 都为低电平时,CH372 中的数据通过D7~D0 输出;当RD#为高电平并且CS#和WR#及A0 都为低电平时,D7~D0 上的数据被写入CH372 芯片中;当RD#为高电平并且CS#和WR#都为低电平而A1 为高电平时,D7~D0 上的数据被作为命令码写入CH372 芯片中。

  3 硬件电路

  

  图2 HID 设备硬件电路图

  图2 中是没有外部扩展总线的单片机系统,单片机用普通的I/O 引脚模拟出8 位并口时序操作CH372 芯片。在这个电路中,CH372 的CS#固定为低电平,一直处于片选状态。IC1 的P1 端口作为8位双向数据总线,在单片机程序中,可以控制各个I/O引脚模拟并口时序与CH372 进行数据交换。

  单片机的P3.0 引脚模拟为鼠标的左键;P3.1 引脚模拟为鼠标的右键。

        4 软件设计

  4.1 HID 类设备描述符枚举

  USB Mouse 属于HID 设备,和所有的HID 设备一样遵从USB 启动流程:设备插入→总线复位→设备枚举→数据接收/传送。怎样让PC 认识USB Mouse流程中的设备枚举就是告知PC 设备描述类型[5]。当插入USB 设备后,主机会向设备请求各种描述符来识别设备。为了把一个设备识别为HID 类别,设备在定义描述符的时候必须遵守HID 规范,因此除了USB 标准定义的一些描述符外,HID 设备还必须定义HID 描述符。主机通过识别描述符从而认识设备,认识设备数据通信格式,从而才能正常进行数据传送接收。

  下面图3 是在调试过程中的截图,可以清楚地看出枚举有没有成功,有没有被PC 机设别出来。他们分别是成功识别,识别出设备有问题,无法识别USB设备。

  

  图3 调试过程3 种状态截图。

  4.2 单片机本地端主程序

  4.2.1 主程序流程图

  

  图4 主程序流程图
 

继续阅读
CYONS2100:激光游戏鼠标参考设计

CYONS2100是Cypress半导体公司的第二代激光导航片上系统(SoC)产品系列的一员。CYONS2100采用了高速,高精度的OptiCheck?技术,以及领先的PSoC技术。这一产品系列在单一

CAN BUS特色与应用实例

由于汽车产业不断追求安全可靠、极致性能、舒适方便以及低成本等目标,但汽车内高复杂的系统网络,使得线束过于庞大,导致成本提高且网络架构也难以持续提升,与前者形成冲突。 于是德国Bosch在1985年提

usb声卡设计

本文介绍一款采用USB接口的声卡,效果相当不错,电路也很简单。   电路原理   电路原理图如图1所示。   PCM2702(IC1)为美国TI公司属下的BB公司生产的USB接口

一个高智能化的物联网枢纽--物联网网关

互联网的普及,使很多了解互联网的人都知道网关这么一个名词,网关(Gateway)就是一个网络连接到另一个网络的“关口”。在Internet中,网关是一种连接内部网与Internet上其它网的中间设备,

基于ARM S3C2410的PDA人机接口电路

PDA(个人数字助理)实际上是一种比笔记本电脑还要小得多的手持式电脑,这种手持设备兼有计算、网络、传真、电话等多种功能,使得个人信息管理变得尤为方便,网上冲浪、收发电子邮件都可以通过无线方式解决。