嵌入式網關是基于Internet技術的分布式設備網絡平臺的關鍵。它提供一個不同協議網絡通信系統(tǒng)(如RS232接口、RS485接口、RF接口等)和以太網甚至是萬維網的連接。嵌入式網關提供嵌入式Web服務器以及對各種接口的連接方法。嵌入式Web服務器也是專門為嵌入式設備而設計的一種小巧精悍的Web服務器,能夠運行于嵌入式TCP/IP協議棧上,并能夠提供幾乎所有的傳統(tǒng)Web服務器所能夠提供的功能。
1 利用嵌入式網關的工廠管理方案
工廠內部利用4 8 5線或者以太網來傳遞指令,并且可以采用2種方法對監(jiān)控對象故障發(fā)送報警信息:用標準的MODEM命令發(fā)送GSM短消息或通過SMTP客戶端發(fā)電子郵件。萬維網與控制網的交互是借助于嵌入式網關進行的。當控制終端通過萬維網向作為智能節(jié)點的現場設備發(fā)送控制信息時,它首先基于TCP/IP協議將信息發(fā)送給網關,再由網關根據現場設備總線采用相應的TCP/IP協議、RS485協議、RS232協議發(fā)送給相應的現場設備。反過來也是這樣,嵌入式網關主要負責現場協議間的相互轉化,通過嵌入式網關解決了不同協議標準的系統(tǒng)集成問題,如圖1所示。
2 硬件子系統(tǒng)
Jupiter是韓國ADC公司生產的32位高速雙以太網處理器,是一款低成本、高性能、建立在以太網系統(tǒng)基礎之上的高性能價格比的處理器。該芯片內含2個10/1 00Mb/s自適應以太網接口,廣泛應用于集線器和路由器的設計,其最大優(yōu)點類似于ARM內核的內建32位EISC處理器,支持uClinux操作系統(tǒng),是當今市場EISC系列的一個代表產品。Jupiter(EISC結構)與CISC芯片相比具有優(yōu)化嵌入式應用專長、代碼優(yōu)化,而芯片結構外平相當。Jupiter指令的易操作性使得硬件功能實現變得更簡單。
Jupiter處理器工作頻率50MHz,采用16位單周期指令集,運算速度快;內含4K Cache、2個10/100Mb/s自適應雙以太網控制器、最大支持640×480的彩色STNLCD控制器、2個串行的UART、2個DMA、串行SIO控制器、4個3 2位定時器及可編程I/O口、1個中斷控制器、DRAM控制器、ROM/SRAM控制器;芯片系統(tǒng)管理器還包括內部3 2位總線的仲裁器和擴展存儲器控制器;有8個3 2MB存儲器空間可供用戶擴展;處理器內建DHCP Client(含PPPoE、Proxy、DNS)及DHCP Server兩項功能,可廣泛應用于IP共享器、Sohu網關、工業(yè)現場Web服務器和瀏覽器、家庭網關、ADSL、工控網絡控制器等。韓國ADC公司的Jupiter芯片與其他公司的比較如表1所示。
3 軟件結構
傳統(tǒng)的嵌入式開發(fā)所針對的是一些相對簡單的應用。通常只有一個簡單(或固定的幾個)的應用運行,實現的任務簡單,并且是針對具體應用的,所以不需要復雜的任務管理、調度機制。從工程設計夠用就行的角度看,使用簡單的方法燒寫ROM,系統(tǒng)啟動后直接執(zhí)行該程序就可以了,根本不需要操作系統(tǒng)參與,開發(fā)人員能夠了解所有應用啟動,資源管理細節(jié),并能夠管理它們。 嵌入式網關根本作用是把嵌入式設備同現有的以太網絡連接起來,但又在很大程度上保持原有嵌入式網絡的各自功能,所以網關必須具有解析多種協議的能力。對于這種較為復雜的應用,傳統(tǒng)嵌入式設計的方法已經無法滿足要求,必須尋求操作系統(tǒng)以應付多任務和復雜任務的處理。
uCliux是Linux操作系統(tǒng)的一種,是由Linux2.0內核發(fā)展來的,是專為沒有MMU的微處理器設計的嵌入式Linux操作系統(tǒng)。因為大多數內核源代碼都被重寫,uClinux的內核要比原Linux2.0內核小的多,但保留了Linux 操作系統(tǒng)的主要優(yōu)點:穩(wěn)定性,優(yōu)異的網絡能力以及優(yōu)秀的文件系統(tǒng)支持.uClinux中u表示Micr0,小的意思,C表示Cntrol,控制的意思,所以uClinux就是MicrO-C0ntroller-Linux,字面上的理解就是“針對微控制領域而設計的Linux系統(tǒng)”。
uClinux可以通過定制使內棱小型化,還可以加上GUI(圖形用戶界面)和定制應用程序,并將其放在ROM、RAM、Flash或Disk On Chip中啟動。由于嵌入式uClinux操作系統(tǒng)的內核定制高度靈活性,開發(fā)者可以很容易地對其進行按需配置,來滿足實際應用需要。又由于uClinux是源代碼公開的,因此開發(fā)人員只要了解內核原理就可以自己開發(fā)各類驅動程序。
Jupiter芯片是沒有內存管理單元(MMU)的處理器,而uClinux很好地解決了沒有MMU內存管理問題,采用存儲器的分頁管理.系統(tǒng)在啟動時把實際存儲器進行分頁。系統(tǒng)對于內存的訪問是直接的(它對地址的訪問不需要經過MMU,而是直接送到地址線上輸出),所有程序中訪問的地址都是實際的物理地址。操作系統(tǒng)對內存空間沒有保護(這實際上是很多嵌入式系統(tǒng)的特點),各個進程實際上共享一個運行空間(沒有獨立的地址轉換表)。
4 網關的uCIinux的開發(fā)
Jupiter已向用戶免費提供了uCinux操作系統(tǒng)源代碼及其相關參考通信類源程序。開發(fā)板利用串行口與PC機串行口相連接,利用Cygwin仿真Linux操作系統(tǒng)環(huán)境,由ADC公司提供的EISCStudio軟件包對用戶程序進行在線Debg通信與調試。提供C編譯器鏈接、反匯編窗口和存儲器窗口、匯編和C源程序調試窗口,可單步、宏單步、斷點設置、斷點運行、連續(xù)運行、全速運行等,通過變量窗口可觀察并可修改源程序的變量,軟件支持模擬調試和在線調試兩種方式。
4.1 uClinux內核的生成
首先安裝并運行Cygwin(Windows環(huán)境下虛擬Linux系統(tǒng)的軟件)。
進入X:cygwinhomeadministratoruClinux-eiSCuClInux-24.20(X為Cygwin安裝所在分區(qū))。
在Cygwin環(huán)境下執(zhí)行:
(1)>mike mroper;
(2)>make Jupiter_c0nfig;
(3)>make 01dconfig;[!--empirenews.page--]
(4)>make dep;
(5)>maKe。
執(zhí)行完上述步驟后,生成了romimage.bln文件,其中包括seloader.bin(bootloader文件)、linux.bm(1inux內核文件)和rdgz.bin(壓縮的ramdisk文件)
4.2 uClinux內核的移植
通過燒錄器將seloader.bin下載到系統(tǒng)的EPROM芯片上后進行如下操作。
①把Jupiter的cOMl口連PC的COM0,啟動超級終端,并把JUPiter網口0連到內部網上。啟動后,應該在超級終端窗口中看到如下信息:
?、?在PC上安裝并運行兩個服務程序DHCP和TFTPD。DHCP(動態(tài)主機分配協議)是一個簡化主機IP地址分配管理的TCP/IP 標準協議。用戶可以利用DHCP服務器管理動態(tài)的IP地址分配及其它相關的環(huán)境配置工作(如DNS、WINS、Gateway的設置); tftpd是第三方的ftp工具,實現TFTP Internet 標準。該標準不要求用戶名和密碼。
?、弁ㄟ^dhcp設置用戶網關內部網絡設備物理地址。Bootp sever configuration Option->add static address entry:Set the Hardware address by。"00:01:23:45:67:00"At the IP address first three octet must be same with server IPaddress and last octet can be anyone 設置完后自動啟動,在狀態(tài)欄中顯示:1istening onport 67。
?、?設置TFTPD.設置tftPd->configure.>homedirectory:為:X:tftpserver。在這目錄里存放了 linux.bin,rdgz.bin文件。然后tfptd->start,在狀態(tài)欄里顯示: serveris running。
?、?在超級終端中執(zhí)行bootp命令。命令:seloader>bootp。
?、迗?zhí)行tftp下載linux.bin命令:seloader>tftp linuxbin kernel。
?、邎?zhí)行tftp下載rdgz.bin命令:seloader>tftp rdgzbin ramdisk。
?、鄨?zhí)行boot啟動uclinux 命令:seloader>boot。
boot" hspace="0" src="/article/UploadPic/2010-9/20109110495701.JPG" width="568" border="0">
即在網關上建立了uClinux環(huán)境。驅動程序和應用程序的開發(fā)即可在LinUX平臺下進行。
5 總結
本文介紹了一種基于Jupiter處理器的網關設備·實際上,這些設備還需要針對特定的網絡接口進行二次開發(fā)。平臺提供的是以太網和RS485、RS232端的接入,編譯開放環(huán)境(編譯器、調試器、函數庫)。具體的二次開發(fā)包括針對特定的嵌入式設備網絡接口器件開發(fā)驅動程序,針對具體的控制解決方案開發(fā)控制程序,實現具體的控制策略。