嵌入式系统基础

发布时间 : 星期三 文章嵌入式系统基础更新完毕开始阅读

1嵌入式系统开发基础 ................................................................................................ 2

1.1.嵌入式Linux系统开发模式 ................................................................................................................... 2

1.1.1嵌入式系统设计的特点 .................................................................................................................. 3 1.1.2嵌入式系统的设计流程 .................................................................................................................. 4 1.1.3嵌入式系统的软硬件划分 .............................................................................................................. 7 1.1.4嵌入式系统的产品硬件详细设计................................................................................................... 8 1.2嵌入式系统的软件设计 ............................................................................................................................. 9 1.3 嵌入式开发电路基础 ...............................................................................................................................11

1.3.1电路原理图设计 .............................................................................................................................11 1.3.2 电路PCB设计基础 ...................................................................................................................... 13 1.3.3电子电路抗干扰技术 .................................................................................................................... 18 1.3.4 PCB设计中常用定义、符号和缩略语介绍 ................................................................................ 20 1.3.5 PCB工艺设计要考虑的基本问题 ................................................................................................ 21 1.3.6印制板常用基板设计要求 ............................................................................................................ 22 1.3.7PCB制造一般技术要求 ................................................................................................................. 23 1.3.8PCB设计基本工艺要求 ................................................................................................................. 24 1.3.9拼板设计 ........................................................................................................................................ 27 1.3.10元件的选用原则 .......................................................................................................................... 30 1.3.11组装方式 ...................................................................................................................................... 30 1.3.12元件布局 ...................................................................................................................................... 31 1.3.13布线要求 ...................................................................................................................................... 34 1.3.14焊盘与线路的连接 ...................................................................................................................... 35 1.3.15大面积电源区和接地区的设计 .................................................................................................. 35 1.3.16通孔插装元件焊盘设计 .............................................................................................................. 36 1.3.17导通孔的设计 .............................................................................................................................. 38 1.3.18阻焊层设计 .................................................................................................................................. 39 1.3.19字符图 .......................................................................................................................................... 40 1.3.20元器件的表示方法 ...................................................................................................................... 40

1嵌入式系统开发基础

对于嵌入式系统(Embedded System)电气工程师协会的定义如下:嵌入式系统是用来控制或者监视机器、装置、工厂等大规模系统的设备。嵌入式系统的定义通常如下:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。

软件(操作系统/驱动程序/应用程序)存储器输入处理器输出

图1-1 嵌入式系统的构成

嵌入式系统同PC系统相比有以下特点:

(1)嵌入式系统功耗低、体积小,专用性强。嵌入式系统与PC的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC中许多由板卡完成的任务集成在芯片内部,从而使系统设计趋于小型化。

(2)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身。 (3)嵌入式系统的硬件和软件都必须高效率地设计,系统要精简。操作系统一般和应用软件集成在一起。

(4)对软件代码质量要求高。

(5)嵌入式系统开发需要专门的开发工具和开发环境。

1.1.嵌入式Linux系统开发模式

嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。目前通常的开发步骤先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上

可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,具体步骤如下。

第一步,建立嵌入式Linux交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C 等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。与运行嵌入式应用软件的环境有所不同,交叉开发通常采用宿主机/目标机模式. 第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。

例如,在基于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器。通常情况下,并不是每一种体系结构的嵌入式微处理器都只对应于一种交叉编译器和交叉链接器。如对于M68K体系结构的gcc交叉开发环境而言,就对应于多种不同的编译器和链接器。假如使用的

是COFF格式的可执行文件,那么在编译Linux内核时,需要使用m68k-coff-gcc和m68k-coff-ld,而在编译应用程序时则需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。编写好的嵌入式软件经过交叉编译和交叉链接后,通常会生成两种类型的可执行文件:用于调试的可执行文件和用于固化的可执行文件。 第三步,交叉调试。

① 硬件调试。假如不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。

② 软件调试。在嵌入式Linux系统中,Linux系统内核调试可以先在Linux内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。

嵌入式上层应用软件的调试可以使用本地调试和远程调试两种方法。假如采用的是本地调试,首先要将所需的调试器移植到目标系统中,然后就可以直接在目标机上运行调试器调试应用程序;假如采用的是远程调试,则需要移植调试服务器到目标系统中,并通过与宿主机上的调试器共同完成应用程序的调试。在嵌入式Linux系统的开发中,远程调试时目标机上使用的调试服务器通常是gdbserver,而宿主机上使用的调试器则是gdb。两者相互配合共同完成调试过程。

第四步,系统测试。整个软件系统编译过程,嵌入式系统的硬件一般采用专门的测试仪器进行测试,而软件则需要有相关的测试技术和测试工具的支持,并要采用特定的测试策略。测试技术指的是软件测试的专门途径,以及能够更加有效地运用这些途径的特定方法。在嵌入式软件测试中,经常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试需要消耗较多的时间和经费,而基于宿主机的测试虽然代价较小,但是在仿真环境中进行的,因此难以完全反映软件运行时的实际情况。这两种环境下的测试可以发现不同的软件缺陷,要害是要对目标机环境和宿主机环境下的测试内容进行合理取舍。嵌入式软件测试中经常用到的测试工具主要有:内存分析工具、性能分析工具、覆盖分析工具、缺陷跟踪工具等。

以下即为一个典型开发工具的使用流程: ① 写入或植入引导码;

② 向串口打印字符串的编码;

③ 将gdb目标码移植工作串口,可与另一台运行gdb程序的Linux主机系统对话; ④ 利用gdb让硬件和软件初始化码在Linux内核启动时工作; ⑤ Linux内核启动,串口成为Linux控制口并可用于后续开发;

⑥ 假如在目标硬件上已运行了完整的Linux内核,即可调试用户的应用进程。

1.1.1嵌入式系统设计的特点

嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到架构。这里的架构既包括软件系统架构也包括硬件系统架构。嵌入式系统的设计方法跟一般的硬件设计、软件开发的方法不同,是采用硬件和软件协同设计的方法,开发过程不仅涉及软件领域的知识,还涉及硬件领域的综合知识,甚至还涉及机械等方面的知识。要求设计者必须熟悉并能自如地运用这些领域的各种技术,才能使设计的系统达到最优。与通常的系统设计相比,嵌入式系统的设计具有以下几个特点: (1) 软/硬件协同并行开发。

软/硬件协同并工开发就是在整个设计的生命周期,软件和硬件的设计一直是保持并行的,在设计过程中两者交织在一起,互相支持,互相提供开发的平台,而不是传统方法中将软/硬件的设计分开独立进行,在设计流程的开始就将系统所要实现的功能划分到用硬件或软件实现,然后独立进行硬件和软件设计,最后才进行软硬件的集成。系统是否满足用户需求只有等到软硬件集成之后进行测试才能知道,所以传统设计方法进行复杂系统的设计时,常常难以达到设计要求和实现优化设计。

(2)嵌入式系统面向特定应用的系统。

嵌入式CPU与通用型的CPU最大不同就是,嵌入式CPU大多工作在为特定用户群设计的系统中,通常具有低功耗、小体积、高集成度等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化。因此,元件的移动能力大大增强,同时跟网络的耦合也越来越紧密。

(3)嵌入式操作系统的多样性( RTOS)。

嵌入式操作系统不像台式机操作系统那样,只有微软公司一家独大。现在可用的嵌入式操作系统很多。如 Vxworks,QNX,uc/os,Linux,WinCE等。可以根据具体的需求选择相应的操作系统。 (4)嵌入式系统设计交叉开发环境。

嵌入式系统的开发通常采用“宿主机/目标机”交叉开发方式(如图1-2所示)。首先,利用宿主机上丰富的资源以及良好的开发环境来开发和仿真调试目标机上的软件。生成编译好的目标文件,再通过JTAG口、UTAR接口或者以太网接口将交叉编译生成的目标代码传输并下载到目标板上,并用交叉调试器在实时内核/操作系统或监控程序的支持下进行实时分析和调试。最后,目标机在目标环境下运行。

宿主机(Host)是一台通用计算机,一般由PC机承担。它通过串行接口或网络连接与目标机进行通信。宿主机上的软/硬件资源比较丰富,以及各种各样的开发调试工具,如GNU的嵌入式开发工具套件等。这些辅助的开发工具和丰富的硬件资源能够保证系统的开发效率。

目标机(Target)常在嵌入式系统的开发过程期间。目标机可以是嵌入式系统的实际运行环境,也可以是能替代实际环境的仿真系统。通常目标机的体积较小,集成度高,外围设备丰富,具备有键盘,触摸屏等;输出设备有LCD,LED等输入/输出设备。由于目标机的硬件资源有限,嵌入式系统目标机上运行的软件通常需要根据具体应用进行裁减和配置。

图1-2宿主机/目标机开发方式

(5)嵌入式系统需要提供强大的硬件开发工具和软件包的支持,需要设计者从效率和成本综合考虑。此外,嵌入式系统对稳定性、可靠性、功耗、抗干扰性、重量体积等方面的性能要求都比通用系统的要求更为严格。

1.1.2嵌入式系统的设计流程

电子信息产品的设计和开发将集中所有的硬件、软件、人力资源等,进行适当组合,以实现目标系统对性能和功能等各方面的需求。在电子信息产品的开发过程当中,实时性、可靠性、功耗等都与功能一样重要,这就使嵌入式系统开发关注的方面更广泛,要求的精度也更高。

嵌入式系统的设计开发流程一般分为以下几个阶段:产品定义(即系统需求分析阶段、规格说明阶段)、硬件和软件划分、迭代与实现、详细的硬件与软件设计、硬件与软件集成、系统测试和系统维护与升级。各个阶段通常需要不断的反复和修改,直到完成最终设计目标。

电子信息产品系统设计的流程及过程生成的文档体系关系如图1-3a、图1-3b所示。 对于嵌入式产品的开发与研制可以完全按照电子产品的开发流程进行,通过图1-3b的文档管理体系实

联系合同范文客服:xxxxx#qq.com(#替换为@)