微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Linux的嵌入式测控系统设计

基于Linux的嵌入式测控系统设计

时间:07-03 来源:3721RD 点击:

掉,vm_area_struct利用了vm_ops来抽象出对虚拟内存的处理方法,屏蔽与虚拟内存操作有关的函数。内存映射主要由do_mmap()实现,改写此函数的代码。取消交换操作,屏蔽用于交换的结构和函数声明,以及实现交换的代码。取消内核守护进程kswapd.

(3) 设备驱动程序的编写。确定了内核的基本功能后,就要为特定的设备编写驱动程序,可按照在Linux下编写驱动程序的规则编写。编写的设备驱动程序应具有以下功能:①对设备初始化和释放;②把数据从内核传到硬件和从硬件读取数据;③读取应用程序传递给设备文件的数据和回送应用程序请求的数据;④检测和处理设备出现的错误。

实现上述步骤后,一个小型的Linux 操作系统就构造完成了。构造后的Linux包括进程管理、内存管理和文件管理,支持多任务并行;开发基于闪存的文件系统,应用程序和重要数据以文件的形式被存放在闪存文件系统中;有完整的TCP/IP协议栈,Linux内建有对以太网控制器的支持,可以通过以太网口连到工业以太网上,实现远程监控。

还要将裁剪好的内核移植到所用的目标板上,通常移植内核时,首先要将内核编译成针对该处理器的目标代码。而我们所用的嵌入式微处理器MCF5307 是ColdFire系列,它有一些不同于其它CPU的地方,一些内核程序要改写,涉及到编写Linux的引导代码和修改与体系结构相关部分的代码,主要是内存管理和中断处理部分。将Flash作为系统的启动设备,引导代码放在Flash上。系统加电后,由引导代码进行基本的硬件初始化,然后把内核映象装入内存运行。

对于应用程序的开发,针对测控系统的具体应用,利用Linux 提供API接口开发应用程序。测控系统要完成多个任务,因为屏蔽了虚拟内存机制,所有的任务共同享有物理内存,存在于统一的线性空间中。任务中的地址为真正的物理地址,由于不需要进行地址空间映射,在任务切换时的上下文切换时间大大减少,提高了响应的速度,实时性增强。Linux采用基于优先级的轮转法调度策略,能够实现多个任务并行。各个任务的实时性要求不同,可通过划分优先级,使实时性要求高的任务划分为实时进程,具有较高的优先级,优先得到调度,保证一定的实时性的要求。任务间通过信号量、消息队列等机制通信。

在嵌入式系统中软件开发的主要模块有:数据采集模块,数据处理模块,数据显示模块,通信和数据发布模块,故障诊断模块。其中故障诊断模块实现实时自诊断,在系统工作期间,对系统内部进行部分测试。即将诊断程序设置在嵌入式系统中中断级别最低的中断服务程序,在不影响系统工作的前提下,进行实时诊断。如发现故障且复诊后仍有错,通过显示界面显示,并上传给上位机,保证系统的可靠性。

在嵌入式Linux的开发中,采用主-从模式,通过串行口或以太网口,使目标板和宿主机相连。使用的是GNU的系列工具,GNU具有免费开放的源代码,也为我们开发基于Linux的应用程序提供了方便。它包括一系列的开发调试工具。主要组件有:

gcc:编译器,可做成交叉编译的形式,即在宿主机上开发编译目标机上可运行的二进制文件;

Binutils:一些辅助工具,包括objdump(可以反编译二进制文件)、as(汇编编译器)、ld(连接器)等等;

Gdb:调试器,可使用多种交叉调试方式,如gdbserve(使用以太网络调试)。

最后,将调试好的内核和应用程序烧录到闪存中。裁剪后的Linux已成经功移植到目标平台上,在开发板上运行良好。经过测试,已满足一般的实时性要求。

3 结 论

我们开发的基于Linux 的嵌入式系统应用于测控系统,能满足当前工业控制领域对测控系统提出的要求,保证测控任务完成的实时性、可靠性,可连到工业以太网实现远程监控。其硬件,接口采用插板的形式,结构简单,易于装卸,方便系统集成和维护。软件方面,用户可针对具体应用作相应修改或删除即可,因而提高了测控系统的开发效率,在工业控制领域有很好的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top