LinuxUSB子系统-gadget驱动-UVC设备端驱动1

在linux内核中driver-USB-gadget中可以找到webcam.C,对应的UVC设备,感兴趣可以去看看

一、驱动结构层次

USB设备是主从设备,对于控制器而言也分为俩种 :HDC和UDC UDC从名字可以看出是设备端的控制器。设备端需要配置的功能就是要配置描述符,以及端点等给主机了解的信息。

--------------------------------------------------------------------------------------------------------------------

        驱动层次来看的话,可以分为3层,Gadget function->Gadget->UDC。UDC作为底层的驱动包括了USB设备控制器的驱动对上提供接口, Gadget就是将UDC的函数进行一个封装暴露给上层调用,gadgetfunction层就是配置功能的地方比如要实现一个usb 摄像头,usb 存储卡等等。

二、usb_composite_drive

        usb是传输的手段,作为一个usb设备可能具备多种功能,比如一个usb摄像头集成是视频传输和音频传输的功能,这个设备就需要将两个功能集成,配置uac和uvc的描述符,在这篇中不展开讲,所以usb_composite这个接口的作用就是将这些function进行一个复合,也就是字面意思。


三、UDC && 总结

LinuxUSB子系统-gadget驱动-UVC设备端驱动1_第1张图片

借一张网上的图来进行总结

        设备控制器驱动:UDC驱动 直接处理USB设备控制器

你可能感兴趣的:(usb,uvc,linux)