新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 淺談單片機以太網(wǎng)接入方案

淺談單片機以太網(wǎng)接入方案

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

1. MAC+PHY方案

本文引用地址:http://m.butianyuan.cn/article/201611/322046.htm

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

傳統(tǒng)的以太網(wǎng)接入方案如下圖,由MCU+MAC+PHY再加入網(wǎng)絡(luò)接口實現(xiàn)以太網(wǎng)的物理連接,通過在主控芯片中植入TCP/IP協(xié)議代碼實現(xiàn)通信及上層應(yīng)用。

圖3-1-1 MAC+PHY以太網(wǎng)方案

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

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

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

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

2. 硬件協(xié)議棧芯片方案

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

圖3-2-1硬件協(xié)議棧芯片方案

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

所謂硬件協(xié)議棧是指通過將傳統(tǒng)的軟件TCP/IP協(xié)議棧用硬件化的邏輯門電路來實現(xiàn),如下圖所示。

圖3-2-2 TCP/IP硬件協(xié)議棧內(nèi)核原理簡圖

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

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

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

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

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

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

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



評論


技術(shù)專區(qū)

關(guān)閉