《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式Linux和Arm的遠(yuǎn)程監(jiān)控模塊的設(shè)計(jì)
基于嵌入式Linux和Arm的遠(yuǎn)程監(jiān)控模塊的設(shè)計(jì)
EEworld
EEworld
摘要: 引言嵌入式系統(tǒng)是以應(yīng)用為中心,、以計(jì)算機(jī)技術(shù)為基礎(chǔ),、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性,、成...
Abstract:
Key words :

關(guān)鍵字:嵌入式Linux  Arm  遠(yuǎn)程監(jiān)控模塊

引言
    嵌入式系統(tǒng)是以應(yīng)用為中心,、以計(jì)算機(jī)技術(shù)為基礎(chǔ),、軟件硬件可裁剪,、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性,、成本,、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),。其中基于嵌入式Linux的遠(yuǎn)程配置模塊的設(shè)計(jì)越來(lái)越得到人們的關(guān)注,。通過(guò)基于嵌入式Linux的遠(yuǎn)程配置模塊設(shè)計(jì),遠(yuǎn)程專家和相關(guān)技術(shù)人員可以從Internet網(wǎng)上任意節(jié)點(diǎn)對(duì)服務(wù)器端所連接的設(shè)備的運(yùn)行狀態(tài)進(jìn)行監(jiān)控.并執(zhí)行操作的修改,。
    系統(tǒng)的主要功能是通過(guò)計(jì)算機(jī)可使遠(yuǎn)程專家和相關(guān)技術(shù)人員在異地通過(guò)系統(tǒng)的客戶器端監(jiān)控多臺(tái)設(shè)備的運(yùn)行狀態(tài),。系統(tǒng)在設(shè)備端的服務(wù)器端不僅僅承擔(dān)一些實(shí)時(shí)檢測(cè)系統(tǒng)狀態(tài)的任務(wù).而且需要把這些記錄信息進(jìn)行保存,并對(duì)客戶端軟件發(fā)出的請(qǐng)求進(jìn)行相應(yīng)的處理,,系統(tǒng)在硬件上擴(kuò)展了網(wǎng)卡模塊,、輸入輸出信號(hào)接口等模塊,以滿足遠(yuǎn)程控制的需求,。


1 系統(tǒng)硬件設(shè)計(jì)
    本系統(tǒng)采用三星公司.ARM7TDMI核心的S3C44BOX作為微處理器芯片,,系統(tǒng)硬件框架結(jié)構(gòu)圖如圖l所示,其電路原理圖如圖2所示,。

1.1 存儲(chǔ)模塊設(shè)計(jì)
    系統(tǒng)的FLASH采用的是HY29LV160,,容量大小為2M字節(jié),充當(dāng)S3C44BOX的程序存儲(chǔ)器,,其內(nèi)部存放啟動(dòng)代碼,、uclinux內(nèi)核、以太網(wǎng)MAC地址以及應(yīng)用程序等,。HY29LV160的單片存儲(chǔ)容量為16M位(2 M字節(jié)),,工作電壓為2.7 V~3.6 V,采用48腳TSOP封裝或48腳FBGA封裝,,16位數(shù)據(jù)寬度,,可以以8位(字節(jié)模式)或16位(字模式)數(shù)據(jù)寬度的方式工作。在本系統(tǒng)設(shè)計(jì)過(guò)程中,,考慮到uclinux操作系統(tǒng)帶應(yīng)用程序的最大容量不會(huì)超過(guò)l_7 MB,,因此,F(xiàn)LASH采用大小為2MB的FLASH存儲(chǔ)器就可以滿足系統(tǒng)的需求,。DRAM采用的是HY57V641620,,用于設(shè)置程序堆棧和存放各種變量。HY57V641620存儲(chǔ)容量為4組x 16 M位(8 M字節(jié)),工作電壓為3.3 V,,根據(jù)系統(tǒng)需求,可構(gòu)建16位或32位的SDRAM存儲(chǔ)器系統(tǒng).但為充分發(fā)揮32位CPU的數(shù)據(jù)處理能力,,系統(tǒng)采用32位的SDRAM存儲(chǔ)器系統(tǒng),,共16 MB的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種相對(duì)較復(fù)雜的算法的運(yùn)行要求,。
1.2 網(wǎng)絡(luò)接口模塊設(shè)計(jì)
    系統(tǒng)的網(wǎng)絡(luò)接口芯片采用的是RTL8019AS,。它是一款10 M以太網(wǎng)芯片,能夠?yàn)橄到y(tǒng)提供以太網(wǎng)的接入,。RTL8019AS數(shù)據(jù)總線寬度為16位,。因此設(shè)計(jì)中將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端相連。這樣可以通過(guò)處理器的外部中斷O來(lái)報(bào)告CPURTL8019AS目前所執(zhí)行的操作,,如發(fā)送和接收數(shù)據(jù),,錯(cuò)誤異常等等。系統(tǒng)可以通過(guò)查詢RTL8019內(nèi)部寄存器ISR的值.從而得到系統(tǒng)所處的運(yùn)行狀態(tài)進(jìn)行讀取,。

I0S2上拉,,其它懸空,當(dāng)RTL8019AS的引腳懸空時(shí),,引腳的輸入狀態(tài)為低電平,,里面有一個(gè)100 kΩ的下拉電阻,因此IOSO,,IOSI,,I0S3均為低電平,芯片的I/0基址是200H,。片選AEN接處理器的nGCS5也就是Bank5,,因此RTL8019在系統(tǒng)中分配的地址范圍為:0xoa000000—0xoc000000。由于數(shù)據(jù)總線寬度為16位,,處理器的A1連接8019的SA0,,因此對(duì)于處理器來(lái)說(shuō)RTL8019AS的I/0基址是0XOA000400H。20F001是網(wǎng)卡濾波器,內(nèi)部包含一對(duì)低通濾波器和一對(duì)隔離變壓器.直接與RJ45的水晶插座連接,。

 


2 系統(tǒng)軟件平臺(tái)的構(gòu)建
    uclinux經(jīng)過(guò)對(duì)標(biāo)準(zhǔn)Linux內(nèi)核的改動(dòng),,形成了一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux,,雖然它的體積很小,,但uclinux仍然保留了Linux的大多數(shù)的優(yōu)點(diǎn):穩(wěn)定、良好的移植性,、優(yōu)秀的網(wǎng)絡(luò)功能,、對(duì)各種文件系統(tǒng)完備的支持,以及標(biāo)準(zhǔn)豐富的API,,適合遠(yuǎn)程配置模塊的建立,。因此,遠(yuǎn)程配置模塊以u(píng)clinux為基礎(chǔ),,建立系統(tǒng)的軟件平臺(tái),。
    系統(tǒng)采用GNU的套件arm-elf工具鏈:arm—elf-tools-20030314.sh建立對(duì)uclinux進(jìn)行編譯的交叉環(huán)境。將arm-elf-tools-20030314.sh拷貝到根目錄,,運(yùn)行安裝:
    sh arm-elf-tools-20030314.sh即可對(duì)uclinux進(jìn)行編譯和移植了
    交叉編譯成功后,,在uClinux-dist/目錄下產(chǎn)生images目錄,其中包含的3個(gè)二進(jìn)制文件文件image.ram,,image.rom和romfs.img,。

3 系統(tǒng)軟件設(shè)計(jì)
    系統(tǒng)的軟件是實(shí)現(xiàn)遠(yuǎn)程配置模塊的核心,首先編寫(xiě)bootloader的過(guò)程,,以優(yōu)化系統(tǒng)在開(kāi)發(fā)板上的執(zhí)行,,然后實(shí)現(xiàn)了應(yīng)用程序以及設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)。應(yīng)用程序的開(kāi)發(fā)主要是基于Socket應(yīng)用程序的編寫(xiě),。在socket的實(shí)現(xiàn)過(guò)程中.本系統(tǒng)采用了xml文件配置設(shè)備驅(qū)動(dòng)參數(shù),。
3.1 Bootloader的設(shè)計(jì)
    Bootloader的設(shè)計(jì)主要是為了在系統(tǒng)上電復(fù)位之后,將系統(tǒng)程序執(zhí)行跳轉(zhuǎn)到系統(tǒng)內(nèi)核的執(zhí)行地點(diǎn),。針對(duì)這個(gè)主要的功能,,必須對(duì)微處理器的內(nèi)核以及其他部分進(jìn)行初始化以及其它的功能擴(kuò)展,Bootloader它主要完成了以下幾個(gè)過(guò)程:
    (1)建立中斷向量表
    (2)初始化各種處理器模式
    (3)引入特殊變量
    (4)初始化memory
    (5)代碼復(fù)制
    完成了系統(tǒng)的硬件初始化過(guò)程后,,將CPU使用權(quán)交給
了操作系統(tǒng),,從而完成了.Bootloader的最終目的。
3.2設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
Linux對(duì)設(shè)備的操作Linux系統(tǒng)訪問(wèn)設(shè)備就像訪問(wèn)文件
—樣,。例如打開(kāi)設(shè)備使用系統(tǒng)調(diào)用open()

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。