基于Linux的嵌入式工业测控系统

34
基基 基基 Linux Linux 基基基基基基基基基基基基基基基基基基基基基基基基基 基基基 基基基 A204236 A204236 2007.11.26 2007.11.26

description

测控技术与仪器. 基于Linux的嵌入式工业测控系统. 韩永龙 A204236 2007.11.26. 3. 2. 4. 1. 嵌入式系统及特点. 测控系统简介. 测控系统总体设计. 嵌入式系统设计方法. 主要内容. 什么是嵌入式系统及其应用. 小至电子体温计 , 大致飞机的自动导航系统. 嵌入式系统的广泛应用. 机顶盒 家庭网关 互联网. 汽车 游戏 视频. 无线 手机 PDA. 典型的嵌入式系统组成. 应用. 文件系统 /GUI/API. OS. Linux 、 u/COS 、 Wince…. 软件. 驱动层. - PowerPoint PPT Presentation

Transcript of 基于Linux的嵌入式工业测控系统

Page 1: 基于Linux的嵌入式工业测控系统

基于基于 LinuxLinux 的嵌入式工业测控系统的嵌入式工业测控系统

测控技术与仪器 韩永龙 韩永龙 A204236A204236 2007.11.262007.11.26

Page 2: 基于Linux的嵌入式工业测控系统

主要内容

嵌入式系统及特点嵌入式系统及特点1

测控系统简介测控系统简介2

测控系统总体设计 测控系统总体设计 3

嵌入式系统设计方法嵌入式系统设计方法4

Page 3: 基于Linux的嵌入式工业测控系统

什么是嵌入式系统及其应用

小至电子体温计 , 大致飞机的自动导航系统 小至电子体温计 , 大致飞机的自动导航系统

Page 4: 基于Linux的嵌入式工业测控系统

嵌入式系统的广泛应用

机顶盒家庭网关

互联网

机顶盒家庭网关

互联网

无线手机PDA

无线手机PDA

汽车游戏视频

汽车游戏视频

Page 5: 基于Linux的嵌入式工业测控系统

典型的嵌入式系统组成典型的嵌入式系统组成

处理器处理器处理器处理器MMUMMUMMUMMU

GPIOGPIOGPIOGPIO

USBUSBUSBUSB

LCDLCDLCDLCD

CANCANCANCAN

DMADMADMADMA

以太网以太网以太网以太网

LCD/LCD/ 触摸屏触摸屏 // 鼠标鼠标LCD/LCD/ 触摸屏触摸屏 // 鼠标鼠标

FlashFlashSDRAMSDRAMSRAMSRAM

FlashFlashSDRAMSDRAMSRAMSRAM

看门狗看门狗复位电路复位电路看门狗看门狗

复位电路复位电路

电源管理电源管理电源管理电源管理

驱动层驱动层驱动层驱动层

OSOSOSOS

应用应用应用应用

BSP/driver/HALBSP/driver/HAL

LinuxLinux、、 u/COSu/COS、、Wince…Wince…

文件系统文件系统 /GUI/API/GUI/API

软件软件软件软件

硬件硬件硬件硬件

输入输入输出输出

输入输入输出输出

Page 6: 基于Linux的嵌入式工业测控系统

测控系统简介

测控系统是一个广阔的领域,涉及到工控机,总线,接口技术,传感技术,通信 技术,控制方法,编程技术,多任务实时操作系统……等多方面的知识。

测量与控制系统是人类认识世界,改造世界意志的科学技术的实现。是利用最新物理学理论和效应的基础上 , 利用最现代化的技术手段来研究客观的学科,他的发展 , 促进了自然科学的进步及生产的现代化。现代科学技术,特别是制造业,对测量的精度,效率要求越来越高。已经从静态到动态,从实验室到现场,从单要素测量到全息测量,从单纯测量到反馈控制。

Page 7: 基于Linux的嵌入式工业测控系统

测控系统实现

各种测控系统和智能仪器、仪表基本组成包括:传感器、计算机系统、执行器。现在,传感器、执行器的通用性越来越好,设计自动测控系统或智能仪器仪表有标准的 4 ~ 20mA或 0 ~ 10mA的标准信号输出的传感器和接受标准驱动信号的执行器供选择,因此,设计者只需设计计算机系统部分,计算机系统基本结构是一致的,仅涉及到具体芯片选择,实现途径大同小异,加之单片机技术的迅猛发展,其集成度越来越高,功能越来越强,接口更容易,

Page 8: 基于Linux的嵌入式工业测控系统

航天测控系统

对运行中的航天器(运载火箭、人造地球卫星、宇宙飞船和其他空间飞行器)进行跟踪、测量和控制的大型电子系统。   发展概况 第二次世界大战以后不久 , 在火箭试验中就已采用某些光学和电子测量系统,例如光学跟踪经纬仪和多普勒测速仪。但是作为完整的航天测控系统,则是在人造地球卫星出现之后才逐步形成的。最早的较为完整的航天测控系统是美国航空航天局 (NASA)于 1961年发射“水星”号载人飞船时使用的全球跟踪网。这个系统在全球布有 16个跟踪站,其中 14个站有雷达测量系统, 15个站有遥测接收系统, 6 个站有遥控系统 ,14个站有对飞船的通信系统。每个站均有自己的时间统一系统,全系统的时间则经与天文时间发播台的时号相比对而统一起来。测控中心设在戈达德航天中心 , 配有 2 台 IBM-7090计算机作为实时计算、决策和控制之用。全系统靠全球性的通信网来相互连接,但其中相当一部分线路是租用的。随后,“阿波罗”号登月飞船、同步通信卫星、同步气象卫星和航天飞机相继发射 , 测控系统更趋完善 , 特别是实时控制方面的功能和自动化程度均有很大的提高。除了对近地卫星和飞船的测控系统外,还建立了对行星际探测的深空测控网。   中国航天测控系统也是在航天事业的发展中逐步臻于完善的。在大陆上已经建立了多个测控站和一个测控通信中心。为了扩展观测范围 , 还建造了海上测量船 , 以便驶往远洋对航天器进行跟踪观测。在整个测控系统中使用了多台计算机,并有贯通各个测控站、测量船和测控中心的通信网络。

Page 9: 基于Linux的嵌入式工业测控系统

系统组成

  航天测控系统包括以下各种系统。前 3 个系统,由地面的和装在航天器上的两部分电子设备组成。   ① 跟踪测量系统:跟踪航天器,测定其弹道或轨道。   ② 遥测系统:测量和传送航天器内部的工程参数和用敏感器测得的空间物理参数。   ③ 遥控系统:通过无线电对航天器的姿态、轨道和其他状态进行控制。   ④ 计算系统:用于弹道、轨道和姿态的确定和实时控制中的计算。   ⑤ 时间统一系统:为整个测控系统提供标准时刻和时标。   ⑥ 显示记录系统:显示航天器遥测、弹道、轨道和其他参数及其变化情况,必要时予以打印记录。   ⑦ 通信、数据传输系统:作为各种电子设备和通信网络的中间设备,沟通各个系统之间的信息,以实现指挥调度。

Page 10: 基于Linux的嵌入式工业测控系统

工业控制发展

当前,在工业控制领域,网络控制技术快速发展。网络控制要求测控系统必须具备两方面的功能:一方面要在现场完成复杂的测控任务,通常一些任务具有一定的实时性的要求;另一方面要求测控系统能够与某一类型的控制网相连,实现远程监控。而在目前应用的大多数测控系统中,嵌入式系统的硬件采用 8/16位的单片机;软件多采用汇编语言编程,仅包含一个简单的循环处理的控制流程;单片机与单片机或上位机之间通信通过 RS232 、 RS485来组网。这些网络存在通信速度慢、联网功能差、开发困难的问题。而工业以太网已逐步完善,在工业控制领域获得越来越多的应用。工业以太网使用了 TCP/IP协议,便于联网,并具有高速控制网络的优点。现在, 32位嵌入式 CPU价格的下降,性能指标的提高,为嵌入式系统的广泛应用提供了可能性。基于上述情况,我们将嵌入式系统应用于测控系统,可大大提高测控系统的性能,嵌入式系统一般应用嵌入式操作系统来开发。在嵌入式操作系统的选择上,由于 Linux有完整开放的源代码,可针对具体应用修改和优化系统,内核稳定,适用于多种CPU和多种硬件平台,支持网络等特点,因而选择 Linux作为嵌入式操作系统。

Page 11: 基于Linux的嵌入式工业测控系统

网络技术在嵌入式系统中的作用

随着网络控制技术的快速发展,工业以太网得到逐步完善,在工业控制领域获得越来越广泛的应用。工业以太网使用了 TCP/IP协议,便于联网,并具有高速控制网络的优点。随着 32位嵌入式 CPU价格的下降,性能指标的提高,为嵌入式系统的广泛应用和Linux在嵌入式系统中的发展提供了广阔的空间。由于 Linux的高度灵活性,可以容易地根据应用领域的特点对它进行定制开发,以满足实际应用需要。

Page 12: 基于Linux的嵌入式工业测控系统

测控系统总体设计

设计目标 测控系统以基于 Linux的嵌入式系统为核心,设计目标归纳起来主要有以下几点:

(1)测控任务在现场完成。测控系统采用分散的控制策略,系统正常运行时上位机只起到状态监控的作用。在工业现场完成数据测量、数据处理、过程控制等多种任务,能确保一些任务完成的实时性。

(2)具有一定的自诊断、自校正的功能,将故障情况上传给上位机,便于维护人员查错、排错。具有动态显示和数据存储能力。

(3)测控系统可连到工业以太网,通过工业以太网实现远程监控。

Page 13: 基于Linux的嵌入式工业测控系统

技术路线

嵌入式系统以嵌入式微处理器为核心,运行嵌入式 Linux 操作系统。应用程序可通过网络进行更新;通过键盘进行人机对话;数据可通过LCD现场显示;重要数据可以文件形式保存在Flash存储器中;数据和报警信息可通过串口向上位机传输,也可通过以太网口向工业以太网或Inernet发布信息,用户通过显示界面查看设备状态,设置设备参数,实现远程监控、远程维护。

Page 14: 基于Linux的嵌入式工业测控系统

总体框架

嵌入式系统以嵌入式微处理器为核心,运行嵌入式 Linux 操作系统。应用程序可通过网络进行更新;通过键盘进行人机对话;数据可通过 LCD现场显示;重要数据可以文件形式保存在 Flash存储器中;数据和报警信息可通过串口向上位机传输,也可通过以太网口向工业以太网或 Inernet发布信息,用户通过显示界面查看设备状态,设置设备参数,实现远程监控、远程维护。

Page 15: 基于Linux的嵌入式工业测控系统

硬件设计

考虑一般测控系统对嵌入式系统要求比较多的功能有:键盘接口、显示接口、 A/D(或 D/A)转换单元、可扩展的 I/O接口、打印机接口、与PC机通信的串行接口、以太网口等。实现的嵌入式系统硬件框图如下:

Page 16: 基于Linux的嵌入式工业测控系统

处理器的选择

针对测控系统的应用,选择 Motorola的Coldfire系列的 MCF5307.MCF5307是一款高性能、低价位、高集成度的微处理器,为嵌入式控制应用而设计。 MCF5307的处理能力达 70 MIPS,工作频率 88.47 MHz,总线频率 44.236 MHz,为运行 Linux提供硬件上的支持,在开发板上还集成有 16 M的 SDRAM、 2 M的 FLASH、 10 baseT以太网接口、 RS232/RS485串口、 I/O接口等。

Page 17: 基于Linux的嵌入式工业测控系统

软件设计

嵌入式操作系统是整个嵌入式系统的核心。我们选择 Linux,但典型的 Linux是为桌面配置的,内核十分庞大,而嵌入式系统的 RAM存储容量很小,因此,要把 Linux操作系统装入有限的内存,就要对它进行裁剪,在裁剪过程中涉及的主要技术有:

Page 18: 基于Linux的嵌入式工业测控系统

(1) 内核的精简。

标准 Linux是面向 PC的,集成了许多 PC需要而嵌入式系统并不需要的功能。对一些可独立加上或卸下的功能块,可在编译内核时,仅保留嵌入式系统所需的功能支持模块,删除不需要的功能。例如,测控系统要连入以太网,就要提供对 TCP/IP的支持,编译时加上 TCP/IP栈;而 SCSI、 Floppy之类的外设在我们的嵌入式系统中完全没有必要,编译时可去掉。这样,重新编译过的内核显著减小。

Page 19: 基于Linux的嵌入式工业测控系统

(2) 虚拟内存机制的屏蔽。

经过分析发现,虚拟内存是导致 Linux实时性不强的原因之一。在工业控制中一些任务要满足一定的实时性的要求,屏蔽内核的虚拟内存管理机制可以增强 Linux的实时性。当要更改内核的某项机制时,一般不必大规模的改写代码,可采用条件编译的方法。思路是用 #ifdef或 #ifndef屏蔽现有语句,在 #else宏编译语句中包括自己编写的代码。实现虚拟内存的机制有:地址映射机制、内存分配和回收机制,缓存和刷新机制、请页机制、交换机制、内存共享机制,将实现这些机制的数据结构和函数屏蔽或修改,还要修改与之相关的文件。需要改动的文件主要在 /include/linux 、 /mm 、 /drivers/char 、 /fs 、 /ipc/kernel 、 /init目录下。主要的改动如下:与虚存有关的主要的数据结构是vm_area_struct,将进程的 mm_struct结构中的vm_area_struct去掉, vm_area_struct利用了 vm_ops来抽象出对虚拟内存的处理方法,屏蔽与虚拟内存操作有关的函数。内存映射主要由 do_mmap()实现,改写此函数的代码。取消交换操作,屏蔽用于交换的结构和函数声明,以及实现交换的代码。取消内核守护进程 kswapd.

Page 20: 基于Linux的嵌入式工业测控系统

(3) 设备驱动程序的编写。

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

Page 21: 基于Linux的嵌入式工业测控系统

Linux 操作系统优化

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

Page 22: 基于Linux的嵌入式工业测控系统

内核的移植、编译

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

Page 23: 基于Linux的嵌入式工业测控系统

应用程序的开发

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

Page 24: 基于Linux的嵌入式工业测控系统

应用程序的开发

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

Page 25: 基于Linux的嵌入式工业测控系统

应用程序的开发

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

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

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

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

Page 26: 基于Linux的嵌入式工业测控系统

最终的调试、测试

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

Page 27: 基于Linux的嵌入式工业测控系统

总结

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

Page 28: 基于Linux的嵌入式工业测控系统

设计过程

在智能仪器的开发和设计中,首先要明确设计准则及要求,其次制定系统方案,最后是方案的具体实施。设计准则及要求,就是使设计的智能仪器根据实际的需要采用先进技术,进行标准化、系统化设计,使其具有较完善的操作性能,同时要求智能仪器可靠、安全、实用、性能价格比高。制定系统方案,是根据设计的任务要求提出几种设想、规划,并且加以比较推敲,选择一种认为是可行、较好的方案作为初步方案,然后对系统的指导思想、技术原则、技术指标、可靠性、性价比进行方案评估,最后根据评价的结果制定系统的设计方案。方案实施需要对系统的硬件、软件设计部分进行调试,在各部分通过之后,在进行统调,从而完成智能仪器的实际。下面就系统设计与开发方案实施过程的一些主要步骤加以说明。

Page 29: 基于Linux的嵌入式工业测控系统

1. 确定系统规模大小。系统总体方案确定之后,则首先要预估系统软、硬件规模的大小,硬件核心部件选型,容量,对外的 I/O数,通道数,模块数等。

Page 30: 基于Linux的嵌入式工业测控系统

2. 软、硬件权衡分配。 2. 软、硬件权衡分配。在既定的总体规模中再进一步权衡。哪些模块用硬件完成,哪些可以用软件完成,合理调整好硬、软件搭配。原则上讲,硬件功能软件也可以完成,反之亦然。但在不同场合, 软、硬件将各有特长,要是系统达到较高的性价比,必须使系统有恰当的软、硬件比例。一般地讲,硬件速度快,但应变灵活性小,扩展功能要另添部件;而软件处理速度慢,但变更灵活性大,添加功能只要对软件作适当修改即可。至于价格,硬件是需较大投资,软件相对小些。软件和硬件在逻辑功能上是等效的。具有相同功能的单片机应用系统,其软、硬件功能分配可以在很宽的范围内变化,系统的软硬件功能分配要根据系统的要求而定。提高硬件功能的比例可以提高速度,减少所需的存储容量,有利于监测和控制的实时性,但会增加硬件成本以及降低硬件的利用率和系统的灵活性与实用性。相反,提高软件功能的比例可以降低硬件的造价,提高灵活性和适应性,但相应速度要下降,软件设计费用和所需存储器容量要增加。

Page 31: 基于Linux的嵌入式工业测控系统

3. 硬件部分调试:解决了软件、硬件分配之后,硬、软件设计可分开进行,但是相互间的联系很多,故也可交叉进行。硬件先逐个建立,并进行初步调试。

Page 32: 基于Linux的嵌入式工业测控系统

4. 软件模块的调试。一般要借助于目标系统向同机种的高中档微机系统,后采用专门的微机开发系统作为工具。将编写好的源程序送入工具微机系统,进行编辑、编译、形成目标程序,以便对软件进行单独初初步调试。

Page 33: 基于Linux的嵌入式工业测控系统

联机调试。将软件、硬件进行联调,最好能使用带有仿真器的微机开发系统,这样可以获得高效率的调试结果,逐步排除故障,完成调试任务。

Page 34: 基于Linux的嵌入式工业测控系统

谢谢!