隨著8位元微控制器(MCU)功能的提升,將嵌入式TCP/IP協定堆疊整合到其中的可行性也越來越高。多年來,MCU製造商及其協力工具供應商一直都有供應TCP/IP堆疊。這些堆疊都特別針對8位元MCU開發,而MCU本身具備了程式記憶體和隨機存取記憶體(RAM),由於實施最佳化設計的結果,使8位元MCU的性能大幅提升許多。
一直以來,人們對於網路都有一項錯誤認知,認為當一個10BASE-T裝置連接到一個配備100BASE-T裝置的網路時,將會使網路速度降低為10Mbit/s;事實上,目前所使用的大多數交換器和路由器,都有足夠能力將一個通道上的10Mbit/s流量轉換成100Mbit/s,甚至更高的上鏈(Uplink)速度,因此並不會出現使網路速度降低的問題出現。
圖1為一個非常簡單的感測器應用,其中搭載了12位元類比數位(A/D)轉換器模組的8位元MCU,連接到一個10BASE-T乙太網路介面控制器,並且用於顯示感測器資訊。
|
圖1 具備網路能力的溫度感測器 |
乙太網路介面主掌周邊元件
乙太網路介面元件有許多選擇,其中大多數是以高速並列匯流排為設計對象。這些元件對於8位元MCU而言非常笨重,因為它們占用8位元MCU上的許多I/O接腳,迫使應用系統採用較高接腳數元件,並且由於這些元件的介面方式採手動操作而非透過8位元MCU上的標準周邊處理,因此造成TCP/IP堆疊效能下降。目前市面上已出現適用於上述應用的乙太網路控制器,此款乙太網路控制器能提供二十八支接腳QFN的較小尺寸、整合8K位元組的RAM和SPI介面。
微控制器的選擇取決於記憶體需求和周邊功能模組,一個典型的TCP/IP堆疊占用約20K位元組程式記憶體,這意謂可以採用一個約32K位元組的元件,然後留下12K位元組支援其他應用需求,就目前市面上的網路感測器而言,12K位元組已經能夠為主要應用程式碼提供非常充裕的空間,通常一顆微控制器可提供包含一個十通道12位元類比數位(A/D)轉換器、兩組比較器(Analog Comparator)、脈寬調變(PWM)、SPI、I2C和USART等周邊。
記憶體選擇攸關儲存空間
建構嵌入式Web伺服器必須考慮Web網頁該儲存到何處,當只出現一或二個網頁的簡單設計時,可以儲存在MCU的內部程式記憶體;不過,公司的行銷部門將無法就此滿足,因此,可以從許多外部記憶體方案去選擇最適用的MCU,包含串列介面的EEPROM、Serial EEPROM,和串列介面的快閃記憶體(Serial Flash);Serial EEPROM可以提供多達512K位元的儲存空間,而Serial Flash記憶體則提供32M位元的儲存空間。
協定應用控制資料傳輸
嵌入式TCP/IP應用設計的一個重要步驟,就是選擇資訊傳輸協定。TCP提供一個強韌的交握協定(Handshaking Protocol)以達到可靠的資料傳輸。此外,其資料量也比用戶資料訊息協定(User Datagram Protocol, UDP)大三倍,當應用是須要提供Web網頁服務時就需要TCP。然而,若只須要將資訊傳輸到一個集中節點,可以選擇將韌體加於UDP以提高其強韌性,且仍能維持小於TCP的尺寸。
其他所需的協定,包括提供動態IP位址組態的DHCP,仲裁位址和IP的ARP,以及對Ping指令有很大助益的ICMP協定。這可以讓應用系統有能力回應Echo Request或Ping指令,協助對應網路上的連接裝置進行除錯。圖2為典型的TCP/IP協定堆疊。
|
圖2 典型TCP/IP協定堆疊 |
建立Web網頁確立網路功效
最後的設計部分就是建立Web網頁,Web網頁製作的軟體須要將大量資訊置入HTML Web網頁,因此將占用很多空間。若您不想在寶貴的Serial EEPROM中塞滿一大堆資訊,Windows Notepad程式將是您的最佳工具。
一種限制記憶體需求的創新方案是將圖形儲存到網路上的伺服主機,然後由Web網頁參照那些圖形,因此當圖形占用大量記憶體,卻仍可提供一個功能豐富的使用者介面。一旦完成硬體和Web網頁製作,就可以下載到記憶體並啟動感測器;如果使用一台Web伺服主機,則在您的瀏覽器輸入IP位址即可查看網頁顯示的感測器資訊。
(本文作者為Microchip先進微控制器架構部門應用經理)