导航:首页 > 软件知识 > 如何屏蔽嵌入式程序

如何屏蔽嵌入式程序

发布时间:2022-12-12 06:37:19

Ⅰ 什么是嵌入式系统

一 什么是嵌入式系统

嵌入式系统一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。

嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

嵌入式系统的硬件部分,包括处理器 / 微处理器、存储器及外设器件和 I/O 端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM 、 EEPROM 或闪存 (Flash Memory) 作为存储介质。软件部分包括操作系统软件 ( 要求实时和多任务操作 ) 和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

二 嵌入式处理器

嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备 4 个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; (2) 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; (3) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; (4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为 mW 甚至μ W 级。

据不完全统计,目前全世界嵌入式处理器的品种总量已经超过 1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从 64kB 到 16MB ,处理速度为 0.1~2000MIPS ,常用封装 8~144 个引脚。

根据现状,嵌入式计算机可分成下面几类。

(1) 嵌入式微处理器 (Embedded Microprocessor Unit, EMPU)

嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括 ROM 、 RAM 、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。嵌入式处理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。

(2) 嵌入式微控制器 (Microcontroller Unit, MCU)

嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了 ROM/EPROM 、 RAM 、总线、总线逻辑、定时 / 计数器、看门狗、 I/O 、串行口、脉宽调制输出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比较有代表性的半通用系列,如支持 USB 接口的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 总线、 LCD 等的众多专用 MCU 和兼容系列。目前 MCU 约占嵌入式系统市场份额的 70% 。

(3) 嵌入式 DSP 处理器 (Embedded Digital Signal Processor, EDSP

在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是 O(nm) 的,甚至是 NP 的,一般结构的处理器无法实时的完成这些运算。由于 DSP 处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。在数字滤波、 FFT 、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP 处理器。嵌入式 DSP 处理器有两类: (1)DSP 处理器经过单片化、 EMC 改造、增加片上外设成为嵌入式 DSP 处理器, TI 的 TMS320C2000/C5000 等属于此范畴; (2) 在通用单片机或 SOC 中增加 DSP 协处理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有关智能方面的应用中,也需要嵌入式 DPS 处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是 DSP 处理器的优势所在。嵌入式 DSP 处理器比较有代表性的产品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列处理器包括用于控制的 C2000 系列、移动通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已经发展成为 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等几个不同系列的处理器。另外, Philips 公司最近也推出了基于可重置嵌入式 DSP 结构,采用低成本、低功耗技术制造的 R. E. A. L DSP 处理器,其特点是具备双 Harvard 结构和双乘 / 累加单元,应用目标是大批量消费类产品。

(4) 嵌入式片上系统 (System On Chip, SOC)

随着 EDI 的推广和 VLSI 设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了 SOC 技术。各种通用处理器内核将作为 SOC 设计公司的标准库,和其他许多嵌入式系统外设一样,成为 VLSI 设计中一种标准的器件,用标准的 VHDL 、 Verlog 等硬件语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。 SOC 可分为通用和专用两类,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 联合研制的 Neuron 芯片等;专用 SOC 一般专用于某个或某类系统中,如 Philips 的 Smart XA ,它将 XA 单片机内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一块硅片上,形成一个可加载 Java 或 C 语言的专用 SOC ,可用于互联网安全方面。

三 嵌入式操作系统

嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统 ( 包括硬、软件系统 ) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等 Browser 。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序 。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

1. 嵌入式操作系统的种类

一般情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系统软件公司的 QNX 、 ATI 的 Nucleus 等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理 (PDA) 、移动电话、机顶盒、电子书、 WebPhone 等。

a. 非实时操作系统

早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。

实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过 FIFO 队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要 RAM/ROM 的额外开销,因而在简单的嵌入式应用被广泛使用。

b. 实时操作系统

实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。

实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。

实时多任务操作系统是指具有实时性、能支持实时控制系统工作的操作系统。其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。实时操作系统具有如下功能:任务管理 ( 多任务和基于优先级的任务调度 ) 、任务间同步和通信 ( 信号量和邮箱等 ) 、存储器优化管理 ( 含 ROM 的管理 ) 、实时时钟服务、中断管理服务。实时操作系统具有如下特点:规模小,中断被屏蔽的时间很短,中断处理时间短,任务切换很快。

实时操作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而言,可抢占型实时操作系统是指内核可以抢占正在运行任务的 CPU 使用权并将使用权交给进入就绪态的优先级更高的任务,是内核抢了 CPU 让别的任务运行。不可抢占型实时操作系统使用某种算法并决定让某个任务运行后,就把 CPU 的控制权完全交给了该任务,直到它主动将 CPU 控制权还回来。中断由中断服务程序来处理,可以激活一个休眠态的任务,使之进入就绪态;而这个进入就绪态的任务还不能运行,一直要等到当前运行的任务主动交出 CPU 的控制权。使用这种实时操作系统的实时性比不使用实时操作系统的系统性能好,其实时性取决于最长任务的执行时间。不可抢占型实时操作系统的缺点也恰恰是这一点,如果最长任务的执行时间不能确定,系统的实时性就不能确定。

可抢占型实时操作系统的实时性好,优先级高的任务只要具备了运行的条件,或者说进入了就绪态,就可以立即运行。也就是说,除了优先级最高的任务,其他任务在运行过程中都可能随时被比它优先级高的任务中断,让后者运行。通过这种方式的任务调度保证了系统的实时性,但是,如果任务之间抢占 CPU 控制权处理不好,会产生系统崩溃、死机等严重后果。

2. 嵌入式操作系统的发展

嵌入式操作系统伴随着嵌入式系统的发展经历了 4 个比较明显的阶段。

第一阶段是无操作系统的嵌入算法阶段,是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是已经远远不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领域的需求。

第二阶段是以嵌入式 CPU 为基础、以简单操作系统为核心的嵌入式系统。这一阶段系统的主要特点是: CPU 种类繁多,通用性比较差;系统开销小, 效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。

第三阶段是通用的嵌入式实时操作系统阶段,是以嵌入式操作系统为核心的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口 (API) ,开发应用程序简单;嵌入式应用软件丰富。

第四阶段是以基于 Internet 为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于 Internet 之外,但随着 Internet 的发展以及 Internet 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 Internet 的结合将代表着嵌入式技术的真正未来。

3. 使用实时操作系统的必要性

嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。

首先,嵌入式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出错、跑飞,甚至死循环,造成了系统的崩溃。而实时操作系统管理的系统,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。通常情况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统稳定可靠的措施,如把有问题的任务清除掉。

其次,提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。 再次,嵌入式实时操作系统充分发挥了 32 位 CPU 的多任务潜力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时系统。 32 位 CPU 采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如, CPU 运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出 CPU 的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥 32 位 CPU 的优势。

从某种意义上说,没有操作系统的计算机 ( 裸机 ) 是没有用的。在嵌入式应用中,只有把 CPU 嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。

4. 实时操作系统的优缺点

在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的 ROM/RAM 开销, 2~5% 的 CPU 额外负荷,以及内核的费用。

Ⅱ 嵌入式系统

一 什么是嵌入式系统 嵌入式系统一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。 嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。 嵌入式系统的硬件部分,包括处理器 / 微处理器、存储器及外设器件和 I/O 端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM 、 EEPROM 或闪存 (Flash Memory) 作为存储介质。软件部分包括操作系统软件 ( 要求实时和多任务操作 ) 和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。 二 嵌入式处理器 嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备 4 个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度; (2) 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; (3) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; (4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为 mW 甚至μ W 级。 据不完全统计,目前全世界嵌入式处理器的品种总量已经超过 1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从 64kB 到 16MB ,处理速度为 0.1~2000MIPS ,常用封装 8~144 个引脚。 根据现状,嵌入式计算机可分成下面几类。 (1) 嵌入式微处理器 (Embedded Microprocessor Unit, EMPU) 嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括 ROM 、 RAM 、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。嵌入式处理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。 (2) 嵌入式微控制器 (Microcontroller Unit, MCU) 嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了 ROM/EPROM 、 RAM 、总线、总线逻辑、定时 / 计数器、看门狗、 I/O 、串行口、脉宽调制输出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比较有代表性的半通用系列,如支持 USB 接口的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 总线、 LCD 等的众多专用 MCU 和兼容系列。目前 MCU 约占嵌入式系统市场份额的 70% 。 (3) 嵌入式 DSP 处理器 (Embedded Digital Signal Processor, EDSP 在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是 O(nm) 的,甚至是 NP 的,一般结构的处理器无法实时的完成这些运算。由于 DSP 处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。在数字滤波、 FFT 、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP 处理器。嵌入式 DSP 处理器有两类: (1)DSP 处理器经过单片化、 EMC 改造、增加片上外设成为嵌入式 DSP 处理器, TI 的 TMS320C2000/C5000 等属于此范畴; (2) 在通用单片机或 SOC 中增加 DSP 协处理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有关智能方面的应用中,也需要嵌入式 DPS 处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是 DSP 处理器的优势所在。嵌入式 DSP 处理器比较有代表性的产品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列处理器包括用于控制的 C2000 系列、移动通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已经发展成为 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等几个不同系列的处理器。另外, Philips 公司最近也推出了基于可重置嵌入式 DSP 结构,采用低成本、低功耗技术制造的 R. E. A. L DSP 处理器,其特点是具备双 Harvard 结构和双乘 / 累加单元,应用目标是大批量消费类产品。 (4) 嵌入式片上系统 (System On Chip, SOC) 随着 EDI 的推广和 VLSI 设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了 SOC 技术。各种通用处理器内核将作为 SOC 设计公司的标准库,和其他许多嵌入式系统外设一样,成为 VLSI 设计中一种标准的器件,用标准的 VHDL 、 Verlog 等硬件语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。 SOC 可分为通用和专用两类,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 联合研制的 Neuron 芯片等;专用 SOC 一般专用于某个或某类系统中,如 Philips 的 Smart XA ,它将 XA 单片机内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一块硅片上,形成一个可加载 Java 或 C 语言的专用 SOC ,可用于互联网安全方面。 三 嵌入式操作系统 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统 ( 包括硬、软件系统 ) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等 Browser 。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序 。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。 1. 嵌入式操作系统的种类 一般情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系统软件公司的 QNX 、 ATI 的 Nucleus 等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理 (PDA) 、移动电话、机顶盒、电子书、 WebPhone 等。 a. 非实时操作系统 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。 实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过 FIFO 队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要 RAM/ROM 的额外开销,因而在简单的嵌入式应用被广泛使用。 b. 实时操作系统 实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。 实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。 实时多任务操作系统是指具有实时性、能支持实时控制系统工作的操作系统。其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。实时操作系统具有如下功能:任务管理 ( 多任务和基于优先级的任务调度 ) 、任务间同步和通信 ( 信号量和邮箱等 ) 、存储器优化管理 ( 含 ROM 的管理 ) 、实时时钟服务、中断管理服务。实时操作系统具有如下特点:规模小,中断被屏蔽的时间很短,中断处理时间短,任务切换很快。 实时操作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而言,可抢占型实时操作系统是指内核可以抢占正在运行任务的 CPU 使用权并将使用权交给进入就绪态的优先级更高的任务,是内核抢了 CPU 让别的任务运行。不可抢占型实时操作系统使用某种算法并决定让某个任务运行后,就把 CPU 的控制权完全交给了该任务,直到它主动将 CPU 控制权还回来。中断由中断服务程序来处理,可以激活一个休眠态的任务,使之进入就绪态;而这个进入就绪态的任务还不能运行,一直要等到当前运行的任务主动交出 CPU 的控制权。使用这种实时操作系统的实时性比不使用实时操作系统的系统性能好,其实时性取决于最长任务的执行时间。不可抢占型实时操作系统的缺点也恰恰是这一点,如果最长任务的执行时间不能确定,系统的实时性就不能确定。 可抢占型实时操作系统的实时性好,优先级高的任务只要具备了运行的条件,或者说进入了就绪态,就可以立即运行。也就是说,除了优先级最高的任务,其他任务在运行过程中都可能随时被比它优先级高的任务中断,让后者运行。通过这种方式的任务调度保证了系统的实时性,但是,如果任务之间抢占 CPU 控制权处理不好,会产生系统崩溃、死机等严重后果。 2. 嵌入式操作系统的发展 嵌入式操作系统伴随着嵌入式系统的发展经历了 4 个比较明显的阶段。 第一阶段是无操作系统的嵌入算法阶段,是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是已经远远不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领域的需求。 第二阶段是以嵌入式 CPU 为基础、以简单操作系统为核心的嵌入式系统。这一阶段系统的主要特点是: CPU 种类繁多,通用性比较差;系统开销小, 效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是通用的嵌入式实时操作系统阶段,是以嵌入式操作系统为核心的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口 (API) ,开发应用程序简单;嵌入式应用软件丰富。 第四阶段是以基于 Internet 为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于 Internet 之外,但随着 Internet 的发展以及 Internet 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 Internet 的结合将代表着嵌入式技术的真正未来。 3. 使用实时操作系统的必要性 嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。 首先,嵌入式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出错、跑飞,甚至死循环,造成了系统的崩溃。而实时操作系统管理的系统,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。通常情况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统稳定可靠的措施,如把有问题的任务清除掉。 其次,提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。 再次,嵌入式实时操作系统充分发挥了 32 位 CPU 的多任务潜力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时系统。 32 位 CPU 采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如, CPU 运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出 CPU 的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥 32 位 CPU 的优势。 从某种意义上说,没有操作系统的计算机 ( 裸机 ) 是没有用的。在嵌入式应用中,只有把 CPU 嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。 4. 实时操作系统的优缺点 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的 ROM/RAM 开销, 2~5% 的 CPU 额外负荷,以及内核的费用。

Ⅲ 如何利用内嵌汇编程序实现使能和禁止中断

在Windows下开关中断指令属于特权指令,就算内嵌了也不会被执行的。

DOS下的话CLI是关中断,STI是开中断.要实模式下的DOS,虚拟的DOS(就是Windows下的那个DOS窗口)还是会被Windows屏蔽掉。

#include<stdio.h>

void main()

{

int a=2;

__asm{

lea eax,a

shl [eax],2

}

printf("a=%d ",a);

}

(3)如何屏蔽嵌入式程序扩展阅读:

嵌 入式系统是基于特定用途的 , 以计算机技术为基础 ,其软硬件具备良好可裁剪性的专用计算机系统,适用于对功能、可靠性、成本、体积、 功耗有严格要 求的场合。它一般由嵌入式微处理器、 外围硬件设备、嵌入式操作系统以及用户应用程序四个部分组成。从 20 世纪 60年代中期集成电路诞生至今,嵌入式系统应用已经有接近 40 年的发展历史。

通常来说,嵌入式系统具备以下特点:

(1)体积小,重量轻。

(2)结构简单、功耗低、可靠性高。

(3)便于规模化生产、价格相对低廉。

(4)模块化、芯片化。

(5)强调量身定做的原则。

Ⅳ 如何取消杀毒软件在office中的嵌入式杀毒

一、如果你安装的是诺顿
具体的解决方法是:
右键点击右下角的图标,选择 “配置Norton Antivirus”
在弹出的对话框内找到“杂项”选项
如果在“启用Office插件”前面有对号的话,将它点掉,确定退出后就ok了

二、如果你安装的是瑞星
具体的解决方法是:
设置—>详细设置—>嵌入式杀毒,去掉“使用Office/IE嵌入式杀毒”前的勾即可。

或设置“其他设置”中,将“使用office/IE安全助手”前面的勾取消就能解决问题。

三、Microsoft解释:

症状:
如果通过双击一个文档(例如,在 Microsoft Windows 资源管理器中)来在 Microsoft Office Word 2003 中打开该文档,则会收到下面的错误信息:The command cannot be performed because a dialog box is open.Click "OK" and then close open dialog boxes to continue.在 Microsoft Word 2002 中不会收到这一错误信息。

原因:
如果 Startup 文件夹中有一个 Word 2003 模板,该模板中包含能打开对话框的自动执行 (autoexec) 宏,则可能发生此问题。

替代方法
方法 1:
在 Word 中打开要在 Word 中直接打开文档,请按下列步骤操作:
1. 启动 Word 2003。
2. 在“文件”菜单上,单击“打开”。
3. 在“打开”对话框中,选择要打开的文档,然后单击“打开”。

方法 2:
从 Startup 文件夹中删除模板,要从 Startup 文件夹中删除模板,请按下列步骤操作:
1. 退出 Word 2003。
2. 单击“开始”,指向“程序”,指向“附件”,然后单击“Windows 资源管理器”。
3. 找出下列二个文件夹之一:
Documents and Settings\username\Application Data\Microsoft\Word\Startup
Program Files\Microsoft Office\Office11\Startup
4. 双击以打开“Startup”文件夹。
5. 在 Windows 资源管理器的右窗格中,单击以选择要删除的模板,然后按 Delete 键。

Ⅳ 请教大侠,LPC2366FBD100芯片 怎样对嵌入式软件进行加密,防止代码被读出。谢谢

使用Virbox Protector 加密工具保护嵌入式软件代码。

安全技术

1 高级混淆加密
通过VirboxProtector,开发者能够自由选择保护的函数,对指定函数进行高级混淆,有效防止 IDA 反编译,极大地增加了动态分析的难度。相比使用基于LLVM编译器的混淆,Virbox Protector的高级混淆功能以更少的指令达到更强的保护效果,耗电量更小。

2 基于 SMC 技术的代码加密
可以对指定函数进行代码片加密,只有程序运行的时候才能解密,破解者无法 Dump 出整体的内存,有效防止逆向工程工具对程序进行静态分析。

3 智能压缩
隐藏程序中的代码和数据,阻止 IDA PRO 等工具的反编译,并且有效的防止了加壳后的应用体积膨胀。

Virbox Protector 加密效果

源代码加密前使用反编译工具查看效果

Ⅵ 嵌入式中编写中断处理程序有什么需要注意的

1.中断基本概念什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返回地址),暂停工作,去接电话(中断),并指示“按第二方案”(调中断服务程序),然后,再静下心来(恢复中断前状态),接着处理文件……。计算机科学家观察了类似实例,“外师物化,内得心源”,借用了这些思想、处理方式和名称,研制了一系列中断服务程序及其调度系统。中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROMBIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理中断等,)以及DOS的系统功能调用(INT21H)等都是软件中断。CPU为了处理并发的中断请求,规定了中断的优先权,中断优先权由高到低的顺序是:(1)除法错、溢出中断、软件中断(2)不可屏蔽中断(3)可屏蔽中断(4)单步中断。

Ⅶ 嵌入式中断屏蔽器的作用

可以实时控制、故障自动处理、与外围设备间的数据传送、硬件故障报警与处理、支持多道程序并发运行。
嵌入式中断屏蔽器基本都是以前后台方式(大循环加中断)的方式来实现功能,在主循环中处理应用,并在中断中处理外部的触发信号,以及对响应时间有要求的应用,如用于时间相关处理的定时器中断,对按键响应的外部中断,用于通讯的收发和异常处理的串口中断,SPI中断,网络中断等。

Ⅷ 通过dsp给ram写进程序,如何判断我的程序写到正确的位置

类似的问题我也遇到过,总是进入非法中断。反复查也查不到问题,关键无从下手, 没办法,只能屏蔽掉绝大部分中断,发现CPU_Timer0中断进不去,再后来就查出是 cmd文件配置的问题。 嵌入式程序的调试比PC程序麻烦,根据你说的也很难判断是什么问题,只能告诉你一个思路: 把能屏蔽掉的代码都注释掉,直到不再出问题。然后一点一点再往上加, 看加到哪一部开始出问题。如果全屏蔽了还有问题,那么最可疑的就是cmd了。

Ⅸ 嵌入式系统的操作系统(如linux)主要作用是什么

嵌入式操作系统的主要好处就是屏蔽了底层硬件的差别,给上层应用提供统一的接口,并管理进程调度和资源(如CPU时间、内存)分配等。就跟windows操作系统一样,不管你是用华硕的电脑还是戴尔的电脑,只要装了windows操作系统,你都可以用office、词霸之类的软件。人机界面(MMI)是上层应用show出来的。
简单的嵌入式应用不需要嵌入式操作系统的支持,如单片机,直接用汇编程序就能实现特定的功能。要跑的应用多了,就需要操作系统来进行管理。

一般手机产品、小型医疗设备、军工设备等都用到了arm+linux的平台。
arm处理器(CPU)是目前使用较多的,使用的嵌入式操作系统可以是多种多样的,不光是linux。嵌入式linux系统比较稳定,有开源代码,成本低,可移植性强;可以灵活裁剪不需要的功能,减小嵌入式软件的大小和降低系统功耗。所以用嵌入式linux操作系统的不少。但现在很多公司都是用那种商业化的定制好的嵌入式linux平台以减少开发量和加快开发速度(比如有专门针对通讯设备的,有专门针对一般消费电子类的),这就需要买了。

Ⅹ 简述嵌入式系统设计中抗电磁干扰技术

嵌入式系统的抗干扰设计
王军安
〔西安电子科技大学计算机外部设备研究所)
摘要:针对嵌入式系统的杭干扰设计要求,从电路及印制板设计、机箱及电缆连接等方面讨
论了硬件系统的电磁兼容设计技术;从软件的可靠性设计、程序跑飞的预防、补救及妥全措
施等方面讨论了软件系统的抗干扰设计技术.
关键词:嵌入式系统 抗干扰 EMI可靠性
引言
嵌入式系统的工作现场往往具有大量的电磁干扰源,它们一般可分为:(1)来自电源的
传导干扰:(2)来自传输信道的传导干扰;(3)来自空间的辐射干扰。嵌入式系统在设计时
如果未采取有效的抗干扰措施,则运行时CPU及其它微弱信号处理模块很容易受这些干扰源
影响,而无法正常工作。因此,抗干扰性能一直是影响嵌入式系统工作可靠性的主要因素。
如何提高抗干扰性能,一直是嵌入式系统开发者关心的问题。
为了提高嵌入式系统的工作可靠性,在系统设计开始时,就应该对使用环境的电磁干扰
情况作出合理估计,并提出适当的电磁兼容性 (EMI)指标。在硬件设计、实现、系统互连
中,需要采取相关措施保证EMI指标;在软件设计及编程时,对于嵌入式计算机最容易出现
的“程序跑飞”问题,需要采取预防和补救措施。本文将结合作者的实践经验,对以上问题进
行讨论。
一、硬件系统的抗干扰设计
硬件系统的抗干扰设计主要指电磁兼容性设计,电磁兼容性包含两个方面:(1)对环境
中的电磁干扰有一定的耐受能力;(2)不可以向空间环境发射过强的电磁能量。
EMI问题主要源自电路的分布参数。许多电路从原理 (集中参数)上看,似乎没有问题,
而实际系统中由于器件的非理想性,以及结构、布线等问题,造成EMI发射或敏感。抗干扰
设计的基本原理包括:
(I)抑制干扰源:减小电压/电流变化率,如并联阻容吸收电路,串联阻尼电感,并联续
流二极管等。
(2)切断传导及辐射千扰的传播路径:如使用滤波器或隔离电路,使用屏蔽技术。
(3)提高敏感器件的抗千扰性能:缩短连线,减小环路面积,加宽电源及地线
以下主要从电原理及印制板设计、机箱屏蔽及电缆连接技术等方面讨论硬件系统的抗干
扰设计技术。
1.1电路设计及布线
在研制初期,就应该对系统进行可靠性预计及分析工作,确定影响可靠性的关键部件及
元器件。确认方案的合理性后,对影响可靠性的关键元器件降额使用。
以 卜是作者在实践中的儿点体会:
(1)尽可能简化、优化体系结构。如使用功能更全的Soc,嵌入式计算机。
(2)注意嵌入式系统的可靠复位。当电源有尖峰干扰或电压上升速度太慢时,普通阻容
复位电路难以正确复位,可考虑专用器件。
(3)电路的环路面积对EMI性能影响很大,使用大规模集成电路,可以有效减小环路面
积,从而提高抗干扰性、减小空间电磁发射。
(4)逻辑器件尽量使用CMOs电路,因为噪声容限大、功耗低。CMOs器件的输出阻抗
很小,而输入阻抗很大,连线过长时,应在输入端使用阻抗匹配电阻:不使用的输入端应接
高电平。
(5)数字信号的转换速率应与要求速度相适应 (必要时使用阻尼电路),仅在需要时使
用高速器件。
(6)注意信号电缆的EMI性能。最好使用屏蔽电缆,必要时使用隔离电路。如必须使用
扁平电缆,则可以将信号线与地线交错布置。
关于印制板设计的几点建议:
(1)成本允许时,尽量使用4层以上的线路板,以提高EMI性能。
(2)仔细考虑器件的位置和方向。
(3)对敏感电路及强辐射电路使用屏蔽。
(4)尽量减小高频信号及高敏感信号 (如时钟信号)的回路面积,旁边不布置其它信号
线,并用地线包围。
(5)在器件的电源、地端就近布置退藕电容器。
(6)无论器件位置、布线、信号电缆、地线,都尽可能按照电特性的不同 (模拟信号、
数字信号、离散量信号等)进行分组。
(7)不同部分的电路使用不同的地线,并形成树形连接,避免地线环路;PCB空白位置
可以用地线填充:如果要连接系统地线与机箱地线,则在信号电缆连接器位置进行低阻抗连
接。
(8)使用先进的制造工艺。如PCB设计、制做、焊接、器件老化。
1.2机箱及过线的EMI设计
机箱及穿过的电源线、信号电缆通常是EMI设计的关键问题。机箱的作用是双向电磁屏
蔽及接地,而穿过的导线很容易破坏机箱的电磁屏蔽效果。
为了防止设备本身产生的电磁干扰进入电源线,同时防止电源线上的干扰进入设备,一
般需要使用电源线滤波器抑制双向的共模及差模传导干扰,还可以使用瞬态电压保护器及压
敏电阻抑制浪涌电压。
需要指出,来自电源线的共模千扰通过共模抑制电容器接至机箱。机箱必须妥善接地,
才能保证共模千扰的抑制效果。较大的共模抑制电容器可以改善共模千扰的抑制效果,但会
产生较大的漏电流,对安全不利。
当设备比较复杂时,屏蔽和接地方案需要仔细设计。如图1,作者的一些体会:
(1)从机箱电源输入口到电源线滤波器输入端的连线应尽量短,以防止双向空间电磁祸
合。最好选用带插座的电源线滤波器。
电源线滤波器外壳应该与机箱形成良好导电接触,并就近布置接地桩。
电Dv,线滤波器的输入、输出引线不要靠近,以防庄电磁祸合。建议把电源线滤波器靠近机箱
壁放置。
(2)穿过机箱的信号电缆很容易引入共模干扰,最好使用馈通滤波器或光电隔离器,必
要时应使用屏蔽网套。信号电缆应远离电源线。
(3)为了屏蔽电磁干扰、抑制静电放电干扰,机箱应近似为完整、连续的导电体:严格
控制机箱开孔尺寸,必要时使用多个狭缝或蜂窝状屏蔽通风窗。
(4)键盘及显示器件往往需要较大的窗口,不利于电磁屏蔽,可以考虑使用隔离仓技术
将显示电路与其它电路隔离,或使用透明屏蔽材料。
图1建议的机箱及屏蔽方案
二、软件系统的抗干扰设计
嵌入式系统的灵魂是软件系统,嵌入式系统的抗干扰设计,必须解决软件系统的抗干扰
问题。很遗憾,目前的冯一诺依曼计算机体系无法保证软件运行的绝对可靠,因此,必须使用
工程方法增强软件系统的可靠性。以下结合作者的实践经验,给出一些针对软件系统的可靠
性设计技术。
2.1软件的可靠性设计
(1)开机自检。即在复位后,软件先进行系统检查,以确保ROM内容正确、RAM可正
常读写、各外设正常工作……开机自检对系统可靠运行是十分必要的。
(2)软件的正确性和功能符合性。符合功能规范要求、并能正确运行,是软件可靠性设
计的基本要求。和微机上的纯软件相比,嵌入式软件不但和具体硬件紧密关联,而且往往具
有明显的、需要程序员维护的多任务特性:嵌入式系统还要求简洁、直观的人机交互方式,
因而需要仔细设计软件。
(3)对错误数据的抗敏性。除了基本功能符合性之外,软件设计时还应提高对错误数据
的抗敏性,如对输入数据应进行必要的检查、数据通信的校验机制等。关于数据通信的举例:
从串口接收数据,数据报格式为:[报头”[-氏度]{数据}[报文校验和],接收到[长度l后,应检查
长度值的合法性:接收时,还应检查数据报相邻字节的时间间隔,超时后放弃接收。
(’) 面向对象的程序设计。嵌入式系统的编程语言一般是c语言,甚至汇编语言,它们
都是过程性语言。和面向对象的编程语言 (C++, java)相比,过程性语言缺乏数据抽象、封
装和隐藏,程序员经常使用一堆零散的变量表示一个对象,不容易保证软件的可靠性,也不
利于软件维护。
根据作者的实践经验,即使使用过程性语言,只要在程序设计中使用了面向对象的编程
思想,也可以设计出可移植性强、易于维护的程序。当然,在传统的过程性语言中体现出面
向对象的编程思想,需要一定的编程经验和技巧。
2.2暂态设计
在设备复位、启动或关闭时,往往要求输出端口具有确定状态、或进入安全态,可以从
以 卜儿方面分析、测试并处理:
(1)假设电源稳定,当CPU处于复位状态时,设各输出端处于什么状态?
可以分析得到。如果复位时输出端状态与要求状态相反,可以使用非门转换;如果复位时口
线呈现高阻态,则可以加上拉或一“拉电阻。
(2)电源接通、断开瞬间,设备输出端处于什么状态?
由于实际系统的复杂性,电源接通、断开瞬间,设备输出端的状态很难准确分析,一般采用
试验、调整方法解决。
(3)许多可编程芯片都有复位时间要求,设备启动时能否保证这些芯片的复位时间?主
要依靠分析和试验方法解决。
2.3程序跑飞时输出保持安全态
安全态指非动作态 (如电机停止运转)。在嵌入式系统中,来自内部的程序设计缺陷或外
部窜入的电磁干扰都有可能造成程序跑飞。在系统方案设计时就应采取措施,当程序跑飞时
输出尽可能保持在安全态。
程序跑飞时,CPU已无法执行正常程序流程。为了使输出保持在安全态,必须使用硬件
逻辑判断CPU发出的指令是否正确。基本思路是:CPU的输出口线不直接控制动作器,而在
两者之间增加硬件判断逻辑:当CPU口线输出特定的信号序列时,硬件判断逻辑才输出动作
指令,否则不输出动作指令。
如图2,图中使用了单稳态触发器判断动作信号:只有当CPU口线连续输出高于一定频
率的方波时,才有动作指令输出。图中用与非门实现两个信号的“与”操作,提高可靠性。可
以使用CPLD等器件实现更复杂的动作信号判断。
图2用单稳态触发器实现指令判断
2.4程序跑飞后能自动恢复
即看门狗(WatcliDog)技术,己普遍应用。其基本原理是:设置一个定时器(即“看门狗,
’),
该定时器溢出时会引起系统复位。程序需仔细设计:在正常执行时,能及时地对看门狗定时
器清零 (称为“喂狗,,),看门狗定时器不会溢出:当程序跑飞后,由于没有及时“喂狗”
,看门
狗定时器溢出,系统复位。
看门狗程序设计的关键是:(1)“喂狗”指令应比较特殊,以防程序跑飞后CPU将其它数
据解释为“喂狗”指令:(2)只在少数关键程序位置“喂狗”
,以保证程序跑飞后看门狗溢出。
可见,看门狗的作用是程序跑飞后尽快复位,并不能从根本上改善系统的可靠性。因此,
可靠性设计仍应从系统、硬件、软件实现上仔细设计‘
除看门狗之外,还有其它类似技术。如:(1)在不使用的程序存储器中存放“软利复位”
指令,当程序跑 匕后,引起软件复位;(2)在汇编指令之间插入一些nop指令,减少CPU对
L指令错误读取的概率。
2.5部分数据发生错误— 休闲复位
软件的运行错误有时还表现为一部分数据发生错误,而主进程 〔或土循环)仍在运行。
如:系统在开始运行时设定外设的工作状态,运行中不再刷新。在运行中,如果外设的一{作
状态被干扰破坏,将无法恢复。这样的错误很难用看门狗技术完全检测。嵌入式系统通常设
计为尽量简洁的用户界面、尽量少的用户干预,当系统出现运行错误时,应尽可能自动恢复
到正常运行状态。
为解决以上问题,一种可用的处理方法是:程序定期刷新外设的工作状态 其缺点是;
系统性能下降、效果不理想、具体实现较复杂。为此,作者在实践中使用“空闲复位”技术进
行解决:
当系统处于空闲状态一定时间以后,自动重新启动。为了维持以前的状态信息,可以在
非易失性存储器中保存少数关键数据。系统重新启动后,需要检查这些数据,如果数据值无
异常,则装入这些数据:否则,装入缺省数据,并根据需要给予提示。
三、结语
嵌入式系统的抗干扰设计是一个非常复杂、实践性很强的问题,以上主要从硬件的EMI
设计及软件的抗干扰设计等方面讨论了作者对嵌入式系统抗千扰设计技术的一些理解。从目
前的应用现状看,硬件EMI设计技术己经很成熟,应用也较成功;但作为嵌入式系统的核心
与灵魂的软件系统,在可靠性方面还需要继续改进。
参考文献
张松春等,电子控制设备抗干扰技术及其应用,北京:机械工业出版社,1995
钟毓宁等,机电产品可靠性应用,中国计量出版社,1999
李海泉。计算机中的电磁干扰研究 计算机工程与设计,2002.12, p30
何立民,单片机应用技术选编一七,北京航空航天大学出版社。1999
[1]

[3]
[4]

阅读全文

与如何屏蔽嵌入式程序相关的资料

热点内容
南京朝天宫古玩市场怎么坐车 浏览:527
什么资金产品有万倍杠杆 浏览:948
期货交易规则是什么间接清算制度 浏览:732
如何守住不易的交易 浏览:159
网络助手程序怎么删除 浏览:296
欣桥市场一天的交易量大概有多少 浏览:293
如何查询建行往年交易记录 浏览:513
冰溪医用护肤品怎么代理 浏览:710
产品经理第一要素是什么 浏览:5
期货交易什么时候挂平推单 浏览:587
没技术没意识怎么赢的 浏览:604
皮包代理商怎么样 浏览:935
作品产出人像数据有什么用 浏览:169
jsp有哪些技术 浏览:357
无限极代理怎么加入 浏览:637
黛蕊思是什么产品 浏览:413
九江代理招聘有哪些公司 浏览:382
小程序里的桌球更多游戏如何去掉 浏览:456
菜市场哪些肉类需求大 浏览:409
查大数据用什么查可以代理的 浏览:554