嵌入式系统采用三星公司基于ARM微处理器的S3C2410X。S3C2410X采用6层板设计,使用ARM920T内核,内部带有全性能的MMU(内存处理单元),具有高性能、低功耗、接口丰富和体积小等优良特性。在尽可能小的板面上集成了64 MB SDRAM、64 MB NAND FLASH,1 MB BOOT FLASH,RJ 45网卡,USB Host,标准串口,SD卡插座等。可集成嵌入式无线局域网设备,实现数据采集和无线传输。
2.4 定位模块
选用的GPS模块,接收特性:16通道,L1,C/A码;自带陶瓷天线;启动时间:冷启动45 s、温启动38 s、热启动2~8 s;精度<2.5 m CEP;再捕获<1 s,1PPS;刷新频率:4 Hz;内置LNA;速度<4 g。
2.5 通讯部件
考虑到地震行业地震观测的实际需要,采用了符合IEEE802.11b的无线网卡和通信距离达到1.2km的无线AP构成通信链路,作为SI一2型地震烈度计的无线通讯单元。
2.6 电源模块
选用可充电的锂电池组作为供电电源,便于长期重复使用。电池组容量为60 Ah。
3 系统功能实现
3.1 SI一2型地震烈度传感器的IPv6化
ARM嵌入式系统自带的操作系统一般是Linux2.4内核的,为支持IPv6须将操作系统的内核进行重新编译,升级为2.6版本内核。但Linux 2.6内核重编译是一个比较复杂的过程,具体步骤如下:
3.1.1 建立交叉编译环境
在RedHat9的主机上进行内核移植开发,首先需要建立交叉编译环境。由于2.6内核中采用了一些新的特性和指令,需要采用较新的工具集。采用binutils一2.15,gCC一3.4.2,glibc一2.2.5,linux一2.6.8,glibc—linuxthreads-2.2.5来建立交叉编译工具链,建立之后将工具链路径加入系统路径MYMPATH中。
3.1.2 内核修改
Linux 2.6.11.7内核加入了对S3C2410芯片的支持,不再需要任何补丁文件。修改内核源码中Makefile的交叉编译选项ARCH=arm,CROSS COMPILE=arm—linux一。针对硬件配置,需要在arch/arm/mach—s3c2410/devs.c或者SMDk2410.c中添加FLASH的分区信息s3c nand info。然后在s3c devICe nand中增加.dev={.platform data=&s3c nand info},在arch/arm/mach—s3c2410/mach—smdk2410.c中的initdata部分增加&s3c device nand,使内核在启动时初始化NAND FLASH信息。
3.1.3 内核编译加载
由于2.6内核会根据本地系统配置进行初始设置,可以导入内核源码默认S3C2410的配置文件,方便加载内核基本配置,然后再选择所需选项。对MTD配置选择支持MTD设备驱动以及NAND FLASH驱动;选择支持要用到的各类文件系统(DEVFS,TMPFS,CRAMFS,YAFFS,EXT2,NFS)以及网络设备和协议,本传感器系统加载了网络芯片CS8900以及USB支持;在H.264多媒体系统中还需要加载Frame buff—er以支持LCD显示功能。使用交叉编译工具编译内核源码后,会在arch/arm/1boot/下生成名为zImage的内核映像,在Boot loader的命令提示模式下使用下载命令完成内核加载到开发板的存储设备FLASH中。
3.1.4 文件系统定制
Linux采用文件系统来组织系统中的文件和设备,为设备和用户程序提供统一接口。Linux支持多种文件系统,本系统使用CRAMFS格式的只读根文件系统,而将FLASH中的USER区使用支持可读写的YAFFS文件系统格式,方便添加自己的应用程序。
3.2 地震烈度计主要硬件设备驱动
3.2.1 网络设备驱动
系统中采用CS8900A的lO Mb/s网络芯片,它使用S3C2410的nGCS3和IRQ_EINT9,相应修改linux/arch/arm/mach—s3c2410/irq.c,并在roach—smdk24.10.c的smdk2410_iodesc[]中增加{SMDK2410_ETH_IO,S3C2410_CS2,SZ_1M,MT_DEVICE},内核源码中加入芯片的驱动程序driverS/Net/arm/cs8900.h和cs8900.c,并且配置网络设备驱动的Makefile和Kcon—fig文件,加入CS8900A的配置选项,这样可以在内核编译时加载网络设备的驱动。
3.2.2 无线网卡驱动程序
从网上下载rt2x00的IPv4环境下的驱动程序,并针对该程序进行IPv6化改造,对其驱动程序进行修改,在系统重编译的时候,将驱动程序加入到系统的内核中。将无线网卡的驱动程序作为一个模块打包到操作系统中,可避免系统掉电后每次都要重装无线网卡驱动程序。
3.3 地震烈度计终端的软件设计
通讯传输软件主要负责完成传感器与业务服务系统之间的IPv6数据通信,软件功能如下:
(1)传感器在成功接入到IPv6传感器网络后主动.向业务服务器发送传感器上线通知;
(2)传感器在成功上线后每隔30 s主动采集烈度传感器的烈度值并上报给业务服务器;
(3)进行GPS时间校准;
(4)进行GPS定位(每隔8 min重新定位一次并上报定位数据);
(5)业务服务器每隔10 min请求一次传感器配置参数;
(6)响应业务服务器的配置参数请求、数据请求、历史数据请求、是否在线响应。
通讯软件包括:GPS数据处理子程序,A/D数据采集子程序,通讯子程序和传感器配置文件。对于不同的传感器,需要修改配置文件中的传感器IP、传感器ID和传感器序列号。传感器终端软件结构见图2。