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

某火炮總線網絡交換機時間同步軟件的設計與應用

2016-11-21 05:59:21翟二寧
火炮發射與控制學報 2016年3期

張 卓,翟二寧,何 浩

(西北機電工程研究所,陜西 咸陽 712099)

?

某火炮總線網絡交換機時間同步軟件的設計與應用

張 卓,翟二寧,何 浩

(西北機電工程研究所,陜西 咸陽 712099)

設計了一種時間同步軟件,該軟件能夠使某火炮總線網絡系統實現同步控制。它的硬件平臺以X86為核心,配合網絡協議芯片,硬件定時終端及外部接口組成。在其上移植VxWorks實時操作系統,并對VxWorks的啟動、中斷與時鐘管理、存儲與總線管理等進行了詳細論述。在VxWorks開發調試環境Tornado 2.2中首先創建時間同步消息結構體,然后利用UDP套接字實現時間同步消息的組播通信,終端節點根據消息內的時間信息進行同步。該嵌入式軟件應用于某火炮總線網絡交換機,并進行了性能評估,結果表明該軟件滿足系統對時間同步精度的要求。

X86;VxWorks;組播;總線網絡

隨著火炮系統中電子控制單元數量越來越多,功能日益復雜,總線通信數據量不斷增大,要求總線通信數據傳輸具有更高實時性和可靠性。因此在某火炮總線網絡的研制過程中,為保證實時數據的傳輸質量,同時盡量降低系統對專用技術和專用硬件的依賴,總線網絡采用全系統軟同步方式進行實時數據通信。

交換機是總線網絡的數據交換處理中心,也是網絡實時性數據的調度和管理節點。筆者設計的時間同步軟件是交換機內部業務處理板上的嵌入式軟件,接收定時終端發送的20 ms中斷信號,采用基于實時操作系統VxWorks組播通信方式傳輸時間同步消息。

筆者構建了時間同步軟件的硬件平臺。根據具體的目標機硬件環境完成操作系統的移植,在其上利用組播通信技術實現了時間同步消息的傳輸。將時間同步軟件應用于交換機,并從時間同步消息的同步時統精度方面對軟件性能進行了評估。

1 硬件平臺

時間同步軟件的硬件平臺由CPLD(Complex Programmable Logic Devices)定時終端和嵌入式X86計算機模塊組成,通過PC104總線連接,使得硬件平臺體積小,結構緊湊,總線驅動電流小,功耗低。為了縮短開發周期,選取技術成熟的相關模塊。CPLD選用Altera公司的MAX7000S系列產品EPM7128SLC84-15。計算機模塊采用Intel Atom N270處理器,主頻為1.6 GHz,總線頻率533 MHz,并采用Intel 945GSE和ICH7-M橋片,1路82574IT千兆以太網控制器,2路兼容串口控制器,支持1×16 bit PC104總線等[1]。

2 VxWorks的移植與驅動開發

在硬件平臺建立起來之后,需要移植VxWorks搭建軟件應用程序開發平臺。VxWorks是由美國Windriver(風河)公司研制的一個高性能實時操作系統,該操作系統的移植涉及VxWorks板級支持包BSP(Board Support Packet)和設備驅動程序的開發[2]。

如圖1所示,BSP在系統中的層次清楚地展現了其與VxWorks之間的具體關系以及在目標機應用系統中所處的地位。

在VxWorks系統中,BSP簡單描述為介于底層硬件環境和VxWorks之間的一個軟件接口,它的主要功能是系統加電后初始化目標機硬件、初始化操作系統及提供部分硬件的驅動程序。BSP的開發需要理解VxWorks的啟動順序、中斷控制器和時鐘接口以及存儲和總線接口等。

2.1 VxWorks的啟動順序

對于X86體系架構來說,系統冷啟動后首先開始初始化CPU、北橋和南橋。在VxWorks中,對應匯編文件romInis.s的romInit()函數,其功能主要是對處理器、內存、堆棧的初始化,然后調用第1個C函數romStart()完成代碼段以及數據段初始化,調用usrInit(),完成基本硬件(如中斷控制器、串口、時鐘等)和系統內核初始化。同時根據系統中所安裝硬件的實際情況,調用sysHwInit()初始化其他必要的硬件,接下來,調用usrKernelInit()函數初始化內核的必要組件(消息隊列、看門狗、信號量),通過Kernelinit()激活多任務環境,產生根任務usrRoot()。該任務主要功能包括連接系統時鐘、初始化并設置I/O系統、安裝驅動程序、創建設備、執行用戶初始應用程序等,usrRoot()是驅動程序的入口點,用戶編寫的驅動程序一般都掛接在例程 usrRoot()中,最后usrRoot()將啟動用戶的應用入口程序usrAppInit()。至此,系統映像初始化完畢,整個系統開始工作,用戶應用程序也開始執行[3]。整個初始化過程如下圖2所示。

在VxWorks啟動過程設計中,對于采用由引導程序裝載到內存的VxWorks映像,其入口程序是sysInit()。在sysInit()中不需要重新初始化內存,僅僅是關閉中斷,設置堆棧,然后將CPU執行權交給usrInit()。

2.2 中斷控制器及時鐘接口

中斷是CPU和外部設備進行通信的有效方法,同時也是系統定時的基礎。所以首先要實現中斷控制器4個控制接口,即中斷使能、中斷響應、總線中斷響應和產生總線中斷。對于選用的CPU模塊來說,中斷的使能和禁止只需要操作中斷屏蔽寄存器,使能則中斷屏蔽寄存器為1,禁止則置為0。中斷禁止的程序與中斷使能程序類似,只是將對應的中斷屏蔽位設置為0。總線中斷響應和產生總線中斷只需將操作命令按照一定的順序寫入到固定的端口來實現。

時鐘芯片為VxWorks系統操作和調度提供了時間基礎,VxWorks在時鐘中斷上連接了系統時間片通告程序。BSP所需的時鐘接口包括使能和禁止時鐘、獲取和設置時鐘速率、連接時鐘中斷。使能和禁止時鐘是寄存器的操作。設置時鐘速率只需將計算所得值寫入寄存器。時鐘中斷函數sysClkConnect()在usrRoot()中調用,并且將usrClock()接口掛接為每次時鐘中斷到來時需要調用的函數。

2.3 存儲及總線接口

X86體系結構的存儲管理包括段式存儲管理和頁式存儲管理。全局描述表被段式存儲管理所使用。頁目錄和頁表被MMU(Memory Management Unit)所使用。VxWorks使用平坦(flat)段模式。代碼和數據段被映射到整個32位線性地址空間。

在VxWorks中,根據目標機的具體情況對ROM和RAM的空間布局進行配置,主要有ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS等,還包括用戶主流程序的內存基地址、局部總線內存基地址、內存基地址以及內存大小等[4]。

另外還需要提供PCI總線接口,需要實現的接口包括:sysPciInByte(),sysPciInWord(),sysPciOutByte(),sysPciOutWord()。根據PCI總線規范的定義,訪問PCI配置空間的操作是由一系列的端口組合而成,sysPciInByte()和sysPciOutByte()在本質上是一樣的[5]。

此外,為了實現VxWorks的應用,還需要設計如串口、網絡控制器和SCSI控制器等設備驅動程序[6]。

3 時間同步軟件的實現

時間同步軟件可設置硬件定時器,接收它發送的定時信號,周期性向網絡發送時間同步消息,實現全網的軟同步。同時,當總線網絡采用冗余組網方式時,冗余網絡通常具有至少2臺交換機,每個交換機內部都含有1塊業務處理板,其上的時間同步軟件不但要建立用于周期性發送時間同步消息的發送進程,還要建立一個用于感知其他業務處理板存在的時間同步消息接收進程。接收進程一旦接收到來自其他節點發出的時間同步消息,立即對該消息進行解析,若其主機標示符小于本節點的主機標示符,則立即發信號給發送進程,暫停本節點的時間同步消息發送;若接收線程發現連續3個周期沒有收到其他節點發送的時間同步消息,則認定網絡上不存在其他的業務處理板(或認定其發生了故障),則立即發信號給發送進程,恢復本節點的發送過程。時間同步軟件的處理流程圖如圖3所示。

某火炮總線網絡是基于IEEE 802.3和IP技術的通信網絡。在數據鏈路層遵循IEEE 802.3標準規范,在網絡層采用IPv4網絡協議,在傳輸層采用UDP協議,在會話層采用消息報協議。UDP是無連接的傳輸層協議,其結構簡單,只實現了應用程序之間的互相映射。因此在會話層協議中,需要設計時間同步消息進行完善,然后利用組播通信技術實現時間同步消息的發送和接收。

3.1 時間同步消息簡要說明

時間同步消息的結構如圖4所示。該消息的長度為24字節,共包含6個字段。

1)消息頭:該字段為4字節無符號字符型,標識消息的屬性。

2)主機標示符:該字段為4字節無符號整型,記錄發出消息的主機標示符。

3)消息序列號:該字段為4字節無符號整型,記錄消息的序號,當計數值達到232-1后翻轉為0。

4)時戳秒部分:該字段為4字節無符號整型,記錄消息發出時刻的秒部分。該數值起始于1970年1月1日0時0分0秒。

5)時戳納秒部分:該字段為4字節無符號整型,記錄消息發出時刻的秒以下部分,單位為納秒。

6)時間間隔:該字段為4字節無符號整型,記錄本消息與上一消息間的時間間隔,單位為微秒。

根據時間同步消息結構圖,定義時間同步消息結構體和時間戳結構體。

3.2 組播通信的實現

組播是同一數據報對多個IP地址的傳送。組播是IP層的功能,但是應用程序需要通過UDP套接字才能使用該功能[7]。可以調用函數socket()打開套接字。進行組播的IP地址范圍從224.0.0.0到239.255.255.255。這些地址也稱之為D類地址和組播地址。以D類地址作為目的地址的數據報將被傳送到加入到組播地址組中的每個進程。可以調用函數bind()分配一個網絡地址給指定的套接字。VxWorks的一個進程要想組播一個數據報,只需發送到正確的組播地址。進程可以使用任何的UDP常規數據報。可以調用函數setsockopt()配置套接字,同時調用函數mRouteAdd()來設定到組播的地址的路由。VxWorks進程要想接收到組播數據報,必須加入到組播地址組。這可以通過設置正確的套接字選項實現[8],如表1所示。

表1 組播套接字選項

具體實現時間同步消息的發送和接收,需要在程序中創建并激活2個不同優先級的接收和發送任務來實現組播通信,同時基于任務優先級創建并初始化1個二值信號量。

在創建的2個任務中,組播通信定義了2個函數:mcastSend()和mcastRcv()。這些函數使用UDP套接字進行發送和接收組播通信。函數mcastSend()將一個緩存區的內容傳送給指定的組播地址。函數的輸入參數應該包含:組播目的地址、端口號、緩存區指針和緩存區大小。

函數mcastRcv()接收發送到特定組播地址的任何數據報。函數的輸入參數應該包含:數據報發送方地址、組播地址、端口號和從數據報讀出字節數。該函數的返回值是指向包含讀取字節緩存區的指針。

通過調用函數完成基于組播通信UDP套接字的配置和綁定,創建不同優先級的任務完成時間同步消息的發送和接收,從而用組播通信實現時間同步。

4 應用與性能評估

為了在某火炮武器系統總線網絡交換機中部署應用時間同步軟件,設置交換機對組播數據采用泛洪方式處理,即組播數據被轉發到交換機的每個端口上,從而實現總線網絡中每個終端節點都可以接收到時間同步消息。如圖5所示,總線網絡采用周期方式通信時,每個通信周期都是交換機發出的時間同步消息發起的,并且不斷循環。每個通信周期可具體劃分為多個專屬時隙,這些專屬時隙將根據通信需要分配給網絡中的各個終端。終端節點在收到同步消息后,根據消息內包含的時間信息進行同步,然后按照預先安排的時隙分配表,決定在本周期內的具體發送時刻,并設置軟/硬件定時器,在定時器計時到達時傳輸實時數據。

時間同步消息在總線網絡中的傳輸延時是對時間同步軟件性能最主要的評估,反映了總線網絡系統同步時統的精度。

1)存儲轉發時延dSF為

dSF=l/C

(1)

式中:l為數據幀長度;C為鏈路帶寬。

2)MAC層交換時延dSW一般為固定值,通常有

dSW≤5 μs

(2)

3)當采用雙絞線作為傳輸介質時,傳輸時延dWL為

dWL=DTR/vTP

(3)

式中:DTR為收發雙方之間的雙絞線長度,DTR≤400 m;vTP為電信號在雙絞線的傳輸速度,這個值大致為真空光速的2/3,即vTP≈2×108m/s,于是可得

dWL≤2 μs

(4)

4)協議處理時間dpp

在目前主流計算機配置(Intel Core2 2 GHz)下,典型的協議處理時間可控制在20 μs。

dpp≤20 μs

(5)

一個時間同步消息從源節點發出,經過傳輸和交換,最終到達目的節點,這個過程總的時延 為dTOTAL

dTOTAL=dSF+dSW+dWL+2dpp

(6)

時間同步消息數據長度l=24 Byte,對于100 Mbps網絡,可得dTOTAL≤87 μs。

筆者利用網絡抓包工具記錄時間同步消息與上一個消息間的時間間隔,計算統計傳輸延時。每個測試用例運行3次,一次測試時間為3 h,測得的傳輸延時統計數據如表2所示。通過分析發現與理論值基本吻合,滿足火炮總線網絡交換機同步精度要求。

表2 傳輸延時統計數據 μs

5 結束語

為了縮短系統開發時間、減小質量、尺寸和功耗等,筆者選取技術成熟的硬件平臺,結合X86處理器體系設計了一種基于VxWorks組播通信的時間同步軟件。就VxWorks在硬件平臺上的移植和組播通信技術等進行了詳細描述;并將時間同步軟件應用于某火炮武器系統總線網絡交換機并進行性能評估。設計的基于VxWorks組播通信的時間同步軟件可滿足武器系統對同步時統精度的要求,提高了火炮武器系統總線網絡內外信息的共享和交互能力。

References)

[1]LIPPERT Embedded Computers Gmbh.Cool road runner-945GSE technical manual[M].Berlin:Lippert Embedded Computers Gmbh,2009:1-2.

[2]WIND Rinver Systems Inc.VxWorks programmer’s guide[M].Alameda:Wind Rinver Systems Inc,2003:1-5.

[3]WIND Rinver Systems Inc.VxWorks BSP developer’s guide[M].Alameda:Wind Rinver Systems Inc,2003:33- 41.

[4]WIND Rinver Systems Inc.Tonardo 2.2 users guide[M].Alameda:Wind Rinver Systems Inc,2002:10-15.

[5]WIND Rinver Systems Inc.VxWorks network programmer’s guide[M].Alameda:Wind Rinver Systems Inc,2003:22- 27.

[6]李立志,張朝陽,陳文正.實時操作系統VxWorks設備驅動程序的編寫[J].計算機工程,2003,29(4):182- 184.

LI Lizhi,ZHANG Zhaoyang,CHEN Wenzheng.Progrmming of a device driver for VxWorks[J].Computer Engineering,2003,29(4):182-184.(in Chinese)

[7]李金庫,張德運,楊振江,等. Vxworks下組播路由體系研究與實現[J].計算機工程與設計,2005,26(2):299- 301.

LI Jinku,ZHANG Deyun,YANG Zhenjiang,et al.Research and implementation of multicast routing architecture based on VxWorks[J].Computer Engineering and Design,2005,26(2):299-301.(in Chinese)

[8]楊武軍,郭娟.IP網絡技術與應用[M].北京:北京郵電大學出版社,2010:82-100.

YANG Wujun,GUO Juan.IP network technology and application[M].Beijing:Beijing Posts and Telecommunications University Press,2010:82-100.(in chinese)

Design and Application of Bus Network Switch Time Synchronization Software of the Gun

ZHANG Zhuo, ZHAI Erning, HE Hao

(Northwest Institute of Mechanical and Electrical Engineering, Xianyang 712099, Shaanxi, China)

A time synchronization software is designed,which make an artillery bus network system to realize synchronization control.The hardware platform is consist of X86,network protocol chips,hardware timing terminal and external in-terfaces.A real time operating system Vxworks was transplanted on it, the start-up, interrupt and clock management,memory and bus management in VxWorks is depicted as well. Time synchronization message structure is created in the VxWorks development environment Tornado 2.2,the socket is used to implement time synchronization message multicast communication,the terminal nodes are synchronized according to the time information in the message.The software was applied to the bus network switch of an artillery, the performance evaluation is conducted, which indicates this software meets the requirements of the system on time synchronization accuracy.

X86; VxWorks; multicasting; bus network

10.19323/j.issn.1673-6524.2016.03.014

2015-11-30

張卓(1983—),男,碩士,工程師,主要從事火炮武器系統通信技術研究。E-mail:l_dullboy@126.com

TP393

A

1673-6524(2016)03-0065-05

主站蜘蛛池模板: 三级国产在线观看| 国产一在线观看| 亚洲首页国产精品丝袜| 黄片在线永久| 色综合网址| 日韩福利视频导航| 一本久道久久综合多人| 国产亚洲欧美日韩在线观看一区二区| 国产成人综合日韩精品无码首页| 欧美成人精品一级在线观看| 国产天天射| 黄色污网站在线观看| 久久先锋资源| 欧美日韩国产精品va| 亚洲 欧美 日韩综合一区| 日韩欧美国产中文| 亚洲成人高清在线观看| 亚洲丝袜第一页| 国模粉嫩小泬视频在线观看| 欧美日韩精品一区二区在线线| 少妇人妻无码首页| 国产精品真实对白精彩久久| 国内精品小视频在线| 国产成人乱码一区二区三区在线| 制服丝袜国产精品| 成人在线观看一区| 国产在线观看一区精品| 久久国产精品影院| 丝袜国产一区| 国产福利一区在线| 91久久精品国产| 成人午夜精品一级毛片| 亚洲伊人电影| 亚洲国产看片基地久久1024| 色有码无码视频| 国产视频久久久久| 国产无码高清视频不卡| 一级毛片免费播放视频| 天堂岛国av无码免费无禁网站| 深爱婷婷激情网| 91久久夜色精品国产网站 | 国产日本欧美亚洲精品视| 亚洲精品无码AⅤ片青青在线观看| 毛片网站在线播放| 91在线精品麻豆欧美在线| 91口爆吞精国产对白第三集| 国产一二三区在线| 91蜜芽尤物福利在线观看| www.99在线观看| 久久免费看片| 在线观看亚洲成人| 香蕉久久永久视频| 亚洲三级电影在线播放| 欧美视频在线第一页| 亚洲一区网站| 久久国产拍爱| 日本一区二区不卡视频| 人人91人人澡人人妻人人爽| 综合色亚洲| 丁香婷婷久久| 成年人视频一区二区| 国产精品极品美女自在线网站| 久久性视频| 欧亚日韩Av| 国产一区二区色淫影院| 男女精品视频| 91精品网站| 少妇人妻无码首页| 久久免费视频6| 久久国产精品嫖妓| 久久婷婷五月综合色一区二区| 人妻丰满熟妇AV无码区| 亚洲天堂网在线视频| 91成人免费观看| 亚洲Av综合日韩精品久久久| 亚洲精品在线影院| h视频在线播放| 国产小视频a在线观看| 亚洲欧美另类视频| 亚洲日韩AV无码一区二区三区人 | 欧美一级夜夜爽| 97久久人人超碰国产精品|