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