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

发布者:brian808090最新更新时间:2012-09-29 来源: eefocus关键字:USB接口  人机接口  HID 手机看文章 扫描二维码
随时随地手机看文章

  基于一种新型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 主程序流程图
[page]

4.2.2 部分子程序代码

  本地端主程序可以参照图4 流程编写代码。在程序中,外置模式的设置是在CH372 初始化的子程序中完成的;中断子程序编写需要参考CH372 中文手册(二)。从图2 的硬件电路连接上可以看出,单片机的P1 口与CH372 的数据端连接,并非以总线方式挂接在单片机上,因此需要单片机的I/O 拟出相应的时序操作CH372 芯片。下面给出单片机通过数据端口写命令,写数据,读数据的三段代码。

  

  

  枚举成功后,PC 机识别为USB Mouse.此时单片机根据图2 中所示的遥控指示信号LeftKey(P3.0 脚)和RightKey(P3.1 脚)电平高低,通过CH372端点1(中断端点)发送USB 鼠标相应的键值给PC 机,端点1(中断端点)的缓冲区数据块长度为4 个字节,LeftKey 或者RightKey 键值需要放在第一个字节上。如果鼠标左键按下,则返回0x01,0x00,0x00,0x00;若鼠标右键按下,则返回0x02,0x00,0x00,0x00。

  下面给出端点1 上传数据示例:

  

  

  5 结语

  本系统是CH372 设置为灵活的外围固件模式下的应用和开发。系统硬件设计简单,软件流程清晰。

  若将硬件和软件做很小的改动,就可以设计出其他很多HID 类设备。

关键字:USB接口  人机接口  HID 引用地址:基于USB接口芯片CH372的人机接口设备设计与实现

上一篇:手机GPS及手机定位系统介绍
下一篇:基于linlog技术扩展传感器动态范围的高速相机

推荐阅读最新更新时间:2024-05-02 22:21

低功耗蓝牙和专有射频技术在HID的应用
  随着各种无线技术的不断增加,更复杂的集成了无线技术的人机接口设备(HID)来到市场上 (无线键盘,无线鼠标,等等)。尽管无线标准体现出了其优势,但他们也带来了设计的复杂性和其应用增加的不必要开销,这导致系统成本提高了。另一方面,专有协议使开发者在定制应用方面更灵活,开发步骤更简洁。这篇文章就HID市场上的低功率蓝牙技术和专有协议进行了比较。   选择PC HID 射频的关键是成本,功耗,可靠性(安全),速度(吞吐量),和易于设计。一般来说,市场上标准协议比专有协议更具有竞争力,这是由于其设备之间的互通性。然而,直到2009年,在PC HID方面,只有专有协议占据了市场。这主要归因于没有任何无线标准对PC HID市场来说
[网络通信]
基于MSP430和CC2500的USB无线数据采集系统
基于MSP430单片机和CC2500的无线数据采集系统是一个功能齐全的无线开发工具,该系统主要由MSP430F系列微控制器和CC2500(2.4 GHz)无线收发器组成。系统可在PC机上利用IAR嵌入式工作平台集成开发环境(IDE)或CCE开发环境编写、下载和调试应用程序。用户可以通过设置硬件断点全速运行应用程序,也可单步运行,无需额外消耗硬件资源。系统核心控制器采用MSP430F24X系列单片机,该单片机为16位单片机,集成度高,处理速度快.超低功耗,能极大的节省资源。通过Simplici TI协议,MSP430控制器通过USB接口实现与PC机的通信,调试稳定、简易方便。该数据采集系统消耗硬件资源较少,功耗超低,是一种无线数
[测试测量]
基于MSP430和CC2500的USB无线数据采集系统
基于双模式USB接口的便携式比色计设计
引言:    目前市场上的光电比色计一般都是通过 RS232串口与计算机通信,随着计算机技术的发展,这种接口实现已经无法满足 PC与外部设备之间不断提高的速度以及稳定性、易用性等要求,给用户使用带来了诸多不便。USB接口技术凭借其易用、稳定、可扩展等优点,越来越广泛应用于 PC机外设和便携式系统中,为满足客户要求,本文设计了一种基于 USB接口的比色计仪器。该仪器可以实现 USB主机和从机两种功能,做主机时,能实现数据的快速采集及 U盘存储;做从机时,能实现与计算机相连。 1.CH375简介CH375是一种 USB总线的通用接口芯片,支持 USB-HOST主机方式和 USB-DEVICE/SLAVE设备方式,兼容 USB2
[嵌入式]
可监测人体脉搏波及心率的健康鼠标
  脉搏波的波形特征与心血管疾病密切相关,为此用户需要一种简单、实时的便携装置。通过安装在正常使用鼠标时大拇指触摸到的鼠标位置的反射式脉搏波光电传感器采集脉搏波信号,信号经过滤波、放大和A/D转换后,利用单片机对脉搏波信号处理并得出心率数据,最后通过USB接口连接电脑端软件显示。将鼠标和反射式光电传感器结合制成成品之后,经过实际测试,传感器能够很好的测得手指脉搏波并输出。这种可监测人体脉搏波及心率的健康鼠标可以在用户使用鼠标的不经意状态时检测并记录脉搏波及心率。   人体脉搏波中蕴藏着丰富的生理病理信息,大量的临床实测结果证实,脉搏波的特征与心血管疾病有着密切的关系。脉搏波所表现出来的形态、强度、速率与节律等方面的综合信息的确在
[单片机]
STM32的CustomHID的各描述符介绍
俗话说的好,看协议手册,不如看源代码来的好!在USB的工程中,USB的各描述符定义在usb_desc.c文件里面,这里就将USB的各描述符定义代码贴上来,各个数值的意义都已经详细注释。当然很细节的东西看不懂还是建议去看手册去!!! /* USB标准设备描述符*/ const uint8_t CustomHID_DeviceDescriptor = { 0x12, /*bLength:长度,设备描述符的长度为18字节*/ USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType:类型,设备描述符的编号是0x01*/ 0x00, /*bcdUSB
[单片机]
Ambiq Micro委任Fumihide Esaka为首席执行官
超低功耗半导体解决方案领先厂商Ambiq Micro宣布Fumihide (Humi) Esaka加入公司并担任首席执行官,Esaka先生是接替自今年7月起担任临时首席执行官的Mike Noonen。 Fumihide Esaka在半导体行业拥有20年高级管理层经验,并先后在Nihon Inter Electronics Corp.及功率转换专业厂商Transphorm Inc.担任首席执行官。较早前,他先在咨询公司埃森哲(Accenture)担任经理为期六年,并于1995年加入International Rectifier担任副总裁长达12年。 Esaka先生表示: 现在是加入Ambiq Micro公司最
[单片机]
基于单片机和USB接口的数据采集系统设计
在工业生产和科学技术研究中,常利用PC或工控机对各种数据进行采集,以获得所需要的控制信息和实验数据。传统的数据采集系统多以ISA,EISA或PCI插卡的形式完成数据传输,这种方式存在安装麻烦,受计算机插槽数量、地址、中断资源限制,可扩展性差等缺点。由于通用串行总线(Universal Serial Bus.USB)具有自动被系统识别.自动安装驱动程序、自行进行系统配置,以及支持不同速率的同步和异步传输方式,支持热插拔和即插即用(Plug and Play,PNP)等优点,已逐渐成为现代数据传输的发展趋势。目前实现USB数据传送多采用专用的USB接口芯片,文献采用的PDIUSBDl2可支持USBl.1协议,文献E37采用的接口芯片
[单片机]
基于USB接口芯片CH372的人机接口设备设计与实现
  基于一种新型USB 总线接口芯片CH372,设计出一种人机接口设备-USB 鼠标。阐述了CH372 的工作原理和特点,给出了系统的硬件电路图;在软件设计中,分析了HID 类设备描述符枚举过程,根据主程序流程图,写出了部分单片机本地端主程序。通过硬件和软件调试,最后成功模拟出鼠标左键和右键功能。   1 引言   USB(Universal Serial Bus,通用串行总线)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。HID 是Human InterfaceDvices 的缩写,即人机接口设备,是USB 协议中最早提出并支持的一种设备类。典型的HID 有键盘和鼠标等,其主要用于和计算机进行交互通
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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