我有一个带有UART的嵌入式系统,我通过USB到RS485电缆与之通信。我可以通过发送串行命令将数据读取和写入闪存。设备上的软件是用C++编写的。
我想实现一个文件系统,当我插入USB时,我的计算机可以识别它,并允许我浏览嵌入式设备闪存上的文件。
我将如何做到这一点?
从PC的角度来看,"设备"是电缆,而不是您的主板。 从逻辑上讲,USB<->RS485 转换器为您的 PC 添加 RS485 接口,而不是您的主板上的 USB 接口 - 即使 USB/485 芯片在您的主板上,这在逻辑上是真实的,如果不是物理上正确的。 因此,它不能显示为 USB 大容量存储设备,因为它明确是 USB CDC/ACM 设备。
为了使您的主板显示为真正的USB大容量存储设备,您需要使用USB设备控制器 - 某些(但不是全部)Blackfin设备具有片上USB控制器,模拟设备为此提供了USB设备堆栈库。 在这种情况下,您需要在电路板上实现和使用USB接口,而不是串行适配器电缆。
如果您缺少USB控制器或只想使用串行接口,那么使用PPP实现TCP/IP堆栈并使用FTP可能是最简单的方法。 这将使串行链路在任何情况下都更加灵活(然后可以同时支持Telnet和其他协议)。 在Linux中使用PPP相对简单,在Windows中是可能的,但它被捆绑在拨号连接支持中,因此对于直接电缆连接来说并不是特别直观。 在这种情况下,您需要在PC上使用FTP客户端,因为它不会显示为PC的直接文件系统设备。