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

基于1553B總線的IP網絡設計與實現

2011-01-23 02:36:42王若龍張善從
計算機工程與設計 2011年2期
關鍵詞:設備

王若龍, 張善從

(1.中國科學院光電研究院,北京100190;2.中國科學院研究生院,北京100049)

0 引 言

MIL-STD-1553B總線是在20世紀70年代末為適應飛機的發展由美國提出的飛機內部電子系統連網標準。它是一種規定了“時分制命令/響應式的多路數據傳輸總線”網絡的硬件和軟件的技術要求,作為一種理想的實時通信總線,MILSTD-1553B總線具有1Mbps的傳輸速度,由總線控制器(BC)進行控制和管理總線上所有終端的數據傳輸。

1553B總線具有較高的可靠性和靈活性,廣泛應用于軍事、航空航天系統,比如飛機、軍艦、衛星以及國際空間站等。隨著我國通信衛星,深空探測和載人航天等項目的開展,1553B總線技術在國內航天領域的應用也日益廣泛。航天產品的地檢設備往往需要具有1553B總線數據訪問功能。為了方便數據的傳輸和共享,一般會在這些設備上開發基于TCP/IP網絡的應用軟件。同時,對于底層為1553B總線的分層網絡系統而言,實現各層間數據在網絡層的共享十分重要。

本文闡述了在Linux操作系統下,使用1553B協議的PCI接口卡,通過開發網絡設備驅動程序實現基于1553B總線的TCP/IP網絡。該實現方案不僅有效的提高了1553B總線的靈活性和可擴展性,而且使得1553B總線終端可以與以太網的網絡結點進行數據通信。

1 1553 B接口卡的硬件設計

1.1 硬件結構

PCI總線是當今普遍使用在桌面以及更大型計算機系統上的外設總線,而且該總線在Linux內核中得到非常好的支持。該系統使用運行Linux操作系統的個人計算機作為硬件基礎,設計并開發基于PCI總線接口的1553B協議的板卡,不僅可以有效利用操作系統的支持,而且提高了1553B設備的通用性。

1553B總線接口卡主要包括1553B總線通道、1553B總線控制器、控制邏輯單元、PCI總線控制器和PCI配置用存儲芯片等部分。系統框圖如圖1所示。

圖1 1553B協議接口卡系統

1.2 PCI總線接口實現

PCI總線接口采用PLX技術公司的PCI 9052協議芯片,該芯片是一款功能強大、使用靈活的PCI總線控制器接口芯片。PCI 9052兼容PCI v2.1規范,運行于PCI目標設備下,其突發傳輸速率可以達到132Mbps。芯片內部具有用于讀寫的FIFO,并且該芯片支持8、16和32位寬的局部總線,這些特性使得PCI 9052芯片滿足1553B總線的數據通信需求。

1.3 1553總線接口實現

1553B總線接口控制單元采用成熟的1553B協議芯片——DDC公司的BU61580。該芯片完全集成了1553A/B Notice2,芯片可配置成遠程終端(RT)、總線控制器(BC)或者總線監視器(MT),芯片內部包含4K的RAM空間。

該芯片具有以下主要特性:

(1)BC自動重試;

(2)BC消息傳輸時間可編程;

(3)BC消息幀自動重復;

(4)BC可編程響應超時;

(5)RT單消息、雙緩沖、循環緩沖可選的數據緩存;

(6)RT子地址可編程BUSY位。

上述特性說明使用 BU61580芯片可以方便靈活的實現1553B總線協議,主要的功能設置都可以通過軟件實現。該芯片的總線通道可以采用直接耦合和變壓器耦合兩種方式,提高了板卡的兼容性和可靠性。

1.4 接口邏輯實現

接口控制邏輯單元采用Xilinx公司的XC95114芯片實現,該芯片具有充足的邏輯資源和大量寄存器,主要實現總線接口芯片PCI 9052和1553B協議芯片BU 61580之間的握手、片選、配置等邏輯控制。

2 Linux2.6內核及驅動模型

Linux操作系統是在Internet上發展起來的,其在網絡方面具有良好的性能以及豐富的產品和網絡分析工具,而且它還可以方便的將主機配置成具有路由功能。雖然Linux2.4內核仍被廣泛應用,但是自從2003年Linux2.6.0發布至今,2.6版本的內核已經十分穩定,并且相對于2.4版本的內核有相當大的改進。內核在設備驅動方面增加了不少新功能,并且在sysfs文件系統、模塊文件格式、模塊使用計數、模塊加載和卸載函數的定義等做了改進。

本文采用了基于Linux2.6.29內核的Fedora系統作為軟件開發平臺,該版本內核對網絡設備和PCI設備驅動的接口和變量又做了進一步的封裝。

2.1 PCI驅動模型

PCI總線具有的平臺無關特性使得PCI廣泛應用于IA-32、Alpha、PowerPC、SPARC64和 IA-64等眾多系統中。PCI設備在系統的引導階段由引導程序和操作系統自動完成對系統中所有PCI設備的配置,當PCI設備的驅動程序被掛載的時候,其內存和I/O區域已經被映射到了處理器的地址空間。

Linux內核使用兩個重要的結構體描述 PCI總線系統。pci_bus用于描述PCI總線,pci_dev用于描述PCI設備。由于PCI只是一種總線,其作為一種控制功能設備的手段而存在。因此,PCI設備的驅動程序應至少包括PCI驅動和設備驅動兩部分。Linux內核使用pci_driver結構體定義PCI驅動,該結構體中包含PCI設備的加載/刪除、掛起/恢復等接口函數。PCI總線系統的3個主要結構體在Linux內核中的層次結構和相互關系如圖2所示。

pci_bus結構體中的pci_ops類型的指針ops指向該PCI總線所使用的配置空間訪問操作。pci_ops結構體中包含read和write兩種操作可用于讀寫PCI配置空間,根據這兩個函數的參數可以定位到PCI總線上相應的PCI邏輯設備。Linux內核提供了具體的配置空間操作接口 pci_read_config_byte(word/dword)和pci_write_config_byte(word/dword),可以方便的實現配置空間的字節、字和雙字的操作。如果驅動程序還不能獲得pci_dev對象,內核提供了使用pci_bus對象作為參數的另外一對讀寫接口,pci_bus_read_config_byte(word/dword)和pci_bus_write_config_byte(word/dword)。

2.2 網絡設備驅動模型

在Linux系統中,網絡設備不同于字符設備和塊設備,它作為一種獨立的特殊設備而存在,并且系統內核提供了一系列專屬于它們的操作接口。

Linux內核中的網絡設備驅動被設計成完全與協議無關,網絡驅動程序通常不需要分析上層協議的數據,只簡單的把這些數據作為其有效載荷數據進行傳輸。Linux系統對網絡設備驅動進行的分層結構如圖3所示。

(1)協議接口層通過dev_queue_xmit()函數發送網絡層的數據,硬件接收到的數據通過netif_rx()函數傳到網絡層,二者均以sk_buff結構體作為參數,這一層有效地將網絡協議和具體設備進行了隔離。

(2)設備接口層使用net_device結構體描述了具體的網絡設備屬性和各種回調接口,系統將通過該結構體調用驅動功能層提供的各功能函數。

(3)驅動功能層主要完成數據包的發送和接收,比如net_device_ops結構體中的ndo_start_xmit()用于將數據包寫入具體的網絡設備。

(4)設備與媒介層表示了具體的數據傳輸載體,對于Linux系統而言,這個載體既可以是一個物理的網絡設備,也可以是一個在計算機內存中構造的完全虛擬的設備。對于本文來說則包含1553B總線終端和相關的芯片操作接口。

圖2 PCI總線層次結構

圖3 Linux網絡設備驅動程序的分層結構

另外,數據包的接收由硬件中斷引起,在中斷處理函數中讀取硬件接收的數據,并通過dev_alloc_skb()申請一個sk_buff結構體,將數據放入該結構中,通過協議接口層的netif_rx()將其傳遞給上層協議。

3 接口卡驅動程序開發

TCP/IP網絡互連協議屬于對等的開放式網絡協議,它不僅平等對待所有網絡節點,而且不依賴于互連設備的實現細節。MIL-STD-1553B總線屬于高可靠性的仲裁機制總線,所有的數據傳輸服務都由BC(BusController)來控制的,這意味著1553B總線并非對等式的網絡協議,但這并不阻礙在1553B總線上實現IP網絡數據的傳輸。

通過編寫驅動程序使1553B接口卡變成Linux系統下的網絡設備,通過軟件控制1553B協議芯片將網絡層的數據包封裝進1553B消息幀完成傳輸。Linux內核的網絡驅動中具有專門為以太網提供支持的通用接口,以太網接口上使用的tcpdump等網絡分析工具也有助于驅動程序的開發和使用。所以本文采用以太網模型開發1553B接口卡驅動。驅動程序共分為三層,由上到下依次為PCI驅動層,以太網驅動層,硬件接口層。

3.1 PCI驅動程序開發

1553B接口卡通過PCI總線接入計算機系統,因此PCI驅動是實現設計方案的基礎。定義一個pci_driver類型的全局對象,至少初始化對象中的name、id_table、probe和remove成員。在module_init()指定的驅動模塊裝載函數中通過調用pci_register_driver()注冊pci_driver類型的全局對象。系統將會執行對象中的probe指針所設定的探測函數,驅動程序需要在該函數內實現PCI相關的初始化,并注冊以太網設備。

module_exit()指定的模塊刪除函數調用 pci_unregister_driver()對已注冊的pci_driver對象注銷時,系統將會執行pci_driver對象的remove指針所設定的刪除函數,驅動程序需要在該函數內完成刪除模塊前的資源釋放,并注銷以太網設備,PCI層驅動的加載和刪除的控制流如圖4和圖5所示。

圖4 PCI驅動裝載

圖5 PCI驅動刪除

3.2 以太網驅動開發

PCI驅動層使用alloc_etherdev()動態的申請以太網設備對象,并通過register_netdev()函數注冊該設備對象時將引起對象中的ndo_init成員所設定的回調函數的執行,驅動程序需要在該函數內完成網絡驅動層的初始化,比如net_device_ops中的設備操作函數指針、header_ops中的以太網幀頭操作函數指針的賦值,中斷申請和用于互斥訪問的自旋鎖的初始化,以及調用硬件操作接口對硬件芯片的初始化。

當刪除接口卡驅動模塊時,由PCI驅動層調用unregister_netdev()函數注銷以太網設備對象。對象的注銷會引起對象中的ndo_uninit()函數執行,在該函數內釋放中斷等系統資源,并關閉1553B通道,停止芯片工作。

1553B接口卡區別于以太網設備的地方在于數據的發送和接收。1553B協議芯片要求將要發送的數據寫入片內RAM,之后需要等到下一次中斷的發生才能真正完成數據的傳輸,這期間如果寫入新的數據將會造成覆蓋,也就要求數據的發送和接收都在中斷里執行。為了避免數據的覆蓋可以在驅動中維護一個發送隊列鏈表,將來自網絡層的數據包添加到鏈表的尾部,每次中斷從鏈表頭部提取數據寫入芯片。

1553B協議芯片要求以子地址為數據傳輸的一個單位,每個子地址一次最多可以傳輸64Bytes。但是,該實現中并沒有將網絡設備的MTU設定為64B,因為這會大大降低數據傳輸的吞吐率。如果使用n(0

另外,真正的以太網卡只要在初始化時正確填寫了net_device對象的addr和addrlen成員,協議層就會自動使用ARP協議進行IP地址和硬件地址的轉換。但是1553B接口卡的硬件地址不同于以太網,但是仍然使用以太網頭區分總線上不同的終端。驅動中需要包含一張表格用于保存總線上所有終端的RT地址和以太網地址的對應關系,在header_ops的create()函數中查詢該表用于確定數據包的目的RT地址,該函數在數據發送函數ndo_start_xmit()之前被用于建立硬件頭。

圖6 物理幀控制字

3.3 硬件接口開發

數據的發送和接收最終都要通過 1553B協議芯片BU61580實現,BU61580的操作函數向以太網驅動層提供高效可靠的硬件操作接口。操作接口函數除基本的寄存器和RAM區讀寫函數ReadRegister/WriteRegister,ReadRam/WriteRam分為BC和RT兩個部分,分別完成終端的初始化、發送數據的寫入、讀取接收數據、1553B消息定義、幀定義等。

本文的實現中設置BC和RT的中斷模式為幀中斷,RT使用服務請求模式,當有數據傳輸時主動請求獲得總線時間。另外,減小BC的幀傳輸時間可以提高總線數據傳輸的吞吐率,同時又要滿足每條總線消息的最小傳輸時間 (本文設置為1000us)。

4 測試與分析

搭建測試系統如圖7所示,其中Computer是一臺帶有以太網卡的計算機。GateWay是一臺裝有傳統以太網卡和1553B接口卡的計算機,1553B接口卡通過耦合器接入1553B總線,作為 BC同時運行所開發的以太網驅動。而計算機 RT11和RT1都裝有1553B接口卡,都最為1553B總線的遠程終端,并且只在RT11上運行所開發的以太網驅動。

圖7 測試系統框架(靜態分配IP地址)

RT11和GateWay兩臺計算機之間使用ping程序測試,并使用tcpdump抓取網卡數據輸出如圖8所示。GateWay計算機上通過命令#route add–net 192.168.11.0 netmask 255.255.255.0添加一條路由表項,并運行命令#echo 1>/proc/sys/net/ipv4/ip_forward使得來自1553B總線上的數據包可以由GateWay進行路由轉發。RT11和DesktopComputer之間使用ping程序的測試數據如圖9所示。

開發基于TCP/IP的應用程序,對GateWay(server)和RT11(client)進行網絡性能的測試,結果顯示基于1553B總線的IP網絡的平均數據吞吐率為40KBps。增加用于某一方向上數據傳輸的子地址數量,還可以提高該方向的數據吞吐率。

圖8 1553B總線內互連測試

該實現方案的數據吞吐率沒有達到1553B總線的最大數據傳輸速率,主要是因為在中斷處理程序中首先要停止BU61580芯片,然后處理RAM中的所有數據,完成后再啟動芯片繼續工作,并且在每條消息的數據中增加了2個字節的物理幀控制字,消耗了一定的總線時間。

5 結束語

本文介紹了一種基于1553B總線的IP網絡實現方法。在Linux2.6操作系統下,通過對1553B接口卡開發以太網驅動的方法實現了1553B消息對IP數據包的封裝和傳輸。使用該系統可以開發基于以太網的各種應用程序,并且可以實現與以太網等其它網絡的互連。

通過設置收發數據所使用的子地址數量還可以控制網絡的上下行帶寬,甚至可以保留一定數量的子地址用于傳統的1553B消息的傳輸。Linux系統中豐富的網絡數據分析工具均可用于該系統。

[1] 刑秀琴,姚竹亭.基于1553B總線的通信接口及其應用[J].中北大學學報(自然科學版),2007,28(1):91-94.

[2] Ben Truitt R,Edward Sanchez,Michael Garis.Using open networking standards over MIL-STD-1553 networks[J].IEEE A&E Systems Magazine,2005,20(3):29-34.

[3] PCI 9052 data book version 2.1[S].2008.

[4] ACE/Mini-ACE series BC/RT/MT advanced communication engine integrate 1553 terminal user's guide[S].2003.

[5] 邰全親,傅嵐,楊京松.基于以太網的1553B仿真測試設備設計[J].計算機測量與控制,2008,16(11):1559-1560.

[6] 林宇,趙瑋,尚智,等.基于PCI總線的MIL-STD-1553B板卡設計[J].控制工程,2005(5):82-87.

[7] 林生,范冰冰,張奇支,等.計算機網絡與因特網[M].北京:機械工業出版社,2009.

[8] 宋寶華.Linux設備驅動開發祥解[M].北京:人民郵電出版社.2008.

[9] 魏永明,耿岳,鐘書毅.Linux設備驅動程序[M].北京:中國電力出版社,2006.

[10]Sreekrishnan Venkateswaran.Essential Linux device drivers[M].London:Prentice Hall,2008.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 亚洲精品国产成人7777| 精品少妇人妻一区二区| 国产精品蜜臀| 亚洲精品无码抽插日韩| 日韩第一页在线| 在线观看国产小视频| 亚洲天堂网在线观看视频| AV在线天堂进入| 久久a毛片| 91偷拍一区| 久久夜色精品国产嚕嚕亚洲av| 97人妻精品专区久久久久| 98超碰在线观看| 亚洲精品无码在线播放网站| 日本一区二区三区精品AⅤ| 欧美一级高清视频在线播放| 久久无码av一区二区三区| 国产视频只有无码精品| 免费aa毛片| 丁香婷婷综合激情| 在线色国产| 2020国产免费久久精品99| 国产成人1024精品| 玖玖免费视频在线观看 | 欧美中文字幕一区| 精品欧美视频| 亚洲AV无码一二区三区在线播放| 欧美a级在线| 国产女人在线观看| 国产一在线| 亚洲国产精品久久久久秋霞影院| 亚洲男人天堂网址| 精品三级在线| 欧日韩在线不卡视频| 国产一区亚洲一区| 在线99视频| 亚洲精品在线影院| 欧美在线天堂| 丰满人妻久久中文字幕| 在线看片免费人成视久网下载| 国产不卡国语在线| 中文一区二区视频| 国产成人久久综合一区| 91精品国产丝袜| 亚洲天堂日本| 中文无码日韩精品| 国产精品 欧美激情 在线播放| 国产v精品成人免费视频71pao| 女人18毛片一级毛片在线| 自拍欧美亚洲| 思思热精品在线8| 欧美另类第一页| 国产SUV精品一区二区6| 午夜国产精品视频| 99ri精品视频在线观看播放| 99精品影院| 国产成人精品视频一区视频二区| 国产成人精品亚洲77美色| 天天躁夜夜躁狠狠躁躁88| 国产www网站| 国产AV无码专区亚洲精品网站| 中文字幕在线观| 四虎永久在线精品国产免费| 亚洲精品天堂在线观看| 992Tv视频国产精品| 午夜视频日本| www.亚洲国产| 草逼视频国产| 亚洲精品图区| 一本大道香蕉高清久久| 视频一本大道香蕉久在线播放| 超级碰免费视频91| 在线亚洲小视频| 亚洲天堂网在线播放| 99青青青精品视频在线| 国产精品美女免费视频大全| 喷潮白浆直流在线播放| 精品人妻一区二区三区蜜桃AⅤ| 99久久无色码中文字幕| 欧美视频在线不卡| 激情六月丁香婷婷四房播| 国产黄色爱视频|