足球比分直播

基于VxWorks的USB驱动分析与实现.pdf

返回
基于VxWorks的USB驱动分析与实现.pdf_第1页
第1页 / 共83页
基于VxWorks的USB驱动分析与实现.pdf_第2页
第2页 / 共83页
基于VxWorks的USB驱动分析与实现.pdf_第3页
第3页 / 共83页
基于VxWorks的USB驱动分析与实现.pdf_第4页
第4页 / 共83页
基于VxWorks的USB驱动分析与实现.pdf_第5页
第5页 / 共83页
点击查看更多>>
资源描述:
ABSTRACTABSTRACTWith the development of computer technology,embedded fields,as one of itsbranches,has a huge market and is becoming an aspect of improvement of economyin computer field since the 2 1m century.Meanwhile,USBUniversal Serial Bus,with the advantages of simplicity and flexibility,high-bandwidth,easy-expansibility,and plugandplay,is highly regarded since its appearing.Nowadays USB has beenbecoming popular and applying in the communication between pedpheral devices andthe host.But the utility of USB in the embedded operating system is just begun,andSO f弛USB drivers based on PCI host controller in VxWorks,which is known for itsmaintenance,restrict the selection of host controller.Therefore,VxWorks operatingsystem is selected to implement the research of USB driver based on NonPCI hostcontroller in this paper.To complete the design and development of device driver,NonPCI based hostcontroller and USB mass storage device are used as the research subjects,USBprotocol stack is applied 2us the basis and VxWorks operating system is selected as theenvironment in this paper.Work must to be done is as follows.VxWorks opermion system and USB system are produced,and VxWorks’real-time,USB phy’sical and logic structure and transmit ways are analyzed.Analyze the structure of USB 1.1 and propose an idea of USB driver based onNonPCI controller.Analyze the possibility of PCI controller based driver and designthe driver scheme,on the basis of which design the frame of driver which integratesPCI with Non.PCI.Planting of host controller driver and the programming of USB mass storagedevice driver,including the initialization,read,write and controlling of USB device,are all described.Finally,debug西ng of driver and the issues while debugging areproduced,the analysis of problems,how to solve of them and the result of testing alea11 included.Key WordsVxWorks;Non-PCI host controller;USB device driverⅡ第2章VxWorks5.5实时操作系统..72.1 VxW.orks5.5内核一72.1.1任务管理.72.1.2任务通信.72.1.3中断处理与定时机制.82.2 VxWorks5.5文件系统92.3 Tornado开发工具一112.4小结..11第3章USB系统.123.1 USB设备结构..133.1.1 USB接口芯片133.1.2 USB设备的软件结构143.2 USB主机结构..143.2.1主机硬件1 53.2.2主机软件1 73.3数据传输..193.3.1控制传输223.3.2批量传输243.3.3中断传输.24IIIl11l3456●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●■●●●●●●●■●●●●●●●●●●●●●●●●●●●●●●●■●●●●●●●●●●●●●●●■●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●目 录3.3.4同步传输253.4小结..25第4章基于非PCI主机控制器的驱动方案设计..264.1方案的理论基础..264.1.1 USBD详解.274.1.2 HCD.294.1.3 PCI库一294.2基于非PCI主机控制器的驱动方案实现与扩展..294.2.1基于PCI主机控制器的驱动方案分析304.2.2基于非PCI主机控制器的驱动方案实现324.2.3方案扩展344.3 小结37第5章基于非PCI主机控制器的USB驱动实现395.1开发环境395.2 HCD的移植..405.2.1主机控制器的介绍405.2.2主机控制器的移植方案425.2.3 HCD程序调试465.3海量存储设备驱动的实现一475.3.1海量存储设备驱动程序的编写475.3.2海量存储设备驱动的调试....545.4小结一64第6章总结及展望.656.1总结..656.2展望..65致谢.67参考文献.68附录A调试平台..71附录B部分程序代码..72攻读学位期间的研究成果.84IV项目。黑匣子主要应用在开发环境等因素,本课题1.1.2技术背景1.嵌入式系统嵌入式系统是“以应用为中心,以计算机技术为基础,软、硬件可裁剪的系统“,其内核小、专用性强、系统精简、高实时性等特点决定了它适用于应用系统对功能、可靠性、成本、体积、功耗等方面有严格要求的专用计算机系统中。为了区别原有的通用计算机系统,人们把这种嵌入到对象体系中,实现对象体系智能化控制的计算机称作嵌入式计算机系统。因此,嵌入式系统诞生于微型机时代。嵌入式系统主要由嵌入式处理器、相关硬件、嵌入式操作系统及应用软件等组成,是集软硬件于一体的可独立工作的“器件“【l】。PC机设计的目的是满足通用功能,嵌入式设计的目的在于满足某种特殊的场合,专用于被功能和具体应用环境所限制的设备,如必须满足功耗、体积、成本、可靠性、速度,处理能力、电磁兼容等要求。嵌入式操作系统是嵌入式系统的核心,和PC机的操作系统一样,嵌入式操作系统具有能有效管理复杂的系统资源、对硬件进行抽象、提供库函数、驱动程序及开发工具等功能。但与通用操作系统相比,嵌入系统在系统实时性、硬件依赖性、软件固化以及应用专用性等方面具有更鲜明的特点。由于这些优点,进入20世纪90年代,嵌入式技术全面展开,成为通信和消费类产品的共同发展方向,应用在电信、医疗、汽车、安全、工业控制和消费类等行业【2】。目前国内外已有几十种嵌入式操作系统,主要有WinCE、3Com、QNX、Hopen OS和Vxwroks等。Windows CE内核较小,能作为一种嵌入式操作系统应用到工业控制等领域。第1章引言其优点在于便携性、提供对微处理器的选择以及非强行的电源管理功能。内置的标准通信能力使WindOWS CE能够访问Intemet并收发E.mail或浏览Web。除此之外,Windows CE特有的与Windows类似的用户界面使用户易于操作。但Windows CE具有速度慢、效率低、价格高、开发应用程序相对难等缺点【3】。Palm OS是3Com公司推出的操作系统,它有开放的操作系统应用程序接口API,且在掌上电脑和PDA市场上占有很重要的地位。QNX是由加拿大QSSL公司开发的分布式实时操作系统,它由微内核和一组共操作的进程组成,具有高度的伸缩性,可灵活剪裁,最小配置只占用几十KB内存。因此,可以广泛地嵌入到智能机器、智能仪器仪表、机顶盒、通讯设备、PDA等应用中去,但配置小也决定了其应用的局限性。Hopen OS是凯思集团自主研制开发的嵌入式操作系统,由一个体积很小的内核及一些可根据需要进行定制的系统模块组成[41。其核心Hopen Kernel一般为10KB左右大小,占用空间小,并具有实时、多任务、多线程的系统特征。VxWorks是WindRiver公司风河公司开发的具有工业领导地位的高性能实时操作系统Real Time Operation System,RTOSI勾核,具有很多其它操作系统没有或达不到的特点。VxWorks开放式结构和对工业标准的支持,使开发人员易于设计高效的嵌入式系统。它是专门为实时嵌入式系统设计开发的操作系统,其Wind内核保证任务间切换时间严格限制在毫秒量级,且任何时刻系统的状态都可预测。VxWorks引入多任务机制,不对任务个数做任何限制,只要内存足够,程序员可以创建任意多的任务,当启动完成后,内存中所有运行的是3-4个系统任务,用户创建在任务和负责任务调度、中断响应的丽nd内核中。这样简洁的方式使VxWorks任务间交换信息的方式非常灵活。VxWorks在各种CPU平台上提供了统一的编程接口和一致的运行特性,尽可能的屏蔽不同CPU之间的底层差异。VxWorks5.5具有优秀的集成开发工具Tornado。Tornado中的工程管理软件可将用户代码与VxWorks的核心进行组合,按需要对其裁减、配置;VxSim原型仿真器可在没有目标机的情况下,直接开发系统原型,并对系统进行评估;CrossWind调试器提供任务级和系统级的调试模式,进行多目标机的联调;优化分析工具帮助程序员从多种角度观察并跟踪系统的运行,排除错误,优化性锹引。较其它操作系统,VxWorks的强实时性、高稳定性使其广泛应用于通信、2第1章引言军事、航空等领域。 .2.USB系统 ●一一一一一一一随着计算机硬件的飞速发展,外设键盘、鼠标、调制解调器、打印机、扫描仪早为人所共知,摄像头、数码相机、MP3随身听、外置硬盘、光驱等接踵而来,接口则成为一个大问题。传统总线接口少,限制升级,造成机箱内连接器和电缆交错布局,操作麻烦等,1995年Compaq等公司为解决这一问题推广了一种新型串行通讯标准,称为USB,它是Universal Serial Bus的简称,中文意思是通用串行总线【6,¨。实际上,1995年11月USB0.9通用串行总规范正式制订,但早期的USB并没有得到普及,而后随着操作系统的支持,预留空间的发展及USBl.1规范的出现,USB接口才得到广泛应用。目前较为普遍的USB规范是USBl.1,USBl.1标准接口传输速率为12Mbps,理论上可以支持127个装置,通过USB HUB即USB扩展器连接多个周边设备。且随USB技术的发展和外部设备要求,USB2.0产品规格应运而生,USB3.0也在孕育中【8】。USB接口因其速度快、连接简单快捷、无须外接电源、支持多设备连接等 琢优点得到广泛应用。但日前USB技术相关产品都是基于PC机的,USB在嵌入’式操作系统中的应用却还在发展阶段。而嵌入式系统也非常需要方便、快速地把外部设备接入系统以扩展嵌入式系统的功能,但因为嵌入式系统普遍缺乏对USB主机控制器的支持,不能做USB主机,所以USB接口尚未在嵌入式领域得到广泛应用。从2000年以后,国内外很多公司如CYPRESS、飞利浦等研制了一系列针对嵌入式系统的USB主机控制器芯片,如D12、11和CY等。另外随着嵌入式开发板的不断成熟,USB应用也得到了进一步的发展。1.1.3应用背景随着机车微机柜的不断完善和发展,机车速度的不断提升,火车在安全性方面面临更高的挑战。为了提高安全性,提出在机车微机柜里安装机车记录仪的方法。这种记录仪其实是二战时用于军事的黑匣子。随着现代电子技术的飞速发展,黑匣子不再是飞行记录器的专有名词,而是广泛应用在地面各种交通工具中。早在70年代,欧盟、日本等国家开始以立法的形式在部分客运车辆及货车上强制安装使用记录仪,现在基本安装完成,这种记录仪称为汽车黑匣子【9】。将类似于飞机和汽车的黑匣子应用在机车上,则火车运行时各种参数自动存储3第1章引言在黑匣子的存储设备中。这些数据为监测机车运行情况及寻找机车发生故障的原因提供了可靠依据。黑匣子主要完成存储功能,本课题应用嵌入式技术和USB技术,通过设计基于嵌入式操作系统的USB驱动来完成机车黑匣子的存储功能。结合应用环境分析可知,操作系统及主机控制器的选择是设计的关键问题。由于风河公司的VxWorks的强稳定性,且支持POSIX、ANSI C和TCP/IP网络协议等工业标准,因此,本课题选用VxWorks作为USB驱动开发的操作系统。虽然风河公司已经出台Vxworks6.5版本,且提供了一种极为方便的开发环境,但由于价格昂贵等原因,本课题采用部分公开的Vxworks5.5版本实现基于Vxworks的USB驱动。主机控制器采用的是CYPRESS公司的CY7C67300,市场还有一类应用较多的主机控制器SLll8HS,但后者只有一个串行接口引擎,无内部处理器,而前者有4个串行接口引擎及16位RSIC处理器。最后结合其特殊的应用环境,本课题选用CY7C67300。所有的调试工作都在M5235芯片的codfile开发板上完成。1.2研究内容根据1.1分析的应用背景得出本课题的系统框图,如图1.1所示图1.1系统的连接框图开发板中的USB接口作为USB设备如U盘的接口,实现开发板的数据转储功能,用来检查机车的运行状态,如机车运行的各种参数。当机车发生事故时,它运行的各种数据可以完好地保存在黑匣子的U盘中,通过观察U盘中的数据了解事故前机车的运行状态,从而分析、判断机车发生事故的原因。实现VxWorks5.5下的基于CY7C67300主机控制器的USB驱动,首先研究4第1章引言VxWorks5.5系统及其对USB驱动的支持,并熟悉开发工具;其次,CY7C67300主机控制器属于非PCI类型,而VxWorks5.5只支持基于PCI类型的主机控制器驱动Host Controller Driver,简称HCD,因此设计在VxWorks5.5下实现基于非PCI主机控制器的USB驱动方案;最后,实现非PCI的HCD和设备驱动程序。1.具体任务本课题需要完成的主要任务1掌握VxWorks5.5的主机驱动;2熟悉Tornado集成开发环境并在此环境下编写程序及对程序进行调试;3设计基于非PCI主机控制器的USB驱动方案;4实现非PCI的HCD,熟悉设备驱动的开发流程及实现VxWorks下基于非PCI主机控制器的海量存储设备的驱动,包括设备的初始化和主机与设备的数据传输。2.完成工作 ’作者需要完成的工作1设计基于非PCI主机控制的USB驱动方案;2完成VxWorks5.5主机栈的HCD程序的移植和调试,并在此基础上完成基于非PCI主机控制器的海量存储设备驱动程序的编写及调试。1.3研究难点及创新1.本课题面临三大难题根据技术背景分析,目前基于PC机的USB驱动技术已非常成熟,而基于VxWorks嵌入式操作系统的USB驱动尚处于发展阶段,因此技术支持和资料支持比较少,实现设计比较难。根据应用背景可知应用环境较恶劣,这使本课题主机控制器的选择比较狭窄,且目前尚未出现在VxWork5.5下实现非PCI的HCD驱动,因此必须研究其可行性,并给出驱动的最终方案。USB通信协议非常复杂,要实现USB设备驱动,必须花大量时间了解并掌握USB通信协议,VxWorks操作系统一般用于军工、国防等领域,目前关于VxWorks操作系统的资料也较少,必须花更多时间去了解VxWorks操作系统的性能及启动等。本课题是基于特定的BSP实现VxWorks下的USB驱动,因此,5第1章引言必须掌握板级支持包BPS的开发流程及其引导系统的过程。2.创新。本课题不但设计了基于非PCI的HCD的驱动方案,而且实现了PCI主机控制器和非PCI主机控制器的兼容,扩大了VxWorks下设备驱动时主机控制器芯片的选择范围。1.4论文结构第一章为绪论,主要阐述课题的背景及来源、研究内容和需要完成的功能,并说明论文的结构。第二章详细介绍VxWorks实时操作系统,包括其定义、内核及开发环境。第三章介绍USB系统,包括USB设备结构、USB主机结构和其传输协议。第四章设计基于非PCI主机控制器的USB驱动及将PCI与非PCI两种方法结合在一起的USB驱动框架。第五章详细说明HCD的移植过程,并设计基于非PCI主机控制器的海量存储设备在VxWorks下的驱动。第六章总结,主要总结作者的工作,并说明存在的问题和不足,最后提出进一步研究方向。6减性好等特VxWorks5.5微内核Wind呈现快速多任务切换、抢占式和轮转式调度、任务通信方式多样化等特点。W md支持所有的实时特性,其设计可减少系统开销,高效的任务管理保证对外部事件快速、确定的反应。快速灵活的任务间通信允许独立的任务在实时系统中与其行动相协调。W m d内核主要执行任务管理、任务通信、中断处理与定时机制、出错处理操作。2.1.1任务管理任务管理包括任务控制与任务调度。在VxWorks中,任务即为每个执行程序。任务可以直接或以共享方式访问大多数系统资源,为维护各自线程,每个任务通过TCB任务控制块标识其相关信息,如任务ID、当前状态、占有的系统资源等,且每个任务被赋予不同优先级,以便进行调度。任务在就绪、阻塞、睡眠和挂起四个不同状态之间转变【10】。Wind内核有两种任务调度方法。一是基于优先级的抢占式调度算法【11】,二是轮转调度算法。Wind有O到255即256种优先级,这两种算法都依赖任务的优先级,但前者适用于不同优先级的任务,而后者适用于相同优先级的任务中。2.1.2任务通信Wind内核中的任务主要有共享、互斥、信号量、消息队列和管道、远程调用及信号六种通信方式。1共享内存,数据的简单共享。访问共享数据结构是任务间最常用的通信方法。由于VxWorks操作系统中的所有任务存在于一个单独的线性地址空间,易于实现任务间共享数据结构。2互斥。当共享地址空间进行简单的数据交换,为避免竞争,需对内存进行互锁。当两个或两个任务同时访问CPU,造成任务运行时序出错,因此必须确保某一7
展开阅读全文
收藏
下载资源

加入会员免费下载





足球比分直播