浅谈嵌入式Linux和Arm的远程监控模块的设计
扫描二维码
随时随地手机看文章
嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、对可靠性、成本、体积、功耗有严格要求的专用计算机系统。
系统的主要功能是通过计算机可使远程专家和相关技术人员在异地通过系统的客户器端监控多台设备的运行状态。系统在设备端的服务器端不仅仅承担一些实时检测系统状态的任务。嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器,目前仍在大规模应用的8位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。
1 系统硬件设计
ARM7TDMI核心的S3C44BOX作为微处理器芯片,系统硬件框架结构图如图l所示,其电路原理图如图2所示。
1.1 存储模块设计
系统的FLASH采用的是HY29LV160,容量大小为2M字节,充当S3C44BOX的程序存储器,其内部存放启动代码、uclinux内核、以太网MAC地址以及应用程序等。HY29LV160的单片存储容量为16M位(2 M字节),工作电压为2.7 V~3.6 V,采用48脚TSOP封装或48脚FBGA封装,16位数据宽度,可以以8位(字节模式)或16位(字模式)数据宽度的方式工作。在本系统设计过程中,考虑到uclinux操作系统带应用程序的最大容量不会超过l_7 MB,因此,FLASH采用大小为2MB的FLASH存储器就可以满足系统的需求。DRAM采用的是HY57V641620,用于设置程序堆栈和存放各种变量。HY57V641620存储容量为4组x 16 M位(8 M字节),工作电压为3.3 V,根据系统需求,可构建16位或32位的SDRAM存储器系统。但为充分发挥32位CPU的数据处理能力,系统采用32位的SDRAM存储器系统,共16 MB的SDRAM空间。
Flash 是一种创作工具,设计人员和开发人员可使用它来创建演示文稿、应用程序和其它允许用户交互的内容。Flash 可以包含简单的动画、视频内容、复杂演示文稿和应用程序以及介于它们之间的任何内容。通常,使用 Flash 创作的各个内容单元称为应用程序,即使它们可能只是很简单的动画。您也可以通过添加图片、声音、视频和特殊效果,构建包含丰富媒体的 Flash 应用程序。Flash 特别适用于创建通过 Internet 提供的内容,因为它的文件非常小。Flash 是通过广泛使用矢量图形做到这一点的。与位图图形相比,矢量图形需要的内存和存储空间小很多,因为它们是以数学公式而不是大型数据集来表示的。位图图形之所以更大,是因为图像中的每个像素都需要一组单独的数据来表示。
1.2 网络接口模块设计
系统的网络接口芯片采用的是RTL8019AS。它是一款10 M以太网芯片,能够为系统提供以太网的接入。RTL8019AS数据总线宽度为16位。因此设计中将IOCS16B引脚上拉。RTL8Ol9AS内部集成了两块RAM。一块16 kB,地址为0x4000—7FFF;一块32字节,地址为0x0000一Ox001F。16 k的RAM用作收发数据的缓冲区,一般将0x4000—0x46FF作为发送缓冲区,0x4700—0x7FFF作为接收缓冲区。RTL8019的中断输出INTO与S3C44BOX的EINTO端相连。
I0S2上拉,其它悬空,当RTL8019AS的引脚悬空时,引脚的输入状态为低电平,里面有一个100 kΩ的下拉电阻,因此IOSO,IOSI,I0S3均为低电平,芯片的I/0基址是200H。片选AEN接处理器的nGCS5也就是Bank5,因此RTL8019在系统中分配的地址范围为:0xoa000000—0xoc000000。由于数据总线宽度为16位,处理器的A1连接8019的SA0,20F001是网卡滤波器,内部包含一对低通滤波器和一对隔离变压器。
2 系统软件平台的构建
uclinux表示micro-control linux.即“微控制器领域中的Linux系统”,是Lineo公司的主打产品,同时也是开放源码的嵌入式Linux的典范之作。uCLinux主要是针对目标处理器没有存储管理单元MMU(Memory Management Unit)的嵌入式系统而设计的。它已经被成功地移植到了很多平台上。由于没有MMU,其多任务的实现需要一定技巧。
uclinux经过对标准Linux内核的改动,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,但uclinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持,以及标准丰富的API,适合远程配置模块的建立。
系统采用GNU的套件arm-elf工具链:arm—elf-tools-20030314.sh建立对uclinux进行编译的交叉环境。将arm-elf-tools-20030314.sh拷贝到根目录,运行安装:
sh arm-elf-tools-20030314.sh即可对uclinux进行编译和移植了
交叉编译成功后,在uClinux-dist/目录下产生images目录,其中包含的3个二进制文件文件image.ram,image.rom和romfs.img。
3 系统软件设计
系统的软件是实现远程配置模块的核心,首先编写bootloader的过程,以优化系统在开发板上的执行,然后实现了应用程序以及设备驱动程序的开发。应用程序的开发主要是基于Socket应用程序的编写。
3.1 Bootloader的设计
Bootloader的设计主要是为了在系统上电复位之后,将系统程序执行跳转到系统内核的执行地点。针对这个主要的功能,必须对微处理器的内核以及其他部分进行初始化以及其它的功能扩展,Bootloader它主要完成了以下几个过程:
(1)建立中断向量表
(2)初始化各种处理器模式
(3)引入特殊变量
(4)初始化memory
(5)代码复制
完成了系统的硬件初始化过程后,将CPU使用权交给了操作系统,从而完成了。Bootloader的最终目的。
3.2设备驱动程序开发
Linux对设备的操作Linux系统访问设备就像访问文件—样。例如打开设备使用系统调用open(),关闭设备使用系统。
QICK