- 博客(7)
- 收藏
- 关注
原创 DeviceIoControl获取max transfer长度
最近在调试一个PC操作USB Massstorage设备的工具,通过DeviceIoControl()函数读取约1-2M的数据,但是传入数据长度以后函数返回错误,原因是长度超过了规定的transfer len。从网上找了半天,在国外论坛发现一个类似的问题解决,即:用IOCTL_STORAGE_QUERY_PROPERTY 命令得到一个Max transfer length,然后根据实际情况解决
2016-03-24 19:18:45
964
原创 Delphi中双字节类型存储到整型变量的问题
最近在做一个通过USB协议设置camera参数的功能,PC上的工具是同事用delphi写的,今天在和同事联调写数据的时候,碰到一个这样的问题。由于数据结构的需要,我们将两个双字节类型的数据存储到一个整型的数据里面,然后进行传输。delphi语言中如下: x, y : smallint;(相当于C/C++中的short) value : integer;(相当于int
2015-07-29 19:29:37
1210
转载 USB驱动开发之mass storage的枚举识别过程
Mass Storage设备,即大容量存储设备,最典型的莫过于U盘了,而U盘一般以Bulk Only传输方式实现。1、USB Mass Storage设备的描述符及枚举过程描述符就是对应标准请求的那些描述符,与HID设备不同,Mass Storage设备没有自己的类描述符。描述符在USB Mass Storage Class Bulk-Only Transport文档中有详细的一对一的
2015-07-28 19:31:43
1110
转载 USB枚举过程
1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。 USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告
2015-07-10 15:39:38
316
转载 YUV格式分析详解
一,YUV含义 YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放YUV三个分量,就像是一个三维平面一样。 在摄像头之类编程经常是会碰到YUV格式,而非大家比较熟悉的RGB格式. 我们可以把YUV看成是一个RGB的变种来理解
2015-07-06 15:41:28
533
转载 USB协议架构及驱动架构
1. USB协议1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统 USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.
2015-07-06 15:19:14
297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人