


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种USB2.0数据传输的实现方式摘要:USB(UniversalSerialBus,通用串行总线)是外围设备与计算机进行连接的新型接口,其诞生对计算机外设连接技术产生重大变革。对Philips公司的工业级USB2.0控制芯片ISP1581的性能特点作了介绍,并重点讨论了其硬件电路及固件程序的设计。此外还简要提及了其上层程序的编写。关键词:USB2.0;ISP1581;DMA传输0引言通用串行总线USB(UniversalSerialBus)接口是近年来开始普遍应用于PC领域的新型接口;同时,USB2.0在USB1.1的基础上又有了质的提高,其理论速度可以达到480Mbps。目前市场上供应的U
2、SB2.0控制器主要有两种:带USB接口的单片机和纯粹的USB接口芯片。但此类芯片基本上用于商业领域,无法适用工控领域的恶劣环境;纯粹的USB接口芯片仅处理USB通信,必须有个外部微控制器/处理器来进行协议处理和数据交换。纯粹的USB接口芯片主要特点是接口方便、可靠性强、适用范围广,尤其Philips公司提供的ISP1581芯片,能够在40C+85C的温度范围内正常工作,十分适合工控领域数据传输的需要。1 ISP1581的芯片性能特点ISP1581是一款性能非常出众的USB2.0控制器,它实现了USB2.0/1.1物理层以及数据协议层需要完成的任务,接口速度可达12.5M字节/s或12.5M字
3、/s;同时还做到可以与大部分类型的微控制器/处理器相连,非常适合做很多外围设备与PC的通讯接口。其一些具体的性能特点如下:ISP1581含有7个IN端点,7个OUT端点和2个控制端点。芯片的工作频率为12MHZ,同时内部集成了一个40xPLL时钟乘法器可产生480MHZ的内部抽样时钟;通过Philips串行接口引擎(SIE)来完成所有USB协议层的功能,主要完成以下功能:同步方式的识别、并行/串行的转换、位填充/解除填充等。考虑到速度,它是全硬件的,不需要软硬件介入;通过MMU和集成RAM实现了USB总线和微控制器/处理器或DMA控制器之间的速度转换。DMA控制器接收到DMA命令后,可直接把数
4、据从内部RAM传送到外部DMA设备或从外部DMA设备传送给内部RAM;在分离总线模式下,通过DMA模块来实现ISP581芯片与DMA数据源或数据接收端的数据传输,不需要微控制器/处理器参与,提高传输速度。2 ISP1581硬件电路设计ISP1581与系统的微控制器接口模式有两种:通用处理器模式与分离总线模式。相对于通用处理器模式,分离总线模式采用DMA方式直接传输数据,在保证系统性能的前提下降低对微处理器的要求。故此处Atmel89C51(以下简称89C51)与ISP1581连接采用分离总线模式,即多路复用8位地址/数据总线和单独的8位/16位DMA总线。由89C51和ISP1581构成的US
5、B2.0接口电路如图1所示。在硬件系统中,89C51与ISP1581的通讯采用中断方式,当ISP1581接收到主机信号后引发89C51的INTO中断,使89C51进行下一步工作。RPU引脚通过1.5kQ电阻器上拉;RREF引脚通过12.0kQ精密电阻器接数字地;BUS_CONF引脚的功能是选择总线模式,接地后为分离总线模式;MODE0引脚用来选择读/写功能,上拉后为8051型;MODE1引脚在分离总线模式下用于ALE/AO的功能选择,接地后选择ALE功能。ISP1581内部集成了复位电路,将RESET引脚直接接高电平即可复位。(DMA传输引脚EOT、DIOR/W、DATAi等信号不由89C51
6、提供,由DMA数据源或数据接收端提供符合ISP1581DATASHEET要求的DMA时序信号即可,不涉及USB协议内容,相对简单。因为图片排版问题此处没有提供图例,类似还有系统供电滤波部分。详细可参见参考文献2ISP1581ProductDatasheet。图1USB2.0接口电路原理图2固件程序主流程3 ISP1581固件程序设计在USB2.0协议中规定,所有USB通信都必须由主机发起,设备只能响应来自主机的命令。在这种结构下,ISP1581的固件编程采取中断驱动的方式。主机对1SP1581的任何操作都会引起ISP1581对相应的中断位置位,同时引发89C51中断;89C51通过查询ISP1
7、581中断源寄存器判断并处理中断。这样一方面保证了快速的数据传输和较好的软件结构,另一方面简化了编程和测试。固件程序主循环流程如图2所示。在系统上电后,首先初始化89C51和ISP1581。初始化主要完成89C51中断设置与ISP1581预设寄存器设置,主要包括地址寄存器,方式寄存器,中断寄存器,DMA寄存器,及端点寄存器等。地址寄存器设置USB的分配地址并激活USB设备(一般设置默认地址0,在SETUP过程中改设为主机提供的地址);方式寄存器控制着重新开始、挂起和唤醒行为、中断行为、软件复位、时钟信号和软件连接操作;中断寄存器控制中断使能以及决定INT输出的动作和极性;DMA寄存器中,DMA
8、配置寄存器和DMA硬件寄存器设置DMA模式及信号触发极性;端点寄存器包括设置端点缓存大小,端点传输类型,以及端点使能等(端点寄存器的设置要与准备提供的端点描述符相一致)。初始化完成后,系统循环等待主机命令引发的中断,主要中断有SETUP中断(即USB控制传输中断)、总线挂起中断、总线唤醒中断、各端点数据IN或OUT中断和两个厂商请求中断(固件版本查询中断和DMA传输使能中断)。中断服务程序流程如图3所示。系统进入中断服务程序后,读取ISP1581中断寄存器内容并拷贝到全局中断,然后清除ISP1581中断源,以免再次触发。当固件接受到第一个SETUP中断后,进入USB枚举过程。枚举过程与USB协
9、议关系最为密切,其过程是主机发出一系列USB标准设备请求并要求及时得到设备响应,使主机能为该设备准备其所请求的资源,建立好两者之间的信息沟通机制。主要枚举过程如下:主机使用默认地址下发GetDeviceDescriptorA(8006000100004000),设备上发18位设备描述符,确定USB规范版本号与厂商ID、产品ID,不用返回64位数据;主机发送含有指定地址命令SetAddress(0005020000000000),在主机只有一个USB设备的时候,此地址一般是2,最大地址可为127,即USB协议中规定可以连接127个设备。固件设置ISP1581的地址寄存器,进入新地址状态,主机以后
10、会在新的指定地址处访问设备;主机使用新地址下发GetDeviceDescriptorB(8006000100001200,设备重新上发18位设备描述符;主机使用新地址下发GetDeviceDescriptorC(8006000200000900),设备上发9位配置描述符,确定接口数目以及电源获取方式等;主机使用新地址下发GetDeviceDescriptorD(800600020000FF00),设备上发全部描述符,包括配置描述符号、接口描述符号、端点描述符,确定接口与端点详细信息;读取全部ConfigDescriptor后,主机将找到新设备,提示安装驱动程序;在设备能通信前,主机给出SetC
11、onfiguration(0000090100000000请求,设备收到后调整有关信息,使设备能被客户软件利用枚举过程涉及大量USB协议中规定的内容,其重点是USB描述符所代表的具体含义,如最大信息包、接口数目、端点数目、电源配置等。在提示安装驱动程序前,可使用BusHound对USB传输数据进行监。驱动可先使用philips的驱动,待系统完成后再根据性能考虑是否需要驱动的更新。枚举过程中数据传输皆通过ISP1581的端点0实现,使用USB的控制传输类型。图3中断服务程序流程图4BusHound对USB口数据流的监控结果枚举结束,系统又处于循环等待主机其他命令状态,一旦得到主机要求,就开始传输
12、数据。相对于控制传输来说,USB的其他几种传输模式都比较好处理。ISP1581的7个IN端点和7个OUT端点均可通过编程设置为批量传输、中断传输或等时传输模式。在芯片处于分离总线模式下,89C51与DMA数据源或数据接收端均可以与主机进行数据交换,一般少量控制命令数据由89C51实现,大批量数据由DMA数据源或数据接收端通过DMA传输引脚提供或接收,两者需分别通过ISP1581不同的端点进行传输。89C51与主机通信,通过设置ISP1581的端点索引寄存器、数据端口寄存器、缓冲区长度寄存器来实现(枚举阶段固件程序相相似)。89C51上传主机数据的程序段主要内容如下:ISP_Cntrl_RegS
13、P_ENDPT_INDEX=port;选择端点ISP_Cntrl_RegSP_BUFFER_LENGTH_LSB=(unsignedchar)len;ISP_Cntrl_RegSP_BUFFER_LENGTH_MSB=(unsignedchar)(len>>8);数据长度while(len-匸0)ISP_Cntrl_RegSP_DATA_PORT_LSB=*buf;/填写FIFO,buf为数据地址buf+;89C51接收主机数据的程序段主要内容如下:ISP_Cntrl_RegSP_ENDPT_INDEX=port;选择端点len二ISP_Cntrl_Reg.ISP_BUFFER_L
14、ENGTH_MSB;len<<二8;len+=ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_LSB;数据长度while(len-匸0)*buf=ISP_Cntrl_RegSP_DATA_PORT_LSB;/从FIFO中读取数据buf+;DMA数据源或数据接收端与主机通信,不仅要求DMA数据源或数据接收端能够提供ISP1581DMA传输引脚需要时序,同时还需要89C51处理选择ISP1581端点等工作。需要注意的是选择进行DMA传输的端点不能同时是ISP1581端点索引寄存器选择的端点设置上传主机数据的程序段主要内容如下:ISP_Cntrl_RegSP_ENDPT_
15、INDEX=portl;/ISP1581端点索弓I寄存器选择的端点ISP_Cntrl_RegSP_DMA_ENDPOINT=port;选择DMA传输的端点初始化DMA传输计数寄存器ISP_Cntrl_Reg.ISP_DMA_TRANSFER_COUNTER_LSB=(UC)Datalength;ISP_Cntrl_RegSP_DMA_TRANSFER_COUNTER_LSB_M=(UC)(Datalength>>8);ISP_Cntrl_RegSP_DMA_TRANSFER_COUNTER_MSB_L=0;ISPCntrlRegSPDMATRANSFERCOUNTERMSB=0;I
16、SPCntrlReg.ISPDMACOMMAND=DMAWriteCommand;启动DMA传输&&!DMA_Int_Flag.BITS.INT_EOT)if(USB_Int_Flag.BITS.SUSP|Kernel_Flag.BITS.Bus_Reset|USBnt_Flag.BITS.EPOSETUP)ISP_Cntrl_RegSP_DMA_COMMAND=DMA_RESET;DMAnit();break;循环判断是否DMA传输结束或系统强制结束=0;DMA_Int_Flag.BITS.INT_EOT=0;复位系统标志设置接收主机数据的程序段主要内容(略)。4主机程序设计
17、主机程序设计包括驱动程序设计与应用程序设计。主机的驱动程序可以使用USB芯片厂商提供的驱动(Philips公司提供了ISP1581的驱动,在Philips网站()上可获得),也可以自己编写。编写主机的驱动程序是USB开发中较困难的事情,通常采用WindowsDDK来实现。目前有许多第三方开发软件,使用他们开发要简单许多,有WinDriverWizard,DriverStudio等(这部分在参考文献:4Windows2000设备驱动程序设计指南中已有很详细说明)。应用程序设计相对比较简单,它调用驱动程序提供的函数即可,包括初始化USB设备,发送操作命令,关闭USB设备等。应用程序也可先用BusHound替代,它可以监控USB口上数据流的一举一动,是调试主机应用程序和固件的有力工具。上面介绍系统程序的运行结果,用BusHound监控的得到数据如图4所示,从图中可以看到从USB口读进来的数据有设备描述符数据、管道信息数据以及从数据端点上读进来的数据块。5结束语本文详细介绍了基于ISP1581芯片的USB2.0接口设计。ISP1581是一款性能优化的USB接口芯片,具有同外部微控制器接口简单、应用灵活、调试方便和性价比较高、适
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菏泽中考试卷真题及答案
- 2025年中国无线网络设备行业市场分析及投资价值评估前景预测报告
- 2025国考哈尔滨市公安执法岗位申论高频考点及答案
- 2025国考广西统计局行测政治理论必刷题及答案
- 2025国考铁岭市党务工作岗位申论预测卷及答案
- 2025国考丹东市统计调查岗位申论题库含答案
- 2025国考包头市司法行政岗位行测预测卷及答案
- 2025国考包头市信访接待岗位申论预测卷及答案
- 2025国考沈阳市德语翻译岗位申论预测卷及答案
- 2025国考安徽统计局申论公文写作预测卷及答案
- DB32/T 3722-2020高标准农田建设项目可行性研究报告编制规程
- 耳石症教学课件
- 学生心理健康一生一策档案表
- 《淡水生态系统之谜》课件
- 王之涣《登鹳雀楼》课件2
- 北师大版小学五年级数学下册教案全册
- 中国少年先锋队成长故事征文
- 种草养鹅项目实施计划方案
- 动物遗传繁育知到智慧树章节测试课后答案2024年秋甘肃畜牧工程职业技术学院
- 无人机网络安全防护-洞察分析
- T-EERT 040.1-2024 环保设备设施安全管理 总则
评论
0/150
提交评论