用MC68HC05JB4开发USB外设
扫描二维码
随时随地手机看文章
;;;; 摘 要: 结合USB手写板,介绍了用MC68HC05JB4等MOTOROLA单片机开发USB设备的一般思路和具体方法。 ;;; 关键词: 通用串行总线(USB) MC68HC05JB4 单片机 人机接口设备(HID) 通讯 挂起 唤醒 ;;; 当今的计算机外部设备,都在追求高速度和高通用性。为了满足用户的需求,以Intel为首的七家公司于1994年推出了USB(Universal ; Serial; Bus,通用串行总线)总线协议,专用于低、中速的计算机外设。目前,USB端口已成为微机主板的标准端口;而在不久的将来,所有的微机外设,包括键盘、鼠标、显示器、打印机、数字相机、扫描仪和游戏柄等等,都将通过USB与主机相连。 ;;; 作为一个硬件厂商或是开发者,最关心的便是如何去开发USB外设。MOTOROLA公司从1996年开始,陆续推出了一系列支持USB总线协议的单片机,如最早的用于显示器的68HC05BD9A,用于鼠标的68HC05JB2,以及用于集线器(HUB)的MC141555等等。这些芯片共同的特点是都内含一个USB模块,通过这个模块,用户可以很方便地实现USB总线上的数据通讯。68HC05JB4最初是用于开发USB游戏杆的,后来也常被用于其他一些USB外设的开发,比如USB手写板等等。它除了含有USB接口以外,还有6路8位A/D变换输入端,4路键盘中断扫描用输入端,并可最多同时开启19个I/O端口。 ;;; 我们设计的USB汉字手写板,采用国内汉王公司的传感器获得笔画信息,传给MC68HC05JB4,经过整理后通过USB总线发送到PC,再由我们编写的驱动程序接收,最终转给汉王的文字识别软件识别。 ;;; 1 USB总线系统硬件连接 ;;; USB通过一个四线电缆来传输信号与电源,如图1所示。 ;;; 其中D+和D-是一对差模的信号线,而VBus和GND则提供了+5V的电源,它可以给一些设备?包括Hub?供电。USB提供了两种数据传输率:一种是12Mb的高速?full speed?模式,另一种是1.5Mb的低速模式,这两种模式可以同时存在于一个USB系统中(注:在新发布的2.0协议版本中,高速模式被定义为120~240M)。USB信号线在高速模式下必须使用带有屏蔽的双绞线,而且最长不能超过5m;而在低速模式时可以使用非屏蔽电缆,甚至是非双绞线,但最长不能超过3m。为了与电缆阻抗匹配,在电缆的每一端都使用了非平衡终端匹配电阻。该电阻也保证了能够检测外设与端口的连接或分离,并且可以区分高速与低速设备。 ;;; 68HC05JB4只支持低速USB外设。它提供了两个端口分别与电缆的D+、D-相连;同时提供了一个3.3V的参考电压与D-相连。典型连接如图2。图中电阻电容的参数是我们在USB手写板中采用的数值,其中1.5kΩ的电阻要求较高,阻值范围必须是1.5kΩ±5%。由于电缆长度有限,类似电缆负载之类的工作就不再需要开发者去考虑了。 ;;; 2 USB总线系统软件设计 ;;; USB设备的软件功能主要有两点:一是监视设备的状态,自动产生状态信息和用户命令信息;一是完成主机与设备之间的USB总线通讯,自动处理主机的控制和查询命令。 ;;; 前一功能与设备的具体工作方式有关,与一般非USB设备的实现方法大体一致。唯一的区别是开发者需要预先定义设备所属的类别和使用的协议。原因是,USB协议将设备分为不同的类型,每个设备类型都定义了类似功能设备的共同行为和协议。例如HID(Human Interface; Device)人机接口设备主要指用于人控制计算机系统操作的器件,而电源设备(Power Device)则被定位为HID的子系统之一。对设备进行分类是为了消除不同硬件厂商之间的差异,以便于主机(PC)对设备进行方便、统一的管理。相同类型的设备都由一组标准定义的功能模块组成。这样主机与USB设备之间的通信就可以通过一些标准格式的数据包来完成。USB开发者论坛发布了一系列USB设备的类型定义,并配以相应的使用说明。如果开发者需要了解HID及其子类设备,可以查阅参考文献[2][3]。 ;;; 开发者还应考虑的是主机的工作平台,比如Windows98/NT、Unix等等,原因是不同的系统对不同的设备的支持程度不同。例如在Windows98下,系统除了提供通用的USB设备的底层驱动以外,还单独