999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

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

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

中圖分類號:TN919-34

文獻標識碼: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 引 言

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

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

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

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

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

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

圖1 半物理仿真中模型機通信

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)存地址要進行映射,通過執(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端口,不需要進行地址映射。基于轉(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組合起來為二進制數(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ā)送均采取直接操作寄存器的辦法。沒有選擇將串口封裝成為標準的輸入、輸出函數(shù)open(),close(),read(),write(),ioctl(),從而在處理數(shù)據(jù)的過程中更方便,簡化了程序執(zhí)行步驟。模型機與轉(zhuǎn)臺通信時,依據(jù)通信協(xié)議要求需定時向轉(zhuǎn)臺發(fā)送姿態(tài)信息以保證轉(zhuǎn)臺的平滑運轉(zhuǎn),因此選擇使用VxWorks提供的看門狗定時器來實現(xiàn)定時發(fā)送。

看門狗定時器能夠提供比較精確的計時,在定時時間結(jié)束時采用中斷或者最高任務(wù)優(yōu)先級執(zhí)行,打斷大部分的任務(wù)。看門狗接口函數(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的讀標志位——數(shù)據(jù)就緒位DR的狀態(tài),該位被置位后就可以讀取寄存器RBR獲得轉(zhuǎn)臺的反饋數(shù)據(jù)。

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

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

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

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



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

串口接收數(shù)據(jù)是一位一位接收的,通常根據(jù)幀頭確定一組數(shù)據(jù)的每一個字節(jié)進行校驗。這里接收到來自轉(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進行新一輪的判斷。

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

采集舵機姿態(tài)信息選擇的是研華公司的PCI-1710多功能數(shù)據(jù)采集卡,其具有16路模擬量采集,最高采樣速率可以達到100 kHz,12位模擬量的采集滿足對采集精度的要求。舵機信號是-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路差分模擬量輸入。 輸入通道的配置可通過軟件進行選擇。單端輸入配置只為每個通道提供1根信號線,且被測量的電壓以公共地為參考。在這種模式下,PCI-1710卡為外部浮動信號源提供一個參考地。

下面為采集升降舵、副翼、方向舵和油門四個舵機偏轉(zhuǎn)量的while循環(huán)的程序。Switch語句用來區(qū)分采集到四個量,根據(jù)提前標定好的舵機輸出電壓與舵機偏轉(zhuǎn)角度的對應(yīng)關(guān)系(一般情況是線性關(guān)系)來獲取舵機偏轉(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的無人機半物理仿真模型,編寫了VxWorks下CP-134U串口卡的驅(qū)動程序,完成了該串口卡初始化,實現(xiàn)了與3DMC三軸飛行仿真轉(zhuǎn)臺的通信,在VxWorks下應(yīng)用A/D采集卡完成了舵機信號的采集,解決了模型機與無人機半物理仿真系統(tǒng)閉環(huán)內(nèi)其他部分的通信問題,本文所設(shè)計的數(shù)據(jù)通信及數(shù)據(jù)采集方法已經(jīng)成功地應(yīng)用于了某廠的飛行控制仿真實驗室中,實踐證明該系統(tǒng)具有良好的穩(wěn)定性和可靠性。

參 考 文 獻

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

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

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

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

[5]吳成富,段曉軍,吳佳楠,等.基于Matlab和VxWorks的無人機飛控系統(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接口的高速率串口擴展卡[J].現(xiàn)代電子技術(shù),2007,30(4):32-34.

[9]羅伯強,李軍.VxWorks下共享中斷的多串口卡驅(qū)動設(shè)計[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)師。主要從事計算機控制與智能控制、魯棒控制、飛行器控制等研究。

主站蜘蛛池模板: 91久久国产综合精品女同我| 国产AV无码专区亚洲A∨毛片| 亚洲第一天堂无码专区| 亚洲综合精品第一页| 国外欧美一区另类中文字幕| 亚洲美女高潮久久久久久久| 亚洲国产在一区二区三区| 久久综合色88| 精品国产乱码久久久久久一区二区| 亚洲天堂啪啪| 国产在线精品99一区不卡| 99这里只有精品在线| 99re66精品视频在线观看| 在线看片免费人成视久网下载| 成人免费一级片| 中文字幕在线看| 久久精品中文字幕少妇| 中文字幕在线日韩91| 黄色免费在线网址| 毛片网站免费在线观看| 操美女免费网站| 777午夜精品电影免费看| 91福利在线看| 午夜激情福利视频| 国产一级毛片在线| 伊人久久久久久久久久| 日韩色图区| 99伊人精品| 真实国产乱子伦视频| 日韩在线影院| 丁香五月亚洲综合在线| 亚洲精品制服丝袜二区| 午夜视频在线观看区二区| 99免费在线观看视频| 看国产毛片| 国产白浆在线观看| 99一级毛片| 午夜色综合| 亚洲天堂在线视频| 国产丝袜第一页| 亚洲精品无码抽插日韩| AV不卡在线永久免费观看| 人人艹人人爽| 亚洲欧美另类视频| 国产真实乱子伦视频播放| 亚洲精品动漫| 国模极品一区二区三区| 国产一级无码不卡视频| 亚洲国产看片基地久久1024| 免费人成视网站在线不卡| 色综合五月婷婷| 2021国产乱人伦在线播放| 狠狠亚洲五月天| a级毛片免费播放| 欧美日韩导航| 国产中文在线亚洲精品官网| 99手机在线视频| 女人18一级毛片免费观看| 国产精品香蕉在线| 亚洲无码视频图片| 欧美激情视频一区| 毛片一区二区在线看| 五月综合色婷婷| 成年av福利永久免费观看| 美女国产在线| 亚洲妓女综合网995久久| 成人国产精品2021| 国产九九精品视频| 国产99视频精品免费视频7| 亚洲成人精品| 国产91丝袜| 日本亚洲成高清一区二区三区| 欧美日韩高清| 最新国产网站| 高清不卡毛片| 一级爱做片免费观看久久| 久草视频一区| 国产精品无码AⅤ在线观看播放| 国产黄色片在线看| 五月天天天色| 久久99热66这里只有精品一| 亚洲无码37.|