基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)_第1頁
基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)_第2頁
基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)_第3頁
基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)_第4頁
基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上基于ARM9的嵌入式Linux網絡通信系統(tǒng)設計與實現(xiàn)隨著計算機技術的發(fā)展,嵌入式系統(tǒng)已經成為計算機領域的一個重要組成部分。Internet現(xiàn)已成為社會重要的基礎信息設施之一,是信息流通的重要渠道,如何讓嵌入式設備連接到Internet上,和其他通信系統(tǒng)進行信息交換是當前嵌入式技術領域研究的熱點所在。本文結合實際應用需求,詳細研究實現(xiàn)了一種基于S3C2410平臺和Linux操作系統(tǒng)的嵌入式網絡通信系統(tǒng)。1.嵌入式網絡通信系統(tǒng)總體設計經過大量的資料收集比較,深入地研究分析并結合現(xiàn)有的實驗條件,我們對系統(tǒng)的體系結構、硬件平臺和軟件系統(tǒng)做出了以下選擇:1)目前嵌入式CPU很多

2、,選擇哪款CPU要根據(jù)自己產品的實際需要。一般而言,首先應盡量選擇系統(tǒng)集成度高、外圍電路簡潔的CPU;其次,還應綜合考察CPU的各項性能指標;最后,還應該考慮軟硬件開發(fā)環(huán)境的建立、廠家的貨源以及代理的軟件支持力度。經過比較, 本設計采用三星的S3C2410微處理器。這是一款高性價比、低功耗、高集成度的CPU,基于ARM920T內核,主頻最高為203MHz,專為手持設備和網絡應用而設計,能滿足嵌入式系統(tǒng)中的低成本、低功耗、高性能、小體積的要求。圖1為硬件平臺的總體設計 1 。CPU S3C2410模塊是開發(fā)板的核心部件。S3C2410 在包含ARM920T核的同時,增加了豐富的外圍資源,主要包括

3、1個LCD 控制器,支持STN 和TFT液晶顯示屏; 3個通道UART; 4個通道DMA; 4個具有PWM功能的16位定時/計數(shù)器和1個16位內部定時器, 支持外部時鐘源; 8通道10位ADC,最高速率可達500kB / s;觸摸屏、IIS總線、SD 卡和MMC卡接口;117位通用I/O口和24位外部中斷源。存儲系統(tǒng)包括64MB的NAND Flash存儲器模塊和SDRAM存儲器模塊; Flash用于存放嵌入式操作系統(tǒng)、應用程序和用戶數(shù)據(jù)等,并作嵌入式文件系統(tǒng); SDRAM作為系統(tǒng)運行時的主要區(qū)域,用于存放系統(tǒng)及用戶數(shù)據(jù)。通信模塊包括串口和以太網接口模塊;以太網接口為系統(tǒng)提供以太網接入的物理通道

4、, UART接口則通過RS232可以和宿主機做串口通訊。JTAG調試接口用于系統(tǒng)的嵌入式調試。擴展總線擴展出了系統(tǒng)總線供今后繼續(xù)開發(fā)使用。圖1硬件平臺結構框圖2)網絡通信系統(tǒng)需要一個便宜、成熟并且提供高端嵌入式系統(tǒng)所必須特性的操作系統(tǒng),嵌入式Linux操作系統(tǒng)以價格低廉、功能強大又易于移植而正在被廣泛采用,成為嵌入式操作系統(tǒng)的首選。因此,在軟件體系上采用L inux216版本作為操作系統(tǒng)內核,并使用GNU工具鏈,包括編譯器、匯編器、庫、調試器和相關實用程序等 2 。根據(jù)以上,系統(tǒng)體系結構如圖2所示:圖2系統(tǒng)體系結構2.基于S3C2410的以太網接口電路以太網芯片采用了Cirrus Logic公

5、司生產的低功耗、性能優(yōu)良的16位以太網控制器CS8900A 3 。CS8900A包括片上RAM, 10Base2T傳輸和接受濾波器。該芯片的突出特點是使用靈活,其物理層接口、數(shù)據(jù)傳輸模式和工作模式等都可以根據(jù)需要而動態(tài)調整,通過內部寄存器設置來適應不同的環(huán)境。為了工藝簡潔,采用內部帶有變壓器的RJ45。本系統(tǒng)選用的是中山漢任的HRA。網絡接口硬件電路原理圖如圖3。數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免是由CS8900A自己完成的。信號的發(fā)送和接收端通過RJ45接口接入CS8900A,再傳送給S3C2410,從而組成了以太網信號傳輸?shù)挠布ǖ馈?.嵌入式通信系統(tǒng)軟件設計本文的軟件系統(tǒng)設計采用

6、C/S(客戶機/服務器)模式,以S3C2410平臺作為服務器,以PC作為客戶端。服務器在得到客戶端的請求時將信息通過網絡傳給客戶端。下面討論通信系統(tǒng)軟件的具體設計與實現(xiàn) 4 。3.1 建立宿主機開發(fā)環(huán)境本文以PC為宿主機,帶有Fedora5系統(tǒng),開發(fā)環(huán)境就建立在這個平臺上。對于嵌入式系統(tǒng)的開發(fā),由于沒有足夠的資源在目標板上運行開發(fā)工具和調試工具,所以通常采用交叉編譯調試的方式。本文采用的交叉編譯器為arm2linux2gcc,開發(fā)時使用宿主機上的交叉編譯、匯編及連接工具生成可執(zhí)行的二進制代碼。然后,把可執(zhí)行文件下載到目標機上運行。為了快速方便地下載,采用tftp方式,這就需要宿主機在宿主機上安

7、裝tftp 服務器,并進行配置。3.2 操作系統(tǒng)的移植嵌入式系統(tǒng)的存儲空間往往很有限, 需要把Linux系統(tǒng)根據(jù)實應用需求進行裁剪。對Linux進行裁減需要對L inux系統(tǒng)有完全的了解,如啟動過程、文件系統(tǒng)、目錄結構、系統(tǒng)工具文件等 5 。這一過程需要在空間和功能上加以權衡。其主要包括以下兩部分工作:3.2.1 Linux內核的移植針對系統(tǒng)的硬件,修改Linux2216內核,提供對S3C2410的支持和必要的設備驅動。由于在本系統(tǒng)所采用的Linux216內核中,S3C2410 CPU已經成為一種標準支持,因此關于內核移植部分的工作量就大大減少了,所需要做的就只剩下修改網卡驅動、加入支持Cra

8、mfs文件系統(tǒng)的選項、添加NAND Flash啟動初始化代碼等工作了。由于論文篇幅所限,具體工作請參考相關資料。3.2.2 文件系統(tǒng)的設計為了提供L inux運行所必需的環(huán)境,需提供文件系統(tǒng)。在嵌入式環(huán)境下,內存和外存資源都需要節(jié)約使用。Cramfs不會影響系統(tǒng)讀取文件的速度,而且是一個高度壓縮的文件系統(tǒng),因此非常廣泛應用于嵌入式系統(tǒng)中。本系統(tǒng)采用Cramfs文件系統(tǒng), 包括如下內容: 目錄/dev, /p roc, /bin, / etc, / lib, /usr, / tmp,最基本的應用程序如sh, ls, cp,mv等,最低限度的配置文件如inittab、fstab 等, 設備文件如/

9、dev/mtd 3 , /dev/ console 等。此外,還應包括程序運行所需的函數(shù)庫。由于以上所需文件遠超過1144MB,因此文件系統(tǒng)的構建主要采用busybox和其他必要的工具。3.3Linux環(huán)境下Socket 6網絡通信編程Linux是和網絡密切相關的,其自身也常常被用來支持各種應用的網絡需求。Socket在所有網絡操作系統(tǒng)和網絡應用程序中都是必不可少的,它是網絡通信中應用進程和網絡協(xié)議之間的接口。Socket接口是為方便開發(fā)人員進行TCP / IP程序開發(fā),而為TCP / IP協(xié)議所開發(fā)的一組應用程序接口。當服務器和應用程序需要和其他進程通信時就需創(chuàng)建套接口。套接口地址的格式是一

10、個IP地址和一個端口號,套接口是進程間通信的端點,每個套接口的名字都是惟一的,所以依靠套接口來確定整個Internet域中的一個網絡進程。TCP和UDP是傳輸層協(xié)議,TCP是保證傳輸?shù)拿嫦蜻B接的協(xié)議,而UDP是無連接協(xié)議,不能保證消息傳送到目的地。本設計選擇TCP協(xié)議,運用流式Socket編程技術實現(xiàn)服務器端、客戶端之間的通信,圖4是網絡通信程序流程。服務器端主要用到的函數(shù)有: socket()、bind()、listen( )、accep t ( )等。用ARM2L inux2gcc交叉編譯工具編譯服務器端程序TCPSever. c 生成可執(zhí)行程序TCPSever。再將可執(zhí)行應用程序加入到C

11、ramfs文件系統(tǒng)里,下載到裝有L inux內核的ARM開發(fā)板上。客戶端主要用到的函數(shù)有Socket ( ) , connect ( )。用gcc編譯客戶端程序TCPClient. c生成可執(zhí)行程序TCPClient。3.4網絡通信測試為了驗證ARM嵌入式開發(fā)板上服務器端的通信能力,在PC機上打開minicom環(huán)境,啟動開發(fā)板,裝載在開發(fā)板內的bootloader信息和L inux內核的啟動過程就會顯示在minicom里。待操作系統(tǒng)啟動后,按“Enter”鍵,就進入L inux的命令行模式。在提示符下,用ls命令查看開發(fā)板的文件系統(tǒng),可以看到TCPServer;給開發(fā)板配置IP,在此開發(fā)板的I

12、P地址要和與之通信的客戶端PC的IP地址在同一網段;給該通信分配端口號2000, 運行. /TCPServer2000,如圖5 ( a)所示。在PC機的Linux環(huán)境下打開一終端作為客戶端的測試窗口,進入TCPClient所在的目錄, 執(zhí)行命令. /TCPClient ,即客戶端向服務器請求建立連接,服務器接收到請求并連接成功后則顯示信息“Server get connec2tion from 24”。其中, 24是客戶機的IP地址。客戶端再向服務器發(fā)出測試信息,服務器收到信息后作出判斷處理,將字符串中所有的小寫字母轉變成大寫字母,其他信息不變,然后將處理后的信息再發(fā)送給客戶端。如圖5 ( b

13、)所示。測試結果表明,通信正常,程序反應速度較快,達到了預期的設計目標。4結束語憑借ARM9的強大性能與嵌入式L inux的開放靈活性,本文提出了一套基于S3C2410平臺和嵌入式linux的網絡通信系統(tǒng)的具體設計與實現(xiàn),并給出了實驗結果。實驗結果證明:作為服務器的嵌入式設備可以穩(wěn)定運行,及時向發(fā)出請求的客戶端回復信息。與其他傳輸信號方式(如RS485等)相比,本設計穩(wěn)定,傳輸速度快,符合網絡扁平化趨勢。本設計經過簡單的功能擴展,可廣泛應用于工業(yè)現(xiàn)場的監(jiān)控,也可以與其他系統(tǒng)如門禁系統(tǒng)相結合獲得門開或關時現(xiàn)場的重要數(shù)據(jù),在未來的發(fā)展中必將贏得更廣闊的發(fā)展空間。參考文獻: 1 喬曉丹,張鵬. 一個基于L inux操作系統(tǒng)的嵌入式網關的實現(xiàn) J . 微計算機信息, 2005, 21 (722) : 26228. 2 孫紀坤,張小全. 嵌入式L inux系統(tǒng)開發(fā)技術詳解基于ARMM . 北京:人民郵電出版社, 2006. 3 孫天澤,袁文菊. 嵌入式設計及L inux驅動開發(fā)指南基于ARM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論