<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)的通用網(wǎng)絡(luò )協(xié)議實(shí)驗平臺

基于PCI總線(xiàn)的通用網(wǎng)絡(luò )協(xié)議實(shí)驗平臺

作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:介紹了一種利用以太網(wǎng)專(zhuān)用芯片在Linux操作系統下構建基于PCI總線(xiàn)的通用網(wǎng)絡(luò )協(xié)議實(shí)驗平臺。通過(guò)修改該平臺的軟件部分,可以在實(shí)驗平臺上運行私有網(wǎng)絡(luò )協(xié)議,測試協(xié)議性能,從而避免了針對每一種私有網(wǎng)絡(luò )協(xié)議搭建專(zhuān)門(mén)的實(shí)驗平臺,節約了成本,縮短了開(kāi)發(fā)時(shí)間。

關(guān)鍵詞: Linux 通用網(wǎng)絡(luò )實(shí)驗設備

在網(wǎng)絡(luò )技術(shù)快速發(fā)展的今天,根據用戶(hù)特殊的需求,有時(shí)需要研發(fā)特殊的私有網(wǎng)絡(luò )協(xié)議,以使網(wǎng)絡(luò )的性能得到優(yōu)化。研究新的網(wǎng)絡(luò )協(xié)議,必須進(jìn)行仿真以驗證性能,但是網(wǎng)絡(luò )結構復雜,性能指標多樣,并且不同的協(xié)議需要的具體測試環(huán)境不同,因此很難用純軟件的方式(如NS2、OPNET)給出網(wǎng)絡(luò )協(xié)議運行性能的有效描述。另一方面,如果針對每一種網(wǎng)絡(luò )協(xié)議搭建專(zhuān)門(mén)的測試平臺,則需要大量的人力、經(jīng)費和時(shí)間。而采用中硬件相結合的方法搭建一種通用網(wǎng)絡(luò )協(xié)議實(shí)驗平臺,既能很好地測試出整個(gè)設備的性能,又能大幅度節約開(kāi)發(fā)成本,縮短開(kāi)發(fā)時(shí)間,是一種切實(shí)可行的方法。

為此,本文提出一種通用網(wǎng)絡(luò )協(xié)議實(shí)驗平臺的軟硬件設計方案,并詳細介紹該平臺的中硬件設計方法。

本文引用地址:http://dyxdggzs.com/article/201706/348616.htm

1 系統設計的思想

該網(wǎng)絡(luò )實(shí)驗平臺設計的目的是:針對不同的私有網(wǎng)絡(luò )協(xié)議,開(kāi)發(fā)者可以根據協(xié)議標準有針對性地修改網(wǎng)絡(luò )層和傳輸層的程序代碼,然后通過(guò)本系統測試其協(xié)議的性能。所以,該系統應該是一個(gè)與協(xié)議無(wú)關(guān)且可程控的數據傳輸通道。數據包經(jīng)過(guò)系統傳輸后,更多的工作由傳輸層、網(wǎng)絡(luò )層和上層應用程序完成。該系統的整體框架結構如圖1所示。

為了保證實(shí)驗平臺的通用性可操作性,采用PC機和與PCI總線(xiàn)接口的網(wǎng)絡(luò )設備卡(以下簡(jiǎn)稱(chēng)PCI接口卡)組建該平臺。

近年來(lái),Linux操作系統獲得了突飛猛進(jìn)的發(fā)展,它強大的功能、良好的界面、高效率以及全開(kāi)放的特性使其具有很強的吸引力?;谝陨峡紤],在PC機中采用Linux操作系統。按Linux操作系統的設計標準,私有網(wǎng)絡(luò )協(xié)議軟件需要包含傳輸層代碼、網(wǎng)絡(luò )層代碼以及與設備相關(guān)的驅動(dòng)程序,并運行在系統“核心態(tài)”中。在本實(shí)驗平臺中,不需要用戶(hù)關(guān)心驅動(dòng)程序的設計,但允許將網(wǎng)絡(luò )層和傳輸層代碼運行在Linux“用戶(hù)態(tài)”中。

PCI接口卡是基于PCI總線(xiàn)的,它通過(guò)合理選擇接口芯片屏蔽PCI總線(xiàn)協(xié)議的多余功能,并使用FPGA芯片把上層傳輸過(guò)來(lái)的數據包進(jìn)行相應的處理(詳見(jiàn)第2節),然后傳遞到物理層設備。

2 實(shí)驗平臺的硬件設計

2.1 PCI接口卡結構

PIC接口卡由PCI總線(xiàn)接口芯片、數據處理模塊FPGA、數據緩存模塊RAM和有線(xiàn)傳輸驅動(dòng)模塊LVDS(Low Voltage Differential Signaling Driver)等四部分組成,模塊間的數據傳輸如圖2所示。

2.2 芯片的選擇

Winbond公司以太網(wǎng)控制芯片W89C840AF支持高達100Mbps的雙向數據傳輸,該芯片不但具有良好的PCI總線(xiàn)接口設計,而且還有一整套的網(wǎng)絡(luò )數據傳輸機制,技術(shù)成熟。所以在此選用W89C840AF,并借用該芯片的網(wǎng)絡(luò )數據傳輸機制,通過(guò)對芯片合理配置,實(shí)現一條從驅動(dòng)程序到物理層設備的透明數據傳輸通道,來(lái)滿(mǎn)足設備要求。

FPGA芯片只要能夠提供足夠多的I/O口和內部硬件資源即可。RAM是為了滿(mǎn)足不同網(wǎng)絡(luò )協(xié)議以及算法對存儲器的需要而設置的,對于不同的私有網(wǎng)絡(luò )協(xié)議,根據實(shí)際需要選用適當容量的RAM即可,沒(méi)有很荷刻的要求。本系統中FPGA芯片選用ACEX1K50TC144,RAM芯片選用CY7C006AC_PLCC,主要考慮的是芯片的速率高、使用簡(jiǎn)單并且價(jià)格低廉。

有線(xiàn)傳輸信號驅動(dòng)模塊選用LVDS芯片對(ds90c401,ds90c402),該芯片對的優(yōu)點(diǎn)是速率高(155Mbps串行數據傳輸)、傳輸距離遠、靈敏度高、功耗小。

2.3 PCI接口卡的功能

PCI總線(xiàn)接口芯片(W89C840AF)把從PCI總線(xiàn)上傳輸過(guò)來(lái)的數據封裝成“以太幀”的格式,傳遞給FPGA(RAM可以對傳輸的數據進(jìn)行緩沖),FPGA去掉前8byte的“以太幀頭”從而獲得數據包。然后根據不同網(wǎng)絡(luò )協(xié)議的數據包格式,在FPGA中靈活地設備相應的邏輯功能。如作者目前在研的衛星ATM網(wǎng)絡(luò )實(shí)驗系統,定義了一種私有的ATM協(xié)議,數據處理單元將完成以下任務(wù):識別信元頭,按優(yōu)先級對信元進(jìn)行排隊、存儲、打包并轉發(fā)等。

FPGA要完成以上功能,其內部模塊需包括以下幾個(gè)模塊:“數據接口”、“控制接口”、“命令執行單元”、“實(shí)驗網(wǎng)物理層訪(fǎng)問(wèn)控制單元”和“信道模擬單元”,如圖3所示。

FPGA把打包后的串行數據傳向LVDS,信號經(jīng)過(guò)LVDS驅動(dòng)后傳到接收方。

在接收方,數據的處理與此相反,不再多述。

2.4 W89C840AF與FPGA之間的接口設計

在PCI接口卡電路板中,芯片之間的接口設計有三部分:FPGA與W89C840AF之間的接口;FPGA與RAM之間的接口;FPGA與LVDS之間的接口。后面兩個(gè)接口比較簡(jiǎn)單,所以下面主要介紹FPGA與W89C840AF之間的接口設計。

W89C840AF與FPGA之間的數據接口如圖4所示。MTXCLK和MRXCLK分別是發(fā)送數據和接收數據的參考時(shí)鐘,必須設置為25MHz。MTXEN和MRXDV的數據幀傳輸的指示信號,TMXD[3:0]和MRXD[3:0]為4bit寬的數據傳輸接口。

W89C840AF芯片與FPGA之間除了傳輸數據外,還需要交換控制信息。由于W89C840AF芯片I/O接口有限,可以供暖和W89C840AF芯片的EECK、EEDI、EEDO三條控制線(xiàn)與FPGA交換控制信息。這里構建一個(gè)類(lèi)似I2C串行總線(xiàn)協(xié)議的控制總線(xiàn),其結構和工作時(shí)序如圖5所示。

3 實(shí)驗平臺的軟件設計

為了實(shí)現從處于“用戶(hù)態(tài)”的應用程序到處于“核心態(tài)”的驅動(dòng)程序間的雙向數據傳輸通道,按照Linux操作系統的網(wǎng)絡(luò )相關(guān)代碼的劃分規則,實(shí)驗網(wǎng)絡(luò )結構中用戶(hù)層以下的代碼需要嵌入到Linux操作系統的核心代碼樹(shù)中,經(jīng)過(guò)對內核的重新編譯,運行在Linux操作系統的“核心態(tài)”,這樣做比較復雜。鑒于以上原因,在本設計中采用了以下處理方法:考慮到“用戶(hù)態(tài)”內部所有軟件模塊的通信比較簡(jiǎn)單,通過(guò)調用UDP/IP協(xié)議的socket,在下層利用UDP/IP數據包拆解/封裝程序,構造出一個(gè)如圖6所示的數據傳輸通道。在這里,把“透明通道”定義為“過(guò)渡層”。

使用UDP/IP協(xié)議會(huì )涉及到Linux操作系統處理IP協(xié)議的相關(guān)內容,特別需要注意以下三個(gè)方面:(1)去掉系統中所有其它網(wǎng)絡(luò )硬件設備,關(guān)閉所有Linux操作系統的網(wǎng)絡(luò )服務(wù),關(guān)閉Linux操作系統防火墻;(2)設備本設備的IP地址為192.168.0.1(實(shí)驗專(zhuān)用IP地址),綁定實(shí)驗網(wǎng)絡(luò )設備為192.168.0.X子網(wǎng)網(wǎng)關(guān),更改“/etc/network”文件設置為“可以轉發(fā)IP包”;(3)調用一個(gè)IP Socket發(fā)送數據,在特定端口上監聽(tīng)數據包的到達。

3.1 “過(guò)渡層”的設計

對于上層傳遞過(guò)來(lái)的數據,“過(guò)渡層”要完成的任務(wù)是:去掉數據包前面的以太網(wǎng)幀頭、IP數據包頭、UDP數據包頭,從而還原出原始數據包,然后傳遞給驅動(dòng)部分。反之,下層傳遞過(guò)來(lái)的數據包經(jīng)過(guò)相反的數據處理后向上層傳遞。

3.2 驅動(dòng)程序的設計

由于W89C840AF是以太網(wǎng)控制芯片,因此可以把PCI接口卡看作網(wǎng)絡(luò )設備。對于網(wǎng)絡(luò )設備,Linux操作系統中有一套標準的驅動(dòng)程序設計方法,所以在這里僅介紹驅動(dòng)程序設計中的幾個(gè)值得注意的事項。主要有:(1)的探測和注冊函數;(2)W89C840AF芯片的配置;(3)網(wǎng)絡(luò )設備基本功能函數組。

探測和注冊函數可以建立網(wǎng)絡(luò )設備對象,同時(shí)注冊網(wǎng)絡(luò )設備基本功能函數組,并參考W89C840AF芯片數據傳輸數據的說(shuō)明賦予設備執行“DMA”能力。

關(guān)于W89C840AF芯片的配置,主要是C18/CNCR寄存器的配置。除了打開(kāi)“傳輸允許”、“接收允許”、“全雙工模式”和“100Mbps傳輸速率模式”等選項外,還要打開(kāi)“Accept Error Packet”、“Accept Runt Packet”、“Accept Broadcast Packet”、“Accept Multicast Packet”和“Accept All Physical Packet”等選項,從而屏蔽所有與以太網(wǎng)協(xié)議相關(guān)的功能。

網(wǎng)絡(luò )設備基本功能函數組的核心是“發(fā)送”、“接收”和“中斷響應”這三個(gè)基本函數。“發(fā)送函數”將發(fā)送的數據存入W89C840AF芯片的內存空間,然后寫(xiě)C04/CTSD寄存器,請求芯片發(fā)送數據。W89C840AF芯片將接收到的數據包傳遞到系統內存后就會(huì )觸發(fā)中斷,中斷處理函數響應中斷并調用接收函數,將數據包和相應的參數向系統的上層傳遞。



關(guān)鍵詞: PCI設備

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>