低成本的U盤(pán)數據采集器設計
3 系統軟件設計
如圖5所示,C8051F340單片機主程序需要首先完成單片機I/O引腳的設置與相關(guān)寄存器配置,然后讀取P4口用戶(hù)輸入控制指令,并根據用戶(hù)指令設置A/D轉換器參數,接著(zhù)初始化CH375通信端口,進(jìn)而初始化CH375芯片及其程序庫。緊接著(zhù)檢查U盤(pán)是否插入,以及插入的U盤(pán)是否準備就緒。一旦U盤(pán)準備就緒,就在U盤(pán)新建文本文件格式的數據采集文件,然后打開(kāi)文件,并使文件指針指向文件尾部以方便后面寫(xiě)入采集數據。所有準備工作完成,就可以啟動(dòng)A/D轉換器。如果采樣數據達到U盤(pán)1個(gè)扇區512字節,那么就可以將采樣數據一次性寫(xiě)入U盤(pán)的1個(gè)扇區中。這里需要注意兩點(diǎn)。第一,U盤(pán)讀寫(xiě)可以字節為單位也可以塊為單位,以字節為單位需要頻繁訪(fǎng)問(wèn)U盤(pán),從而導致U盤(pán)存儲速度下降,使用壽命縮短,而以U盤(pán)1個(gè)扇區的512字節為單位讀寫(xiě)U盤(pán)則可以很好地解決這個(gè)問(wèn)題;另外,為了實(shí)現不間斷實(shí)時(shí)采樣,在設計數據的采集和存儲時(shí)采用了“乒乓制”,即在單片機開(kāi)辟了A、B兩個(gè)512字節的RAM存儲區,而A、B兩個(gè)存儲區分別交替完成存儲采樣數據和將采樣數據搬移到U盤(pán)中的任務(wù),相互獨立工作,互不干擾,有效地解決了存儲數據與搬移數據可能出現的沖突。第二,A/D轉換器采集到的數據不是真實(shí)的電壓值,而只是真實(shí)電壓值與參考電壓相比的相對值,因此為了今后對采樣值分析方便,還需要計算出真實(shí)采樣電壓值,并將數字轉換為字符后再存儲到U盤(pán)采樣數據文件中。
C8051F340單片機通過(guò)CH375訪(fǎng)問(wèn)U盤(pán)是系統軟件的核心部分,在實(shí)現這部分功能的程序中使用了南京沁恒電子有限公司開(kāi)發(fā)的CH375HF5.LIB庫函數。這里以系統插入U盤(pán),向U盤(pán)寫(xiě)入512字節數據,然后拔出的過(guò)程為例,簡(jiǎn)單介紹單片機訪(fǎng)問(wèn)CH375的程序流程。
系統初始化成功后,調用xQueryInterrupt()函數查詢(xún)CH375中斷并更新中斷狀態(tài),等待U盤(pán)插入。U盤(pán)插入后,經(jīng)過(guò)一段延時(shí),系統調用CH375DiskReady()函數查詢(xún)U盤(pán)是否準備就緒。U盤(pán)一旦就緒,系統調用mCopyCodeStringToIRAM()和CH375FileCreate()函數,在U盤(pán)根目錄新建采樣數據文件,并調用CH375FileOpen()函數打開(kāi)文件,接著(zhù)使用語(yǔ)句
mCmdParam.ByteLocate.mByteOffset=Oxffffffff使文件指針指向文件的尾部,以方便后面添加采樣數據。如果已完成512字節采樣數據的采集,則調用CH375FileWriteX()函數,實(shí)現U盤(pán)一個(gè)扇區的寫(xiě)操作。寫(xiě)操作完畢后,需要利用下列4個(gè)語(yǔ)句:
mCmdParam.Modify.mFileAttr=Oxff
mCmdParam.Modify.mFileTime=MAKE_FILE_TIME()
mCmdParam.Modify.mFileDate=MAKE_FILE_DATE()
mCmdParam.Modify.mFileSize=0xffffffff
對文件屬性、時(shí)間、日期、長(cháng)度等參數進(jìn)行修改,然后調用CH375FileModify()函數完成對上述4個(gè)文件屬性的更新。最后系統調用CH375FileClose()函數關(guān)閉文件,調用xQueryInterrupt()函數查詢(xún)CH375中斷并更新中斷狀態(tài),等待U盤(pán)拔出,從而最終完成對U盤(pán)的訪(fǎng)問(wèn)。
結語(yǔ)
本文設計的數據采集器利用高度集成的C8051F340處理器實(shí)現了數據A/D轉換和系統控制,利用CH375實(shí)現了采集器的USB主機功能,從而使采集的數據能以FAT32文件系統格式直接存儲到U盤(pán)中。該采集器數據收集方便,便于計算機分析,同時(shí)僅有C8051F340和CH375兩個(gè)主要器件,結構簡(jiǎn)單,工作穩定,只有名片大小,成本不足50元(不包括U盤(pán)),已成功應用于工業(yè)現場(chǎng)。
評論