基于I2C总线的USB接口设计

发布者:HeavenlyWonder最新更新时间:2016-05-09 来源: eefocus关键字:I2C总线  USB接口 手机看文章 扫描二维码
随时随地手机看文章
  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接口芯片,目前应用较广。

  4.3 测试结果

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

  5 结语

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

  参考文献

  [1]PDIUSBD11 Data Sheet[S].

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

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

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

关键字:I2C总线  USB接口 引用地址:基于I2C总线的USB接口设计

上一篇:基于DSP交流伺服系统与CAN总线的通信设计
下一篇:汽车LIN网络解决方案使节点互连简单经济

推荐阅读最新更新时间:2024-05-03 00:22

USB接口的基础理论知识
USB的重要关键字: 1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点) 2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。 3、上行、下行:设备到主机为上行,主机到设备为下行 下面以一问一答的形式开始学习吧: 问题一:USB的传输线结构是如何的呢? 答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的 5V电平
[嵌入式]
单片机IC卡读写器设计
1 概述 C卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip Card)或微电路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是数据不易丢失的存储器(ROM, EPROM.EPROM), 保护逻辑电路,或者CPU。IC卡最初是为了解决金融交易中的安全性问题而设计的,它带来全新的交易概念与巨大的优势。很快,这一优势也为其他应用部门所看中,使之广泛应用于电话、医疗保健、路禁控制和门锁控制等等系统中。随着时间的推移,应用范围还在不断扩大,使用IC卡的数量呈几何级数增长。同时,为了不同应用场合的需求,IC卡
[单片机]
单片机IC卡读写器设计
基于FPGA视频采集中的I2C总线设计与实现
随着科学技术的发展和现代战争条件的变化,传统图像信号提供的单一服务已远远不能满足现代战争的需要。图像信号由于包含有极其丰富的信息,具有通信效率高、便于记录、形象逼真、临场感强等特点,所传送的信息量远远超过其他通信手段,所以得到越来越多的重视。在JPEG2000系统下,视频采集系统是视频采集功能的FPGA(现场可编程门阵列)前端系统,是视频图像处理、应用的前项通道。作为视频采集系统的重要组成部分I2C(Inter Integrated Circuit)总线,早在20世纪80年代由荷兰Philips公司研制开发成功。它是一种简单、双向二线制同步串行总线硬件接口。 1I2C总线的特点和协议   I2C总线协议作为一个串行总线标
[安防电子]
基于FPGA视频采集中的<font color='red'>I2C总线</font>设计与实现
电源DIY 巧改USB接口提升电流强度
如果说近年来哪种技术大幅改变了数据传输的历史,那无疑就是USB技术了。并且随着 USB 接口技术的持续革新,这种技术不仅能够跟上科技更新的脚步,此外还能够衍生出一些新的拓展技术。本文就将为大家介绍一种对USB口进行改造,从而提升电流提供强度的方法。       将USB2.0接口移动硬盘盒与一块20GB容量的笔记本硬盘(IC25N020ATDA04),组成了一块移动硬盘,将该移动硬盘插入电脑的USB前置口上,系统提示为“有新设备插入,但无法正常安装,可能无法正常使用”,“设备管理器”和“资源管理器”中均无法发现移动硬盘的踪迹。观察移动硬盘,发现不停出现“咔嗒”声,指示灯随着声响周期性地亮暗
[嵌入式]
Windows2000下USB接口的IC卡读写装置客户程序设计
    摘要: 分析了Windows2000下USB客户程序的框架,并就如何开发Windows2000下USB接口的IC卡读写装置客户程序进行了阐述。     关键词: USB总线 客户程序 IC卡 Windows2000 IC卡是高科技的产物,它广泛用于银行、电信、交通运输、小区管理、校园管理等领域,体现了它的巨大优越性。作者在开发一个IC卡机房收费系统时遇到了新问题,那就是当计算机和IC卡装置通信的时候,如果采用传统的串行通信方式固然可行,但供电必须休用单独的外置电源,这样加大了读卡装置的体积。通过翻阅资料发现USB接口可以输出5V电压、500mA的电流,能满足IC卡装置对电源的要求。另外,USB接口和Wi
[应用]
串行E2PROM 24LC65在单片机中的应用
1. 概述   24LC65是目前容量较大的一种串行E2PROM 芯片,具有8kB的存储容量,体积小,功耗低,可掉电保护。AT89C52单片机亦具有8kB内部ROM,同样具备低功耗和控制功能强等特点,由两者构成的单片机小系统硬件开销少,数据可串行传送,功耗低,非常实用。但是,读、写24LC65的程序编写却比较麻烦,本文将介绍对其编程的方法,并介绍采用子程序结构编写的已通过的写、读24LC65的应用编程。 2. 24LC65与单片机的连接 2.1 24LC65的引脚功能   24LC65采用8脚DIP封装,引脚功能如下:   1~3脚(A0、A1、A2)为三位地址输入端;   4脚GND为接地端;   5脚SDA为二进制数据输
[单片机]
串行E2PROM 24LC65在单片机中的应用
USB接口的多功能容栅传感器测量系统
  根据容栅传感器的原理与带USB模块的C8051F321单片机,设计了一套基于USB接口的测量系统。该系统能实现最大数跟踪、最小数跟踪、示值保持和清零等功能,通过USB接口与上位机交换数据。系统中采用LM393芯片将传感器信号电平转换为CMOS电平,采用光耦隔离技术等增强系统的抗干扰能力。由于容栅传感器数据的传输多采用RS232/RS485总线方式,而USB总线方式方便、高效,并有取代串口通信方式的趋势,因此设计一款带USB接口的容栅传感器测量系统具有实际应用价值。   1 容栅传感器测量原理   容栅传感器的工作原理是根据平板电容理论而来。一般容栅传感器的结构包括动栅板和定栅板。动栅板包含发射极和接收极,定栅板包含反射极。
[单片机]
<font color='red'>USB接口</font>的多功能容栅传感器测量系统
一种电力监控与数据采集系统设计
随着电力系统及其自动化的发展,越来越多的电力系统设备需要采用实时监控以及数据采集,从而保证电力系统设备可以安全、可靠地运行。因此,对电力监控与数据采集系统的研究,具有重要的现实意义。 本文设计了一种电力监控与数据采集系统,该系统采用USB接口作为通信方式,同时利用AD9238完成电力监控与数据采集,采集后的数据直接送到FPGA中。其中USB接口直接与FPGA相连,采集后的数据既可以暂存到FPGA中,也可直接经过USB接口发送到PC中,同时对于采集后的数据也可以在FPGA内部做相应的预处理后上报给PC机。因此,该电力监控与数据采集系统具有更广泛的适用性。 1 电力监控与数据采集系统总体设计 电力监控与数据采集系统总体设计框
[测试测量]
一种电力监控与数据采集系统设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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