基于System ACE的DSP文件系統設計
4 DSP對CF卡的讀寫操作
4.1 DSP對CF卡讀寫的硬件電路
通過在MPU端口處連接DSP來實現DSP對CF卡的讀寫,圖2為DSP讀寫CF卡的示意圖,圖3為硬件連接圖。
4.2 DSP對CF卡讀寫的軟件流程
圖4為DSP讀寫CF卡數據的軟件流程。首先,DSP通過MPU端口訪問CF卡前必須獲得CF卡鎖,否則進入等待直到CF卡處于空閑狀態或者強制獲得CF卡鎖。其次,CF卡數據的讀寫是以扇區為單位的。1個扇區可以分為若干個sector,每個sector的大小固定為512字節,每個sector又可分為16個buffer。若已知CF卡的容量就可以通過計算來設置LBA、sector變量以及buffer變量。最后,對buffer進行讀寫,讀寫結束后釋放CF卡鎖。
4.3 程序設計
可以通過以下函數來實現DSP對CF卡的讀寫。
◆獲得CF卡鎖:Uint32 get_CF_lock(void);
◆檢測CF卡當前狀態:Uint32 check_CF_ready (void);
◆檢測buffer是否準備就緒:Uint32 wait_buffer_ready(void);
◆讀CF卡數據:Uint32 read_data_from_CF(Uint8*p_data,Uint32 LBA,Uint16 Sector Count);
◆向CF卡寫數據:Uint32 write_data_to_CF(Uint8*p_data,Uint32 LBA,Uint16 Sector_Count);
◆復位:void reset(void)。
結 語
本文實現了DSP通過System ACE對CF卡進行數據存儲管理,充分利用了SystemACE技術的系統內配置方案,突破了傳統的多FPGA應用環境。
CF卡作為存儲介質具有容量大、接口簡單、體積小、價格低廉和可靠性較高等特點,結合FAT16文件系統,可以很方便地存儲和回放數據。
評論