(計算機應(yīng)用技術(shù)專業(yè)論文)基于嵌入式linux的無線電臺的設(shè)計與實現(xiàn).pdf_第1頁
(計算機應(yīng)用技術(shù)專業(yè)論文)基于嵌入式linux的無線電臺的設(shè)計與實現(xiàn).pdf_第2頁
(計算機應(yīng)用技術(shù)專業(yè)論文)基于嵌入式linux的無線電臺的設(shè)計與實現(xiàn).pdf_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

南京航空航天大學(xué)碩士學(xué)位論文 i 摘摘 要要 隨著信息科技的不斷發(fā)展,計算機網(wǎng)絡(luò)技術(shù)與無線通信技術(shù)相結(jié)合產(chǎn)生了 無線局域網(wǎng)技術(shù)。無線局域網(wǎng)不依賴于傳統(tǒng)纜線,提供以太網(wǎng)或者令牌網(wǎng)絡(luò)的 功能。它彌補了有線局域網(wǎng)的改線工程量大、線路容易損壞、網(wǎng)中的各節(jié)點不 可移動等缺點,在一些特殊場合有著廣泛的應(yīng)用。 地鐵交通是現(xiàn)代城市基礎(chǔ)設(shè)施建設(shè)的重要組成部分。地鐵運行環(huán)境的特殊 性決定了地鐵上的計算機在高速運行中只能通過無線網(wǎng)絡(luò)與管理計算機進行通 信。地鐵無線通信作為高速運行的地鐵列車與運營管理機構(gòu)之間唯一的通信手 段,擔(dān)負(fù)著提高運營效率、保障行車安全的重要作用。本論文的主要工作是設(shè) 計并實現(xiàn)了一套用于地鐵無線通信系統(tǒng)的嵌入式無線電臺的軟件平臺。 本文首先簡要地介紹了嵌入式 linux 以及無線電臺的項目背景, 其次結(jié)合無 線電臺中嵌入式系統(tǒng)的具體實現(xiàn),給出了其硬件體系結(jié)構(gòu),探討了諸如動態(tài)內(nèi) 存分配、軟中斷處理等關(guān)鍵問題。再次,本文給出了無線電臺系統(tǒng)軟件和應(yīng)用 軟件的實現(xiàn),主要工作包括:基于嵌入式 linux 的無線電臺軟件平臺的構(gòu)建,基 于 s3c2410x 的 cs8900a 和 bgw200 網(wǎng)絡(luò)驅(qū)動程序移植與調(diào)試,基于嵌入式 linux 的用于移動節(jié)點在不同無線網(wǎng)絡(luò)之間無縫切換的用戶程序的具體實現(xiàn)。最 后介紹了無線電臺的移動通信測試過程和結(jié)果。測試結(jié)果表明,無線電臺可以 滿足地鐵列車在高速移動環(huán)境下的通信功能。 關(guān)鍵詞: 嵌入式系統(tǒng), 無線局域網(wǎng), 嵌入式 linux, s3c2410x, bgw200, cs8900a 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) ii abstract along with the constant development of information technology, computer network technology and wireless communications technology integrate wireless lan technology. wireless lan is not dependent on traditional cables, providing ethernet or token network functions. it makes up for shortcomings of wired lan, such as big workload of rebuilding project, easily damaged lines, not mobile network nodes, and has been widely applied in a number of special occasions. the subway is an important component of the modern urban infrastructure construction. the uniqueness of the subway operating environment determines that the computers on the train communicate with the management computer only through wireless network. metro wireless communication as the only means of communication between the high-speed train and the business management, charges with improving operational efficiency, the important role of safety protection. the work of this thesis is to design and implement a software platform of wireless station for a wireless communication system in metro. firstly, this paper briefly describes embedded linux and the background of the wireless station. secondly, according to the realization of the embedded system on wireless station, it explains the hardware architecture, and explores such as dynamic memory allocation, soft interrupt handling and other key issues. thirdly, this paper shows the realization of system software and application software on wireless station. the work include: the construction of software platform for wireless station based on embedded linux, the transplantation and debugging of cs8900a and bgw200s network driver based on s3c2410x, the realization of application software based on embedded linux for mobile nodes seamless switching between different wireless networks. finally, this paper describes the process and results of wireless stations mobile communications test. test results showed that the wireless station satisfies the high-speed train in the mobile communication environment. key words: embedded system, wireless lan, embedded linux, s3c2410x, bgw200, cs8900a 南京航空航天大學(xué)碩士學(xué)位論文 v 圖表清單圖表清單 圖 2-1 地鐵無線通信系統(tǒng)運行示意圖.10 圖 2-2 無線電臺嵌入式系統(tǒng)硬件圖.12 圖 2-3 無線電臺系統(tǒng)啟動流程圖.13 圖 2-4 bootloader 啟動流程圖.14 圖 2-5 無線電臺嵌入式 linux 系統(tǒng)體系結(jié)構(gòu)圖 .15 圖 2-6 網(wǎng)絡(luò)設(shè)備驅(qū)動體系結(jié)構(gòu)圖.16 圖 3-1 進程虛擬內(nèi)存空間示意圖.19 圖 3-2 cs8900a 數(shù)據(jù)包發(fā)送流程圖.29 圖 3-3 cs8900a 數(shù)據(jù)包接收流程圖.30 圖 3-4 基于 napi 的數(shù)據(jù)包接收流程圖.32 圖 3-5 bgw200 驅(qū)動模塊組成結(jié)構(gòu)圖.34 圖 4-1 地鐵無線網(wǎng)絡(luò)組網(wǎng)示意圖.44 圖 5-1 網(wǎng)內(nèi)移動性測試環(huán)境示意圖.50 圖 5-2 網(wǎng)內(nèi)移動流量測試吞吐量分布圖.51 圖 5-3 網(wǎng)內(nèi)移動流量測試吞吐量時刻圖.51 圖 5-4 網(wǎng)間移動性測試環(huán)境示意圖.52 圖 5-5 網(wǎng)間移動流量測試吞吐量分布圖.53 圖 5-6 網(wǎng)間移動流量測試吞吐量時刻圖.53 表 3-1 下半部機制演化歷程表.25 承諾書 本人鄭重聲明:所呈交的學(xué)位論文,是本人在導(dǎo)師指導(dǎo)下,獨立 進行研究工作所取得的成果。 盡我所知, 除文中已經(jīng)注明引用的內(nèi)容 外, 本學(xué)位論文的研究成果不包含任何他人享有著作權(quán)的內(nèi)容。 對本 論文所涉及的研究工作做出貢獻的其他個人和集體, 均已在文中以明 確方式標(biāo)明。 本人授權(quán)南京航空航天大學(xué)可以有權(quán)保留送交論文的復(fù)印件, 允 許論文被查閱和借閱,可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù) 據(jù)庫進行檢索,可以采用影印、縮印或其他復(fù)制手段保存論文。 作者簽名: 日 期: 南京航空航天大學(xué)碩士學(xué)位論文 1 第一章第一章 緒論緒論 1.1 嵌入式系統(tǒng)概述 嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),并且軟硬件可裁剪, 適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機 系統(tǒng)。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的 應(yīng)用程序等四個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。 其中嵌入式操作系統(tǒng)并不是嵌入式系統(tǒng)工作所必須的。在早期的一些嵌入式系 統(tǒng)(例如單片機系統(tǒng))中,由于系統(tǒng)性能比較差,系統(tǒng)資源不足以應(yīng)付操作系統(tǒng) 的消耗,而一些前后臺系統(tǒng)也足以滿足應(yīng)用的需要。所以早期的嵌入式系統(tǒng)中 沒有操作系統(tǒng)的概念,程序員編寫嵌入式程序通常直接面對裸機及裸設(shè)備。在 這種情況下,通常把嵌入式程序分成兩部分,即前臺程序和后臺程序1。前臺程 序通過中斷來處理事件,其結(jié)構(gòu)一般為無限循環(huán);后臺程序則掌管整個嵌入式 系統(tǒng)軟、硬件資源的分配、管理以及任務(wù)的調(diào)度,是一個系統(tǒng)管理調(diào)度程序。 這就是通常所說的前后臺系統(tǒng)。在程序運行時,后臺程序檢查每個任務(wù)是否具 備運行條件,通過一定的調(diào)度算法來完成相應(yīng)的操作。對于實時性要求特別嚴(yán) 格的操作通常由中斷來完成,僅在中斷服務(wù)程序中標(biāo)記事件的發(fā)生,不再做任 何工作就退出中斷,經(jīng)過后臺程序的調(diào)度,轉(zhuǎn)由前臺程序完成事件的處理,這 樣就不會造成在中斷服務(wù)程序中處理費時的事件而影響后續(xù)和其它中斷。由于 這類系統(tǒng)結(jié)構(gòu)簡單,幾乎不需要 ram/rom 的額外開銷,因而在簡單的嵌入式 應(yīng)用中被廣泛使用。 隨著計算機硬件技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)硬件處理能力逐漸增強,嵌 入式操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng) 龐大的應(yīng)用中顯得愈來愈重要。首先,嵌入式實時操作系統(tǒng)提高了系統(tǒng)的可靠 性。在控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)不能崩潰,而且還要有自 愈能力。長期以來的前后臺系統(tǒng)軟件設(shè)計在遇到強干擾時,使得運行的程序產(chǎn) 生異常、錯誤,造成系統(tǒng)崩潰。而實時操作系統(tǒng)管理的系統(tǒng),這種干擾可能只 是引起若干進程中的一個被破壞,可以通過系統(tǒng)運行的系統(tǒng)監(jiān)控進程對其進行 修復(fù)。通常情況下,這個系統(tǒng)監(jiān)視進程用來監(jiān)視各進程運行狀況,遇到異常情 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 2 況時采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如把有問題的任務(wù)清除掉。其次,提 高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實時操作系統(tǒng)環(huán)境下,開發(fā)一個復(fù) 雜的應(yīng)用程序,通??梢詫⒄麄€程序分解為多個任務(wù)模塊。每個任務(wù)模塊的調(diào) 試、 修改幾乎不影響其他模塊。 再次, 嵌入式實時操作系統(tǒng)充分發(fā)揮了 32 位 cpu 的多任務(wù)潛力。32 位 cpu 比 8、16 位 cpu 快,另外它本來是為運行多用戶、 多任務(wù)操作系統(tǒng)而設(shè)計的,特別適于運行多任務(wù)實時系統(tǒng)。32 位 cpu 采用利于 提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計,使其更容易做到不崩潰。例如,cpu 運行狀 態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實時地給出 cpu 的 運行狀態(tài)等,允許用戶在系統(tǒng)設(shè)計中從硬件和軟件兩方面對實時內(nèi)核的運行實 施保護。如果還是采用以前的前后臺方式,則無法發(fā)揮 32 位 cpu 的優(yōu)勢。從某 種意義上說,沒有操作系統(tǒng)的計算機(裸機)是沒有用的。 電子數(shù)字計算機誕生于 1946 年,在其后漫長的歷史進程中,計算機始終是 供養(yǎng)在特殊的機房中,實現(xiàn)數(shù)值計算的大型昂貴設(shè)備。直到 20 世紀(jì) 70 年代, 微處理器的出現(xiàn),計算機才出現(xiàn)了歷史性的變化。以微處理器為核心的微型計 算機以其小型、價廉、高可靠性特點,迅速走出機房;基于高速數(shù)值計算能力 的微型機,表現(xiàn)出的智能化水平引起了控制專業(yè)人士的興趣,要求將微型機嵌 入到一個對象體系中,實現(xiàn)對象體系的智能化控制。例如,將微型計算機經(jīng)電 氣加固、機械加固,并配置各種外圍接口電路,安裝到大型艦船中構(gòu)成自動駕 駛儀或輪機狀態(tài)監(jiān)測系統(tǒng)。這樣一來,計算機便失去了原來的形態(tài)與通用的計 算機功能。為了區(qū)別于原有的通用計算機系統(tǒng),把嵌入到對象體系中,實現(xiàn)對 象體系智能化控制的計算機,稱作嵌入式計算機系統(tǒng)。由于嵌入式計算機系統(tǒng) 要嵌入到對象體系中,實現(xiàn)的是對象的智能化控制,因此,它有著與通用計算 機系統(tǒng)完全不同的技術(shù)要求與技術(shù)發(fā)展方向。 現(xiàn)在嵌入式系統(tǒng)帶來的全球工業(yè)年產(chǎn)值已經(jīng)超過了 1 萬億美元,1997 年來 自美國嵌入式系統(tǒng)大會(embedded system conference)的報告指出,未來 5 年僅 基于嵌入式計算機系統(tǒng)的全數(shù)字電視產(chǎn)品,就將在美國產(chǎn)生一個每年 1500 億美 元的新市場2。嵌入式產(chǎn)品應(yīng)用的需求日益增長,2003 年我國嵌入式系統(tǒng)應(yīng)用 產(chǎn)品經(jīng)濟總量達 1000 億元,其中嵌入式處理器芯片約為 100 億。 南京航空航天大學(xué)碩士學(xué)位論文 3 1.2 常用嵌入式操作系統(tǒng) 1cos cos 是一個微型的實時開源操作系統(tǒng),包括了一個操作系統(tǒng)最基本的一 些特性,如任務(wù)調(diào)度、任務(wù)通信、內(nèi)存管理、中斷管理等。自從 92 年發(fā)布以來, 在世界各地都獲得了廣泛的應(yīng)用。它是一種專門為嵌入式設(shè)備設(shè)計的基于優(yōu)先 級的可搶先的硬實時內(nèi)核, 目前已經(jīng)被移植到 40 多種不同結(jié)構(gòu)的 cpu 上, 運行 在從 8 位到 64 位的各種系統(tǒng)之上。該系統(tǒng)自從 2.51 版本之后,就通過了美國 faa 認(rèn)證,可以運行在諸如航天器等對安全要求極為苛刻的系統(tǒng)之上。 2嵌入式 linux linux 是一套免費使用和自由傳播的類 unix 操作系統(tǒng),開始于芬蘭赫爾辛 基大學(xué)的 linus torvalds 編寫的一個類 unix 操作系統(tǒng)內(nèi)核。它以高效性和靈活 性著稱,具有多任務(wù)、多用戶的能力。在 linux 進入嵌入式系統(tǒng)之后,由于其開 放源代碼、免費使用、運行穩(wěn)定和功能強大等原因占領(lǐng)了大批市場份額。而且 在嵌入式 linux 開源社區(qū)中有大量的免費解決方案和他人成功實踐經(jīng)驗可以共 享,這也大大促進了 linux 在實際嵌入式系統(tǒng)開發(fā)中的使用。 3wince wince(windows ce)是微軟公司為各種嵌入式系統(tǒng)和產(chǎn)品設(shè)計的一種緊密 的、高效的、可升級的操作系統(tǒng)。初始設(shè)備開發(fā)商(oem)或者嵌入式系統(tǒng)開發(fā)商 可以從適合目標(biāo)平臺的操作系統(tǒng)中自行選擇系統(tǒng)模塊和組件。選擇的系統(tǒng)模塊 和組件的多少決定了所需內(nèi)存的大小。它可以工作在 12 種不同的處理器體系結(jié) 構(gòu)、180 余種 cpu 上;同時,wince 是一個實時操作系統(tǒng),可以滿足應(yīng)用程序 所需要的實時性要求。 4vxworks vxworks 操作系統(tǒng)是美國風(fēng)河(windriver)公司于 1983 年設(shè)計開發(fā)的一種嵌 入式實時操作系統(tǒng)(rtos),是嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā) 展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實時操作系統(tǒng)領(lǐng)域 占據(jù)一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應(yīng)用在通信、軍 事、航空、航天等高精尖技術(shù)及實時性要求極高的領(lǐng)域中。 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 4 1.3 基于linux的嵌入式操作系統(tǒng) 1linux 操作系統(tǒng)的起源和發(fā)展 linux 是一個誕生于網(wǎng)絡(luò)、成長于網(wǎng)絡(luò)且成熟于網(wǎng)絡(luò)的操作系統(tǒng)。1991 年, 芬蘭大學(xué)生 linus torvalds 萌發(fā)了開發(fā)一個自由的 unix 操作系統(tǒng)的想法,linus 將自已的作品 linux 通過 internet 發(fā)布。從此一大批電腦黑客、編程人員加入到 開發(fā)過程中來,linux 逐漸成長起來。linux 一開始是要求所有的源碼必須公開, 并且任何人均不得從 linux 交易中獲利。然而這種純粹的自由軟件的理想對于 linux 的普及和發(fā)展是不利的,于是 linux 開始轉(zhuǎn)向 gpl(gnu general public license),成為 gnu(gnus not unix)陣營中的主要一員?,F(xiàn)在,linux 憑借優(yōu) 秀的設(shè)計,不凡的性能,加上 ibm、intel、ca、core、oracle 等國際知 名企業(yè)的大力支持,市場份額逐步擴大,逐漸成為主流操作系統(tǒng)之一。 2嵌入式 linux 的主要特點 嵌入式 linux 幾乎繼承了桌面 linux 的所有特點, 為嵌入式應(yīng)用程序提供了 強大的系統(tǒng)調(diào)用功能支持。 1) 符合 posix 1003.1 標(biāo)準(zhǔn) posix 1003.1 標(biāo)準(zhǔn)定義了一個最小的 unix 操作系統(tǒng)接口,任何操作系統(tǒng)只 有符合這一標(biāo)準(zhǔn),才有可能運行 unix 程序。linux 不是 unix,它是按照 posix 1003.1 標(biāo)準(zhǔn)對 unix 的重新實現(xiàn)。所以 linux 是一個完善的 unix 程序開發(fā)系統(tǒng), 可以兼容通用的 unix 應(yīng)用程序。 2) 支持多用戶訪問和多任務(wù)編程 嵌入式 linux 是一個多用戶操作系統(tǒng), 它允許多個用戶同時訪問系統(tǒng)而不會 造成用戶之間的相互干擾。另外,嵌入式 linux 還支持真正的多用戶編程,一個 用戶可以創(chuàng)建多個進程,并使各個進程協(xié)同工作來完成用戶的需求。 3) 采用頁式存儲管理 頁式存儲管理使嵌入式 linux 能更有效地利用物理存儲空間, 頁面的換入換 出為用戶提供了更大的存儲空間。linux 弱化了段式存儲管理,采用三級頁表機 制管理內(nèi)存。而且根據(jù)不同的體系結(jié)構(gòu) linux 有自己的優(yōu)化方案。比如 linux 在 x86 體系結(jié)構(gòu)上取消了第二級的頁表映射。 4) 支持動態(tài)鏈接 用戶程序的執(zhí)行往往離不開標(biāo)準(zhǔn)庫的支持,一般的系統(tǒng)往往采用靜態(tài)鏈接 南京航空航天大學(xué)碩士學(xué)位論文 5 方式,即在裝配階段就將用戶程序和標(biāo)準(zhǔn)庫鏈接好,這樣,當(dāng)多個進程運行時, 可能會出現(xiàn)庫代碼在內(nèi)存中有多個副本而浪費存儲空間的情況。嵌入式 linux 支持動態(tài)鏈接方式,運行時才進行庫鏈接,如果所需要的庫己被其它進程裝入 內(nèi)存,則不必再裝入,否則才從硬盤中將庫調(diào)入。這樣能保證內(nèi)存中的庫程序 代碼是唯一的。 5) 支持多種文件系統(tǒng) 嵌入式 linux 能支持多種文件系統(tǒng)。目前支持的文件系統(tǒng)有:ext2、ext、 hpfs、msdos、umsdos、proc、nfs、minix、smb、ufs 和 vfat 等。 6) 支持 tcp/ip、slip 和 ppp 在嵌入式 linux 中,用戶可以使用所有的網(wǎng)絡(luò)服務(wù),如網(wǎng)絡(luò)文件系統(tǒng)、遠程 登錄等。slip 和 ppp 能支持串行線上的 tcp/ip 協(xié)議的使用。 除了上述基本特征外,嵌入式 linux 還具有其獨有的特色: 1) 嵌入式 linux 上的大部分程序是自由軟件。這些軟件是在自由軟件基金 會的 gnu 計劃下開發(fā)的。盡管如此,來自世界各地的黑客、程序員,甚至商業(yè) 公司也加入了 linux 軟件開發(fā)的行列。 2) gnu 軟件的支持。 linux 支持大部分 gnu 計劃下的自由軟件, 包括 gnu c 和 gcc 編譯器、gawk、groff 和其他軟件。 3) 嵌入式 linux 支持多種硬件平臺。支持市場上絕大多數(shù)的處理器,很多 生產(chǎn)商都向用戶提供支持它們處理器的 linux 版本。 嵌入式 linux 系統(tǒng)網(wǎng)絡(luò)功能 強大。 不僅僅因為 linux 系統(tǒng)內(nèi)核中緊密地集成了網(wǎng)絡(luò)功能和有大量的網(wǎng)絡(luò)應(yīng)用 程序,更因為嵌入式 linux 系統(tǒng)在超強網(wǎng)絡(luò)需求下表現(xiàn)出的令人驚奇的健壯性。 由于嵌入式 linux 具有的以上特點,適合我們有針對性的進行裁剪和重構(gòu),使之 具有微小內(nèi)核、強實時性等特點。2 1.4 嵌入式linux操作系統(tǒng)分析 1.4.1 嵌入式 linux 內(nèi)核特點 嵌入式 linux 是一個類 unix 系統(tǒng),它具有很多 unix 操作系統(tǒng)的特點: 與它早期模仿的微內(nèi)核操作系統(tǒng) minix 不同, 嵌入式 linux 采用的是宏內(nèi)核 結(jié)構(gòu)。傳統(tǒng)意義下的操作系統(tǒng),其內(nèi)核應(yīng)具備多方面的功能,諸如進程管理、 進程通信、設(shè)備驅(qū)動和文件系統(tǒng)等等。內(nèi)核中提供的這些服務(wù)與使用這些服務(wù) 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 6 的進程之間實際上就形成一種典型的“client/server”的關(guān)系。但是,這些服務(wù)提 供者并不一定要在內(nèi)核中實現(xiàn),它們也可以被設(shè)計并實現(xiàn)在某些“服務(wù)進程” 中,其中必須要留在內(nèi)核中的成分其實只有進程間通信。如果把這些服務(wù)提供 者從內(nèi)核轉(zhuǎn)移到進程的層次上,那么內(nèi)核將會被大大簡化。而各個服務(wù)進程則 可以被單獨的設(shè)計和實現(xiàn)。微內(nèi)核結(jié)構(gòu)雖然可以簡化內(nèi)核,但將這些服務(wù)都放 在進程的層次上,在通過進程間通信提供服務(wù),會增加系統(tǒng)的開銷,降低系統(tǒng) 的執(zhí)行效率。 嵌入式 linux 作為一個通用的系統(tǒng)由于所需的服務(wù)面廣而量大, 所以在其內(nèi) 核中實現(xiàn)了大量的內(nèi)核服務(wù)函數(shù), 它們和各種驅(qū)動函數(shù)一起被 linux 的系統(tǒng)調(diào)用 進行封裝, 再提供給用戶進程使用。 linux 的系統(tǒng)調(diào)用是通過中斷指令“int 0 x80” 實現(xiàn)的。當(dāng)用戶進程使用系統(tǒng)調(diào)用時,進程轉(zhuǎn)而執(zhí)行系統(tǒng)調(diào)用所封裝的內(nèi)核服 務(wù)程序,進程運行狀態(tài)也由用戶態(tài)改為內(nèi)核態(tài)。當(dāng) cpu 執(zhí)行到中斷指令“int 0 x80”時,硬件就做出一系列響應(yīng),其動作與上述的中斷響應(yīng)相同。cpu 穿過 陷阱門3,從用戶空間進入系統(tǒng)空間。相應(yīng)地,進程的上下文從用戶堆棧切換到 系統(tǒng)堆棧。 接著運行內(nèi)核函數(shù) system_call()。 首先, 進一步保存各寄存器的內(nèi)容; 接 著 調(diào) 用 syscall_trace() , 以 系 統(tǒng) 調(diào) 用 號 為 下 標(biāo) 檢 索 系 統(tǒng) 調(diào) 用 入 口 表 sys_call_table,從中找到相應(yīng)的函數(shù);然后轉(zhuǎn)去執(zhí)行該函數(shù),完成具體的服務(wù)。 每個系統(tǒng)調(diào)用都有惟一的號碼,稱作系統(tǒng)調(diào)用號。所有的系統(tǒng)調(diào)用都集中在系 統(tǒng)調(diào)用入口表中統(tǒng)一管理。系統(tǒng)調(diào)用入口表是一個函數(shù)指針數(shù)組,以系統(tǒng)調(diào)用 號為下標(biāo)在該數(shù)組中找到相應(yīng)的函數(shù)指針,進而就能確定用戶使用的是哪一個 系統(tǒng)調(diào)用。不同系統(tǒng)中系統(tǒng)調(diào)用的個數(shù)是不同的,目前 linux 系統(tǒng)中共定義了 221 個系統(tǒng)調(diào)用。另外,系統(tǒng)調(diào)用表中還留有一些余項,可供用戶自行添加。 傳統(tǒng)的 unix 內(nèi)核是“全封閉”的。如果要往內(nèi)核中添加一個設(shè)備驅(qū)動,則 需要編寫相應(yīng)的設(shè)備驅(qū)動程序,并變動內(nèi)核源代碼中的某些數(shù)據(jù)結(jié)構(gòu),再重新 編譯內(nèi)核,并重新引導(dǎo)系統(tǒng)。這樣做可以保證系統(tǒng)的安全性,畢竟一個運行在 系統(tǒng)內(nèi)核態(tài)的驅(qū)動程序如果出現(xiàn)錯誤的話將會導(dǎo)致整個操作系統(tǒng)的崩潰。但這 也妨礙了用戶方便的添加和使用各種外部設(shè)備。 而 linux 既允許把設(shè)備驅(qū)動程序 在編譯時靜態(tài)地鏈接在內(nèi)核中,也允許在內(nèi)核啟動完成后使用 insmod 命令動態(tài) 地加載驅(qū)動程序模塊,還允許在運行狀態(tài)下當(dāng)需要用到某一模塊時由系統(tǒng)自動 安裝。這樣的模塊仍然在內(nèi)核中運行,而不是像在微內(nèi)核中那樣作為單獨的進 程運行,所以運行效率得到了保證。隨著 linux 功能愈加強大,所需要支持的驅(qū) 南京航空航天大學(xué)碩士學(xué)位論文 7 動程序越來越多,linux 內(nèi)核機構(gòu)也越來越復(fù)雜。為了使內(nèi)核的功能可裁減,驅(qū) 動程序的可動態(tài)加載,linux 采用了將內(nèi)核結(jié)構(gòu)模塊化的方法。模塊(module)是 經(jīng)過編譯但尚未鏈接的目標(biāo)代碼(.o)文件。它可以在 linux 內(nèi)核編譯時被選擇進 而編譯到內(nèi)核鏡像中,也可以在系統(tǒng)運行時動態(tài)地插入到內(nèi)核中。 1.4.2 嵌入式 linux 內(nèi)核源代碼結(jié)構(gòu) linux 內(nèi)核源代碼版本使用數(shù)字來表示。linux 內(nèi)核分為穩(wěn)定版本和試驗版 本。任何偶數(shù)內(nèi)核(如 2.4.18)是一個穩(wěn)定的版本,而奇數(shù)內(nèi)核(如 2.1.42)是正在 發(fā)展中的試驗內(nèi)核。linux 內(nèi)核源代碼的組成如下: arch 這個子目錄包含了此核心源代碼所支持的硬件體系結(jié)構(gòu)相關(guān)的核心代 碼。其中的每一個子目錄都對應(yīng)著一種 linux 所支持的體系結(jié)構(gòu),例如 i386 和 arm。 include 這個目錄包括了核心的大多數(shù) include 文件。 另外對于每種支持的體 系結(jié)構(gòu)分別有一個子目錄。 init 此目錄包含核心啟動代碼。 mm 此目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存 管理代碼位于 arch/*/mm 目錄下,如對應(yīng)于 x86 的就是 arch/i386/mm/fault.c。 drivers 系統(tǒng)中所有的設(shè)備驅(qū)動都位于此目錄中。它又進一步劃分成幾類設(shè) 備驅(qū)動,每一種也有對應(yīng)的子目錄,如聲卡的驅(qū)動對應(yīng)于 drivers/sound。 ipc 此目錄包含了核心的進程間通信代碼。 modules 此目錄包含已建好可動態(tài)加載的模塊。 fs linux 支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對應(yīng),如 ext2 文件系統(tǒng)對應(yīng)的就是 ext2 子目錄。 kernel 主要核心代碼。 同時與處理器結(jié)構(gòu)相關(guān)代碼都放在 arch/*/kernel 目錄 下。 net 核心的網(wǎng)絡(luò)部分代碼。里面的每個子目錄對應(yīng)于網(wǎng)絡(luò)的一個方面。 lib 此目錄包含了核心的庫代碼。 與處理器結(jié)構(gòu)相關(guān)庫代碼被放在 arch/*/lib/ 目錄下。 scripts 此目錄包含用于配置核心的腳本文件。 documentation 此目錄是一些文檔,起參考作用。 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 8 1.5 linux 設(shè)備驅(qū)動程序簡介 操作系統(tǒng)的作用之一就是向用戶掩蓋系統(tǒng)硬件的特殊性。linux 管理物理設(shè) 備的代碼不是放在每一個應(yīng)用程序里面,而是放在 linux 核心。這些處理或者管 理軟件叫做設(shè)備驅(qū)動程序。linux 支持三類硬件設(shè)備驅(qū)動類型:字符設(shè)備、塊設(shè) 備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備直接讀寫,沒有緩沖區(qū),例如系統(tǒng)的串行端口。塊設(shè) 備只能按照一個塊(一般是 512 字節(jié)或者 1024 字節(jié))的倍數(shù)進行讀寫。塊設(shè)備 通過緩沖區(qū)訪問,可以隨機存取,就是說,任何塊都可以讀寫而不必考慮它在 設(shè)備的什么地方。 linux 所有種類的設(shè)備驅(qū)動程序都有以下一些特性: kernel code設(shè)備驅(qū)動程序和核心中的其它代碼相似,是內(nèi)核的一部分, 如果發(fā)生錯誤,可能嚴(yán)重?fù)p害系統(tǒng)。一個寫錯的驅(qū)動程序甚至可能摧毀系統(tǒng), 可能破壞文件系統(tǒng),丟失數(shù)據(jù)。 kernel interface設(shè)備驅(qū)動程序必須向 linux 核心或者它所在的子系統(tǒng)提 供一個標(biāo)準(zhǔn)的接口。 例如, 終端驅(qū)動程序向 linux 核心提供了一個文件 i/o 接口, 而 scsi 設(shè)備驅(qū)動程序向 scsi 子系統(tǒng)提供了 scsi 設(shè)備接口, 接著向核心提供了 文件 i/o 和 buffer cache 的接口。 kernel mechanisms和services設(shè)備驅(qū)動程序使用標(biāo)準(zhǔn)的核心服務(wù)例如內(nèi) 存分配、中斷轉(zhuǎn)發(fā)和等待列隊來完成工作。 loadble linux大多數(shù)的設(shè)備驅(qū)動程序可以在需要的時候作為核心模塊 加載,在不需要的時候卸載。這使得核心對于系統(tǒng)資源非常具有適應(yīng)性和效率。 configurable linux設(shè)備驅(qū)動程序可以建立在核心。 哪些設(shè)備建立到核心 在核心編譯的時候是可以配置的。 dynamic在系統(tǒng)啟動,每一個設(shè)備啟動程序初始化的時候它查找它管理 的硬件設(shè)備。如果一個設(shè)備驅(qū)動程序所控制的設(shè)備不存在并沒有關(guān)系。這時這 個設(shè)備驅(qū)動程序是多余的,占用很少的系統(tǒng)內(nèi)存,而不會產(chǎn)生危害。 1.6 課題研究對象和背景 地鐵交通是現(xiàn)代城市基礎(chǔ)設(shè)施建設(shè)的重要組成部分,被人們稱為都市大動 脈,是城市運輸大量乘客的地下隧道或地上高架的電氣化鐵路系統(tǒng)。地鐵無線 南京航空航天大學(xué)碩士學(xué)位論文 9 通信系統(tǒng)是二十世紀(jì)運輸與通信高度結(jié)合的產(chǎn)物。它已成為地鐵運營中不可缺 少的重要組成部分,是提高運輸效率、保證行車安全的重要手段。本課題的研 究對象是為南京地鐵無線通信系統(tǒng)設(shè)計的無線電臺軟件平臺。無線電臺在地鐵 無線通信系統(tǒng)中起到橋梁的作用,將列車上的有線網(wǎng)絡(luò)和列車下的有線網(wǎng)絡(luò)連 接在一起。 本課題以第 14 研究所委托的預(yù)研項目“基于 ieee802.11b 標(biāo)準(zhǔn)的無線電臺 軟件平臺”為背景,研究了如何使用嵌入式 linux 搭建無線通信平臺,重點探討 了網(wǎng)卡驅(qū)動程序移植、數(shù)據(jù)包轉(zhuǎn)發(fā)機制以及上層的通信協(xié)議,實現(xiàn)了一個完善 的基于嵌入式 linux 的無線通信平臺, 同時也提出了一些改進系統(tǒng)網(wǎng)絡(luò)通信性能 的想法并加以試驗。該系統(tǒng)使用的嵌入式 linux 的內(nèi)核版本是 2.4.18。 第一章 緒論。介紹了嵌入式系統(tǒng)、嵌入式 linux 和 linux 設(shè)備驅(qū)動程序。 并介紹了本課題的研究對象和背景。 第二章 基于 s3c2410x 的無線電臺軟硬件體系結(jié)構(gòu)。介紹了無線電臺的軟 硬件體系結(jié)構(gòu)及其工作原理。同時闡述了網(wǎng)絡(luò)設(shè)備驅(qū)動模塊的工作原理和程序 結(jié)構(gòu)。 第三章 網(wǎng)絡(luò)設(shè)備驅(qū)動模塊設(shè)計與實現(xiàn)。本章主要討論了網(wǎng)絡(luò)設(shè)備驅(qū)動模塊 中如何使用內(nèi)核提供的服務(wù)函數(shù)以及有線和無線網(wǎng)絡(luò)設(shè)備驅(qū)動模塊的具體實 現(xiàn)。 第四章 無線站點自動切換實現(xiàn)。這一章介紹了地鐵無線網(wǎng)絡(luò)的組網(wǎng)形式并 闡述了地鐵列車高速移動中無線網(wǎng)絡(luò)的切換實現(xiàn)。 第五章 無線站點和無線接入點通信測試。這一章分別在網(wǎng)內(nèi)切換和網(wǎng)間切 換的情況下對網(wǎng)絡(luò)通信性能進行了測試,并得出測試結(jié)論。 第六章 結(jié)束語。對目前本課題所做工作的總結(jié)和提出下一步需要做的工 作。 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 10 第二章第二章 基于基于 s3c2410x 的無線電臺軟硬件體系結(jié)構(gòu)的無線電臺軟硬件體系結(jié)構(gòu) 2.1 無線電臺工作原理 隨著經(jīng)濟的不斷發(fā)展,城市化進程的加快,地鐵交通規(guī)模不斷拓展,已成 為現(xiàn)代城市基礎(chǔ)設(shè)施建設(shè)的重要基礎(chǔ)工程,被人們稱為都市大動脈。地鐵無線 通信系統(tǒng)是二十世紀(jì)運輸與通信高度結(jié)合的產(chǎn)物。地鐵無線通信作為高速運行 的地鐵列車與車下運營管理機構(gòu)之間唯一的通信手段,擔(dān)負(fù)著提高運營效率、 保障行車安全的重要作用,是地鐵運營中不可缺少的組成部分。課題所研究的 無線電臺是地鐵無線通信系統(tǒng)中的重要組成部分。 無線電臺分別連接著有線局域網(wǎng)和無線局域網(wǎng),起到了轉(zhuǎn)發(fā)數(shù)據(jù)包的作用。 由于有線局域網(wǎng)和無線局域網(wǎng)使用不同的局域網(wǎng)協(xié)議,分別是 802.3 和 802.11, 所以無線電臺在接受數(shù)據(jù)包的數(shù)據(jù)鏈路層處理中,需要將接收到的局域網(wǎng)數(shù)據(jù) 包進行解包再按目的計算機所在局域網(wǎng)類型重新打包并路由后轉(zhuǎn)發(fā)。嵌入式 linux 在其內(nèi)核模塊中提供了一套比較完整的轉(zhuǎn)發(fā)機制。 無線電臺在地鐵無線通信系統(tǒng)中的運行環(huán)境如下圖所示: 圖 2-1 地鐵無線通信系統(tǒng)運行示意圖 南京航空航天大學(xué)碩士學(xué)位論文 11 無線電臺的用途有兩種。一種布置在地鐵隧道或者高架兩側(cè),即圖中所示 無線接入點ap,擔(dān)負(fù)著連接無線局域網(wǎng)和外部網(wǎng)絡(luò)的功能。另一種稱為無線站 點sta,被布置在地鐵列車上,與隧道或者高架旁的ap構(gòu)成無線網(wǎng)絡(luò)。 sta在高速行進中不斷探測能接收到信號的各個ap的信號強度,并根據(jù)設(shè) 定的閾值連接滿足條件的ap,進行通信。地鐵列車上的sta在運行中將不斷切 換ap。ap和sta所組成的無線網(wǎng)絡(luò)將sta所在的地鐵上的有線網(wǎng)絡(luò)和ap所在的 有線網(wǎng)絡(luò)連接在一起。一個sta在不同的ap之間高速切換,同時需要保證ap和 sta所在的兩個有線網(wǎng)絡(luò)中的計算機之間的上層通信不被中斷。 無線局域網(wǎng)工作模式有兩種,infrastructure 和 ad-hoc。infrastructure 是指通 過 accesspoint4(accesspoint 也被稱為無線接入點,由于本文中無線接入點 ap 有特殊的含義,為避免概念混亂本文中只使用 accesspoint 來稱呼該設(shè)備)互連 的工作模式,也就是可以把 accesspoint 看作是傳統(tǒng)局域網(wǎng)中的 hub(集線器) 。 ad-hoc 是一種比較特殊的工作模式,它通過把一組需要互相通信的無線網(wǎng)卡的 essid 設(shè)為相同值來構(gòu)建網(wǎng)絡(luò),這樣就可以不必使用 accesspoint,構(gòu)成一種特殊 的無線網(wǎng)絡(luò)應(yīng)用模式。由于所使用的無線網(wǎng)卡 bgw200 硬件限制的原因,無線 電臺采用 ad-hoc 工作模式構(gòu)建無線局域網(wǎng) 2.2 無線電臺硬件體系結(jié)構(gòu) 無線電臺嵌入式系統(tǒng)由數(shù)據(jù)處理單元(arm9)、接口轉(zhuǎn)換單元、片外存儲器 (sdram)和 arm 專用程序存儲器(nor flash, nand flash)組成, 其硬件結(jié)構(gòu)如下 圖所示。該系統(tǒng)采用 samsung 公司的處理器 s3c2410x。該處理器內(nèi)部集成了 arm 公司 arm920t 處理器核的 32 位微控制器,資源豐富,帶獨立的 16kb 的 指令 cache 和 16kb 數(shù)據(jù) cache、lcd 控制器、ram 控制器、nand 閃存控制 器、 3 路 uart、 4 路 dma、 4 路帶 pwm 的 timer、 并行 i/o 口、 8 路 10 位 adc、 touch screen 接口、i2c 接口、i2s 接口、2 個 usb 接口控制器、2 路 spi,主頻 最高可達 203mhz。擴展的外圍設(shè)備主要有: 64m 字節(jié)的 sdram,由兩片 k4s561632 組成,工作在 32 位模式下; 64m 字節(jié) nand flash,采用的是 k9f1208; 2m 字節(jié) nor flash,采用的是 sst39vf1601,工作在 16 位模式; 有線以太網(wǎng)接口,采用的是 cs8900a; 無線以太網(wǎng)接口,采用的是飛利浦公司的 bgw200; 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 12 2 路 uart 波特率可高達 115200bps,并具有 rs232 電平轉(zhuǎn)換電路。 無線以太網(wǎng)外設(shè) bgw200 是一個 sip 方式封裝的芯片,內(nèi)部包含了一個 arm7。它是一個獨立于 s3c2410x arm 子系統(tǒng)之外的基帶子系統(tǒng),以 spi 接 口的方式和 s3c2410x 進行通信。其中 s3c2410x 為主機,bgw200 為從機。 ethernet (cs8900a) arm (s3c2410x) rj45 10base-t 以太網(wǎng) pc機 uart arm嵌入式 系統(tǒng) 接口轉(zhuǎn)換 sdram (k4s561632c2) nor flash (sst39vf160) nand flash (k9f1208) from bgw200 d(0:32) a(0:23) spi接口 d(0:15) a(1:22) d(0:7) a(0:19) d(0:16) 圖 2-2 無線電臺嵌入式系統(tǒng)硬件圖 s3c2410x 支持兩種啟動模式:nand flash 啟動和 nor flash 啟動。由于使 用 linux 的關(guān)系, 我們選擇了 nand flash 啟動系統(tǒng)。 nor flash 帶有 sram 接口, 有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個字節(jié),可以在其 中執(zhí)行程序。nand 器件使用復(fù)雜的 i/o 口來串行地存取數(shù)據(jù),讀和寫操作采用 512 字節(jié)的塊,不可以執(zhí)行程序。為了支持 nand flash 啟動,s3c2410x 在內(nèi)部 4k 的 sram 緩存即“steppingstone”開始執(zhí)行時, 將 nand flash 最前面的 4k 字節(jié) 代碼讀入“steppingstone”然后開始執(zhí)行這些讀入的啟動代碼。通常啟動代碼的執(zhí) 行會把 nand flash 中的內(nèi)容拷到 sdram 中以便執(zhí)行主代碼。 南京航空航天大學(xué)碩士學(xué)位論文 13 2.3 無線電臺軟件體系結(jié)構(gòu) 一個嵌入式 linux 系統(tǒng)從軟件的角度看通??梢苑譃樗膫€部分: 引導(dǎo)加載程 序、linux 內(nèi)核、文件系統(tǒng)、用戶應(yīng)用程序。 無線電臺系統(tǒng)啟動流程如下圖所示: 圖 2-3 無線電臺系統(tǒng)啟動流程圖 引導(dǎo)加載程序是系統(tǒng)加電后運行的第一段代碼。 我們熟悉的 pc 中的引導(dǎo)程 序一般由 bios 和位于 mbr 的 os bootloader(例如 lilo 或者 grub)組成5。 然而在嵌入式系統(tǒng)中通常沒有像 bios 那樣的固件程序, 因此整個系統(tǒng)的加載啟 動任務(wù)就完全由 bootloader 來完成。在嵌入式 linux 中,引導(dǎo)加載程序即等效為 bootloader。 bootloader 就是在操作系統(tǒng)內(nèi)核運行前運行地一段程序。通過這段程序,我 們可以初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的一些信息并將這些信息通過相 應(yīng)機制傳遞給內(nèi)核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),最終調(diào)用 操作系統(tǒng)內(nèi)核,真正起到引導(dǎo)和加載內(nèi)核的作用。bootloader 是依賴于硬件而實 現(xiàn)的,特別是在嵌入式系統(tǒng)中。不同的體系結(jié)構(gòu)需求的 bootloader 是不同的;除 了體系結(jié)構(gòu),bootloader 還依賴于具體的嵌入式板級設(shè)備的配置。也就是說,對 于兩塊不同的嵌入式板而言,即使它們基于相同的 cpu 構(gòu)建,運行在其中一塊 電路板上的 bootloader,未必能夠運行在另一塊電路開發(fā)板上。bootloader 的啟 動過程可以是單階段的,也可以是多階段的。通常多階段的 bootloader 能提供更 為復(fù)雜的功能,以及更好的可移植性。從固態(tài)存儲設(shè)備上啟動的 bootloader 大多 引導(dǎo)加載程序啟動,初始化硬件 拷貝內(nèi)核到系統(tǒng)內(nèi)存 內(nèi)核自解壓執(zhí)行 內(nèi)核初始化,掛載根文件系統(tǒng) 執(zhí)行啟動腳本 基于嵌入式 linux 的無線電臺的設(shè)計與實現(xiàn) 14 數(shù)是二階段的啟動過程,也即啟動過程可以分為 stage 1 和 stage 2 兩部分。第一 部分是用匯編寫的,用來引導(dǎo)板子上的一些硬件和結(jié)構(gòu),第二部分是用 c 寫的, 是用來初始化地址和內(nèi)存等。bootloader 加載完畢后將 linux 內(nèi)核從 nand flash 拷貝到內(nèi)存中自解壓運行,linux 啟動后加載根文件系統(tǒng)以及運行用戶態(tài)程序。 無線電臺系統(tǒng)中使用 vivi 作為啟動 linux 內(nèi)核的 bootloader,linux 啟動后加載 cramfs 根文件系統(tǒng)。由于 cramfs 根文件系統(tǒng)是只讀的,在 linux 啟動腳本里自 動掛載可讀可寫的yaffs文件系統(tǒng)以及運行一些包括守護進程在內(nèi)的用戶服務(wù)程 序和配置程序。 bootloader 啟動過程6如下圖所示: 圖 2-4 bootloader 啟動流程圖 linux 內(nèi)核是由很多函數(shù)模塊組成的,其中就包括了設(shè)備驅(qū)動模塊。設(shè)備驅(qū) 動模塊工作在 linux 內(nèi)核和底層硬件之間, 將對硬件設(shè)備的操作抽象成函數(shù)提供 給內(nèi)核使用。linux 內(nèi)核再將驅(qū)動函數(shù)抽象成系統(tǒng)調(diào)用接口提供給用戶態(tài)應(yīng)用程 序使用。 無線電臺嵌入式 linux 系統(tǒng)體系結(jié)構(gòu)圖如下: 硬件設(shè)備初始化 將bootloader拷貝到系 統(tǒng)內(nèi)存 設(shè)置 c 語言程序運行 堆棧 跳轉(zhuǎn)到bootloader c程 序部分入口 檢測系統(tǒng)內(nèi)存映射 初始化本階段使用的 硬件設(shè)備 調(diào)用應(yīng)用程序或者啟 動操作系統(tǒng)內(nèi)核 bootloader 程序入口 執(zhí)行匯編代碼 南京航空航天大學(xué)碩士學(xué)位論文 15 圖 2-5 無線電臺嵌入式 linux 系統(tǒng)體系結(jié)構(gòu)圖 2.4 網(wǎng)絡(luò)設(shè)備驅(qū)動模塊結(jié)構(gòu)及實現(xiàn) 網(wǎng)絡(luò)設(shè)備驅(qū)動模塊是構(gòu)成內(nèi)核的諸多模塊中的一部分。它和內(nèi)核網(wǎng)絡(luò)子系 統(tǒng)緊密聯(lián)系,從而向內(nèi)核提供完善的網(wǎng)絡(luò)通信功能。我們通常使用的內(nèi)核的網(wǎng) 絡(luò)子系統(tǒng)是按照 tcp/ip 協(xié)議棧的分層結(jié)構(gòu)設(shè)計的,而網(wǎng)絡(luò)設(shè)備驅(qū)動模塊則處于 網(wǎng)絡(luò)子系統(tǒng)的下層, 直接對硬件設(shè)備進行操作。 參

溫馨提示

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

評論

0/150

提交評論