新聞中心

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

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

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

1. MAC+PHY方案

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

所謂的TCP/IP協(xié)議棧是一系列網(wǎng)絡(luò)協(xié)議的統(tǒng)稱,不僅包括我們熟知的TCP協(xié)議和IP協(xié)議,還有網(wǎng)絡(luò)層的ICMP(Internet控制報(bào)文)協(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ò)接口實(shí)現(xiàn)以太網(wǎng)的物理連接,通過在主控芯片中植入TCP/IP協(xié)議代碼實(shí)現(xiàn)通信及上層應(yīng)用。

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

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

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

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

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

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

硬件協(xié)議棧芯片方案如下圖所示。由MCU+硬件協(xié)議棧芯片(內(nèi)含MAC和PHY)直接加網(wǎng)絡(luò)接口,便可方便的實(shí)現(xiàn)單片機(jī)聯(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é)議棧用硬件化的邏輯門電路來實(shí)現(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來處理這些中斷請(qǐng)求,即MCU只需要處理面向用戶的應(yīng)用層數(shù)據(jù)即可,傳輸層、網(wǎng)絡(luò)層、鏈路層及物理層全部由外圍WIZnet的芯片完成。這套方案從硬件開銷和軟件開發(fā)兩個(gè)方面來簡化前面所述的五層網(wǎng)絡(luò)模型,簡化產(chǎn)品開發(fā)方案。這樣一來,工程師們就不必再面對(duì)繁瑣的通信協(xié)議代碼,只需要了解簡單的寄存器功能以及Socket編程便能完成產(chǎn)品開發(fā)工作的的網(wǎng)絡(luò)功能開發(fā)部分。

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

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

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

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

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



評(píng)論


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

關(guān)閉