总线大容量存储控制器驱动

大容量存储控制器驱动  时间:2021-01-13  阅读:()
第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.

PQS彼得巧 年中低至38折提供台湾彰化HiNet线路VPS主机 200M带宽

在六月初的时候有介绍过一次来自中国台湾的PQS彼得巧商家(在这里)。商家的特点是有提供台湾彰化HiNet线路VPS主机,起步带宽200M,从带宽速率看是不错的,不过价格也比较贵原价需要300多一个月,是不是很贵?当然懂的人可能会有需要。这次年中促销期间,商家也有提供一定的优惠。比如月付七折,年付达到38折,不过年付价格确实总价格比较高的。第一、商家优惠活动年付三八折优惠:PQS2021-618-C...

触摸云 26元/月 ,美国200G高防云服务器

触摸云触摸云(cmzi.com),国人商家,有IDC/ISP正规资质,主营香港线路VPS、物理机等产品。本次为大家带上的是美国高防2区的套餐。去程普通线路,回程cn2 gia,均衡防御速度与防御,防御值为200G,无视UDP攻击,可选择性是否开启CC防御策略,超过峰值黑洞1-2小时。最低套餐20M起,多数套餐为50M,适合有防御型建站需求使用。美国高防2区 弹性云[大宽带]· 配置:1-16核· ...

raksmart:年中大促,美国物理机$30/月甩卖;爆款VPS仅月付$1.99;洛杉矶/日本/中国香港多IP站群$177/月

RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...

大容量存储控制器驱动为你推荐
注册域名注册域名要提交什么资料?美国虚拟主机空间请经验丰富的高手给指导一下,我想选择适合个人网站应用的美国虚拟主机(空间),都是哪些服务商比较好?me域名注册请问 .me 域名在哪里注册或查看,至少万网查不到租服务器租个一般的服务器大概多少钱啊?vps国内VPS哪个好vps主机vps主机好吗?是不是垃圾?网站空间域名关于网站的域名和空间?国外网站空间国内空间 美国空间 香港空间相比较,哪个好?大连虚拟主机大连华企智源是做网站的吗?长沙虚拟主机长沙虚拟主机租用 哪里的比较靠谱 朋友介绍湘域互联的 有谁用过
备案域名 lamp安装 阿里云搜索 godaddy支付宝 服务器日志分析 ev证书 私有云存储 中国特价网 合肥鹏博士 台湾谷歌地址 免费个人空间申请 上海域名 双拼域名 softbank邮箱 国外免费asp空间 绍兴电信 域名与空间 免费网络 空间申请 广州主机托管 更多