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.1USB布景介绍
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.2I2C总线技能介绍
I2C总线技能是Philips公司研宣布来的串行扩展技能。他是一种简略、双向二线制同步串 行总线,他只需求2根线(串行时钟线SCL和串行数据线SDA)即可在衔接于总线上的器材之 间传送信息。关于并不要求很高的数据传输速度的外设,I2C总线的运用无疑简化了体系 ,添加了硬件构成的灵敏性,是一种高效、便利的串行扩展总线。
运用I2C传输数据有2种根本办法。榜首种是选用I2C总线标准的单片机或IC器材,其内 部含有I2C接口电路,运用这种办法可直接从接口读写数据。第二种是选用软件程序模仿I2C总线的时序来完结接口功用,运用这种办法可任意从单片机中选取2个I/O口,作为串 行时钟线SCL和串行数据线SDA,运用灵敏。
3PDIUSBD11芯片介绍
3.1PDIUSBD11芯片特色
PDIUSBD11 是一款性价比很高的USB 器材,他一般用作微操控器体系中完结与微操控器进行 通 信的高速通用I2C接口。这种完结USB 接口的标准组件使得规划者能够在各种不同类型微 操控器中挑选出最合适的微操控器。这种灵敏性减小了开发的时刻危险以及费用,经过运用 已 有的结构削减固件上的出资。从而用最方便的办法完结最经济的USB 外设的处理方案。PD IUSBD11适用于电脑监督器、操作杆、键盘和其他一些运用I2C或SMBUS结构的器材 。PDIUSBD11契合USB 11协议标准、I2C串行接口和SMBUS协议标准。他完全契合人机接 口设备和监督操控类协议标准。PDIUSBD11所具有的低挂起功耗连同LazyClock 输出能够满 足运用ACPI,OnNOW 和USB 电源办理的要求。低的操作功耗能够履行总线供电功用。此外他 还集成了许多特性包含SoftConnetTM,GoodLinkTM,可编程时钟输出、低频晶振、多重功用 终端和停止寄存器调集。一切这些特性都为体系明显节省了本钱,一起使USB 功用在外设上 的运用变得简略。
3.2PDIUSBD11内部结构
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.3PDIUSBD11芯片的典型运用
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根数据线担任数据的双向传输,但仍确保了较高的传输速 率,能满意一般的对速度要求不太高的设备的需求。