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

        ?

        一種飛艇半物理仿真系統(tǒng)ARINC429驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)

        2016-11-17 08:56:20李冠林喬晉龍
        關(guān)鍵詞:設(shè)備模型系統(tǒng)

        李冠林,喬晉龍,2

        (1.中國(guó)特種飛行器研究所,湖北 荊門(mén) 448035; 2.高速水動(dòng)力航空科技重點(diǎn)實(shí)驗(yàn)室, 湖北 荊門(mén) 448035)

        ?

        一種飛艇半物理仿真系統(tǒng)ARINC429驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)

        李冠林1,喬晉龍1,2

        (1.中國(guó)特種飛行器研究所,湖北 荊門(mén) 448035; 2.高速水動(dòng)力航空科技重點(diǎn)實(shí)驗(yàn)室, 湖北 荊門(mén) 448035)

        為了滿(mǎn)足飛艇實(shí)際飛行過(guò)程對(duì)通信可靠性和實(shí)時(shí)性的需求,半物理仿真系統(tǒng)的飛艇模型計(jì)算機(jī)采用以PC為平臺(tái)的Xpc嵌入式實(shí)時(shí)系統(tǒng),飛控計(jì)算機(jī)采用以PowerPC為平臺(tái)的VxWork嵌入式實(shí)時(shí)系統(tǒng),通過(guò)ARINC429協(xié)議完成數(shù)據(jù)通訊;硬件上,PowerPC通過(guò)橋接芯片訪問(wèn)并控制PCI設(shè)備;軟件上,按照Xpc系統(tǒng)和vxWork系統(tǒng)PCI設(shè)備驅(qū)動(dòng)程序的編寫(xiě)流程,分析了xPC內(nèi)存驅(qū)動(dòng)框架和vxBus驅(qū)動(dòng)框架關(guān)鍵技術(shù)點(diǎn),設(shè)計(jì)了飛艇模型計(jì)算機(jī)Xpc和飛控計(jì)算機(jī)Vxwork的ARINC429通訊卡驅(qū)動(dòng)程序;通過(guò)實(shí)際的應(yīng)用,證實(shí)所開(kāi)發(fā)的ARINC429驅(qū)動(dòng)程序滿(mǎn)足飛艇半物理仿真平臺(tái)數(shù)據(jù)通訊的可靠性和實(shí)時(shí)性。

        半物理仿真系統(tǒng);嵌入式實(shí)時(shí)系統(tǒng); ARINC429協(xié)議;驅(qū)動(dòng)程序

        0 引言

        飛艇的半物理仿真實(shí)驗(yàn)是檢驗(yàn)飛艇飛控性能的有效途徑。飛艇半物理仿真系統(tǒng)中不同的操作系統(tǒng)環(huán)境,同一硬件設(shè)備原理和流程雖然一致,但具體驅(qū)動(dòng)方法通常因操作系統(tǒng)的不同而有所差異[1]。因此,為了保證飛艇半物理仿真系統(tǒng)正常的ARINC429通訊,開(kāi)發(fā)出滿(mǎn)足Xpc系統(tǒng)和vxWork系統(tǒng)的ARINC429通訊卡驅(qū)動(dòng)程序是十分必要的。

        1 系統(tǒng)概述

        飛艇半實(shí)物物理仿真主要由飛艇仿真平臺(tái)和飛控計(jì)算機(jī)組成,硬件組成如圖1所示。

        圖1 飛艇仿真平臺(tái)硬件組成

        飛艇仿真平臺(tái)建立在xPC系統(tǒng)環(huán)境下,利用飛艇模型模擬真實(shí)飛艇的飛行,飛控計(jì)算機(jī)建立在xWork環(huán)境下,負(fù)責(zé)飛艇的飛行控制和導(dǎo)航,飛控計(jì)算機(jī)和飛艇仿真平臺(tái)通過(guò)ARINC429總線完成二者之間的通訊。EFIS負(fù)責(zé)顯示飛艇飛行過(guò)程中的各種信息參數(shù)。

        2 ARINCA29

        ARINCA29總線是廣泛應(yīng)用在航空電子系統(tǒng)中的一種通訊總線。它采用差分的工作方式,其結(jié)構(gòu)簡(jiǎn)單、可靠性高和抗干擾性強(qiáng),被廣泛應(yīng)用于飛機(jī)航電設(shè)備數(shù)據(jù)傳輸和控制命令傳輸。ARINC429傳輸字的格式如圖2所示。

        圖2 ARINC429傳輸字的格式

        ARINC429傳輸字格式主要由奇偶校驗(yàn)位(Odd)、符號(hào)/狀態(tài)位(SSM)、數(shù)據(jù)區(qū)域(Data)、源/目標(biāo)標(biāo)識(shí)(SDI)和標(biāo)號(hào)位(Label)組成。在通訊過(guò)程中,發(fā)送順序依次為標(biāo)號(hào)位、源/目標(biāo)標(biāo)識(shí)、數(shù)據(jù)區(qū)域、符號(hào)/狀態(tài)位和奇偶校驗(yàn)位,其中標(biāo)號(hào)位發(fā)送順序?yàn)橛筛叩降?8-1),而傳輸字的發(fā)送順序都是由低到高(9-32)。當(dāng)接收方接收到429傳輸字時(shí),需要將Label位的進(jìn)行逆序處理。

        3 關(guān)鍵技術(shù)

        3.1 飛艇仿真系統(tǒng)部分

        xPC是基于RTW(Real-Time Workshop)的實(shí)時(shí)仿真和開(kāi)發(fā)平臺(tái),其采用“雙機(jī)”模式實(shí)現(xiàn)產(chǎn)品原型開(kāi)發(fā)和系統(tǒng)的測(cè)試。宿主機(jī)運(yùn)行simulink完成仿真系統(tǒng)模型開(kāi)發(fā),通過(guò)網(wǎng)線將模型加載到目標(biāo)機(jī)上;目標(biāo)機(jī)啟動(dòng)時(shí)加載實(shí)時(shí)內(nèi)核,該實(shí)時(shí)內(nèi)核保證仿真系統(tǒng)高效的運(yùn)行[2]。

        xPC目標(biāo)機(jī)支持ISA總線和PCI總線的I/O設(shè)備,飛艇仿真模塊采用PCI總線的ARINC429通訊卡。xPC 驅(qū)動(dòng)程序文件即為由C語(yǔ)言編寫(xiě)函數(shù)組成的S-functions文件,主要由初始化模塊、執(zhí)行模塊和結(jié)束模塊組成,如圖3所示。

        圖3 xPC 目標(biāo)驅(qū)動(dòng)程序組成

        初始化模塊包括由mdlInitializeSizes函數(shù),mdlInitializeSampleTimes函數(shù)和mdlStart函數(shù)組成,mdlInitializeSizes函數(shù)和mdlInitializeSampleTimes函數(shù)主要負(fù)責(zé)輸入輸出參數(shù)初始化、狀態(tài)量初始化和系統(tǒng)采樣時(shí)間的初始化,mdlStart函數(shù)負(fù)責(zé)I/O設(shè)備初始化;執(zhí)行部分根據(jù)仿真模型,完成相應(yīng)的任務(wù),執(zhí)行部分功能集中在mdlOutputs 函數(shù),該函數(shù)在負(fù)責(zé)PCI設(shè)備的讀寫(xiě)操作;結(jié)束模塊功能函數(shù)為mdlTerminate,在運(yùn)行結(jié)束后,負(fù)責(zé)釋放相關(guān)資源,使I/O設(shè)備安全退出。

        xPC Target啟動(dòng)時(shí),PCI總線驅(qū)動(dòng)被加載,BIOS掃描掛接在PCI總線上的I/O設(shè)備,并為PCI設(shè)備分配合理的I/O空間地址、物理地址和中斷號(hào)等資源,無(wú)需用戶(hù)在驅(qū)動(dòng)程序中為PCI設(shè)備申請(qǐng)相關(guān)的資源,驅(qū)動(dòng)程序通過(guò)廠商標(biāo)識(shí)(Vendor_ID)和設(shè)備標(biāo)識(shí)(Device_ID)來(lái)獲取PCI設(shè)備的配置空間信息,代碼如下:

        rl32eGetPCIInfo(Vendor_ID,Device_ID,&pciinfo);

        pciinfo 是一個(gè)結(jié)構(gòu)體變量,結(jié)構(gòu)如下:

        {

        unsigned long BaseAddress[6];

        unsigned short AddressSpaceIndicator[6];

        unsigned short InterruptLine;

        }

        BIOS為每個(gè)PCI設(shè)備提供了6個(gè)基址,其中有部分基址是無(wú)效的,通過(guò)rl32eShowPCIInfo函數(shù)確定有效基址。PCI設(shè)備映射分為I/O映射和內(nèi)存映射,驅(qū)動(dòng)程序可以通過(guò)pciinfo中的AddressSpaceIndicator屬性值來(lái)確定PCI映射類(lèi)型。若PCI設(shè)備為內(nèi)存映射,AddressSpaceIndicator屬性值0;若PCI設(shè)備為I/O映射AddressSpaceIndicator屬性值1。ARINC 429通訊卡為內(nèi)存映射,pciinfo結(jié)構(gòu)中的基址BaseAddress必需通過(guò)函數(shù)rl32eGetDevicePtr 轉(zhuǎn)化成虛擬地址,然后用C語(yǔ)言的指針訪問(wèn)相應(yīng)的虛擬地址,代碼如下:

        bar2Base = (char *)rl32eGetDevicePtr((char*)(pciinfo.BaseAddress[2]),

        4096,RT_PG_USERREADWRITE);

        *(bar2Base)= 0x12;

        編譯器往往會(huì)優(yōu)化內(nèi)存,將內(nèi)存變量緩存到寄存器。當(dāng)驅(qū)動(dòng)程序進(jìn)行寫(xiě)操作,volatile關(guān)鍵詞提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)。如果沒(méi)有volatile關(guān)鍵字,則編譯器可能優(yōu)化讀取和存儲(chǔ),可能暫時(shí)使用寄存器中的值,如果這個(gè)變量有別的程序更新了的話(huà),將出現(xiàn)不一致的現(xiàn)象,該驅(qū)動(dòng)將寄存器地址值都用volatile關(guān)鍵詞進(jìn)行修飾,以此避免寄存器內(nèi)值不能及時(shí)更新的問(wèn)題。

        typedef struct

        {

        volatile uint32_T * txFifo_0; //pci429 發(fā)送通道fifo

        volatile uint16_T * bps_sel; //dei1016波特率控制

        volatile uint8_T * recEn; //8路接收使能

        }Regs_429;

        3.2 飛控計(jì)算機(jī)系統(tǒng)部分

        飛控計(jì)算機(jī)處理器板與ARINC429有關(guān)的硬件如圖4所示。

        圖4 飛控計(jì)算機(jī)處理器板示意圖

        橋接芯片是為PowerPC專(zhuān)門(mén)設(shè)計(jì)的橋芯片/存儲(chǔ)器控制器,主要實(shí)現(xiàn)PowerPC到PCI的橋接功能,同時(shí)管理內(nèi)存VxWorks是WindRiver公司推出的一個(gè)高效的嵌入式實(shí)時(shí)操作系統(tǒng),內(nèi)核可根據(jù)實(shí)際需求進(jìn)行裁減,擁有良好的可靠行和卓越的實(shí)時(shí)性。由于在不同CPU架構(gòu)上提供了統(tǒng)一的接口和相同的運(yùn)行特性,VxWork的應(yīng)用程序可以在不同的硬件上進(jìn)行移植,被廣泛地應(yīng)用在通信、軍事、航空、航天等領(lǐng)域中[3-4]。

        WindRiver公司從VxWork6.X開(kāi)始引入VxBus驅(qū)動(dòng)模型,該模型定義了一些標(biāo)準(zhǔn)的接口來(lái)操作系統(tǒng)和硬件設(shè)備,VxBus驅(qū)動(dòng)模型涉及設(shè)備、驅(qū)動(dòng)和實(shí)例。每一個(gè)驅(qū)動(dòng)可以與多個(gè)設(shè)備關(guān)聯(lián),但是每個(gè)實(shí)例只能對(duì)應(yīng)其中的一種關(guān)聯(lián)[5],VxBus驅(qū)動(dòng)實(shí)例模型如圖5所示。

        VxBus架構(gòu)下arinc429通訊卡的初始化主要包括硬件查找階段、驅(qū)動(dòng)注冊(cè)階段、驅(qū)動(dòng)初始化階段1、驅(qū)動(dòng)初始化階段2和驅(qū)動(dòng)初始化階段3五個(gè)部分。在硬件查找階段,vxworks系統(tǒng)調(diào)用sysHwInit函數(shù)激活設(shè)備,在sysHwInit函數(shù)中,通過(guò)調(diào)用hardWarelnterFaceInit函數(shù)和hardWareInterFaceBusInit函數(shù)來(lái)初始化和激活arinc429通訊卡。在hardWareInterFaceBusInit函數(shù),通過(guò)調(diào)用vxbDevRegister函數(shù)來(lái)完成arinc429通訊卡驅(qū)動(dòng)的注冊(cè)。

        圖5 Vxbus驅(qū)動(dòng)實(shí)例模型

        驅(qū)動(dòng)程序注冊(cè)主要包括vxbDevRegInfo結(jié)構(gòu)體初始化和調(diào)用vxbDevRegister函數(shù)兩部分,vxbDevRegInfo結(jié)構(gòu)體提供了驅(qū)動(dòng)注冊(cè)所需的相關(guān)信息,初始化代碼如下:

        LOCAL struct vxbDevRegInfo pci429DevRegistration =

        {

        VXB_DEVID_DEVICE, /* devID */

        VXB_BUSID_PCI, /* busID = PLB */

        " arinc429", /* drvName */

        &pci429Funcs, /* pDrvBusFuncs */

        pci429DriverCtrl, /* pMethods*/

        };

        驅(qū)動(dòng)初始化3個(gè)階段主要完成內(nèi)存空間、I/O空間和中斷等資源的申請(qǐng)以及實(shí)例的建立,使上層應(yīng)用程序可以正常使用驅(qū)動(dòng)程序。在pci429DevRegistration結(jié)構(gòu)中pci429Funcs提供了設(shè)備驅(qū)動(dòng)初始化3個(gè)階段的入口地址,定義如下:

        LOCAL struct drvBusFuncs pci429Funcs =

        {

        pci429InstInit, /* devInstanceInit */

        pci429InstInit2, /* devInstanceInit2 */

        pci429InstConnect /* devConnect */

        };

        在pci429InstInit2函數(shù)中主要負(fù)責(zé)獲取硬件設(shè)備相關(guān)的資源,vxbRegMap函數(shù)進(jìn)行板卡基地址映射,從而調(diào)用相關(guān)的讀寫(xiě)函數(shù)對(duì)設(shè)備卡進(jìn)行操作。

        代碼如下:

        LOCAL void wrsampleInstInit2(VXB_DEVICE_ID pInst )

        {

        VXB_PCI_BUS_CFG_READ (pDev, PCI_CFG_VENDOR_ID, 2, &venId);

        VXB_PCI_BUS_CFG_READ (pDev, PCI_CFG_DEVICE_ID, 2, &devId);

        /* find the memory mapped window for the device registers */

        for (i = 0; i < VXB_MAXBARS; i++)

        {

        if (pInst->regBaseFlags[i] == VXB_REG_MEM)

        break;

        }

        pDrvCtrl->pci429Bar = pInst->pRegBase[i]; /* store the base address */

        vxbRegMap (pInst, i, &pDrvCtrl->pci429Handle); /* map the window */

        }

        在pci429InstConnect函數(shù)中完成硬件啟動(dòng)時(shí)相關(guān)資源的配置,包括中斷部分、發(fā)送部分部分、接收部分以及狀態(tài)命令字段。

        4 試驗(yàn)結(jié)果與分析

        EFIS實(shí)時(shí)準(zhǔn)確的更新飛艇模型發(fā)送的飛行狀態(tài)信息,并且飛艇模型隨著飛控計(jì)算機(jī)操作命令的不同,實(shí)時(shí)準(zhǔn)確的變換著飛行姿態(tài)。實(shí)驗(yàn)證明,ARINC429通訊卡驅(qū)動(dòng)程序保證了飛艇仿真系統(tǒng)穩(wěn)定、可靠和實(shí)時(shí)性的通信。

        5 結(jié)論

        飛艇仿真系統(tǒng)模型計(jì)算機(jī)和飛控計(jì)算機(jī)分別采用xpc系統(tǒng)和vxworks系統(tǒng),ARINC429驅(qū)動(dòng)程序保證仿真系統(tǒng)在不同操作系統(tǒng)之間的實(shí)時(shí)通信,同時(shí)ARINC429驅(qū)動(dòng)程序?yàn)樯蠈討?yīng)用程序訪問(wèn)ARINC429通信卡提供基礎(chǔ)。

        [1] 王 蒙.基于嵌入式系統(tǒng)的SpaceWire總線驅(qū)動(dòng)技術(shù)研究[J].計(jì)算機(jī)測(cè)量與控制,2014,22 (2):483-485.

        [2] 宋 煒,祖家奎.基于x P C 目標(biāo)的實(shí)時(shí)I/O接口技術(shù)研究[J].計(jì)算機(jī)應(yīng)用,2008,27(1):62-65.

        [3] 李 焱.VxWorks下82C55A并口驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)及測(cè)試[J].計(jì)算機(jī)測(cè)量與控制,2010,18 (2):261-263.

        [4] 曹桂平.Vxworks設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:電子工業(yè)出版社,2011.

        [5] Wind River System Inc.. VxWorks programmer’s guide[Z]. Wind River System Inc.,1999.

        Design and Implementation of a ARINC429 Driver for Semi- physical Simulation System

        Li Guanlin1,Qiao Jinlong1,2

        (1.China Special Vehicle Research Institute,Jingmen 448035,China;2.Key Aviation Scientific and Technological Laboratory of High-Speed Hydrodynamic, Jingmen 448035,China)

        In order to meet the demand of communication reliability and real-time for airship in actual flight process, the airship model computer of semi-physical simulation system uses an embedded real-time system Xpc which uses PC as a platform, flight control computer uses an embedded real-time system VxWork which uses PowerPC as a platform,through the ARINC429 protocol for data communications.In hardware, PowerPC accesses and controls PCI devices through the bridge chip; in software, in accordance with written procedures of PCI device drivers in Xpc system and vxWork system,it analyzed the key technical points of the xPC memory drive frame and the vxBus drive frame, designed the communication card driver ARINC429 of airship computer model Xpc and flight control computer Vxwork. Through practical application, it confirmed the development of the ARINC429 driver meet the reliability and real-time of data communications for airship semi-physical simulation platform.

        semi-physical simulation system; embedded real-time system; ARINC429 protocol; drivers

        2015-09-15;

        2015-11-04。

        李冠林(1987-),男,山西朔州人,碩士研究生,工程師,主要從事嵌入式方向的研究。

        1671-4598(2016)09-0176-02

        10.16526/j.cnki.11-4762/tp.2016.09.049

        TP3

        A

        猜你喜歡
        設(shè)備模型系統(tǒng)
        一半模型
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        3D打印中的模型分割與打包
        熟女人妻一区二区三区| 波多野结衣亚洲一区二区三区 | 少妇久久一区二区三区| 蜜桃18禁成人午夜免费网站| 人妻久久久一区二区三区| 国产天堂在线观看| 成人免费a级毛片| 日本午夜精品理论片a级app发布| 午夜片无码区在线| 吃奶还摸下面动态图gif| 精品国产91久久综合| 国产风骚主播视频一区二区| 亚洲a无码综合a国产av中文| 欧美aaaaaa级午夜福利视频| 亚洲欧美一区二区三区国产精| 日韩av综合色区人妻| 国产亚洲精品一区二区无| 九九久久精品无码专区| 自拍 另类 综合 欧美小说| 日韩精品无码av中文无码版| 国产精品原创av片国产日韩| 国产成人精品一区二三区在线观看| 久久久精品午夜免费不卡| 国产福利酱国产一区二区| 国产成人精品三上悠亚久久| 美腿丝袜视频在线观看| 日本久久久久亚洲中字幕| 国产三级在线观看免费| 久久99精品这里精品动漫6| 丁香婷婷六月综合缴清| 国产亚洲精品美女久久久| 色综合天天网| 琪琪av一区二区三区| 中文无码人妻有码人妻中文字幕| 亚洲国产成人精品无码区99| 天天摸天天做天天爽天天舒服| 国产一区二区黄色的网站| 久久99精品九九九久久婷婷 | 中文乱码人妻系列一区二区| 国产精品一区二区久久精品蜜臀| 久久中文字幕人妻淑女|