嵌入式網路控制器非常適合網路控制和傳輸的場合。本文將以Myson Century的CS6209網路控制器為例,介紹網路控制器在應用上所需之功能。首先,功能上需整合高速8051、32位元資料SRAM,以及由兩個64位元flash構成的128k位元可編程flash,支援ISP(in system programming)以及IAP(In application programming)功能。為了方便升級,尚需整合32位元的BOOTROM,提供接口與網路兩種介面的晶片內與晶片外flash更新。此外,透過外部記憶體擴展,可以支援最多256位元的程式空間以及160位元的資料空間。
由於整合了10/100乙太網介面(包括MAC和PHY),與資料部分共用32位元SRAM空間用來做乙太網資料封包的暫存,同時支援ARP、IP、ICMP、UDP、TCP、DHCP、HTTP與FTP等常用協議。由於將原來需要SoC和MAC控制器兩個晶片才能解決的網路接入問題整合在一起,因此大大降低產品的成本。網路控制器可使原本需要專門工具、軟體,花費很長的研發時間才能實現的遠端管理、控制等,現在都可以使用普通IE或者NetScape等常用流覽器軟體、透過Internet進行遠端存取、控制,是資訊家電等設備網路化升級的有力工具。
硬體特徵
CS6209是與8051相容的高度整合網路微控制器,其硬體架構如(圖一)所示。通常8051SoC中的12個時脈週期可組成一個機器週期,而在CS6209中只需要1個時脈週期,因此在相同的時脈週期下,CS6209的處理速度是51系列SoC的12倍。它的週邊設備包括10/100bps的乙太網MAC、2個序列埠、2個I2C介面,1個ADC控制器、一個RTC、一個PCMCIA介面以及4套8bit的I/O接口,這比標準的8位元微控制器提供了更多的資源。
《圖一 網路控制器硬體區塊圖》 - BigPic:781x531 |
|
以下分別介紹各個主要功能模組。
整合的乙太網MAC
整合了10/100Mbps的乙太網控制器,並可支援使用乙太網/IEEE802.3協定的物理設備。它透過媒體獨立介面(MII)提供了接收、發送和流量控制機制。MII包含了一個串列管理匯流排,它可以用來設置外部物理設備。MII可以設置為半雙工和全雙工模式,速率可以是10Mbps和100Mbps。另外,為了加速網路協定的處理同時減少CPU的負載,還整合了硬體CheckSum單元。
32位元xdata SRAM
網路控制器包含32位元SRAM,除了用於xdata資料儲存之外,還用於乙太網MAC的收發封包暫存。同時xdata SRAM支援資料封包的硬體checksum。
兩個主/從I2C介面
整合的I2C介面通常用來連結諸如EEPROM或者A/D轉換器之類的外部設定,可以使用主或從兩種模式。此外,I2C介面也是實現ISP和IAP的方式之一。
32個GPIO
32個GPIO都可以直接支援上拉而不需要外部上拉。
計時器/計數器
除了三個與8051功能類似的16bit計時器/計數器,另外還具有可編程的看門狗計時器,可以用作系統監控或者很長時間的定時功能。
數據指標
普通的8051僅有一個16bit的資料指標。為了加速微控制器和記憶體間的資料傳送,因此提供了兩個資料指標,新的資料指標佔用了未使用的SFR的位置。雙數據指針為用戶編程提供了很好的靈活性。
軟體特徵
網路控制器很適合網路傳輸,尤其是在接入Internet時,可以非常方便地用於社區安全管理、監控、家居安全、小型儀器設備的網路化升級和資訊家電等。原本需要專門工具、軟體,且需花費很長研發時間才能實現的遠端管理和控制,現在使用普通IE或者NetScape等常用流覽器軟體,通過Internet即可執行遠端存取和控制,因此是資訊家電等設備網路化升級換代的有力工具。它的處理速度能夠達到一般網路的需求,由於軟體部分提供TCP/IP協定層以及大部分應用層協定,將TCP/IP協定層的底層函數標準化,並把它封裝成API函數。這樣,原來用戶要編寫TCP/IP協議代碼才能解決的問題現在只需調用API函數即可解決,因而大大縮短了產品的開發週期。應用層支援DHCP、HTTP、SMTP、POP3與FTP等常用協定,應用技術門檻極低,特別適合傳統行業的產品改造和升級;同時它也可以實現RS232到乙太網路接口的傳輸,以使資料接入網路。其外部資料登錄端可以是SRAM或者FIFO介面,資料經處理後直接發送至局域網或者連接到Internet用戶,而且雙向通用串口和兩個I2C匯流排介面可以方便地擴展使用。(圖二)為軟體部分協定層圖。
工作原理
每一個乙太網的發送緩衝區都是1.5位元,其接收緩衝區也經常使用,當收到資料時,就把收到的資料放到這個緩衝區中,然後由資料連結層直接從該緩衝區取走資料。資料鏈結層(Data Link Layer)通常包括作業系統中的設備驅動程式和電腦中對應的網路介面卡,它們將一起處理與纜線的物理介面細節資料,其緩衝區可用來暫存要發送或接收的資料。網路層則處理分組在網路中進行的活動。
傳輸層可為兩台主機的應用程式提供端至端的通訊。在TCP/IP協定中有兩個互不相同的協定:TCP和UDP;其中TCP為兩台主機提供可靠的資料通訊,而UDP則提供一種簡單的服務。對於TCP發送過程而言,應用程式把資料先寫到緩衝區中,再寫到TCP的發送緩衝區,然後寫到資料連結層的緩衝區,最後再透過乙太網發送緩衝區到網路上。
TCP的接收資料過程與此類似,每一個TCP的接收緩衝區是可選擇的,如果應用程式要使用這個接收緩衝區,那麼傳輸過來的資料就先寫到這個緩衝區中,之後再從這裏取走,如果沒有這個接收緩衝區,接收來的資料就會直接送給應用程式。
在這種情況下,對於UDP來說,其過程還相對簡單,應用程式只要把緩衝區中的資料送到資料連結層緩衝區中,然後透過乙太網發出去即可,而應用層則要負責處理特定的應用程式細節,這就要求每一個應用程式都有自己的緩衝區,這在一些標準的TCP應用程式(如POP3、SMTP、HTTP及FTP)中是很常見的。
軟體執行流程
- (1)初始化硬體以及RS232介面;
- (2)初始化網路計時器,主要用於TCP協定的超時和重傳機制;
- (3)決定IP位址等網路參數的獲取方式,並初始化網路介面;
- (4)初始化GENFRAME結構,並為其分配空間,此結構用於資料包的收發;
- (5)初始化SOCKET資料結構並為其分配空間,此結構用於處理TCP協定;
- (6)進入主迴圈,接收資料包並作相應的處理。
ISP/IAP
網路控制器的特點在於支援ISP以及IAP功能。ISP為系統可編程,是指電路板上的空白元件可以編程寫入最終用戶代碼,而不需要從電路板上取下元件,已經編程的元件也可以用ISP方式擦除或再編程。IAP為在應用中可編程,是指MCU可以在系統中獲取新代碼並對自己重新編程,即可以用程式來改變程式。
遠端電源管理應用(IP Power Switch)
隨著資訊技術的發展,現代資料中心的規模也在不斷的擴展,資訊系統往往會佔據整個樓層、同一個城市的不同大廈,有時甚至分佈全球,而無論在企業中的資訊設備或者工業自動化的重大系統中,一旦因為系統當機或是由於惡劣的應用環境造成的系統運作中斷、重要資料丟失,都會產生非常大的損失。而遠端電源管理IP Power Switch,只需要將上述重要設備的電源接上IP Power Switch,透過Web server和乙太網口,就可以即時從遠端讓停止工作的機器設備重新開機並恢復運作。
在遠端電源管理的設計上,網路控制器透過GPIO連接到開關電源模組,利用GPIO來控制電源的開關狀態。EEPROM用於存放用戶資訊、系統資訊、開關定時資訊以及網頁數據等。該系統中,網路控制器作為伺服器,用戶只需要利用IE或者Netscape便可以登入伺服器。一旦連接建立後,便可以清楚看到每一個電源的開關狀態,然後就可以集中操控該系統中不同設備的開機與關機,並可設定設備多次開關機的時間。目前IP Power Switch可支援三個電源的開關控制。
結語
網路控制器具有高整合度以及豐富的I/O資源,並能夠使嵌入式系統通過乙太網方便地和遠端電腦進行通訊,因此,可簡便實現遠端電源管理功能。這種遠端電源控制管理系統不僅可以提高設備故障回應時間、增強安全性,而且這種遠端控制模式也徹底改變了人工手動解決問題的低效率,提供了非常高效的管理模式。
(本文由Myson Century世紀民生提供)