本文以 USB HOST 技术为核心,介绍 USB HOST 技术在单片机上的实现,重点介绍 USB HOST 技术在嵌入式系统读写优盘上的应用。
1、 USB HOST 技术简介
USB 的通信可以用图 1 表示。图 1 中,左半部分为 USB 主机端,可以看出,USB 主机端由两部分构成,即软件体和硬件体。实际上是三个软件组件组成了 USB HOST 解决方案,即 USB 客户驱动程序、USB 驱动程序和 USB 主机控制器驱动程序。应用程序的事务处理是由 USB 客户驱动程序(设备驱动程序)启动时,客户驱动程序把 USB 设备当作一个可以被访问的端点集合,它可以被控制并与它的功能单元进行通信。USB 系统软件包括 USB 驱动程序和 USB 主控制器驱动程序,USB 驱动程序负责配置管理、用户管理、总线管理和数据传输管理;以及数据的位编码、封包、循环校验、发送、错误处理等。
USB 控制器大致分为三类:第一类是支持 1.0 协议的,这类已经很少见了;第二类是支持 1.1 协议的控制器;第三类是支持 2.0 协议的控制器。根据不同场合,后两种应用比较广泛,2.0 接口主要用在计算机上,依靠操作系统实现数据高速传输。支持 1.1 协议的芯片除了用于计算机上,还有少数是为嵌入式系统中实现 USB HOST 而设计的。如 Cypress 的 SL811、Philips 的 ISP1160、ISP1161 等。
USB 主机端的硬件部分是由处理器、USB-HOST 控制器和根集线器组成,图 2 是由微控制器 MSP430F149 和 USB 控制器 ISP1161 实现 USB HOST 的电路原理。图 2 分为 4 个部分:微处理器、USB 控制器、电源管理模块和 USB 接口电路。从概念上还应有一个 USB 根集线器(USB Hub),实际根集线器被集成在 USB HOST 控制器中。
ISP1161 是 Philips 设计的 USB 主机 / 设备控制器。内部有 1 个 USB 主机控制器和 1 个设备控制器,符合 USB2.0 协议,支持全速和低速传输。主机和设备控制器共享相同的接口总线,带有 2 个 USB 下行端口和 1 个 USB 上行端口。图 2 中使用接口 1 作为 HOST 下行端口。每个下行端口有各自的过流检测电路,图 2 中使用 PHP109 检测端口供电电流,
一个 USB HOST 要完成的功能因为需求不同,所使用的协议也不尽相同,有的采用中断传输,有的采用同步传输。USB 主机技术在单片机上的应用主要是针对某一种 USB 设备或几种设备,因而单片机上可以只固化某几种协议。该技术的应用可以使得小型仪器上轻松接入 USB 外设、扩展系统的功能、提高仪器的使用灵活性。USB 主机技术在单片机上的应用会有更广泛更美好的前景。