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

S698-T處理器的VxWorks ARINC 429 總線模塊應用

2014-09-06 10:49:58龔永紅
關(guān)鍵詞:嵌入式設(shè)備工程

龔永紅

(珠海歐比特控制工程股份有限公司,珠海 519080)

?

龔永紅

(珠海歐比特控制工程股份有限公司,珠海 519080)

ARINC429總線是航空專用總線,應用非常廣泛。本文以S698-T處理器為平臺,從底層驅(qū)動程序入手,詳細講述了針對S698-T處理器的VxWorks ARINC429總線驅(qū)動模塊的應用與開發(fā)過程。給出了通過VxWorks VIP工程調(diào)用ARINC429驅(qū)動,完成數(shù)據(jù)收發(fā)的過程,可為后續(xù)的應用、開發(fā)工作提供幫助。

VxWorks;ARINC429;驅(qū)動程序;S698-T

引 言

VxWorks操作系統(tǒng)作為一種嵌入式實時操作系統(tǒng)(RTOS),擁有高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,發(fā)展為當今較流行的嵌入式系統(tǒng)。其應用遍布通信、國防、工業(yè)控制、醫(yī)療設(shè)備等多個嵌入式領(lǐng)域。

S698-T是珠海歐比特控制工程股份有限公司面向嵌入式控制領(lǐng)域而研制的一款高性能、高可靠的SoC 芯片,以130 nm CMOS 半導體工藝制造。S698-T芯片以高性能的SPARC V8(IEEE-1754)架構(gòu),標準的32 位RISC 整數(shù)單元IU 為主控內(nèi)核,配以IEEE-754 標準的64 位雙精度浮點處理單元FPU。此外,S698-T內(nèi)部還集成了1553B總線控制器、ARINC429總線控制器、CAN總線控制器、多功能I/O接口、UART接口、在線硬件調(diào)試支持單元DSU、DAC模塊、ADC模塊等多種功能模塊。

ARINC429總線協(xié)議是美國航空電子工程委員會(Airlines Engineering Committee)于1977年7月提出的,并于同年同月發(fā)表并獲得批準使用。數(shù)字式信息傳輸系統(tǒng)DITS,規(guī)定了航空電子設(shè)備及有關(guān)系統(tǒng)間的數(shù)字信息傳輸要求。ARINC429廣泛應用在先進的民航客機中,如B-737、B757、B-767等。ARINC429總線結(jié)構(gòu)簡單、性能穩(wěn)定、抗干擾性強。最大的優(yōu)勢在于可靠性高,這是由于它非集中控制、傳輸可靠、錯誤隔離性好。

1 S698-TARINC429驅(qū)動程序設(shè)計

ARINC429驅(qū)動基于VxBus模式進行開發(fā),VxBus是在VxWorks中用于支持設(shè)備驅(qū)動的特有架構(gòu)。VxBus在總線控制器驅(qū)動程序服務的支持下,能在總線上發(fā)現(xiàn)設(shè)備,并執(zhí)行一些初始化工作,使驅(qū)動與硬件設(shè)備之間正常通信。它包括以下功能:

① 允許設(shè)備驅(qū)動匹配對應設(shè)備;

② 提供驅(qū)動程序訪問硬件的機制;

③ 允許軟件其他部分訪問設(shè)備功能;

④ 在VxWorks系統(tǒng)中,實現(xiàn)設(shè)備驅(qū)動的模塊化。

在VxWorks6.2版本發(fā)布前,設(shè)備驅(qū)動并不能被集成到VxWorks工程配置當中,為了添加或移出設(shè)備驅(qū)動,需要有豐富的BSP和驅(qū)動開發(fā)相關(guān)的知識。并且在驅(qū)動被添加或移出時要去做一些管理VxWorks工程的額外工作。作為VxWorks系統(tǒng)組件的一部分,VxBus消除了上面遇到的一些難題,各種驅(qū)動和支持組件的添加與刪除完全可以在Workbench工程中進行,而不需要BSP和驅(qū)動相關(guān)的知識,也不會在添加、刪除驅(qū)動時增加管理VxWorks工程的額外工作。因此大大方便了BSP的開發(fā)。

ARINC429驅(qū)動采用第三方驅(qū)動程序的組織方式,VxWorks允許驅(qū)動程序開發(fā)廠商和開發(fā)者創(chuàng)建第三方驅(qū)動程序,不需要擔心不同廠商的文件之間的命名空間沖突。每一個想提供VxWorks驅(qū)動程序的廠商必須在3rdparty目錄創(chuàng)建自己的子目錄。

盡管一個驅(qū)動程序可以包括很多文件,比如多個源文件和多個頭文件,但是一個標準的VxWorks驅(qū)動程序有一個最小的文件集,對于大多數(shù)VxWorks驅(qū)動程序最少要求6個文件,如表1所列。

表1 VxWorks驅(qū)動程序

一般情況下,CDF文件、dc文件、dr文件都被認為是驅(qū)動程序的配置文件,下面詳細介紹這些文件。

1.1 驅(qū)動程序源文件

驅(qū)動程序源文件包含了驅(qū)動程序功能的實現(xiàn)邏輯,它們被放在目錄 installDir/vxworks-6.x/target/src/hwif,第三方驅(qū)動的源文件放在目錄installDir/vxworks-6.x/target/3rdparty。很多VxWorks設(shè)備驅(qū)動程序只包含一個源文件,一個驅(qū)動程序可以包含一個或者幾個可選的頭文件;驅(qū)動程序可以包含多個源文件,此時必須在Makefile里面提供各個模塊的依賴規(guī)則。下面以文件leon2obt429.c為例來說明VxWorks驅(qū)動程序的結(jié)構(gòu)。

設(shè)備驅(qū)動程序的第一部分是一個描述VxBus初始化階段要調(diào)用的例程的結(jié)構(gòu):

LOCAL struct drvBusFuncs leon2OBT429DrvFuncs ={

leon2OBT429InstInit,

leon2OBT429InstInit2,

leon2OBT429InstConnect

};

接著就是描述驅(qū)動程序所支持的驅(qū)動方法的數(shù)據(jù)結(jié)構(gòu)(每一種類別的驅(qū)動程序都必須實現(xiàn)該類的驅(qū)動方法):

LOCAL device_method_t leon2OBT429Drv_methods[] ={

{0, NULL}

};

然后描述該驅(qū)動程序需要的注冊信息的結(jié)構(gòu):

LOCAL struct vxbDevRegInfo leon2OBT429DrvRegistration={

NULL, /* 后續(xù)設(shè)備指針*/

VXB_DEVID_DEVICE, /* 設(shè)備ID號 */

VXB_BUSID_PLB, /* 總線ID號*/

VXB_VER_4_0_0, /* VxBus版本號 */

"leon2OBT429Dev", /*驅(qū)動名稱*/

&leon2OBT429DrvFuncs, /*驅(qū)動入口函數(shù)指針*/

&leon2OBT429Drv_methods[0], /*設(shè)備方法組*/

NULL, /*設(shè)備探測*/

NULL /*默認參數(shù)*/

};

在注冊信息后面,驅(qū)動程序必須提供一個例程來向VxBus注冊,表明該驅(qū)動程序的存在:

void leon2OBT429DrvRegister(void){

/*驅(qū)動注冊,此時不需要真正的硬件*/

vxbDevRegister((struct vxbDevRegInfo *)

&leon2OBT429DrvRegistration);

}

由于驅(qū)動程序注冊方法被當作是驅(qū)動程序的第一個入口點,VxWorks必須被配置成:當該驅(qū)動程序向VxBus注冊時,VxWorks知道調(diào)用該入口點。為了做到這點,VxWorks使用的之前提到的那幾個驅(qū)動配置文件:CDF文件、dc文件、dr文件。

1.2 CDF文件

CDF文件的全稱是Component Description File,組件描述文件。根據(jù)VxBus標準開發(fā)的VxWorks設(shè)備驅(qū)動程序都被編譯成一個單獨的模塊,可以使用VxWorks配置工具非常輕松地將驅(qū)動程序配置進BSP中。但是,必須為你的設(shè)備驅(qū)動程序創(chuàng)建一個VxWorks組件。

一個組件是一個基本的功能單元,它可以單獨配置進入VxWorks內(nèi)核鏡像中。為了能夠單獨添加和刪除設(shè)備驅(qū)動程序到VxWorks中,驅(qū)動程序必須能夠被VxWorks配置工具識別成individual 組件。為了讓驅(qū)動程序能夠在Workbench或者vxprj中是可以配置的,必須創(chuàng)建CDF文件,CDF文件提供VxWorks配置工具所需要的信息。針對風河公司發(fā)布的設(shè)備驅(qū)動程序,其對應的CDF文件位于以下目錄:

installDir/vxworks-6.x/target/config/comps/vxWorks

在風河提供的驅(qū)動程序中,一個CDF文件可能包含著描述多個設(shè)備驅(qū)動程序的信息,對于第三方驅(qū)動,其CDF文件路徑是在驅(qū)動程序目錄下。

40leon2obt429.cdf文件的主要數(shù)據(jù)結(jié)構(gòu)如下:

Component DRV_LEON2_OBT429 {

NAME LEON2 obt429 VxBus driver

SYNOPSIS LEON2 obt429 VxBus driver provided by Wind River

REQUIRES INCLUDE_VXBUS INCLUDE_PLB_BUS

MODULES leon2obt429.o

PROTOTYPE void leon2OBT429DrvRegister(void);

INIT_RTN leon2OBT429DrvRegister();

INIT_AFTER INCLUDE_PLB_BUS

_INIT_ORDER hardWareInterFaceBusInit

_CHILDREN FOLDER_DRIVERS

}

CDF文件使用上述語句來定義一個組件ID。VxWorks中的每個組件必須用 Component關(guān)鍵字來描述,驅(qū)動程序的ID一般以DRV_開始,并在ID中包含該驅(qū)動程序的描述性信息,每一類的驅(qū)動程序?qū)M件ID都有著相同的命名習慣。設(shè)備驅(qū)動程序組件標準的命名習慣應該是DRV_CLASS_NAME。組件名字必須是唯一的,而DRV_CLASS_NAME中的 DRV和CLASS都有可能相同,這就要求NAME必須唯一才行。

2 S698-TARINC429驅(qū)動應用編程

ARINC429是普通 I/O設(shè)備,設(shè)備打開、關(guān)閉通過標準open( )、 close( )函數(shù)完成。數(shù)據(jù)的收、發(fā)通過標準write( )、read( )函數(shù)完成,而通道的配置、選擇等需要通過ioctl()函數(shù)完成。由于S698-T中的429模塊總共有6個通道:4個接收通道、2個發(fā)送通道。為了進行區(qū)分,軟件在進行收、發(fā)操作之前要先進行通道選定,以下分別是調(diào)用ARINC429驅(qū)動完成ARINC429數(shù)據(jù)收、發(fā)操作的一般軟件流程,如圖1、圖2所示。

圖1 ARINC429數(shù)據(jù)發(fā)送流程圖

圖2 ARINC429數(shù)據(jù)接收流程圖

以下示例調(diào)用ARINC429的驅(qū)動,完成ARINC429數(shù)據(jù)的發(fā)送、接收操作。示例需要新建一個VIP工程,新建429test.c文件中輸入的程序代碼略——編者注。

3 S698-TARINC429應用執(zhí)行結(jié)果

首先選擇“wrleon23_sparcleon”BSP包創(chuàng)建一個VIP(VxWorks Image Project)工程。

完成工程的創(chuàng)建之后還需對內(nèi)核進行配置。在Workbench左側(cè)的Project Explorer窗口中點擊創(chuàng)建的工程,再雙擊Kernel Configuration進入到內(nèi)核配置界面。

為了讓編譯的鏡像文件具有ARINC429功能,需添加ARINC429組件,首先查找到組件“LEON2 obt429 VxBus driver”,并將其添加到工程中。

將上節(jié)中編輯好的429test.c文件添加到工程中,最后要修改usrAppInit函數(shù),增加對OBT429AppInit函數(shù)的入口調(diào)用。

編譯整個工程,再通過dsumon調(diào)試器下載VxWorks映像到目標板上運行。

下載運行的步驟如下:

① 確保S698-T開發(fā)板上的DSU口和UART0已連接到PC機;

② 先打開超級終端,打開相應的串口,用于S698-T程序運行時的顯示輸出;

③ 再打開cygwin終端,進入工程目錄,連接dsumon;

④ 將生成的Image文件下載進目標板。

命令描述如下:

$ dsumon -i -u

$ lo VxWorks

$ run

在超級終端上可以觀察到運行VxWorks的運行結(jié)果,如圖3所示。

圖3 VxWorks ARINC429數(shù)據(jù)測試

從程序輸出結(jié)果中可以看出,接收通道1完全接收了發(fā)送通道1發(fā)出的20個幀數(shù)據(jù),前7幀為非0數(shù)據(jù),后13幀為全0;由于選擇的是25位字長模式,接收到的數(shù)據(jù)與發(fā)送數(shù)組中的數(shù)據(jù)存有差異,為(tempbuf[n] & 0x1FFFFFF),實際值與預期值完全相同。

另外還可以在VxWorks Shell中輸入devs和vxBusShow命令來觀察ARINC429硬件驅(qū)動的掛載情況,如圖4所示。

結(jié) 語

針對S698-T處理器內(nèi)部的ARINC429總線模塊,開發(fā)了基于VxWorks6.7的ARINC429驅(qū)動程序,該驅(qū)動程序是標準I/O設(shè)備驅(qū)動,使用方便、處理靈活。本文詳細給出了通過VxWorks VIP工程調(diào)用ARINC429驅(qū)動,完成數(shù)據(jù)收、發(fā)的過程,并給出了相關(guān)參考代碼,以及對應的驗證結(jié)果,可為后續(xù)的應用、開發(fā)工作提供幫助。

圖4 VxWorks ARINC429設(shè)備驅(qū)動信息

[1] 徐惠民.基于VxWorks的嵌入式系統(tǒng)及實驗[M].北京:北京郵電大學出版社,2006.

[2] 孔祥營,柏桂枝.嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado[M].北京:中國電力出版社,2001.

[3] 李慶. 嵌入式系統(tǒng)的實時概念[M].王安生,譯.北京:北京航空航天大學出版社,2004.

[4] 珠海歐比特控制工程股份有限公司.BSP3.0概要設(shè)計報告,2006.

[5] 珠海歐比特控制工程股份有限公司.V8mon使用手冊,2009.

[6] 珠海歐比特控制工程股份有限公司.S698-T芯片用戶手冊,2010.

[7] Wind River wr_workbench_users_guide_3.1.pdf,2014.

參考文獻

[1] 單承贛,單玉峰,姚磊,等.射頻識別原理與應用[M].北京:電子工業(yè)出版社,2008.

[2] Miesen R, Ebelt R, Kirsch F, et al. Where is the Tag?[J]. IEEE Microwave Magazine, 2011, 12(7): S49-S63.

[3] Cory Hekimian-Williams, Brandon Grant, Xiuwen Liu, et al. Accurate Localization of RFID Tags Using Phase Difference[C]// 2010 IEEE International Conference on RFID,2010:89-96.

[4] Wille A, Broll M, Winter S. Phase difference based RFID navigation for medical applications[C]// 2011 IEEE International Conference on RFID, Florida, USA, 2011: 98-105.

[5] 史偉光, 劉開華, 房靜靜,等. 雙頻副載波調(diào)幅的 UHF RFID 定位研究[J]. 哈爾濱工業(yè)大學學報, 2012, 44(3): 81-86.

[6] 丁康, 謝明, 楊志堅. 離散頻譜分析校正理論與技術(shù)[M]. 北京:科學出版社,2008.

任盈之、劉熙(碩士研究生),研究方向為超高頻RFID定位。

(責任編輯:高珍 收稿日期:2013-11-14)

Gong Yonghong

(Zhuhai Orbita Control Engineering Co.,Ltd., Zhuhai 519080,China)

ARINC429 bus is a special aviation bus which is widely applied. This paper takes the S698-T processor as the platform,starting from the bottom of the driver, and then it describes the application and development process for the S698-T processor VxWorks ARINC429 bus driver module. The VxWorks VIP project calls ARINC429 driver and the data collection is completed. The application provides the help for subsequent applications and development work.

VxWorks; ARINC429; driver program; S698-T

TN915

A

迪娜

2013-11-28)

猜你喜歡
嵌入式設(shè)備工程
諧響應分析在設(shè)備減振中的應用
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
500kV輸變電設(shè)備運行維護探討
工程
工程
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 亚洲人成影院在线观看| 三级视频中文字幕| 亚洲欧美日韩高清综合678| 亚洲国产精品日韩欧美一区| 2024av在线无码中文最新| 亚洲欧美日韩天堂| 国产xxxxx免费视频| 午夜a级毛片| 国产精品性| 婷婷综合在线观看丁香| 欧美午夜视频在线| 少妇极品熟妇人妻专区视频| 极品国产一区二区三区| 亚洲AⅤ无码日韩AV无码网站| 亚洲 日韩 激情 无码 中出| 欧洲极品无码一区二区三区| 亚洲嫩模喷白浆| 亚洲 欧美 偷自乱 图片| 无码国产伊人| 四虎永久免费在线| 亚洲男人天堂久久| 国产成人精品在线| www亚洲天堂| 亚洲成人在线网| 一级毛片在线免费看| 九九九精品成人免费视频7| 亚洲无码37.| 欧美性久久久久| 波多野结衣一二三| 欧美不卡在线视频| 亚洲日韩精品综合在线一区二区 | 国产成人资源| 在线综合亚洲欧美网站| 亚洲视屏在线观看| 在线观看国产网址你懂的| 中文字幕在线观看日本| 亚洲丝袜第一页| 久久网欧美| 尤物精品视频一区二区三区| 国产国产人成免费视频77777 | JIZZ亚洲国产| 国产一二三区在线| 国产精品微拍| 制服丝袜国产精品| 国内精品久久九九国产精品| 国产欧美性爱网| 中文字幕无码中文字幕有码在线 | 久久婷婷综合色一区二区| 99精品热视频这里只有精品7| 国产成人91精品| 亚洲三级a| 国产91麻豆视频| 久久综合亚洲色一区二区三区| 人妻熟妇日韩AV在线播放| 97se亚洲综合在线| 日韩在线欧美在线| 精品小视频在线观看| 美女无遮挡被啪啪到高潮免费| 亚洲国产高清精品线久久| 亚洲AⅤ综合在线欧美一区| 免费观看精品视频999| 一级毛片免费观看久| 日韩无码视频专区| 中文字幕亚洲综久久2021| 亚洲日本在线免费观看| 啪啪免费视频一区二区| 国产欧美日韩综合在线第一| 色婷婷色丁香| 一级福利视频| 欧美福利在线| 亚洲一区二区三区国产精品| 黄片一区二区三区| 国产成人精品男人的天堂下载 | 91黄视频在线观看| 97国产在线视频| 欧美有码在线| 福利姬国产精品一区在线| 日韩精品成人在线| 婷婷色婷婷| 欧美h在线观看| 中文字幕在线一区二区在线| 欧美无专区|