打印
[USB驱动]

UVC、UAC类实现,同步

[复制链接]
16864|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yezhenqin|  楼主 | 2013-8-25 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
hei-125355| | 2013-8-26 09:46 | 只看该作者
hi,搂主,你好,我目前在调试uvc驱动,调试过程中遇到了无图像的问题,通过内核log,发现usb 同步幀丢失的问题,这几天一直在纠结,还未找到原因,能否帮忙看看给点建议啊,万分感谢!
UVC的驱动中在uvc_video.c文件中出现了如下的报错
uvcvideo: USB isochronous frame lost (-18).
uvcvideo: USB isochronous frame lost (-18).
uvcvideo: USB isochronous frame lost (-18).
uvcvideo: USB isochronous frame lost (-18).

使用特权

评论回复
板凳
yezhenqin|  楼主 | 2013-8-26 11:30 | 只看该作者
LINUX内核下没有调试过,高速同步传输,主机硬件每隔125us发送一个SOF-token(同步微帧),紧跟着发一个IN-token,如果从机设备CPU不能实时响应,硬件回复一个空数据包(这种情况是可接受的),主机可能认为同步幀数据丢失,你这种情况很可能是没有正确设置摄像头,导致其一直没有发数据,一直以空数据包响应主机的同步帧。普通UVC摄像头一般只发送YUY2数据,好些的支持MJPEG和YUY2两种格式,主机枚举摄像头后,发起一些UVC类请求获取摄像头参数,最后以一条设置VideoStream接口请求来打开摄像头设备,主机进入同步数据接收状态,摄像头开始发数据。你可能没有正确打开摄像头。
UVC的12字节playload-head有个11bit的字段frame_sof,每隔8个SOF-token(1ms)加1,你可看下主机有没有对其做处理。

使用特权

评论回复
地板
m_hacker18| | 2014-4-1 17:19 | 只看该作者
请问楼主uvc的驱动能否借鉴一下 m_hacker18@163.com
我想在stm32F407的片子上用主口读取usb摄像头,需要实现uvc驱动部分
按照uvc1.1协议,找了一些linux的源码参考,
主要是/include/linux/usb/video.h和/driver/media/uvc/
但是从未写过驱动,感觉无从下手

使用特权

评论回复
5
szaq| | 2014-7-4 16:23 | 只看该作者
请问楼上的兄弟, 用407读摄像头成功了吗?
我用stm32F207 读取USB 摄像头, 只有在数据包长为128 时才读到数据,但是每一Frame的PTS域总是不变
超过256的数据包长,就直接报the incomplete Periodic transfer Interrupt.

使用特权

评论回复
6
linaihui| | 2014-7-29 09:29 | 只看该作者
4楼5楼成功了吗,我也想用STM32F407读取USB摄像头,想用UVC驱动,能否借鉴一下

使用特权

评论回复
7
johnbill| | 2015-4-7 16:44 | 只看该作者
UVC类的专属指令具体含义是什么?有文档吗?
一些UVC类请求获取摄像头参数

使用特权

评论回复
8
helainthus| | 2016-11-25 18:41 | 只看该作者
本帖最后由 helainthus 于 2016-11-25 18:42 编辑
johnbill 发表于 2015-4-7 16:44
UVC类的专属指令具体含义是什么?有文档吗?
一些UVC类请求获取摄像头参数 ...

usb.org/developers/docs/devclass_docs
这个网页上述地址前加上www. 页面最下端有如下内容,点击“Video Class 1.5 document set (.zip format, size 6.58MB)“下载,应该有你想要的东西。

Video Class
Video Class 1.5 document set (.zip format, size 6.58MB)
   UVC 1.5 Class specification.pdf
   USB_Video_Example 1.5.pdf
   USB_Video_FAQ_1.5.pdf
   USB_Video_Payload_DV_15.pdf
   USB_Video_Payload_Frame_Based_1.5.pdf
   USB_Video_Payload_H264_1.5.pdf
   USB_Video_Payload_MPEG-2_TS_1.5.pdf
   USB_Video_Payload_Uncompressed_1.5.pdf
   USB_Video_Payload_VP8_1.5.pdf
   USB_Video_Payload_Stream_Based_1.5.pdf
   USB_Video_Transport_1.5.pdf
   USB_Video_Payload_MJPEG_1.5.pdf
   USB_Video_Temporal_Encoder_Examples_1.5.pdf
Video Class 1.1 document set (.zip format, size 6.78 MB)
    USB_Video_Class_1.1

使用特权

评论回复
9
追逐~飞翔| | 2017-3-28 14:31 | 只看该作者
在用BUS hound进行监控USB设备的枚举的时候,最终出现了以下几个返回,但是不明白是什么意思?楼主能否解答下?
CTL    a1 85 00 01  00 ff 02 00  GET LEN                  180.1.0        
  IN     04 00

使用特权

评论回复
10
happy880413| | 2017-3-30 00:10 | 只看该作者
是通过payload的参数Presentation Time Stamp (PTS)来同步的吧

使用特权

评论回复
11
ykeastronaut| | 2017-5-22 18:30 | 只看该作者
请教一下,UVC1.1下,H264裸流通过UVC来传输,将UVC_Format_H264设置为VS_FORMAT_FRAME_BASED还是 VS_FORMAT_STREAM_BASED呢? 虽然目前为VS_FORMAT_FRAME_BASED,但1080p的在windows 7上ecap player播放会有卡顿!

使用特权

评论回复
12
yuchangchun| | 2018-7-6 17:31 | 只看该作者
安卓下使用USB相机,使用UVC,UAC实现直播,你有好的建议吗(音视频同步),方便的话加我微信(jp-yucc)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

21

帖子

2

粉丝