| 摘要:討論UBICOM公司(原SCENIX公司)的SX52BD100單片機構建Webserver的具體方案;給出硬件構成框圖,并分析每一部分的作用、完成功能以及軟件流程圖。為了突出這種單片機的虛擬外設的特點,特別詳細地說明網(wǎng)絡協(xié)議和協(xié)議棧的具體實現(xiàn)。 關鍵詞:網(wǎng)絡單片機 協(xié)議棧 虛擬外設 信息家電 WebServer 前 言 Internt的日益普及,信息共享程度的不斷提高,給工作和生活帶來了極大的方便,F(xiàn)在,上網(wǎng)瀏覽對于人們來說是一件很平常的事情。不僅如此,架構一個WebServer,做自己的主頁也是司空見慣的。一般情況下,人們通過一臺上網(wǎng)的電腦來建立WebServer。在這里將討論另外一種方法:通過單片機來建立WebServer。之所以會想到用單片機來實現(xiàn)WebServer,是因為隨著嵌入式系統(tǒng)的迅猛發(fā)展和IA(信息電器)的出現(xiàn),以單片機為中心的應用系統(tǒng)將搭上Internet的快車逐步取代傳統(tǒng)的以PC為中心的應用,成為未來Internet發(fā)展中的主力軍。 一、具體應用方案 1.基于單片機的WebServer方案 基于單片機的WebServer的硬件平臺如圖1所示。  2.主要芯片介紹 (1)SX52BD100 SX52BD100是UBICOM公司生產(chǎn)的一款RISC指令集的單片機,片上帶有4k×16位的Flash存儲器和262×8位的RAM。由于采用CPU并行流水線方式及單時鐘周期指令,在100MHz晶振驅(qū)動下指令執(zhí)行速度可達100MIPS.該單片機的最大特點就是虛擬外設功能,即通過軟件對I/O口進行靈活的配置,CPU執(zhí)行虛擬軟件模塊就可以驅(qū)動普通的I/O口來模擬外設的功能,比如UART、SPI、IIC和FSK等。當然,令人驚奇的是,SX52BD100可以通過虛擬外設功能來運行網(wǎng)絡協(xié)議線,例如TCP、IP、HTTP以及SMTP等。 (2)RTL8019AS RTL8019AS是RealTek公司出品的一種全雙工以太網(wǎng)控制器。它自帶16KB的SRAM,工作在Ethernet II和IEEE82.3、10Base5、10Base2、10BaseT下,與NE2000兼容。 (3)24LC256 24LC256是Microchip公司生產(chǎn)的一種串行32KB的E2PROM存儲器,采用CMOS工藝,通過2根數(shù)據(jù)線和外界通信,兼容I2C總線接口,可設為硬件寫保護,10萬次的擦寫,200年以上的數(shù)據(jù)保護。 3.工作流程和軟件設計 RJ45為此系統(tǒng)與局域網(wǎng)的接口。由于大部分局域網(wǎng)都采用以太網(wǎng),這里的RTL8019AS就是處理以太網(wǎng)協(xié)議(IEEE802.3)的。數(shù)據(jù)的流向為:請求信息從局域網(wǎng)中來,通過RJ45送到RTL8019AS,處理后的數(shù)據(jù)包送入SX52BD100協(xié)議棧,由協(xié)議棧對數(shù)據(jù)包進行解析,得到原始請求信息。請求信息再經(jīng)過SX52BD100的處理,產(chǎn)生回復信息。回復信息到局域網(wǎng)的過程與上面正好相反。 整個系統(tǒng)的軟件流程如圖2所示。 圖1中的E2PROM24LC256用來存儲WebServer的網(wǎng)頁信息。它可以處理Web頁面、圖像文件、PDF文檔記憶其它文件。當然,它不能像PC上WebServer中的硬盤那樣可以存儲大量的頁面。它的容量決定了WebServer的資源文件的大小。 二、網(wǎng)絡協(xié)議棧的實現(xiàn) 網(wǎng)絡協(xié)議通常分不同層次進行開發(fā),每一層分別負責不同的通信功能。一個協(xié)議族,比如TCP/IP,是一組不同層次上的多個協(xié)議的組合。TCP/IP通常被認為是一個四層協(xié)議系統(tǒng),如圖3所示。每一層負責不同的功能。 (1)數(shù)據(jù)鏈路層,有時也稱為網(wǎng)絡接口層。通常包括操作系統(tǒng)中的設備驅(qū)動程序和計算機對應的網(wǎng)絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節(jié)。 (2)網(wǎng)絡層,有時也稱作互聯(lián)網(wǎng)層。處理分組在網(wǎng)絡中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)。這里主要討論IP協(xié)議。 (3)傳輸層主要為兩臺主機上的應用程序提供端到端的通信。TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應用程序交給它們的數(shù)據(jù)分組,設置發(fā)送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端通信,因此應用層可以忽略所有這些細節(jié)。 (4)應用層負責處理特定應用程序細節(jié)。幾乎各種不同的TCP/IP實現(xiàn)都會提供下面這些應用; ①HTTP超文本傳輸控制協(xié)議; ②TELNET遠程登錄; ③FTP文件傳輸協(xié)議; ④SMTP簡單郵件傳送協(xié)議; ⑤SNMP簡單網(wǎng)絡管理協(xié)議。 這里主要討論HTTP協(xié)議。 因為數(shù)據(jù)鏈路層主要是網(wǎng)絡接口卡及驅(qū)動,由RTL8019AS來實現(xiàn),所以下面討論網(wǎng)絡層、傳輸層和應用層協(xié)議棧的實現(xiàn)。 |