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