當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]以單片機(jī)為核心設(shè)計(jì)并實(shí)現(xiàn)了小型自控飛艇的舵機(jī)控制系統(tǒng),對(duì)系統(tǒng)的硬件設(shè)計(jì)進(jìn)行了說明,對(duì)軟件設(shè)計(jì)中的關(guān)鍵問題——串行通訊及幀識(shí)別、多單片機(jī)通訊及PWM波的軟件產(chǎn)生方法進(jìn)行了詳細(xì)闡述。 引言  

單片機(jī)為核心設(shè)計(jì)并實(shí)現(xiàn)了小型自控飛艇的舵機(jī)控制系統(tǒng),對(duì)系統(tǒng)的硬件設(shè)計(jì)進(jìn)行了說明,對(duì)軟件設(shè)計(jì)中的關(guān)鍵問題——串行通訊及幀識(shí)別、多單片機(jī)通訊及PWM波的軟件產(chǎn)生方法進(jìn)行了詳細(xì)闡述。

        引言

  平流層飛艇是一種利用輕于空氣的氣體(如氦氣等)產(chǎn)生浮力作為升力的飛行于平流層區(qū)域的飛行器。它依靠飛艇內(nèi)部裝載的輕于空氣的氣體產(chǎn)生的靜升力,通過控制飛艇上的舵面和動(dòng)力裝置,以較小的能耗實(shí)現(xiàn)在平流層的飛行。小型自控飛艇是為了驗(yàn)證平流層飛艇飛行特性和控制性能的小型軟式試驗(yàn)飛艇,對(duì)其控制系統(tǒng)的研究是平流層飛艇研制中一個(gè)重要的過渡階段,具有極其重要的意義。

  1 小型自控飛艇舵控系統(tǒng)簡(jiǎn)介

  舵機(jī)是小型自控飛艇執(zhí)行機(jī)構(gòu)中最主要的執(zhí)行部件,能否快速、準(zhǔn)確地完成對(duì)舵機(jī)的控制直接關(guān)系到飛艇的自主控制效果。因此,舵控系統(tǒng)成為小型飛艇自主飛行控制系統(tǒng)中最重要的組成部分之一,它的主要功能是接收艇載計(jì)算機(jī)發(fā)出的控制指令,實(shí)現(xiàn)對(duì)控制指令的采集、分析和處理,并根據(jù)控制指令向舵機(jī)輸出連續(xù)可調(diào)的舵控信號(hào),操縱艇上各舵機(jī)完成預(yù)定動(dòng)作。

  2 舵控系統(tǒng)硬件設(shè)計(jì)

  本飛艇舵控系統(tǒng)以多片P89C2051單片機(jī)為核心,配合電源模塊、驅(qū)動(dòng)芯片及多路轉(zhuǎn)換開關(guān)等在一塊印制電路板上實(shí)現(xiàn)預(yù)定功能。舵控系統(tǒng)設(shè)計(jì)總體框圖如圖1所示。

  

 

  舵控系統(tǒng)主控芯片(主控單片機(jī)1、2)選擇P89C51RA2xx型單片機(jī),它具有8KB的并行可編程非易失性FLASH 程序存儲(chǔ)器,并可對(duì)器件串行在系統(tǒng)編程(ISP)和在應(yīng)用中編程(IAP)。該型微控制器是80C51微控制器的派生器件,是采用先進(jìn)的CMOS工藝制造的8位微控制器,指令系統(tǒng)與80C51完全相同。該器件有4組8位I/O口、3個(gè)16位定時(shí)計(jì)數(shù)器、多中斷源-4中斷優(yōu)先級(jí)-嵌套中斷結(jié)構(gòu)、1 個(gè)增強(qiáng)型UART、片內(nèi)振蕩器及時(shí)序電路。舵控單片機(jī)采用Atmel公司的89C2051型單片機(jī)[2],其具體性能這里不再贅述。

  電源模塊采用美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的LM2576系列產(chǎn)品,它是線性三端穩(wěn)壓器件(如78xx系列端穩(wěn)壓集成電路)的替代品。相比而言,它的熱損耗更低、工作效率更高、輸出電流驅(qū)動(dòng)能力更強(qiáng),同時(shí)對(duì)于電源的高頻干擾還有較強(qiáng)的抑制作用。利用該器件只需極少的外圍器件便可構(gòu)成高效穩(wěn)壓電路,為MCU穩(wěn)定可靠的工作提供強(qiáng)有力的保證。

  此外,為增強(qiáng)信號(hào)的驅(qū)動(dòng)能力,在輸出之前采用74LS245作為信號(hào)驅(qū)動(dòng)芯片;串口電平轉(zhuǎn)換采用Max232芯片。

  該系統(tǒng)硬件設(shè)計(jì)比較簡(jiǎn)單,值得一提的是其中的安全性設(shè)計(jì)部分,即當(dāng)?shù)孛鏅z測(cè)到艇上自動(dòng)控制系統(tǒng)已經(jīng)失效時(shí),為確保飛艇安全返回,需要將控制方式轉(zhuǎn)至遙控方式。如圖1所示,當(dāng)艇載計(jì)算機(jī)發(fā)生故障時(shí),舵控系統(tǒng)通過無線射頻接收機(jī)接收地面遙控信號(hào),通過其輸出的多通道PWM波直接控制艇上舵機(jī),控制飛艇安全返回。此處,控制方式的轉(zhuǎn)換是通過多路轉(zhuǎn)換開關(guān)實(shí)現(xiàn)的,開關(guān)的切換信號(hào)由艇載計(jì)算機(jī)看門狗電路在檢測(cè)到艇載計(jì)算機(jī)已不能正常工作時(shí)給出。

  3 舵控系統(tǒng)軟件設(shè)計(jì)

  3.1 軟件總體結(jié)構(gòu)

  舵控系統(tǒng)各單片機(jī)程序均在Keil C51環(huán)境下采用C語(yǔ)言編寫。為了保證系統(tǒng)的實(shí)時(shí)性及快速性,軟件編寫采用了主程序+任務(wù)+中斷的結(jié)構(gòu)。

  在三部分程序中,以主單片機(jī)1的外部中斷最多,包括串口中斷、與主單片機(jī)2的握手中斷以及艇載計(jì)算機(jī)看門狗的外部中斷,這幾個(gè)中斷的優(yōu)先級(jí)排列順序是:艇載計(jì)算機(jī)看門狗中斷>串口中斷>握手中斷。主單片機(jī)1接收到艇載計(jì)算機(jī)通過RS232串口發(fā)來的信息幀后,首先進(jìn)行幀識(shí)別,提取出前m個(gè)字節(jié)的數(shù)據(jù),加上幀頭幀尾后由P1口發(fā)送給主單片機(jī)2;并將第m+1個(gè)字節(jié)數(shù)據(jù)作為開關(guān)量通道控制信號(hào)由P2口輸出,用作系統(tǒng)控制備用。

  主單片機(jī)2程序的主要任務(wù)是通過其P1口接收上位機(jī)傳來的數(shù)據(jù),提取各控制信息,在相應(yīng)控制指令的前面加上地址,依次由串口發(fā)送給下位舵控單片機(jī)。

  舵控單片機(jī)的主要任務(wù)是識(shí)別控制指令和地址指令,并根據(jù)收到的控制指令(舵機(jī)占空比信號(hào))產(chǎn)生PWM波控制艇上舵機(jī)。

  該系統(tǒng)軟件設(shè)計(jì)中的關(guān)鍵問題包括以下幾個(gè)方面:(1)控制信號(hào)流程中數(shù)據(jù)幀的接收識(shí)別;(2)舵控系統(tǒng)中主從單片機(jī)之間的多機(jī)通信;(3)PWM波舵控信號(hào)的軟件產(chǎn)生方法。下面對(duì)這幾個(gè)問題進(jìn)行詳細(xì)的闡述,并給出相應(yīng)的解決方案。

   3.2 軟件設(shè)計(jì)中的關(guān)鍵問題

 

  (1)數(shù)據(jù)幀的串口接收及識(shí)別技術(shù)

  在舵控系統(tǒng)中,數(shù)據(jù)以二進(jìn)制信息幀的格式進(jìn)行傳遞。每個(gè)信息幀從標(biāo)題開始都有固定的幀頭、幀尾,且長(zhǎng)度固定,其基本數(shù)據(jù)格式如表1所示。

  

 

  在該舵控系統(tǒng)的設(shè)計(jì)中,串行通訊占有很重要的地位,如艇載計(jì)算機(jī)與主單片機(jī)1之間的通訊過程。下面以主單片機(jī)1的串口接收程序?yàn)槔?,?duì)串行通訊的實(shí)現(xiàn)過程加以說明。

  在串行通信中,接收程序的任務(wù)是數(shù)據(jù)接收、幀識(shí)別和信息提取。常規(guī)的設(shè)計(jì)方法是設(shè)置一個(gè)比較大的緩沖區(qū)。串行接收中斷服務(wù)程序負(fù)責(zé)把接收到的數(shù)據(jù)壓入緩沖區(qū),當(dāng)緩沖區(qū)的數(shù)據(jù)足夠多時(shí),再由主程序調(diào)用一個(gè)幀識(shí)別和解碼子程序?qū)彌_區(qū)中的數(shù)據(jù)進(jìn)行處理。這種方法的好處是中斷服務(wù)程序比較短,不足之處為從一幀數(shù)據(jù)接收完畢到解碼時(shí)間較長(zhǎng),另外對(duì)緩沖區(qū)進(jìn)行管理需要占用大量的的CPU時(shí)間,因而實(shí)時(shí)性較差,此處不宜使用。

  本文采用了中斷服務(wù)程序就地幀識(shí)別技術(shù),即省掉緩沖區(qū),數(shù)據(jù)接收、幀識(shí)別均由中斷服務(wù)程序完成,之后在主程序的循環(huán)中完成數(shù)據(jù)的提取和處理。就地幀識(shí)別技術(shù)的實(shí)現(xiàn)機(jī)理如下:把中斷服務(wù)程序看作是一個(gè)處理機(jī),串行數(shù)據(jù)逐字節(jié)到來,程序先從數(shù)據(jù)序列中等到第一個(gè)幀頭,寫入該幀的存儲(chǔ)數(shù)組,同時(shí)置標(biāo)志位 flag1,接收狀態(tài)推進(jìn)一步;再判斷下一次中斷時(shí),來到的數(shù)據(jù)是否符合第二個(gè)幀頭的特征。如果符合則存入相應(yīng)數(shù)組,并置相應(yīng)的標(biāo)志位flag2,接收狀態(tài)繼續(xù)推進(jìn);如果幀頭兩個(gè)字節(jié)均符合,則將后面來到的數(shù)據(jù)依次存入指定數(shù)組;根據(jù)已接收到的字節(jié)數(shù)判斷,當(dāng)符合該幀的數(shù)據(jù)部分接收完畢后,判斷下一字節(jié)是否為幀尾的第一個(gè)字節(jié),如果是則置標(biāo)志位flag3;之后依據(jù)同樣的方法判斷幀尾第二個(gè)字節(jié)是否來到,如果已接收到,則置該幀數(shù)據(jù)已完整接收到標(biāo)志 flag4,同時(shí)接收狀態(tài)歸零,重新開始等待幀頭字符。在幀頭幀尾判斷期間,一旦有一項(xiàng)不符合要求,則將接收狀態(tài)歸零,以重新開始等待幀頭。主程序每循環(huán)一次便對(duì)“幀完整接收到”標(biāo)志進(jìn)行一次判斷,若為真則調(diào)用相應(yīng)的數(shù)據(jù)提取子程序,并清flag4。

  串行中斷服務(wù)程序流程如圖2所示。采用中斷服務(wù)程序就地幀識(shí)別技術(shù)的優(yōu)點(diǎn)在于數(shù)據(jù)接收后立即進(jìn)行幀識(shí)別,省去了對(duì)緩沖區(qū)的管理工作,減少了存取次數(shù),因而節(jié)省了大量的時(shí)間,極大地提高了接收程序的實(shí)時(shí)性。同時(shí)錯(cuò)幀和斷幀被自動(dòng)丟棄,不再占用資源。

  

 

  圖2中各標(biāo)志位含義為:

  flag1——接收到幀頭Head1標(biāo)志;

  flag2——接收到完整幀頭標(biāo)志;

  flag3——接收到幀尾End1標(biāo)志;

  flag4——接收到完整幀標(biāo)志。

  (2)單片機(jī)多機(jī)通訊

  在舵控系統(tǒng)設(shè)計(jì)中,各部分間的通訊是設(shè)計(jì)的重要內(nèi)容,其中主要包括單片機(jī)與上位PC機(jī)間的通訊和單片機(jī)與單片機(jī)之間的通訊。在舵控系統(tǒng)中,主單片機(jī)1與上位PC機(jī)通訊是通過單片機(jī)自帶的一路異步串行通訊接口完成的;而主單片機(jī)1通過其P1口向主單片機(jī)2傳輸數(shù)據(jù),這里不再贅述,重點(diǎn)介紹主單片機(jī)2如何通過其一路串口分別向下位的多個(gè)舵控單片機(jī)傳送指令。

  此系統(tǒng)中,主單片機(jī)2作為主機(jī),m個(gè)舵控單片機(jī)作為從機(jī),在主機(jī)與從機(jī)的通訊過程中,串口控制寄存器中SCON中的SM2位發(fā)揮了重要作用。當(dāng)其中一個(gè)舵控單片機(jī)(89C2051)的SM2位為1時(shí),該單片機(jī)只接收地址幀,對(duì)數(shù)據(jù)幀不理睬;而當(dāng)SM2位為0時(shí),該單片機(jī)接收所有發(fā)來的消息。具體通信過程如下:

 ?、偈紫葘⒅?、從單片機(jī)工作方式選為模式3,所有從機(jī)的SM2位開始置1,處于只接收地址幀狀態(tài)。

 ?、谥鳈C(jī)接收主單片機(jī)1發(fā)來的數(shù)據(jù)幀,從中提出數(shù)據(jù)部分(m個(gè)字節(jié)的指令對(duì)應(yīng)m個(gè)舵控單片機(jī)),根據(jù)序號(hào)在控制指令字節(jié)前加上一個(gè)字節(jié)的地址信息。然后主機(jī)依次通過串口向下發(fā)送各舵控單片機(jī)的地址字節(jié)和數(shù)據(jù)字節(jié)。發(fā)送一幀地址信息,包含8位地址,第9位為1,表示發(fā)送的幀為地址幀。

  ③從機(jī)接收地址幀后,進(jìn)入中斷,將發(fā)來的地址與自身比較;地址一致的從機(jī)就是被尋址的從機(jī),它清除SM2位,接收主機(jī)發(fā)來的所有后續(xù)幀信息(數(shù)據(jù)信息)。未尋址的所有其他從機(jī)仍維持SM2=1,對(duì)主機(jī)發(fā)來的數(shù)據(jù)幀不理睬,直到發(fā)來新地址幀;之后在下一次中斷時(shí)被尋址的從機(jī)接收主機(jī)發(fā)來的數(shù)據(jù)信息(第9位為 0)。

  需要注意的是,如果對(duì)已經(jīng)尋址的從機(jī)再發(fā)送地址幀,則該從機(jī)SM2=1,恢復(fù)初始狀態(tài),和其他從機(jī)競(jìng)爭(zhēng)。

   (3)舵控信號(hào)PWM波的產(chǎn)生

 

  對(duì)飛艇舵機(jī)的控制最終是通過舵控單片機(jī)產(chǎn)生PWM波來實(shí)現(xiàn)的。通常,產(chǎn)生PWM波不外乎硬件和軟件兩種方法。考慮到舵控單片機(jī)計(jì)算任務(wù)不大,本系統(tǒng)中采用軟件產(chǎn)生PWM波的方法。下面以定時(shí)器0產(chǎn)生PWM波為例,說明通過軟件產(chǎn)生PWM波舵控信號(hào)的實(shí)現(xiàn)方法。

  void timer0(void) interrupt 1 using 1

  {

  /*PWM波通過單片機(jī)P37口輸出,定時(shí)取反*/

  P37=!P37;

  /*Length代表一個(gè)周期的時(shí)間*/

  c=Length-c;

  /*重新定義計(jì)數(shù)初值*/

  TH0=-(c/256);

  TL0=-(c%256);

  /*判斷脈寬是否在正常范圍之內(nèi)*/

  if(c>=border1&&c<=border2)

  c=a;

  else

  c=Length-a;

  }

  在程序中,由串口中斷接收上位機(jī)發(fā)送的脈寬指令,繼而通過改變?nèi)肟趨?shù)a來調(diào)整PWM波的脈寬,并確保脈寬輸出在正常范圍之內(nèi)。通過該方法產(chǎn)生PWM波切實(shí)可行,簡(jiǎn)單有效,可以廣泛應(yīng)用于舵機(jī)控制信號(hào)的產(chǎn)生中。

  4 實(shí)驗(yàn)結(jié)果

  實(shí)驗(yàn)中以FUTABA 3003舵機(jī)作為被控對(duì)象,由計(jì)算機(jī)模擬向舵控系統(tǒng)發(fā)送數(shù)據(jù)幀,通過示波器觀察舵控信號(hào)的變化。實(shí)驗(yàn)結(jié)果表明,該舵控系統(tǒng)工作穩(wěn)定,輸出PWM波脈寬準(zhǔn)確可靠,被控舵機(jī)轉(zhuǎn)角線性度良好。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉