社区
驱动开发/核心开发
帖子详情
关于usb SCSI协议驱动
banqhu
2009-08-20 03:24:59
大家好 ~ _ ~!
有做过SCSI协议的兄弟吗? 实现外接存储设备如 u盘....
这个协议很复杂,如果在USB HOST 上实现,怎么去理解它(SCSI协议),特别是此协议分好几部分。
欢迎大家发表自己的高见!
谢谢!
...全文
338
8
打赏
收藏
关于usb SCSI协议驱动
大家好 ~ _ ~! 有做过SCSI协议的兄弟吗? 实现外接存储设备如 u盘.... 这个协议很复杂,如果在USB HOST 上实现,怎么去理解它(SCSI协议),特别是此协议分好几部分。 欢迎大家发表自己的高见! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
longqm1984
2009-09-08
打赏
举报
回复
windows mobile上会有说的,自己看,自己不看,别人怎么跟你讨论。我晕。代码上也行啊,人家写的很详细,
banqhu
2009-08-26
打赏
举报
回复
关于scsi class driver 和协议 欢迎讨论!
heling2008
2009-08-22
打赏
举报
回复
还没有做过这方面的驱动,学习中
cokeliu
2009-08-22
打赏
举报
回复
U盘中常用到SCSI协议命令不多. 就六.七个就完全可以满足读写U盘.
pjb502com
2009-08-22
打赏
举报
回复
我也想了解一下...
banqhu
2009-08-21
打赏
举报
回复
关于scsi class driver 和协议 欢迎讨论!
banqhu
2009-08-21
打赏
举报
回复
么人晓得吗?
zhujinqiang
2009-08-20
打赏
举报
回复
帮顶。
圈圈教你玩
USB
(全书)
第一章
USB
概述及
协议
基础 1 1.1
USB
是什么 1 1.2
USB
的特点 1 1.3
USB
的拓扑结构 2 1.4
USB
的电气特性 5 1.5
USB
的线缆以及插头、插座 5 1.6
USB
的插入检测机制 7 1.7
USB
的描述符及其之间的关系 9 1.8
USB
设备的枚举过程 10 1.9
USB
的包结构及传输过程 11 1.9.1
USB
包的结构及包的分类 11 1.9.2 令牌包 13 1.9.3 数据包 14 1.9.4 握手包 14 1.9.5 特殊包 15 1.9.6 如何处理数据包 15 1.10
USB
的四种传输类型 16 1.10.1
USB
事务 16 1.10.2 批量传输 16 1.10.3 中断传输 18 1.10.4 等时传输(同步传输) 19 1.10.5 控制传输 20 1.10.6 端点类型与传输类型的关系 21 1.10.7 传输类型与端点支持的最大包长 21 1.11 本章小结 21 第二章 硬件系统设计 1 2.1 方案以及芯片的选定 1 2.2 D12引脚功能说明 2 2.3 D12与89S52的连接 4 2.4 串口部分电路 6 2.5 按键部分 7 2.6 指示灯部分 7 2.7 IDE接口部分 8 2.8 单片机部分 8 2.9 元件安装 8 2.10 电路调试 11 2.11 测试程序的编写和调试 12 2.11.1 建立一个工程 12 2.11.2 为工程添加源文件 14 2.11.3 KEIL工具栏及仿真介绍 15 2.11.4 按键
驱动
的编写 18 2.11.5 串口
驱动
的编写 24 2.11.6 PDI
USB
D12读写函数及读ID的实现 28 2.12 本章小结 33 第三章
USB
鼠标的实现 1 3.1
USB
鼠标工程的建立 1 3.2
USB
的断开与连接 1 3.3
USB
中断的处理 4 3.4 读取从主机发送到端点0的数据 6 3.5
USB
标准请求 12 3.5.1
USB
标准设备请求的结构 13 3.5.2 GET_DESCRIPTOR请求 15 3.5.3 SET_ADDRESS请求 16 3.5.6 SET_CONFIGURATION请求 16 3.6 设备描述符的实现 17 3.7 设备描述符的返回 20 3.8 设置地址请求的处理 30 3.9 配置描述符集合的结构 32 3.9.1 配置描述符的结构 32 3.9.2 接口描述符的结构 33 3.9.3 端点描述符的结构 33 3.9.4 HID描述符的结构 34 3.10 配置描述符集合的实现以及返回 35 3.11 字符串及语言ID请求的实现 39 3.12 设置配置请求的实现 45 3.13 报告描述符的结构及实现 48 3.14 报告的返回 54 3.15 Bus Hound工具的简介 57 3.16 本章小结 59 第四章
USB
键盘的实现 1 4.1
USB
键盘工程的建立 1 4.2 设备描述符的实现 1 4.4 配置描述符集合的实现 2 4.4.1 配置描述符 3 4.4.2 接口描述符 3 4.4.3 HID描述符 3 4.4.4 端点描述 3 4.5 字符串描述符 6 4.6 报告描述符 6 4.7 输入和输出报告的实现 10 4.8
USB
键盘实例的测试 13 4.9 再谈
USB
HID的报告描述符 14 4.10 带鼠标功能的
USB
键盘(方法一) 16 4.11 带鼠标功能的键盘(方法二) 22 4.12 多媒体
USB
键盘 29 4.13 本章小结 34 第五章 用户自定义的
USB
HID设备 1 5.1 My
Usb
Hid工程的建立 1 5.2 描述符的修改 1 5.3 报告的实现 3 5.4 对用户自定义的
USB
HID设备的访问 5 5.5 访问HID设备时所用到的相关函数 5 5.5.1 获取HID设备的接口类GUID的函数 5 5.5.2 获取指定类的所有设备信息集合的函数 6 5.5.3 从设备信息集合中获取一个设备接口信息的函数 6 5.5.4 获取指定设备接口详细信息的函数 7 5.5.5 打开设备的函数 8 5.5.6 获取HID设备属性的函数 8 5.5.7 从设备读取数据的函数 9 5.5.8 往设备写数据的函数 9 5.5.9 通过控制端点0读取报告的函数 10 5.5.10 通过控制端点0发送报告的函数 10 5.5.11 关闭设备的函数 10 5.5.12 需要包含的库文件 11 5.6 访问
USB
HID设备的上位机软件的实现 11 5
U盘
驱动
开发U盘
驱动
开发
包括
SCSI
指令集,Bulk Only传输
协议
,UFI命令规范,
USB
mass storage class,
USB
协议
分析,fat文件系统和nand flash介绍,需要的朋友速度啊!
《精通Linux 设备
驱动
程序开发》.(Sreekrishnan).pdf
基本信息 原书名: Essential Linux Device Drivers 原出版社: Prentice Hall 作者: (印)Sreekrishnan Venkateswaran 译者: 宋宝华 何昭然 史海滨 吴国成 丛书名: 图灵程序设计丛书 操作系统 出版社:人民邮电出版社 ISBN:9787115221674 出版日期:2010 年6月 页码:468 内容简介 本书是linux设备
驱动
程序开发领域的权威著作。全书基于2.6内核,不仅透彻讲解了基本概念和技术,更深入探讨了其他书没有涵盖或浅尝辄止的许多重要主题和关键难点,如pcmcia、i2c和
usb
等外部总线以及视频、音频、无线连网和闪存等
驱动
程序的开发,并讲解了相关的内核源码文件,给出了完整的开发实例。 本书适合中高级linux开发人员阅读。 目录 第1章 引言1 1.1 演进1 1.2 gnu copyleft2 1.3 kernel.org2 1.4 邮件列表和论坛3 1.5 linux发行版3 1.6 查看源代码4 1.7 编译内核7 1.8 可加载的模块8 1.9 整装待发9 第2章 内核11 2.1 启动过程11 2.1.1 bios-provided physical ram map12 2.1.2 758mb lowmem available14 2.1.3 kernel command line: ro root=/dev/hda114 2.1.4 calibrating delay...1197.46 .bogomips (lpj=2394935)15 2.1.5 checking hlt instruction16 2.1.6 net: registered protocol family 217 2.1.7 freeing initrd memory: 387k freed17 2.1.8 io scheduler anticipatory registered (default)18 2.1.9 setting up standard pci resources18 2.1.10 ext3-fs: mounted filesystem19 2.1.11 init: version 2.85 booting19 2.2 内核模式和用户模式20 2.3 进程上下文和中断上下文20 2.4 内核定时器21 2.4.1 hz和jiffies21 2.4.2 长延时22 2.4.3 短延时24 2.4.4 pentium时间戳计数器24 2.4.5 实时钟25 2.5 内核中的并发26 2.5.1 自旋锁和互斥体26 2.5.2 原子操作30 2.5.3 读—写锁31 2.5.4 调试32 2.6 proc文件系统32 2.7 内存分配33 2.8 查看源代码34 第3章 内核组件37 3.1 内核线程37 3.1.1 创建内核线程37 3.1.2 进程状态和等待队列41 3.1.3 用户模式辅助程序42 3.2 辅助接口43 3.2.1 链表44 3.2.2 散列链表49 3.2.3 工作队列49 3.2.4 通知链51 3.2.5 完成接口54 3.2.6 kthread辅助接口56 3.2.7 错误处理助手57 3.3 查看源代码58 第4章 基本概念61 4.1 设备和
驱动
程序介绍61 4.2 中断处理63 4.2.1 中断上下文63 4.2.2 分配irq号64 4.2.3 设备实例:导航杆65 4.2.4 softirq和tasklet68 4.3 linux设备模型71 4.3.1 udev71 4.3.2 sysfs、kobject和设备类73 4.3.3 热插拔和冷插拔76 4.3.4 微码下载76 4.3.5 模块自动加载77 4.4 内存屏障78 4.5 电源管理79 4.6 查看源代码79 第5章 字符设备
驱动
程序81 5.1 字符设备
驱动
程序基础81 5.2 设备实例:系统cmos82 5.2.1
驱动
程序初始化83 5.2.2 打开与释放86 5.2.3 数据交换88 5.2.4 查找92 5.2.5 控制94 5.3 检测数据可用性95 5.3.1 轮询95 5.3.2 fasync98 5.4 和并行端口交互99 5.5 rtc子系统108 5.6 伪字符
驱动
程序109 5.7 混杂
驱动
程序110 5.8 字符设备
驱动
程序注意事项115 5.9 查看源代码115 第6章 串行设备
驱动
程序118 6.1 层次架构119 6.2 uart
驱动
程序121 6.2.1 设备实例:手机122 6.2.2 rs-485132 6.3 tty
驱动
程序132 6.4 线路规程134 6.5 查看源代码141 第7章 输入设备
驱动
程序143 7.1 输入事件
驱动
程序144 7.2 输入设备
驱动
程序150 7.2.1 serio150 7.2.2 键盘150 7.2.3 鼠标152 7.2.4 触摸控制器157 7.2.5 加速度传感器158 7.2.6 输出事件158 7.3 调试159 7.4 查看源代码160 第8章 i2c
协议
161 8.1 i2c/smbus是什么161 8.2 i2c核心162 8.3 总线事务164 8.4 设备实例:eeprom164 8.4.1 初始化165 8.4.2 探测设备167 8.4.3 检查适配器的功能169 8.4.4 访问设备169 8.4.5 其他函数170 8.5 设备实例:实时时钟171 8.6 i2c-dev174 8.7 使用lm-sensors监控硬件174 8.8 spi总线174 8.9 1-wire总线176 8.10 调试176 8.11 查看源代码176 第9章 pcmcia和cf179 9.1 pcmcia/cf是什么179 9.2 linux-pcmcia子系统181 9.3 主机控制器
驱动
程序183 9.4 pcmcia核心183 9.5
驱动
程序服务183 9.6 客户
驱动
程序183 9.6.1 数据结构184 9.6.2 设备实例:pcmcia卡185 9.7 将零件组装在一起188 9.8 pcmcia存储189 9.9 串行pcmcia189 9.10 调试191 9.11 查看源代码191 第10章 pci193 10.1 pci系列193 10.2 寻址和识别195 10.3 访问pci198 10.3.1 配置区198 10.3.2 i/o和内存199 10.4 dma200 10.5 设备实例:以太网—调制解调器卡203 10.5.1 初始化和探测203 10.5.2 数据传输209 10.6 调试214 10.7 查看源代码214 第11章
usb
216 11.1
usb
体系架构216 11.1.1 总线速度218 11.1.2 主机控制器218 11.1.3 传输模式219 11.1.4 寻址219 11.2 linux-
usb
子系统220 11.3
驱动
程序的数据结构221 11.3.1
usb
_device结构体221 11.3.2 urb222 11.3.3 管道223 11.3.4 描述符结构223 11.4 枚举225 11.5 设备实例:遥测卡225 11.5.1 初始化和探测过程226 11.5.2 卡寄存器的访问230 11.5.3 数据传输233 11.6 类
驱动
程序236 11.6.1 大容量存储设备236 11.6.2
usb
-串行端口转换器241 11.6.3 人机接口设备243 11.6.4 蓝牙243 11.7 gadget
驱动
程序243 11.8 调试244 11.9 查看源代码245 第12章 视频
驱动
程序247 12.1 显示架构247 12.2 linux视频子系统249 12.3 显示参数251 12.4 帧缓冲api252 12.5 帧缓冲
驱动
程序254 12.6 控制台
驱动
程序265 12.6.1 设备实例:手机266 12.6.2 启动logo270 12.7 调试270 12.8 查看源代码271 第13章 音频
驱动
程序273 13.1 音频架构273 13.2 linux声音子系统275 13.3 设备实例:mp3播放器277 13.3.1
驱动
程序函数和结构体278 13.3.2 alsa编程287 13.4 调试288 13.5 查看源代码289 第14章 块设备
驱动
程序291 14.1 存储技术291 14.2 linux块i/o层295 14.3 i/o调度器295 14.4 块
驱动
程序数据结构和方法296 14.5 设备实例:简单存储控制器298 14.5.1 初始化299 14.5.2 块设备操作301 14.5.3 磁盘访问302 14.6 高级主题304 14.7 调试306 14.8 查看源代码306 第15章 网络接口卡308 15.1
驱动
程序数据结构308 15.1.1 套接字缓冲区309 15.1.2 网络设备接口310 15.1.3 激活311 15.1.4 数据传输311 15.1.5 看门狗311 15.1.6 统计312 15.1.7 配置313 15.1.8 总线相关内容314 15.2 与
协议
层会话314 15.2.1 接收路径314 15.2.2 发送路径315 15.2.3 流量控制315 15.3 缓冲区管理和并发控制315 15.4 设备实例:以太网nic316 15.5 isa网络
驱动
程序321 15.6 atm321 15.7 网络吞吐量322 15.7.1
驱动
程序性能322 15.7.2
协议
性能323 15.8 查看源代码324 第16章 linux无线设备
驱动
326 16.1 蓝牙327 16.1.1 bluez328 16.1.2 设备实例:cf卡329 16.1.3 设备实例:
usb
适配器330 16.1.4 rfcomm331 16.1.5 网络332 16.1.6 hid334 16.1.7 音频334 16.1.8 调试334 16.1.9 关于源代码334 16.2 红外335 16.2.1 linux-irda335 16.2.2 设备实例:超级i/o芯片337 16.2.3 设备实例:ir dongle338 16.2.4 ircomm340 16.2.5 联网340 16.2.6 irda套接字341 16.2.7 lirc341 16.2.8 查看源代码342 16.3 wifi343 16.3.1 配置343 16.3.2 设备
驱动
程序346 16.3.3 查看源代码347 16.4 蜂窝网络347 16.4.1 gprs347 16.4.2 cdma349 16.5 当前趋势350 第17章 存储技术设备352 17.1 什么是闪存352 17.2 linux-mtd子系统353 17.3 映射
驱动
程序353 17.4 nor芯片
驱动
程序358 17.5 nand芯片
驱动
程序359 17.6 用户模块361 17.6.1 块设备模拟361 17.6.2 字符设备模拟361 17.6.3 jffs2362 17.6.4 yaffs2363 17.7 mtd工具363 17.8 配置mtd363 17.9 xip364 17.10 fwh364 17.11 调试367 17.12 查看源代码367 第18章 嵌入式linux369 18.1 挑战369 18.2 元器件选择370 18.3 工具链371 18.4 bootloader372 18.5 内存布局374 18.6 内核移植375 18.7 嵌入式
驱动
程序376 18.7.1 闪存377 18.7.2 uart377 18.7.3 按钮和滚轮378 18.7.4 pcmcia/cf378 18.7.5 sd/mmc378 18.7.6
usb
378 18.7.7 rtc378 18.7.8 音频378 18.7.9 触摸屏379 18.7.10 视频379 18.7.11 cpld/fpga379 18.7.12 连接性379 18.7.13 专用领域电子器件380 18.7.14 更多
驱动
程序380 18.8 根文件系统380 18.8.1 nfs挂载的根文件系统381 18.8.2 紧凑型中间件382 18.9 测试基础设施383 18.10 调试383 18.10.1 电路板返工384 18.10.2 调试器385 第19章 用户空间的
驱动
程序386 19.1 进程调度和响应时间387 19.1.1 原先的调度器387 19.1.2 o(1)调度器387 19.1.3 cfs388 19.1.4 响应时间388 19.2 访问i/o区域390 19.3 访问内存区域393 19.4 用户模式
scsi
395 19.5 用户模式
usb
397 19.6 用户模式i2c400 19.7 uio401 19.8 查看源代码402 第20章 其他设备和
驱动
程序403 20.1 ecc报告403 20.2 频率调整407 20.3 嵌入式控制器408 20.4 acpi408 20.5 isa与mca410 20.6 火线410 20.7 智能输入/输出411 20.8 业余无线电411 20.9 voip411 20.10 高速互联412 20.10.1 infiniband413 20.10.2 rapidio413 20.10.3 光纤通道413 20.10.4 i
scsi
413 第21章 调试设备
驱动
程序414 21.1 kdb414 21.1.1 进入调试器415 21.1.2 kdb415 21.1.3 kgdb417 21.1.4 gdb420 21.1.5 jtag调试器421 21.1.6 下载423 21.2 内核探测器423 21.2.1 kprobe423 21.2.2 jprobe427 21.2.3 返回探针429 21.2.4 局限性431 21.2.5 查看源代码431 21.3 kexec与kdump431 21.3.1 kexec432 21.3.2 kdump与kexec协同工作432 21.3.3 kdump433 21.3.4 查看源代码437 21.4 性能剖析437 21.4.1 利用oprofile剖析内核性能438 21.4.2 利用gprof剖析应用程序性能440 21.5 跟踪441 21.6 ltp444 21.7 uml444 21.8 诊断工具444 21.9 内核修改配置选项444 21.10 测试设备445 第22章 维护与发布446 22.1 代码风格446 22.2 修改标记446 22.3 版本控制447 22.4 一致性检查447 22.5 构建脚本448 22.6 可移植代码450 第23章 结束语451 23.1 流程一览表451 23.2 下一步该做什么452 附录a linux汇编453 附录b linux与bios457 附录c seq文件461
BusHound_v6.0.1正式版(串_并_IDE_SATA_
USB
抓包)附注册码
BusHound软件是一款由美国perisoft公司研制的专用于PC机各种总线数据包监视和控制的开发工具软件,其名“hound”的中文意思为“猎犬”,即指其能敏锐地感知到总线的丝毫变化。 Bus Hound是一个超级软件总线
协议
分析器,用于捕捉来自设备的
协议
包和输入输出操作,其优良特性如下: 支持所有版本的IDE,
SCSI
,
USB
,1394总线 支持各类设备如硬盘库,DVD,鼠标,扫描仪,网络照相机等 捕捉数据的总量仅受机器内存限制 可以设置触发信号自动停止捕获操作 测试读取,同步等设备性能 捕获设备
驱动
包,例如IRP 捕获任意数量的并行设备,而不管其总线类型 身材苗条,易于交换与下载 捕获的数据易于拷贝到其它环境生成Html格式 捕获的数据能保存为文本文件或ZIP文件 所有的可捕获设备以树形结构列出,让选择设备来得更轻松些
[
USB
相关资料].SCSCommand.pdf
硬盘
SCSI
接口的官方
协议
原版,高清无码,底层开发必备之良药
驱动开发/核心开发
21,595
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章