基于LabVIEW串口通信的數(shù)據(jù)采集串口收錄系統(tǒng)設(shè)計(jì)
1 系統(tǒng)總體方案
系統(tǒng)總體方案框圖如圖1所示,主要由前端數(shù)據(jù)采集和上位機(jī)波形顯示記錄兩大部分組成。前端數(shù)據(jù)采集部分以單片機(jī)AT89C52為核心,8 KB內(nèi)部ROM空間,硬件部分采集到的數(shù)據(jù)通過(guò)串口通信傳送給上位機(jī),收錄系統(tǒng)實(shí)時(shí)顯示、記錄、回放接收的數(shù)據(jù)。
2 硬件部分的設(shè)計(jì)
2.1 數(shù)據(jù)采集部分
該部分采用美信公司的MAX306芯片和ADI公司的AD976芯片。MAX306內(nèi)部提供16個(gè)信號(hào)通道,可在程序編程中指定某通道,通道選擇端由單片機(jī)P1口低4位控制,信號(hào)經(jīng)過(guò)某通道后送入A/D;AD976采樣率為200 kHz/s、分辨率為16 bit,采集信號(hào)范圍為-10 V~+10 V,精度為(1/216)×VREF=(1/216)×20=0.305 mV。A/D數(shù)據(jù)傳送端和單片機(jī)P0口相連,A/D控制端和P1口高4位相連。
2.2 串口通信部分
上位機(jī)和下位機(jī)通過(guò)RS-232串口進(jìn)行數(shù)據(jù)接收和發(fā)送,傳輸介質(zhì)為二芯屏蔽電纜,簡(jiǎn)單易用。下位機(jī)采用TTL電平,串口采用RS-232電平,因此串口通信需經(jīng)過(guò)電平轉(zhuǎn)換,電路采用MAX232電平轉(zhuǎn)換芯片,串口采用母頭接法。通信前先進(jìn)行初始化,包括串口工作方式、通信波特率設(shè)定等,這在下位機(jī)軟件中實(shí)現(xiàn)。
3 軟件部分的設(shè)計(jì)
3.1下位機(jī)軟件部分
下位機(jī)軟件部分采用C51語(yǔ)言編寫,這是專門為51系列單片機(jī)設(shè)計(jì)的高效率C語(yǔ)言編譯器,符合ANSI標(biāo)準(zhǔn),程序代碼運(yùn)行效率高,比匯編語(yǔ)言更簡(jiǎn)單易用[2]。
下位機(jī)軟件程序流程圖如圖2所示。BUSY為轉(zhuǎn)換結(jié)束狀態(tài)標(biāo)志位,BUSY=1表示轉(zhuǎn)換完成可以讀取,否則,繼續(xù)轉(zhuǎn)換。將讀取結(jié)果送給AT89C52處理,轉(zhuǎn)換為十進(jìn)制后傳送給液晶和上位機(jī),喂狗部分防止程序跑飛。軟件實(shí)現(xiàn)定點(diǎn)疊加平均數(shù)據(jù)處理、看門狗定時(shí)復(fù)位和冗余避錯(cuò)功能,將連續(xù)采集的3次數(shù)據(jù)求平均值,使得采集結(jié)果更準(zhǔn)確。
其中十進(jìn)制的轉(zhuǎn)換是關(guān)鍵,轉(zhuǎn)化公式是:
實(shí)際模擬量=(1/216)×VREF×ValueP0。
其中,VREF為A/D參考電壓20 V,ValueP0為A/D轉(zhuǎn)換后的二進(jìn)制結(jié)果。
3.2 上位機(jī)軟件部分
上位機(jī)軟件部分采用LabVIEW語(yǔ)言編寫,程序中用到VISA資源包。VISA是虛擬儀器軟件構(gòu)架的縮寫,是儀器編程的標(biāo)準(zhǔn)I/O API,可控制GPIB、串口、USB、以太網(wǎng)、PXI或VXI儀器,并根據(jù)使用儀器的類型調(diào)用相應(yīng)的驅(qū)動(dòng)程序,用戶無(wú)需學(xué)習(xí)各種儀器的通信協(xié)議[3]。
評(píng)論