S698-T處理器的VxWorksARINC 429總線模塊應用
installDir/vxworks-6.x/target/config/comps/vXWorks
在風河提供的驅動程序中,一個CDF文件可能包含著描述多個設備驅動程序的信息,對于第三方驅動,其CDF文件路徑是在驅動程序目錄下。
40leon2obt429.cdf文件的主要數據結構如下:
Component DRV_LEON2 OBT429{
NAME LEON2 obt429 VxBus driver


CDF文件使用上述語句來定義一個組件ID。VxWorks中的每個組件必須用Component關鍵字來描述,驅動程序的ID一般以DRV_開始,并在ID中包含該驅動程序的描述性信息,每一類的驅動程序對組件ID都有著相同的命名習慣。設備驅動程序組件標準的命名習慣應該是DRV_CLASS_ NAME。組件名字必須是唯一的,而DRV_CLASS_NAME中的DRV和CLASS都有可能相同,這就要求NAME必須唯一才行。
2 8698-TARINC429驅動應用編程
ARINC429是普通I/O設備,設備打開、關閉通過標準open()、close()函數完成。數據的收、發通過標準write()、read()函數完成,而通道的配置、選擇等需要通過ioctl()函數完成。由于S698-T中的429模塊總共有6個通道:4個接收通道、2個發送通道。為了進行區分,軟件在進行收、發操作之前要先進行通道選定,以下分別是調用ARINC429驅動完成ARINC429數據收、發操作的一般軟件流程,如圖1、圖2所示。
以下示例調用ARINC429的驅動,完成ARINC429數據的發送、接收操作。示例需要新建一個VIP工程,新建429test.c文件中輸入的程序代碼略一一編者注。


3 S698-TARINC429應用執行結果
首先選擇“wrleon23_sparcleon”BSP包創建一個VIP(VxWorks Image Project)工程。
完成工程的創建之后還需對內核進行配置。在Workbench左側的Project Explorer窗口中點擊創建的工程,再雙擊Kernel Configuration進入到內核配置界面。
為了讓編譯的鏡像文件具有ARINC429功能,需添加ARINC429組件,首先查找到組件“LEON2 obt429 VxBus driver”,并將其添加到工程中。
將上節中編輯好的429test.c文件添加到工程中,最后要修改usrAppInit函數,增加對OBT429AppInit函數的入口調用。
編譯整個工程,再通過dsumon調試器下載VxWorks映像到目標板上運行。
下載運行的步驟如下:
①確保S698-T開發板上的DSU口和UART0已連接到PC機;
②先打開超級終端,打開相應的串口,用于S698-T程序運行時的顯示輸出;
③再打開cygwin終端,進人工程目錄,連接dsumon;
④將生成的Image文件下載進目標板。
命令描述如下:
$ dsumon-i-u
$ lo VxWorks
$ run
在超級終端上可以觀察到運行VxWorks的運行結果,如圖3所示。

從程序輸出結果中可以看出,接收通道1完全接收了發送通道1發出的20個幀數據,前7幀為非0數據,后13幀為全0;由于選擇的是25位字長模式,接收到的數據與發送數組中的數據存有差異,為(tempbuf[n]0x1FFFFFF),實際值與預期值完全相同。
另外還可以在VxWorks Shell中輸入devs和vxBusShow命令來觀察ARINC429硬件驅動的掛載情況,如圖4所示。

結語
針對S698-T處理器內部的ARINC429總線模塊,開發了基于VxWorks6.7的ARINC429驅動程序,該驅動程序是標準I/O設備驅動,使用方便、處理靈活。本文詳細給出了通過VxWorks VIP工程調用ARINC429驅動,完成數據收、發的過程,并給出了相關參考代碼,以及對應的驗證結果,可為后續的應用、開發工作提供幫助。
評論