作者: Meng He ABI Research指出,目前市場上的無線連接設(shè)備已超過100億部,而到2020年通過無線連接到物聯(lián)網(wǎng)(萬物互聯(lián))的設(shè)備將突破300億部。隨著物聯(lián)網(wǎng)越來越受到人們的重視,許多OEM廠商都發(fā)現(xiàn)自身面臨的壓力也越來越大,他們必須為各種產(chǎn)品提供因特網(wǎng)連接功能,才能從實(shí)現(xiàn)設(shè)備間的通信功能中受益。但是,許多開發(fā)人員并不熟悉如何實(shí)現(xiàn)高度穩(wěn)健的TCP/IP協(xié)議棧。本文將探討在嵌入式系統(tǒng)中有關(guān)支持因特網(wǎng)連接功能的主要問題,以及如何通過新工具幫助開發(fā)人員為系統(tǒng)提供TCP/IP且無需擔(dān)心低層次實(shí)現(xiàn)細(xì)節(jié)問題。 首先,讓我們簡要回顧一下TCP/IP協(xié)議。傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)是連接到因特網(wǎng)的硬件設(shè)備之間用于交換數(shù)據(jù)的通用語言。這些規(guī)則管理著終端操作系統(tǒng)(Windows、iOS、Linux等)之間的交換機(jī)制以及SMTP、FTP、HTTP等一系列具體協(xié)議。 TCP/IP被細(xì)分為不同的“層”(詳見圖1)。因特網(wǎng)數(shù)據(jù)以數(shù)據(jù)片段的格式從應(yīng)用層路由到傳輸層。物理層是在IEEE 802.3規(guī)范所定義的以太網(wǎng)協(xié)議下,數(shù)據(jù)通過“因特網(wǎng)”進(jìn)行物理傳輸?shù)牡胤。以太網(wǎng)有多種不同的規(guī)范版本,可提供各種最大比特率、傳輸模式和傳輸介質(zhì)(光纖、同軸電纜等)。介質(zhì)訪問控制(MAC)是物理層非常重要的部分,MAC地址表示以太網(wǎng)網(wǎng)絡(luò)上節(jié)點(diǎn)的物理地址。每個以太網(wǎng)幀都包含一個源地址和一個目的地址。 ![]() 圖1. 因特網(wǎng)上的數(shù)據(jù)傳輸 應(yīng)用層負(fù)責(zé)提供用戶接口。以下是常見的應(yīng)用層協(xié)議 。 1. 超文本傳輸協(xié)議(HTTP):傳輸與瀏覽萬維網(wǎng)(WWW)相關(guān)的數(shù)據(jù)。 2. 簡單郵件傳輸協(xié)議(SMTP):支持整個因特網(wǎng)上的電子郵件傳輸。 3. 文件傳輸協(xié)議(FTP):用于在因特網(wǎng)上傳輸文件。 4. 域名系統(tǒng)(DNS):翻譯域名。 5. 動態(tài)主機(jī)配置協(xié)議(DHCP):為特定節(jié)點(diǎn)動態(tài)分配IP地址。 6. Telnet:為節(jié)點(diǎn)創(chuàng)建互動的TCP連接。 7. 簡單網(wǎng)絡(luò)時間協(xié)議(SNTP):支持節(jié)點(diǎn)時鐘與參考時鐘同步。 8. 簡單網(wǎng)絡(luò)管理協(xié)議(SNMP):用于監(jiān)控網(wǎng)絡(luò)連接設(shè)備,檢查是否存在發(fā)生故障等需要干預(yù)的情況。 嵌入式TCP/IP協(xié)議棧的兩種最常見用途就是消息傳送和Web頁面顯示。例如,簡單的SMTP消息傳送系統(tǒng)允許微控制器獲得傳感器讀數(shù),并根據(jù)預(yù)設(shè)的間隔將讀數(shù)以消息或電子郵件的形式發(fā)送給中央存儲庫,以便記錄和分析。家庭中可采用這種應(yīng)用每隔一小時給住戶發(fā)送室溫電子郵件,當(dāng)然我們也可進(jìn)一步擴(kuò)展這種使用案例。嵌入式微控制器不僅能讀取溫度信息,而且能監(jiān)控門窗是否鎖好、燈光是否關(guān)閉等。這些系統(tǒng)可以全天候監(jiān)控有關(guān)信息。如果住戶將要工作到很晚才回家,那么他/她可使用HTTP請求微控制器發(fā)送包含所有相關(guān)信息的Web頁面。然后,住戶可通過改變Web頁面上的一些字段,打開某些房間的燈、提升溫度、并執(zhí)行其它任務(wù)。 實(shí)現(xiàn)能夠滿足各個系統(tǒng)要求的以太網(wǎng)子系統(tǒng)有多種不同方式: 1. 以太網(wǎng)控制器模塊 包含TCP/IP硬連線芯片、變壓器和RJ45的控制器模塊能大幅簡化所提供的連接功能。完整的廠商生態(tài)系統(tǒng)可提供各種現(xiàn)成可用的模塊,不僅能加速產(chǎn)品的上市進(jìn)程,同時還提供極具吸引力的價格點(diǎn)。這種方案對于想要快速開發(fā)因特網(wǎng)系統(tǒng)的工程師來說非常理想。例如,開發(fā)人員可選擇Wiznet的WIZ550io、W5100 shield以及Rabbit Semiconductor的以太網(wǎng)模塊RCM6760 MiniCore等模塊。隨著Arduino平臺的日益普及,市場上也開始出現(xiàn)許多兼容于官方Arduino開發(fā)板的模塊。 2. TCP/IP IC加一款MCU 此外,設(shè)計(jì)人員還能將TCP/IP控制器連接到他們的嵌入式微控制器。例如,Microchip的ENC28J60以太網(wǎng)模塊能通過SPI接口直接連接到大多數(shù)的微控制器。這些模塊通常采用獨(dú)立的以太網(wǎng)控制器IC,其具有眾多特性,能夠處理大部分的網(wǎng)絡(luò)協(xié)議要求。這樣的基礎(chǔ)架構(gòu)能幫助設(shè)計(jì)人員構(gòu)建并共享他們自己的以太網(wǎng)項(xiàng)目。例如,Github上有個項(xiàng)目(https://github.com/kmmankad/ENC28J60-PSoC3)就能支持賽普拉斯的可編程片上系統(tǒng)(PSoC)控制器和基于ENC28J60的器件之間的因特網(wǎng)連接;PSoC 3的同一項(xiàng)目同時也可移植到PSoC 5中。這種實(shí)現(xiàn)方案的優(yōu)勢在于它能將微控制器內(nèi)核和其它片上資源釋放出來,以滿足其它系統(tǒng)功能的需求。在硬件層面,我們只需要一個RJ45連接器、磁性元件、一個25 MHz的晶振或振蕩器以及一些無源組件即可。 3. 支持lwIP的單芯片微控制器 輕量級IP(lwIP)是一種廣泛使用的開源TCP/IP協(xié)議棧,專門針對嵌入式系統(tǒng)而精心設(shè)計(jì),并獲得了全球開發(fā)人員網(wǎng)絡(luò)的支持。對許多應(yīng)用來說,lwIP可提供以太網(wǎng)功能,同時能大幅降低MCU的資源占用率。MCU實(shí)現(xiàn)協(xié)議棧從物理上需要MAC和PHY。lwIP對于想要實(shí)現(xiàn)低成本連接功能的設(shè)計(jì)人員來說是一種理想選擇。但是,由于這更像是一種DIY類型的實(shí)現(xiàn)方案,因此開發(fā)人員還必須愿意為解決協(xié)議棧問題而付諸努力。這種實(shí)現(xiàn)方案的挑戰(zhàn)在于系統(tǒng)資源的使用以及動態(tài)分配MAC地址的功能。PSoC的動態(tài)可重配置屬性使得解決上述挑戰(zhàn)成為可能。PSoC的數(shù)字側(cè)由通用數(shù)字模塊(UDB)組成,可用于平衡配置粒度并支持高效的實(shí)現(xiàn)方案。這種方法的基礎(chǔ)就在于能定制器件數(shù)字操作,從而滿足應(yīng)用要求。例如,片上DMA使我們能設(shè)計(jì)出可配置的RX和TX FIFO。PSoC設(shè)計(jì)環(huán)境PSoC Creator支持開發(fā)人員構(gòu)建自己的以太網(wǎng)組件,并將其作為系統(tǒng)級設(shè)計(jì)中的虛擬芯片。 連接功能代表著未來需求,世界正日益依賴因特網(wǎng)來促進(jìn)并擴(kuò)展通信。隨著芯片廠商推出具有更多實(shí)現(xiàn)選項(xiàng)和更高靈活性的成熟產(chǎn)品,設(shè)計(jì)人員可根據(jù)所需級別從現(xiàn)成可用的交鑰匙模塊到DIY嵌入式方案中做出購買選擇。 |