《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于ARM的嵌入式TCP/IP協議的實現

基于ARM的嵌入式TCP/IP協議的實現

2008-08-01
作者:胡友水,李漢強

  摘? 要: 介紹嵌入式TCP/IP" title="TCP/IP">TCP/IP協議在低速處理器中的一種簡化實現方案,并成功應用于某分布式監控系統" title="監控系統">監控系統中。?

  關鍵詞: TCP/IP協議? 嵌入式? ARM

?

  在網絡應用日益普遍的今天,越來越多的嵌入式設備實現Internet網絡化。TCP/IP協議是一種目前被廣泛采用的網絡協議。嵌入式Internet的技術核心是在嵌入式系統" title="嵌入式系統">嵌入式系統中部分或完整地實現TCP/IP協議。由于TCP/IP協議比較復雜,而目前嵌入式系統中大量應用低速處理器,受內存和速度限制,有必要將TCP/IP協議簡化。

1 TCP/IP協議的實現?

  嵌入式TCP/IP協議一般實現:ARP/RARP、IP、ICMP、TCP、UDP、HTTP、SMTP、FTP、TELNET等協議,協議處理的主要流程如圖1所示。?

?

?

1.1 TCP協議的實現?

  工業控制領域傳輸層采用TCP協議、不用UDP協議,是考慮到實時監控系統中傳輸量并不大,而可靠性要求較高TCP協議是面向連接的、端對端的可靠通信協議。它采用了許多機制來保證可靠傳輸,應用于嵌入式系統顯得過于復雜。 ?

??? TCP協議數據傳輸可分為三個階段:建立連接、傳輸數據和斷開連接。它的實現過程可以用狀態機來描述。建立連接有兩種方法,即主動打開和被動打開。服務器端是一種被動打開,它一直在偵聽連接請求;而客戶端" title="客戶端">客戶端是一種主動打開,它發送連接請求以建立連接。研究發現,如果TCP層的上層實現服務器端的應用,可以將標準TCP狀態機建立連接過程中客戶端建立連接的狀態機部分簡化掉。同理,如果應用是基于客戶端的,可以將服務器端建立連接的狀態機部分簡化掉。斷開連接有兩種方式:一是主動斷開連接;另一是被動斷開連接。被動斷開連接的處理較為簡單,但標準TCP協議的主動斷開連接的狀態機部分過于復雜。經過實驗發現,在需要主動斷開連接的時候,發送一個Fin數據報;接收到對Fin數據報的確認后,再發送一個Reset數據報,即可順利完成一次主動斷開連接。?

??? 標準的TCP協議使用慢啟動的滑動窗口機制。滑動窗口是一種在流量控制和網絡傳輸效率之間折中的方案。它允許發送方在等待一個確認之前發送多個窗口,其確認是一種批量的確認。研究滑動窗口協議發現,滑動窗口的一個極限情況,是只使用單個窗口,就變成了一種簡單確認的處理方法。使用該方法后,所有的處理只是對單個數據報的發送和確認,節約了系統的資源,也使維護更加方便。為了協議的兼容性,需要通信的另一方也使用簡單確認方法。因為如果對方使用較大的窗口,就可能造成處理器被淹沒。這個問題可以通過設置待發送數據報的TCP頭部的Windows字段的大小解決。?

??? 在上述基礎上,簡化實現TCP協議的流程圖如圖2所示。其中“不同狀態的相應處理”指根據接收到的TCP報文準備待發送數據報并將其發送到以太網上。這部分根據TCP所處的不同狀態,所做的處理是不一樣的。?

?

1.2 IP協議?

  IP協議是TCP/IP的基礎,為不同網絡的主機之間發送數據報的操作序列提供無連接服務。通過在數據報前添加IP協議頭,使每個數據報具有尋址能力。嵌入式系統只把IP作為傳輸工具,進行簡化以完成主要的操作。得到IP包后,檢驗IP頭部的版本、目的地址、校驗和正確否,解析出協議類型字段,由此交給相應的高層協議處理。發送IP包時,將緩沖區內的源地址與目的地址互換,設置校驗和,然后交給下層協議處理。不符合要求,則將此包丟棄。IP包最大可以為65KB,可以分段傳輸,而在嵌入式系統里根本無法容納如此大的數據包,因此一般不支持分段傳輸。所以限制MCU發送和接收數據包的方式以避免分段傳輸,從而減少程序復雜度。?

1.3 其它協議?

  ARP協議為32位IP地址到對應的48位以太網地址之間提供動態映射。嵌入式系統中僅響應ARP請求,發送ARP回答包。請求者廣播出包含ARP請求的以太幀、目的以太網地址為全1的廣播地址。本機收到后,由目的IP地址發現自己是目的主機,發送一個ARP回答。ICMP通過IP協議傳輸其報文。IP協議是無連接的,它無法將報文和錯誤信息傳到最初的主機,ICMP將狀態信息和錯誤信息發送到發報文的主機。?

2 前端設備的系統設計?????? ?

??? TCP/IP協議擴展到工業控制級,將企業內部計算機網絡應用于工業現場實時信息的發布和顯示,通過Internet瀏覽器對現場工業信息進行動態監視。下面是筆者在某公司一分布式監控系統中的應用實例。基于TCP/IP協議的前端設備系統軟件結構如圖3。前端嵌入式設備處理器是Samsung公司的S3C4510B(ARM核)。該芯片是用在基于以太網系統的高性價比、高性能的16/32位RISC微控制器。通信部分采用BNC接口方式,信號輸出經耦合隔離變壓器由RJ45接頭聯入集線器,此外還設計了液晶顯示和鍵盤輸入當地接口功能。

  

  在TCP/IP協議中多處用到超時和重發機制。這種機制對于確保兩個或多個彼此獨立的通信結點從通信錯誤或故障狀態自動恢復到正常狀態是非常有效的,但也增加了軟件結構的復雜性。因為對超時的處理通常獨立于正常程序流程,也就是與正常的程序流程異步。要實現的TCP/IP協議軟件中有四處要用到定時器:第一是在ARP高速緩存的維護中,被添加到ARP高速緩存中的表項在一段時間后要置為無效;第二是在等待對發出的ARP請求返回響應時,可能會在指定的超時時間內還未收到返回的響應;第三是在IP組裝收到分片時,由于部分分片在一定時間內沒有收到而丟棄整個IP包;第四是在TCP等待接收方對數據段的確認時。如果在指定時間內還未收到對某個數據段的確認,需重新發送。從上述可見,要實現的定時器具備以下特點:?

??? ·對定時的精度要求都不是很高,基本都是秒級的精度。這樣,完全可以稍滯后一些來處理定時器超時,不把超時處理放在時鐘中斷處理程序中。?

??? ·對同一類超時處理可以由同一處理程序來完成,只是傳入到相應的處理程序中的參數不同而已。例如一個ARP高速緩存中的表項超時時,需要將其置為無效,可以統一用一個處理程序,參數中放入相應的表項地址即可。?

首先,定義一定時器的數據結構,如圖4所示。每一類超時都是由一個超時控制塊和其所屬的一個由超時事件項組成的鏈表" title="鏈表">鏈表管理。整個鏈表按超時事件將要發生的時間順序排列,先發生的超時事件排列在前。超時控制塊中的head_ptr用以指向一個超時事件項鏈表的首項;timeout_process是超時事件發生時處理程序的入口地址。在每個超時事件項中,next_ptr指向鏈表中的下一項;relative_time是本表項的超時事件相對于上一表項的超時事件發生的相對時間。所以某個表項表示的超時事件距離當前的時間是它以前所有表項(包括自身)中的relative_time的和。relative_time的基本單位是granularity。?

  

??? 定時器任務使用一個信號量作同步。信號量有兩個變量:count和waiting_task。count對事件計數,當count大于0時,表示有count個事件發生并等待處理;當count小于0時,表示有某個任務在等待事件的發生,此時waitint_task保存相應任務控制塊的地址。信號量有兩個操作:sem_up和sem_down。sem_up首先使count加1,然后看count是否為0,若為0表示有任務在等待,通過waiting_task中記錄的任務控制塊的地址把等待任務的狀態設為就緒,否則返回。sem_down首先使count減1然后看count是否小于0,若小于0會使當前任務成為等待狀態并引發任務管理器對任務的調度,否則返回。?

??? 每當時鐘中斷服務程序計數到granularity個時鐘中斷,給定時器任務使用的信號燈作sem_up操作。當定時器任務被調度執行時,它遍歷每一個超時控制塊,對每一個超時控制塊作如圖5所示的處理,最后對信號燈調用sem_down。?

參考文獻?

[1] 郭 旭. Home.NET 模型/架構研究. 單片機與嵌入式系統應用,2001?

[2] Douglas E.comer,David L.Stevens 著,張娟,王海譯.用TCP/IP進行網際互聯.北京:電子工業出版社,1998?

[3] Samsung Electrionics. S3C510B User Manual,2000?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲伊人色欲综合网| 老司机免费视频久久| 久久精品国产一区二区三| 亚洲尤物在线视频观看| 一区二区三区免费在线观看| 91久久国产精品91久久性色| 在线欧美日韩| 亚洲福利久久| 亚洲国产精品成人综合色在线婷婷| 在线观看日韩专区| 原创国产精品91| 1024成人网色www| 亚洲第一精品久久忘忧草社区| 黄色av一区| 亚洲高清三级视频| 亚洲国产91| 亚洲精品欧美精品| 亚洲毛片一区二区| 一区二区三区精密机械公司| 一本色道久久综合亚洲精品不卡| 一区二区欧美日韩| 亚洲深夜福利网站| 亚洲欧美www| 久久成人精品无人区| 亚洲黑丝在线| 一二三四社区欧美黄| 亚洲一区三区电影在线观看| 午夜精品美女久久久久av福利| 新67194成人永久网站| 久久精品国产一区二区电影| 久久人人爽爽爽人久久久| 美女尤物久久精品| 欧美激情在线| 欧美性做爰猛烈叫床潮| 国产精品网站一区| 黄色av成人| 亚洲精品视频一区二区三区| 99爱精品视频| 亚洲欧美大片| 亚洲国产精品t66y| 夜夜夜久久久| 小黄鸭精品aⅴ导航网站入口 | 欧美在线视频全部完| 久久久青草婷婷精品综合日韩| 麻豆国产精品一区二区三区 | 欧美日韩卡一卡二| 国产精品乱码| 极品少妇一区二区三区| 亚洲精品美女免费| 亚洲欧美综合精品久久成人| 亚洲国产精品一区二区www| 亚洲视频高清| 久久青草欧美一区二区三区| 欧美另类一区二区三区| 国产女主播一区| 亚洲黄色成人久久久| 中日韩美女免费视频网站在线观看| 香蕉国产精品偷在线观看不卡| 最新亚洲电影| 亚洲欧美日韩在线一区| 噜噜噜噜噜久久久久久91| 欧美偷拍一区二区| 尹人成人综合网| 亚洲天堂av综合网| 亚洲激情欧美| 午夜精品久久久久影视| 欧美成人一区二区三区| 国产精品主播| 亚洲精品一区二区三区av| 性久久久久久久久久久久| 日韩系列欧美系列| 久久久久久久久岛国免费| 欧美日韩综合视频| 在线看日韩av| 午夜精品短视频| 国产精品99久久久久久久女警| 久久一区二区三区av| 国产精品v欧美精品v日韩| 亚洲第一网站| 欧美在线一级va免费观看| 亚洲伊人久久综合| 欧美—级高清免费播放| 国语自产精品视频在线看| 一区二区精品| 日韩视频国产视频| 麻豆成人小视频| 国产欧美一区二区三区在线看蜜臀| 亚洲精品四区| 亚洲欧洲精品一区二区三区波多野1战4 | 一区二区三区不卡视频在线观看| 久久久伊人欧美| 国产欧美欧洲在线观看| 一本色道**综合亚洲精品蜜桃冫| 久久精品国产96久久久香蕉| 午夜精品国产精品大乳美女| 欧美日韩在线视频一区二区| 在线日韩成人| 久久精品男女| 久久九九热re6这里有精品| 国产精品久久久久久久久久直播| 亚洲精品乱码久久久久久蜜桃91 | 亚洲三级免费电影| 亚洲日韩欧美视频一区| 久久久噜噜噜久久人人看| 国产乱码精品一区二区三区不卡| 一本色道久久| 亚洲私拍自拍| 欧美日韩视频在线| 日韩视频免费大全中文字幕| 亚洲精品美女免费| 蜜桃伊人久久| 在线看成人片| 亚洲日韩中文字幕在线播放| 免费成人在线观看视频| 在线电影院国产精品| 久久精品视频一| 久久久免费观看视频| 国产一区二区精品久久99| 新片速递亚洲合集欧美合集| 欧美亚洲在线| 国产欧美日韩高清| 香蕉乱码成人久久天堂爱免费| 欧美一区高清| 国产亚洲免费的视频看| 欧美一区二区三区四区夜夜大片| 欧美亚洲三区| 国产丝袜美腿一区二区三区| 午夜日韩电影| 久久精品最新地址| 国内一区二区在线视频观看| 久久精品国产精品亚洲| 蜜臀久久久99精品久久久久久| **网站欧美大片在线观看| 亚洲精品黄网在线观看| 欧美精品系列| 夜夜嗨av一区二区三区四季av| 中文亚洲字幕| 国产精品国产三级国产普通话99| 这里只有视频精品| 欧美一区午夜精品| 国产在线精品一区二区夜色| 久久激情五月丁香伊人| 欧美成人午夜激情视频| 亚洲免费电影在线| 亚洲欧美一区二区三区极速播放| 国产欧美精品一区二区色综合| 久久精品国产99国产精品澳门| 牛牛影视久久网| 日韩手机在线导航| 午夜精品999| 一区免费视频| 中日韩视频在线观看| 国产精品视频你懂的| 久久精品国产第一区二区三区| 欧美成人综合网站| 一区二区三区日韩精品| 久久福利电影| 亚洲欧洲精品一区二区三区| 亚洲一二三区在线| 国产乱人伦精品一区二区| 亚洲第一在线| 欧美日韩成人激情| 午夜精品av| 欧美国产欧美综合| 亚洲一区999| 免费久久精品视频| 亚洲调教视频在线观看| 久久亚洲私人国产精品va媚药| 亚洲精品黄色| 久久精视频免费在线久久完整在线看 | 亚洲免费视频一区二区| 美女被久久久| 一区二区欧美激情| 麻豆精品在线观看| 一区二区三区.www| 久久亚洲私人国产精品va| 夜夜嗨av一区二区三区免费区| 久久久亚洲欧洲日产国码αv| 日韩视频免费观看| 玖玖在线精品| 亚洲校园激情| 欧美高清自拍一区| 欧美一区二区三区视频| 欧美日韩一区精品| 亚洲国产女人aaa毛片在线| 国产精品免费区二区三区观看| 亚洲国产老妈| 国产精品一页| 一本色道久久综合亚洲精品婷婷| 国产三级欧美三级日产三级99| 一区二区三区日韩欧美| 国产综合香蕉五月婷在线| 亚洲深夜av| 在线日韩欧美| 久久精品论坛| 亚洲一二三四区| 欧美日本韩国| 最新日韩在线视频| 国产小视频国产精品| 亚洲一区三区在线观看|