基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)_第1頁
基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)_第2頁
基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)_第3頁
基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)_第4頁
基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)中網(wǎng)絡(luò)通信協(xié)議的選擇一、 引言一個現(xiàn)代化工業(yè)企業(yè)的網(wǎng)絡(luò)環(huán)境一般可分為四個層次:·Internet:實現(xiàn)企業(yè)之間的信息交流;·Intranet:實現(xiàn)企業(yè)內(nèi)部管理、財務(wù)、辦公及人事等的信息化;·Infranet:實現(xiàn)工業(yè)企業(yè)現(xiàn)場生產(chǎn)設(shè)備級的綜合管理、調(diào)度與監(jiān)控等;·Embedded Network :嵌入式網(wǎng)絡(luò)。實現(xiàn)生產(chǎn)設(shè)備內(nèi)部多個分布式子系統(tǒng)之間的實時通信。Internet、Intranet都基于TCP/IP協(xié)議簇,Intranet是面向廣域網(wǎng)的Internet在企業(yè)內(nèi)部局域網(wǎng)上的延伸。 Infranet的建設(shè)目前主要采用各種現(xiàn)場總線協(xié)議,如Pr

2、ofiBus、Lonwork、CAN等。隨著社會的進步和技術(shù)的發(fā)展,現(xiàn)代機電控制系統(tǒng)往往包括若干個子系統(tǒng),每個子系統(tǒng)既自成一體,擁有自己獨立的CPU,又與其它子系統(tǒng)緊密協(xié)調(diào)。嵌入式網(wǎng)絡(luò)就是實現(xiàn)子系統(tǒng)間相互通信的手段。二、對嵌入式網(wǎng)絡(luò)的特殊要求嵌入式網(wǎng)絡(luò)通常應(yīng)用在環(huán)境比較惡劣的工業(yè)生產(chǎn)現(xiàn)場,因此在以下幾個方面有其自身獨特的要求:1. 實時性:生產(chǎn)設(shè)備內(nèi)部多個分布式子系統(tǒng)信息耦合通常比較緊密,對實時性要求很高,這就要求所用的網(wǎng)絡(luò)協(xié)議具有可確定的實時性能,即極壞情況下的響應(yīng)時間是可確定的;另外在網(wǎng)絡(luò)節(jié)點數(shù)比較多,或者有些節(jié)點對實時響應(yīng)要求特別高時,網(wǎng)絡(luò)協(xié)議還應(yīng)支持優(yōu)先級調(diào)度,以提高時間緊迫型任務(wù)的信

3、息傳輸可確定性。2. 可靠性:嵌入式網(wǎng)絡(luò)本身的可靠性直接影響設(shè)備的有效作業(yè)率、成品率和生產(chǎn)效率,要求網(wǎng)絡(luò)能動態(tài)增加/刪除節(jié)點;生產(chǎn)現(xiàn)場比較惡劣的電磁環(huán)境要求嵌入式網(wǎng)絡(luò)本身具有很強的抗干擾能力、檢錯和糾錯能力以及快速恢復(fù)能力;3. 通信效率:嵌入式網(wǎng)絡(luò)通信的特點之一是子系統(tǒng)之間通信非常頻繁,但每次通信的信息長度很短,因此要求嵌入式網(wǎng)絡(luò)協(xié)議盡量采用短幀結(jié)構(gòu),且?guī)^和幀尾盡可能短,從而提高通信效率和帶寬的利用率;4. 雙重混合支持:不同工作環(huán)境的巨大差異決定了嵌入式網(wǎng)絡(luò)應(yīng)具有靈活的介質(zhì)訪問協(xié)議,不但支持多種介質(zhì)(雙絞線、同軸電纜、光纜),而且支持混合拓撲結(jié)構(gòu)(星型、環(huán)型、總線型),有時甚至要求同一個

4、嵌入式網(wǎng)絡(luò)能同時使用多種介質(zhì)和多種網(wǎng)絡(luò)拓撲。如在噪聲環(huán)境中,系統(tǒng)中一部分連接需要使用光纜,其它部分則使用雙絞線或同軸電纜。同軸電纜適于采用總線拓撲,而光纖則更適于環(huán)型或星型拓撲,這就要求網(wǎng)絡(luò)協(xié)議具有雙重混合支持。5. 實現(xiàn)難度和造價:嵌入式系統(tǒng)通常需要針對實際需求進行專門設(shè)計與制造,這就要求其中的網(wǎng)絡(luò)系統(tǒng)軟硬件容易實現(xiàn),并與子系統(tǒng)控制部分集成,有關(guān)元器件商品化程度高,造價較低。6. 開放性:嵌入式網(wǎng)絡(luò)必需具有良好的開放性,一方面能通過企業(yè)Infranet連接到Intranet中,實現(xiàn)企業(yè)生產(chǎn)管理的管控一體化;另一方面應(yīng)具有公開透明的開發(fā)界面,資料完備,實現(xiàn)系統(tǒng)硬件、軟件的自主開發(fā)和集成。此外,

5、嵌入式網(wǎng)絡(luò)系統(tǒng)必須配置靈活、維護簡便。通常,嵌入式網(wǎng)絡(luò)就覆蓋范圍而言屬于局域網(wǎng)。按照ISO/OSI的觀點,TCP/IP協(xié)議簇位于網(wǎng)絡(luò)層以上。顯然,TCP/IP協(xié)議簇已經(jīng)超出了嵌入式網(wǎng)絡(luò)系統(tǒng)的范疇。嵌入式網(wǎng)絡(luò)包括ISO/OSI七層模型中的物理層和數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層在具體實現(xiàn)上可劃分成兩個子層:介質(zhì)訪問控制子層(MAC子層)和邏輯鏈路控制子層(LLC子層)。MAC子層包括物理層接口硬件和實現(xiàn)介質(zhì)訪問協(xié)議的通信控制器;通常LLC子層由軟件實現(xiàn)(用戶自主開發(fā))。因此,嵌入式系統(tǒng)設(shè)計中網(wǎng)絡(luò)通信協(xié)議選擇的核心是介質(zhì)訪問協(xié)議的選擇。三、 常見介質(zhì)訪問協(xié)議的比較1、面向鏈接的協(xié)議面向鏈接的協(xié)議主要用在網(wǎng)絡(luò)

6、發(fā)展初期的主機終端式網(wǎng)絡(luò)中,如X.25和IBM的SNA網(wǎng)絡(luò)。其主要缺點是:1)節(jié)點之間采用串行連接方式,每個物理連接只支持兩個節(jié)點,速度較低;2)物理上沒有連接的節(jié)點之間的通信需要經(jīng)過多個中間節(jié)點的多次傳輸;3)直接相連的節(jié)點間的通信是可確定的,而間接相連的節(jié)點間的通信則無法確定延時。因此,在局域網(wǎng)技術(shù)已非常成熟的今天,這類協(xié)議已很少應(yīng)用。2、輪詢法輪詢法因其簡單和實時性能可確定等特點而成為嵌入式網(wǎng)絡(luò)常用協(xié)議之一。采用輪詢法的協(xié)議,需指定一個主節(jié)點作為中央主機來定期輪詢各個從節(jié)點,以便顯式分配從節(jié)點訪問共享介質(zhì)的權(quán)力。這類協(xié)議的缺點是;1)輪詢過程占用了寶貴的網(wǎng)絡(luò)帶寬,增加了網(wǎng)絡(luò)負擔(dān);2)風(fēng)險

7、完全集中在主節(jié)點上,為避免因主節(jié)點失效而導(dǎo)致整個網(wǎng)絡(luò)癱瘓,有時需設(shè)置多個主節(jié)點來提高系統(tǒng)的健壯性(如Profibus)。3、CSMA/CD(帶沖突檢測的載波監(jiān)聽多路訪問)CSMA/CD有許多不同的實現(xiàn)版本,其核心思想是:一個節(jié)點只有確認網(wǎng)絡(luò)空閑之后才能發(fā)送信息。如果多個節(jié)點幾乎同時檢測到網(wǎng)絡(luò)空閑并發(fā)送信息,則產(chǎn)生沖突。檢測到?jīng)_突的發(fā)送信息的節(jié)點必須采用某種算法(如回溯算法)來確定延時長短,延時結(jié)束后重復(fù)上述過程再試圖發(fā)送。CSMA/CD的優(yōu)點是理論上能支持任意多的節(jié)點,且不需要預(yù)先分配節(jié)點位置,因此在辦公環(huán)境中幾乎占有絕對優(yōu)勢。但在CSMA/CD中沖突產(chǎn)生具有很大的隨機性,在最壞情況下的響應(yīng)延

8、時不可確定,無法滿足嵌入式網(wǎng)絡(luò)最基本的實時性要求。4、TDMA(時分多路訪問)TDMA已大量應(yīng)用于移動通信領(lǐng)域(如GSM、DAMPS),但也可用于局域網(wǎng)。TDMA的特點是:每輪信息傳輸前,網(wǎng)絡(luò)中的主節(jié)點先廣播一個幀同步信號以同步各從節(jié)點的時鐘,在幀同步信號之后,每個從節(jié)點在各自所分配的時間片內(nèi)發(fā)送數(shù)據(jù)。TDMA的缺點是:1)每個從節(jié)點必須有一個穩(wěn)定的基準時間以確定時間片,因此從節(jié)點比較復(fù)雜,造價較高;2)TDMA的主流應(yīng)用領(lǐng)域依然是無線移動通信領(lǐng)域,用于嵌入式網(wǎng)絡(luò)的TDMA無論在相關(guān)軟硬件技術(shù)支持和市場認同方面都非常欠缺。5、令牌環(huán)在令牌環(huán)網(wǎng)中,節(jié)點之間使用端到端的連接,所有節(jié)點在物理上組成一

9、個環(huán)型結(jié)構(gòu)。一組特殊的脈沖編碼序列,即令牌,沿著環(huán)從一個節(jié)點向其物理鄰居節(jié)點傳遞。一個節(jié)點獲得令牌后,如無信息要發(fā)送,則將令牌繼續(xù)傳遞給下一個鄰居,否則首先停止令牌循環(huán),然后沿著環(huán)發(fā)送它的信息,最后繼續(xù)令牌傳遞。令牌環(huán)網(wǎng)的優(yōu)點是:1)在實時性方面是可確定的。因為容易計算出最壞情況下節(jié)點等待令牌的時間;2)令牌傳遞占用的網(wǎng)絡(luò)帶寬極小,帶寬利用率很高,具有強大的吞吐能力。但這種協(xié)議在具體實現(xiàn)時為確??煽啃员仨毟冻鲚^大的代價:1)為了避免因電纜斷裂和節(jié)點失效導(dǎo)致整個網(wǎng)絡(luò)癱瘓,常采用雙環(huán)結(jié)構(gòu)(如FDDI)和失效節(jié)點自動旁路措施,導(dǎo)致實施成本增加;2)為了能立即檢測到令牌是否意外丟失,不得不增加該協(xié)議實

10、施的復(fù)雜性。6、令牌總線令牌總線的基本原理與令牌環(huán)網(wǎng)相似。但在令牌總線中,網(wǎng)絡(luò)上所有節(jié)點組成一個虛擬環(huán),而非物理環(huán)。令牌在虛擬環(huán)中從一個節(jié)點傳向其邏輯鄰居節(jié)點。只有持有令牌的節(jié)點才能訪問網(wǎng)絡(luò)。如同令牌環(huán)一樣,令牌總線具有非常高的網(wǎng)絡(luò)帶寬利用率、很高的吞吐能力和良好的可確定性。另外令牌總線中各節(jié)點有相同的優(yōu)先級;令牌總線中的電纜斷裂并不一定導(dǎo)致整個網(wǎng)絡(luò)癱瘓;網(wǎng)絡(luò)運行過程中可動態(tài)增加或關(guān)閉節(jié)點,因此節(jié)點失誤一般不會導(dǎo)致整個網(wǎng)絡(luò)癱瘓(當(dāng)然在網(wǎng)絡(luò)啟動、增加 /刪除節(jié)點時會導(dǎo)致邏輯環(huán)重構(gòu),以便每個節(jié)點確定自己的邏輯鄰居,這會有點費時);總線拓補結(jié)構(gòu)還非常適合于制造設(shè)備。因此,令牌總線協(xié)議被MAP (Ma

11、nufacturing Automation Protocol,制造自動化協(xié)議)、ARCnet(Attached Resource Computer Network)采用,在過程自動化控制等嵌入式場合廣泛應(yīng)用。7、CSMA/CA (帶沖突避免的載波監(jiān)聽多路訪問)CSMA/CD在節(jié)點數(shù)量不多、傳輸信息量較少時效率很高;基于令牌的協(xié)議具有良好的實時性和吞吐能力。人們已經(jīng)開發(fā)出一種能綜合以上兩者優(yōu)點的混合協(xié)議CSMA/CA。CSMA/CA的本質(zhì)是利用競爭時間片來避免沖突。其基本原理是:如同CSMA/CD一樣,節(jié)點必須檢測到網(wǎng)絡(luò)空閑之后才能發(fā)送信息;如果有兩個或更多的節(jié)點發(fā)生沖突,便在網(wǎng)絡(luò)上啟動一個阻

12、塞信號通知所有沖突節(jié)點,同步節(jié)點時鐘,啟動競爭時間片(競爭時間片跟隨在阻塞信號之后,其長度比沿網(wǎng)絡(luò)環(huán)路傳輸時延稍長);通常,每一個競爭時間片均指定給特定的節(jié)點,每個節(jié)點在其對應(yīng)的時間片內(nèi)如有信息發(fā)送則可以啟動傳輸;其它節(jié)點檢測到信息傳輸后,停止時間片的推進,直到傳輸結(jié)束所有節(jié)點才恢復(fù)推進時間片;當(dāng)所有時間片都失去作用時,網(wǎng)絡(luò)進入空閑狀態(tài)。為確保公平性和可確定性,在每次傳輸之后,時間片要循環(huán)。此外,優(yōu)先時間片(the priority slots)優(yōu)先于普通時間片的推進,能支持高優(yōu)先級信息的全局優(yōu)先傳輸。CSMA/CA 協(xié)議在具體實施中主要有兩個變種:一是RCSMA(Reservation CS

13、MA),其特點是時間片數(shù)等于節(jié)點數(shù)。RCSMA在各種傳輸條件下都能有效工作,但顯然不適于節(jié)點較多的網(wǎng)絡(luò);在另一個變種中,時間片數(shù)少于節(jié)點數(shù),且根據(jù)沖突最少的原則隨機調(diào)整時間片的分配,根據(jù)所預(yù)測的網(wǎng)絡(luò)流量動態(tài)地改變時間片數(shù);如Echelon公司推出的廣泛應(yīng)用于智能大廈領(lǐng)域的 Lonwork標準。另外,在CSMA/CA中,并非必需采用硬件來避免沖突,還可以通過軟手段來實現(xiàn),例如發(fā)送使時間片在沒有網(wǎng)絡(luò)傳輸?shù)那闆r下仍然保持活動的啞信息。四、結(jié)論介質(zhì)訪問協(xié)議是嵌入式網(wǎng)絡(luò)協(xié)議選擇的核心。盡管沒有哪一種協(xié)議對各種應(yīng)用場合都是十全十美的,但通過對上述各種介質(zhì)訪問協(xié)議的分析和比較不難發(fā)現(xiàn):令牌環(huán)、令牌總線、CS

14、MA/CA比較適合于嵌入式網(wǎng)絡(luò)。但令牌環(huán)的具體實施比較復(fù)雜、成本較高,其應(yīng)用越來越少。讀者可針對具體應(yīng)用需求,選用令牌總線(如ARCnet)或CSMA/CA。、基于ARM的嵌入式TCP/IP協(xié)議的實現(xiàn)日期:2008-8-12 13:55:00作者:未知來源:在網(wǎng)絡(luò)應(yīng)用日益普遍的今天,越來越多的嵌入式設(shè)備實現(xiàn)網(wǎng)絡(luò)化。協(xié)議是一種目前被廣泛采用的網(wǎng)絡(luò)協(xié)議。嵌入式的技術(shù)核心是在嵌入式系統(tǒng)中部分或完整地實現(xiàn)協(xié)議。由于協(xié)議比較復(fù)雜,而目前嵌入式系統(tǒng)中大量應(yīng)用低速處理器,受內(nèi)存和速度限制,有必要將協(xié)議簡化。       協(xié)議的實現(xiàn)嵌入式協(xié)議一般實現(xiàn)

15、:、等協(xié)議,協(xié)議處理的主要流程如圖所示。點擊看原圖協(xié)議的實現(xiàn)工業(yè)控制領(lǐng)域傳輸層采用協(xié)議、不用協(xié)議,是考慮到實時監(jiān)控系統(tǒng)中傳輸量并不大,而可靠性要求較高。協(xié)議是面向連接的、端對端的可靠通信協(xié)議。它采用了許多機制來保證可靠傳輸,應(yīng)用于嵌入式系統(tǒng)顯得過于復(fù)雜。協(xié)議數(shù)據(jù)傳輸可分為三個階段:建立連接、傳輸數(shù)據(jù)和斷開連接。它的實現(xiàn)過程可以用狀態(tài)機來描述。建立連接有兩種方法,即主動打開和被動打開。服務(wù)器端是一種被動打開,它一直在偵聽連接請求;而客戶端是一種主動打開,它發(fā)送連接請求以建立連接。研究發(fā)現(xiàn),如果層的上層實現(xiàn)服務(wù)器端的應(yīng)用,可以將標準狀態(tài)機建立連接過程中客戶端建立連接的狀態(tài)機部分簡化掉。同理,如果應(yīng)

16、用是基于客戶端的,可以將服務(wù)器端建立連接的狀態(tài)機部分簡化掉。斷開連接有兩種方式:一是主動斷開連接;另一是被動斷開連接。被動斷開連接的處理較為簡單,但標準協(xié)議的主動斷開連接的狀態(tài)機部分過于復(fù)雜。經(jīng)過實驗發(fā)現(xiàn),在需要主動斷開連接的時候,發(fā)送一個數(shù)據(jù)報;接收到對數(shù)據(jù)報的確認后,再發(fā)送一個數(shù)據(jù)報,即可順利完成一次主動斷開連接。標準的協(xié)議使用慢啟動的滑動窗口機制?;瑒哟翱谑且环N在流量控制和網(wǎng)絡(luò)傳輸效率之間折中的方案。它允許發(fā)送方在等待一個確認之前發(fā)送多個窗口,其確認是一種批量的確認。研究滑動窗口協(xié)議發(fā)現(xiàn),滑動窗口的一個極限情況,是只使用單個窗口,就變成了一種簡單確認的處理方法。使用該方法后,所有的處理只

17、是對單個數(shù)據(jù)報的發(fā)送和確認,節(jié)約了系統(tǒng)的資源,也使維護更加方便。為了協(xié)議的兼容性,需要通信的另一方也使用簡單確認方法。因為如果對方使用較大的窗口,就可能造成處理器被淹沒。這個問題可以通過設(shè)置待發(fā)送數(shù)據(jù)報的頭部的字段的大小解決。在上述基礎(chǔ)上,簡化實現(xiàn)協(xié)議的流程圖如圖所示。其中“不同狀態(tài)的相應(yīng)處理”指根據(jù)接收到的報文準備待發(fā)送數(shù)據(jù)報并將其發(fā)送到以太網(wǎng)上。這部分根據(jù)所處的不同狀態(tài),所做的處理是不一樣的。 協(xié)議協(xié)議是的基礎(chǔ),為不同網(wǎng)絡(luò)的主機之間發(fā)送數(shù)據(jù)報的操作序列提供無連接服務(wù)。通過在數(shù)據(jù)報前添加協(xié)議頭,使每個數(shù)據(jù)報具有尋址能力。嵌入式系統(tǒng)只把作為傳輸工具,進行簡化以完成主要的操作。得到包后

18、,檢驗頭部的版本、目的地址、校驗和正確否,解析出協(xié)議類型字段,由此交給相應(yīng)的高層協(xié)議處理。發(fā)送包時,將緩沖區(qū)內(nèi)的源地址與目的地址互換,設(shè)置校驗和,然后交給下層協(xié)議處理。不符合要求,則將此包丟棄。包最大可以為,可以分段傳輸,而在嵌入式系統(tǒng)里根本無法容納如此大的數(shù)據(jù)包,因此一般不支持分段傳輸。所以限制發(fā)送和接收數(shù)據(jù)包的方式以避免分段傳輸,從而減少程序復(fù)雜度。          其它協(xié)議協(xié)議為位地址到對應(yīng)的位以太網(wǎng)地址之間提供動態(tài)映射。嵌入式系統(tǒng)中僅響應(yīng)請求,發(fā)送回答包。請求者廣播出包含請求的以太幀、目的以太網(wǎng)

19、地址為全的廣播地址。本機收到后,由目的地址發(fā)現(xiàn)自己是目的主機,發(fā)送一個回答。通過協(xié)議傳輸其報文。協(xié)議是無連接的,它無法將報文和錯誤信息傳到最初的主機,將狀態(tài)信息和錯誤信息發(fā)送到發(fā)報文的主機。       前端設(shè)備的系統(tǒng)設(shè)計       協(xié)議擴展到工業(yè)控制級,將企業(yè)內(nèi)部計算機網(wǎng)絡(luò)應(yīng)用于工業(yè)現(xiàn)場實時信息的發(fā)布和顯示,通過瀏覽器對現(xiàn)場工業(yè)信息進行動態(tài)監(jiān)視。下面是筆者在某公司一分布式監(jiān)控系統(tǒng)中的應(yīng)用實例。基于協(xié)議的前端設(shè)備系統(tǒng)軟件結(jié)構(gòu)如圖。前端嵌入式設(shè)備處理器是公司的(核)。該芯片是

20、用在基于以太網(wǎng)系統(tǒng)的高性價比、高性能的位微控制器。通信部分采用接口方式,信號輸出經(jīng)耦合隔離變壓器由接頭聯(lián)入集線器,此外還設(shè)計了液晶顯示和鍵盤輸入當(dāng)?shù)亟涌诠δ堋T趨f(xié)議中多處用到超時和重發(fā)機制。這種機制對于確保兩個或多個彼此獨立的通信結(jié)點從通信錯誤或故障狀態(tài)自動恢復(fù)到正常狀態(tài)是非常有效的,但也增加了軟件結(jié)構(gòu)的復(fù)雜性。因為對超時的處理通常獨立于正常程序流程,也就是與正常的程序流程異步。要實現(xiàn)的協(xié)議軟件中有四處要用到定時器:第一是在高速緩存的維護中,被添加到高速緩存中的表項在一段時間后要置為無效;第二是在等待對發(fā)出的請求返回響應(yīng)時,可能會在指定的超時時間內(nèi)還未收到返回的響應(yīng);第三是在組裝收到分片時,由

21、于部分分片在一定時間內(nèi)沒有收到而丟棄整個包;第四是在等待接收方對數(shù)據(jù)段的確認時。如果在指定時間內(nèi)還未收到對某個數(shù)據(jù)段的確認,需重新發(fā)送。從上述可見,要實現(xiàn)的定時器具備以下特點:·對定時的精度要求都不是很高,基本都是秒級的精度。這樣,完全可以稍滯后一些來處理定時器超時,不把超時處理放在時鐘中斷處理程序中。    ·對同一類超時處理可以由同一處理程序來完成,只是傳入到相應(yīng)的處理程序中的參數(shù)不同而已。例如一個高速緩存中的表項超時時,需要將其置為無效,可以統(tǒng)一用一個處理程序,參數(shù)中放入相應(yīng)的表項地址即可。首先,定義一定時器的數(shù)據(jù)結(jié)構(gòu),如圖所示。每一類超

22、時都是由一個超時控制塊和其所屬的一個由超時事件項組成的鏈表管理。整個鏈表按超時事件將要發(fā)生的時間順序排列,先發(fā)生的超時事件排列在前。超時控制塊中的用以指向一個超時事件項鏈表的首項;是超時事件發(fā)生時處理程序的入口地址。在每個超時事件項中,指向鏈表中的下一項;是本表項的超時事件相對于上一表項的超時事件發(fā)生的相對時間。所以某個表項表示的超時事件距離當(dāng)前的時間是它以前所有表項(包括自身)中的的和。的基本單位是。           定時器任務(wù)使用一個信號量作同步。信號量有兩個變量:和。對事件計數(shù),當(dāng)大于時,表示有

23、個事件發(fā)生并等待處理;當(dāng)小于時,表示有某個任務(wù)在等待事件的發(fā)生,此時保存相應(yīng)任務(wù)控制塊的地址。信號量有兩個操作:和。首先使加,然后看是否為,若為表示有任務(wù)在等待,通過中記錄的任務(wù)控制塊的地址把等待任務(wù)的狀態(tài)設(shè)為就緒,否則返回。首先使減然后看是否小于,若小于會使當(dāng)前任務(wù)成為等待狀態(tài)并引發(fā)任務(wù)管理器對任務(wù)的調(diào)度,否則返回。 每當(dāng)時鐘中斷服務(wù)程序計數(shù)到個時鐘中斷,給定時器任務(wù)使用的信號燈作操作。當(dāng)定時器任務(wù)被調(diào)度執(zhí)行時,它遍歷每一個超時控制塊,對每一個超時控制塊作如圖所示的處理,最后對信號燈調(diào)用。基于ARM的嵌入式TCP/ IP協(xié)議棧的實現(xiàn)IP協(xié)議棧的實現(xiàn), ARM, TCP, 嵌入式,

24、協(xié)議隨著嵌入式系統(tǒng)與網(wǎng)絡(luò)的日益結(jié)合,越來越多的嵌入式設(shè)備實現(xiàn)Internet網(wǎng)絡(luò)化。在嵌入式實時操作系統(tǒng)中引入T CP/ IP協(xié)議棧,以支持嵌入式設(shè)備接入網(wǎng)絡(luò),已成為嵌入式領(lǐng)域重要的研究方向。NC/ OS -II是一種占先式、多任務(wù)、移植性強的免費公開源代碼的實時操作系統(tǒng),然而他只是一個實時的任務(wù)調(diào)度及通信內(nèi)核,系統(tǒng)內(nèi)核木身并沒有集成T CP/ IP協(xié)議棧,所以不能滿足嵌入式設(shè)備聯(lián)網(wǎng)的需要。為了使基于ARM和uC/OS -II的嵌入式系統(tǒng)能實現(xiàn)網(wǎng)絡(luò)化,必須使用外掛的T CP/ IP協(xié)議?;蛘吒鶕?jù)硬件平臺和實際應(yīng)用重新設(shè)計實現(xiàn)新的協(xié)議棧。由于T CP/IP協(xié)議比較復(fù)雜,而目前嵌入式系統(tǒng)中大量應(yīng)用

25、低速處理器,受內(nèi)存和速度限制,實現(xiàn)完整的T CP/ IP協(xié)議較為困難,有必要將T CP/ IP協(xié)議簡化。1  TCP/ IP協(xié)議分析    計算機網(wǎng)絡(luò)是一個層次結(jié)構(gòu),其各層及其協(xié)議的集合,稱為網(wǎng)絡(luò)的體系結(jié)構(gòu)。Internet上使用的參考體系是T CP/ IP體系結(jié)構(gòu),結(jié)構(gòu)如圖1所示,他包括應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和卞機到網(wǎng)絡(luò)接口4層。    最底層為卞機到網(wǎng)絡(luò)接口層,他包括多種網(wǎng)絡(luò)協(xié)議,的數(shù)據(jù)報傳送信息,并通過校驗和來確保消息的正確性,但他沒有流量控制,也不保證可行的、有序的傳輸。    第4層為應(yīng)用層,包含所有應(yīng)用

26、協(xié)議如T elnet(遠程登陸),F(xiàn)TP(文件傳輸),F(xiàn)FT P(普通文件傳輸協(xié)議),SMTP(電子郵件),DNS(域名服務(wù)),HTTP(超文木傳輸辦議)等。    T CP/ IP的層次結(jié)構(gòu)中,各層實現(xiàn)對等層之間通信協(xié)議,彼此是相互獨立的,上層僅能通過接口知道卜層提供的服務(wù),而不知道卜層的具體實現(xiàn),因而用戶數(shù)據(jù)是逐層依次復(fù)制給卜層完成網(wǎng)絡(luò)通信的。2協(xié)議裁減方案    標準的T CP/ IP協(xié)議棧對計算機處理器、存儲器要求比較高,然而,嵌入式系統(tǒng)的計算資源和存儲資源都非常有限,在這些嵌入式系統(tǒng)中實現(xiàn)標準的T CP/ IP協(xié)議棧將占用大量系統(tǒng)資源,因此嵌入

27、式T CP/ IP必須進行簡化和優(yōu)化,盡可能做到代碼精簡、降低存儲開銷。2. 1  IP協(xié)議    IP協(xié)議是T CP/ IP的基礎(chǔ),為不同網(wǎng)絡(luò)的卞機之間發(fā)送數(shù)據(jù)報的操作序列提供無連接服務(wù)。通過在數(shù)據(jù)報前添加IP協(xié)議頭,使每個數(shù)據(jù)報具有尋址能力。嵌入式系統(tǒng)只把IP作為傳輸工具,進行簡化以完成卞要的操作。得到IP包后,檢驗IP頭部的版木、目的地址、校驗和正確否,解析出協(xié)議類型字段,由此交給相應(yīng)的高層協(xié)議處理。發(fā)送IP包時,將緩沖區(qū)內(nèi)的源地址與目的地址互換,設(shè)置校驗和,然后交給卜層協(xié)議處理。若不符合要求,則將此包丟棄。IP包最大可以為65 kB,可以分段傳輸

28、,而在嵌入式系統(tǒng)里根木無法容納如此大的數(shù)據(jù)包,因此一般不支持分段傳輸,對于分段的功能可以裁減不要。所以限制MCU發(fā)送和接收數(shù)據(jù)包的方式以避免分段傳輸,從而減少程序復(fù)雜度。2.2  ICMP協(xié)議    ICMP協(xié)議用于報告在數(shù)據(jù)報過程中的錯誤,IP協(xié)議是無連接的,他無法將報文和錯誤信息傳到最初的卞機,ICMP將狀態(tài)信息和錯誤信息發(fā)送到發(fā)報文的卞機。因此予以采用。2. 3  T CP協(xié)議    在TCP協(xié)議中采用停止等待算法代替滑動窗口算法。這一方而是由于數(shù)據(jù)量小,對網(wǎng)絡(luò)擁塞不會產(chǎn)生太大影響,從而可以裁減TCP的流量控

29、制功能;另一方而則是因為數(shù)據(jù)量小時,采用停止等待算法的傳輸效率和滑動窗口算法的效率差不多,因此采用簡單停止等待算法代替復(fù)雜的滑動窗口算法,不但減少了實現(xiàn)難度,提高了處理速度,同時取消了T CP發(fā)送緩存區(qū)和接收緩存區(qū),從而減少了占用存儲空間。2. 4其他協(xié)議    ARP協(xié)議為32位IP地址到對應(yīng)的48位以太網(wǎng)地址之間提供動態(tài)映射。嵌入式系統(tǒng)中僅響應(yīng)ARP請求,發(fā)送ARP回答包。請求者廣播出包含ARP請求的以太幀、目的以太網(wǎng)地址為全1的廣播地址。木機收到后,由目的IP地址發(fā)現(xiàn)自己是目的卞機,發(fā)送一個ARP回答。U DP協(xié)議是一種不可靠的傳輸協(xié)議,目前多用于語音和視頻傳輸?shù)攘髅?/p>

30、體應(yīng)用中,考慮到嵌入式設(shè)備在工業(yè)控制等專用領(lǐng)域中在網(wǎng)絡(luò)傳輸?shù)氖侵匾臄?shù)據(jù)和命令,其傳輸?shù)目尚行钥梢酝ㄟ^TCP協(xié)議來保證,因此裁掉U DP協(xié)議。3嵌入式TCP/ IP協(xié)議棧的實現(xiàn)3. 1以太網(wǎng)接口協(xié)議    該層實現(xiàn)了T CP/ IP協(xié)議棧與底層網(wǎng)絡(luò)馭動程序模塊的隔離,使得T CP/ IP協(xié)議棧的實現(xiàn)與底層硬件無關(guān)。一方而使得系統(tǒng)移植到其他硬件平臺時只需對底層的中斷控制系統(tǒng)進行修改而不需對T CP/ IP協(xié)議棧進行修改,減少移植工作量;另一方而使得系統(tǒng)增加網(wǎng)絡(luò)新功能時只需對T CP/ IP協(xié)議棧進行修改而不需對底層的中斷控制系統(tǒng)進行修改。該模塊包含以太網(wǎng)初始化、數(shù)據(jù)包的接收和

31、發(fā)送3個函數(shù)。    (1) void EtherDevInit()    以太網(wǎng)初始化函數(shù),負責(zé)實現(xiàn)網(wǎng)絡(luò)接口層、以及卜層的物理設(shè)備-3動程序的初始化,數(shù)據(jù)結(jié)構(gòu)的初始化。    (2) BOOL EtherOutput()    以太網(wǎng)發(fā)送函數(shù),根據(jù)上層類型、源MAC地址及目的MAC地址組成以太網(wǎng)發(fā)送數(shù)據(jù)包,調(diào)用網(wǎng)卡發(fā)送函數(shù)將該數(shù)據(jù)包發(fā)送到網(wǎng)卡控制芯片中。    (3) void EtherInput()    以太網(wǎng)接收函數(shù),根據(jù)幀類型字段選擇將該幀交給哪個上層協(xié)議模塊處理

32、。3. 2   ARP協(xié)議    以太網(wǎng)的數(shù)據(jù)通信依賴于硬件MAC地址,因而需要系統(tǒng)實現(xiàn)IP地址到MAC地址的轉(zhuǎn)換功能。ARP協(xié)議使得網(wǎng)絡(luò)上的每個卞機動態(tài)地建立一張IP地址和鏈路地址之間的映射表。在協(xié)議中使用結(jié)構(gòu)體SA RPEntry來保存地址映射?;贏RM的嵌入式TCPIP協(xié)議的實現(xiàn)方法2010-03-19 11:35:07 作者:佚名 來源: 瀏覽次數(shù):90分析嵌入式TCPIP協(xié)議的選取原則,采用ARM芯片和網(wǎng)絡(luò)接口控制芯片設(shè)計以太網(wǎng)接口,介紹ARM芯片對網(wǎng)絡(luò)接口控制芯片的控制過程和TCPIP協(xié)議棧處理數(shù)據(jù)包的流程,完成嵌入式TCPIP系統(tǒng)的開發(fā)。

33、該系統(tǒng)可以將數(shù)據(jù)按網(wǎng)分析嵌入式TCPIP協(xié)議的選取原則,采用ARM芯片和網(wǎng)絡(luò)接口控制芯片設(shè)計以太網(wǎng)接口,介紹ARM芯片對網(wǎng)絡(luò)接口控制芯片的控制過程和TCPIP協(xié)議棧處理數(shù)據(jù)包的流程,完成嵌入式TCPIP系統(tǒng)的開發(fā)。該系統(tǒng)可以將數(shù)據(jù)按網(wǎng)絡(luò)協(xié)議處理,實現(xiàn)數(shù)據(jù)的以太網(wǎng)傳輸。其是一套基于嵌入式實時操作系統(tǒng)的嵌入式網(wǎng)絡(luò)軟件開發(fā)平臺,即在COSII的平臺上,實現(xiàn)ARM微處理器的TCPIP協(xié)議,在此平臺之上,可以方便地進行嵌入式應(yīng)用系統(tǒng)的開發(fā)a關(guān)鍵詞:ARM;嵌入式系統(tǒng);TCPIP;以太網(wǎng) 0 引 言    以太網(wǎng)具有通用性強、技術(shù)成熟、帶寬迅速增加等特性,工業(yè)控制領(lǐng)域出現(xiàn)嵌入

34、式技術(shù),尤其是ARM技術(shù)的發(fā)展和DSP在工業(yè)控制領(lǐng)域的廣泛應(yīng)用,利用嵌入式技術(shù)實現(xiàn)以太網(wǎng)通信已經(jīng)不難見到。嵌入式實時操作系統(tǒng)接入網(wǎng)絡(luò)后將使遠程監(jiān)測、遠程控制、遠程診斷和遠程維護變得越來越容易。從根本上講,嵌入式設(shè)備接入網(wǎng)絡(luò),當(dāng)前基本采用基于TCPIP的通信協(xié)議。該方案以LPC2210為核心元件研究基于ARM的嵌入式TCPIP協(xié)議的實現(xiàn)的硬件電路,同時在COS一平臺上編寫應(yīng)用軟件程序。下面對系統(tǒng)做詳實的闡述,并重點介紹嵌入式實時操作系統(tǒng)COSII應(yīng)用于TCPIP時應(yīng)進行合理的裁減。1 系統(tǒng)硬件設(shè)計    基于ARM的嵌入式TCPIP網(wǎng)絡(luò)通信系統(tǒng)主要包括ARM芯片和以

35、太網(wǎng)控制器等芯片組成的以太網(wǎng)接口、驅(qū)動軟件和嵌入式TCPIP協(xié)議棧。硬件原理圖如圖1所示。    該方案設(shè)計相對簡單,硬件電路中采用的LPC2210是Philips公司推出的微處理器,帶有16 KBRAM,76個通用IO口,12個獨立外部中斷引腳,集成有8通道的10位AD,能夠基于芯片設(shè)計復(fù)雜的系統(tǒng)。雖然LPC2210具有較快的訪問速度,但片內(nèi)沒有集成FLASH,所以這里擴展1片16 Mb FLASH SST39VFl60來保存用戶程序。其架構(gòu)滿足COSII正常運行的基本要求。    RTL8019AS是臺灣Realtek半導(dǎo)體公司生

36、產(chǎn)的以太網(wǎng)控制器,其性能包括:支持EthernetII和IEEE8023標準;支持816位數(shù)據(jù)總線;內(nèi)置16 KWord的SRAM;全雙工,收發(fā)同時達到10 Mbs;支持BNC,AUI,UTP介質(zhì)。RTLS019AS可提供100腳的TQFP封裝,減少了PCB面積,更適合于嵌入式系統(tǒng)。HR901170A是漢仁電子有限公司生產(chǎn)的RJ45接口連接器(帶網(wǎng)絡(luò)變壓器濾波器),該連接器滿足IEEES023和IEEE9023ab標準,能夠較好地抑制電磁干擾。通過HR901170A系統(tǒng)就可以連接到以太網(wǎng)上。2 嵌入式協(xié)議的選擇    TCPIP協(xié)議是一組不同層次上的多個協(xié)議的組合

37、,通常被認為是一個包含鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層的4層協(xié)議系統(tǒng),如圖2所示。嵌入式系統(tǒng)是為完成某種特定的功能而設(shè)計的專用系統(tǒng)。嵌入式系統(tǒng)不要求(也不可能)實現(xiàn)所有的TCPIP協(xié)議,所以嵌入式TCPIP是對TCPIP協(xié)議族進行選擇而形成的協(xié)議集合。    首先在鏈路層上,由于采用以太網(wǎng)的接入方式,系統(tǒng)必須實現(xiàn)IEEE8023所規(guī)定的CDMACD(載波監(jiān)聽多路訪問及沖突監(jiān)測)協(xié)議,CDMACD協(xié)議不需用戶實現(xiàn),此協(xié)議只要采用通用的NIC(Network Interface Controller,網(wǎng)絡(luò)接口控制)芯片就可支持。為了保證系統(tǒng)在以太網(wǎng)中的通信,系統(tǒng)還需實現(xiàn)

38、ARP應(yīng)答協(xié)議,該協(xié)議用于將IP地址映射成以太網(wǎng)MAC地址。ARP協(xié)議包括ARP請求和ARP響應(yīng)兩部分,系統(tǒng)與其他計算機通信,就必須要支持ARP響應(yīng)。ARP請求在本地建立了一個IP地址到MAC地址的映射,保證了對外通信的有的放矢。RARP(逆地址解析)協(xié)議主要用于解決如何從MAC地址得到IP地址,主要用于無盤工作站中。在網(wǎng)絡(luò)層,由于系統(tǒng)要求能夠在Internet中進行通信,因此系統(tǒng)要實現(xiàn)IP協(xié)議。在TCPIP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)等。IP協(xié)議是TCPIP族的核心協(xié)議,它使異構(gòu)網(wǎng)絡(luò)之

39、間的通信成為可能。因此RTU等系統(tǒng)數(shù)據(jù)跨越不同的網(wǎng)絡(luò)進行傳輸就必須要實現(xiàn)IP協(xié)議。ICMP中規(guī)定了多種協(xié)議類型和代碼,如果完全地實現(xiàn)也要耗費不少的系統(tǒng)資源,該嵌入式系統(tǒng)中,在ICMP協(xié)議中能夠測試網(wǎng)絡(luò)的連通情況即可。傳輸層主要是在2臺主機之間提供端到端的通信。傳輸層有2種不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP是面向連接的,在不可靠的網(wǎng)絡(luò)服務(wù)上提供端到端的可靠字節(jié)流。TCP協(xié)議設(shè)計了嚴格的3次建立連接握手過程、4次關(guān)閉連接握手過程以及捎帶確認信息并通過滑動窗口進行流量控制的數(shù)據(jù)傳輸過程。UDP協(xié)議是不面向連接的,它只是簡單地把數(shù)據(jù)報從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達另一端,可靠性必須由應(yīng)用層來提供。考慮到系統(tǒng)中數(shù)據(jù)傳輸質(zhì)量,這里采用TCP協(xié)議。應(yīng)用層協(xié)議主要是指用戶進程。其包括:HTTP協(xié)議、FTP協(xié)議、POP3協(xié)議、SMTP協(xié)議、SNMP協(xié)議。分析嵌入式TCPIP協(xié)議的選取原則,采用ARM芯片和網(wǎng)絡(luò)接口控制芯片設(shè)計以太網(wǎng)接口,介紹ARM芯片對網(wǎng)絡(luò)接口控制芯片的控制過程和TCPIP協(xié)議棧處理數(shù)據(jù)包的流程,完成嵌入式TCPIP系統(tǒng)的開發(fā)。該系統(tǒng)可以將數(shù)據(jù)按網(wǎng)3 系統(tǒng)軟

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論