拇指驱动器组织

拇指驱动器组织

拇指驱动器显然是一块 EEPROM,包括一个控制器/微处理器,用于存储/检索存储在其中的文件。操作系统通常与拇指驱动器通信,并且所有拇指驱动器都可以在所有操作系统中运行(我认为)。因此,必须有一个协议来说明如何通过 USB 端口寻址/命令拇指驱动器。我对从拇指驱动器获取与特定文件实际占用的内存块有关的数据感兴趣。有人知道描述拇指驱动器内存管理和协议的参考资料吗?

我尝试在 Stack Overflow 上询问这个问题,有人建议我在这里尝试。

答案1

USB 拇指驱动器组织数据的方式内部对于主机来说是透明的。

就像硬盘一样,使用 LBA(逻辑块寻址)写入和读取数据:

http://wiki.osdev.org/LBA

当主机将数据发送到拇指驱动器上的 LBA 块时,拇指驱动器可以自由存储该数据以任何方式,只要您读取该块时返回相同的数据即可。您不知道它如何在 EEPROM 上存储数据(由于采用了磨损均衡、错误校正和性能技术,这可能非常复杂)。

我感兴趣的是从拇指驱动器中获取有关特定文件实际占用的内存块的数据。

我怀疑您实际上正在寻找的是有关特定文件正在使用哪些 LBA 的信息。这是正在使用的文件系统的功能,并且此类信息是从操作系统而不是 USB 设备获取的。这是因为操作系统管理文件和文件数据到扇区的映射,进而管理扇区到拇指驱动器上的 LBA 的映射。

这是关于这个主题的精彩读物:

http://www.wd-3.com/archive/luserland.htm

答案2

USB 大容量存储设备类(也称为 USB MSC 或 UMS)是由 USB 实施者论坛定义的一组计算通信协议,使得 USB 设备可供主机计算设备访问,并支持主机和 USB 设备之间的文件传输。

来自维基百科页面

这里是一个无聊的、技术性的 PDF,标题为“减少块命令,草案提案”。

这里是一个更加人性化的页面,其中包含更多可帮助您入门的链接。

听起来像一个有趣的项目!

相关内容