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

基于Petalinux的Socket網絡通信系統設計與實現

2012-11-24 02:17:40武傳華路后兵
網絡安全與數據管理 2012年8期
關鍵詞:網絡通信嵌入式工程

楊 謝,武傳華,路后兵,楊 標

(合肥電子工程學院,安徽 合肥230037)

嵌入式系統是為特定目的而構建的一類計算機設備。該設備具有體積小、功耗低、可靠性穩定、高度自動化、響應速度快等特點,特別適合要求實時和多任務的體系[1]。Petalinux是由PetaLogix公司專門為在Xilinx FPGA的MicroBlaze軟核處理器上運行而開發的嵌入式Linux。Petalinux發布的版本中包含定制的Linux2.4/2.6內核原碼、U-boot內核編碼、相關的開發工具以及開發板參考硬件平臺配置,極大地方便了開發人員的使用,縮短了產品的開發周期。

對于如何在嵌入式系統上實現遠程網絡通信這一問題,本文給出了一種基于Xilinx開發板ML402的嵌入式網絡通信系統的設計與實現方案,成功實現了開發板與PC機的實時網絡通信。

1 硬件工程設計

1.1 底層硬件平臺的選取與設計

本設計方案采用Xilinx EDK 10.1在ML402開發板搭建一個最簡化的硬件平臺,結構如圖1所示。

圖中各部件在FPGA內部以IP核的形式構建并連接,系統以帶有32 bit MicroBlaze軟核的FPGA作為控制中心,SysACE用于存放文件系統和應用程序配置文件;INTC用來實現中斷控制;串口可在調試時輸出系統的運行信息;以太網控制器用來實現以太網功能;DDR_SDRAM通過XCL總線與處理器相連,用于對片外存儲器進行訪問[2]。

1.2 軟件平臺的配置

在移植Petalinux之前,必須配置BSP(Board Support Package)。所謂BSP,就是為給定的板子提供特定操作系統支持的代碼。介于主板硬件和操作系統之間,屬于操作系統的一部分,主要目的是為了支持操作系統,使之能夠更好地運行于硬件主板。

Xilinx EDK已經包括相應的BSP產生器,因此,第一步只需要把解壓的Petalinux文件夾下的hardware/edk_user_repository/PetaLogix/bsp/petalinux_v1_00_b文件夾拷貝到EDK文件夾下的swlibsp目錄下進行相應的配置即可。接下來打開已建立的硬件工程,進行軟件平臺配置,點擊Software菜單,啟動Software Platform Setting。系統會彈出軟件平臺的配置窗口,可以看到共有3個可配置項——Software Platform、OS and Libraries和Drivers。右方的窗口為可配置選項的參數。首先對Software Platform進行配置,點擊Software Platform,在窗口右側可以看到可配置參數,包括兩個子窗口,其一是processor parameters,其中包括處理器主頻信息、交叉編譯器等選項。其中,extra compiler flag指定了在生成BSP與庫的過程中,交叉編譯器所用的編譯標志,archiver和compiler分別指定了生成BSP與庫所用的工具鏈,在這里只需保持默認即可。在OS and Library settings子窗口中打開OS的下拉菜單,選擇 Petalinux,版本只有 1.00.b,如果第一步沒有完成,則在點開OS的下拉菜單后,沒有Petalinux選項。

完成上一步之后,選中OS and Library可配置選項,這里主要是針對開發板對μClinux的BSP進行配置,包括Flash與Memory以及輸入輸出調試端口的配置,在這里主要對以下參數進行修改:

最后點擊 OK,退出,基于 Petalinux的 MicroBlaze軟件平臺配置完成。下一步是根據軟件平臺的配置生成針對MicroBlaze處理器的BSP與庫,使Petalinux與開發板的信息交互成為可能。進入EDK的Software菜單,點擊Generate BSP and Libraries,系統會自動生成板級支持包與庫。之后就可以在microblaze_0/libsrc/petalinux_v1_00_b文件夾下生成auto-config.in文件[3]。

1.3 Petalinux操作系統的移植

軟件平臺完成后需要對內核進行配置,嵌入式系統開發一般采用交叉編譯的方法,通過PC機對內核和應用程序進行編譯,具體步驟如下:

(1)將工程所在目錄復制到Petalinux解壓目錄下的~/hardware/user-platforms目錄下。

(2)進入 Petalinux解壓目錄,運行 source./settings.sh命令,設置Petalinux環境變量。

(3)進入~/software/petalinux-dist目錄,運行 petalinuxnew-platform-k 2.6-v Xilinx-p ml402新建用戶平臺;其中-v后綴為FPGA的生產廠商,-p后綴為工程使用的FPGA開發板名稱,-k為配置內核的版本。然后運行make menuconfig命令,進入Vendor/Product Selection選項,選擇相應的平臺,退出并保存。

(4)進入工程所在文件夾,運行petalinux-copy-autoconfig命令,將libgen生成的microblaze_0/libsrc/Kconfig.auto和autoconfig.in轉換成linux格式,并拷貝到當前活躍的platform下(例如 software/linux-2.6.x/arch/Microblaze/platform/ml402)。它是根據在make menuconfig中選擇的vendor/platform來拷貝的。

(5)內核的配置與編譯

搭建的底層硬件平臺的不同決定了系統內核的區別,參考文獻[2]中薛慧敏針對不同情況給出了較為詳細的配置過程,可作為參考,在此不再贅述。

(6)Xmd下載啟動

Xmd是Xilinx EDK提供的調試工具,可以使用該工具對EDK開發的工程進行調試。使用該方法下載image文件,啟動Petalinux后,通過串口超級終端可以看到系統啟動過程。

2 網絡通信程序的開發

Petalinux移植成功后,就可以使用petalinux-new-app命令在其上建立軟件應用工程,進行軟件應用的開發。新建的軟件應用工程放在~/petalinux/software/user-apps。

2.1 軟件應用工程的建立

在petalinux-dist文件夾下輸入命令:petalinux-newapp petaserver,其中petaserver為應用工程名稱。創建成功后,在user-apps文件夾下新建了以工程名稱petaserver為名稱的文件夾,里面包括.C的應用程序、Makefile的編譯規則和readme的幫助文件。

2.2 Socket程序的創建

進入新建的應用工程文件夾,輸入命令:gedit petaserver.c,打開文本編輯器,對.C的應用程序進行編輯。本應用工程主要是作為網絡服務器,接收客戶端傳送的命令,消息經過處理后再回饋給客戶端,主要流程如圖2所示。

圖2 Socket通信流程圖

現行的網絡協議中TCP/IP協議是最通用的一個,因此,本程序也使用該協議實現網絡的互聯[4]。

Socket接口是 TCP/IP網絡的 API,Socket接口定義了許多函數或例程,程序員可以用它們來開發TCP/IP網絡上的應用程序。網絡的 Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket具有一個類似于打開文件的函數調用Socket(),該函數返回一個整型的Socket描述符,隨后的連接建立、數據傳輸等操作都是通過該Socket實現的。常用的Socket類型有兩種:流式Socket(SOCK_STREAM)和數據報式Socket(SOCK_DGRAM)。流式是一種面向連接的Socket,針對于面向連接的、無差錯的、發送先后順序一致的、包長度不限和非重復的TCP服務應用;數據報式Socket是一種無連接的Socket,對應于無連接的 UDP服務應用,主要以獨立的數據報進行網絡傳輸,數據報的最大長度為32 KB,傳輸不保證順序性、可靠性和無重復性,它通常用于單個報文傳輸或可靠性不重要的場合。根據以上特點,本應用選擇流式Socket[1]。

(1)服務器端petaserver.c主要代碼如下:

(2)啟動服務器

程序編寫好后,重新編譯,生成image.bin文件,下載該文件。

打開超級終端,系統啟動后輸入用戶名與密碼,進入petalinux系統執行下列命令:

可以看到服務器端啟動語句輸出:

這時打開PC機客戶端,客戶端使用成都眾山科技有限公司提供的TCP/UDP Socket調試工具 V2.3,點擊TCP Client按鈕,在彈出的窗口中輸入服務器IP地址:192.168.0.10,端口:8000,點擊連接按鈕,可以看到當PC機客戶端向開發板上服務器端發出連接請求時,服務器端通過PC機超級終端輸出:

同時在PC機socket客戶端回顯:Successfully connect;

客戶端向服務器發送hello petalinux;

超級終端顯示服務器端已經接收到客戶端發來的信息,屏幕輸出為:15(接收到的字節長度)和hello petalinux(接收到的內容)。

至此說明客戶端與服務器端完成了網絡的連通,后續就可以接入外圍設備對系統進行進一步的開發與完善了。

本文簡單介紹了基于Petalinux的嵌入式系統的開發與移植過程以及客戶端與服務器端Socket的創建過程,通過在客戶端及服務器端創建Socket實現了PC機與Petalinux操作系統的實時網絡通信,實驗證明Petalinux的穩定性和實時性較好,為接下來在該系統上進行網絡應用程序開發打下了基礎,能夠滿足進一步實驗需求。

[1]歐文盛.ARM嵌入式 Linux應用實例開發[M].北京:中國電力出版社,2008.

[2]薛慧敏,武傳華,路后兵,等.基于 MicroBlaze的 Petalinux嵌入式操作系統移植[J].微計算機信息,2011,27(8):109-110.

[3]薛小剛,葛毅敏.Xilinx ISE9.x FPGA/CPLD設計指南[M].北京:人民郵電出版社,2007.

[4]IT同路人.Linux標準學習教程[M].北京:人民郵電出版社,2008.

猜你喜歡
網絡通信嵌入式工程
海上軍用網絡通信的安全控制技術
基于網絡通信的智能照明系統設計
電子制作(2019年15期)2019-08-27 01:11:48
網絡通信中信息隱藏技術的應用
搭建基于Qt的嵌入式開發平臺
談計算機網絡通信常見問題及技術發展
電子制作(2017年17期)2017-12-18 06:41:06
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
工程
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 国产精品主播| 国产免费羞羞视频| 久久美女精品国产精品亚洲| 日本亚洲最大的色成网站www| 亚洲乱强伦| 日韩激情成人| 囯产av无码片毛片一级| 国产精品福利一区二区久久| 男人天堂伊人网| 久一在线视频| 91久久偷偷做嫩草影院电| 亚洲天堂网视频| 粗大猛烈进出高潮视频无码| 日韩福利在线观看| 日本在线国产| 四虎永久免费在线| 91免费片| 国产网友愉拍精品| 日韩少妇激情一区二区| 香蕉eeww99国产在线观看| 欧美日韩激情| 色精品视频| 亚洲乱码视频| 91精品国产福利| 亚洲成人播放| 国产乱人免费视频| 国产高清不卡| 日韩欧美国产中文| 久久人妻xunleige无码| 72种姿势欧美久久久大黄蕉| 国产在线拍偷自揄观看视频网站| 精品国产美女福到在线直播| 日韩人妻少妇一区二区| 天堂成人av| 91小视频在线观看免费版高清| 2022国产91精品久久久久久| 久久国产黑丝袜视频| 成人小视频在线观看免费| 伊人丁香五月天久久综合| 青青操视频免费观看| 国产一级二级在线观看| 日韩av电影一区二区三区四区 | 久久久久亚洲av成人网人人软件| 亚洲男人的天堂在线| 人妻91无码色偷偷色噜噜噜| 国产精品欧美激情| 欧美亚洲综合免费精品高清在线观看| 无码国内精品人妻少妇蜜桃视频| av尤物免费在线观看| a毛片免费看| 午夜日b视频| 中文字幕在线免费看| 国产午夜一级毛片| 国产免费怡红院视频| 亚洲国产91人成在线| 色综合婷婷| 亚洲a免费| 国产va免费精品观看| 亚洲va视频| 久久五月视频| 91蝌蚪视频在线观看| 无码区日韩专区免费系列| 亚洲福利视频一区二区| 日本一本在线视频| 久久 午夜福利 张柏芝| 久久亚洲精少妇毛片午夜无码| 五月婷婷亚洲综合| 日韩毛片在线视频| 香蕉蕉亚亚洲aav综合| 中文字幕在线观看日本| 久久91精品牛牛| 久久精品丝袜高跟鞋| 毛片在线播放a| 国产精品网曝门免费视频| 国产靠逼视频| 日韩第九页| 久操中文在线| 国产在线麻豆波多野结衣| 国产区网址| 亚洲一区二区无码视频| 日本手机在线视频| 最新国产你懂的在线网址|