2011-04-28 61 views
1

我最近一直在使用由GHI Electronics提供的uALFAT microSD卡進行數據記錄,但是我的可靠性一直存在問題;它的一些函數調用有時花費的時間比我能處理的要長得多。我目前使用一個MSP430微控制器與uALFAT進行通話。microSD卡FAT模塊

在那裏有什麼類似的電路板可以用來替代希望更可靠的uALFAT?

OR

什麼是最有利的解決方案的OEM如果我需要設計自己的接口板與MSP430工作?

回答

6

我想這會有點不同。任何基於閃存的存儲設備都可能具有可變的寫入時序。尤其是一個具有文件系統和磨損均衡的功能。它往往是閃存的本質,因爲你必須擦除整個塊並移動它。如果你不能適應可變時序,我過去所做的就是將這部分代碼移出代碼的關鍵部分。

通常,我會添加一個時間關鍵代碼寫入的隊列,然後在隊列中從隊列中拉出並寫入SD卡。在RTOS中,這將是一個較低優先級的任務。在輪詢循環中,當系統處於空閒狀態時,它將被調用。

這將約束從一個函數調用的最壞情況時機改變爲僅僅能夠滿足記錄的平均吞吐量要求。最差的延遲和吞吐量決定了隊列的大小。通常這可能很小。

+0

正是我會建議的。 – Clifford 2011-04-30 08:13:34

4

它可能比這更復雜,最好的解決方案是,因爲@sbass建議,即使您選擇更改文件系統。您需要確定在發生uALFAT之前確切地知道發生延遲的原因和原因。

但是,對於記錄,我已成功使用ELM FatFs,其截止ELM Petit FatFs,還有EFSL。對於等待時間,例如在使用ELM的情況下,我已經使用SPI實現了每秒高達300kbit/s的寫入速度(速度主要取決於卡,並且速度範圍可以從30kbps到99kbit/s到1   Mbit/s),我無法成功使用它記錄96   kbit/s的任何持續時間長度的數據流,即使具有優化的緩衝區大小(扇區大小的倍數)和50 kbit/s隊列512  字節扇區。這不是圖書館的問題,而是SD卡的性質,它明顯位於1   Mbit的邊界上,最多會失去128  毫秒,這足以耗盡隊列提供的緩衝。當然,解決方案是增加緩衝,就像@sbas所說的那樣,但是在這種情況下,總系統RAM只有64個 千位,所以這是不可能的。

如果您可以拋出內存和RTOS任務(可能是TI自己的SYS/BIOS),那麼您應該能夠使用它來處理該庫。所需的RAM數量取決於數據速率以及是否突發或連續。

1

感謝球員們,我最終實現了一個循環緩衝區,帶有額外的內存,這似乎已經完成了。感謝您的好評!