基于I2C总线技术的USB接口设计

2008-06-30 14:18:50来源: 电子产品世界

  1、前言

  USB(Universal Serial Bus)通用串行总线是在1994年底由康柏、IBM、Microsoft等多家 公司联合制订的,但是直到1999年,USB才真正被广泛应用。同时,他也得到了各PC厂商、芯片制造商和PC外设厂商的广泛支持,USB外设在国内外以惊人的速度发展,迄今为止,各种USB的外设已经有数千种。为PC外围设备设计USB接口已成为大势所趋。  

  随着单片机技术的发展,单片机的功能日益强大,外围电路日益复杂,其有限的管脚也就显 得捉襟见肘。目前采用普通单片机外加USB接口芯片开发USB外设时,USB接口器件大都是采 用并行接口与单片机相连接,这样再加上一些控制信号线,总共需要占用单片机十余个管脚 ,对于一般对传输速度要求不是很高的设备显得有些浪费,特别是对于为产品转型而 进行的USB接口开发,势必会影响原来的电路连接和功能设置。因此,采用一种既能保持较 高的传输速度,又能减少单片机引脚使用的USB接口开发方法很有必要。本文介绍一种 采用Philips公司带I2C接口的USB接口芯片PDIUSBD11进行USB接口开发的方法,他使用高速通用I2C接口与单片机相连接。

  2 背景介绍

  2.1 USB背景介绍  

  USB是一些PC厂商为解决日益增加的PC外设与有限的主板插槽和端口间的矛盾制定的一种 串行通信标准。他传输速度快,能提供3种传输方式:低速模式(速率为1.5 Mb/s);中速模 式(速率为12 Mb/s);高速模式(速率为360 Mb/s以上)。数据传输可靠,USB设备在发送 数据时支持 数据侦错和纠错功能,增强了数据传输的可靠性。设备安装和配置容易,安装USB设备不必 再打开机箱,增减设备不用关闭计算机,所有USB设备支持热插拔,系统对他进行自动配置 。易于扩展,外设接口之间采用菊花链形式连接通过使用Hub扩展可连接多达127个外设。能 够采用总线供电,USB总线提供最大达5 V电压,500 mA电流,可为小型设备供电。使用灵活,USB共有4种传输模式:控制传输(control)、同步传输( synchronization )、中断传输 (interrupt)、批量传输(bulk),以适应不同设备需要。

  2.2 I2C总线技术介绍  

  I2C总线技术是Philips公司研制出来的串行扩展技术。他是一种简单、双向二线制同步串 行总线,他只需要2根线(串行时钟线SCL和串行数据线SDA)即可在连接于总线上的器件之 间传送信息。对于并不要求很高的数据传输速度的外设,I2C总线的使用无疑简化了系统 ,增加了硬件构成的灵活性,是一种高效、方便的串行扩展总线。  

  使用I2C传输数据有2种基本方法。第一种是采用I2C总线标准的单片机或IC器件,其内 部含有I2C接口电路,使用这种方法可直接从接口读写数据。第二种是采用软件程序模拟I2C总线的时序来完成接口功能,使用这种方法可任意从单片机中选取2个I/O口,作为串 行时钟线SCL和串行数据线SDA,使用灵活。

  3 PDIUSBD11芯片介绍

  3.1 PDIUSBD11 芯片特点  

  PDIUSBD11 是一款性价比很高的USB 器件,他通常用作微控制器系统中实现与微控制器进行 通 信的高速通用I2C接口。这种实现USB 接口的标准组件使得设计者可以在各种不同类型微 控制器中选择出最合适的微控制器。这种灵活性减小了开发的时间风险以及费用,通过使用 已 有的结构减少固件上的投资。从而用最快捷的方法实 现最经济的USB外设的解决方案。PD IUSBD11适用于电脑监视器、操纵杆、键盘和其他一些使用I2C或SMBUS结构的器件 。PDIUSBD11符合USB 11协议规范、I2C串行接口和SMBUS协议规范。他完全符合人机接 口设备和监视控制类协议规范。PDIUSBD11所具有的低挂起功耗连同LazyClock 输出可以满 足使用ACPI,OnNOW 和USB 电源管理的要求。低的操作功耗可以执行总线供电功能。此外他 还集成了许多特性包括SoftConnetTM,GoodLinkTM,可编程时钟输出、低频晶振、多重功能 终端和终止寄存器集合。所有这些特性都为系统显著节约了成本,同时使USB 功能在外设上 的应用变得容易。

  

  3.2 PDIUSBD11 内部结构

  PDIUSBD11芯片的内部结构如图1所示。

  

  

  模拟收发器收发器接口可通过终端电阻 直接与USB电缆相连, 他们能以全速(12 Mb/s)传送和接收数据。

  {{分页}}  

  PLL片内集成了12~48 M时钟乘法器PLL。这样就可使用低成本的12 M晶振 ,EMI也随之降低。PLL的工作不需要外部元件。  

  Philips串行接口引擎PSIEPhilips SIE实现了全部的USB协议层。完全由 硬件实现而不需要固件的参与。该模块的功能包括:同步模式的识别、并行/串行转换、位 填充/解除填充、CRC校验/产生、PID校验/产生、地址识别和握手评估/产生。  

  存储器管理单元MMU和集成RAM当USB接口以12 Mb/s的速率传输并且I2C接口以1 Mb/s与微控制器相连时,MMU和集成RAM被用来处理这种极大的速率差异。这就允许 微控制器以他自己的速率通过I2C接口对USB信息包进行读写。  

  I2C控制接口这个模块执行必要的I2C接口协议。一个I2C控制器执行简单的编码。一个中断信号,当PDIUSBD11需引起注意时,用来向微控制器发出 警告。作为一个控制I2C的器件,PDIUSBD11的时钟输入SCL由微控制器控制。I2C接口的 传输速率能够达到1 Mb/s。  

  SoftConnectTM与USB的连接是通过1.5 kΩ上拉电阻将D+(用于 高速USB器件)置为高实现的。1.5 kΩ上拉电阻集成在PDIUSBD11片内,默认状态下不与VC C相连。连接的建立通过外部/系统微控制器发送命令来实现。这就允许系统微控制器在决定 与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。  

  3.3 PDIUSBD11 芯片的典型应用

  PDIUSBD11芯片的应用示意图如图2所示。其外围电路典型连接如图3所示。  

  

  

  VBUS是USB的总线电源感知引脚,通过他USB接口控制芯片判断USB设备是否接到了P C机上。外部复位引脚Reset上电复位,但PDIUSBD11芯片内部提供复位电路,因此可以将他 接到3.3V上,屏蔽其外部复位功能。Suspend引脚,他的作用是当USB设备进入挂起模式时,输出 高电平提醒主机,主机可通过拉低该引脚的电压来唤醒USB设备,使用中也可以直接将该引 脚接地,来屏蔽USB设备的挂起功能。INT_N引脚与单片机的连接是必不可少的,当 主机需 要与USB设备通信时,该引脚变成低电平,通知USB设备进入中断服务程序,中断请求结束后 他又重新变回高电平。因此他通过上拉电阻接正电源,当空闲时处于高电平状态。

  {{分页}}

  4 固件程序设计  

  单片机与PDIUSBD11的通信主要是 靠单片机给PDIUSBD11发命令和数据来实现的。 PDI USBD11的命令字分为3种:初始化命令字、数据流命令字 和通用命令字。PDIUSBD11给出了各种命 令的代码和地址。单片机先给PDIUSBD11的命令地址发命令,根据不同命令的要求再 发送或读出不同的数据。  

  当单片机使用专门的I2C接口与PDIUSBD11芯片连接时,可以直接进行输入、输出通信。但 如果只使用2个普通的I/O口连接时,需要用软件模拟I2C接口与PDIUSBD11芯片进行通信 ,可将模拟I2C传输部分编成子程序,使用时直接调用即可。具体编程方法可参照I2C总 线规范。  

  USB单片机控制程序通常由3部分组成:  

  (1) 初始化单片机和所有的外围电路(包括PDIUSBD11芯片);  

  (2) 主循环部分,其任务是可以中断的;  

  (3) 中断服务程序,其任务是对时间敏感的,必须马上执行。

  4.1 初始化程序设计  

  在编写初始化程序时需要注意,由于PDIUSBD11芯片采用Philips的SoftConnectTM技术设计。与USB的连接通过1.5 kΩ上拉电阻将D+(用于高速USB器件)置为高实现。1.5kΩ上拉电阻集成在PDIUSBD11片内,默认状态下不与VCC相连。连接的建立通过 单片机发送命令来实现。这就允许系统微控制器在决定与建立USB连接之前完成初始化时序 。USB总线连接可以重新初始化而不需要拔出电缆。所以在固件程序中需要编写芯片初始化 程序,以确保设备能顺利进行USB连接。初始化程序范例如下:

  

  

  

  按不同的应用方式(如远程唤醒、挂起功能等),可在Set Mode的第一个字为PDIUS BD11芯片设置不同的模式。 

  4.2 中断服务程序 

  根据USB协议,任何传输都是由主机(host)开始的,单片机作他的前台工作,等待中断。主机首先要发令牌包给USB设备(这里是PDIUSBD11),PDIUSBD11接收到令牌包后就给单片 机发中断,单片机检测到INT_N引脚变成低电平后进入中断服务程序,首先读PDIUSBD11的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。因此,USB单片机程序主要就 是中断 服务程序的编写。中断服务程序流程图如图4所示。PDIUSBD11芯片可支持4个端点(EP0~3),其中端点0用来对应缺省控制通道并初始化和操纵配置设备,同时提供设备配置信息的 读取和支持控制传输。端点1~3则用于支持块传输和中断传输等。

  

  

  具体的固件程序内容可参考文献[4],PDIUSBD12芯片是Philips公司的一款带并口的USB接口芯片,目前应用较广。  

  用PDIUSBD11芯片开发的USB接口,数据的传输速率是由单片机的I2C接口速率决定的。经测试其传输速率可达500 kb/s,远高于普通串口的传输速率,保持了USB接口的高速性,能满足一般的非大容量存储设备的需要。

  5 结语   

  使用单片机外加USB接口芯片开发USB接口,适用于为现有产品开发USB接口,能尽量避免对 原有电路及程序的修改,降低了开发成本和风险。在对速度要求不太高的情况下,可采用Ph ilips公司的USB接口芯片PDIUSBD11,他特有的I2C接口设计可以减少与单片机的引脚连接 ,简化外围电路设计。虽然只有2根数据线负责数据的双向传输,但仍保证了较高的传输速 率,能满足一般的对速度要求不太高的设备的需要。

  

  参考文献

  [1]PDIUS BD11 Data Sheet[S].

  [2]USB Specification V11[S].

  [3]I2C总线规范[S].

  [4]周立功.PDIUSBD12 USB固件编程与驱动开发[M].北京:北京航空航天大 学出版社,2003.

关键字:USB总线  USB设备  USB接口  I2C总线  单片机  固件程序  芯片  主循环

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/gykz/2008/0630/article_1034.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
USB总线
USB设备
USB接口
I2C总线
单片机
固件程序
芯片
主循环

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved