ch376是檔案管理控制晶元,用於微控制器系統讀寫u 盤或者sd 卡中的檔案。ch376支援usb裝置方式和usb主機方式,並且內建了usb通訊協議的基本韌體,內建了處理mass-storage海量儲存裝置的專用通訊協議的韌體,內建了sd卡的通訊介面韌體,內建了fat16和fat32以及fat12檔案系統的管理韌體,支援常用的usb儲存裝置(包括u盤/usb硬碟/usb快閃儲存器盤/usb讀卡器)和sd卡(包括標準容量sd卡和高容量hc-sd卡以及協議相容的mmc卡和tf卡)。
有關u 盤和sd 卡檔案讀寫的例子主要由以下檔案組成:
① 硬體抽象層,即i/o 介面子程式,由微控制器與ch376 晶元之間的通訊介面方式決定
hal.h 硬體抽象層標頭檔案
hal_base.c 硬體抽象層基本子程式,包括延時子程式,需要根據微控制器實際速度修改i/o 介面子程式,必須根據實際的通訊方式選擇以下其中一種並按實際硬體和引數進行修改:
uart_hw.c 是硬體非同步串列埠連線方式,支援波特率從9600bps 到3mbps。
② 檔案系統層,將常用命令進行打包,提供了常用的檔案管理子程式和一些不太常用的子程式
file_sys.h 檔案系統層標頭檔案,子程式宣告等;
file_sys.c 檔案系統層子程式,子程式源程式等,在第5 節有詳細說明。
③ 輔助除錯子程式,用於列印輸出除錯資訊,以便檢查程式執行結果,正式產品中必須刪除之
debug.h 輔助除錯子程式標頭檔案;
debug.c 輔助除錯子程式源程式等。
正常使用的主要是硬體抽象層和檔案系統層,並且要做相應的修改。對於輔助除錯子程式,主要是對幾個程式段的監視,但是必須要有兩個及以上的通訊串列埠,只有乙個串列埠需要禁用除錯輸出。
在硬體層,hal_base.c中需要根據微控制器的頻率修改延時的設定,粗略設定即可。
在uart_hw.c中,需要修改以下幾個地方:
//#definech376_int_wire p1_0 /假定ch376的int#引腳,如果未連線那麼也可以通過查詢串列埠中斷狀態碼實現 /如果在評估板上沒有使用int埠,直接注釋掉,使用查詢即可。
#define uart_init_baudrate 9600 /*預設通訊波特率9600bps,建議通過硬體引腳設定直接選擇更高的ch376的預設通訊波特率 */
建議使用指令進行基本的建立檔案,選擇usb模式等操作,了解晶元對u盤的操作模式,便於以後的使用。
CH376晶元 硬體抽象層 HAL H
ch376晶元 硬體抽象層 v1.0 提供i o介面子程式 include include ch376inc.h ifndef ch376 hal h define ch376 hal h ifdef cx51 ifndef c51 define c51 1 endif endif ifdef c5...
5 檔案管理
1 檔案的基本概念 在unix linux系統中,幾乎所有的一切都可以看作檔案,因此,對於檔案的操作適用於各種輸入輸出裝置等等,當然目錄也可以看作檔案 如 dev null 空裝置 echo hello dev null 表示丟棄處理的結果 cat dev null a.txt 表示清空檔案a.tx...
0605 檔案管理
檔案定義 檔案是一組相似記錄的集合,它被使用者和應用程式視為乙個實體,並可以通過名字訪問。按照性質用途 系統檔案 只允許系統呼叫來執行它們 庫檔案 允許讀取,執行,不能修改 使用者檔案 所有者可以使用 按照組織形式,可分為 普通檔案,目錄檔案,特殊檔案 所有的輸入輸出裝置被看成特殊檔案 作業系統中與...