薛耀 劉青青
在光電偵察系統(tǒng)中,通常需要使用操縱桿控制器來控制光電偵察系統(tǒng),實(shí)現(xiàn)對目標(biāo)的搜索、跟蹤。操縱桿控制器是光電偵察系統(tǒng)的重要組成部分,廣泛應(yīng)用于建筑機(jī)械、醫(yī)療設(shè)備、光學(xué)儀器等領(lǐng)域。
操縱桿控制器的設(shè)計(jì)主要是實(shí)現(xiàn)以下幾個(gè)功能:① 檢測是否有按鍵被按下;② 采集操縱桿輸出的模擬量;③ 通過串口把相應(yīng)的命令信息發(fā)送給光電偵察系統(tǒng)。按鍵檢測的功能主要是通過讀取相應(yīng)I/O端口的信號實(shí)現(xiàn);操縱桿輸出的模擬量則需要通過相應(yīng)的A/D采集電路實(shí)現(xiàn);與光電偵察系統(tǒng)的通訊則使用標(biāo)準(zhǔn)RS422接口實(shí)現(xiàn)。
操縱桿控制器系統(tǒng)主要包括操縱桿、按鍵和信號處理板。操縱桿和按鍵都是選用成熟的貨架產(chǎn)品。信號處理板以自帶A/D采集模塊的C8051F020 SoC微控制器為核心,把待檢測按鍵的一端接到其I/O口上,另一端接地,通過讀取相應(yīng)端口的值,判斷其值是否為低來判斷相應(yīng)按鍵是否被按下。操縱桿選用的是電位器操縱桿,在電位計(jì)兩端輸入+5V電壓,輸出端通過一個(gè)分壓電路將輸出信號幅度調(diào)整在0V~2.4V之內(nèi),再輸入給C8051F020片上集成的ADC模塊,實(shí)現(xiàn)模擬量采集。該系統(tǒng)結(jié)構(gòu)如圖1所示。
本系統(tǒng)采用Silicon Laboratories公司的微控制器C8051F020,它是全集成混合信號SoC處理器,具有與8051兼容的高速流水線結(jié)構(gòu)的CIP251內(nèi)核,速度可達(dá)25MIPS,該芯片具有如下特點(diǎn):① 內(nèi)置了64K可在線編程 FLASH ROM和4352字節(jié)的片內(nèi)RAM;② 具有兩個(gè)UART串行接口;③ 片上集成8路12位逐次逼近式 ADC,轉(zhuǎn)換數(shù)率最高 100ksps;④ 可通過JTAG接口實(shí)現(xiàn)在線調(diào)試功能[4]。
圖1 系統(tǒng)結(jié)構(gòu)圖
C8051F020的ADC使用逐次逼近式A/D轉(zhuǎn)換器,這種轉(zhuǎn)換技術(shù)基于逐次逼近寄存器(SAR)或稱為權(quán)衡轉(zhuǎn)換。采用一個(gè)比較器對輸入電壓和一個(gè)N位模數(shù)轉(zhuǎn)換器(DAC)的輸出進(jìn)行比較(權(quán)衡)。將 DAC輸出作為參考電壓,經(jīng)過N+1次比較就可以得到最終轉(zhuǎn)換結(jié)果。其中每次比較完成1位轉(zhuǎn)換[5]。第一步將DAC的最高有效位(MSB)保存到轉(zhuǎn)換器SCR中,接著將該值(MSB)對應(yīng)的電壓與輸入進(jìn)行比較,在比較器輸出(高或低)被反饋到 DAC,并在下一次比較時(shí)對其進(jìn)行修正。在邏輯控制電路的時(shí)鐘驅(qū)動下,SCR不斷的進(jìn)行比較和移位操作,直到完成LSB位的轉(zhuǎn)換。此時(shí)所產(chǎn)生的DAC輸出逼近輸入電壓的1/2LSB。每一位確定后,轉(zhuǎn)換結(jié)果被鎖存到SAR并作為ADC輸出。
設(shè)計(jì)中采用C8051F020片內(nèi)集成的8路真正12位的ADC, 直接采用C8051F020內(nèi)部的2.4V參考電壓。接口電路如圖2所示。在內(nèi)部基準(zhǔn)電壓的輸出端和地之間接上4.7μF和0.1μF的旁路電容去除干擾。模擬量輸入A_IN1、A_IN2分別接到通道1和通道2上。從傳感器傳遞過來的電壓信號強(qiáng)弱差別較大,需根據(jù)具體情況采用運(yùn)算放大器電路或電阻網(wǎng)絡(luò)將模擬電壓變換到0V~2.4V的范圍。調(diào)理電路采用運(yùn)放加電阻網(wǎng)絡(luò)來實(shí)現(xiàn)。運(yùn)放實(shí)現(xiàn)電阻匹配,電阻網(wǎng)絡(luò)實(shí)現(xiàn)電壓匹配。信號調(diào)理電路如圖3所示,其中R1,R2主要是完成把操縱桿輸出的0V~5V的信號調(diào)理成0V~2.4V的信號。
圖2 ADC接口電路
圖3 信號調(diào)理電路
由于單片機(jī)C8051F020具有64個(gè)I/O,遠(yuǎn)遠(yuǎn)大于所使用的按鍵數(shù)量,所以按鍵接口使用最簡單的一個(gè)按鍵對應(yīng)一個(gè)I/O口的設(shè)計(jì)。每個(gè)按鍵的一端接一個(gè)I/O,另一端接地。
設(shè)計(jì)中采用 C8051F020片內(nèi)集成的兩個(gè) UART串行接口,分別擴(kuò)展出一個(gè)RS422和RS232接口。RS422接口芯片選用MAX490,RS232接口芯片選用MAX3221,兩種芯片均使用5V供電,可直接使用系統(tǒng)輸入電壓。
本操縱桿控制器主要功能為檢測相應(yīng)的按鍵是否被按下,同時(shí)采集操縱桿的位置信息,把相應(yīng)的信息組合成相應(yīng)的控制指令,通過標(biāo)準(zhǔn)RS422接口發(fā)送給光電偵察平臺,以達(dá)到控制光電偵察平臺的目的。為了系統(tǒng)調(diào)試和測試的方便,設(shè)計(jì)了一個(gè)與計(jì)算機(jī)相連的 RS232接口,可完成操縱桿控制器的測試與調(diào)試。整個(gè)軟件主要分為以下幾個(gè)功能模塊:① 系統(tǒng)初始化;② 完成芯片配置,包括晶振、串口、定時(shí)器、AD的初始化;③ 定時(shí)器中斷。
為了實(shí)現(xiàn)定時(shí)給下位機(jī)發(fā)送指令信息,需要使用定時(shí)器產(chǎn)生一個(gè)80ms 的中斷,在這個(gè)中斷里完成按鍵檢測,AD采集和串口通訊。
為了能夠正確的判斷按鍵按下的情況,去除按鍵抖動的影響,本設(shè)計(jì)在軟件上采取了防抖動措施,即在檢測到某一按鍵按下后,延時(shí)20ms后再次檢測,如果這一按鍵還處于按下狀態(tài),則認(rèn)為該按鍵指令有效,否則認(rèn)為無效。
當(dāng)定時(shí)器中斷發(fā)生后,在軟件中向ADC控制寄存器的AD0BUSY位用1來啟動AD采集。由于每一路被采集的數(shù)據(jù)都有一定的噪聲,為了解決這個(gè)問題,在軟件中采用簡單實(shí)用的加權(quán)平均法進(jìn)行處理,即每次數(shù)據(jù)采集都進(jìn)行10次,然后取平均值。由于操縱桿的位置變化是一個(gè)連續(xù)的過程,所以AD采集的結(jié)果也是一個(gè)連續(xù)變化的過程。如果把AD采集的結(jié)果直接發(fā)送給光電偵察平臺,那么在使用的過程就可能會由于操作者手部的抖動而導(dǎo)致執(zhí)行部件的抖動,為了解決這個(gè)問題,需要在軟件上對AD采集的數(shù)據(jù)進(jìn)行處理。本設(shè)計(jì)所選用的方法是把整個(gè)數(shù)據(jù)區(qū)間分成若干個(gè),在同一個(gè)區(qū)間都輸出同一個(gè)數(shù)據(jù)。AD采集數(shù)據(jù)處理示意圖如圖4所示。這個(gè)方法在實(shí)際使用中效果比較明顯,也能很好的解決操縱桿回零不準(zhǔn)的問題。
操縱桿控制器串口通訊由UART0和UART1兩個(gè)串口組成。在每個(gè)通訊周期里操縱桿控制器通過UART0接口向光電偵察平臺發(fā)送操縱桿控制器的控制指令。該控制指令根據(jù)光電偵察平臺通訊協(xié)議的要求封裝。每一幀指令由消息頭、消息體和消息尾構(gòu)成。消息頭一般由兩個(gè)字節(jié)數(shù)據(jù)構(gòu)成。消息體由7個(gè)字節(jié)構(gòu)成,分別為每一幀的字節(jié)數(shù),光電偵察平臺的控制指令,各個(gè)傳感器的控制指令和光電偵察平臺控制指令的參數(shù)。消息尾為前面所有數(shù)據(jù)的校驗(yàn)和。具體幀格式如表1所示。
圖4 AD采集數(shù)據(jù)處理示意圖
表1 控制指令消息幀格式
系統(tǒng)測試過程中,操縱桿控制器通過UART1接口把信息同時(shí)發(fā)與光電偵察平臺及計(jì)算機(jī),通過相應(yīng)的通訊控制界面來監(jiān)視數(shù)據(jù)的正確性。在系統(tǒng)調(diào)試過程中,操縱桿控制器通過UART1接口接收計(jì)算機(jī)的指令來修改 UART0的工作模式、波特率等參數(shù)。整個(gè)系統(tǒng)的流程如圖5所示。
圖5 系統(tǒng)流程圖
本設(shè)計(jì)以C8051F020單片機(jī)為核心,實(shí)現(xiàn)了操縱桿控制器的設(shè)計(jì)。充分利用C8051F020豐富的I/O口資源和外設(shè)資源,完成實(shí)時(shí)按鍵檢測、AD采集和串口通訊功能。電路硬件設(shè)計(jì)可靠,集成度高,運(yùn)用靈活,在光電偵察平臺系統(tǒng)中已有廣泛應(yīng)用,在其它工業(yè)控制領(lǐng)域也具有一定的發(fā)展前景。
[1] 李冰,楊公訓(xùn),王磊.Cygnal F020單片機(jī)及其應(yīng)用[J].湖北民族學(xué)院學(xué)報(bào),2005,23(1):56-59.
[2] [美]Cygnal Integrated Products,Inc. C8051F單片機(jī)應(yīng)用解析[M].北京:北京航空航天大學(xué)出版社,2002.
[3] 馬忠梅,籍順心,張凱.單片機(jī)C語言應(yīng)用程序設(shè)計(jì).北京:航空航天大學(xué)出版社,1999.
[4] 潘琢金.C8051F020/1/2/3混合信號ISP FLASH微控制器數(shù)據(jù)手冊.沈陽航空工業(yè)學(xué)院計(jì)算機(jī)系,2002.
[5] 張培仁,孫力.基于C8051F系列微控制器原理與應(yīng)用[M].北京:清華大學(xué)出版社,2007.