基于ARM9的嵌入式Linux網(wǎng)絡(luò)通信系統(tǒng)設(shè)計與實現(xiàn)
本文關(guān)鍵詞:基于ARM9的嵌入式Linux網(wǎng)絡(luò)通信系統(tǒng)設(shè)計與實現(xiàn),由筆耕文化傳播整理發(fā)布。
基于ARM9的嵌入式Linux網(wǎng)絡(luò)通信系統(tǒng)設(shè)計與實現(xiàn)
—48—西北大學(xué)學(xué)報(自然科學(xué)版) 第39卷
117位通用I/O口和24位外部中斷源。存儲系統(tǒng)
包括64MB的NANDFlash存儲器模塊和SDRAM存
儲器模塊;Flash用于存放嵌入式操作系統(tǒng)、應(yīng)用程序和用戶數(shù)據(jù)等,并作嵌入式文件系統(tǒng);SDRAM作為系統(tǒng)運行時的主要區(qū)域,用于存放系統(tǒng)及用戶數(shù)據(jù)。通信模塊包括串口和以太網(wǎng)接口模塊;以太網(wǎng)接口為系統(tǒng)提供以太網(wǎng)接入的物理通道,UART接口則通過RS232可以和宿主機做串口通訊。JTAG調(diào)試接口用于系統(tǒng)的嵌入式調(diào)試。擴展總線擴展出了系統(tǒng)總線供今后繼續(xù)開發(fā)使用。
2)網(wǎng)絡(luò)通信系統(tǒng)需要一個便宜、成熟并且提供高端嵌入式系統(tǒng)所必須特性的操作系統(tǒng),嵌入式Linux操作系統(tǒng)以價格低廉、功能強大又易于移植而正在被廣泛采用,成為嵌入式操作系統(tǒng)的首選。因此,在軟件體系上采用Linux216內(nèi)核,并使用GNU2]
根據(jù)以上,2所示
:
器)模式,以S3C2410平臺作為服務(wù)器,以PC作為客戶端。服務(wù)器在得到客戶端的請求時,將信息通過網(wǎng)絡(luò)傳給客戶端。下面討論通信系統(tǒng)軟件的具體
[4]
設(shè)計與實現(xiàn)。3.1 建立宿主機開發(fā)環(huán)境本文以PC為宿主機,帶有Fedora5系統(tǒng),開發(fā)環(huán)境就建立在這個平臺上。對于嵌入式系統(tǒng)的開發(fā),由于沒有足夠的資源在目標板上運行開發(fā)工具和調(diào)試工具,所以通常采用交叉編譯調(diào)試的方式。本文采用的交叉編譯器為arm2linux2gcc,開發(fā)時使用宿主機上的交叉編譯、匯編及連接工具生成可執(zhí)行的二進制代碼。然后,,采用tftp方式,這tftp服務(wù)器,并進行.2 操作系統(tǒng)的移植
嵌入式系統(tǒng)的存儲空間往往很有限,需要把Linux系統(tǒng)根據(jù)實際應(yīng)用需求進行裁剪。對Linux進行裁減需要對Linux系統(tǒng)有完全的了解,如啟動
[5]
過程、文件系統(tǒng)、目錄結(jié)構(gòu)、系統(tǒng)工具文件等。這一過程需要在空間和功能上加以權(quán)衡。其主要包括以下兩部分工作:
3.2.1 Linux內(nèi)核的移植 針對系統(tǒng)的硬件,修改Linux2216內(nèi)核,提供對S3C2410的支持和必要的設(shè)備驅(qū)動。由于在本系統(tǒng)所采用的Linux216內(nèi)核中,S3C2410CPU已經(jīng)成為一種標準支持,因此關(guān)于內(nèi)
圖2 系統(tǒng)體系結(jié)構(gòu)
Fig.2 Thesystemarchitecture
2 基于S3C2410的以太網(wǎng)接口電路
以太網(wǎng)芯片采用了CirrusLogic公司生產(chǎn)的低
[3]
功耗、性能優(yōu)良的16位以太網(wǎng)控制器CS8900A。CS8900A包括片上RAM,10Base2T傳輸和接受濾波器。該芯片的突出特點是使用靈活,其物理層接口、數(shù)據(jù)傳輸模式和工作模式等都可以根據(jù)需要而動態(tài)調(diào)整,通過內(nèi)部寄存器設(shè)置來適應(yīng)不同的環(huán)境。
為了工藝簡潔,采用內(nèi)部帶有變壓器的RJ45。本系統(tǒng)選用的是中山漢任的HR901103A。
網(wǎng)絡(luò)接口硬件電路原理圖如圖3。數(shù)據(jù)的發(fā)送校驗,總線數(shù)據(jù)包的碰撞檢測與避免是由CS8900A自己完成的。信號的發(fā)送和接收端通過RJ45接口接入CS8900A,再傳送給S3C2410,從而組成了以太網(wǎng)信號傳輸?shù)挠布ǖ馈?/p>
核移植部分的工作量就大大減少了,所需要做的就只剩下修改網(wǎng)卡驅(qū)動、加入支持Cramfs文件系統(tǒng)的選項、添加NANDFlash啟動初始化代碼等工作了。由于論文篇幅所限,具體工作請參考相關(guān)資料。3.2.2 文件系統(tǒng)的設(shè)計 為了提供Linux運行所
必需的環(huán)境,需提供文件系統(tǒng)。在嵌入式環(huán)境下,內(nèi)存和外存資源都需要節(jié)約使用。Cramfs不會影響系統(tǒng)讀取文件的速度,而且是一個高度壓縮的文件系統(tǒng),因此非常廣泛應(yīng)用于嵌入式系統(tǒng)中。本系統(tǒng)采用Cramfs文件系統(tǒng),包括如下內(nèi)容:目錄/dev,/proc,/bin,/etc,/lib,/usr,/tmp,最基本的應(yīng)用程序如sh,ls,cp,mv等,最低限度的配置文件如inittab、fstab等,設(shè)備文件如/dev/mtd3,/dev/console等。此外,還應(yīng)包括程序運行所需的函數(shù)庫。由于以上所需文件遠超過1144MB,因此文件系統(tǒng)的構(gòu)建主要采用busybox和其他必要的工具。
[6]
313 Linux環(huán)境下Socket網(wǎng)絡(luò)通信編程
Linux是和網(wǎng)絡(luò)密切相關(guān)的,其自身也常常被用來支持各種應(yīng)用的網(wǎng)絡(luò)需求。Socket在所有網(wǎng)絡(luò)操
3 嵌入式通信系統(tǒng)軟件設(shè)計
本文的軟件系統(tǒng)設(shè)計采用C/S(客戶機/服務(wù)
本文關(guān)鍵詞:基于ARM9的嵌入式Linux網(wǎng)絡(luò)通信系統(tǒng)設(shè)計與實現(xiàn),,由筆耕文化傳播整理發(fā)布。
本文編號:209795
本文鏈接:http://sikaile.net/kejilunwen/wltx/209795.html