CH375的U盤檔案級子程式庫說明

2022-05-24 09:03:04 字數 2737 閱讀 2575

ch375以c語言子程式庫提供了usb儲存裝置的檔案級介面,這些應用層介面api包含了常用的檔案級操作,可以移植並嵌入到各種常用的微控制器程式中。

4.2.3.1概述

很多數碼產品以及微控制器系統都需要儲存器,當前,u 盤(含閃盤、usb 快閃儲存器盤、usb 行動硬碟等,下同)已經成為很常用的移動儲存裝置,其**僅比相同容量的快閃儲存器略高,而遠比快閃儲存器易於採購和易於攜帶,並且u 盤的規格通用,具有多種容量可供選用。所以,數碼產品以及微控制器系統可以直接採用u 盤作為大容量的移動儲存器。

ch375 是usb匯流排的host 主機及device裝置雙用介面晶元,微控制器可以通過ch375讀寫u 盤中的資料,由於很多產品最終會與使用windows 作業系統的個人計算機交換資料,所以為了方便資料交換,u 盤中的資料應該符合windows 的檔案系統格式。

ch375 提供了u 盤檔案級子程式庫,微控制器可以直接呼叫子程式讀寫u 盤中的檔案資料,硬體上只需要在原微控制器系統中增加乙個ch375晶元,綜合成本較低。ch375的u 盤檔案級子程式庫支援常用的fat12、fat16 和fat32 檔案系統,支援容量高達100gb 的u 盤。

微控制器不需要考慮檔案系統,只需要了解檔名、檔案長度等基礎知識。乙個u 盤中可以有多個檔案,每個檔案都是一組資料的集合,以檔名區分和識別。檔案長度是指檔案中有效資料的長度,而實際占用的磁碟空間通常大於或者等於檔案長度,實際檔案資料的存放可能不是連續的,而是通過一組「指標」鏈結的多個塊(也就是分配單元或簇),從而能夠根據需要隨時增大檔案長度以容納更多資料。

目錄是為了便於分類管理,管理者可以人為指定將多個檔案歸檔在一起,例如2004 年的檔案歸到乙個目錄中。

4.2.3.2子程式庫分類

子程式庫有兩種檔案路徑表示方式,一種是完整全路徑,另一種是逐級路徑。目前子程式庫主要使用「完整全路徑」方式,而普及版源程式的方式是「逐級路徑」。

子程式庫按功能分為三個版本:

簡易版,支援fat12、fat16 和fat32 檔案系統,只支援讀檔案,不支援新建和寫檔案。

標準版,支援fat12 和fat16 檔案系統,支援檔案讀寫、刪除和新建等,該版本不再發行。

增強版,支援fat12、fat16 和fat32 檔案系統,支援檔案讀寫、刪除和新建等。

微控制器的資源和速度有限,通常在處理fat16檔案系統的u 盤時效率最高,而在處理fat32 時效率最低(約低5%到20%)。使用u 盤檔案級子程式庫實現同樣的功能,簡易版效率最高,增強版效率最低(約低5%到20%),所以應該優先選用簡易版子程式庫。

各子程式庫的子程式呼叫方式完全統一,同一種微控制器的示例程式完全通用,只需要在鏈結時指定不同的子程式庫就可以實現不同的功能。不同微控制器的c 語言示例程式基本通用,尤其是main 主程式基本上適用於所有微控制器,只需要修改硬體相關部分,重新編譯和鏈結就可以使用。

4.2.3.3 一般說明

使用u 盤檔案級子程式庫,微控制器系統需要具有不少ch375vsectorsize加100個位元組的隨機儲存器ram,其中ch375vsectorsize 個位元組(通常是512 位元組)用於磁碟資料緩衝區,除此之外,根據操作方式的不同,可能還需要檔案資料緩衝區,通常情況下,ram 越多讀寫效率越高。

為了使用子程式庫,應該在源程式中包含子程式庫的標頭檔案ch375hf?.h,該標頭檔案可以為ch375子程式庫分配必要的i/o 及記憶體資源,並產生必要的與硬體有關的目標**,如果該檔案是被工程專案的多個源程式包含作為標頭檔案,那麼應該只允許乙個標頭檔案分配資源和產生**,除此之外的標頭檔案應該被事先定義ch375hf_no_code 常量,從而禁止該標頭檔案產生重複的目標**。例如:

#define ch375hf_no_code 1 // 禁止分配資源或產生**

#include ch375hf?.h

訪問模式

子程式庫對u 盤檔案的讀寫方式分為兩種:扇區模式和位元組模式。

扇區模式下,以扇區(每扇區長度是ch375vsectorsize,通常是512 位元組)為基本單位對u 盤檔案進行讀寫,所以讀寫速度較快,但是通常情況下需要額外的檔案資料緩衝區(如果與磁碟資料緩衝區合用則效率不高),額外的檔案資料緩衝區必須是扇區長度ch375vsectorsize 的整數倍,所以適用於ram 多、資料量大、頻繁讀寫資料的微控制器系統。

位元組模式下,以位元組為基本單位對u 盤檔案進行讀寫,讀寫速度較慢,但是不需要額外的檔案資料緩衝區(實際上是與磁碟資料緩衝區合用),使用方便,適用於ram 少、資料量小或者資料零碎、不經常讀寫資料的微控制器系統。如果頻繁地向u 盤寫入零碎的資料,可能會縮短u 盤中快閃儲存器的使用壽命(因為快閃儲存器只能進行有限次擦寫)。

檢視子程式庫的全域性變數「磁碟及檔案狀態ch375diskstatus」可以獲取當前的檔案模式:為disk_open_file 則代表扇區模式,為disk_open_file_b 則代表位元組模式。

每次新建或者開啟乙個檔案後,預設為扇區模式,支援以扇區為單位的檔案操作子程式ch375fileread 和ch375filewrite 及ch375filelocate。當執行一次以位元組為單位的操作命令後將自動進入位元組模式(只有關閉檔案後再重新開啟才能恢復扇區模式),支援以位元組為單位的操作子程式

ch375byteread 和ch375bytewrite 及ch375bytelocate。對於已開啟的同乙個檔案,不能混用兩種模式的操作子程式。

子程式庫提供的子程式總表

呼叫各個子程式之前需要輸入的引數和子程式返回後的結果,都在全域性結構變數mcmdparam中,呼叫前需參考cmd_param結構準備引數,返回後需參考cmd_param結構獲取結果。例如,ch375filereadx子程式的輸入引數和輸出結果在 中。

注:上表中ch375fileenumer、ch375filequery 等子程式實際由.h 標頭檔案間接提供。

怎麼恢復U盤資料?如何恢復U盤誤刪檔案

怎麼恢復u盤資料?如何恢復u盤誤刪檔案?u盤是很多人都喜歡使用的一種資料儲存裝置,所以在其中有著較多的重要資料,一旦出現有資料誤刪或是丟失的情況後,各位是怎麼進行解決的呢?其實資料被誤刪的話找回相對簡單一些的,丟失的資料找回有一定的難度,不過都沒有關係,一款資料恢復軟體就可以完美的解決資料丟失和誤刪...

U盤啟動盤的製作

有朋友常常問到u盤的製作,我回答多了,也累了,還不如作乙個u盤製作的小教程.首先你的主機板支援u盤,一般815以上主機板都支援的,不支援的通過刷bios一般也會支援的,刷壞了可別來找我哦 開始做了 1.在usb口上插入好u盤 2.啟用主機板對usb的支援.如果不懂的話就設定bios為預設值,再設定b...

U盤必備的軟體

發表於 2011 01 26 02 30 分類 學用閱讀 0 評論 0 相信在座的好多朋友,手中都擁有不止乙個的u盤了。那麼,除了儲存檔案,您的這些u盤還能做什麼用呢?恐怕這也正是好多朋友經常思考的乙個問題吧。那麼今天,筆者就給您介紹幾款小軟體,讓它們來幫助您 玩轉 手裡的u盤吧。一 將u盤改造為 ...