向USB设备发送SCSI命令】的更多相关文章

http://bbs3.driverdevelop.com/simple/?t84347.html { BOOL status = ; DWORD accessMode = , shareMode = ; HANDLE fileHandle = NULL; //PUCHAR dataBuffer = NULL; SCSI_PASS_THROUGH_WITH_BUFFERS sptwb; SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sptdwb; UCHAR buff…
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Threading;using System.Collections;using S…
当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage 类的描述符和类请求. 2,实现必要的SCSI命令,让PC认为该设备已正常运作. 我利用修改linux中的gadget zero设备做了一个简单的设备. 如果是在裸机程序下面做,应该也差不多,直接拿芯片厂商BS…
USB 设备驱动: 一.USB 描述符:(存在于USB 的E2PROM里面) 1.  设备描述符:struct usb_device_descriptor 2.  配置描述符:struct usb_config_descriptor 3.  接口描述符:struct usb_interface_descriptor 4.  端点描述符:struct usb_endpoint_descriptor 通过命令lsusb 列出系统中所有的USB设备: 通过命令lsusb -v 列出系统中所有的USB设…
嵌入式设备驱动的编写,基本上都要按照一定的驱动模型编写.不这么做的话,一旦设备发生了更新和改变,大部分的驱动代码都要推倒重来,代码的重用率低,不具备移植性.所以在新版linux2.6.22以后的内核版本中设计总线设备驱动模型,其实就是将单一的驱动拆成三部分:总线设备驱动.核心层驱动(纯软件).设备层驱动. 这样总线驱动和核心层驱动为重复性工作,不需改动.所以工作量主要体现在设备层驱动上. 内核中有不同的总线类型,不同的总线有不同的匹配方式.platform_bus_type总线使用名字来匹配,而…
最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到了一个叫做Bus Hound的软件.非常小,但是功能很全,可以看到电脑上所有USB设备的通信信息.如下图所示.这样就可以看到控制信息和读入读出信息.…
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持 -usbdevice devname 为客户机增加usb设备,devname有多种形式,详见man kvm,这里只涉及一种形式host:vendor_id:product_id,也就是-usbdevce vendor_id:product_id 获取USB设备参数 将usb设备插入主机之前 $lsusb > usb.old usb设备插入主机之后 $lsusb >…
有些时候KVM客户机还是要使用USB设备,比如USB密钥等 KVM命令行参数 -usb 打开usb驱动程序,启动客户机usb支持-usbdevice devname 为客户机增加usb设备,devname有多种形式,详见man kvm,这里只涉及一种形式host:vendor_id:product_id,也就是-usbdevce vendor_id:product_id 获取USB设备参数 将usb设备插入主机之前 $lsusb > usb.old usb设备插入主机之后 $lsusb > u…
1.urb 结构体 USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; …
在<USB系列之七>里我们介绍了ASPI的规范,并对一系列ASPI的命令做了测试,其中的02号命令是执行SCSI命令,我们专门在这篇文章中介绍,在<USB系列七>中,我们已经了解了调用ASPI的方法,主要是要填一个SRB(SCSI Request Block)的表,在以前的<USB系列之三:从你的U盘里读出更多的内容>文章中我们通过DOSUSB已经实现了许多SCSI命令,这些命令包括: SCSI INQUIRY Command SCSI READ CAPACITY (1…