《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 系留飛艇地面監(jiān)測(cè)系統(tǒng)艇載控制模塊設(shè)計(jì)
系留飛艇地面監(jiān)測(cè)系統(tǒng)艇載控制模塊設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2010年第11期
李一波,高永霞
沈陽(yáng)航空航天大學(xué) 自動(dòng)化學(xué)院,遼寧 沈陽(yáng)110136
摘要: 采用STC12C5A60S2單片機(jī)作為系統(tǒng)控制單元,由其PCA定時(shí)器產(chǎn)生PWM信號(hào)控制云臺(tái)水平和垂直方向的舵機(jī),將旋轉(zhuǎn)編碼器與舵機(jī)同軸相連,單片機(jī)定時(shí)器0與定時(shí)器1對(duì)水平和垂直旋轉(zhuǎn)編碼器轉(zhuǎn)動(dòng)產(chǎn)生的脈沖分別進(jìn)行計(jì)數(shù),確定當(dāng)前角度,以控制吊艙中攝像裝置進(jìn)行全方位監(jiān)測(cè)。介紹了控制模塊硬件結(jié)構(gòu)及軟件實(shí)現(xiàn)。通過實(shí)際系留飛艇的驗(yàn)證,此模塊能夠在地面站的控制下,控制云臺(tái)攝像機(jī)進(jìn)行全方位地面監(jiān)測(cè)。
中圖分類號(hào): TP36
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2010)11-0052-04
Tethered airship ground monitoring system airbone control module design
LI Yi Bo,GAO Yong Xia
Shenyang University of Aeronautics & Astronautics,Shenyang 110136,China
Abstract: By adopting STC12C5A60S2 as a system control unit, generating PWM signal by PCA timer to control horizontal and vertical steering gears on PTZ,we connect rotary encoder coaxial to steering , Timer 0 and Timer 1 of single chip count the pulses that generated by turnning rotary encoder in horizontal and vertical directions to determine the current point of view, in order to control the camera device in pod to monitor all-round. This paper describes hardware and software of the control module. Verified by actual tethered airship, this module can control PTZ camera to monitor full-ground under the control of ground station.
Key words : air bone control module;wireless communication module;rotary encoder;digital compass;PWM

    系留飛艇地面監(jiān)測(cè)系統(tǒng)具有全天候、大視角、大覆蓋率、高機(jī)動(dòng)性等特點(diǎn),還能針對(duì)某一區(qū)域?qū)iT放大監(jiān)測(cè),將信息及時(shí)反饋地面站,所以在監(jiān)測(cè)方面應(yīng)用廣泛,但造價(jià)昂貴。此項(xiàng)目設(shè)計(jì)了價(jià)格低廉的系留飛艇地面監(jiān)測(cè)系統(tǒng),系統(tǒng)包括地面站和艇載模塊。艇載模塊需要完成的任務(wù)包括:通過無(wú)線通信模塊與地面站進(jìn)行通信,根據(jù)制定的通信協(xié)議解析接收的命令,做相應(yīng)的操作;為確保數(shù)據(jù)通信的正確性,將接收數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn),數(shù)據(jù)錯(cuò)誤則放棄,正確則進(jìn)行處理并由單片機(jī)PCA定時(shí)器生成PWM信號(hào)來控制云臺(tái)水平和垂直轉(zhuǎn)動(dòng)的舵機(jī);與數(shù)字羅盤進(jìn)行通信,獲取系留飛艇姿態(tài)信息發(fā)給地面站;單片機(jī)定時(shí)器0和定時(shí)器1對(duì)舵機(jī)帶動(dòng)旋轉(zhuǎn)編碼器轉(zhuǎn)動(dòng)時(shí)產(chǎn)生的脈沖進(jìn)行計(jì)數(shù)并將其反饋給地面站;單片機(jī)外部中斷0和1監(jiān)測(cè)零位開關(guān),對(duì)計(jì)數(shù)值進(jìn)行清零操作。根據(jù)艇載單片機(jī)發(fā)回的飛艇姿態(tài)和轉(zhuǎn)角信息,地面站分析并改變控制數(shù)據(jù)發(fā)送給飛艇模塊,以控制云臺(tái)按照意愿進(jìn)行地面監(jiān)測(cè)。
    飛艇艇載模塊所要實(shí)現(xiàn)的功能相對(duì)比較簡(jiǎn)單,其控制單元僅需要2個(gè)串口,3個(gè)定時(shí)器,2個(gè)外部中斷和少數(shù)I/O口即可。STC12C5A60S2單片機(jī)有4個(gè)16 bit定時(shí)器,2個(gè)全雙工異步串行口,2個(gè)外部中斷入口,具有先進(jìn)的指令集結(jié)構(gòu),符合系統(tǒng)設(shè)計(jì)需要,故選擇此款單片機(jī)作為艇載模塊的控制單元,實(shí)現(xiàn)系統(tǒng)功能。
1 硬件結(jié)構(gòu)設(shè)計(jì)
    艇載模塊根據(jù)地面站指令生成相應(yīng)的PWM信號(hào)使舵機(jī)轉(zhuǎn)動(dòng),與此同時(shí),單片機(jī)定時(shí)器對(duì)旋轉(zhuǎn)編碼器脈沖進(jìn)行計(jì)數(shù),并把計(jì)數(shù)值下傳,地面站根據(jù)收到的脈沖數(shù)計(jì)算云臺(tái)當(dāng)前角度,然后發(fā)送繼續(xù)轉(zhuǎn)或者停止轉(zhuǎn)動(dòng)命令指令。為了處理方便,在云臺(tái)上安裝了光電開關(guān),以確定絕對(duì)零度位置。因此,艇載模塊主要包括STC12C5A60S2單片機(jī)及其外圍電路,如圖1所示。

1.1 STR-30型微功率無(wú)線數(shù)傳模塊
    STR-30無(wú)線數(shù)傳模塊提供標(biāo)準(zhǔn)RS-232、RS-485和UART 3種接口方式,可與計(jì)算機(jī)、RS-485設(shè)備、單片機(jī)或其他UART器件直接連接使用。無(wú)線模塊提供1個(gè)9針的連接器(JP1)、一個(gè)天線接口(ANT)和一組調(diào)線短路器(JP2)。短路器(JP2)負(fù)責(zé)通信信道、串口2類型和通信數(shù)據(jù)位的選擇。JP2的ABC三位跳線提供8種選擇,用戶可以通過ABC確定使用的0~7號(hào)信道。在一個(gè)通信小網(wǎng)中,只要ABC的跳線方式相同,就可相互通信。它提供兩個(gè)串口,COM1固定為TLL電平的UART串行口,COM2可通過JP2的D位來選擇接口方式為RS-485或RS-232。JP2的E位用來選擇數(shù)據(jù)是否帶有校驗(yàn)位。本系統(tǒng)采用COM1直接與單片機(jī)串口0連接與地面站通信,采用波特率為9 600 b/s。
    艇載單片機(jī)通過無(wú)線傳輸模塊與地面站通信,整個(gè)協(xié)議都由地面站發(fā)起,地面站發(fā)送,艇載機(jī)應(yīng)答。地面站到飛艇的數(shù)據(jù)鏈路稱為上行鏈路,飛艇到地面站的數(shù)據(jù)鏈路稱為下行鏈路。上下行鏈路均采用表1所示的數(shù)據(jù)幀格式。

    對(duì)于舵機(jī)命令,除幀頭、幀尾外,數(shù)據(jù)都用字符碼傳輸。計(jì)算方法為:待傳數(shù)據(jù)/128,傳送商和余數(shù),其CRC用字符表示,占用3 B。下行數(shù)據(jù)包括羅盤數(shù)據(jù)、電壓A/D數(shù)據(jù)、旋轉(zhuǎn)編碼器脈沖計(jì)數(shù)值,除羅盤數(shù)據(jù)外,其余量數(shù)據(jù)也用字符碼傳輸,計(jì)算方法同上。
    飛艇應(yīng)答時(shí),若正常,則有數(shù)據(jù)就發(fā)數(shù)據(jù),無(wú)需應(yīng)答;若無(wú)數(shù)據(jù),則發(fā)正常應(yīng)答命令。地面站和飛艇,若第1個(gè)接收到的字節(jié)為非AAH,接收端都不響應(yīng),且從接收到第1個(gè)字節(jié)開始,啟動(dòng)接收超時(shí)定時(shí)器,若在規(guī)定時(shí)間未收完數(shù)據(jù),則自動(dòng)重新進(jìn)入待機(jī)狀態(tài),清除已接收到的數(shù)據(jù)。發(fā)送端也一樣,在發(fā)送完尾字節(jié)CCH后,都要啟動(dòng)超時(shí)定時(shí)器,若在規(guī)定時(shí)間未收到應(yīng)答,則延時(shí)一規(guī)定時(shí)間,重新發(fā)送。
1.2 旋轉(zhuǎn)編碼器
    本系統(tǒng)采用增量脈沖雙脈沖輸出旋轉(zhuǎn)編碼器,其供電電壓為5 V,主要技術(shù)參數(shù)為1 000線/360 ℃(即每轉(zhuǎn)有1 000個(gè)脈沖),其兩路輸出為兩組相位差90 ℃的脈沖,這樣通過這兩組脈沖就可以判斷旋轉(zhuǎn)方向。其兩相輸出脈沖見圖2。應(yīng)用電路見圖3。

    系統(tǒng)中需要兩個(gè)旋轉(zhuǎn)編碼器對(duì)舵機(jī)定位,若每個(gè)旋轉(zhuǎn)編碼器用兩個(gè)計(jì)數(shù)器分別對(duì)其正轉(zhuǎn)脈沖和反轉(zhuǎn)脈沖進(jìn)行計(jì)數(shù),則本系統(tǒng)需要四個(gè)計(jì)數(shù)器,而產(chǎn)生PWM信號(hào)需要占用1個(gè)定時(shí)器,系統(tǒng)資源不夠用,所以本文將旋轉(zhuǎn)編碼器的兩相輸入A作為D觸發(fā)器輸入,B作為時(shí)鐘脈沖CP,若正轉(zhuǎn),則每個(gè)B的上升沿A總為高電平,輸出為高電平,反之反轉(zhuǎn)其輸出總為低電平。這樣就可以根據(jù)D觸發(fā)器輸出判斷旋轉(zhuǎn)方向,而將A與B經(jīng)過與門得到正反轉(zhuǎn)計(jì)數(shù)脈沖,用定時(shí)器對(duì)這些脈沖計(jì)數(shù)即可計(jì)算出當(dāng)前角度。程序中通過判斷旋轉(zhuǎn)方向?qū)⒂?jì)數(shù)值分別累加到正轉(zhuǎn)計(jì)數(shù)變量或者反轉(zhuǎn)計(jì)數(shù)值變量。
1.3 數(shù)字羅盤
      數(shù)字羅盤HMR3300體積小、功耗低、精度高,能實(shí)時(shí)準(zhǔn)確地輸出被測(cè)物體的航向、俯仰、橫滾三個(gè)方向上的狀態(tài)數(shù)據(jù)。單片機(jī)通過串口2接收數(shù)字羅盤發(fā)來的飛艇姿態(tài)信息,以便根據(jù)飛艇的方向控制舵機(jī)進(jìn)行地面監(jiān)測(cè),其通信波特率為9 600 b/s。
1.4 光電開關(guān)
    光電開關(guān)是利用被檢測(cè)物對(duì)光束的遮擋或反射,有同步回路選通電路,從而檢測(cè)物體的有無(wú)。利用此性質(zhì),在云臺(tái)上安裝了兩個(gè)光電開關(guān)及遮擋物,以實(shí)現(xiàn)標(biāo)定其上兩個(gè)舵機(jī)轉(zhuǎn)動(dòng)的絕對(duì)零度位置。其應(yīng)用原理圖見圖4。光電開關(guān)中無(wú)遮擋物時(shí),輸出為高電平,否則為低電平。舵機(jī)轉(zhuǎn)動(dòng)時(shí),每次經(jīng)過絕對(duì)零度位置時(shí),固定的鐵片遮擋光電開關(guān),從而使輸出發(fā)生從高到低的變化,下降沿觸發(fā)外部中斷,清正反轉(zhuǎn)計(jì)數(shù)變量。

2 軟件設(shè)計(jì)
    本系統(tǒng)主要功能是,艇載控制模塊能夠在地面站的控制下,生成PWM信號(hào)控制云臺(tái)上水平和垂直舵機(jī),使其按照設(shè)定角度轉(zhuǎn)動(dòng),以實(shí)現(xiàn)系留飛艇對(duì)地面的監(jiān)測(cè)。程序中串口0中斷接收地面站發(fā)來的數(shù)據(jù),由PCA定時(shí)器生成PWM信號(hào),定時(shí)器0和1分別用來對(duì)垂直和水平的旋轉(zhuǎn)編碼器脈沖計(jì)數(shù),外部中斷0和1分別接水平和垂直安裝的光電開關(guān)輸出,以標(biāo)定絕對(duì)零度位置。
2.1 主程序
    主程序中主要完成了系統(tǒng)各個(gè)部分的初始化,讀定時(shí)器0和定時(shí)器1中計(jì)數(shù)值,讀電壓A/D數(shù)據(jù)等任務(wù)。程序中將中斷分為4個(gè)等級(jí),生成PWM信號(hào)控制舵機(jī)轉(zhuǎn)動(dòng)的PCA定時(shí)器中斷優(yōu)先級(jí)最高,為了保證羅盤數(shù)據(jù)的完整性,用于接收其數(shù)據(jù)的串口1中斷優(yōu)先級(jí)次之,串口0中斷低于串口1中斷,外部中斷和定時(shí)器中斷優(yōu)先級(jí)最低。程序中設(shè)有4個(gè)返回?cái)?shù)據(jù)標(biāo)志位,aad_flag,ad_flag,pose_flag,shuju_flag,前三個(gè)分別與定時(shí)器計(jì)數(shù)值及A/D數(shù)據(jù)和數(shù)字羅盤返回姿態(tài)數(shù)據(jù)對(duì)應(yīng),當(dāng)有對(duì)應(yīng)數(shù)據(jù)時(shí)將標(biāo)志位置1,有任一返回?cái)?shù)據(jù)時(shí)將shuju_flag置1。程序流程圖見圖5。

2.2 PCA定時(shí)器中斷子程序
    控制多舵機(jī)或電機(jī)的工作,并且使其工作周期均為20 ms時(shí),要求硬件產(chǎn)生的多路PWM波的周期也相同[1]。控制舵機(jī)的PWM信號(hào)的正脈沖寬度為0.5 ms~2.5 ms,控制電機(jī)的PWM信號(hào)的正脈沖為1 ms~2 ms。程序中實(shí)現(xiàn)了生成可變路數(shù)且最多為8路PWM信號(hào),具體路數(shù)視具體情況由地面站決定。利用STC系列單片機(jī)的PCA定時(shí)器對(duì)系統(tǒng)時(shí)鐘脈沖計(jì)數(shù),每路信號(hào)由兩次中斷實(shí)現(xiàn),先實(shí)現(xiàn)正脈沖定時(shí)中斷,然后負(fù)脈沖中斷,兩次中斷總定時(shí)為2.5 ms,即1路PWM信號(hào)占用2.5 ms,8路信號(hào)占20 ms,而每一路信號(hào)除了定時(shí)的正脈沖時(shí)間為高電平,剩余17.5 ms~19.5 ms內(nèi)均為低電平,這樣保證了每路信號(hào)的周期均為20 ms,且可以在1個(gè)周期內(nèi)順次啟動(dòng)各路PWM波的上升沿,生成PWM信號(hào),提高了效率。每次中斷后有一變量自加,控制下次中斷進(jìn)入的定時(shí)入口,在每次循環(huán)的第16次中斷將此變量清零,這樣就可以實(shí)現(xiàn)8路PWM控制信號(hào)的輸出。為了確保20 ms內(nèi)定時(shí)數(shù)據(jù)不隨地面站發(fā)來數(shù)據(jù)影響而改變,程序中采用了雙緩沖的做法,在第16次中斷時(shí)將新數(shù)據(jù)更新到PCA定時(shí)初值緩存中。流程圖見圖6。

2.3 串口0中斷子程序
    單片機(jī)串口0和地面站通信,以獲得生成PWM信號(hào)的數(shù)據(jù)。程序中采用中斷接收和中斷發(fā)送,并在中斷程序中對(duì)接收到的命令進(jìn)行了解析,對(duì)于數(shù)據(jù)命令,對(duì)舵機(jī)數(shù)據(jù)進(jìn)行了循環(huán)冗余校驗(yàn),將正確的數(shù)據(jù)作為形參調(diào)用計(jì)算定時(shí)器初值的函數(shù),函數(shù)值存放在定義好的數(shù)組當(dāng)中,在PCA第16次中斷時(shí),將此數(shù)組中數(shù)據(jù)更新到PCA定時(shí)初值緩存中。
2.4 串口1中斷子程序
    串口1中斷用于接收來自數(shù)字羅盤的飛艇姿態(tài)信息,每接收完一幀數(shù)據(jù)并根據(jù)標(biāo)志位s_mark的狀態(tài)決定是否將此刻數(shù)據(jù)更新到發(fā)送緩存中,以防止新數(shù)據(jù)沖去原數(shù)據(jù),并置1pose_flag和shuju_flag標(biāo)志位。
2.5 數(shù)據(jù)發(fā)送子程序
    艇載模塊有數(shù)據(jù)返回地面站時(shí),發(fā)送命令‘M’,格式如圖7所示。

    數(shù)據(jù)辨別位占1字節(jié),用此字節(jié)后三位表示是否有姿態(tài)、角度、A/D數(shù)據(jù),有則置1該位,無(wú)則清零。用其前兩位分別表示旋轉(zhuǎn)編碼器正轉(zhuǎn)脈沖數(shù)與反轉(zhuǎn)脈沖數(shù)之差是否小于零,若小于零,則置1對(duì)應(yīng)位,否則清零。此位表征了舵機(jī)當(dāng)前位置處于絕對(duì)零點(diǎn)位置的左邊還是右邊,若為1,則在零點(diǎn)左邊。數(shù)據(jù)區(qū)排放次序依次是姿態(tài)、角度、A/D數(shù)據(jù),若無(wú)前者數(shù)據(jù)則順次前移。s_mark和aa_flag標(biāo)志是為了保證放到發(fā)送緩沖區(qū)的姿態(tài)數(shù)據(jù)和角度數(shù)據(jù)的完整性。
2.6 定時(shí)器0與1中斷子程序
    定時(shí)器0與1分別用來對(duì)兩個(gè)旋轉(zhuǎn)編碼器的脈沖進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)溢出時(shí),需要對(duì)TH和TL重新賦初值0,而用于保存上一時(shí)刻計(jì)數(shù)值和當(dāng)前計(jì)數(shù)值的緩存變量需要清零,以保證角度精度。
2.7 外部中斷0與1中斷子程序
    外部中斷0與1用于標(biāo)定云臺(tái)上舵機(jī)轉(zhuǎn)動(dòng)的絕對(duì)零點(diǎn)位置。中斷中將正反轉(zhuǎn)計(jì)數(shù)變量清零,以實(shí)現(xiàn)在絕對(duì)零點(diǎn)位置輸出角度為零,角度增量也為零。
    經(jīng)實(shí)際系留飛艇DZ-1驗(yàn)證,本模塊依據(jù)制定的通信協(xié)議,在地面站的控制下,能夠控制舵機(jī)轉(zhuǎn)動(dòng)到設(shè)定角度對(duì)地面進(jìn)行監(jiān)測(cè),并將飛艇姿態(tài)信息、A/D數(shù)據(jù)和角度信息適時(shí)發(fā)送給地面站,以更好地控制其完成地面監(jiān)測(cè)任務(wù)。
參考文獻(xiàn)
[1] 劉歌群,盧京潮,閆建國(guó),等.用單片機(jī)產(chǎn)生7路舵機(jī)控制PWM波動(dòng)方法[J].機(jī)械與電子,2004(2).
[2] 張毅剛,彭喜元,董繼成.單片機(jī)原理與應(yīng)用[M].高等教育出版社,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。