1 引言 隨著Internet應(yīng)用日益普及,信息共享的程度不斷提高,如何通過Internet共享以單片機(jī)應(yīng)用系統(tǒng)為中心的小型嵌入式設(shè)備的信息,成為當(dāng)今電子界的熱門話題。傳統(tǒng)的Internet應(yīng)用是以PC為中心,現(xiàn)在的Internet應(yīng)用正在轉(zhuǎn)到以嵌入式設(shè)備為中心。據(jù)網(wǎng)絡(luò)專家預(yù)測,將來在Internet上傳輸?shù)男畔⒅,?0%的是來自小型嵌入式系統(tǒng)。 利用單片機(jī)實(shí)現(xiàn)嵌入式互聯(lián)網(wǎng)方案的技術(shù)難點(diǎn)是如何利用單片機(jī)本身有限的資源對信息進(jìn)行TCP/IP協(xié)議處理,使之變成可以在互聯(lián)網(wǎng)上傳輸?shù)腎P數(shù)據(jù)包。從解決這個技術(shù)問題出發(fā),目前普遍存在以下兩種方案: (1)“PC網(wǎng)關(guān)+專用網(wǎng)”方案:采用專用網(wǎng)絡(luò)(如RS232,RS485,CAN Bus等)把一小批單片機(jī)連接在一起,然后再將專用網(wǎng)絡(luò)接到一臺 PC上。這臺PC起網(wǎng)關(guān)的作用,將專用網(wǎng)絡(luò)上的信息轉(zhuǎn)換為TCP/IP協(xié)議數(shù)據(jù)包,然后發(fā)到網(wǎng)上實(shí)現(xiàn)信息共享。這個方案可以連接多種單片機(jī),但存在以下缺點(diǎn):它依賴PC機(jī)作為網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換在多個單片機(jī)系統(tǒng)分散的情況下,專用網(wǎng)絡(luò)布線極為不便;需要在PC機(jī)上安裝專門的協(xié)議轉(zhuǎn)換軟件,而這些軟件通常是由第三方軟件商提供,費(fèi)用較高。 (2)“32位MCU+RTOS”方案:采用32位高檔單片機(jī),在RTOS(實(shí)時多任務(wù)操作系統(tǒng))的平臺上進(jìn)行軟件開發(fā),在嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP 的協(xié)議處理。由于采用高檔單片機(jī),這個方案可以完成很多復(fù)雜的功能。它的缺點(diǎn)是:高檔單片機(jī)價(jià)格較高,開發(fā)周期較長;并需要購買昂貴的RTOS開發(fā)軟件,對開發(fā)人員的開發(fā)能力要求較高。 鑒于上述兩種方案的缺點(diǎn),提出了“MCU+虛擬軟件包”的方案,即采用UBICOM公司的8位超高速單片機(jī)SX52BD,通過用軟件固化TCP/IP協(xié)議來實(shí)現(xiàn)互聯(lián)網(wǎng)接入功能。由于SX52BD單片機(jī)的速度極高,能夠?qū)崿F(xiàn)實(shí)時多任務(wù)操作,可以在 MCU執(zhí)行數(shù)據(jù)采集和控制功能的同時把數(shù)據(jù)打包并傳送到互聯(lián)網(wǎng)上。其優(yōu)點(diǎn)很明顯:用8位微控制器通過ISP接入互聯(lián)網(wǎng),不需要使用PC機(jī)或高檔單片機(jī);硬件電路相對簡單,系統(tǒng)成本低;由于UBICOM公司免費(fèi)提供用于互聯(lián)網(wǎng)處理的軟件模塊,可以大幅度的縮短開發(fā)周期并降低開發(fā)成本。 2 具體應(yīng)用方案 2.1 基于SX52BD的Web服務(wù)器方案 基于SX52BD的Web服務(wù)器的硬件平臺如圖1 2.2 主要芯片介紹 (1)SX52BD:SX52BD 是UBICOM公司生產(chǎn)的一款RISC指令集的單片機(jī),片上帶有4k×16 位的Flash存儲器和256×12位的SRAM,具有在線系統(tǒng)編程調(diào)試功能。由于采用CPU并行流水線方式及單時鐘周期指令,在50MHz晶振驅(qū)動下指令執(zhí)行速度可達(dá)50MIPS。該單片機(jī)的最大特點(diǎn)就是虛擬外設(shè)功能,即CPU通過執(zhí)行虛擬軟件模塊直接驅(qū)動普通I/O口實(shí)現(xiàn)硬件外設(shè)功能(如UART、I 2C、SPI、Caller ID、FSK等)。 (2)RTL8019AS:RTL8019AS是RealTek公司生產(chǎn)的一種全雙工以太網(wǎng)控制器。它內(nèi)置16KB的SRAM,收發(fā)可同時達(dá)到10Mbps的速率,支持Ethernet II和IEEE802.3、 10Base5、10Base2、10BaseT。 (3)AT24C256:AT24LC256是ATMEL公司生產(chǎn)的一種串行256KB的 EEPROM存儲器,采用CMOS工藝,通過2根數(shù)據(jù)線和外界通信,兼容I 2C總線接口,可分別設(shè)為硬件和軟件寫保護(hù),10萬次的擦寫,40年以上的數(shù)據(jù)保護(hù)。在此方案,主要用來存儲Web服務(wù)器的網(wǎng)頁信息,它可以處理Web頁面、圖象文件、PDF文檔記憶其他文件。 2.3 Internet協(xié)議棧 Internet協(xié)議棧是SX52BD虛擬外設(shè)的一個重要的實(shí)現(xiàn),是基于 SX52BD的應(yīng)用系統(tǒng)實(shí)現(xiàn)與Internet互聯(lián)的基礎(chǔ)。SX52BD可以運(yùn)行流行的各種互聯(lián)網(wǎng)協(xié)議棧,如HTTP、SMTP、POP3、TCP、UDP、ICMP、IP及PPP,還可以實(shí)現(xiàn)Ethernet (IEEE802.3)協(xié)議。 由于以太網(wǎng)作為物理非常普及,目前大部分的局域網(wǎng)都使用以太網(wǎng)。圖2所示為用匯編語言實(shí)現(xiàn)的以太網(wǎng)協(xié)議棧,即 TCP/IP軟件的四層抽象分層:最底層,是專門用來傳輸IP包的物理層,即 NIC設(shè)備驅(qū)動程序;向上一層,是網(wǎng)絡(luò)層,負(fù)責(zé)數(shù)據(jù)在網(wǎng)上的端到端傳輸;再向上,是我們熟悉的 TCP,UDP的傳輸層,一般的應(yīng)用程序都是建立在傳輸層上的,例如Web服務(wù)、簡單郵件服務(wù);在應(yīng)用層,用戶可以選擇HTTP,SMTP,DHTP中的任意一種作為單片機(jī)系統(tǒng)與Internet遠(yuǎn)程管理終端之間的通信協(xié)議,例如,用HTTP 協(xié)議可以構(gòu)造Web服務(wù)器,用SMTP協(xié)議可以構(gòu)造郵件服務(wù)的客戶端。 對應(yīng)圖1所示的硬件平臺,其運(yùn)行的協(xié)議棧結(jié)構(gòu)如下:應(yīng)用層 HTTP;傳輸層 TCP;網(wǎng)絡(luò)層 IP/ICMP;物理層 Ethernet NIC Driver。 2.4 工作流程和軟件設(shè)計(jì) RJ45為單片機(jī)系統(tǒng)與局域網(wǎng)的接口。RTL8019AS是處理以太網(wǎng)協(xié)議的,它使此系統(tǒng)可以直接通過RJ45連到以太網(wǎng)上。其數(shù)據(jù)的流向?yàn)椋赫埱笮畔木钟蚓W(wǎng)中來,通過RJ45送到 RTL8019AS,處理后的數(shù)據(jù)包送入SX52BD協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進(jìn)行解析,得到原始請求信息。請求信息再經(jīng)過SX52BD的處理,產(chǎn)生回復(fù)信息;貜(fù)信息到以太網(wǎng)的過程與上面正好相反。 整個系統(tǒng)的軟件流程如圖3所示。 3 以太網(wǎng)控制應(yīng)用 該方案真正實(shí)現(xiàn)將8位SX52BD單片機(jī)系統(tǒng)直接與Internet相連。可以使用PC機(jī)通過Internet遠(yuǎn)程訪問單片機(jī)系統(tǒng);也可以使用單片機(jī)系統(tǒng)將有用的信息通過Internet發(fā)送到遠(yuǎn)端的PC或其它終端上。例如在Internet上可以通過網(wǎng)頁瀏覽方式與單片機(jī)系統(tǒng)進(jìn)行遠(yuǎn)程數(shù)據(jù)交換。在工業(yè)控制方面,可以實(shí)現(xiàn)基于Internet的遠(yuǎn)程數(shù)據(jù)采集及環(huán)境自動監(jiān)測,例如,可以用在變電站、繼電器的狀態(tài)參數(shù)遠(yuǎn)程監(jiān)測。在交通運(yùn)輸體系中,可以開發(fā)出電子警察從而實(shí)現(xiàn)交通關(guān)卡無人值守,或者可以遠(yuǎn)程監(jiān)視自動售貨機(jī)的商品的數(shù)量。在智能小區(qū)管理方面則可以實(shí)現(xiàn)更多的功能,例如小區(qū)管理中心可以通過小區(qū)內(nèi)聯(lián)網(wǎng)實(shí)現(xiàn)網(wǎng)絡(luò)自動抄表。 網(wǎng)絡(luò)家電控制界面可用java語言編寫的Applet 程序,配以各種發(fā)射和接收控制芯片,來實(shí)現(xiàn)家電電源控制、電視遙控和電風(fēng)扇遙控等功能。 |