基于C8051F340的低成本數(shù)據(jù)采集器設(shè)計
工業(yè)現(xiàn)場一般需要數(shù)據(jù)采集器完成各類數(shù)據(jù)采集任務(wù)。實際應(yīng)用中要求數(shù)據(jù)采集器工作可靠,成本低廉,操作簡單,便于數(shù)據(jù)收集和分析,既能與PC機聯(lián)機工作又能獨立采集數(shù)據(jù)。為此,本文以帶有片上USB控制器和D/A轉(zhuǎn)換器的高度集成處理器C8051F340為核心器件,采用SD卡存儲技術(shù)利用USB總線、虛擬儀器實現(xiàn)軟件LabVIEW設(shè)計圖形用戶界面,設(shè)計一款低成本數(shù)據(jù)采集器。該數(shù)據(jù)采集器可與PC機共同實現(xiàn)數(shù)據(jù)采集與分析,也可長時間獨立工作于工業(yè)現(xiàn)場,并將采集數(shù)據(jù)存放于大容量SD卡,便于數(shù)據(jù)收集并利用計算機分析。數(shù)據(jù)采集器的核心器件C8051F340是完全集成的混合信號片上系統(tǒng)型MCU,具有高達(dá)48 MI/s速率、流水線結(jié)構(gòu)的8051兼容微控制器內(nèi)核:全速、非侵入式的在線調(diào)試接口;帶有8個靈活的端點通道,具有收發(fā)器和1 KB FIFO RAM的USB功能控制器;電源穩(wěn)壓器;帶有模擬多路器的10位200 KS/s的單端/差分ADC;精確校準(zhǔn)的12 MHz內(nèi)部振蕩器和4倍時鐘乘法器;多達(dá)64 KB的片內(nèi)Flash存儲器;4 352字節(jié)片內(nèi)RAM;具有5個捕捉/比較模塊和看門狗定時器功能的可編程計數(shù)器/定時器陣列;3.3 V工作電壓,功耗低且?guī)в衅瑑?nèi)上電復(fù)位、VDD監(jiān)視器和時鐘丟失檢測器;容許5 V輸入的多達(dá)40個I/O端口。還有與此處理器配套的免費集成開發(fā)軟件Silicon Labs IDE,以及專為其片上USB控制器開發(fā)的USBXpress開發(fā)套件,從而使得USB軟件開發(fā)變得容易。
2 系統(tǒng)設(shè)計方案
系統(tǒng)設(shè)計框圖如圖1所示,整個系統(tǒng)由PC機和C8051F340數(shù)據(jù)采集模塊組成。PC機部分主要是軟件設(shè)計,包括LabVIEW軟件編寫的數(shù)據(jù)采集圖形用戶界面和C8051F340單片機片上USB主機API,負(fù)責(zé)接收、顯示和處理由數(shù)據(jù)采集模塊通過USB接口發(fā)送的采集數(shù)據(jù)。而數(shù)據(jù)采集模塊主要由C8051F340處理器、預(yù)處理電路和SD卡構(gòu)成,負(fù)責(zé)通過C8051F340片上D/A采集經(jīng)預(yù)處理電路的被測信號,再將采集信號存儲至SD卡,并經(jīng)USB總線傳輸給PC機顯示。另外,LabVIEW應(yīng)用程序和C8051F340應(yīng)用程序均是采用Silicon Laboratories公司提供的USBXpress開發(fā)套件的API和驅(qū)動程序來實現(xiàn)對底層USB器件的讀寫操作。
3 硬件設(shè)計
系統(tǒng)的硬件設(shè)計主要是數(shù)據(jù)采集模塊。由于C8051F340內(nèi)部集成了高精度時鐘源、USB控制器、電壓調(diào)節(jié)器、A/D轉(zhuǎn)換器以及用于A/D轉(zhuǎn)換的參考電壓源等豐富的片上外設(shè),因此在對數(shù)據(jù)采集模塊硬件設(shè)計時,無需擴展上述電路,使得系統(tǒng)硬件結(jié)構(gòu)簡單,集成度高,可靠性好。如圖2所示,通過片上USB接口,C8051F340與PC機相連,從PC機USB接口+5 V端提取電源輸入至REGIN引腳,內(nèi)部電壓調(diào)節(jié)器提供+3.3 V電壓。SD卡等元件的供電也由PC機USB接口提供,但需經(jīng)+5 V至+3.3 V的電壓轉(zhuǎn)換電路。此外,系統(tǒng)還具有獨立的電源模塊,應(yīng)對系統(tǒng)獨立運行而現(xiàn)場USB不能供電的情況。C8051F340通過其片上P00~P03引腳與SD卡連接,實現(xiàn)SPI模式通信。需要說明的是:P01與D0和P02與DI的兩條連接線應(yīng)該分別接10 kΩ和100 kΩ的上拉電阻,圖2中省略。系統(tǒng)還設(shè)計了復(fù)位按鍵,用于下載程序代碼和進行調(diào)試的10針下載調(diào)試接口,用于對被測信號限幅和防混疊濾波的預(yù)處理。PC機和數(shù)據(jù)采集模塊互連的USB連接線應(yīng)選用帶有雙磁環(huán)保護的連接線,以保護數(shù)據(jù)采集模塊由于USB經(jīng)常連接帶電拔插或其他干擾而遭受損壞。
4 軟件設(shè)計
系統(tǒng)軟件主要包括PC機LabVIEW程序和C8051F340處理器程序。
4.1 PC機LabVIEW程序設(shè)計
PC機LahVIEW程序設(shè)計主要完成用戶圖形界面和基于USB主機通信程序兩大功能,從而實現(xiàn)人機交互,并將用戶輸入的指令和采集模塊采集的數(shù)據(jù)通過USB總線在PC機和C28051F340之間傳遞。用戶圖形界面屬于LabVIEW的前面板設(shè)計,較為簡單,這里主要討論LabVIEW的程序面板(后面板)設(shè)計。如圖3所示,整個程序流程完全圍繞USB通信展開,流程圖中所涉及的SI_GetNumDevices()、SI_GetProductString()等函數(shù)均是Silicon Lab公司專為C8051F340單片機USB功能開發(fā)的USB主機端API函數(shù)。通過上層應(yīng)用程序中直接調(diào)用這些函數(shù)可以方便快捷地實現(xiàn)對USB底層硬件的訪問。
4.2 C8051F340處理器程序設(shè)計
C8051F340單片機程序設(shè)計主要完成兩大功能,一是基于USB器件的通信程序,接收從USB主機發(fā)送的用戶指令并將采集的數(shù)據(jù)或SD卡中存儲的采集數(shù)據(jù)發(fā)送給USB主機;二是A/D轉(zhuǎn)換程序和SD卡讀寫程序。
圖4為C8051F340處理器USB通信程序流程圖。整個程序流程是以USB通信為主線,流程圖中所涉及的USB Clock Start()、USB Init()等函數(shù)均是Silicon Lab公司專為C8051F340單片機USB功能開發(fā)的USB端API函數(shù)。通過在C8051F340上層應(yīng)用程序中直接調(diào)用這些函數(shù)可以方便快捷地實現(xiàn)對USB底層硬件的訪問。A/D轉(zhuǎn)換程序簡單,可通過設(shè)置C8051F340片上定時器確定A/D轉(zhuǎn)換器的采樣周期,由定時器的溢出周期性的啟動A/D轉(zhuǎn)換器采樣被測數(shù)據(jù)。C8051F340通過SPI接口與SD卡進行通信,完成采集數(shù)據(jù)的存儲或讀取。但SD卡上電后默認(rèn)工作在SD卡通信模式,因此C8051F-340上電后對SD卡的初始化設(shè)置時,須將其SD卡通信模式轉(zhuǎn)換為SPI通信模式。具體操作過程:C8051F340先向SD卡發(fā)出復(fù)位命令CMD0,若SD卡接收到返回值Ox01,則說明SD卡的SPI通信模式設(shè)置成功,至少經(jīng)過74個時鐘周期延時,就可進行SPI通信。SD卡的讀寫是以數(shù)據(jù)塊為單位,數(shù)據(jù)塊的長度最大可設(shè)置為512字節(jié),另外出于避免對SD卡過于頻繁訪問的考慮,被測信號采樣后的采樣值一般不能直接存儲到SD卡中,等采樣數(shù)據(jù)湊足設(shè)定的塊數(shù)據(jù)后,再集中存入SD卡。C8051F340通過SPI接口從SD卡讀取或存儲一塊數(shù)據(jù)的流程如圖5所示。需要說明的是C8051F340向SD卡寫入數(shù)據(jù),在圖5所示的流程后,C8051F340將接收到SD卡發(fā)送的響應(yīng)信息,從而確定C8051F340向SD卡寫入的數(shù)據(jù)是否正確。
5 結(jié)束語
本文設(shè)計的數(shù)據(jù)采集器利用高度集成的器件C8051F340實現(xiàn)數(shù)據(jù)A/D轉(zhuǎn)換、USB總線通信和系統(tǒng)控制,可與計算機聯(lián)機,也可利用大容量SD卡長時間現(xiàn)場獨立工作,數(shù)據(jù)采集方便。該數(shù)據(jù)采集器僅采用C8051F340一個主器件,結(jié)構(gòu)簡單,工作穩(wěn)定,體積小,成本低,現(xiàn)已成功用于工業(yè)現(xiàn)場。