<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于PIC16F877的飛機(jī)迎、側(cè)角自動(dòng)檢測系統(tǒng)

          基于PIC16F877的飛機(jī)迎、側(cè)角自動(dòng)檢測系統(tǒng)

          ——
          作者:空軍工程大學(xué)工程學(xué)院(西安 710038)田賢峰 周緒高 吳華 時(shí)間:2007-01-26 來源:《電子工程師》 收藏

          迎角、側(cè)滑角傳感器提供收音機(jī)飛行時(shí)的迎角和側(cè)滑角數(shù)據(jù),并以電壓信號(hào)的方式輸入到瞄準(zhǔn)具,用以修正航炮、導(dǎo)彈發(fā)射具有射擊方位,因此,其測量準(zhǔn)確性對(duì)收音機(jī)的射擊精度有很大的影響。由于傳感器風(fēng)標(biāo)安裝在空速管上,在飛行中受高速氣流的沖擊,不停振動(dòng),可能造成軸磨損、翼片變形、傳感器電位計(jì)斷絲以及接觸不良等故障,導(dǎo)致測量角存在較大誤差。目前在檢測迎、側(cè)滑角傳感器時(shí),主要采用以人工定性判斷為主、測角儀定量測試為輔的手段。人工檢測只能查出明顯的故障和缺陷,可靠性不高。用測角儀檢測時(shí),安裝不方便,操作不繁瑣,并且存在調(diào)整,指示和判讀誤差,測量精度不高。 針對(duì)這種情況,我們提出了一種自動(dòng)檢測的方法,可準(zhǔn)確地檢測迎角、側(cè)滑角風(fēng)標(biāo)的角度和相應(yīng)的電壓,并對(duì)加溫計(jì)加溫電流、電壓進(jìn)行檢測。我們?cè)O(shè)計(jì)了一種基于pic16f877單片機(jī)的迎、側(cè)角自動(dòng)檢測系統(tǒng),它能夠準(zhǔn)確檢測風(fēng)標(biāo)的電壓、角度、加溫電流,通過led顯示測量數(shù)據(jù),通過步進(jìn)電機(jī)控制風(fēng)標(biāo)的轉(zhuǎn)動(dòng),通過位移傳感器風(fēng)標(biāo)的角度,還能與計(jì)算機(jī)進(jìn)行通信,并具有打印功能。該系統(tǒng)在硬件和軟件方面都采取了抗干擾措施,運(yùn)行穩(wěn)定,性價(jià)比較高。

          本文引用地址:http://www.ex-cimer.com/article/20809.htm

          1 系統(tǒng)工作原理

          迎、側(cè)角檢測系統(tǒng)的組成框圖如圖1所示,迎角傳感器、側(cè)滑角傳感器、位移傳感器、霍爾傳感器(電流傳感器)信號(hào),這四路模擬信號(hào)經(jīng)單片機(jī)a/d轉(zhuǎn)換成數(shù)字信號(hào),經(jīng)cpu處理,在led上顯示,通過鍵盤設(shè)定我們所需的工作條件,風(fēng)標(biāo)在步進(jìn)電機(jī)的帶動(dòng)下轉(zhuǎn)動(dòng),位移傳感器測量相對(duì)于初始點(diǎn)的位移,通過位置關(guān)系可以把直線位移轉(zhuǎn)換成角位移,也就是說可以把角位移轉(zhuǎn)換成電壓信號(hào),霍爾傳感器把加溫電流轉(zhuǎn)化為電壓。如果測定的角度值和風(fēng)標(biāo)傳感器的電阻值與理論值在誤差允許之內(nèi),電流值在規(guī)定范圍之內(nèi),就認(rèn)為傳感器工作正常。串行通信部分完成與工控機(jī)的通信,微打控制部分控制微型打印機(jī),完成打印功能。整套系統(tǒng)質(zhì)量較輕,控制方便,運(yùn)行可靠。

          2 硬件電路的設(shè)計(jì)

          2.1 控制器的選擇

          對(duì)迎角和側(cè)滑角傳感器信號(hào)要求達(dá)到1%的精度。pic16f877內(nèi)含8路10位的a/d轉(zhuǎn)換器,對(duì)于本控制系統(tǒng)來說,其最高精度可以達(dá)到0.005v,完全能夠滿足系統(tǒng)的精度要求。

          pic16f877自帶256字節(jié)的電可擦寫eeprom存儲(chǔ)器,儲(chǔ)存每次測量的基準(zhǔn)值,也可以重新按鍵設(shè)定并寫入eeprom儲(chǔ)存。另外,它擁有18k×14bit的flash存儲(chǔ)器,368×8bit的數(shù)據(jù)sram、豐富的中斷源、標(biāo)準(zhǔn)的rs232串口設(shè)計(jì),具有體積小、功耗低的特點(diǎn)??撮T狗可以提高軟件運(yùn)行的可靠性,risc(精簡指令集計(jì)算機(jī))指令易學(xué)易用、icsp(在線可編程)方便可調(diào)。

          2.2 模擬輸入電路、鍵盤及顯示部分

          模擬輸入為四路傳感器信號(hào),其中,迎角傳感器、側(cè)滑角傳感器為空速管自帶的傳感器。位移傳感器的測量精度能夠達(dá)到測量的要求。對(duì)傳感器信號(hào)進(jìn)行一定的濾波處理,輸入到單片機(jī)的四個(gè)a/d轉(zhuǎn)換接口(ra0~ra3),轉(zhuǎn)換成10位的數(shù)字信號(hào)。步進(jìn)電機(jī)和位移傳感器安裝在同一個(gè)支架上。如步進(jìn)電機(jī)和位移傳感器安裝在迎角的風(fēng)標(biāo)上,通過鍵盤“選擇迎角”來選擇對(duì)迎角的測量,然后按“設(shè)置”鍵,設(shè)置需要測量的風(fēng)標(biāo)的角度。設(shè)置完成后,步進(jìn)電機(jī)帶動(dòng)風(fēng)標(biāo)和傳感器移動(dòng),移動(dòng)完成后,led分時(shí)顯示角度值、電阻值、誤差值和加溫電流值。

          顯示器選用8位led,每四個(gè)led為一個(gè)顯示單元,兩個(gè)單元分時(shí)顯示為設(shè)定角度值、風(fēng)標(biāo)電阻值、加溫電流值和測量誤差百分比。rd口提供段驅(qū)動(dòng),rd0~rd6分別連接到led的a~g,rd7為小數(shù)點(diǎn)控制位。每個(gè)led以5ms的頻率進(jìn)行掃描顯示,對(duì)于肉眼來說該顯示是連續(xù)的。74138為3線8線譯碼器,作為位驅(qū)動(dòng)。

          鍵盤由ra5和rb口構(gòu)成。主要功能鍵有:設(shè)置、顯示迎角、選擇迎角、選擇側(cè)滑角、顯示加溫電流值、打印、顯示誤差。設(shè)置ra5、rb0~rb3為輸出,作為行掃描線;設(shè)置rb4~rb7為輸入,作為列掃描線,從而組成4×5鍵盤。rb4~rb7初始化輸入低電平,ra5、rb0~rb3初始化輸出高電平。當(dāng)有按鍵被按下時(shí),對(duì)應(yīng)的列輸入線變?yōu)楦唠娖?,由于rb4、rb5、rb6、rb7具有輸入電平變化中斷功能,發(fā)生中斷。因此,可以準(zhǔn)確地對(duì)鍵值進(jìn)行掃描,作出正確的處理。

          2.3 步進(jìn)電機(jī)及微打控制部分

          步進(jìn)電機(jī)為四相制步進(jìn)電機(jī),工作在四相十拍的時(shí)序下,步進(jìn)角為0.9°。步進(jìn)電機(jī)通過輪軸帶動(dòng)風(fēng)標(biāo)的轉(zhuǎn)動(dòng)和位移傳感器的移動(dòng),每次步進(jìn)對(duì)應(yīng)的風(fēng)標(biāo)轉(zhuǎn)動(dòng)約為0.05°。步進(jìn)電機(jī)的分頻由單片機(jī)cpu來完成,rc0~rc3四個(gè)端口作為脈沖輸出控制端。74244起數(shù)據(jù)緩沖的使用,c0328為功放模塊。為防止電流過大,采用了繼電器來保護(hù)步進(jìn)電機(jī)。

          微型打印機(jī)主要功能是打印測量數(shù)據(jù),這里采用的是gp系列打印機(jī),由rd0~rd3作為打印機(jī)狀態(tài)輸入控制與顯示端口,能夠顯示微打目前的工作狀態(tài),采用的是中斷控制方式。

          rd0~rd7為并行數(shù)據(jù)交換端口,與打印機(jī)數(shù)據(jù)線相聯(lián)。re口為讀寫控制端口,在re控制下,rd口為8位的并行從動(dòng)數(shù)據(jù)總線。 rd端口作為顯示和微打控制的復(fù)用端口,執(zhí)行打印命令,rd端口作為并行從動(dòng)端口,由re0、re1、re2控制端口的方向,這時(shí),關(guān)閉led的顯示。由于完成一次檢測往往只需打印一次,這是不矛盾的。

          2.4 串行通信電路

          本系統(tǒng)能夠與工控機(jī)進(jìn)行通信,通過工控機(jī)我們可以進(jìn)行遠(yuǎn)程監(jiān)控和測量。本系統(tǒng)設(shè)置單片機(jī)的串行通信接口sci工作在全雙工異步從動(dòng)方式下。sci是利用rc6、rc7兩個(gè)引腳作為通信線的二線制串行接口,max232實(shí)現(xiàn)ttl/cmos數(shù)據(jù)轉(zhuǎn)化為rs232數(shù)據(jù)。把rc6和rc7分別設(shè)置成串行通信接口的發(fā)送/時(shí)鐘線和接收/數(shù)據(jù)線。單片機(jī)通過響應(yīng)中斷來實(shí)現(xiàn)與工控機(jī)的通信,通信原理圖如圖4所示。

          串行通信接口異步工作方式有以下重要部伯:波特率發(fā)生器(brg)、采樣電路、異步接收器、異步發(fā)送器。8位的brg用來驅(qū)動(dòng)來自振蕩器的時(shí)鐘,產(chǎn)生標(biāo)準(zhǔn)的波特率。接收線rc7通過1個(gè)三中取二檢測電路對(duì)其采樣三次,以決定rc7引腳上的電平是高電平還是低電平。sci的發(fā)送器和接收器在功能上是獨(dú)立的,但他們所用的數(shù)據(jù)格式和波特率是相同的。串行通信采用標(biāo)準(zhǔn)的不歸零格式,即1位起始位、8位數(shù)據(jù)位和1位停止位。sci接收和發(fā)送順序是從低位到高位依次進(jìn)行的。

          3 軟件設(shè)計(jì)

          在軟件設(shè)計(jì)中,既綜合了系統(tǒng)的功能、性能要求及硬件電路,又考慮了軟件的易維護(hù)性。利用看門狗結(jié)構(gòu)提高軟件的穩(wěn)定性。軟件晝采用模塊化設(shè)計(jì),并盡量做到各模塊的獨(dú)立性。主要模塊有:鍵盤事件的處理、led的顯示、步進(jìn)電機(jī)驅(qū)動(dòng)、異步串行通信、數(shù)據(jù)采集與處理。

          3.1 主程序設(shè)計(jì)

          主程序的流程圖如圖5所示。

          3.2 中斷處理程序設(shè)計(jì)

          為了充分利用微控制器資源,提高系統(tǒng)的可控性和穩(wěn)定性,系統(tǒng)使用了較多的中斷處理。pic16f877提供了豐富的中斷源,但它的中斷入口地址只有0004h一個(gè),每種中斷都要通過它進(jìn)入中斷程序,因此,中斷程序開始現(xiàn)場保存后,要進(jìn)行各種中斷標(biāo)志位的順序檢測和判斷。當(dāng)判斷到中斷標(biāo)志位時(shí),轉(zhuǎn)到相應(yīng)的中斷服務(wù)子程序中。根據(jù)檢測標(biāo)志位的順序,可以人為地定義中斷優(yōu)先級(jí),先判斷的優(yōu)先級(jí)就高。本系統(tǒng)根據(jù)實(shí)際情況,四種中斷優(yōu)先級(jí)由高到低依次為:串行通信中斷、鍵盤中斷、打印中斷、定時(shí)中斷。中斷服務(wù)程序流程圖如圖6所示。

          另外,中斷也存在嵌套問題。由于中斷入口地址只有一個(gè),因此,當(dāng)出現(xiàn)中斷嵌套時(shí),各級(jí)中斷返回的地址正確與否是很重要的。中斷現(xiàn)場保護(hù)是中斷技術(shù)的重要組成部分,由于pic單片機(jī)中的指令系統(tǒng)沒有push(入棧)、pop(出棧)指令,中斷現(xiàn)場數(shù)據(jù)不是保留在堆棧中,而是保留在所選擇的寄存器中,所以,存儲(chǔ)器和存儲(chǔ)體的選擇是非常重要的。

          4 結(jié)束語

          該系統(tǒng)工作穩(wěn)定可靠,具有良好的可控性,性價(jià)比較高。經(jīng)試用單位驗(yàn)證,該系統(tǒng)工作穩(wěn)定,精確度高??煽匦暂^強(qiáng),達(dá)到國內(nèi)先進(jìn)水平,具有較大的推廣前景。

          霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


          霍爾傳感器相關(guān)文章:霍爾傳感器原理


          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();