新闻中心

EEPW首页>嵌入式系统>设计应用> VxWorks下的同类USB设备管理方法

VxWorks下的同类USB设备管理方法

作者: 时间:2013-10-08 来源:网络 收藏


  在读写设备时。可以设备号作为设备的标识,并通过设备号在nodeld数组中得到设备的nodeId,再从设备列表中查找到具体的物理设备的描述符。从而得到设备资源并对设备进行访问。以LM9833读设备为例,其读设备原型代码如下:


  其中,usbScanRead()是驱动程序向用户应用程序提供的接口函数,直接调用该函数即可读取设备,其它的设备函数也是如此,其中设备号dev是由用户根据不同设备的不同Product ID(PID)号制定的,这样,当设备接入系统时,驱动程序就会根据其PID号判断其设备号,并将该设备的nodeld值存放于数组的特定位置。由于此时设备始终处于就绪状态,用户可以随时对设备进行读写操作,而并不存在打开设备的操作。

  读写设备时,首先要根据设备号dev从设备列表中查找出设备,并将其定位到具体的设备描述符上。在查找设备时,遍历设备列表,就可找到节点设备描述符中nodeId与usbd_node_id[dev]相匹配的设备描述符结构体,并返回该结构体,然后再由设备描述符结构体得到设备的资源信息,从而实现对设备的读写。图6所示是查找设备的一个简单流程。


  该方法屏蔽了复杂的驱动程序列表和文件描述符表,从而提供了一种快速定位和访问设备的方法。这种方法在专用的系统中,对设备的访问是非常高效的,但不具有通用性,也就是说,对于不同类别的设备。则需要另外一套同样的机制来实现。

  3 结束语

  本文提出了一种独立于I/O系统的USB方法。该方法也是一种独立于I/O系统的USB设备驱动程序设计模式,它对于在专用系统中设备的管理是非常有效的。通过对USB设备描述符、设备列表、以及应用程序访问设备流程的设计,可以成功实现独立于I/O系统的方法。这一种方法可以利用驱动程序直接向应用系统提供接口函数和nodeld数组。从而摒弃了I/O系统中复杂的驱动程序列表和文件描述符等概念。目前,这种独立于I/O系统的USB方法已在某大型扫描仪中得到应用,并取得了一定的经济效益。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭