新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談單片機以太網接入方案

        淺談單片機以太網接入方案

        作者: 時間:2016-11-26 來源:網絡 收藏
        單片機的種類繁多,從低端到高端,有以51單片機為代表的8位單片機和以ARM為代表的32位單片機,不同檔次的單片機實現網絡接口的方法不同。對于像ARM等高端處理器一般都可以運行嵌入式操作系統,例如嵌入式Linux。對于無操作系統要求的單片機如何實現網絡接入,我下面將這些方案按TCP/IP協議棧的不同歸結為兩大類:第一類是傳統的軟件TCP/IP協議棧方案;第二類是最新的硬件TCP/IP協議棧方案。下面我就這兩類方案的實現方式進行分析。

        1. MAC+PHY方案

        本文引用地址:http://www.104case.com/article/201611/322046.htm

        所謂的TCP/IP協議棧是一系列網絡協議的統稱,不僅包括我們熟知的TCP協議和IP協議,還有網絡層的ICMP(Internet控制報文)協議、IGMP(Internet組管理)協議、ARP(地址解析)協議,傳輸層的UDP(用戶數據包)協議,應用層的HTTP(超文本傳輸)協議、DNS(域名解析)協議、FTP(文件傳送)協議、SMTP(簡單郵件管理)協議等等。

        傳統的以太網接入方案如下圖,由MCU+MAC+PHY再加入網絡接口實現以太網的物理連接,通過在主控芯片中植入TCP/IP協議代碼實現通信及上層應用。

        圖3-1-1 MAC+PHY以太網方案

        應用這種軟件TCP/IP協議棧方式實現的比較成熟方案有ENC28J60,CS8900A,DM9000,當然也有像STM32F107這類(內部自帶MAC)+PHY等方案。

        由于軟件協議棧操作需要主控MCU不斷地響應中斷,這在很大程度上占用了MCU的運算/時鐘資源。經過測試發現,單線程操作的情況下,MCU的運行速度和數據的處理速度僅能滿足需要,但隨著線程增多,MCU的工作效率直線下降,會嚴重影響通信質量。

        代碼量方面,即便是采用輕量級的TCP/IP協議棧LWIP協議,也會為主控芯片帶來超過40KB的代碼量,這對于本身內存資源匱乏的單片機來說負荷過重。

        再從安全性的角度,設備并入互聯網之后必須考慮網絡安全問題,這種軟件協議棧的方式系統一旦受到復雜的惡意攻擊,單片機很有可能癱瘓掉,這對系統就是致命性打擊,雖然目前網絡技術不斷發展,各類新的加密技術試圖讓通信變得更加安全,但是還會出現各種各樣的漏洞。

        2. 硬件協議棧芯片方案

        硬件協議棧芯片方案如下圖所示。由MCU+硬件協議棧芯片(內含MAC和PHY)直接加網絡接口,便可方便的實現單片機聯網,所有的處理TCP/IP協議的工作都是通過這位MCU的“小秘書”——硬件協議棧芯片來完成。

        圖3-2-1硬件協議棧芯片方案

        這套方案是由WIZnet首次提出,并成功推出以太網系列芯片:W5100、W5200、W5300和W5500。

        所謂硬件協議棧是指通過將傳統的軟件TCP/IP協議棧用硬件化的邏輯門電路來實現,如下圖所示。

        圖3-2-2 TCP/IP硬件協議棧內核原理簡圖

        以太網芯片的內核由傳輸層的TCP、UDP、ICMP、IGMP等協議、網絡層的IP、ARP、PPPoE等協議以及鏈路層的MAC構成,再加上物理層的PHY和外圍的寄存器、內存、SPI接口組成了這一整套硬件化的以太網解決方案。

        這套硬件TCP/IP協議棧代替了以往的MCU來處理這些中斷請求,即MCU只需要處理面向用戶的應用層數據即可,傳輸層、網絡層、鏈路層及物理層全部由外圍WIZnet的芯片完成。這套方案從硬件開銷和軟件開發兩個方面來簡化前面所述的五層網絡模型,簡化產品開發方案。這樣一來,工程師們就不必再面對繁瑣的通信協議代碼,只需要了解簡單的寄存器功能以及Socket編程便能完成產品開發工作的的網絡功能開發部分。

        由于硬件協議棧的加入協助單片機處理了幾乎所有的TCP/IP協議工作,不僅極大地減少了單片機的中斷次數,讓單片機騰出更多資源去完成其他工作,而且硬件化的電路處理協議會更加快速、穩定。經試驗測試,單線程下,該方案的通信速度是軟件協議方案的10倍左右;隨著線程的增加,因為硬件協議棧是通過獨立的Socket進行通信,因而通信速度實現累加,而且單片機工作效率仍然會維持在高位。

        代碼量方面,因為這套方案主要是完成對Socket的編程以及寄存器的調用,因此僅有10K左右的代碼量,遠小于軟件協議方案,對51以及STM32等內存很有限的單片機來說非常適用。

        從成本角度來講,硬件協議棧芯片的價格跟用MAC+PHY比起來基本差不多。而前者簡單易用,用很短時間便能完成產品的開發過程。另外,官方例程庫及上位機程序豐富,也縮短了測試過程,后期基本免于維護。

        最后安全性方面,硬件化的邏輯門電路來處理TCP/IP協議是不可攻擊的,也就是說網絡攻擊和病毒對它無效,這也充分彌補了網絡協議安全性不足的短板。也正是因為這一優勢,硬件協議棧技術在未來物聯網以及智能家居領域有著廣泛的發展前景,讓人們盡情享受現代科技帶來的樂趣的同時,免受安全問題的困擾。

        當然,不可避免的硬件化的協議棧相對來說失去了軟件協議棧那樣的靈活性。目前只支持4個/8個Socket,不能隨時開啟更多Socket。但是,在嵌入式應用中8個Socket已經足夠應對超過大部分的應用。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 大足县| 呼图壁县| 博爱县| 甘孜县| 白银市| 嘉善县| 石楼县| 阿城市| 上饶市| 五原县| 逊克县| 桂平市| 德昌县| 馆陶县| 邮箱| 固原市| 岐山县| 自贡市| 新密市| 隆回县| 通榆县| 徐水县| 普格县| 兴化市| 桃园市| 都昌县| 南投市| 邹城市| 大城县| 东源县| 金秀| 平和县| 绥阳县| 新河县| 郯城县| 长葛市| 荥阳市| 恩施市| 钦州市| 漯河市| 汝州市|