關鍵字:嵌入式Linux Arm 遠程監(jiān)控模塊
引言
嵌入式系統(tǒng)是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。其中基于嵌入式Linux的遠程配置模塊的設計越來越得到人們的關注。通過基于嵌入式Linux的遠程配置模塊設計,遠程專家和相關技術人員可以從Internet網(wǎng)上任意節(jié)點對服務器端所連接的設備的運行狀態(tài)進行監(jiān)控.并執(zhí)行操作的修改。
系統(tǒng)的主要功能是通過計算機可使遠程專家和相關技術人員在異地通過系統(tǒng)的客戶器端監(jiān)控多臺設備的運行狀態(tài)。系統(tǒng)在設備端的服務器端不僅僅承擔一些實時檢測系統(tǒng)狀態(tài)的任務.而且需要把這些記錄信息進行保存,并對客戶端軟件發(fā)出的請求進行相應的處理,系統(tǒng)在硬件上擴展了網(wǎng)卡模塊、輸入輸出信號接口等模塊,以滿足遠程控制的需求。
1 系統(tǒng)硬件設計
本系統(tǒng)采用三星公司.ARM7TDMI核心的S3C44BOX作為微處理器芯片,系統(tǒng)硬件框架結構圖如圖l所示,其電路原理圖如圖2所示。
1.1 存儲模塊設計
系統(tǒng)的FLASH采用的是HY29LV160,容量大小為2M字節(jié),充當S3C44BOX的程序存儲器,其內(nèi)部存放啟動代碼、uclinux內(nèi)核、以太網(wǎng)MAC地址以及應用程序等。HY29LV160的單片存儲容量為16M位(2 M字節(jié)),工作電壓為2.7 V~3.6 V,采用48腳TSOP封裝或48腳FBGA封裝,16位數(shù)據(jù)寬度,可以以8位(字節(jié)模式)或16位(字模式)數(shù)據(jù)寬度的方式工作。在本系統(tǒng)設計過程中,考慮到uclinux操作系統(tǒng)帶應用程序的最大容量不會超過l_7 MB,因此,F(xiàn)LASH采用大小為2MB的FLASH存儲器就可以滿足系統(tǒng)的需求。DRAM采用的是HY57V641620,用于設置程序堆棧和存放各種變量。HY57V641620存儲容量為4組x 16 M位(8 M字節(jié)),工作電壓為3.3 V,根據(jù)系統(tǒng)需求,可構建16位或32位的SDRAM存儲器系統(tǒng).但為充分發(fā)揮32位CPU的數(shù)據(jù)處理能力,系統(tǒng)采用32位的SDRAM存儲器系統(tǒng),共16 MB的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種相對較復雜的算法的運行要求。
1.2 網(wǎng)絡接口模塊設計
系統(tǒng)的網(wǎng)絡接口芯片采用的是RTL8019AS。它是一款10 M以太網(wǎng)芯片,能夠為系統(tǒng)提供以太網(wǎng)的接入。RTL8019AS數(shù)據(jù)總線寬度為16位。因此設計中將IOCS16B引腳上拉。RTL8Ol9AS內(nèi)部集成了兩塊RAM。一塊16 kB,地址為0x4000—7FFF;一塊32字節(jié),地址為0x0000一Ox001F。16 k的RAM用作收發(fā)數(shù)據(jù)的緩沖區(qū),一般將0x4000—0x46FF作為發(fā)送緩沖區(qū),0x4700—0x7FFF作為接收緩沖區(qū)。RTL8019的中斷輸出INTO與S3C44BOX的EINTO端相連。這樣可以通過處理器的外部中斷O來報告CPURTL8019AS目前所執(zhí)行的操作,如發(fā)送和接收數(shù)據(jù),錯誤異常等等。系統(tǒng)可以通過查詢RTL8019內(nèi)部寄存器ISR的值.從而得到系統(tǒng)所處的運行狀態(tài)進行讀取。
I0S2上拉,其它懸空,當RTL8019AS的引腳懸空時,引腳的輸入狀態(tài)為低電平,里面有一個100 kΩ的下拉電阻,因此IOSO,IOSI,I0S3均為低電平,芯片的I/0基址是200H。片選AEN接處理器的nGCS5也就是Bank5,因此RTL8019在系統(tǒng)中分配的地址范圍為:0xoa000000—0xoc000000。由于數(shù)據(jù)總線寬度為16位,處理器的A1連接8019的SA0,因此對于處理器來說RTL8019AS的I/0基址是0XOA000400H。20F001是網(wǎng)卡濾波器,內(nèi)部包含一對低通濾波器和一對隔離變壓器.直接與RJ45的水晶插座連接。
2 系統(tǒng)軟件平臺的構建
uclinux經(jīng)過對標準Linux內(nèi)核的改動,形成了一個高度優(yōu)化的、代碼緊湊的嵌入式Linux,雖然它的體積很小,但uclinux仍然保留了Linux的大多數(shù)的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡功能、對各種文件系統(tǒng)完備的支持,以及標準豐富的API,適合遠程配置模塊的建立。因此,遠程配置模塊以uclinux為基礎,建立系統(tǒng)的軟件平臺。
系統(tǒng)采用GNU的套件arm-elf工具鏈:arm—elf-tools-20030314.sh建立對uclinux進行編譯的交叉環(huán)境。將arm-elf-tools-20030314.sh拷貝到根目錄,運行安裝:
sh arm-elf-tools-20030314.sh即可對uclinux進行編譯和移植了
交叉編譯成功后,在uClinux-dist/目錄下產(chǎn)生images目錄,其中包含的3個二進制文件文件image.ram,image.rom和romfs.img。
3 系統(tǒng)軟件設計
系統(tǒng)的軟件是實現(xiàn)遠程配置模塊的核心,首先編寫bootloader的過程,以優(yōu)化系統(tǒng)在開發(fā)板上的執(zhí)行,然后實現(xiàn)了應用程序以及設備驅動程序的開發(fā)。應用程序的開發(fā)主要是基于Socket應用程序的編寫。在socket的實現(xiàn)過程中.本系統(tǒng)采用了xml文件配置設備驅動參數(shù)。
3.1 Bootloader的設計
Bootloader的設計主要是為了在系統(tǒng)上電復位之后,將系統(tǒng)程序執(zhí)行跳轉到系統(tǒng)內(nèi)核的執(zhí)行地點。針對這個主要的功能,必須對微處理器的內(nèi)核以及其他部分進行初始化以及其它的功能擴展,Bootloader它主要完成了以下幾個過程:
(1)建立中斷向量表
(2)初始化各種處理器模式
(3)引入特殊變量
(4)初始化memory
(5)代碼復制
完成了系統(tǒng)的硬件初始化過程后,將CPU使用權交給
了操作系統(tǒng),從而完成了.Bootloader的最終目的。
3.2設備驅動程序開發(fā)
Linux對設備的操作Linux系統(tǒng)訪問設備就像訪問文件
—樣。例如打開設備使用系統(tǒng)調用open()