亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VxWorks環(huán)境下無人機(jī)半物理仿真模型機(jī)數(shù)據(jù)通信與采集

        2012-04-12 00:00:00劉新順等
        現(xiàn)代電子技術(shù) 2012年1期

        摘 要:無人機(jī)飛控半物理仿真系統(tǒng)中,無人機(jī)模型解算計算機(jī)(簡稱模型機(jī)),一方面通過通信接口驅(qū)動三軸轉(zhuǎn)臺實現(xiàn)無人機(jī)飛行姿態(tài)的仿真,另一方面通過數(shù)據(jù)采集模塊實時采集由安裝在轉(zhuǎn)臺上的陀螺傳回來的無人機(jī)姿態(tài)信號及舵機(jī)信號,因此數(shù)據(jù)采集模塊以及模型機(jī)與轉(zhuǎn)臺的通信模塊在系統(tǒng)中起著非常關(guān)鍵的作用。針對VxWorks下PCI硬件板卡驅(qū)動程序不易開發(fā)這一難點,通過分析模型機(jī)與三軸轉(zhuǎn)臺的通信機(jī)理并結(jié)合PCI總線的特點,開發(fā)了VxWorks系統(tǒng)下的PCI總線RS 422串口卡以及數(shù)據(jù)采集卡驅(qū)動程序。半物理仿真實驗證明,所開發(fā)的PCI通信卡和數(shù)據(jù)采集卡驅(qū)動程序通信可靠、工作穩(wěn)定、誤碼率低、實時性高。

        關(guān)鍵詞:無人機(jī); PCI驅(qū)動; VxWorks; 串口通信; A/D采集

        中圖分類號:TN919-34

        文獻(xiàn)標(biāo)識碼:A

        文章編號:1004-373X(2012)01-0113-04

        Data communication and acquisition of model calculation computer for 

        UAV′s hardware-in-loop simulation in VxWorks

        LIU Xin-shun, YAN Jian-guo

        (College of Automation, Northwestern Polytechnical University, Xi’an 710129, China)

        

        Abstract:

        Model calculation computer which is used to drive three-axis turntable by way of serial communication and to acquire altitude signals of gyroscope using data communication model, and plays an important role in a UAV′s hardware-in-loop simulation. In view of the difficulty when developing board support package (BSP) in real-time VxWorks operating system, BSP for a PCI-bus RS 422 serial port interface board and that for a PCI-bus data acquisition board are developed based on the commutation mechanism analysis between model calculation computer and three-axis turntable. The hardware-in-loop simulations show that the BSPs works very well with good reliability and stability.

        Keywords: UAV; PCI driver; VxWorks; serial communication; A/D acquisition

        

        收稿日期:2011-08-18

        0 引 言

        在無人機(jī)飛控與導(dǎo)航系統(tǒng)的半物理仿真[1-3]中,飛機(jī)本身不能作為一個實物出現(xiàn),飛機(jī)模型模擬飛機(jī)實物在閉環(huán)仿真系統(tǒng)中出現(xiàn)。對飛機(jī)模型與轉(zhuǎn)臺的通信,飛機(jī)模型關(guān)于飛控器發(fā)送的舵偏量的接收,這兩方面的實時性和可靠性就有要求。舵偏量的獲取通過A/D采集來實現(xiàn),而與轉(zhuǎn)臺計算機(jī)的通信,因為該轉(zhuǎn)臺通信要求是3個RS 422串口分別獲取三個軸的姿態(tài)信息,所以通過模型機(jī)上的PCI插槽擴(kuò)展出足夠的RS 422口完成轉(zhuǎn)臺計算機(jī)的通信。本文主要討論模型機(jī)在整個閉環(huán)半物理仿真實驗中數(shù)據(jù)發(fā)送與接收的實現(xiàn),成功地實現(xiàn)了模型機(jī)與三軸轉(zhuǎn)臺之間數(shù)據(jù)的通信,完成了舵機(jī)偏轉(zhuǎn)量的采集。整個仿真成功地驗證了該型無人機(jī)飛控導(dǎo)航系統(tǒng)[4-5]的有效性。

        1 仿真系統(tǒng)與飛機(jī)模型的介紹

        該無人機(jī)飛控與導(dǎo)航系統(tǒng)的半物理仿真系統(tǒng)主要由飛控/導(dǎo)航系統(tǒng)、模型機(jī)、飛控地面站、導(dǎo)航地面站、視景計算機(jī)、綜合測試、GPS模擬、大氣模擬及轉(zhuǎn)臺幾部分組成。

        飛機(jī)模型采集舵機(jī)的舵偏量,完成無人機(jī)姿態(tài)量的解算,在解算完成后將姿態(tài)信號(包括俯仰角位移及角速度、滾轉(zhuǎn)角位移及角速度、偏航角位移及角速度)發(fā)送給轉(zhuǎn)臺,模擬飛機(jī)的姿態(tài)變化,陀螺將采集到的姿態(tài)信號反饋給飛控系統(tǒng),整個形成閉環(huán)。模型機(jī)與外部連接如圖1所示。

        2 模型機(jī)與3DMC轉(zhuǎn)臺的通信

        飛機(jī)模型解算出來的姿態(tài)信息需要發(fā)送給轉(zhuǎn)臺,通過轉(zhuǎn)臺來真實地模擬實際飛行中飛機(jī)姿態(tài)的變化,模型機(jī)與3DMC系列三軸飛行仿真轉(zhuǎn)臺之間的通信需要三個RS 422串口實現(xiàn),考慮到體積小便攜性好,模型機(jī)使用研華公司的ARK-5280工控機(jī),其本身只提供一個RS 422串口。選用基于PCI總線的4路RS 422串口擴(kuò)展卡來實現(xiàn)與轉(zhuǎn)臺之間的通信。依據(jù)仿真中實時性的要求, Windows操作系統(tǒng)不能夠滿足實時性,可能帶來系統(tǒng)的發(fā)散,這里模型機(jī)使用的是風(fēng)河公司(Wind River System)的VxWorks[6-7]嵌入式系統(tǒng)。當(dāng)前市面上的串口卡驅(qū)動都不支持VxWorks,在選用了VxWorks操作系統(tǒng)后,就需要自行開發(fā)VxWorks下串口卡的驅(qū)動。板卡選擇用Moxa公司的CP-134U 4端口RS 422 PCI通信卡,其最高傳輸速率可以達(dá)到921.6 Kb/s,滿足轉(zhuǎn)臺對通信速率的要求。

        圖1 半物理仿真中模型機(jī)通信

        2.1 CP-134U串口卡的初始化

        VxWorks提供了一組接口可以直接完成獲取設(shè)備,映射IO地址,映射內(nèi)存地址。pciFindDevice()函數(shù)根據(jù)設(shè)備ID、廠商ID及設(shè)備索引查找到相應(yīng)的PCI卡,獲取該卡的總線號、設(shè)備號和功能號;使用pciConfigInLong()函數(shù)獲取內(nèi)存基地址和I/O基地址。具體的函數(shù)使用如下:

        pciConfigInLong(pciBus,pciDevice,pciFunc,PCI_CFG_BASE_ADDRESS_0,membaseCsr);

        // membaseCsr為獲取的內(nèi)存基地址

        pciConfigInLong(pciBus,pciDevice,pciFunc,PCI_CFG_BASE_ADDRESS_2,iobaseCsr);

        // iobaseCsr為獲取的I/O基地址

        以上語句獲取的地址分別與相應(yīng)的掩碼相與得到真正的內(nèi)存基地址及I/O基地址。對于內(nèi)存地址要進(jìn)行映射,通過執(zhí)行函數(shù)sysMmuMapAdd ((void*)membaseCsr,r_membase, VM_STATE_MASK_ FOR_ALL, VM_STATE_FOR_PCI)完成,其中r_membase表示的是內(nèi)存的長度,先使用pciConfigOutLong()將內(nèi)存基地址全部寫1,再用pciFindDevice()函數(shù)讀取所獲得的數(shù)值與內(nèi)存掩碼相與就是內(nèi)存的長度了。如果編程過程中用到中斷,獲取中斷向量的方法如下:pciConfigInByte (pciBus, pciDe vice,pciFunc,PCI_CFG_DEV_INT_LINE, pciirq)。整個PCI初始化程序流程如圖2所示。

        Moxa卡CP-134U使用的是4片16C550芯片,且映射為I/O端口,不需要進(jìn)行地址映射?;谵D(zhuǎn)臺三個軸的通信協(xié)議要求,使用一個for循環(huán)將4個通道都配置為如下:通信速率為921.6 Kb/s,8個數(shù)據(jù)位,1個停止位,無奇偶校驗。

        16C550中LCR的除數(shù)鎖存訪問位(DLAB)被置位以便在讀或?qū)懖僮髌陂g訪問波特率發(fā)生器的除數(shù)鎖存DLL 和DLM。LCR的位7必須被清零以訪問接收器緩沖寄存器、發(fā)送器保持寄存器或中斷使能寄存器。因此在設(shè)置波特率之前要將該位置1,而向DDL和DLM寫入的值組合起來等于92 160除以要設(shè)置的波特率值。LCR的位1和位0組合起來為二進(jìn)制數(shù)11時表示8個數(shù)據(jù)位,位3為0時表示1個停止位,位4為0表示無奇偶校驗位。

        圖2 PCI初始化程序流程

        其函數(shù)實現(xiàn)如下:

        for(channel=0;channel

        {

        cval=sysInByte(iobaseCsr2+8*(channel)+UART_LCR);

        cval |= 0x03;

        cval=0xFB;

        cval=PARITY_NONE;

        fcr=UART_FCR_ENABLE_FIFO;

        fcr |= UART_FCR_TRIGGER_14;

        quot=1;

        taskLock();

        sysOutByte(iobaseCsr2+8*(channel)+UART_LCR,cval | UART_LCR_DLAB);/*設(shè)置鎖存位*/

        sysOutByte(iobaseCsr2+8*(channel)+UART_DLL,quot 0xff);/*設(shè)置波特率*/

        sysOutByte(iobaseCsr2+8*(channel)+UART_DLM,quot>>8);/*設(shè)置波特率*/

        sysOutByte(iobaseCsr2+8*(channel)+UART_LCR,cval);/*解除鎖存位*/

        sysOutByte(iobaseCsr2+8*(channel)+UART_FCR,fcr);/*使能FIFO*/

        sysOutByte(iobaseCsr2+UART_IER,UART_IER_RDI|UART_IER_RLSI);

        taskUnlock();

        }

        2.2 通信中數(shù)據(jù)的發(fā)送(定時)與接收

        這里對于數(shù)據(jù)的接收和發(fā)送均采取直接操作寄存器的辦法。沒有選擇將串口封裝成為標(biāo)準(zhǔn)的輸入、輸出函數(shù)open(),close(),read(),write(),ioctl(),從而在處理數(shù)據(jù)的過程中更方便,簡化了程序執(zhí)行步驟。模型機(jī)與轉(zhuǎn)臺通信時,依據(jù)通信協(xié)議要求需定時向轉(zhuǎn)臺發(fā)送姿態(tài)信息以保證轉(zhuǎn)臺的平滑運轉(zhuǎn),因此選擇使用VxWorks提供的看門狗定時器來實現(xiàn)定時發(fā)送。

        看門狗定時器能夠提供比較精確的計時,在定時時間結(jié)束時采用中斷或者最高任務(wù)優(yōu)先級執(zhí)行,打斷大部分的任務(wù)??撮T狗接口函數(shù)為:創(chuàng)建函數(shù)WDOG_ID wdCreate(void), 刪除函數(shù)STATUS wdDelete(WDOG_ID wdId),啟動看門狗計時函數(shù) STATUS wdStart(WDOG_ID wdId, int delay, FUNCPTR pRoutine, int parameter), 取消看門狗計時函數(shù)STATUS wdCancel(WDOG_ID wdId)。wdStart()函數(shù)中的參數(shù)FUNCPTR pRoutine表示的就是定時時間,系統(tǒng)運行到該參數(shù)設(shè)置的時間后,看門狗會馬上調(diào)用指定的函數(shù)。如下面程序段所示,看門狗函數(shù)serialOutData()的最后調(diào)用wdStart()重新啟動看門狗來調(diào)用看門狗函數(shù)自身,以實現(xiàn)定時執(zhí)行serialOutData()函數(shù)體一次,也就保證確定時間發(fā)送數(shù)據(jù)一次[3]。

        void serialOutData()

        {

        /*相關(guān)的數(shù)據(jù)處理程序并根據(jù)通信協(xié)議要求每8個字節(jié)作為一個數(shù)據(jù)記錄,使用sysOutbyte()向THR寄存器寫數(shù)據(jù)。*/

        wdStart(myWatchDogId,sysClkRateGet()/125,(FUNCPTR)serialOutData, 0);

        }

        在讀取轉(zhuǎn)臺的反饋數(shù)據(jù)時,可以中斷方式或查詢方式讀取。VxWorks下系統(tǒng)資源是優(yōu)先被中斷占有的,中斷服務(wù)程序占用系統(tǒng)資源時間越長越影響任務(wù)間的調(diào)度,也就是影響系統(tǒng)的實時性。采用信號量協(xié)調(diào)任務(wù)間的同步,即在中斷服務(wù)程序中,接收數(shù)據(jù)后,釋放一個信號量,通過msgQReceive()獲取信號量來獲得接收的數(shù)據(jù)。這樣后續(xù)數(shù)據(jù)的處理就放在了中斷服務(wù)程序的外部。

        查詢方式就是隨時判斷每一路異步串行通信控制器16C550的讀標(biāo)志位——數(shù)據(jù)就緒位DR的狀態(tài),該位被置位后就可以讀取寄存器RBR獲得轉(zhuǎn)臺的反饋數(shù)據(jù)。

        2.3 模型機(jī)發(fā)送至轉(zhuǎn)臺的姿態(tài)信息

        無人機(jī)模型機(jī)解算完成的姿態(tài)信息每8 ms定時發(fā)送至轉(zhuǎn)臺,綜合測試計算機(jī)從模型機(jī)的發(fā)送串口獲取的姿態(tài)信息穩(wěn)定、準(zhǔn)確且沒有振蕩,圖2中各圖的曲線依次為模型機(jī)發(fā)送的俯仰角位移量、滾轉(zhuǎn)角位移量和偏航角位移量。

        2.4 模型機(jī)與轉(zhuǎn)臺通信的建立

        模型機(jī)與轉(zhuǎn)臺之間以“記錄”的形式進(jìn)行通信。每個記錄由8個字節(jié)組成。正確的數(shù)據(jù)格式包括“建立通信記錄”和“指令記錄”兩種。每當(dāng)轉(zhuǎn)臺控制機(jī)接收到來自模型機(jī)正確的記錄后都會反饋給模型機(jī)一組“現(xiàn)場數(shù)據(jù)記錄”。

        

        圖3 模型機(jī)解算姿態(tài)角曲線

        串口接收數(shù)據(jù)是一位一位接收的,通常根據(jù)幀頭確定一組數(shù)據(jù)的每一個字節(jié)進(jìn)行校驗。這里接收到來自轉(zhuǎn)臺的“現(xiàn)場信息記錄”包含8個字節(jié),是一組無幀頭幀尾的數(shù)據(jù),因此,如何確定數(shù)據(jù)串的每一個字節(jié)是關(guān)鍵。

        建立一個長度為8的字符型數(shù)組bufZTdata[8]。開始接收到的數(shù)據(jù)依次保存在bufZTdata[0]~bufZTdata[7]中,判斷校驗和為零時,說明這組數(shù)據(jù)正確。如果校驗和不為零,首先將bufZTdata[0]中的數(shù)據(jù)舍棄,再將bufZTdata[i+1]中的值賦給bufZTdata[i],串口接收的新的字節(jié)保存至bufZTdata[7],再判斷校驗和,如果不正確重復(fù)上面的步驟,直到校驗和正確,則確定了來自轉(zhuǎn)臺的這組“現(xiàn)場信息記錄”的每一位。確定了一組記錄后重新開始上面的判斷步驟,將新接收的串口數(shù)據(jù)保存到數(shù)組bufZTdata進(jìn)行新一輪的判斷。

        3 飛控姿態(tài)量的采集

        采集舵機(jī)姿態(tài)信息選擇的是研華公司的PCI-1710多功能數(shù)據(jù)采集卡,其具有16路模擬量采集,最高采樣速率可以達(dá)到100 kHz,12位模擬量的采集滿足對采集精度的要求。舵機(jī)信號是-5~+5 V之間的電壓信號,對應(yīng)于大概-30°~+30°的轉(zhuǎn)角。1710卡和CP-134U都是PCI卡,初始化是相同的。初始化完成后,觸發(fā)方式配置為軟件觸發(fā),輸入范圍配置為-5~+5 V,選用數(shù)據(jù)采集卡內(nèi)部時鐘。

        PCI-1710卡既支持16路單端模擬量輸入,又支持8路差分模擬量輸入。 輸入通道的配置可通過軟件進(jìn)行選擇。單端輸入配置只為每個通道提供1根信號線,且被測量的電壓以公共地為參考。在這種模式下,PCI-1710卡為外部浮動信號源提供一個參考地。

        下面為采集升降舵、副翼、方向舵和油門四個舵機(jī)偏轉(zhuǎn)量的while循環(huán)的程序。Switch語句用來區(qū)分采集到四個量,根據(jù)提前標(biāo)定好的舵機(jī)輸出電壓與舵機(jī)偏轉(zhuǎn)角度的對應(yīng)關(guān)系(一般情況是線性關(guān)系)來獲取舵機(jī)偏轉(zhuǎn)角度。具體實現(xiàn)程序如下[3]:

        sysOutByte(iobaseCsr1, 0); /*設(shè)置軟件觸發(fā)模擬量的采集*/

        do

        {

        ucStatus = sysInByte(iobaseCsr1+7) 1;

        }while( ucStatus == 1);/*等待采集數(shù)據(jù)的完成,完成后ucStatus獲取的數(shù)據(jù)為1*/

        if (ucStatus == 0)

        {

        wRawData = sysInWord(iobaseCsr1);

        pci_v = (fHiVolt-fLoVolt) * (wRawData0xfff)/0xfff +fLoVolt;

        /*將采集到的數(shù)據(jù)wRawData換算成電壓值*/

        /*功能程序*/

        }

        上述程序放在一個循環(huán)體中重復(fù)執(zhí)行,根據(jù)((wRawData 0xf000) >> 12)的值是0,1,2或3來區(qū)分不同的通道的值。

        4 結(jié) 語

        本文基于VxWorks的無人機(jī)半物理仿真模型,編寫了VxWorks下CP-134U串口卡的驅(qū)動程序,完成了該串口卡初始化,實現(xiàn)了與3DMC三軸飛行仿真轉(zhuǎn)臺的通信,在VxWorks下應(yīng)用A/D采集卡完成了舵機(jī)信號的采集,解決了模型機(jī)與無人機(jī)半物理仿真系統(tǒng)閉環(huán)內(nèi)其他部分的通信問題,本文所設(shè)計的數(shù)據(jù)通信及數(shù)據(jù)采集方法已經(jīng)成功地應(yīng)用于了某廠的飛行控制仿真實驗室中,實踐證明該系統(tǒng)具有良好的穩(wěn)定性和可靠性。

        參 考 文 獻(xiàn)

        [1]李謙,閆建國,秦瑋.RTW在飛控系統(tǒng)半物理仿真軟件設(shè)計中的應(yīng)用[J].測控技術(shù),2007,26(6):68-70.

        [2]李軍偉,袁冬莉.基于VxWorks的無人機(jī)半物理仿真研究[J].測控技術(shù),2008,27(9):92-94.

        [3]王前.無人機(jī)飛控系統(tǒng)VxWorks平臺研究與開發(fā)[D].西安:西北工業(yè)大學(xué),2007.

        [4]王偉,張聞乾,陳懷民.基于VxWorks的無人機(jī)飛控系統(tǒng)軟件設(shè)計[J].制造業(yè)自動化,2008(4):37-39.

        [5]吳成富,段曉軍,吳佳楠,等.基于Matlab和VxWorks的無人機(jī)飛控系統(tǒng)半物理仿真平臺研究[J].西北工業(yè)大學(xué)學(xué)報,2005,23(3):337-340.

        [6]張楊,于銀濤.VxWorks內(nèi)核、設(shè)備驅(qū)動與BSP開發(fā)詳解[M].北京:人民郵電出版社,2009.

        [7]Wind River System Inc.. VxWorks programmer′s guide [M]. [S.l.]: Wind River System Inc.,1999.

        [8]何麗紅.基于PCMCIA接口的高速率串口擴(kuò)展卡[J].現(xiàn)代電子技術(shù),2007,30(4):32-34.

        [9]羅伯強(qiáng),李軍.VxWorks下共享中斷的多串口卡驅(qū)動設(shè)計[J].微計算機(jī)信息,2007,23(1):97-98.

        [10]Texas Instruments. TL16C554 asynchronous communications element [M]. [S.l.]: Texas Instruments, 1998.

        作者簡介:

        劉新順 男,1986年出生,陜西西安人,在讀碩士研究生。主要研究方向為飛控軟件系統(tǒng)、嵌入式系統(tǒng)、飛行器控制研究。

        閆建國 男,1956年出生,上海人,教授,博士生導(dǎo)師。主要從事計算機(jī)控制與智能控制、魯棒控制、飛行器控制等研究。

        亚洲片在线视频| 无码人妻久久一区二区三区不卡| 狠狠躁夜夜躁人人爽天天天天97| аⅴ天堂一区视频在线观看 | 少妇精品偷拍高潮少妇在线观看| 国产亚洲欧洲aⅴ综合一区| 免费国产黄网站在线观看| 人妻丰满熟妇AV无码片| 日本熟妇裸体视频在线| 无码精品国产一区二区三区免费 | 国产女人好紧好爽| 国产日韩精品中文字无码| 亚洲AV无码专区国产H小说| 国产理论亚洲天堂av| 日本真人边吃奶边做爽电影| 午夜不卡久久精品无码免费| 国产91一区二这在线播放| 美女被内射中出在线观看| 日本一区二区三区免费播放| 亚洲综合无码一区二区三区| 无码熟妇人妻av在线c0930| 亚洲国产综合精品中久| 久久国产亚洲高清观看| 99国产超薄丝袜足j在线播放| 美女福利视频网址导航| 日本丰满老妇bbw| 国产精品亚洲综合色区韩国 | 国产精品天堂在线观看| 欧美丰满熟妇xxxx性ppx人交| 蜜臀aⅴ国产精品久久久国产老师| 特级毛片全部免费播放a一级| 一本久久精品久久综合| 四虎国产精品永久在线国在线 | 亚洲AV无码乱码精品国产草莓| 日本九州不卡久久精品一区| 欧美人与动人物牲交免费观看久久| 国产成人77亚洲精品www| 亚洲专区一区二区三区四区五区| 亚洲熟女综合色一区二区三区 | 免费看草逼操爽视频网站| 亚洲日韩中文字幕无码一区|