通过其他设备假装SD卡或通过两个设备共享一张SD卡

时间:2013-10-18 07:40:17

标签: arduino raspberry-pi sd-card spi

我正在寻找一个提示来开始我的项目。

我有一台设备从SD卡读取数据。我无法以任何方式控制它遥控器 - 我只能通过在此SD卡上保存新数据来“控制”此设备。我需要手动完成 - 所以如果我想在10台设备上更改一些数据,我需要取出10张SD卡,发送新数据,然后将其重新发送回设备。

1)我想知道我是否可以使用arduino或raspbery伪装SD卡。 该设备不是从SD卡读取数据,而是直接从arduino读取数据。 Arduino我可以轻松控制。

2)第二种解决方案是通过两个设备共享一张SD卡。 Arduino / RaspberryPi / Android设备将数据发送到SD卡,其他设备将读取数据。

但是我希望每10-15秒更改一次数据,因此共享一张SD卡可能会有问题。

您有什么想法如何解决这个问题?它甚至可能吗? 编辑: 也许我没有提到那个清楚,但我无法改变阅读设备,我无法在那里安装任何东西。它是黑盒设备,只能从SD卡读取数据。

3 个答案:

答案 0 :(得分:0)

我使用Dropbox Sync API对我的所有设备进行单向同步。只需更改Dropbox中的单个文件或文件夹,然后我的设备即可获取所有更改并写入SD卡。

这虽然有一些挑战,但我花了一些时间才能开始工作。主要是因为Sync API的设计不像Dropbox在PC上那样,自动下载文件。相反,它能够告诉哪些文件已更改,然后在请求时懒惰地获取它们。由于这可能足以满足您的使用需求,因此我需要对文件进行离线访问,并且必须跳出几个箍才能使用户实际请求之前将文件下载到SD。

如果您只需要相对简单的数据或小文件,我建议parse.com。请注意,我对此系统没有任何经验,但它看起来很有希望。

修改

现在了解上述情况对您来说是不可能的,那么在设备之间共享SD应该没问题,我想。您可以在写入SD时创建一个简单的空文件,例如.lock,然后立即将其删除。这样,每当其中一个单元尝试读取数据时,如果他们看到.lock文件,他们就会知道在读/写之前他们应该等一会儿。可以是避免破坏数据的简单解决方案。

答案 1 :(得分:0)

基本上你有两个选择:模拟SD卡或使用真正的SD卡,并在你的Arduino和阅读设备之间切换。

要模拟SD卡,您需要使用FPGA并编写大量VHDL / Verilog代码。由于所涉及的时钟频率很高(主机可能会以几兆的速度向您询问数据),因此您无法通过微控制器软件实现这一点。

此外,即使你能够做到这一点,你仍然有可能必须断开"断开"当你进行更改时,读卡器中的SD卡,至少会在一段时间内发生 - 否则读者不会知道你更改了卡的内容:它可能无法读取新文件或者甚至可能会覆盖它们。

答案 2 :(得分:0)

如果没有远程方法更新SD卡然后检查this项目,它可能是最简单的方法,无需取出卡