永发信息网

如何配置vxworks识别usb设备

答案:1  悬赏:80  手机版
解决时间 2021-02-20 22:31
如何配置vxworks识别usb设备
最佳答案
引言

VxWoAs是美国Wind River System(WRS)公司开发的嵌入式实时操作系统。VxWorks中的I/O子系统为应用程序提供了简单、统一、与设备无关的访问接口。I/O系统内部采用设备列表、驱动程序列表和文件描述符表来实现对不同设备的管理与访问,从而为开发通用外部设备驱动程序提供了便利。然而在一些专用系统上,为了缩短设备的响应时间,提高设备的读取速度,有必要将设备与I/O系统独立起来。由于VxWorks属于微内核,所有的程序均运行在同一线性地址空间,这也为设备与I/O系统的独立提供了条件。基于VxWorks的I/O子系统设备管理的思想,本文提出了一种在VxWorks下对多个同类USB设备进行管理的设计方案。该方案可使得对设备的访问独立于I/O子系统。

1 VxW0rks的I/O子系统设备管理

VxWorks I/O系统内部对设备的管理主要通过三张表来实现,即驱动程序列表、设备列表和文件描述符表。其中驱动程序列表用来管理已注册的设备驱动程序,它的大小是固定的,有NUM DRIVERS项,每一项对应驱动程序的入口点,当应用程序调用标准I/O接口函数时,I/O子系统便可通过驱动程序列表检索到设备的驱动程序,从而实现对指定设备的访问、发送、接收等操作。系统可利用iosDrvInstall()注册设备驱动程序,并将设备的人口函数加入到驱动程序列表。同时返回一个drvnum驱动程序号,并将其作为设备描述符的一部分,从而以此把设备与其驱动程序联系起来。I/O子系统采用链表对所有设备进行管理,该链表称之为设备列表。调用iosDevAdd ()可向系统添加设备,添加设备时,应指明设备名称及驱动程序索引号,该索引号就是iosDrvInstall ()返回的索引号。在VxWorks中,一个设备可以被多次打开,但对于每一次打开,系统将利用一个文件描述符来区分,本系统将会维持一张文件描述符表,该表的每一项记录了与设备对应的驱动程序号和设备ID,这样,就会文件描述符与驱动程序、以及设备之间建立一种联系。这样,在利用标准I/O函数进行读写时,就可以根据文件描述符从文件描述符表中找到对应的驱动程序的人口与设备ID。VxWorks中的这三张表的关系如图1所示。

2 USB设备管理方案设计

设计独立于I/O系统的USB设备驱动程序的设计思想主要基于两点,第一是用户自己管理设备。第二是通过驱动程序直接向应用程序提供可用于读写设备的接口函数。由于设备独立于I/O系统,用户需要自己设计一种设备管理方法,以便对多个接入的USB设备进行合理的管理。然而由于不存在设备驱动程序列表,故在设计时还需要有一种方法来解决设备的访问问题。

2.1 USB设备描述符

设备描述符实际上是一个数据结构,可在系统中作为一个逻辑结构体。它是一个具体设备的抽象。可与一个物理设备相对应,是参与设备管理、访问的主要结构体。鉴于I/O子系统对设备的管理,在对多个USB设备进行管理时,对于设备的存储,可采用双向链表来进行管理,称之为设备列表。链表对USB设备的管理主要通过设备头(USB_BEV_HDR)来实现。USB设备头是一个与具体设备无关的数据结构,它由一个链表节点和设备名称组成。节点中包含指向有前一个和下一个USB设备的设备头的链表节点。实际上,每一个USB设备都会有更多的数据存储在更大的数据结构中。这个结构就是设备描述符,而USB设备头只是做为USB设备描述符的起始部分。设备头的数据结构(USB_DEV_HDR)如下:

其中,USB_DL_NODE是一个链表节点,它由两个链表节点指针域组成。分别指向前一个和下一个设备的链表节点。其数据结构如下:

这样,就可以把USB设备的描述符划分为两部分,其中一部分与具体设备无关,称为设备头:另外一部分是与具体设备相关的设备特殊数据,设备相关部分包括USB设备的Node ID、USB管道句柄、端点地址、状态等信息。其结构如图2所示。设备无关部分主要用于设备管理,而设备相关部分则用于对设备的访问。

2.2设备列表设计

为了方便对设备的管理,USB设备列表可采用双向链表结构,其作用是将所有USB设备的有关信息组织起来,从而实现对多个设备的链式管理。前面提到的设备描述符就是一个存储了设备信息的数据结构。而所有USB设备描述符都是以设备头数据结构开始的,这样,就可以很方便地将设备描述符组成一个链表形式的设备列表。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么是天空套啊
达拉然怎么去龙骨荒野
4k电视怎么查找三年级英语课文同步讲座
최적의 대출&
广义街/槐柏树前街(路口)这个地址在什么地方
鑫泽商行我想知道这个在什么地方
研究财政分权问题的出发点是( )。A.财政联邦
急求~·555定时器制作电子钟数码管显示器不从
窗边的小豆豆、一百条裙子、天蓝色的彼岸、芒
金佳兴木门菏泽店这个地址在什么地方,我要处
读“中国太阳辐射总量的分布图”,回答下列问
玩游戏 我经常独行 拒绝任何组队 他们都叫我
违反邮政“八条禁令”的处罚是什么
请问,仙人球放在电脑旁边最好?还是放在窗台
郑州市质监局稽查支队怎么去啊,有知道地址的
推荐资讯
锅巴是什么东西,它是怎么做的?
2012年考研政治43分,专业和英语考得都好 能
一怎么组词
苜蓿种子的子叶黄色(Y)对褐色(y)显性,圆粒(R
sin(25派/3)+cos(-25派/6)+tan(-29派/4)
宜美家海天商务酒店地址有知道的么?有点事想
本溪东芬客运到桃仙机场大巴都几点的?给我东
excel 中 判断正负数值大小,显示指定数值
南京大学的文科类研究生在研究生阶段有没有出
如果向银行贷款10万,五年后还清如果是每个月
高何综合文化站这个地址在什么地方,我要处理
邻居纠纷12345市民热线受理吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?