Jupiter處理器在嵌入式網(wǎng)關(guān)中的應用
1 利用嵌入式網(wǎng)關(guān)的工廠(chǎng)管理方案
工廠(chǎng)內部利用4 8 5線(xiàn)或者以太網(wǎng)來(lái)傳遞指令,并且可以采用2種方法對監控對象故障發(fā)送報警信息:用標準的MODEM命令發(fā)送GSM短消息或通過(guò)SMTP客戶(hù)端發(fā)電子郵件。萬(wàn)維網(wǎng)與控制網(wǎng)的交互是借助于嵌入式網(wǎng)關(guān)進(jìn)行的。當控制終端通過(guò)萬(wàn)維網(wǎng)向作為智能節點(diǎn)的現場(chǎng)設備發(fā)送控制信息時(shí),它首先基于TCP/IP協(xié)議將信息發(fā)送給網(wǎng)關(guān),再由網(wǎng)關(guān)根據現場(chǎng)設備總線(xiàn)采用相應的TCP/IP協(xié)議、RS485協(xié)議、RS232協(xié)議發(fā)送給相應的現場(chǎng)設備。反過(guò)來(lái)也是這樣,嵌入式網(wǎng)關(guān)主要負責現場(chǎng)協(xié)議間的相互轉化,通過(guò)嵌入式網(wǎng)關(guān)解決了不同協(xié)議標準的系統集成問(wèn)題,如圖1所示。
2 硬件子系統
Jupiter是韓國ADC公司生產(chǎn)的32位高速雙以太網(wǎng)處理器,是一款低成本、高性能、建立在以太網(wǎng)系統基礎之上的高性能價(jià)格比的處理器。該芯片內含2個(gè)10/1 00Mb/s自適應以太網(wǎng)接口,廣泛應用于集線(xiàn)器和路由器的設計,其最大優(yōu)點(diǎn)類(lèi)似于A(yíng)RM內核的內建32位EISC處理器,支持uClinux操作系統,是當今市場(chǎng)EISC系列的一個(gè)代表產(chǎn)品。Jupiter(EISC結構)與CISC芯片相比具有優(yōu)化嵌入式應用專(zhuān)長(cháng)、代碼優(yōu)化,而芯片結構外平相當。Jupiter指令的易操作性使得硬件功能實(shí)現變得更簡(jiǎn)單。
Jupiter處理器工作頻率50MHz,采用16位單周期指令集,運算速度快;內含4K Cache、2個(gè)10/100Mb/s自適應雙以太網(wǎng)控制器、最大支持640480的彩色STNLCD控制器、2個(gè)串行的UART、2個(gè)DMA、串行SIO控制器、4個(gè)3 2位定時(shí)器及可編程I/O口、1個(gè)中斷控制器、DRAM控制器、ROM/SRAM控制器;芯片系統管理器還包括內部3 2位總線(xiàn)的仲裁器和擴展存儲器控制器;有8個(gè)3 2MB存儲器空間可供用戶(hù)擴展;處理器內建DHCP Client(含PPPoE、Proxy、DNS)及DHCP Server兩項功能,可廣泛應用于IP共享器、Sohu網(wǎng)關(guān)、工業(yè)現場(chǎng)Web服務(wù)器和瀏覽器、家庭網(wǎng)關(guān)、ADSL、工控網(wǎng)絡(luò )控制器等。
韓國ADC公司的Jupiter芯片與其他公司的比較如表1所示。
3 軟件結構
傳統的嵌入式開(kāi)發(fā)所針對的是一些相對簡(jiǎn)單的應用。通常只有一個(gè)簡(jiǎn)單(或固定的幾個(gè))的應用運行,實(shí)現的任務(wù)簡(jiǎn)單,并且是針對具體應用的,所以不需要復雜的任務(wù)管理、調度機制。從工程設計夠用就行的角度看,使用簡(jiǎn)單的方法燒寫(xiě)ROM,系統啟動(dòng)后直接執行該程序就可以了,根本不需要操作系統參與,開(kāi)發(fā)人員能夠了解所有應用啟動(dòng),資源管理細節,并能夠管理它們。 嵌入式網(wǎng)關(guān)根本作用是把嵌入式設備同現有的以太網(wǎng)絡(luò )連接起來(lái),但又在很大程度上保持原有嵌入式網(wǎng)絡(luò )的各自功能,所以網(wǎng)關(guān)必須具有解析多種協(xié)議的能力。對于這種較為復雜的應用,傳統嵌入式設計的方法已經(jīng)無(wú)法滿(mǎn)足要求,必須尋求操作系統以應付多任務(wù)和復雜任務(wù)的處理。
uCliux是Linux操作系統的一種,是由Linux2.0內核發(fā)展來(lái)的,是專(zhuān)為沒(méi)有MMU的微處理器設計的嵌入式Linux操作系統。因為大多數內核源代碼都被重寫(xiě),uClinux的內核要比原Linux2.0內核小的多,但保留了Linux 操作系統的主要優(yōu)點(diǎn):穩定性,優(yōu)異的網(wǎng)絡(luò )能力以及優(yōu)秀的文件系統支持.uClinux中u表示Micr0,小的意思,C表示Cntrol,控制的意思,所以uClinux就是MicrO-C0ntroller-Linux,字面上的理解就是“針對微控制領(lǐng)域而設計的Linux系統”。
uClinux可以通過(guò)定制使內棱小型化,還可以加上GUI(圖形用戶(hù)界面)和定制應用程序,并將其放在ROM、RAM、Flash或Disk On Chip中啟動(dòng)。由于嵌入式uClinux操作系統的內核定制高度靈活性,開(kāi)發(fā)者可以很容易地對其進(jìn)行按需配置,來(lái)滿(mǎn)足實(shí)際應用需要。又由于uClinux是源代碼公開(kāi)的,因此開(kāi)發(fā)人員只要了解內核原理就可以自己開(kāi)發(fā)各類(lèi)驅動(dòng)程序。
Jupiter芯片是沒(méi)有內存管理單元(MMU)的處理器,而uClinux很好地解決了沒(méi)有MMU內存管理問(wèn)題,采用存儲器的分頁(yè)管理.系統在啟動(dòng)時(shí)把實(shí)際存儲器進(jìn)行分頁(yè)。系統對于內存的訪(fǎng)問(wèn)是直接的(它對地址的訪(fǎng)問(wèn)不需要經(jīng)過(guò)MMU,而是直接送到地址線(xiàn)上輸出),所有程序中訪(fǎng)問(wèn)的地址都是實(shí)際的物理地址。操作系統對內存空間沒(méi)有保護(這實(shí)際上是很多嵌入式系統的特點(diǎn)),各個(gè)進(jìn)程實(shí)際上共享一個(gè)運行空間(沒(méi)有獨立的地址轉換表)。
4 網(wǎng)關(guān)的uCIinux的開(kāi)發(fā)
Jupiter已向用戶(hù)免費提供了uCinux操作系統源代碼及其相關(guān)參考通信類(lèi)源程序。開(kāi)發(fā)板利用串行口與PC機串行口相連接,利用Cygwin仿真Linux操作系統環(huán)境,由ADC公司提供的EISCStudio軟件包對用戶(hù)程序進(jìn)行在線(xiàn)Debg通信與調試。提供C編譯器鏈接、反匯編窗口和存儲器窗口、匯編和C源程序調試窗口,可單步、宏單步、斷點(diǎn)設置、斷點(diǎn)運行、連續運行、全速運行等,通過(guò)變量窗口可觀(guān)察并可修改源程序的變量,軟件支持模擬調試和在線(xiàn)調試兩種方式。
4.1 uClinux內核的生成
首先安裝并運行Cygwin(Windows環(huán)境下虛擬Linux系統的軟件)
進(jìn)入X:cygwinhomeadministratoruClinux-eiSCuClInux-24.20(X為Cygwin安裝所在分區)
在Cygwin環(huán)境下執行
(1)>mike mroper
(2)>make Jupiter_c0nfig
(3)>make 01dconfig
(4)>make dep
(5)>maKe
執行完上述步驟后,生成了romimage.bln文件,其中包括seloader.bin(bootloader文件)、linux.bm(1inux內核文件)和rdgz.bin(壓縮的ramdisk文件)
4.2 uClinux內核的移植
通過(guò)燒錄器將seloader.bin下載到系統的EPROM芯片上后進(jìn)行如下操作。
①把Jupiter的cOMl口連PC的COM0,啟動(dòng)超級終端,并把JUPiter網(wǎng)口0連到內部網(wǎng)上。啟動(dòng)后,應該在超級終端窗口中看到如下信息:
seloader is se3208 Boot Loader
CPyright(C)2002 ad chips
seloader comes With ABSOLUTELY NO WARRANTY:Read the
GNU GPL for details
AutObOOt abortedTvpe"help"to get a list of commands
seloader>
② 在PC上安裝并運行兩個(gè)服務(wù)程序DHCP和TFTPD。
DHCP(動(dòng)態(tài)主機分配協(xié)議)是一個(gè)簡(jiǎn)化主機IP地址分配管理的TCP/IP 標準協(xié)議。用戶(hù)可以利用DHCP服務(wù)器管理動(dòng)態(tài)的IP地址分配及其它相關(guān)的環(huán)境配置工作(如DNS、WINS、Gateway的設置); tftpd是第三方的ftp工具,實(shí)現TFTP Internet 標準。該標準不要求用戶(hù)名和密碼。
③通過(guò)dhcp設置用戶(hù)網(wǎng)關(guān)內部網(wǎng)絡(luò )設備物理地址。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 設置完后自動(dòng)啟動(dòng),在狀態(tài)欄中顯示:1istening onport 67。
④ 設置TFTPD.設置tftPd->configure.>homedirectory:為:X: ftpserver。在這目錄里存放了 linux.bin,rdgz.bin文件。然后tfptd->start,在狀態(tài)欄里顯示: serveris running。
⑤ 在超級終端中執行bootp命令。命令:seloader>bootp。
⑥執行tftp下載linux.bin命令:seloader>tftp linuxbin kernel。
⑦執行tftp下載rdgz.bin命令:seloader>tftp rdgzbin ramdisk。
⑧執行boot啟動(dòng)uclinux 命令:seloader>boot。
Startingkernel……
inhead-se3208.S
Linux version2.4.20-uc0(administrator@ZENGYU-X14PHIPI)(gccversion egos-2.91
66 19990314(egcs-1.1.2 release)#1 Thu Apr 10 15:43:30 2003
Architecture:eisc-jupiter
.
.
.
Command:hosmamejupiter
Command:mount-t proc proc/proc
command:cat/etc/motd
Welcome to
For further information check:
htto://www.adc.co.kr/
Command:ifconfig eth0 192.168.0.3
Command:ifconfig ethl up
Command:ifconflg ethl 192.168.10.3
Command:roHte add default gw l92.168.0.2
Command:ifconfigl0 127.0.0.1
Command:route add-net l27.0.0.0 netmask 255.0.0.01o
Conwnand:#dhcped-P-a eth0&
Execution Finished,Exiting
Sash command shell(version.1.1.1),(pgid:14)
即在網(wǎng)關(guān)上建立了uClinux環(huán)境。驅動(dòng)程序和應用程序的開(kāi)發(fā)即可在LinUX平臺下進(jìn)行。
5 總結
本文介紹了一種基于Jupiter處理器的網(wǎng)關(guān)設備實(shí)際上,這些設備還需要針對特定的網(wǎng)絡(luò )接口進(jìn)行二次開(kāi)發(fā)。平臺提供的是以太網(wǎng)和RS485、RS232端的接入,編譯開(kāi)放環(huán)境(編譯器、調試器、函數庫)。具體的二次開(kāi)發(fā)包括針對特定的嵌入式設備網(wǎng)絡(luò )接口器件開(kāi)發(fā)驅動(dòng)程序,針對具體的控制解決方案開(kāi)發(fā)控制程序,實(shí)現具體的控制策略。
評論