基于SX52BD單片機的以太網(wǎng)控制應用
1引言 隨著internet應用日益普及,信息共享的程度不斷提高,如何通過internet共享以單片機應用系統(tǒng)為中心的小型嵌入式設(shè)備的信息,成為當今電子界的熱門話題。傳統(tǒng)的internet應用是以pc為中心,現(xiàn)在的internet應用正在轉(zhuǎn)到以嵌入式設(shè)備為中心。據(jù)網(wǎng)絡(luò)專家預測,將來在internet上傳輸?shù)男畔⒅?,?0%的是來自小型嵌入式系統(tǒng) [1]。 利用單片機實現(xiàn)嵌入式互聯(lián)網(wǎng)方案的技術(shù)難點是如何利用單片機本身有限的資源對信息進行tcp/ip協(xié)議處理,使之變成可以在互聯(lián)網(wǎng)上傳輸?shù)膇p數(shù)據(jù)包。從解決這個技術(shù)問題出發(fā),目前普遍存在以下兩種方案 [2]: (1)“pc網(wǎng)關(guān)+專用網(wǎng)”方案:采用專用網(wǎng)絡(luò)(如rs232,rs485,can bus等)把一小批單片機連接在一起,然后再將專用網(wǎng)絡(luò)接到一臺 pc上。這臺pc起網(wǎng)關(guān)的作用,將專用網(wǎng)絡(luò)上的信息轉(zhuǎn)換為tcp/ip協(xié)議數(shù)據(jù)包,然后發(fā)到網(wǎng)上實現(xiàn)信息共享。這個方案可以連接多種單片機,但存在以下缺點:它依賴pc機作為網(wǎng)關(guān)進行協(xié)議轉(zhuǎn)換在多個單片機系統(tǒng)分散的情況下,專用網(wǎng)絡(luò)布線極為不便;需要在pc機上安裝專門的協(xié)議轉(zhuǎn)換軟件,而這些軟件通常是由第三方軟件商提供,費用較高。 (2)“32位mcu+rtos”方案:采用32位高檔單片機,在rtos(實時多任務(wù)操作系統(tǒng))的平臺上進行軟件開發(fā),在嵌入式系統(tǒng)中實現(xiàn)tcp/ip 的協(xié)議處理。由于采用高檔單片機,這個方案可以完成很多復雜的功能。它的缺點是:高檔單片機價格較高,開發(fā)周期較長;并需要購買昂貴的rtos開發(fā)軟件,對開發(fā)人員的開發(fā)能力要求較高。 鑒于上述兩種方案的缺點,提出了“mcu+虛擬軟件包”的方案,即采用ubicom公司的8位超高速單片機sx52bd,通過用軟件固化tcp/ip協(xié)議來實現(xiàn)互聯(lián)網(wǎng)接入功能。由于sx52bd單片機的速度極高,能夠?qū)崿F(xiàn)實時多任務(wù)操作,可以在 mcu執(zhí)行數(shù)據(jù)采集和控制功能的同時把數(shù)據(jù)打包并傳送到互聯(lián)網(wǎng)上。其優(yōu)點很明顯:用8位微控制器通過isp接入互聯(lián)網(wǎng),不需要使用pc機或高檔單片機;硬件電路相對簡單,系統(tǒng)成本低;由于ubicom公司免費提供用于互聯(lián)網(wǎng)處理的軟件模塊,可以大幅度的縮短開發(fā)周期并降低開發(fā)成本。 2 具體應用方案 2.1 基于sx52bd的web服務(wù)器方案
基于sx52bd的web服務(wù)器的硬件平臺如圖1
2.2 主要芯片介紹
(1)sx52bd:sx52bd 是ubicom公司生產(chǎn)的一款risc指令集的單片機,片上帶有4k×16 位的flash存儲器和256×12位的sram,具有在線系統(tǒng)編程調(diào)試功能。由于采用cpu并行流水線方式及單時鐘周期指令,在50mhz晶振驅(qū)動下指令執(zhí)行速度可達50mips。該單片機的最大特點就是虛擬外設(shè)功能,即cpu通過執(zhí)行虛擬軟件模塊直接驅(qū)動普通i/o口實現(xiàn)硬件外設(shè)功能(如uart、i 2c、spi、caller id、fsk等)。 (2)rtl8019as:rtl8019as是realtek公司生產(chǎn)的一種全雙工以太網(wǎng)控制器。它內(nèi)置16kb的sram,收發(fā)可同時達到10mbps的速率,支持ethernet ii和ieee802.3、 10base5、10base2、10baset。 (3)at24c256:at24lc256是atmel公司生產(chǎn)的一種串行256kb的 eeprom存儲器,采用cmos工藝,通過2根數(shù)據(jù)線和外界通信,兼容i 2c總線接口,可分別設(shè)為硬件和軟件寫保護,10萬次的擦寫,40年以上的數(shù)據(jù)保護。在此方案,主要用來存儲web服務(wù)器的網(wǎng)頁信息,它可以處理web頁面、圖象文件、pdf文檔記憶其他文件。 2.3 internet協(xié)議棧internet協(xié)議棧是sx52bd虛擬外設(shè)的一個重要的實現(xiàn),是基于 sx52bd的應用系統(tǒng)實現(xiàn)與internet互聯(lián)的基礎(chǔ)。sx52bd可以運行流行的各種互聯(lián)網(wǎng)協(xié)議棧,如http、smtp、pop3、tcp、udp、icmp、ip及ppp,還可以實現(xiàn)ethernet (ieee802.3)協(xié)議。 由于以太網(wǎng)作為物理非常普及,目前大部分的局域網(wǎng)都使用以太網(wǎng)。圖2所示為用匯編語言實現(xiàn)的以太網(wǎng)協(xié)議棧 [3,4],即 tcp/ip軟件的四層抽象分層:最底層,是專門用來傳輸ip包的物理層,即 nic設(shè)備驅(qū)動程序;向上一層,是網(wǎng)絡(luò)層,負責數(shù)據(jù)在網(wǎng)上的端到端傳輸;再向上,是我們熟悉的 tcp,udp的傳輸層,一般的應用程序都是建立在傳輸層上的,例如web服務(wù)、簡單郵件服務(wù);在應用層,用戶可以選擇http,smtp,dhtp中的任意一種作為單片機系統(tǒng)與internet遠程管理終端之間的通信協(xié)議,例如,用http 協(xié)議可以構(gòu)造web服務(wù)器,用smtp協(xié)議可以構(gòu)造郵件服務(wù)的客戶端。
對應圖1所示的硬件平臺,其運行的協(xié)議棧結(jié)構(gòu)如下:應用層 http;傳輸層 tcp;網(wǎng)絡(luò)層 ip/icmp;物理層 ethernet nic driver。 2.4 工作流程和軟件設(shè)計