嵌入式系統(tǒng)采用三星公司基于ARM微處理器的S3C2410X。S3C2410X采用6層板設(shè)計(jì),使用ARM920T內(nèi)核,內(nèi)部帶有全性能的MMU(內(nèi)存處理單元),具有高性能、低功耗、接口豐富和體積小等優(yōu)良特性。在盡可能小的板面上集成了64 MB SDRAM、64 MB NAND FLASH,1 MB BOOT FLASH,RJ 45網(wǎng)卡,USB Host,標(biāo)準(zhǔn)串口,SD卡插座等。可集成嵌入式無(wú)線局域網(wǎng)設(shè)備,實(shí)現(xiàn)數(shù)據(jù)采集和無(wú)線傳輸。
2.4 定位模塊
選用的GPS模塊,接收特性:16通道,L1,C/A碼;自帶陶瓷天線;啟動(dòng)時(shí)間:冷啟動(dòng)45 s、溫啟動(dòng)38 s、熱啟動(dòng)2~8 s;精度<2.5 m CEP;再捕獲<1 s,1PPS;刷新頻率:4 Hz;內(nèi)置LNA;速度<4 g。
2.5 通訊部件
考慮到地震行業(yè)地震觀測(cè)的實(shí)際需要,采用了符合IEEE802.11b的無(wú)線網(wǎng)卡和通信距離達(dá)到1.2km的無(wú)線AP構(gòu)成通信鏈路,作為SI一2型地震烈度計(jì)的無(wú)線通訊單元。
2.6 電源模塊
選用可充電的鋰電池組作為供電電源,便于長(zhǎng)期重復(fù)使用。電池組容量為60 Ah。
3 系統(tǒng)功能實(shí)現(xiàn)
3.1 SI一2型地震烈度傳感器的IPv6化
ARM嵌入式系統(tǒng)自帶的操作系統(tǒng)一般是Linux2.4內(nèi)核的,為支持IPv6須將操作系統(tǒng)的內(nèi)核進(jìn)行重新編譯,升級(jí)為2.6版本內(nèi)核。但Linux 2.6內(nèi)核重編譯是一個(gè)比較復(fù)雜的過(guò)程,具體步驟如下:
3.1.1 建立交叉編譯環(huán)境
在RedHat9的主機(jī)上進(jìn)行內(nèi)核移植開(kāi)發(fā),首先需要建立交叉編譯環(huán)境。由于2.6內(nèi)核中采用了一些新的特性和指令,需要采用較新的工具集。采用binutils一2.15,gcc一3.4.2,glibc一2.2.5,linux一2.6.8,glibc—linuxthreads-2.2.5來(lái)建立交叉編譯工具鏈,建立之后將工具鏈路徑加入系統(tǒng)路徑MYMPATH中。
3.1.2 內(nèi)核修改
Linux 2.6.11.7內(nèi)核加入了對(duì)S3C2410芯片的支持,不再需要任何補(bǔ)丁文件。修改內(nèi)核源碼中Makefile的交叉編譯選項(xiàng)ARCH=arm,CROSS COMPILE=arm—linux一。針對(duì)硬件配置,需要在arch/arm/mach—s3c2410/devs.c或者smdk2410.c中添加FLASH的分區(qū)信息s3c nand info。然后在s3c device nand中增加.dev={.platform data=&s3c nand info},在arch/arm/mach—s3c2410/mach—smdk2410.c中的initdata部分增加&s3c device nand,使內(nèi)核在啟動(dòng)時(shí)初始化NAND FLASH信息。
3.1.3 內(nèi)核編譯加載
由于2.6內(nèi)核會(huì)根據(jù)本地系統(tǒng)配置進(jìn)行初始設(shè)置,可以導(dǎo)入內(nèi)核源碼默認(rèn)S3C2410的配置文件,方便加載內(nèi)核基本配置,然后再選擇所需選項(xiàng)。對(duì)MTD配置選擇支持MTD設(shè)備驅(qū)動(dòng)以及NAND FLASH驅(qū)動(dòng);選擇支持要用到的各類文件系統(tǒng)(DEVFS,TMPFS,CRAMFS,YAFFS,EXT2,NFS)以及網(wǎng)絡(luò)設(shè)備和協(xié)議,本傳感器系統(tǒng)加載了網(wǎng)絡(luò)芯片CS8900以及USB支持;在H.264多媒體系統(tǒng)中還需要加載Frame buff—er以支持LCD顯示功能。使用交叉編譯工具編譯內(nèi)核源碼后,會(huì)在arch/arm/1boot/下生成名為zImage的內(nèi)核映像,在Boot loader的命令提示模式下使用下載命令完成內(nèi)核加載到開(kāi)發(fā)板的存儲(chǔ)設(shè)備FLASH中。
3.1.4 文件系統(tǒng)定制
Linux采用文件系統(tǒng)來(lái)組織系統(tǒng)中的文件和設(shè)備,為設(shè)備和用戶程序提供統(tǒng)一接口。Linux支持多種文件系統(tǒng),本系統(tǒng)使用CRAMFS格式的只讀根文件系統(tǒng),而將FLASH中的USER區(qū)使用支持可讀寫的YAFFS文件系統(tǒng)格式,方便添加自己的應(yīng)用程序。
3.2 地震烈度計(jì)主要硬件設(shè)備驅(qū)動(dòng)
3.2.1 網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)
系統(tǒng)中采用CS8900A的lO Mb/s網(wǎng)絡(luò)芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相應(yīng)修改linux/arch/arm/mach—s3c2410/irq.c,并在roach—smdk24.10.c的smdk2410_iodesc[]中增加{SMDK2410_ETH_IO,S3C2410_CS2,SZ_1M,MT_DEVICE},內(nèi)核源碼中加入芯片的驅(qū)動(dòng)程序drivers/net/arm/cs8900.h和cs8900.c,并且配置網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的Makefile和Kcon—fig文件,加入CS8900A的配置選項(xiàng),這樣可以在內(nèi)核編譯時(shí)加載網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)。
3.2.2 無(wú)線網(wǎng)卡驅(qū)動(dòng)程序
從網(wǎng)上下載rt2x00的IPv4環(huán)境下的驅(qū)動(dòng)程序,并針對(duì)該程序進(jìn)行IPv6化改造,對(duì)其驅(qū)動(dòng)程序進(jìn)行修改,在系統(tǒng)重編譯的時(shí)候,將驅(qū)動(dòng)程序加入到系統(tǒng)的內(nèi)核中。將無(wú)線網(wǎng)卡的驅(qū)動(dòng)程序作為一個(gè)模塊打包到操作系統(tǒng)中,可避免系統(tǒng)掉電后每次都要重裝無(wú)線網(wǎng)卡驅(qū)動(dòng)程序。
3.3 地震烈度計(jì)終端的軟件設(shè)計(jì)
通訊傳輸軟件主要負(fù)責(zé)完成傳感器與業(yè)務(wù)服務(wù)系統(tǒng)之間的IPv6數(shù)據(jù)通信,軟件功能如下:
(1)傳感器在成功接入到IPv6傳感器網(wǎng)絡(luò)后主動(dòng).向業(yè)務(wù)服務(wù)器發(fā)送傳感器上線通知;
(2)傳感器在成功上線后每隔30 s主動(dòng)采集烈度傳感器的烈度值并上報(bào)給業(yè)務(wù)服務(wù)器;
(3)進(jìn)行GPS時(shí)間校準(zhǔn);
(4)進(jìn)行GPS定位(每隔8 min重新定位一次并上報(bào)定位數(shù)據(jù));
(5)業(yè)務(wù)服務(wù)器每隔10 min請(qǐng)求一次傳感器配置參數(shù);
(6)響應(yīng)業(yè)務(wù)服務(wù)器的配置參數(shù)請(qǐng)求、數(shù)據(jù)請(qǐng)求、歷史數(shù)據(jù)請(qǐng)求、是否在線響應(yīng)。
通訊軟件包括:GPS數(shù)據(jù)處理子程序,A/D數(shù)據(jù)采集子程序,通訊子程序和傳感器配置文件。對(duì)于不同的傳感器,需要修改配置文件中的傳感器IP、傳感器ID和傳感器序列號(hào)。傳感器終端軟件結(jié)構(gòu)見(jiàn)圖2。
?
評(píng)論
查看更多