一、嵌入式系统概述:
1.1 嵌入式系统的定义和特点:
1.1.1 嵌入式系统的定义
在实际生活中,凡是与产品结合在一起的具有嵌入式特点的控制系统几乎都可以叫做嵌入式系统
-
从广义的角度:嵌入式系统是一切非PC和大型机的计算机系统
-
从应用的角度:嵌入式是控制、监视或辅助设备、机器和车间运行的装置
-
从系统的角度:嵌入式系统是设计完成复杂功能的硬件和和软件,并使其紧密耦合在一起的计算机系统,是更大系统的一个完整的子系统
-
从技术的角度:嵌入式系统是一个以应用为中心,以计算机技术为基础,并融合微电子技术、通信技术和自动控制技术,而且软硬件
可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。 这是目前国内普遍认同
的对 嵌入式系统的定义。
1.1.2 嵌入式系统和通用计算机比较
1.嵌入式系统和计算机系统的共同点:
嵌入式系统 和 通用计算机 都属于 计算机系统, 从系统组成上讲,它们都是由硬件和软件构成的。
2…嵌入式系统和计算机系统的不同点:
- 形态(通用计算机具有基本相同的外形而独立存在,而嵌入式系统通常隐藏在具体某个产品或设备中)
- 功能(通用计算机具有通用而复杂的功能,而嵌入式系统的功能由宿主对象决定,具有专用性)
- 功耗(通用计算机功耗一般为几十瓦,低功耗一直是嵌入式系统追求的目标)
- 资源(通用计算机具有大而全的资源,而嵌入式系统受限于嵌入的宿主对象)
- 价值(通用计算机价值体现在“计算”和“存储”上,而嵌入式系统往往嵌入在某个设备和产品中,其价值一般不取决于其内嵌的处理器的性能,而体现在它所嵌入和控制的设备)
1.1.3 嵌入式系统特点
嵌入式系统特点:
-
专用性
-
可裁剪型
-
可靠性
-
具有较长的生命周期
-
不易被垄断
1.2 嵌入式系统硬件
嵌入式系统的硬件是嵌入式系统运行的基础,提供嵌入式软件运行的物理平台和通信接口。
嵌入式系统 硬件:
嵌入式处理器、嵌入式存储器、嵌入式I/O接口、嵌入式I/O设备。
处理器为核心, 存储器作为程序和数据的存储介质,借助总线相互连接,通过I/O接口
和I/O设备与外部世界联系。
1.2.1 嵌入式处理器
-
嵌入式处理器的主要分类:
嵌入式处理器可以分为:
- 嵌入式微处理器(MPU)
- 嵌入式微控制器(单片机)(MCU)
- 嵌入式数字信号处理器(DSP)
- 嵌入式片上系统。(SoC)
**嵌入式微控制器又被称为单片机,**顾名思义,是将整个计算机集成在一块芯片上。嵌入式微控制器通常以某种处理器内核为核心(本书主
要讲述的是基于Cortex-M3内核的STM32F103微控制器),内部集成了ROM、RAM、数字I/O、定时器/计数器以及其他必要的功能外设
和接口。与嵌入式微处理器相比,嵌入式微控制器的资源更丰富,功能更强大,它最大的特点是单片化,它将CPU、存储器、外设和接口
集成在一块芯片上,从而使体积大大减小,功耗和成本显著下降,但同时可靠性得以提高。
1.2.2 嵌入式处理器的技术指标
- 字长
- 主频
- 运算速度
- 指令集
- 流水线
- 体系架构
- 寻址能力
- 功耗
- 工作温度
1.2.3 主流的嵌入式处理器
- ARM
- MIPS
- PowerPC
1.2.4 嵌入式存储器
嵌入式存储器作为嵌入式系统硬件的基本组成部分,用来存放运行在嵌入式系统上的程序和数据。
1.层次结构:
嵌入式存储器:
嵌入式存储器的层次结构,由内到外,可以分为片内存储器、片外存储器(系统中)
和外部存储器(系统外部)
2.主要类型:
易失性存储器 指的是当电源供应中断后,存储器所存储的数据便会消失的存储器。其主要
类型使随机存取存储器(RAM)。
非 易失性存储器 指的是即使电源供应中断,存储器所存储的数据也不会消失,重新供电
后,就能够读取内存数据的存储器。其主要是只读存储器(ROM)。
1.2.5 嵌入式IO设备
嵌入式I/O设备:
-
用于人机交互的设备:摇杆、触摸屏、发光二极管、按键等…
-
用于机机交互的设备:传感器、伺服执行机构。
1.2.6 嵌入式IO接口
嵌入式I/O接口:
由于嵌入式设备的多样性、复杂性和速度差异性,因此一般不能将嵌入式I/O设备与嵌入式处理器直接相连,需要借助嵌入式I/O接
口。 作为嵌入式处理器和嵌入式I/O设备的桥梁,嵌入式I/O接口连接和控制嵌入式I/O设备,负责完成嵌入式处理器和嵌入式I/O设备之间
的信号转换、数据传送和速度匹配。
-
.嵌入式I/O接口功能: 作为嵌入式处理器和嵌入式I/O设备的桥梁,嵌入式I/O接口连接和控制嵌入式I/O设备,负责完成嵌入式处理器
和嵌入式I/O设备之间的信号转换、数据传送和速度匹配。
-
.嵌入式I/O接口分类:
- 按数据传输方式划分:分为串行I/O接口和并行I/O接口
- 按数据传输速率划分:高速I/O接口和低速I/O接口
- 按是否需要物理连接 划分:有线I/O接口和无线I/O接口
3.嵌入式I/O接口组成:嵌入式I/O接口由 寄存器、I/O控制逻辑部件和外设接口逻辑3部分组成。 **寄存器是嵌入式I/O接口的核心 ** **根据存放信息的不同,分为数据寄存器、控制寄存器和状态寄存器。
**寄存器是嵌入式I/O接口的核心 **根据存放信息的不同,分为数据寄存器、控制寄存器和状态寄存器:
- 数据寄存器(用来存放需要传输的数据)
- 控制寄存器(存放嵌入式处理器 向 嵌入式I/O设备发送的控制命令)
- 状态寄存器(存储嵌入式I/O设备当前工作状态的信息)
1.2.7 嵌入式I/O端口及其编址方式
嵌入式I/O接口中,并非所有的寄存器都能被嵌入式处理器直接访问,能够 被嵌入式处理器直接访问的寄存器称为I/O端口,数据输入/输出寄存器、控制寄存器、状态寄存器都是I/O端口。
- 统一编址(在存储器空间中划出一部分空间留给I/O端口)
- 独立编址(指I/O端口地址空间与存储器地址空间完全不重叠,特点是不占用存储空间)
1.2.8 嵌入式I/O端口编程
嵌入式系统中,对嵌入式I/O设备的各种操作是通过使用C语言或者汇编语言对嵌入式 I/O 端口进行编程来实现的,其实质是读写嵌入式 I/O 接口中的寄存器
1.3 嵌入式系统的软件
嵌入式系统的软件:一般固化于嵌入式存储器中,是嵌入式系统的控制核心,控制着嵌入式系统的运行,实现嵌入式系统的功能,由此可见,嵌入式软件在很大程度上决定整个嵌入式系统的价值
从软件结构上划分,嵌入式软件分为 无操作系统 和 带操作系统 两种。
1.无操作系统的嵌入式软件仅仅由引导程序(一般由汇编语言编写)和应用程序(一般由C语言编写)两部分组成 具体实现上,无操作系统的嵌入式软件主要有两种方式:循环轮询系统 和 前后台系统。
2.带操作系统的嵌入式软件
体系结构:自下而上包括
- 设备驱动层(引导加载程序 设备驱动程序)
- 操作系统层(嵌入式操作系统内核 嵌入式网络协议 嵌入式文件系统 嵌入式图形用户接口)
- 应用软件层(主要由基于操作系统层的多个相对独立的任务组成)
1.4 嵌入式系统的分类
嵌入式系统的分类:
按硬件(嵌入式处理器)划分
根据嵌入式处理器的字长,可分为4、8、16、32位和64位嵌入式系统等。
按软件复杂度划分
无操作系统控制、小型操作系统控制、大型操作系统控制。
按实时性划分
非实时嵌入式系统、硬实时嵌入式系统、软实时嵌入式系统。
按使用对象划分
军用、工业用、民用。
二、嵌入式系统开发
2.1 嵌入式系统的开发环境、开发工具和调试方式
对于通用计算机应用系统开发而言,系统的开发机器既是系统的运行机器,系统的开发环境既是系统的运行环境。而对于嵌入式系统开发而言,系统的开发机器不是系统的运行机器,系统的开发环境不是系统的运行环境。这就需要专门的开发环境、开发工具和调试方法。
2.1.1 嵌入式系统的开发环境
与通用计算机不同,嵌入式系统的开发平台一般并不是最终的运行平台。构建嵌入式系统的开发环境是进行嵌入式系统开发的前提和基础。嵌入式系统的开发环境称为交叉开发环境,主要由宿主机、目标机以及它们之间的连接构成。
-
宿主机(用于嵌入式系统开发的计算机,是嵌入式开发工具的运行环境)
-
目标机(是所开发的嵌入式系统,是嵌入式软件的实际运行环境,以某种处理器内核为核心)
-
宿主机和目标机之间的连接:
**物理连接:**指宿主机与目标机上的一定物理端口通过物理线路连接在一起,它是逻辑连接的基础。物理连接方式主要有三种:
串口、以太网接口 、 JTAG(Joint Test Action Group)接口,其中,用得最多得是JTAG接口。(使硬件线路连接正确)
**逻辑连接:**指宿主机与目标机间按某种通信协议建立起来得通信连接,目前已逐步形成了一些通信协议的标准(正确配置宿主机
和目标机的物理端口的参数,并且与实际的物理连接一致)
2.1.2 嵌入式系统的开发工具
嵌入式系统开发采用交叉开发环境,需要专门的开发工具。嵌入式系统开发是基于软硬件的综合开发。不仅需要软件开发工具,也需要硬件开发工具。
1.嵌入式硬件开发工具:
嵌入式硬件开发工具用来设计和仿真嵌入式硬件。常用的嵌入式硬件开发工具主要有PCB(印刷电路板)设计软件 和PLD(可编程逻辑器件)开发软件等。
- PCB设计软件 :又称印刷电路板,用于固定电子元器件并为它们提供电气连接。
- PLD开发软件:又称可编程逻辑器件,它作为一种通用集成电路生产,但不同与通用集成电路,它的逻辑功能按照用户对器件编程来决定。
2.嵌入式软件开发工具:
嵌入式软件开发工具:嵌入式软件开发可以分成几个阶段:编辑、编译、链接、调试和下载等。在不同的阶段需要用到不同的软件开发工具,
如编辑器、编译器、链接器、调试和下载工具等。这些嵌入式软件开发工具都运行于宿主机上。
嵌入式软件开发工具的构成
- 编辑器(运行于宿主机,用于嵌入式软件开发的编辑阶段在宿主机上编写代码)
- 编译器和汇编器(运行于宿主机,用于在源代码编辑完成后,根据不同目标机的嵌入式处理器芯片,编译相关源程序文件,在宿主机上生成对应的目标文件)
- 链接器(运行于宿主机,用于在源程序文件编译完成后,把编译生成的所有目标文件、相关的库函数文件和地址脚本文件组合生成一个可执行的映像文件ÿ