| 网站首页 | 电脑论坛 | 计算机原理 | 电脑主板 | cpu中央处理器 | 内存 | 硬盘 | 软驱 | 光驱 | usb设备 | 显卡 | 
 | 显示器 | 声卡 | 电脑音箱 | 耳机耳麦 | 网卡 | 局域网的组建 | 鼠标 | 键盘 | 电脑电源 | 电脑机箱 | 电脑组装与维修 | 
 | 电脑摄像头 | 网友留言 | 网站地图 | 网站地图2 | 
您现在的位置: 电脑硬件知识网 >> 计算机原理 >> 计算机总线 >> 文章正文  
[图文]USB设备开发简介         ★★★
USB设备开发简介
作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-3-10 13:06:15
 

USB设备开发简介
    USB设备的开发一般包括三个方面:设备端硬件接口设计、固件(即要写到设备内部只读存储器中去的运行程序)编写,及主机端设备驱动程序的开发。这里仅就设备端硬件接口设计作一些介绍。
    1.USB设备接口设计方案
    USB设备接口设计有两种方案可选:采用普通单片机加专用USB接口芯片;采用带USB接口的单片机,即专用USB控制器芯片。
    目前有多种类型的USB接口芯片,例如USBN9602(National Semiconductor 公司)、 PDIUSBDl2(Philips公司)和USS820/825(Lucent公司)等。采用普通单片机加USB接口芯片方案的优点是:开发人员可以利用现有单片机开发系统开发设备的应用程序,而不必再投资购买新的单片机开发系统;缺点是:硬件设计比较复杂,调试麻烦。
    第二种方案中所采用的LISB控制器芯片有两类:一类为完全从底层开发的微控制器芯片,如Cypress的CY7C63XXX系列;一类是基于通用单片机开发的USB控制器芯片,如与Intel 8051兼容的8x930A/8x931A(Intel/Cypress公司)、EZ-USB(Cypress公司)。第二种方案的优点是设计简单。例如,EZ-USB单片机集成了加强的8051微控制器、智能USB引擎、USB收发模块和RAM等,它提供了24个I/O端口、16位地址线、8位数据线、1个PC机接口和l对USB接口。所集成的智能USB引擎可以完成USB协议所规定的80%~90%的通信工作,减轻了USB外设开发人员的开发负担;所提供的开发工具能自动生成固件框架,开发者只须根据需要填些相关函数体;固件和驱动程序可以分别独立调试,极大地提高开发速度。该方案的缺点是需购买新的单片机开发系统,投资较大。
    如果要深入理解USB通信协议、USB设备工作机制以及USB设备驱动开发模型,最好选择第一种方案,即采用“USB接口芯片+传统单片机+设备功能电路”的模块化设计方法。设计出的USB设备的功能框图如图10.47所示。


    2.USB芯片PDIUSBDl2简介
    采用第一种方案时需要熟悉USB接口芯片。这里对PDIUSBDl2(简称D12)作一些简单介绍,使读者对该类芯片有一个基本认识。
    D12全面支持USB规范1.1,并且与大多数设备类兼容,图像设备类、大容量存储设备、通信设备、打印设备、人机接口设备。D12还具有SoftConnect、GoodLink、可编程时钟输出,以及低频石英振荡器等特征,从而极大降低系统实现成本,并简化高级USB功能的实现。
    该芯片采用双列直插封装,有28个信号引脚。其中包括2个USB数据信号(D+、
D-)、8个双向数据信号、1个中断输出信号、1个命令/数据口选择输入、读和写输入信号、GoodLink LED指示灯信号,以及与DMA请求相关的信号引脚。
    D12提供三组端点,每组有一个用于输入的端点和一个用于输出的端点。其中端点0(组)为设备缺省支持的控制端点;端点l(组)为普通端点,可以作为块传输或中断传输端点;端点2(组)称为主端点,除了支持块传输或中断传输外,还支持等时传输,此外,它采用双缓冲区结构,因此具有更高的传输速率,并支持DMA方式(与单片机之间的数据传送)。端点0和端点1的最大包尺寸为16字节,而端点2的最大包尺寸为64/128字节。
    D12提供三组命令:初始化命令、数据流命令和一般命令。初始化命令在USB设备被枚举时使用,用来使能端点并为其分配地址、设置端点的传输方式以及进行其他初始化方面的操作。数据流命令用来管理端点与微处理器之间的数据交换。一般命令实际是两条:一条是发送给下游设备的恢复命令,用来激活被挂起的设备;一条是读当前帧的编号。
    作为例子,下面看几条数据流命令的功能。
    ①选择端点命令:选择某端点,并将内部指针指向该端点缓冲区的开始。
    ②读缓冲区命令:从所选择端点缓冲区读取若干字节,每读取一个字节,缓冲区指针加1。
   ③写数据缓冲区命令:向端点缓冲区写入数据(最多130个字节)。
    ④读中断寄存器命令:该命令之后需读入两个字节。字节1用来判断总线事件,即哪个端点发生中断或总线状态变化;字节2的最低位指出DMA操作是否完成(高位保留)。
    ⑤SETUP确认命令:当控制端点接收到一个SETUP包时,该端点将被“冻结”,缓冲区中一直保留最后一个SETUP包。发出该命令将解除“冻结”,继续进行SETUP事务(向主机返回包)。设置该命令是考虑到控制传输的特殊性(对设备进行配置)。
    数据流命令还有其他命令,如读取最后一次事务状态命令、清除缓冲区命令、设置端点状态命令等。仅从上面给出功能的几条命令可以看出,这些命令主要被设备的控制器(单片机)用来和D12芯片的数据缓冲区及专用寄存器打交道,而USB传输协议的执行(包括数据打包、握手包的形成与发送等)由D12完成。

本篇文章属于主题:通用串行总线USB,了解更多请点击:通用串行总线USB
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目

    电脑硬件知识站导读

    最 新 热 门

    最 新 推 荐
    相 关 文 章
    FireWire串行总线(IEEE …
    USB设备配置简介
    USB协议简介
    USB总线上数据传输
    USB总线数据编码方式
    USB系统的软件结构
    USB的硬件结构
    USB的主要特点
    通用串行总线USB
    最 新 文章
    文章 下载 图片
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
            我与电脑共舞