USB3.0驱动
USB3.0驱动(精选8篇)
USB3.0驱动 第1篇
1 嵌入式Linux驱动开发
1.1 嵌入式Linux
嵌入式Linux系统有两层含义, 狭义的嵌入式Linux系统指的是嵌入式Linux操作系统, 是指对Linux经过裁剪后, 固化在容量只有几K到几M字节的存储器芯片或MCU中, 应用于特定嵌入式场合的专用Linux操作系统。广义的嵌入式Linux系统指的是基于嵌入式Linux操作系统构建的嵌入式系统。
嵌入式Linux系统包括嵌入式Linux内核、文件系统和用户应用程序三部分。嵌入式Linux内核包含Linux的系统调用接口、设备驱动以及Linux内核机制;嵌入式文件系统是嵌入式操作系统的一部分, 它的任务是对逻辑文件进行管理, 其工作包括提供对逻辑文件的操作接口, 方便用户操作文件和目录;用户程序通常指运行于用户空间能接受内核管理和调度的各种可执行程序。
1.2 Linux驱动
驱动程序是Linux内核的重要组成部分, 可以看作是应用程序和物理设备之间的一个软件层, 由设备驱动程序来完成操作系统与硬件设备之间的交互。对于嵌入式开发而言由于没有通用的驱动程序, 因而驱动程序开发便成为嵌入式系统设计过程的一个重要环节。
驱动程序包括配置初始化子程序和I/O请求子程序。配置初始化子程序在初始化时被调用一次, I/O请求子程序的调用通过系统调用或硬件中断信号来触发。自动配置和初始化子程序一般在设备接入系统时或者加载设备驱动时调用, 其主要负责检测所需驱动的硬件设备是否存在或是否能正常工作。如果该设备正常, 则对这个设备及其相关的驱动程序需要的软件状态进行初始化。驱动程序所提供的与设备的打开、释放、读写和控制操作相对应的入口点函数都属于服务于I/O请求的子程序, 并且通过file_operations结构向系统进行说明。中断服务子程序在嵌入式Linux系统中并不是直接从中断向量表中调用设备驱动程序的中断服务子程序, 而是由Linux系统接收硬件中断, 再由系统调用中断服务子程序。
与应用程序不同, 设备驱动程序属于内核的一部分, 所以驱动程序的开发就是Linux内核的开发。完成一个设备驱动程序后, 用户可以动态地将该设备驱动程序加载到内核中或从内核中卸载。加载和卸载的入口函数为init_module () 和cleanup_module () 。除此之外对于设备的每一种操作设备驱动程序中都包含其相应的入口函数。字符型和块设备驱动程序中包括打开设备函数open () 、关闭设备函数close () 、读数据函数read () 、写数据函数write () 和I/O控制函数ioctl () 等。
2 US B3.0驱动程序设计
2.1 US B3.0系统架构
目前国内对USB系统的研究主要在实际应用方面, 一些以往的计算机通用外设和主流的数码电子产品中己经广泛采用USB技术。并成为当今嵌入式开发和应用中的一个热点。相比于USB 2.0总线USB 3.0是一个超高速总线并且具有和2.0总线相似的系统架构。USB 3.0系统架构分为三个层次结构。即:USB 3.0 host层;USB 3.0 hub层;USB 3.0的并行设备层。USB3.0架构向下兼容2.0总线体系结构, 因此USB3.0是一个双总线系统架构 (见图1) 。
USB 3.0 host是USB 3.0和USB 2.0设备连接和通信的主控制器。USB3.0继承了USB 2.0的核心结构, 虽然做了一些外部扩展以适应双总线架构但基本的星形拓扑结构是和USB2.0一样的。对于USB3.0总线任务是通过一个复合电缆及相关连接器构成的。USB3.0主控制器完成包括超高速总线和非超高速总线接口的控制。
USB3.0集线器是用于连接更多USB设备到主控制器而提供更多接口的一个逻辑设备。USB 3.0连接模式允许探测和配置USB设备的最高传输速度。在主机和设备间的最高信号传输速度和当前主控制器的功能及配置的探测以及USB设备的配置情况是通过所连接的集线器来实现探测和配置任务的。USB 3.0主机同时包括超和非超高速总线接口, 采用并行总线方式因此可使两种接口通过hub同时在主控制器的控制下有效工作。
USB 3.0在应用层上至少能达到300Mbyte/s的数据吞吐量。新规范与前代版本兼容, 然而新接口需要新的线缆和连接器, 而且传输距离被限制在3米, 而目前的USB产品可以支持5米长的线缆。3.0标准, 也被称作是超高速USB (SuperSpeed USB) , 在一些特性上是独一无二的。它使用5个端口连线、两个用于发送, 两个用于接收, 一个是地线、来实现全双工从而达到5 Gb/s的物理层速率, 目前的USB产品采用两线, 半双工的架构。外观上Type-A的接头没有改变, 但内部有5个连线来支持全双工, 新的连接器兼容旧的插口。另外, 3.0版本在链路上采用了中断驱动, 而不是目前的轮检方法, 这样进一步降低功耗。
2.2 US B3.0串口驱动设计实例
USB驱动分为USB主机驱动和USB设备驱动, 如果系统的USB主机控制器符合OHCI等标准, 则主机驱动的绝大部分工作都可以沿用通用的代码。
对于一个USB设备而言, 它至少具备两重身份:首先它是“USB”的, 其次它是“自己”的。USB设备是“USB”的, 指它挂接在USB总线上, 其必须完成usb_driver的初始化和注册;USB设备是“自己”的, 意味着本身可能是一个字符设备、tty设备、网络设备等, 因此, USB设备驱动中也必须实现符合相应框架的代码。
在Linux内核中, 串口属于tty设备, 对于一个USB串口设备而言, 其驱动主要由两部分组成:usb_driver的成员函数和tty设备的tty_operations结构体成员函数。
在USB串口设备驱动的模块加载函数中, 将注册对应于USB串口的usb_driver, 利用static int__init usb_serial_init (void) 函数初始化和注册tty驱动。利用USB串口设备驱动的模块卸载函数static void__exit usb_serial_exit (void) 将注销对应于USB串口的usb_driver, 并注销tty驱动。
在usb_driver的探测成员函数usb_serial_probe () 中, 将初始化USB端点等信息, 并通过usb_set_intfdata () 设置接口私有数据, 它也将初始化urb (USB请求块) 。相反, 在断开成员函数usb_serial_disconnect () 中将设置接口私有数据为NULL, 并释放引用计数。
在tty_operations的各write () 、read () 等成员函数中, 将调用usb_serial_driver结构体中的相应函数, usb_serial_driver结构体中封装了串口的各函数 (读写、读写中断端点完成函数、读写批量端点完成函数等) 。
目录drivers/usb/serial/下generic.c文件中提供了USB串口驱动的通用打开/关闭、读/写函数等, 如usb_serial_generic_write () 、usb_serial_generic_write_bulk_callback () 、usb_serial_generic_read_bulk_callback () 等。
3 结束语
本论述归纳了Linux驱动程序设计的一般方法, 并根据工程实践给出了一个基于嵌入式Linux平台下USB3.0驱动程序的设计方法。实践表明:开发一个稳定、高效的设备驱动程序需要工程师把握一个原则就是不要给用户强加任何策略, 因为不同的用户有不同的需求, 驱动程序应该处理如何使硬件工作的问题, 而将怎样使用硬件的问题留给上层应用。总而言之, 驱动程序应当为上层应用提供一个使用设备的工具箱。
参考文献
[1]杨恒.ARM嵌入系统设计及实践[M].西安:西安电子科技大学出版社, 2005.
[2]李驹光, 郑耿, 江泽明.嵌入式Linux系统开发详解[M].北京:清华大学出版社, 2006.
全新USB3.0移动硬盘新品曝光 第2篇
据了解,朗科K308采用酷黑色调,成熟而稳健,在色泽搭配上非常符合颇具气质的成功人士的审美观念。盘体全方位无螺丝设计,塑造简洁时尚之感,正面菱形线条加之独特的高亮处理材质面不仅杜绝了单调并极好的塑造了镜面时尚感。底部磨砂材质可以很好的提高与接触面的耐磨性,防止长时间放置使用所造成的刮花现象,让产品外观经久美观,同时温类肤的材质配以圆润的边角设计也大大的提升了手感,在手中起到了极好的防滑作用。而在性能上,两者均采用10倍速率于早先接口规范的USB3.0接口,符合快节奏下追求高效人士的需求,体验飞一般的极速存取。
另外,朗科在产品品质和存储安全技术上一直抱有极佳的口碑,且K308附带了朗科科技独有的三维立体防震设计,极大的防范移动硬盘使用中随时可能发生的意外,从而为重要数据和移动硬盘本身提供全面保障。
据悉,这款新品将于8月中旬或下旬分别在各大电子城、商城上市开售,届时将有320GB-1TB多种容量供广大消费者选购。
USB3.0标准正式完成并发布 第3篇
由Intel、微软、惠普、德州仪器、NEC、ST-NXP等业界巨头组成的USB 3.0 Promoter Group于2008年11月18日宣布, 该组织负责制定的新一代USB 3.0标准已经正式完成并公开发布。新规范提供了十倍于USB 2.0的传输速度和更高的节能效率, 可广泛用于PC外围设备和消费电子产品。USB 3.0最大传输带宽高达5.0 Gb/s, 也就是625 MB/s, 同时在使用A型的接口时向下兼容。
USB 3.0在实际设备应用中将被称为“USB SuperSpeed”, 顺应此前的USB 1.1 FullSpeed和USB 2.0 HighSpeed。预计支持新规范的商用控制器将在2009年下半年面世, 消费级产品则有望在2010年上市。
USB3.0驱动 第4篇
关键词:USB3.0,数据传输,总线,消费电子
USB演进
通用串行总线 (USB, Universa Serial BUS) 技术问世以来, 在USB设计论坛 (USB-IF) 及相关厂商的大力推动下, 已经成为名副其实应用最广泛的外部数据传输总线标准, 并且逐渐扩展到PC以外的诸多应用。全球有超过100亿台的计算机外设和消费电子产品支持USB连接端口作为其主要或唯一的传输接口, USB可说是有史以来最成功的连接技术。更令人惊叹的是, 据估计, USB生态系统仍以每年30亿台的速度持续扩展, 几乎已将“即插即用”的简易性带到每一台电子设备中, 为消费者提供开箱即用的绝佳使用体验。大众所熟悉的USB接头和线缆已被视为兼容性的象征, 能为各种层面的用户体验创造一个无缝的、无所不在的连接世界。
随着用户对数据传输速率需求不断提升, USB2.0已经无法满足多媒体应用对传输的需要, USB-IF在2008年11月推出全新超高速USB (SuperSpeed USB) 标准, 即USB3.0, 旨在满足富媒体和大型数字文件传输带宽的要求。USB 3.0规定的5Gb/s数据率和200Mb/s的数据吞吐率是USB 2.0的10倍。USB系统的演进如图1所示, USB3.0可以兼容原有各种USB传输标准, 以及支持未来的光纤传输, 如图2所示。
USB 3.0的推出解决了USB 2.0一些性能瓶颈问题。高速USB 2.0提供480Mb/s的数据率, 但实际数据吞吐率往往受I/O性能限制而超不过35MB/s。当下载较大文件时, 较高的吞吐率能节省可观的传输时间。USB3.0可提供高达5Gb/s的数据传输率和200MB/s以上的数据吞吐率, 实际中的表现区别详见表1。
全新特性
USB 2.0接口共有4条线路, 其中两条对应数据输入输出, 另外两条分别是供电和地线。USB 3.0在此基础上增加了5个触点, 其中有四条线, 两条为数据输出, 两条数据输入, 并且这四条线路可以实现双向同时传输, 即采用了对偶单纯形四线制差分信号线。这样整个配线系统总共就有8条线, 4条遵从USB 2.0规范和用于确保向后兼容性, 新增的4条线配置为专门用于USB 3.0通信的两对线 (如图3) 。它们采用全单工工作模式, 一对线发送, 另一对线接收。解决了USB 2.0的输入输出线路无法实现同时工作 (即输入信号时无法输出的问题) 之后, USB3.0的双向传输模式大大提高了传输速度。
SMSC计算与连接事业部门营销总监Mark Fu特别介绍道, USB 3.0在物理层、链接层以及协议层提供其它的优点, 这使它成为显示应用的理想选择。
在物理层, SuperSpeed USB的每比特位功率较USB 2.0为低, 因此, 其速度虽然增加了10倍, 功耗增加却很少。Super Speed信号为基于专用TX和RX差分信号对的双单工 (dual simplex) 信号, 因此总线不需要处理双向流量。由于显示器仅单纯地接收信号, 因此从USB 3.0主机端流向SuperSpeed USB显示器的大量显示数据不会影响反方向数据传输的性能。
在链接层, USB 3.0使用先进编码技术以达到10-20的误码率, 因此可做为稳健且可靠的视频传输总线。扩展到四个链接功耗状态的电源管理提供了实现高效单位数据功耗的良好基础。事实上, 每个设备都能驱动自己的链接状态, 以达到所需的功率特性。当某特定设备没有待传输的数据时, 此设备可将其链接设定在低功耗状态, 不会对其他设备造成影响。除了链接层, USB 3.0还进一步采用了一个全局性的电源管理方案。它在物理层、链接层、协议层、主机端、集线器和设备端等所有层级中, 都采取了省电技术, 以提高整个系统的电源效率。在功耗尽可能降低的同时, 每一个端口上USB 3.0线缆能获得高达4.5瓦 (900 mA@5V) 的功率, 接近USB 2.0的2.5瓦的两倍。这有可能催生出总线供电的崭新应用, 也许利用单根USB线缆即可为台式显示器供电。更令人兴奋的是, 液晶面板技术的最新进展亦同时集中在如何大幅降低功率上面。高功效的LED背光、亮度增强膜以及场序制彩色 (field sequential color) LCD技术等, 都试图把显示器的功耗降低到可控水平, 最终有望实现以单根USB缆线为显示器供电的目标。这些技术的发展, 将使USB显示器成为与USB鼠标或闪存一样普遍的应用。
与此同时, 德州仪器亚洲区市场开发高性能模拟产品市场经理林士元强调, 为了适应节能及待机功耗的新要求, USB3.0还引入了新的电源管理机制, 支持待机、休眠和暂停等状态。通过引入了能效更高的供电协议标准, 放弃了设备轮询模式, 转而采用中断模式。通俗地说, 在USB 2.0模式下, 即使连接的USB处于非活动或待机状态下, USB总线控制器仍然需要定期检查该设备是否需要传输数据。而在USB 3.0模式下, 设备待机时可完全切断USB连接, 需要恢复时会自行向控制器发送一个中断信号, 告知控制器开始数据传输, 这就使得待机设备无需耗电。
市场前景
当年, USB2.0从推出到彻底占领市场仅用了4年的时间, 可谓迅猛之极;现在USB3.0如果按照2009年开始进入市场算起, 今年已经是第三个年头了, 虽然诸多问题限制其扩张的速度, 但在2011年的前景依然光明。
经历了2009年初入市场的试水之后, USB3.0在2010年开始快速增长, 据统计, 2010年USB3.0的芯片出货量接近2009年的3倍。市场调查机构InStat去年底发布报告称, USB 3.0接口的普及因为缺乏芯片组的原生支持而没能在2010年达到预期水平, 但是前景依然是光明的, 预计四年后就会达到现在的12倍。In-Stat提供的数据显示, 2010年全球USB 3.0接口设备出货量接近1400万, 低于业界预计, 但是到2014年的时候将猛增超过17亿, 基本完成普及。In-Stat首席分析师Brian O'Rourke评论说:“2009年底USB 3.0设备开始小规模出货, 2010年在笔记本、台式机、转接卡、内置和外置硬盘、U盘等领域的出货量明显增长。总体来说, USB 3.0正在逐渐铺开。大规模推广仍然受制于PC芯片组的集成支持, 否则PC OEM厂商就可以免费提供USB 3.0, 从而刺激其在PC周边、消费电子、移动设备中的普及。”在芯片出货量方面, IDC则估计2011年USB3.0的芯片出货量有机会一举跃升至1亿颗。此外, Digitimes Research也预估, 2009年到2015年USB3.0出货量的年复合成长率将达89%, 2015年的出货量则将挑战23亿颗, 商机上千亿元。
作为由英特尔, 以及惠普 (HP) 、NEC (现在的瑞萨) 、N X P半导体以及德州仪器 (Te x a s Instruments) 等公司共同牵头开发的标准, 林士元坦言, 相较于其他现有的高速串行接口技术, USB 3.0的传输速率高达5Gbps, 可满足现今最为流行的大量数据传输或高清图像处理等应用。USB3.0是基于目前全世界接口普及 (占有) 率最高的USB而发展出来的, 所以USB3.0在使用者的接受度上以及未来市场的普及率上, 将会延续原来USB的基础上, 而会更加地成长。
测试难题
由于传输速度提升10倍, 传输链路增加1倍, 因此, USB3.0的测试难度可想而知, 传统的USB2.0的测试方案完全不能满足需要。而对于USB3.0的商用进程而言, 测试其可靠性是所有USB3.0开发厂商共同面临的难题。
美国力科公司万力劢介绍, 在USB3.0的物理层测试中有以下难点需要全新的考量。
难点1:完成全部TX测试项目需要多种测试码型, 一些非USB3.0芯片开发人员很难让PUT发出特定的兼容性测试码型。
在USB3.0规范中定义了多种兼容性测试码型 (Compliance Pattern, 简称CP) , 表2所示包括了CP0-CP8九种测试码型。在TX测量中, 需要用到CP0/CP1/CP7/CP8四种码型:CP0用于眼图与抖动、共模电压测量;CP1用于SSC展频测量、随机抖动测量;CP7用于去加重测量;CP8用于差分电压幅度测量。
对于板级研发的工程师, 如果没有IC厂商提供的发包程序, 很难让PUT发出不同的测试码型, 而力科的USB3测试方案可以解决这个问题, 如图4所示, PUT连接了USB3夹具, TX输出到示波器, RX与PeRT的信号输出端相连。通常PUT在上电后会发送出CP0码型, 示波器通过USB电缆控制PERT, 然后PeRT会发出1个Ping.LFPS命令给PUT, PUT接收到1个Ping.LFPS后, 输出的码型切换为CP1, 示波器捕获到CP1码型后, 控制PERT又发送出1个Ping.LFPS, 则PUT的输出码型切换为CP2, 即PUT每收到1个Ping.LFPS就输出下一个CP (CP8的下一个码型为CP0) , 通过用示波器控制PERT, PERT控制PUT发出不同的CP, 即可完成所有TX测试项目。
难点2:在接收机测试时, PUT很难进入环回模式 (L oopback模式) 。
在接收机测试中, 需要通过P o l l i n g.L F P SR x.EQTS1TS2Loopback这一过程才能进入环回模式来测量接收机性能。在这个过程中接收机测试仪器 (比如BERT) 需要不断的和PUT进行“握手” (handshake) , 在链路层与PUT通信, 使其一步一步地进入Loopback模式, 这对一些接收机测试仪器是非常困难的, 比如X公司的接收机测试仪器是传统BERT, 不能与PUT进行“握手”, 很难从Polling.LFPS逐步进入Loopback模式, 而Y公司的接收机测试仪器为任意波形发生器, 可以发送LFPS信令到PUT, 但是无法从协议上识别PUT响应的信令, 于是, 很难逐步从Polling.LFPS进入到Loopback模式。如果未进入Loopback模式, 通常使用人员会在信号源上编辑脚本, 不断调整LFPS、Rx.EQ、TS1、TS2之间的时间间隔, 以期望调整后的信令能逐步使PUT进入环回模式, 当测量新的USB3.0的IC时, 可能又要修改信号源输出脚本。我们称这种只发不收的方法为Blind handshake, 即接收机测试仪盲目地发出信令与PUT“握手”, 但是无法识别PUT响应的信令。
难点3:在接收机测试时, PUT发送出的码流会加入一些SKP, 这样, BERT的Error Dector接收到的数据包括测试码型和一些SKP, 对比码型发生器发送出的测试码型, 传统的BERT会误认为测量到了误码。
在U S B 3.0中, 链路两端的产品的参考时钟频率可能是不一样的, 参考时钟允许的精度为±300ppm, SSC展频引入的频率偏差为0~-5000ppm, 所以总的频率偏差在-5300ppm~300ppm。为了补偿频率偏差, 在USB3中的数据流中每354个symbol要插入两个SKP (即K28.1码) , 接收端需要能识别和删除SKP, 在USB3.0芯片中, 添加和删除SKP是由Elasticity Buffer来实现的。于是, 在接收机测试时, PUT发送出的码流会加入一些SKP, 误码检测器接收到的数据包括了测试码型和一些SKP, 然后对比码型发生器发送出的测试码型, 传统的BERT会误认为测量到了误码。图5为USB3.0的Elasticity Bu er处理SKP的示意图。
写在最后的疑云
即使市场如此前景光明, USB3.0依然存在一些不和谐的因素影响其发展。首要的一个问题是英特尔的态度, 作为USB技术最早的主要发起者以及PC市场的领导者, 英特尔的态度对USB3.0的推广至关重要。英特尔对USB3.0的支持态度让人琢磨不透, 虽然市场已经迫切期盼USB3.0的高性能传输来满足消费者的好奇心, 但英特尔似乎喜欢和整个业界玩捉迷藏。先是英特尔宣布计划延迟推出支持USB3.0的主板芯片组, 推出时间计划在2012年, 随后又露口风可能会在2011提前支持。如果没有英特尔的支持, 就需要在主板中另行安装有支持USB3.0的专门芯片, 这无形中增加了主板制造的成本, 对USB3.0的普及来说相当不利。大多数人猜测英特尔的这个决定的幕后动机, USB 3.0规范早在2008年11月就发布了, 而在IDF期间英特尔则展示了自己的Light Peak光接口技术, 当USB的利润被产业链各个厂商瓜分并且压低到一个相当低的水平之后, 分析人士猜测英特尔试图利用自己的全新技术取代USB 3.0的地位。
另一个现实的问题是价格。目前一套完整的USB3.0设备的成本大概相当于USB2.0设备的5倍。另外, USB3.0设备根据不同应用对芯片有不同的需求, 德州仪器林士元介绍, 主要芯片产品需求包括:USB3.0收发器、USB3.0 SATA Bridge、USB3.04Port HUB、USB3.0 2/4Port HOST Controller、USB 3.0再驱动器/均衡器等。特别是在主控芯片方面, 2009年只有NEC一家独大时的售价高达8美元, 现在即使参与的厂商增多依然停留在3美元左右的水平。尽管USB3.0对于很多存储和移动设备而言, 是个相当不错的卖点, 但消费者和制造商依然非常注重成本与性能之间的平衡点, 特别是在PC中对成本增加会相当敏感, 这些都制约了USB3.0的普及。2011年最大的疑问就是, USB3.0的芯片能否将成本降到1.5美元以下, 这才是USB3.0普及的关键。当然, 据预估, USB3.0要像USB2.0一样, 步入纯以价格竞争的阶段, 至少要再过2至3年, 现阶段而言, 功耗、兼容性与性能三者兼具是最高境界, 谁能离这境界接近一些, 谁就能在推广时期抢得市场大饼。
参考文献
[1]Universal Serial Bus 3.0 Specification, Revision1.0[S].
[2]Electrical Compliance Test Specification Rev0.9, Super Speed USB[S].
[3]Fu M.USB 3.0以Gb级高速开启即插即用的显示新应用[J].精选实用电子设计100例.2010.12
[4] (英特尔信息技术峰会) Perenson M J.SuperSpeed USB3.0:More Details Emerge[J].PCWorld, 2009.01
USB3.0驱动 第5篇
关键词:FPGA,USB3.0固件,SLAVE FIFO,数据通信
随着USB3.0解决方案的出现, 其在保留USB固有优势的基础上大幅提高了数据传输的带宽, 适用于高速数据采集领域。本文针对基于USB的高速数据采集系统进行研究, 设计了一款基于CYUSB3014芯片的USB3.0高速数据采集接口系统, 该系统基于USB3.0协议来实现PC机与FPGA的数据传输。本文介绍了USB3.0固件的设计方法, GPIF II接口特性以及SLAVE FIFO与FPGA的读写操作设计。
1 USB3.0系统结构的设计
如图1所示, USB3.0系统的主芯片架构为Cypress公司FX3系列CYUSB3014 USB3.0控制芯片、FPGA芯片EP3C40F484、DDR2芯片MT47H64M16HR[1]。
CYUSB3014 USB专用控制芯片是新一代USB外设控制器, 具有高度集成的灵活特性, 可帮助开发人员为任何系统添加USB3.0功能。其拥有工作频率可达200 MHz的32 bit的ARM9内核, 使得FX3能够应用在对数据处理要求较高的地方。芯片内部集成了一个512 KByte SRAM, 用于存储代码、配置参数, 同时用作芯片内部DMA通道的缓冲区。并集成了可编程的100 MHz的GPIF II接口能连接多种类型外部器件, 支持最大32个可编程物理端点[2]。
2 FX3固件的设计
固件是用以完成驱动程序无法完成的USB芯片及其外围芯片的初始化及控制工作的代码。FX3固件的主要功能包括:初始化参数的配置、辅助完成设备的重新枚举机制、对中断的处理、数据的接收与发送以及对外围的控制[3]。FX3的固件设计只需调用相应的库函数, 而不需要设计者过分关注底层硬件设置, 大幅降低了固件的开发难度。EZ-USB FX3的固件设计主要包括对GPIF II接口、DMA通道及回调函数的设计[4]。本文主要对GPIF II接口以及DMA通道加以介绍。
2.1 GPIF II接口
GPIF II接口是FX3与外部设备连接的重要组成部分, 利用该接口可以实现与任何外部设备的高速并行数据传输。它具有一个提供多达256个可编程状态的完全可编程的状态机, 可实现与任何处理器、ASIC、DSP或FPGA等的设备的无缝连接。GPIF II接口可在100 MHz的工作频率下实现32 bit数据的并行传输, 最高有效数据的传输速率可达400 MByte·s-1。该接口可配置为主机模式或从机模式, 且数据总线可在8 bit、16 bit及32 bit之间灵活选择[5]。
设计将GPIF II接口配置为32位同步SLAVE FIFO模式, 外部处理器可像对普通FIFO一样对FX3FIFO进行读写。由PCLK信号作为接口状态机的工作时钟, 接口上的地址信号A0∶A1表示要访问的线程[6], FPGA通过检测4个标志信号FLAGA~D来检测缓冲FIFO是空或者满。配置为SLAVE FIFO模式的GPIF II与外部设备的信号连接如图2所示。
2.2 DMA通道
FX3内部通过DMA通道将不同外围接口连接起来, 以实现不同接口之间的数据传输。DMA通道是一种软件结构, 该结构封装了套接字、缓冲区和描述符3种硬件元素。套接字是存在于外部接口中的硬件模块, 一个外部接口可以包含多个套接字, 在固件系统中套接字处于DMA通道的两端, 一个套接字用于输入数据, 另一个则用于输出数据。数据通过套接字流入或流出已建立好的DMA数据通道。缓冲区是控制器系统内存中的数据缓冲区, 相当于DMA数据通道中的中转站, 流入套接字的数据首先被存放到缓冲区中, 然后才能被输出数据的套接字从缓冲区中读出。描述符作为一种数据结构可将与数据流相关的套接字和缓冲区关联起来。图3为一个方向为P2U的DMA数据通道, 此数据通道由8个尺寸为16×1 024的缓存及一个PIB套接字和一个UIB套接字组成[7]。
FX3提供了多种DMA通道模式, 可分为两种:一种是自动DMA通道;另一种是手动DMA通道[8]。自动DMA通道在通道建立起来并开始运行后, 固件就不再干预数据流的传输, 数据将连续不断地流过自动数据通道, 因不需固件干预, 所以这种通道模式能提供最大的数据效率;而手动DMA通道在数据流动过程中需要CPU干预, 这样就可监视或修改数据流, 但有可能会降低数据的传输效率。所以设计采用自动DMA方式实现USB接口与GPIF II接口的数据传输[9]。
3 FPGA中实现读写程序设计
本文通过FPGA采用状态机模式控制同步SLAVE FIFO接口的读写操作来实现访问FX34个线程的功能。
(1) SLAVE FIFO读操作。
IDLE:设定SLAVE FIFO的地址A0∶A1;
STATE 0~3:状态自加, 使FIFO地址稳定且SLCS被激活;
STATE 4:SLOE被激活, 驱动数据总线;
STATE 5:SLRD和外部写信号被激活。且FIFO指针在PCLK的上升沿更新, 这会启动从新寻址位置到数据总线之间的数据传输。
(2) SLAVE FIFO写操作。
IDLE~STATE 4:与读操作相同, 只是在STATE 5激活SLWR信号以及外部读信号。当SLWR被激活时, 数据写至FIFO和PCLK的上升沿, FIFO指针递增。
4 USB3.0采集卡实测
设计的USB3.0样板出来后需要从多方面对其进行实际测试以验证其正确性。下面从两方面测试板卡设计的正确性。
(1) USB3.0固件枚举测试。USB3.0固件能否正常工作的一个重要标志是当USB3.0控制器连接到主机上时, 设备能否正常运行。设计采用Cypress主机测试软件USB Control Center对FX3固件枚举功能进行测试。经测试, 测试软件成功接收了由固件发的各种描述符。图4为USB3.0的枚举成功后在测试软件上的正确显示。
(2) USB3.0数据传输测试。设计通过EP1 OUT端点来控制EP2 IN和EP2 OUT两个端点数据的接受和发送。当通过EP1 OUT发送的最后32位数的低4位为4'h1时, FPGA接受来自EP2 OUT端点的数据;当通过EP1 OUT发送的最后32位数的低4位为4'h F时, FPGA向EP2 IN端点发送测试数据, 如图5所示。图6为逻辑分析仪实时监测的PC向FPGA发送的数据显示。
5 结束语
本文介绍了USB3.0控制器的固件及FPGA读写操作的主要工作机制, 并通过实验验证了所设计USB3.0板卡的稳定性及正确性。对USB3.0固件机制的深入研究是提高设计质量的前提, 因而有必要对该固件作进一步研究以提高设计的效率与正确性。
参考文献
[1]Cypress Semiconductor Corporation.Designing with the EZUSB FX3 slave FIFO interface[EB/OL]. (2011-01-11) [2013-12-12]http://www.cypress.com.
[2]Cypress Semiconducter Corporation.EZ-USB FX3 hardware design guidelines[EB/OL]. (2011-07-14) [2013-11-24]http://www.cypress.com.
[3]刘延波, 郑世强, 王斌.USB设备固件程序设计[J].信息工程大学学报, 2004, 5 (2) :56-60.
[4]岳奎, 刘少君.USB协议的下的PC机与FPGA的数据通信[J].微型电脑应用, 2009, 25 (12) :46-52.
[5]Cypress Semiconductor Corporation.CYUSB3014 EZ-USB FX3 super speed USB controller datesheet[EB/OL]. (2009-07-14) [2013-11-10]http://www.cypress.com.
[6]Cypress Semiconductor Corporation.GPIF II designer 1.0[EB/OL]. (2012-03-02) [2013-11-20]http://www.cypress.com.
[7]陈云飞, 胡荣强, 李伟.基于EZ—USB FX2的固件程序设计[J].电子器件应用, 2007, 9 (1) :42-44.
[8]Cypress Semiconductor Corporation.Univeral serial bus USB3.0 specification revision 1.0[EB/OL]. (2008-11-12) [2013-11-10]http://www.cypress.com.
USB3.0驱动 第6篇
C y p r e s s (赛普拉斯) 半导体公司日前宣布推出业界首款可大幅提升移动手持设备性能的USB 3.0 (SuperSpeed USB) 解决方案。West Bridge Benicia (CYWB0263) 外设控制器是一款高度优化的数据传输卸载引擎 (DtOE) , 不仅能将移动设备的IOPS (每秒输入/输出运算次数) 吞吐量翻番, 支持高清视频流, 每秒多媒体内容的“侧载”速率高达200MB, 而且还能将充电电流提升至高达900mA, 从而实现电池充电时间减半。此外, Benicia还可提供其它性能优势, 确保实现最精彩的用户体验。
此外, Cypress还面向移动设备推出了一款全新的USB OTG和USB 2.0解决方案West Bridge Bay控制器, 支持SD 3.0和e-MMC4.4x、提供EZ-Dtect功能、采用SLIM II架构等, 非常适用于不具备USB 3.0功能的设备。
新型West Bridge外设控制器可作为手持设备中嵌入式应用处理器的数据传输协处理器, 能将处理器从数据密集型运算中解放出来。其采用可配置的ARM9处理器内核, 可让器件充当低功耗音频协处理器。
USB3.0驱动 第7篇
数字喷墨印刷机打印宽幅大, 彩色印刷质量稳定, 但印刷速度较慢, 因此在数字喷墨印刷机系统中采用USB3.0作为的数据传输系统能充分利用USB3.0在数据传输的速度的上优势。本系统选用USB3.0进行图像数据信息和打印参数的传递, 并采用cycloneⅡEP2C8Q208C8作为主控板, 日本精工公司的高精度喷头, 提高了整个印刷机系统的整体打印速度和质量。
二、USB3.0协议简介
USB (Universal Serial BUS) 即通用串行总线, 是计算机一个外部总线的标准, 用于规范和引导计算机与外部设备的连接和通讯, 最新的USB3.0版本, 是目前计算机系统的标准扩展接口。其传输速度理论上可以达到625MB/s[3], 且兼容性良好。
1. USB3.0的体系结构
USB3.0的体系包括主机、设备以及物理连接三个部分[4], 作为USB家族的最新系列接口, 不仅包括USB2.0的2线差分信号, 同时具有本身的4线差分信号支持双向数据流, 因而它不仅能进行超高速传输, 同时向下兼容USB2.0的传输。。
2. USB3.0的协议
USB3.0协议层在主机和设备间定义了end-to-end通讯规则。超速协议在主机和设备端点 (endpoint) 之间提供应用数据信息交换, 设备可以通过一个特定端点向主机发起异步请求服务。
3. USB3.0的数据传输
USB3.0和USB2.0相同也有4种传输类型:控制传输 (Control Transfer) 、块传输 (Bulk Transfer) 、中断传输 (Interrupt Transfer) 、同步传输 (Isochronous Transfer) 。不同的是块传输最大包大小增加为1024B, 控制端点最大包大小增加为512B。控制端点不支持突发, 块传输可以突发1~16, 块传输还增加了流能力;中断传输和同步传输可以突发1~16 (当最大突发大小为1时, 对于同步传输, 其最大包大小能为0-1024之间任意大小, 对于中断端点, 最大包大小可以在1-1024之间任意大小;如果最大突发大小为>1时, 最大包大小只能为1024) 。
三、数据传输系统的设计
在联机打印的方式下, 上位PC机的软件控制系统直接通过USB数据传输系统将打印需要的图像数据和打印参数传递给下位印刷机系统的的主控制器FPGA, FPGA通过内部的处理器将图像数据和打印参数进行解析, 然后传输到喷头控制单元进行打印。在这种打印的方式下, 打印的速度越快, 精度越高, 印刷机的的性能就越高。而限制打印机印刷速度的关键在于数据传输的速度, 因而想提升打印机印刷的速度的核心是提高数据传输的速度。
因此在数据传输系统中, 选用塞普拉斯公司的FX3 CYUSB3014[9]芯片作为USB3.0接口处理器, 以此来提升数据传输的速度, 提高打印机印刷的速度。
1. CYUSB3014芯片结构
作为塞普拉斯公司最新一代的USB3.0[4]外设控制器, FX3 CYUSB3014集成了USB3.0和USB2.0物理层以及32位ARM926EJ-S微处理器, 片载512KB RAM适合代码和数据的存储, 具有强大的数据处理能力, 32个物理端点 (16个输入端点和16个输出端点) , 可编程的100-MHz GPIF II接口, 三种总线连接方式 (8/16/32) , 是完全兼容USBV1.0和USB2.0规范的, 它支持三种工作模式 (全速full speed 12Mbps, 高速high speed 480Mbps, 超高速super speed 5Gbps) 。具有四种传输方式:控制传输、中断传输、同步传输和块传输。
四、USB3.0接口芯片固件程序实现
USB固件程序是指运行在CYUSB3014芯片里处理器中的程序。固件程序的主要功能是初始化ARM9内核和FX3设备的启动, 完成基于硬件平台开始的初始化, 完成从器件FIFO模式下USB枚举描述符的定义以及常量的定义使用。因此, 固件程序的开发是USB设备开发中的最重要也是最基础的环节, 是实现数据传输的重要环节。
塞普拉斯公司提供了一个类似于EZ-USB FX2的EZ-USB FX3固件开发套件, 它为开发者提供了一个比较完整的基于Eclipse固件框架和系统函数库。只是开发软件由Keil C变成了Eclipse。通过EZ-USB FX3固件框架进行CYUSB3014的开发, 可以很好的提高开发的效率, 完成数据传输系统的设计。固件程序的实现FX3 CYUSB3014固件的实现主要进行两个方面的设计:GPIF模式寄存器的配置和用户自定义请求的数据传输。
五、CYUSB3014接口芯片驱动的实现
针对USB来说, KMDF是Windows系统底层驱动, 文件名为:*.SYS, Win7为2万多外设提供了KMDF, 其中也包括USB2.0, 但是不包括USB3.0。因此对于具有USB2.0协议的FX2, 只需编写与FX2相关的UMDF即可;UMDF是用户层驱动, 文件名为:*.DLL。无论内核模式的驱动程序或者用户模式的驱动程序, 都使用同一环境进行构建, 这一环境称为WDK;都采用同一套对象模型构建, 采用同一个基础承载, 这个基础就是WDF。由于WDF驱动模型提供了面向对象和事件驱动的驱动程序开发框架, 尤其是针对PNP和电源的设计方式, 更是大大降低了开发难度。
六、结论
随着印刷机技术的快速发展, 市场和客户对于印刷机的打印速度的要求越来越高, 因而在数据传输接口方面还需要进一步的完善和提高。采用USB3.0协议设计数据传输系统, 有助于进一步提高数据的传输速度, 进而达到数字印刷机对超高速数据传输的需要。
摘要:本文提出以USB3.0为核心的数据传输系统, 采用Cypress公司的CYUSB3014控制芯片通过采用同步SlaveFIFO自动 (Auto) 传输模式, 提升了数字喷墨印刷机的数据传输速度、喷绘速度和喷绘精度。
关键词:数据传输,USB3.0
参考文献
[1]晁红凤.绿色环保印刷的可持续发展道路.上海包装, 2012, (12) :12-14.
[2]刘福平, 王安玲, 齐晓, 周振, 樊振田.印刷速度对油墨渗透的控制及实验研究.包装工程, 2010, 31 (11) :99-101.
[3]Universal Serial Bus3.0 Specification.http://w w w.nec.com.cn, 2009.1.
[4]陈启美, 丁传锁.计算机USB接口技术.南京:南京大学出版社, 2003.
USB3.0驱动 第8篇
全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)于2015台北国际电脑展(Computex Taipei)推出了带有主机和设备端口交换、I/O桥接及各种其他串行通信接口功能的USB3.0智能集线器产品。全新USB5734和USB5744器件包含了一个集成单片机,为USB集线器带来新功能, 在减少整体BOM成本的同时也降低了软件的复杂性。USB5734/44系列产品已通过USB-IF协会的标志认证(TID 330000058),拥有很好的信号完整性,有助实现更稳健的PCB设计并降低对不同电缆、连接器和布线的敏感性。
欲了解更多有关USB5734和USB5744的信息,请访问:http://www. microchip.com/USB5734-Page-060215a。欲查看产品简介,请访问: http://www.microchip.com/USB5734-USB5744-Press-Presentation060215a。
所谓智能集线器就是一个集成了通常与独立MCU或处理器关联的系统级功能的USB集线器。Microchip新型USB3.0智能集线器允许上行主机控制器不使用USB连接,而通过从USB到I2C ™、SPI、UART和GPIO接口的直接桥接与多种类型的外设进行通信。这一集成功能无需额外的外部单片机,大大降低了系统设计的复杂性,并增强了USB主机硬件的控制功能。
Microchip拥有专利的Flex Connect技术赋予了USB5734智能集线器独特的功能, 令其可以通过硬件和 / 或软件系统命令实现USB主机和USB设备之间的动态交换,使新的USB主机也得以访问下行资源。同样, Flex Connect技术还可以在两个不同的USB主机之间切换共有的下行资源。由于类驱动程序和应用软件位于转换为主机的设备中, 将Flex Connect功能集成于系统大大简化了主控主机的整体软件要求。
系统开发人员可以通过低成本自举电阻轻松配置端口和选择应用设置。如果需要更高级功能,可以利用Microchip的配置工具Pro Touch2对USB5734/44进行配置和编程。
USB5734和USB5744 USB3.0控制器集线器的应用范围非常广泛,涵盖计算、嵌入式、医疗、工业和网络市场等。 终端应用实例包括高清电视、平板电脑、笔记本电脑、电子书阅读器、照相机、扩展坞、显示器、手持设备、POS设备、ATM、机顶盒、分线盒和运动传感器等。 USB5744采用56引脚7x 7 mm封装,是业内最小的适用于电路板空间受限应用的USB3.0集线器。
USB3.0驱动
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。