張杰 劉洋 楊曉宇




摘要:本文基于新型STM32F4系列為核心,所述ARM STM32F405R被用作芯微控制器開(kāi)發(fā)和設(shè)計(jì)所述多旋翼UAV GPS模塊的硬件平臺(tái)。硬件平臺(tái)集成的最低系統(tǒng)電路,串行通信電路,網(wǎng)線接口電路,傳感器電路和電源電路。傳感器電路包括傳感器電路。磁航向傳感器電路,GPS電路。它由一個(gè)高精度的GPS接收模塊和無(wú)線通信模塊的。無(wú)線通信模塊是負(fù)責(zé)與雄蜂通信。之后,無(wú)人機(jī)可以飛行穩(wěn)定和接收地面目標(biāo)的GPS坐標(biāo),根據(jù)基于GPS的無(wú)人機(jī)導(dǎo)航設(shè)計(jì),可以使得無(wú)人機(jī)能夠朝著目標(biāo)GPS位置飛行。
關(guān)鍵詞:多旋翼無(wú)人機(jī);GPS;導(dǎo)航系統(tǒng)
一、無(wú)人機(jī)簡(jiǎn)介
UAV(unmanned aerial vehicle)即無(wú)人機(jī)。無(wú)人機(jī)是無(wú)人駕駛飛行器的一種泛稱(chēng),相對(duì)于有人駕駛飛行器而言,無(wú)人機(jī)實(shí)現(xiàn)了無(wú)人控制,在飛行時(shí)依飛行器的動(dòng)力裝置所獲得的升力來(lái)抵消飛行器自身的重量,可通過(guò)遙控設(shè)備或自主飛行來(lái)實(shí)現(xiàn)復(fù)雜的空中飛行任務(wù)。在眾多的無(wú)人機(jī)類(lèi)型中,四旋翼飛行器具有出色的性能,相較于固定翼無(wú)人機(jī)而言,四旋翼無(wú)人機(jī)對(duì)于起飛條件的要求更低,可實(shí)現(xiàn)垂直起降,其機(jī)械架構(gòu)十分加單,具有負(fù)載能力強(qiáng),可實(shí)現(xiàn)垂直起飛和降落等優(yōu)點(diǎn)。由于四旋翼飛行器在飛行控制、結(jié)構(gòu)設(shè)計(jì)、安裝調(diào)試等方面的要求較高,因此當(dāng)前四旋翼飛行器的研究已成為學(xué)術(shù)界專(zhuān)家學(xué)者研究的熱點(diǎn)問(wèn)題之一。世界上首架真正意義上的無(wú)人機(jī)由美國(guó)學(xué)者所研發(fā)并試飛成功。在上世紀(jì)中期,隨著自動(dòng)控制技術(shù)和導(dǎo)航技術(shù)的逐漸發(fā)展,為無(wú)人機(jī)的出現(xiàn)和研發(fā)奠定了基礎(chǔ),同時(shí),多領(lǐng)域的應(yīng)用需求使其有著無(wú)與倫比的發(fā)展優(yōu)勢(shì)。無(wú)人機(jī)在當(dāng)前生產(chǎn)生活中有著較為廣泛的應(yīng)用:從軍事層面上而言,可利用無(wú)人機(jī)完成復(fù)雜作戰(zhàn)環(huán)境下的戰(zhàn)場(chǎng)勘查以及現(xiàn)代反恐作戰(zhàn)之中;從民用層面上而言,無(wú)人機(jī)可用于航拍和交通巡邏和救災(zāi)等諸多領(lǐng)域。
二、傳感器和GPS接收機(jī)板
(一)、GPS 傳感器
GPS傳感器是主要負(fù)責(zé)采集緯度和多轉(zhuǎn)子UAV的經(jīng)度信息,并通過(guò)GPS由主控制器發(fā)送的數(shù)據(jù),并求解多轉(zhuǎn)子UAV 的位置的信息。
(二)、GPS 接收機(jī)板
GPS接收器的主要功能是實(shí)現(xiàn)GPS衛(wèi)星信號(hào)的接受,可同時(shí)接受4個(gè)以上的信號(hào),并自動(dòng)完成當(dāng)前三維坐標(biāo)和速度的計(jì)算。該GPS高度顯示了無(wú)人機(jī)控制的高度。當(dāng)GPS接收器板的同時(shí)接收多個(gè)衛(wèi)星信號(hào),它可確定GPS接收機(jī)的當(dāng)前高度。在飛行控制監(jiān)控,應(yīng)監(jiān)測(cè)由GPS接收器和所述信號(hào)質(zhì)量接收到的衛(wèi)星信號(hào)的數(shù)目。由此可以得出結(jié)論的是,GPS接收器板的功能是負(fù)責(zé)提供飛行穩(wěn)定性控制和與飛機(jī),當(dāng)前GPS地面速度和GPS的當(dāng)前緯度和經(jīng)度基板的導(dǎo)航。身高,可以由飛機(jī)的當(dāng)前位置接收的GPS衛(wèi)星信號(hào)信息和信號(hào)質(zhì)量的量。
(三)、GPS 協(xié)議
GPS的定位原理是基于在高速運(yùn)行衛(wèi)星的瞬時(shí)位置,并且要被測(cè)量的點(diǎn)的位置由空間距離切除的方法計(jì)算。全球定位系統(tǒng)提供全球,全天候,高精度連續(xù),實(shí)時(shí)的三維坐標(biāo)。對(duì)于衛(wèi)星定位導(dǎo)航接收器,不同的廠商有自己的信息處理格式。下面就對(duì)常見(jiàn)的U-BLOX協(xié)議類(lèi)型進(jìn)行簡(jiǎn)單介紹U-Blox 協(xié)議 :UBX 協(xié)議的數(shù)據(jù)包格式如圖 2-1所示,數(shù)據(jù)的每個(gè)分組包括三個(gè)部分:頭部,數(shù)據(jù)部,和校驗(yàn)部。標(biāo)題的頭兩個(gè)字節(jié)是:0xB5執(zhí)行和0X62,通過(guò)該兩個(gè)字節(jié)可以被用于確定由該分組所使用的協(xié)議是否為UBX;CLASS占一個(gè)字節(jié),表示消息的類(lèi)別;ID占一個(gè)字節(jié),表示CLASS參數(shù)下的特定參數(shù)的項(xiàng)目的輸出;LENGTH指示由數(shù)據(jù)部分所占用的字節(jié)數(shù);CK-A和CK-B是用來(lái)驗(yàn)證報(bào)文的完整性?xún)蓚€(gè)校驗(yàn)字節(jié)。
GPS導(dǎo)航系統(tǒng)是由三個(gè)子系統(tǒng)共同組成的,它們分別是:衛(wèi)星星座(空間部分),地面監(jiān)控系統(tǒng)(控制系統(tǒng))以及信號(hào)接收機(jī)(用戶(hù)部分),它們?nèi)咧g的關(guān)系如圖2-2。
(一)、底層驅(qū)動(dòng)軟件的設(shè)計(jì)與開(kāi)發(fā)
1.系統(tǒng)的啟動(dòng)過(guò)程
系統(tǒng)的啟動(dòng)過(guò)程可分為兩步,分別為內(nèi)部時(shí)鐘和外部時(shí)鐘的啟動(dòng)。其中前者是在后者勢(shì)能時(shí)間超過(guò)規(guī)定標(biāo)準(zhǔn)的情況下使用的。系統(tǒng)復(fù)位之后等待系統(tǒng)時(shí)鐘就緒,隨后完成啟動(dòng)過(guò)程并調(diào)用 main()主函數(shù)。
2.串口驅(qū)動(dòng)的設(shè)計(jì)
串行端口實(shí)控制器和外部設(shè)備通信的重要接口。無(wú)人機(jī)為實(shí)現(xiàn)自動(dòng)控制需要連接大量的外部設(shè)備,例如電源模塊和無(wú)線通信模塊等等,并且所述軟件開(kāi)發(fā)和調(diào)試進(jìn)程也將被頻繁使用。串口,這樣的串口驅(qū)動(dòng)程序設(shè)計(jì)的重要性是不言而喻的。該STM32F405R有很多的串口資源,所有的串口通信功能較為全面。該STM32F405R本身是相對(duì)簡(jiǎn)單的設(shè)計(jì),由于強(qiáng)大的串行通訊能力。只要打開(kāi)時(shí)鐘,初始化串口,然后判斷串行端口是否打開(kāi)。也就是說(shuō),無(wú)論是串口可以在此時(shí)應(yīng)用,串行端口,用于發(fā)送和接收數(shù)據(jù)。所述STM32F405R串行端口的發(fā)送數(shù)據(jù)設(shè)定處理是相同的串行端口接收數(shù)據(jù)的設(shè)定處理,然后將數(shù)據(jù)位的特定長(zhǎng)度被配置,并且所述奇偶校驗(yàn)位被設(shè)置。最后,你可以添加一個(gè)驗(yàn)證的設(shè)計(jì),以確定數(shù)據(jù)是否已發(fā)送或已成功接受。
3.CAN 總線驅(qū)動(dòng)設(shè)計(jì)
對(duì)于體型較小的飛行器航行設(shè)備來(lái)說(shuō),信息的快捷輸送是其一開(kāi)始就需要具備的本領(lǐng)。CAN總線的串行通信功能強(qiáng)且可靠,所以可以輕易地使信息輸送得速度增加,而且能夠進(jìn)行多主操縱,能夠適應(yīng)傳播速度過(guò)大和路程過(guò)長(zhǎng)的問(wèn)題,且可以幫助技術(shù)人員對(duì)過(guò)程中的問(wèn)題進(jìn)行校正、提醒及修護(hù)。在與總線對(duì)接之際,可以避免重復(fù)檢查位置數(shù)據(jù),而且也能夠完成統(tǒng)承的目標(biāo)。CAN總線通信協(xié)議包含兩部分,其一為數(shù)據(jù)幀;其二為遙控幀,前者包含包含7個(gè)字符段構(gòu)成,控制段的主要功能是表示傳輸信號(hào)長(zhǎng)度、符號(hào)位;數(shù)據(jù)段用來(lái)告知輸送的數(shù)據(jù)每幀都能夠傳輸9 bit信息;CRC段可以核實(shí)每一幀輸送的數(shù)據(jù)會(huì)不會(huì)有誤,ACK段可以表示被輸送的數(shù)據(jù)有沒(méi)有正常存儲(chǔ)。采用CAN總線通信時(shí)需要對(duì)系統(tǒng)總線進(jìn)行初始化,為總線配置復(fù)位功能,并啟用AN時(shí)鐘時(shí),CAN_RX銷(xiāo)需要被用作上拉輸入和CAN_TX銷(xiāo)被用作復(fù)位輸出。其次,要設(shè)置正確的工作模式,通過(guò)CAN_MCR的位設(shè)置完成相關(guān)控制位功能的直線。最后執(zhí)CAN_FMR的FINIT位在完成設(shè)置和激活后可實(shí)現(xiàn)總線初始化,在完成總線初始化流程之后可執(zhí)行正常的數(shù)據(jù)發(fā)送和接收功能。CAN總線傳輸首先要按成標(biāo)識(shí)符設(shè)置,選擇空郵箱發(fā)送數(shù)據(jù),在完成數(shù)據(jù)發(fā)送空出郵箱。CAN總線可將接收到的數(shù)據(jù)儲(chǔ)存于郵箱的FIFO中,CAN總線接收?qǐng)?bào)文信息時(shí)要設(shè)置郵箱為空,并逐層訪問(wèn)郵箱,并判斷報(bào)文信息是否有效,隨后退出。
4.傳感器驅(qū)動(dòng)設(shè)計(jì)
傳感器是是本文所設(shè)計(jì)的四旋翼無(wú)人機(jī)的重要組成部分,也是實(shí)現(xiàn)自動(dòng)駕駛的關(guān)鍵所在,航空傳感器可完成當(dāng)前無(wú)人機(jī)飛行姿態(tài)、位置、速度以及高度等信號(hào)的實(shí)時(shí)采集,并將數(shù)據(jù)發(fā)送到單片機(jī)中進(jìn)行處理,隨后單片機(jī)得到當(dāng)前無(wú)人機(jī)的位置姿態(tài),并通過(guò)與設(shè)定的姿態(tài)信息進(jìn)行比較,隨后輸出控制參量對(duì)無(wú)人機(jī)的姿態(tài)進(jìn)行調(diào)整,實(shí)現(xiàn)穩(wěn)定飛行[27]。通過(guò)串口連接的GPS模塊可獲取當(dāng)前無(wú)人機(jī)的準(zhǔn)確位置。通過(guò)IIC總線連接的HMC5983磁航向傳感器可以測(cè)量小型無(wú)人機(jī)的三個(gè)軸。磁航向角。IIC(Inter IC Bus)總線是PHILIPS以同步通信的特殊形式引入的新總線標(biāo)準(zhǔn),具有接口少、控制方式簡(jiǎn)單易行等諸多優(yōu)勢(shì)。IIC總線包含兩條不同的通信線路,其一為SDA通信線路;其二為SCL通信線路。
是公司東一的外接設(shè)備接口形式,可支持多種不同的通信功能。包含四條通信線路,其中MISO為數(shù)據(jù)輸入和設(shè)備輸出線路,SCLK為時(shí)鐘信號(hào)線,CS為片選信號(hào)線。
(二)、系統(tǒng)初始化
通信初始化主要是對(duì)串口、SPI、IIC 總線的初始化和中斷函數(shù)配置。傳感器初始化主要是對(duì) IO 使能和采樣周期的配置。其結(jié)構(gòu)圖如圖3-3 所示。飛控系統(tǒng)將單片機(jī)主時(shí)鐘設(shè)置成 180MHz,配置 IO 口使能和中斷函數(shù)。使能串口中斷用于 GPS、數(shù)傳電臺(tái)通信,分別配置 SPI、IIC 總線時(shí)鐘頻率為 10.05MHz 和 100k Hz。
GPS 模塊 GPS 模塊采用串口與主芯片通信,采用 Ublox ?專(zhuān)有的 UBX 協(xié)議讀取 GPS 信息。UBX 協(xié)議采用二進(jìn)制數(shù)輸出減少了傳輸數(shù)據(jù);靈活運(yùn)用了低開(kāi)銷(xiāo)的校驗(yàn)算法;同時(shí)采用雙層的消息標(biāo)志位。一個(gè)基本的 UBX 包結(jié)構(gòu)如圖3-4所示。
(2)消息類(lèi)型位占用一個(gè)字節(jié),定義了消息的基本子集。
(3)消息 ID 位占用一個(gè)字節(jié)。
(4)長(zhǎng)度位占用 2 字節(jié),長(zhǎng)度位是指有效長(zhǎng)度,不包括包頭字節(jié)數(shù)、類(lèi)型信息、消息ID 和校驗(yàn)位。長(zhǎng)度用 16 位無(wú)符號(hào)整型表示。
(5)消息數(shù)據(jù)位是根據(jù)消息長(zhǎng)度變化,包含需要的 GPS 有效數(shù)據(jù)。
(6)校驗(yàn)位:CK_A、CK_B 是采用 16 位校驗(yàn)和。 協(xié)議使用的校驗(yàn)和方法如下,其中 Buffer[I]表示校驗(yàn)數(shù)據(jù)。
CK_A = 0,CK_B = 0 For(I=0;I<N;I++)
{
CK_A = CK_A + Buffer[I]
CK_B = CK_B + CK_A
}
(四)、GPS 模塊軟件調(diào)試
首先初始化CPU,然后初始化GPS模塊,然后確定是否存在的命令。如果不是,則清除讀/寫(xiě)標(biāo)準(zhǔn)GPS為0,停止接收數(shù)據(jù),并且如果是,確定所述命令是哪一種格式。該GPRMC格式也是在GPGGA格式。如果使用GPRMC格式,使用RMC語(yǔ)句。在GPGGA格式中,GGA格式被使用和所獲得的數(shù)據(jù)進(jìn)行解析,并保存。
參考文獻(xiàn)
[1]張芮嘉,朱海霞,姚翼榮.適應(yīng)多旋翼無(wú)人機(jī)傾斜攝影的高效旋轉(zhuǎn)云臺(tái)系統(tǒng)[J].江蘇科技信息,2019,36(18):57-59.
[2]曲行達(dá). 多旋翼無(wú)人機(jī)在山地場(chǎng)景應(yīng)用中的關(guān)鍵技術(shù)研究[D].貴州大學(xué),2018.
[3]明志舒,黃鵬,劉志強(qiáng),李樂(lè)蒙,高凱.多旋翼無(wú)人機(jī)飛行控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)研究[J].科技資訊,2017,15(29):57+59.
[4]朱明勛. 多旋翼無(wú)人機(jī)傳感器系統(tǒng)的研究與設(shè)計(jì)[D].南京信息工程大學(xué),2017.
[5]王辰熙. 多旋翼無(wú)人機(jī)組合導(dǎo)航技術(shù)研究[D].南京航空航天大學(xué),2017.
[6]詹丕顯. 多旋翼無(wú)人機(jī)智能控制芯片的關(guān)鍵模塊設(shè)計(jì)與驗(yàn)證[D].哈爾濱工業(yè)大學(xué),2015.