嵌入式Linux下USB设备的大容量数据传输驱动开发与实现.docVIP

嵌入式Linux下USB设备的大容量数据传输驱动开发与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux下USB设备的大容量数据传输驱动开发与实现 DOI:10.3969/j.issn.1001-3824.2011.02.O14 嵌入式Linux下USB设备的大容量数据 传输驱动开发与实现 范耀武,何维,田增山 (重庆邮电大学无线定位与空间测量研究所,重庆400065) 摘要:针对手持终端探测过程中大容量数据传输驱动开发存在的难点,利用嵌入式Linux平台及USB驱动架构, 分析了EZ—USB驱动读取数据的流程,提出了大缓存USB驱动的设计方案,通过原型设备测试验证了该设计方案 的有效性,解决了EZ—USBFX2芯片高速传输中出现的数据丢失现象. 关键词:嵌入式Linux;高速传输;USB设备驱动;内存页申请 O引言 USB以其低成本,速度高,通用性强,支持即插 即用等优点使得越来越多的设备采用USB接口. 随着Linux系统的逐步完善,功能逐渐强大,在嵌入 式Linux平台下的USB设备驱动开发成为了该领域 工程实现的热点和难点. 本项目研发的手持终端主要应用于定位和跟 踪手机目标,在刑警抓获匪徒,解救人质,以及在地 震等灾难后定位和搜寻人员都有着重大的意义. 但是手持终端在定位和跟踪目标时需要采集大量 的数据来解算,如果是4倍采样的话,则速率高达’ 20.48Mbit/s,实时高速的传输是整个项目的一个研 发难点. 基于Linux嵌入式平台,我们开始设计了3种方 案,分别采用GPIO,GPMC,USB来传输.GPIO(gen— eral—purposeI/O)由于收发之间没有时钟约定以及I// O本身数据传输能力有限导致数据丢失的问题无法 解决.GPMC(general—purposememorycontroller)专门 用于高速存储之间的访问,一般用于SRAM等设备, 在Hnux内核源码中仅仅有nandflash访问的源码,开 发用于FPGA高速传输的驱动难度较高.由于上述 原因我们采用较为成熟的USB2.0芯片,其理论速度 收稿日期:2010—12—28 高达60Mbit/s,同时在Linux下也有USB的相关源 码,仔细分析Linux内核及USB源码,从USB读取数 据流程中提出USB驱动改进的方案,经原型设备测 试其有效性后,基于EZ.USBFX2设备的4Mbit/s大 缓存的USB驱动最终被项目采用. 1硬件系统介绍 本次项目开发采用的嵌入式开发板是Dev, Kit8000,具有ARM+DSP双内核的OMAP3530处理 器,可兼顾设备的数据处理强度大,调度和控制功 能要求高的需要.DSP内核对数据的压缩处理能力 非常强,而ARM内核可以完成系统的整体控制功 能和对DSP运算结果的访问. USB芯片采用的是EZ—USBFX2,EZ.USBFX2 拥有1个独特的结构,其串行接口引擎SIE负责完 成独立串行数据的编解码,差错控制,位填充等与 USB协议有关的功能,FX2还包含一个通用可编程 接口(GPIF),它支持所有通用的总线标准,如ATA PI(PIO和UDMA),IEEE1284(EPP并行口),UTOP— LA等,并可与外部ASIC,DSP等直接连接. 为了验证数据传输的正确性还加了EP3C5E144 型号的FPGA,根据项目需要,FPGA的工作频率是 10.24MHz,让其产生16位的循环码,通过USB传送 给DevKitS000,并计算其丢包率和误码率. 一 53— 硬件系统结构如图1所示. AITEl{AFP( FZ~ljSBFX2i)evKit8(x)0 I1.1 控制器lt;————_c)q———S1AVE1USBUSBj测试 FIF()【20驱动l程序F1FO日———目———口 图1硬件系统结构图 1.1嵌入式Linux系统 1.1.】嵌入式Linux系统 嵌入式Linux系统主要分为4个部分,分别为 MLO,Uboot,ulmage和rootfs.Linux启动过程也是 按照这个顺序,先加载MLO即x.1oader,为第一阶段 引导装载器,主要实现的功能是初始化最基本的硬 件,然后根据启动方式从nandflash或mme/sd拷贝 u—boot代码到内存,把系统引导到能够装载第二阶 段引导装载器的状态.第二阶段引导装载器是u— hoot,但是大多数发行版在u.hoot.bin文件中提供 自己的U—boot版本.U.boot对大部分的硬件进行 初始化,然后引导Linux内核,完成系统的启动. 1.1.2系统移植步骤 MLO与uboot的编译非常相似,都是在其对应 源码中修改makefile”CROSS—COMPILE”为自己的 交叉编译器,然后执行”makedistclean”和”make omap3530stalkerconfigamp;amp;make”,MLO还要多1个 签名

文档评论(0)

zhuliyan1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档