單芯片以太網瘦服務器的實現
摘 要:MC9S12NE64是內置以太網MAC層和PHY層的16位網絡單片機。本文介紹如何在開發之初,為NE64建立硬件開發平臺和軟件調試平臺,以及如何利用開放源代碼,在NE64上實現單芯片的以太網服務器。
關鍵詞:單片機;嵌入式;以太網;服務器
引言
隨著網絡應用的推廣,網絡的概念逐漸由PC向工控模塊上轉移,如何充分利用網絡協議,進行數據采集或者遠程控制越來越受到了行業的關注。
進行以太網服務器的開發時,一般的做法是MCU或者DSP加上網卡芯片。這樣做可以根據設計應用的領域,選擇速度資源合適的控制芯片,和外擴芯片配合,達到功能和成本的最優化。如果控制芯片中能夠集成以太網的MAC層和PHY層,以此開發的系統當然會在靈活性方面更勝一籌。Freescale公司在最近推出的網絡芯片MC9S12NE64便是在集成度方面的一次開拓性嘗試。
MC9S12NE64單片機特點
MC9S12NE64是Freescale公司在2004年推出的一款S12系列的網絡單片機。它內部集成了以太網控制模塊和以太網物理層驅動模塊,兼容IEEE 802.3標準。和常用的網卡芯片一樣,NE64的工作模式能夠設定為10Mbps/100Mbps全雙工/半雙工,并且擁有自適應的功能,可以滿足不同物理環境的要求。
NE64芯片與一般網卡芯片不同的是它的以太網緩沖區的設計,一般網卡芯片使用FIFO作為緩沖區,這種設計可以最大限度的發揮緩沖區的作用。NE64內部則是使用3塊RAM作為緩沖區,兩塊用于接收,一塊用于發送,而且RAM大小可以用戶設定。因為用于控制,以太網數據包一般少用到1.5KB的最大傳輸,所以這種用戶設定大小的緩沖RAM帶來了應用上的靈活性,而節約下來的RAM也可以被用戶程序使用。
NE64的CPU是速度為50MHz的明星內核(Star Core),總線時鐘可以達到25MHz,此外它還有8KB的片內RAM和64KB的片內Flash,因此只是一塊NE64芯片,就可以在眾多中低端網絡應用領域取代以往的外擴芯片設計模式。
除了以上資源以外,MC9S12NE64內部還集成8路10位ADC,各種串口(2個SCI、1個SPI、1個I2C),以及一些單片機常用模塊,如定時器、振蕩器等,功能足夠強大。
NE64的封裝形式有112引腳LQFP和80引腳QFP兩種,112引腳的封裝形式引出了總線擴展用的幾組I/O,便于總線的擴展。
在線開發方法
對于新型單片機,最重要的是要熟知它的特性,建立開發環境,然后著手開發。筆者制作了基于NE64的硬件開發平臺,同時繼承實驗室以前的積累,編寫了片上調試監控程序,用于軟件調試。以此為開發環境,實現了一個以太網服務器,用于以太網數據和串口數據的轉換,詳細介紹如下。
硬件開發
評論