一種基于STC15的U盤實時海量數據采集系統設計
第二是操作沁恒公司提供的FILE SYS文件系統庫,通過移植、裁減該文件系統庫,在U盤中創建一個EXCEL格式的文件ZYZ_ADC.XLS,這是系統軟件設計的核心所在。具體步驟是:首先單片機發送CMD_SET_USB_MODE命令設置CH376工作在主機模式下,然后調用FILE SYS文件系統庫中的CH376DiskConnect函數等待U盤連接,U盤可以由CH376自動檢測并產生中斷通知,也可以由單片機定時發送命令檢測。U盤連接成功后,在進行操作之前必須由單片機發送CMD_DISK_MOUNT進行初始化,并檢測磁盤是否準備就緒,確認磁盤準備就緒后,調用文件系統庫函數CH376FileOpen,打開磁盤中已經創建好的文件,如果該文件不存在,則調用文件系統庫函數CH376FileCreate并在磁盤中創建一個新的文件,設定其參數為“/ZYZ_ADC.XLS”即完成了在U盤中創建了一個名為ZYZ_ADC.XLS的EXCEL格式文件。另外,文件創建成功后為方便向文件中添加數據,還需要將該文件移置到U盤中所有已有文件的末尾,可調用文件系統庫函數CH376ByteLocate,設定參數為0xFFFFFFFF即可移動該文件至所有文件之后。以上一切準備就緒后就可以向文件中寫入數據了,最后就是保存文件并更新文件長度,涉及到的文件庫函數是CH376GetFileSize。在U盤中創建EXCEL文件的軟件流程圖如圖3所示。
本文引用地址:http://www.104case.com/article/245758.htm

第三是向已創建的EXCEL文件中寫入A/D采集數據和時鐘芯片中的日期、時間信息。系統軟件是將EXCEL文件中的所有已采集的數據以字符形式存儲的,因此對于采集的電壓、日期、時間等二進制數據要轉換成字符串形式。另外,EXCEL文件中的數據信息是以單元格的形式存儲的,即每一次采集的數據存儲在一個單元格中,因此在調用sprintf函數時,將采集的數據信息寫入EXCEL文件時用“t”切換單元格,比如將采集的日期、時間、單元信息分別顯示在3個不同的單元格中的函數格式為:


2 系統測試結果
為了驗證上述系統能否完成將A/D采集來的海量數據信息存入U盤中創建的EXCEL文件中,選用了2 GB的金士頓U盤作為測試對象,系統上電后插上U盤,即可看到CH376模塊中USB讀寫指示燈變亮并且U盤指示燈閃爍數下,這表明U盤讀寫成功。然后,按下數據采集控制開關,可以看到U盤指示燈開始不停地閃爍,表示數據采集正在進行中,通過串口調試軟件的打印窗口如圖4所示,可以清楚地看到文件創建成功,數據寫入文件的詳細過程。

圖4中File size=1表示創建了一個新文件,其大小為1 K,下面即是不停地向文件中寫入日期、時間、電壓等采集信息。待系統運行一段時間后取下U盤,將U盤重新插在PC上即可在U盤中發現一個新建的名為ZYZ_ADC.XLS的文件,打開該文件,如圖5所示,可以看到系統采集到的日期、時間、電壓等采樣信息完整地存在于該文件中。

結語
本文提出的基于STC15系列單片機和CH376的實時海量數據采集系統設計方案中,由于CH376內置了文件系統,使單片機的操作更為方便,單片機只需要發送命令和數據就可以在U盤中創建文件、讀寫數據。因此開發人員用簡便的方法就可以實現利用U盤存儲A/D轉換器采集來的海量數據,該方案設計簡單而且數據存儲能力強大,能夠存儲海量數據,具有一定的實用價值。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
晶振相關文章:晶振原理
評論