<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è) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 片上PowerPC在VxWorks下的UDP千兆網(wǎng)通信

片上PowerPC在VxWorks下的UDP千兆網(wǎng)通信

作者:中國科學(xué)院光電技術(shù)研究所 張峰 任國強 時(shí)間:2008-06-10 來(lái)源:?jiǎn)纹瑱C與嵌入式系統應用 收藏

 ?、扌薷膕ysL ib.c,以顯示正確的信息;

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

 ?、咴O置主機IP地址。

  經(jīng)過(guò)以上修改之后,將新的BSP放在Tornado的安裝目錄Tornado_root\target\config下。根據這個(gè)BSP,在Tornado集成環(huán)境下生成一個(gè)新的工程,然后就可以進(jìn)行一般的嵌入式操作系統開(kāi)發(fā)了。

  EDK中RAM和ROM的地址映射如表1所列。

        

  若為表1所列的工程,則在config.h和Makfile文件中要進(jìn)行如下修改:

       

  sysNet.c中通過(guò)以下語(yǔ)句定義了網(wǎng)絡(luò )的MAC地址,必須根據真實(shí)的MAC地址進(jìn)行修改,如本文的MAC地址:00:0A:35:01:88:25

       

  sysSerial.c對串口進(jìn)行初始化,因為要正確地指定串口ID,sysLib.c中可以顯示鏡像的信息,因此也要進(jìn)行相應的修改,如將

       

  通過(guò)對EDK下牛成的BSP的修改,并在Tornado集成環(huán)境下生成正確的鏡像后,可以將其下載到FPGA中。觀(guān)察串口的輸出是否正確,可以進(jìn)行相應的調試工作,以確定BSP的移植是正確的。

  3 服務(wù)器/客戶(hù)端程序

  對VxWorks BSP進(jìn)行正確的配置和修改后,在useAppInit.c中書(shū)寫(xiě)自己的服務(wù)器端程序。本設計用基于socket的。

  網(wǎng)絡(luò )一般可通過(guò)socket實(shí)現。socket編程均采用客戶(hù)機/服務(wù)器模式,VxWorks提供了標準的BSDsocket調用,支持UDP協(xié)議。UDP協(xié)議即數據傳輸協(xié)議,它允許創(chuàng )建和維護與遠程計算機的連接,使其彼此可以進(jìn)行數據傳輸。過(guò)程如圖2所示。

  服務(wù)器首先調用socket()建立一個(gè)套接字socket,然后調用bind()將套接字與一個(gè)本地網(wǎng)絡(luò )地址(IP地址和端口號)捆綁在一起,以保證客戶(hù)端正確識別。接著(zhù)服務(wù)器再調用listen()使套接字處于被動(dòng)的準備接收狀態(tài),同時(shí)規定它的請求隊列長(cháng)度,隨后調用accept()來(lái)接收客戶(hù)連接。服務(wù)器進(jìn)程隨即進(jìn)入阻塞狀態(tài)??蛻?hù)與服務(wù)器的關(guān)系是不對稱(chēng)的。服務(wù)器先啟動(dòng)。然后在某時(shí)刻客戶(hù)主動(dòng)發(fā)出請求,服務(wù)器被動(dòng)應答。

  客戶(hù)端程序首先調用socket(),這個(gè)函數產(chǎn)生用于與各分系統連接的套接口,并為每個(gè)套接口返回一個(gè)ID號。然后初始化一個(gè)套接口結構體,為其賦上該 ID號以及服務(wù)端的IP地址和端口號,并將其作為函數connect()的參數.調用connect()函數主動(dòng)去連接服務(wù)端。

  當服務(wù)端與客戶(hù)端建立連接之后,就可以發(fā)送(write)和接收(read)數據。部分代碼如下:

       

  客戶(hù)端應用程序在Windows下用VC實(shí)現,代碼略。

  4 實(shí)驗結果

  結合工程實(shí)際開(kāi)發(fā)的順序,分2步對VxWorks下通信進(jìn)行測試:

  第1步,在usrAppInit.c中打印hello the world,若出現圖3所示窗口,則證明VxWorks內核已正確加載,以及BSP移植的正確性。程序跑到用戶(hù)編寫(xiě)的usrAppInit.c。

  第2步,對編寫(xiě)的UDP服務(wù)器/客戶(hù)端進(jìn)行測試,結果如表2所列。

  5 結 論

  由于FPGA中嵌入了處理器及用于通信的Ethernet MAC,這樣,為利用FPGA實(shí)現高速網(wǎng)絡(luò )通信奠定了基礎。本文在VxWorks操作系統下實(shí)現了UDP的通信,實(shí)測速度達到294.68 Mb/s,吞吐量達到近30%。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(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>