AN2131QC芯片USB总线通信的开发.doc_第1页
AN2131QC芯片USB总线通信的开发.doc_第2页
AN2131QC芯片USB总线通信的开发.doc_第3页
AN2131QC芯片USB总线通信的开发.doc_第4页
AN2131QC芯片USB总线通信的开发.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AN2131QC芯片USB总线通信的开发摘要:以EZ-USB AN2131QC为基础,描述了USB总线的网络结构和数据传送方式,介绍了AN2131QC的硬件开发和块传输的软件设计,为以后的USB总线控制设备打下基础。关键词:USB总线;USB外设;端点;管道;令牌;固件程序DevelopmentofUSBPeripheralDesign with AN2131QCYAN Junhu(The 39th Institute,Electronic Technology Corporation of China,Xian,710065,China)Abstract:This article describes USBnetwork and data transformation based on EZ-USBchip AN2131QC,introduces hardwaredesign and software design for bulk transmission,and lays the foundation ofdesigns for USBperipheralcontroldeviceKeywords:USB;USBperipheral;endpoint;pipline;token;firmware目前USB总线的芯片种类很多,主要有两种:一种是CPU集成USB控制器,例如EZ-USB AN2131,C8051F320 等;另一种是专用控制器,例如ISP1581,PDIUSB12,USB9602等。两者的选择主要是取决于USB外围设备的功能。本文主要以Cypress公司的AN2131QCL来说明USB控制设备的开发。1USB总线的网络配置在USB总线网络中,只能有一个主机,一个主机通过USBHUB最多可以扩展127个USB外围设备。如果不通过HUB,那么USB总线的传输距离最好不超过5 m。图1是USB总线网络图。从数据的传输流程可以知道,两个计算机无法直接通过USB总线进行通信。2AN2131QC的主要特点 AN2131QC是基于USB11的外设通信控制芯片,主要特点:(1)四时钟周期的8051内核。(2)2个快速存储器到存储器的数据传送指针。(3)扩展的中断,包含有多个USFB数据传输中断。(4)8 k内部RAM,用于存放程序和数据,支持外部存储器。(5)灵活的固件程序升级。(6)32个输入输出管道,其中同步传输支持1 024 B长度数据传输。(7)多种固件程序引导方式,方便的固件程序升级办法。3AN2131QC的数据传送方式USB总线的数据传送是通过管道(PipLine)来完成的,主机发送IN令牌和OUT令牌,完成信息输入或输出。不同于CAN总线的固定地址分配,所有USB外围设备接入到总线时,地址由主机随机分配。基于AN2131QC的设备接入主机后,信息交换是通过4种方式实现的:(1)控制传输方式主要作用是建立主机和USB外设之间的联系管道和USB外设的状态反映,不能用于传输信息数据。AN2131QC的端点0用于控制传输。(2)块传输方式主要用于传输长度不大于64个字节而且需要周期性传输的数据块,具有错误重发功能,可以动态地利用可获得的USB总路线带宽。(3)中断传输方式传输主式同块传输基本相同,但其主要用于发送或接收少量数据,而且并不经常进行传送的情况。AN2131QC的端点17可以进行块传输和中断传输。(4)同步传输方式可以一次传输长度不超过1 024 B的数据块,主要用于传输大批量的实时数据,例如音频数据,不支持错误重发。4AN2131QC的程序引导AN2131QC内部没有ROM,因此程序只能在上电复 位时从外部导入,主要为以下几个途径:(1)通过驱动程序,CYPRESS公司提供了工具将编译的固件HEX文件嵌入到驱动程序内,USB外围设备接入到总线后,主机自动将固件程序写入到EZ-USB内RAM,完成枚举和重枚举。 (2)通过外部I2CE2PROM。将固件HEX文件通过“HEX2BIX-I-B2(TARGET).IIC(SOURCE).HEX”命令转换成IIC文件,用编程器或者“控制面板程序”写入到I2C器件。I2 C器件选用24LC64A或者24AA64,将其 A0管脚上拉到高电平,A1,A2接地。(3)采用外部FLASHIROM和RAM。固件程序如果大于4 k,那么就要考虑用这种方式,注意EA上拉到高电平。5AN2131QC的电路配置主机向外围USB设备提供的最大电流是500 mA,因此当USB外围设备电流消耗超过500 mA时,需外接电源。AN2131QC的工作电压是33 V,可以通过LDO芯片将5 V转换成33 V。AN2131QC芯片的电路原理如图2所示,其中有几点要说明:(1)芯片的5,6,13,14,72脚通过一个1 k电阻接地,主要用于上电测试。(2)无论I2C总线是否外接有器件,SCL和SDA管脚都应通过22 k的电阻上拉。(3)不能让WAKEUP管脚悬空。(4)将USB和USB通过2个24电阻接到D和D,可以抑制虚噪声信号和限制环流。 6AN2131QC的固件程序开发从CYPRESS公司网站,可以下载到“控制面板程序”和驱动程序,也可以得到开发例程。通过开发例程,我们可以总结出开发自己固件程序的框架,从而可以轻松完成USB外围设备的开发。在建立固件程序框架后,根据地址分配,在KEILC51 编译器内设置编译连接地址,如果选用内部RAM,CODE地址设置为0x100,XDATA地址设置为0x1200。(1)在DSCRA51文件中设置外围设备配置信息和通信管道在此文件内包含有USB外设的定义信息和通信管道,其中需要自己修改的东西是设备描述和通信管道。StringDscr1和StringDscr2用于描述USB外设的种类和功能。EpInDscr用于定义AN2131QC的输出端点,包括端点号(作为输入的端点号字节的最高位为“1”)、传输方式、数据包最大长度等。EpOutDscr用于定义AN2131QC的输入端点,格式与EpInDscr相同,但端点号字节的最高位为“0”。 (2)通信管道的初始化在DSCRA51文件内定义了端点号后,需要在初始化定义里使能相应的通信端点,下面的例子为输入端点2和输出端点2的初始化例程:其中需要注意的是USBPAIR寄存器的初始化值,他用于设定相应端点的双输入输出缓冲区。在一些控制设备中需要实时获取USB外设的状态,但在使用双缓冲功能后,主机需要发送3个IN令牌,才能从外设取得最新的状态数据,因此在实时性要求比较高的情况下,应避免使用输入输出双缓冲功能。 (3)数据收发USB外设向主机发送信息和获取信息都是以一个数据包为单位,数据包的长度可以随机改变,但不能超过前面端点定义的最大数据包长度。以输入端点2和输出端点3为例说明数据的收发过程。向主机发送数据:输入端点2if(IN2CS0x02)!0x02) 检查输出缓冲是否为空 7结语在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论