打印
[USB编程]

电脑在U盘中是如何创建文件的

[复制链接]
2076|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
joyo00321949|  楼主 | 2013-9-9 13:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,请教大家个问题,我自己做了个U盘,读取没有问题,但是电脑在里面创建或复制文件时,我不知道如何处理,不知道电脑会发送什么命令和内容。
请问怎么处理?有没有相关的资料参考下?
谢谢

相关帖子

沙发
joyo00321949|  楼主 | 2013-9-9 13:07 | 只看该作者
补充下:电脑在U盘上创建文件时发送内容的格式是什么?例如:哪些字节代表文件名,哪些问内容等

使用特权

评论回复
板凳
aozima| | 2013-9-9 13:46 | 只看该作者
电脑只会发read/write命令,文件系统是由软件处理的,也可以不用文件系统。
U盘可以格式化为fat/ex-fat/ntfs/ext-*各种文件系统。

使用特权

评论回复
地板
joyo00321949|  楼主 | 2013-9-9 13:55 | 只看该作者
谢谢aozima的回答。
但是我还是不明白,举个例子,电脑在U盘上创建一个123.txt,我单片机那边如何知道电脑创建的是这个名字呢?电脑发来write指令,我如何知道write中的数据的具体含义。

使用特权

评论回复
5
soso| | 2013-9-9 17:21 | 只看该作者
你自己造U盘  多少钱一个?多少G的

使用特权

评论回复
6
joyo00321949|  楼主 | 2013-9-9 17:29 | 只看该作者
2M的,不是用来卖钱的,是工作需要。

使用特权

评论回复
7
amwrdfe| | 2013-9-9 19:53 | 只看该作者
协议没认真看吧.

使用特权

评论回复
8
zzfei90| | 2013-9-10 09:09 | 只看该作者
没明白你到底想干什么?是想把电脑上的东西传到U盘上?那直接插电脑上不就行了?
还是想电脑和单片机通信,把电脑上的文件发到单片机,再写进U盘?那你直接写个上位机软件,把文件通过USB传给单片机(DEVICE),再由单片机(HOST)控制写入U盘不就行了?

使用特权

评论回复
9
飞鹰嵌入式| | 2013-9-10 10:37 | 只看该作者
看你U盘是什么格式的,FAT32orFAT16orFAT12,然后你看文件系统协议就可以了,一般这样的文件系统是文件名索引加偏移地址的,

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
joyo00321949 + 1 很给力!
10
joyo00321949|  楼主 | 2013-9-10 11:44 | 只看该作者
应该是飞鹰嵌入式说的这样,我先仔细看下协议。谢谢大家。

使用特权

评论回复
11
通宵敲代码| | 2013-9-10 13:30 | 只看该作者
joyo00321949 发表于 2013-9-10 11:44
应该是飞鹰嵌入式说的这样,我先仔细看下协议。谢谢大家。

听你的问题应该是你自己用单片机开发的U盘吧,好好看看通信协议吧,电脑对U盘的操作都是按协议来的。

使用特权

评论回复
12
stupidboy456| | 2013-9-10 13:36 | 只看该作者
好厉害,,啊自制U盘

使用特权

评论回复
13
joyo00321949|  楼主 | 2013-9-12 12:52 | 只看该作者
电脑对U盘的操作都是按什么协议来的?

使用特权

评论回复
14
joyo00321949|  楼主 | 2013-9-14 08:17 | 只看该作者
电脑对U盘的操作都是按什么协议来的?

使用特权

评论回复
15
john_lee| | 2013-9-16 00:40 | 只看该作者
常用协议:
subclass: UFI, SCSI
protocol: BBB(BOT), UAS
自己按上面的关键字去 google。

使用特权

评论回复
16
armlinux99| | 2013-10-31 10:07 | 只看该作者
在网上下一个DEMO看一下

使用特权

评论回复
17
songhowl| | 2013-11-20 10:23 | 只看该作者
aozima 发表于 2013-9-9 13:46:36 |只看该作者 回复 |返回版面
电脑只会发read/write命令,文件系统是由软件处理的,也可以不用文件系统。
U盘可以格式化为fat/ex-fat/ntfs/ext-*各种文件系统。

上面兄弟说的对
我是这样认为的:
U盘本身不知道文件。U盘只知道所操作的partition.U盘的驱动是不知道你写的是哪个文件。它只知道block.它只操作block。而建立在blocks 上的文件系统它不关心。上位机会用文件系统的驱动在磁盘上mount出来一个文件系统。在写一个文件的时候。其实是对上位机的文件系统驱动进行操作。而这个驱动最终会转换成block的操作然后通过SCSI的命令传给U盘。

使用特权

评论回复
18
li880wert| | 2013-11-25 13:50 | 只看该作者
说白了U盘就是FLASH,再简单点就是 RAM,具体什么 文件,是文件系统的协议,就比如常用的FATFS。

因为 WINDOW 识别U盘读写文件用的 是FAT32, 你单片机程序 也用这相关的文件系统,比如FATFS32 或FAT 都是能识别到文件的

使用特权

评论回复
19
joyo00321949|  楼主 | 2014-1-23 12:17 | 只看该作者
举个例子:计算机在U盘上创建个文件,U盘的文件系统直接将数据写到相应的地址就可以了,但是我想去解析计算机发来的是什么命令,创建的文件名是什么等等,请问这些从哪里可以看到。应该是一些具体的协议。

使用特权

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

本版积分规则

1

主题

12

帖子

1

粉丝