第25卷2005年12月计算机应用ComputerApplicationsVol.
25Dec.
2005文章编号1001一9081(2005)12Z-0475-02基于MicroBlaze系统的USB主机控制器的实现姚建平'·2,王负松,.
2(1.
中国科学院计算技术研究所,4e京100080;2.
中国科学院研究生院,ae京100080)(jpyao@ict.
ac.
cn)摘要:虽然USB设备在日常生活中得到了广泛的应用,但它们之间的数据交换却依赖于携带不便的PC.
在文中实现了OPB接口的USB主机撞制器,并和其他标准IP核一起组成一个MicroBlaze系统.
该系统将处理器、总线、片上存储、外设控制器等都集成于一片FPGA内,实现了主机所需具备的大部分功能,通过它可以使得USB设备间的数据交换变得便捷有效.
关键词:USB主机控制器;MicroBlaze;OPB;FPGA;EDK中图分类号二TP303文献标识码:A目前,通用串行总线(USB)是一种很流行的接口,但USB设备之间的数据交换必须通过主机.
而扮演主机角色的通常是PC,由于PC携带不便,造成数据交换的不便.
本文讨论的主要是如何在一个FPGA上实现大部分主机的功能包括USB主机控制器L,J.
通过它使USB设备间的数据交换变得便捷有效.
1FPGA上系统的结构—MicroBlaze系统USB总线较一般的串行总线复杂它包括硬件部分(USB主机控制器)和软件部分(USB驱动).
处理器执行用户程序,并调用USB驱动来控制和使用USB总线.
在本文中处理器选用的是Mliax的MicroBlaze,与外设交互的总线选用IBM的片上外围总线(OPB)aFPCA内的整个MicmBlas.
系统的框架如图to图1FPGA内的MicroBl-系统下面将对主要部分作介绍:(I)MicroBIaze处理器MicmBlaze处理器是一个32位Harvard总线RISC结构软核,可嵌人至XilinxSpartan和Virtex结构FPCA中.
在Virtex-IIPro上实现时频率可达150MHz,只占用约5万逻辑门的资源.
它拥有32个通用寄存器RO一R31和2个特殊寄存器:程序指针(PC)和处理器状态寄存器(MSR).
指令长度均为32位,均有3个操作数.
指令分成A和B两种类型.
类型A的操作数均为寄存器,如ADDRd,Ra,Rb,即Rd二Ra+Rb,类型B的操作数分为2个寄存器和1个16位的立即数,如ADDIRd,Ra,IMM,即Rd二Ra+IMM.
指令执行是单发射3级流水,分为取指、译码、执行3部分.
对大部分指令来说,每I级只需要1个时钟周期,所以3个时钟周期后就可以完成.
在满负荷流水的情况下,平均一个时钟周期就可以完成一条指令的执行.
但也有一些指令的执行这一级需要多个时钟周期才能完成,这时紧接着的下一条指令的执行就会被延迟.
MicmBlaze是一种大头端(BigEm"二)的处理器,数据类型可分为字、半字和字节三种.
更详细的MicroBlaze处理器的资料可以参考文献1210(2)OPB总线[,]MicroBlaze通过OPB总线对外设进行访问.
OPB是为了方便芯片内部的外设控制器之间的连接而设计的.
它遵循IBMCoreConnect总线结构,是完全同步的总线.
OPB总线上可连接多个master和slave.
Master若要获得总线需先向.
,biter提出请求,arbiter会根据优先判决法则授权给某个master.
该maste:获得允许后就可以通过总线与某个slave进行数据操作.
Slave在操作完成后会以ACK信号作为响应.
Master收到ACK信号后会自动放弃总线,由另一个提出请求的master占用总线.
若长期没有收到ACK信号,如超过16个时钟周期,arbiter会发出TIMEOUT信号以终止master的操作.
每一个master,和slave都会有地址总线、输人,输出数据总线和控制总线.
同一类的总线(如所有.
aste:的地址线)会先通过一个"或门"总线结构做"或],操作(而不是通常的三态方式)再连接到OPB总线上.
所以当一个master或slave处于非活动状态时,它的输出均应为"0".
(3)片上系统的组织方式MicraBlaze为32位处理器,故寻址空间可达4C.
在如图1的系统中,存在2种总线结构.
一种是本地内存总线(LMB),只需2个时钟周期就可以完成读写,它用于连接MicroBlam和BRAM(BlockRAM),相当于片上内存.
如果可执行的代码量小,如几十K字节,则可以完全存放在DRAM中,不需要再添加额外片外存储.
另一种就是片上外围总线(OPB),所有外设均连接在OPB总线上,MicmBlaze作为一个收稿日期:2005-03一29;修订日期:2005-06-09作者简介:姚建平〔1978一).
男.
硕士研究生,主要研究方向:嵌入式片上系统;王贞松〔1945一),男,研究员,主要研究方向:实时信号处理、计算机通信476计算机应用2005年maste:连接到OPB上,控制所有的slave.
每一个slave都被分配了一段独一无二的地址空间,这样可以和别的slave区分开来.
(4)设计流程整个MicroBlazc系统可通过嵌入式开发套件(XilinxEDK)进行开发,流程如图20RxFIFO,再通过OPB总线存人内存.
(5)USB_PHY:这里主要包括串行接口引擎(SIE),主要是功能是串/并转换、同步、位填充(BitStuffing)、反转不归零编2解码(IVRZI)等.
图2MicmBl-系统设计和实现流程EDK集成了必需的开发调试工具并拥有许多标准的外设软核,如串口(UART)、时钟(Timer)、GPIO,Memory控制器(SDRAM)、调试模块(MDM)等.
另外还可以加人一些用户定制的软核,如LCD控制器和下面将要详细讲到的USB主机控制器等.
MI-IS和MSS文件都是由用户根据整个系统的要求通过EDx生成的.
其中MHS文件包含对了整个Mi-Blaze系统组织的描述(包括处理器、总线、外设等),硬件平台生成器(PletGen)通过它产生整个系统的网表,结合约束文件可最终生成可配置文件用以卜载.
Mss文件包含了所确乡卜设的驱动等信息的描述,库生成器(LibGen)通过它产生所需的驱动,再由MB-GCC工具对用户程序进行编译生成可执行程序.
如程序量小则可以随配置文件~块下载至目标FPGA的BlockRAM中,程序量大则可通过调试模块MDM下载至SDRAM中.
2USB主机控制器的结构设计及应用这个USB主机控制器是用Verilng代码设计完成的,总线接口是OPB总线.
在软件与硬件的分割上参考OHCf0i,硬件部分主要包含以下几个部分(如图3)a(1)OPBslave这部分主要由寄存器和它们的响应处理器读写控制逻辑组成.
这些寄存器都分配有一个独立地址,可由处理器直接进行访问.
主要有控制寄存器、命令状态寄存器、链表头指针寄存器、中断寄存器等.
(2)OPBmaster:这部分主要用来与总线上其他slave进行数据交互.
如读取链表信息,读取要传送的数据,将数据写人内存等.
(3)ControlLogic:这是控制器中最重要的部分,负责处理所有链表的信息,维持设备的状态,产生各种数据包,CRC产生及校验,各种差错处理等.
(4)FIFO:有2组FIFO,为数据发送和数据接收FIFOo从内存读回来的数据先送人TxFIFO,经过处理再通过USB串行接口引擎送到USB设备.
从设备接收到的数据会先存人图3USB主机控制器结构USB主机与USB设备间的数据交换其实是USB主机软件分配的内存空间与USB设备上的端点之间的数据交换.
按照数据交换的方式分成4种传输方式:批量(bulk)传输、控制(control)传输、中断(interrupt)传输和实时(isochronous)传输.
下面以主机通过批量传输方式向设备传送数据为例,介绍一下USB系统的工作流程.
每一个USB设备都有一个端点号为0的默认端点.
主机通过它获得USB设备的所有信息,包括端点、接口、配置的描述等.
在一个USB系统中最多可以有127个USB设备.
主机将USB系统中所有设备的传输类型相同(如批量传输)的端点组成一个链表.
USB驱动接收到应用程序v0请求后将要传送的数据地址信息组成队列,将队列头指针置人将要把数据传送至的端点上.
然后设置USB主机控制器中slave中寄存器信息(包括链表使能位及链表头指针等).
Controllogic部分根据slay.
中寄存器的值通知master读回链表信息、队列信息,分析完后又取回数据放入TxFIFO.
然后将TxFIFO中的数据以一定的顺序打包通过USB一HY发送至USB总线上,并最终到达USB设备.
USB设备接收到数据后,检查数据有效性,无误则会发送ACK包至主机.
主机接收到ACK包后完成本次传输,更新链表信息,并准备下一个传输.
如设备无法接收数据或判断数据无效则会发送NAK包,主机接收到这个包后会过一段时间再尝试这次数据的传输.
对一个USB设备来说,设备的驱动提供了访问它的方法.
对大容量存储设备来说,它的驱动都会遵守massstorage协议[s].
实现了这个协议再加上文件系统就可以实现对设备上文件的列举、读、写等功能.
通过USB协议将一个设备上的文件数据读人,暂存人SDRAM或OPBRAM,再通过协议写人另一个设备,这样就实现了设备间数据交换.
3试验板及调试的情况该实验板是为了方便USB主机控制器在板上的调试而设计的.
主要有以下几个部分XilinxFPGA(XC3S400)、配置用PROM(XCF16P)、16MB的SDRAM、USBtransceiver(下转第478页)478计算机应用2005年的要求.
经过长期网络计费管理和开发经验,对目前计费方式进行改进,原则是结合基于以太网广播特性的数据采集技术和基于代理服务器的数据采集的工作方式的原理,充分发挥两种工作方式的优点,避免其缺点.
个人计舅湘L图1计费系统网络拓扑图整个计费系统包括透明网关、无源光分路器/韧合器(POS,PassiveOpticalSplitter)、中心流量采集机和认证服务器.
认证服务器包含B/S模式认证系统.
透明网关采用截断式接人,可以对数据包按一定的规则作出处理,如转发和丢弃、中心流量采集机采用监听的方式接人、对流量信息统计存储.
计费系统网络拓扑结构如图I所示.
计费系统流程如下:1)Intranet用户需要使用网络服务,试图与Internet连网时,由于第一次连接Internet,所以透明网关对该IF处于截断状态.
透明网关通知认证服务器,重定向认证页面给该IP的用户.
2)Intranet用户通过认证页面把账号、密码,IF地址发送给认证服务器,认证服务器对该用户进行认证.
3)认证通过后,认证服务器向透明网关发送连网消息,透明网关在控制列表里修改或添加该IF的记录,记录该IF的连接状态,开放该IF的流量.
4)认证服务器向中心流量采集机发送连网消息,中心流量采集机首先增加或修改关于该账号的记录,该记录包含IP地址,使该用户的账号注册使用IF,以便从该IF进出的数据量被统计到该用户的账号上去.
5)中心流量采集机开始对与该IF有关的数据包进行监听.
6)此后有关该IP发送的数据分组经过透明网关时,打开IF分组头部查看该IF地址是否流量放开,如果放开则正常发送.
如果己经注销,则转到I).
7)用户停止使用网络时,要向认证服务器注销,由认证服务器向网关和中心流量采集机发送终止使用的消息,这时透明网关撤销对该IF的使用.
4.
2实现该计费系统的关键技术计费系统的数据采集模块采用Linux平台,在GCC下开发,该模块作为Linux的核心模块,使用inamod命令加载核心模块,使用-mod命令卸载模块.
采集模块作为Linux的核心模块进行数据采集,这样可以提高系统运行的效率.
在体系结构中有可能成为系统瓶颈的是中心流量采集机"对数据包作处理后存储到数据库中"这步,所以在该方案实现时使用多服务窗混合制排队模型对它进行了优化.
采用无源光分路器辐合器(POS,PmsiveOpticalSplitter)可以提高避免传统共享式HUB对带宽的限制.
在该体系结构中我们采用一个透明网关,它连接内部网络和外部网络,但是在IF层以上它对于用户和网络设备都是透明的,在这个透明网关上可以实施一定的规则,规则包括安全和计费两部分内容:转发时首先检查IF分组中的IFMAC地址对与预先设置的IFMAC对是否匹配,因而可以阻断IFMAC不匹配的终端与外网的通信.
在此基础上,IF地址还与用户建立关联.
用户通过身份认证后才能使用需要缴费的服务.
这种实现方法可以很好地防止IF地址盔用,并将用户使用的流量信息准确地记录到用户账号上.
数据采集模块作为系统瓶颈,我们采用多线程技术,提高中心流量采集机系统并行程度和系统的吞吐率在该计费系统中,采集的数据量非常巨大,并且需要及时存人数据库中,加之数据库不断进行查找和累加统计流量采集数据,给计费数据库产生巨大的负荷.
由于触发器具有实时性高、处理速度快、数据一致性好等优点,因此我们采用触发器技术.
5结语本文系统对网络带宽占用小,且不增加路由器的工作负荷;可以避免用户访问网络时在代理服务器上出现瓶颈;同时可以对上网用户施加各种控制策略,可管理性较好,很好地解决了IP盗用问题.
另外该系统通用性好,易于扩展,能够为IP网提供一套实时、高性能、可控制的计费系统.
参考文献:[I]王平,李信满,赵宏.
等.
基于服务质量的网络计费的研究1]l-小型微型计算机系统,2002,(1).
12]柴晨阳基于校园网的网络计费系统的研究与实现[J1计算计工程与科学,2002,(5).
[31丁宇波,陈根才一反网络盗用及计费机制的校园网络结构设计[JI计算机工程,2003,(3).
[4]TANENBAUMS.
ComputerNetworks(FourthEdition)[M].
Pear-~Education.
2004.
(上接第476页)(ISP1107),LED和LCD、按钮、48M晶振、MAX232,JTAG等.
整个MicroBlaz.
系统的配置文件和控制程序通过JTAG存于PROM中.
上电时FPG、被自动配置,随后Mi-Blaze开始执行存于BRAM中的程序.
一开始进行外设控制器的初始化,然后检测USB设备的连接状态,读人USB设备的属性信息等.
随后就可以根据用户通过BUTTON输人的指令进行执行.
如列举文件和目录信息,读文件,写文件等.
执行过程中的信息可以通过LED或LCD显示出来.
4结语在利用现有MicmBl.
e标准IPcore的基础上,通过添加本文设计的OPB接口USB主机控制器核,使得在一片FPGA上实现整个主机功能成为可能.
通过它使得大容量存储USB设备之间的数据交换变得非常便捷有效,通过进一步的改进就可以进人移动领域.
参考文献:[1]UniversalSerialBusSpecification,Revision1.
1[S].
1998.
[2]Mic.
BlaaeProcessorRef-ccGuide(,4.
0)[Z].
2W4.
[3]On-ChipPeripheralBusArchitectureSpecifications,Version2.
1[S].
[4]OpenHostCantnnllcrInterfaceSpeiificationforUSB,Release:1.
0a[S].
[51UniversalSerialBusMassStorageClass,Bulk-OnlyTransportRevi-stun1.
0[S1.
1999.
搬瓦工今天正式对外开卖荷兰阿姆斯特丹机房走联通AS9929高端线路的VPS,官方标注为“NL - China Unicom Amsterdam(ENUL_9)”,三网都走联通高端网络,即使是在欧洲,国内访问也就是飞快。搬瓦工的依旧是10Gbps带宽,可以在美国cn2 gia、日本软银与荷兰AS9929之间免费切换。官方网站:https://bwh81.net优惠码:BWH3HYATVBJW,节约6...
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款到网站余额,超过2天...
spinservers是Majestic Hosting Solutions LLC旗下站点,主要提供国外服务器租用和Hybrid Dedicated等产品的商家,数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。目前,商家针对部分服务器提供优惠码,优惠后达拉斯机房服务器最低每月89美元起,圣何塞机房服务器最低每月...
大容量存储控制器驱动为你推荐
域名代理现在做域名代理好做吗?还能赚到钱吗?外国虚拟主机为什么淘宝上的 外国的虚拟主机 这么便宜?网络服务器租用服务器租用 使用方法vps国内VPS哪个好com域名空间域名和空间是什么意思ip代理地址ip代理有什么用?有图片..域名购买如何购买域名?域名申请申请域名需要什么条件?具体点!急!急!!!域名备案域名备案需要什么php虚拟空间普通网站需要多大空间?本人新手php学习者,想买个虚拟空间用来放自己做的一些企业站,只是练习用途
根域名服务器 香港bgp机房 inmotionhosting 私服服务器 国内永久免费云服务器 2014年感恩节 青果网 512m内存 gg广告 骨干网络 免费个人空间申请 网站木马检测工具 可外链相册 视频服务器是什么 网购分享 阿里云免费邮箱 免费asp空间申请 腾讯数据库 服务器托管价格 七十九刀 更多