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加入嵌入式視覺聯盟
主站蜘蛛池模板: 午夜啪啪网| 四虎精品国产AV二区| 亚洲精品中文字幕无乱码| 小说 亚洲 无码 精品| 区国产精品搜索视频| 国产丝袜啪啪| 波多野结衣AV无码久久一区| 国产精品偷伦视频免费观看国产| 色婷婷视频在线| www.99精品视频在线播放| 精品视频91| 国产肉感大码AV无码| 香蕉综合在线视频91| 91亚洲精品国产自在现线| 风韵丰满熟妇啪啪区老熟熟女| 免费国产无遮挡又黄又爽| 毛片最新网址| 精品自拍视频在线观看| 国产精品主播| 久久青草精品一区二区三区| 亚洲性日韩精品一区二区| 极品私人尤物在线精品首页| 精品福利视频导航| 久久一色本道亚洲| 免费看美女毛片| 亚洲国产欧美中日韩成人综合视频| 亚洲欧美成人在线视频| 福利在线一区| 欧美19综合中文字幕| 呦女精品网站| 国产伦片中文免费观看| 国产无码高清视频不卡| 成人亚洲视频| 老司国产精品视频91| 国产丝袜91| 老司国产精品视频91| 亚洲国产亚洲综合在线尤物| 波多野结衣的av一区二区三区| 日韩精品高清自在线| 国产福利在线观看精品| 亚洲色图欧美激情| 国产96在线 | 国产产在线精品亚洲aavv| 又粗又硬又大又爽免费视频播放| 国产精品主播| 综1合AV在线播放| 亚洲中文字幕无码mv| 亚洲美女高潮久久久久久久| 国产精品主播| 欧美日韩午夜| 亚洲女同一区二区| 精品人妻AV区| 一级不卡毛片| 欧美一区二区啪啪| 欧美日韩国产成人在线观看| 欧美在线综合视频| 亚洲精品午夜无码电影网| 免费国产福利| 日韩麻豆小视频| 国产在线观看精品| 在线观看欧美精品二区| 啪啪啪亚洲无码| 久草美女视频| 很黄的网站在线观看| 在线a视频免费观看| 国产成人区在线观看视频| 老汉色老汉首页a亚洲| 97se亚洲综合在线韩国专区福利| 精品国产免费观看一区| 亚洲国产精品无码久久一线| 亚洲乱码在线播放| 久久久精品久久久久三级| 国产嫩草在线观看| 国产电话自拍伊人| 国产成人综合在线视频| 精品久久综合1区2区3区激情| 亚洲成人在线免费| 亚洲欧洲日产国码无码av喷潮| 成人在线综合| 免费一级毛片完整版在线看| 国产免费a级片| 播五月综合|