基于單片機的微波輻射計數(shù)控單元設(shè)計與實現(xiàn)
微波輻射計是用微波進行遙感,從而對地物進行探測的微波接收機,在探測大氣、海洋、植被和土壤等方面有廣泛應(yīng)用,而數(shù)據(jù)處理與控制單元作為微波輻射計的重要組成部分,承擔(dān)了所有的驅(qū)動及控制功能,對時序及精度要求十分嚴(yán)格。由于系統(tǒng)對可靠性要求較高,故采用單片機作為220 GHz微波輻射計數(shù)控單元的核心,通過精確的時序控制,實現(xiàn)了數(shù)據(jù)采集、天線控制、狀態(tài)提取、串口通信等功能。同時,該數(shù)控單元具有功耗低,采樣精度高,接口簡便等特點。
1 系統(tǒng)結(jié)構(gòu)
微波輻射計結(jié)構(gòu)框圖如圖1所示,由檢波器輸出的模擬信號通過數(shù)控單元實現(xiàn)數(shù)據(jù)采集及傳輸、顯示與數(shù)據(jù)處理等功能,并對系統(tǒng)時序、上下電等進行控制,在輻射計的設(shè)計中處于重要位置。
1.1 數(shù)控單元硬件結(jié)構(gòu)
系統(tǒng)由單片機、高速A/D轉(zhuǎn)換器、程序存儲器ROM、高速靜態(tài)RAM、讀寫控制電路、通信電路等部分組成,如圖2所示。通過鎖存器實現(xiàn)地址總線和數(shù)據(jù)總線的復(fù)用,同時,RAM的讀寫由讀寫控制電路來實現(xiàn)。
數(shù)控單元采用Atmel公司的AT89C51單片機作為控制器,具有4 KB閃存ROM,128 B RAM,支持電擦除1 000次,選擇工作頻率為11.059 6 MHz。同時采用AT28C256擴展程序存儲器ROM為256 KB,IDT71256擴展數(shù)據(jù)存儲器RAM為256 KB,通過鎖存器54HC573進行分時復(fù)用。
數(shù)據(jù)采集部分采用AD公司的16位并行模數(shù)轉(zhuǎn)換器AD976A,采樣速率可達200 KSPS。該高速A/D采用電荷重分布技術(shù)進行逐次逼近型模/數(shù)轉(zhuǎn)換,因而不必外加采樣保持器。電壓輸入范圍為-10~+10V,分辨率高,可做到16位不失碼,滿足微波輻射計數(shù)控精度要求。
AT89C51串行口輸出為TTL電平。為使其與PC機標(biāo)準(zhǔn)RS 232串口通信,系統(tǒng)選用MAX232電平轉(zhuǎn)換芯片。
1.2 硬件設(shè)計與實現(xiàn)
1.2.1 數(shù)據(jù)采集
單片機初始化完畢后,通過片選信號選中A/D轉(zhuǎn)換器,把RAM的控制權(quán)交給采集電路。AD976A進行數(shù)據(jù)采集時,置CS引腳固定為低電平,則轉(zhuǎn)換時序由 R/C信號的下降沿控制,信號脈沖寬度至少為50 ns。當(dāng)R/C變?yōu)榈碗娖綍r,BUSY信號也變?yōu)榈碗娖剑瑯?biāo)志轉(zhuǎn)換結(jié)束,則移位府存器中的數(shù)據(jù)被更新的二進制補碼替代。設(shè)計中,由于256 KB數(shù)據(jù)存儲器僅需要15位地址A0~A14,則使用A15與RD,WR共同作為控制線,使A/D轉(zhuǎn)換與數(shù)據(jù)存儲交替工作。當(dāng)A15低電平時,選通數(shù)據(jù)存儲器IDT71256,此時CS為高電平,則AD976A停止工作;當(dāng)A15為高電平時,通過與非邏輯電路使CS為低電平,選通AD976A,并通過WR 的變化提供R/C下降沿,這樣可以通過軟件延時精確控制采樣率。
1.2.2 總線控制
在數(shù)控單元硬件結(jié)構(gòu)中,采用P0口提供數(shù)據(jù)總線和地址總線,當(dāng)ALE輸出信號為高電平時,P0口,輸出數(shù)據(jù)鎖存入總線驅(qū)動器中地址的低8位,同時和P2口送出的高8位地址組成完整的16位地址,尋址到外部的256 KB地址空間,由A/D轉(zhuǎn)換器把采集到的數(shù)據(jù)存入靜態(tài)RAM中。由于P0口是數(shù)據(jù)與地址分時復(fù)用口,因此引進74HC573作為地址鎖存器。同時,使用 RD作為讀取外部數(shù)據(jù)內(nèi)存的控制線;WR作為寫入數(shù)據(jù)到外部內(nèi)存的控制線;PSEN作為存取外部程序存儲器的讀取控制線。
1.2.3 電機控制電路
天線驅(qū)動控制部分通過上位機發(fā)送電機啟動命令,單片機從串口接收到啟動命令后,向電機驅(qū)動器AKS230發(fā)出節(jié)拍脈沖,以帶動天線勻速轉(zhuǎn)動;通過編程控制P1.0口輸出節(jié)拍脈沖速率,即可控制天線轉(zhuǎn)速。當(dāng)上位機發(fā)出停止命令時,通過單片機程序提取天線狀態(tài),保證天線啟停處于同一位置??紤]到單片機輸出電流與電機驅(qū)動電流的匹配問題Ⅲ,這里使用總線驅(qū)動器74LS245與單片機相連,輸出電流可達20 mA,滿足電機驅(qū)動要求。
1.2.4 串口通信電路
串口通信部分通過AT89C51內(nèi)部的全雙工串行通信接口RXD和TXD進行發(fā)送和接收。AT89C51串行接口有四種工作模式,本設(shè)計中,串口工作于方式1,波特率可變,通過定時器T1進行溢出率控制,令T1工作于方式2,由于波特率為(2SMOD/32)·(fOSC/12)·[1/(28- TH1)],則通過計算可得T1裝載值為0xFA,波特率為9 600 b/s。這里選用MAX232完成TTL到EIA的電平轉(zhuǎn)換。
2 軟件設(shè)計
單片機軟件部分采用了模塊化的設(shè)計方法,按照功能分為數(shù)據(jù)采集及存儲、電機運行控制及狀態(tài)提取、串口發(fā)送與接收幾部分,各個模塊之間通過中斷或子程序調(diào)用等進行連接,有機地成為一體,整個系統(tǒng)已經(jīng)使用Medwin 3.O調(diào)試并能夠成功運行。
數(shù)據(jù)采集部分包括初始化、信號采集及存儲,采集速率通過編程進行控制,實現(xiàn)每10 ms采樣一個電壓值,并存人0100H~01C8H的地址空間中,采集100個數(shù)據(jù)后調(diào)用中斷通過串口傳給上位機進行后續(xù)處理。每次系統(tǒng)上電時,采集部分復(fù)位并從頭運行,數(shù)據(jù)采集部分程序流程圖如圖3所示。
電機運行控制部分通過中斷接收串口命令,以實現(xiàn)電機的精確啟動和停止,從而控制天線的掃描狀態(tài),當(dāng)串口發(fā)送5500h時電機停止;當(dāng)發(fā)送55ffh時電機啟動。其重點在于精確讀取天線的轉(zhuǎn)角狀態(tài),保證電機啟動和停止處于同一位置。主要通過軟件計數(shù)來實現(xiàn),由于電機步進角為1.8°且采用32細(xì)分,則每轉(zhuǎn)一圈步數(shù)為:360°/(1.8°/32)=6 400步,通過讀取計數(shù)值,實現(xiàn)對電機啟動停止位置的控制。電機控制部分程序流程圖如圖4所示。
串口通信部分采用中斷方式,包括串口初始化和串口傳輸兩部分,通過發(fā)送標(biāo)志TI和接收標(biāo)志RI判斷中斷類型,若為接收中斷,則接收上位機命令,控制電機啟動和停止;若為發(fā)送中斷,則實現(xiàn)每次間隔1 s向上位機發(fā)送100個電壓值,即200個字節(jié)。其中,串口通信部分流程圖如圖5所示。
3 上位機軟件設(shè)計
上位機軟件主要通過C#實現(xiàn),通過調(diào)用串口實現(xiàn)對下位機的控制及數(shù)據(jù)的后續(xù)處理,并能夠?qū)崟r顯示采集數(shù)據(jù)波形并保存。界面如圖6所示
4 結(jié) 語
單片機控制簡便,接口方便,實時性強?;谶@些優(yōu)勢,該文設(shè)計的微波輻射計數(shù)控單元不僅能夠精確控制天線轉(zhuǎn)動狀態(tài),控制天線啟、停,而且能夠在天線接收外界信號的同時,對信號進行轉(zhuǎn)換、采集、通信并顯示輸出,實時地反映信號的變化和被觀測目標(biāo)的特性,通過使用低功耗的16位A/D提高了轉(zhuǎn)換精度,且速度可調(diào),完全滿足微波輻射計的系統(tǒng)要求,在實時觀測方面具有廣泛應(yīng)用。