stm32嵌入式学习期末总结(1-玩转STM32之啥是嵌入式)
stm32嵌入式学习期末总结(1-玩转STM32之啥是嵌入式)硬件抽象层本质上就是一组对硬件进行操作的API接口,是对硬件功能抽象的结果。硬件抽象层通过API为嵌入式操作系统和应用程序提供服务。但是,在Windows和Linux操作系统下,硬件抽象层的定义是不同的嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点。在一般情况下,嵌入式开发操作系统可以分为两类,一类是面向控制、通信等领域的嵌入式实时操作系统(RTOS),如VxWorks、PSOS、QNX、mCOS-Ⅲ、RT-Thread、FreeRTOS等;另一类是面向消费电子产品的嵌入式非实时操作系统,如Linux、Android、iOS等,这类产品包括智能手机、机顶盒、电子书等嵌入式系统的硬件架构以嵌入式处理器为核心,由
1.1 嵌入式系统定义IEEE(美国电气和电子工程师协会)对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置。
国内普遍定义:以应用为中心,以计算机技术为基础,软件和硬件可剪切,适用于应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式主要特点有:专用性、体积小、功耗低、成本低、稳定性高、实用性、技术密集、生命周期长、不可垄断性等。
1.3 应用领域1 新能源
2 智能硬件
3 汽车电子
4 工业控制
5 互联网/物联网
6 仪器仪表/工业自动化
7 通信/电信/网络设备等。
嵌入式系统的硬件层一般由嵌入式处理器、内存、人机接口、复位/看门狗电路、I/O接口电路组成,它是整个系统运行的基础,通过人机接口和I/O接口实现和外部的通信。
1.4.1 硬件架构嵌入式系统的硬件架构以嵌入式处理器为核心,由存储器、外围设备、通信模块、电源及复位等必要的辅助接口组成。
1.4.2 软件层嵌入式系统软件结构一般有3个层面:设备驱动层、OS层、应用层(包括永健抽象层、应用程序)。由于嵌入式系统的多样性,需要根据不同的硬件电路和嵌入式系统应用的特点,对软件部分进行裁剪。
1. 设备驱动层一般由:板级支持包、驱动程序组成。
作用:为上层程序提供外围设备的操作接口,并实现设备的驱动程序。
1)板级支持包(board support package)
介于主板硬件和嵌入式系统操作系统中驱动程序之间的一层。BSP为上层的驱动程序提供了访问硬件的寄存器函数包。
BSP可分为以下三大功能:
(1) 系统上电时的硬件初始化。比如:对系统内存、寄存器及设备的中断进行设置。
(2) 为嵌入式系统访问硬件驱动程序提供支持。
(3) 集成硬件相关的和硬件无关的嵌入式操作系统所需的模块。
2)驱动程序
只有安装了驱动程序,嵌入式操作系统才能操作硬件平台,驱动程序控制嵌入式操作系统和硬件之间的交互。驱动程序提供一组嵌入式操作系统可理解的抽象接口函数。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点。
在一般情况下,嵌入式开发操作系统可以分为两类,一类是面向控制、通信等领域的嵌入式实时操作系统(RTOS),如VxWorks、PSOS、QNX、mCOS-Ⅲ、RT-Thread、FreeRTOS等;另一类是面向消费电子产品的嵌入式非实时操作系统,如Linux、Android、iOS等,这类产品包括智能手机、机顶盒、电子书等
硬件抽象层本质上就是一组对硬件进行操作的API接口,是对硬件功能抽象的结果。硬件抽象层通过API为嵌入式操作系统和应用程序提供服务。但是,在Windows和Linux操作系统下,硬件抽象层的定义是不同的
2)应用程序应用程序是为完成某项或某几项特定任务而被开发运行于操作系统之上的程序,例如文件操作、图形操作等。在操作系统上编写应用程序一般需要一些应用程序接口。应用程序接口(Application ProgRAMming Interface,API)又称为应用编程接口,是软件系统不同组成部分衔接的约定。
1.5 存储系统1.5.1 嵌入式处理器分类1、ARM内核微处理器
主流。在移动应用市场占了绝大部分的市场份额。
包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore、 ARM11、 Cortex-A系列等。
ARM是一个只卖知识产权(IP)的公司,目前获得购买了ARM 核授权许可的大公司很多,包括华为、Qualcomm、Apple、Samsung、ST、NXP、TI等,他们都在ARM 核的基础上进行了设计,形成自己的处理器。
2、嵌入式微控制器MCU
单片机芯片内部集成ROM/EPROM、RAM、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash、EEPROM等各种必要功能和外设。
嵌入式微控制器目前的品种和数量最多,比较有代表性通用系列包括8051、AVR、PIC、ARM Cortex-M 等。
3、数字信号处理器DSP
DSP处理器主要专门用于信号处理方面,其在系统结构方面进行了特殊设计,在数字滤波、FFT、频谱分析等密集数学运算领域有大规模的应用。
DSP一般用在算法快速执行,做控制比较困难。为了追求高执行效率,不适合运行操作系统,核心代码使用汇编。
嵌入式DSP 处理器比较有代表性的产品是Texas Instrument的 TMS320 系列和Analog的ADSP系列。
4、嵌入式SoC
用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统。
单个芯片完成整个系统的主要逻辑功能。
基于FPGA实现的SoPC技术 ,是现在嵌入式系统设计发展趋势之一。
1、Altera公司的FPGA ,交叉使用ARM、MIPS以及Nios等多种内核。
2、Xilinx公司的FPGA,植入PowerPC结构处理器。
存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取,嵌入式系统的运作是围绕着存储在存储器中的指令和数据进行的,存储系统在嵌入式系统中的作用非常重要,存储系统需要根据应用和设计需求选择合适的存储器。
- 随机存取存储器(RAM,易失性存储器)
随机存取是指随机存取存储器(Random Access Memory,RAM)存储单元的内容可按需随意取出或存入,读写速度很快,且速度与存储单元的位置无关。RAM在断电时将丢失其存储内容,RAM主要用于存储短时间使用的程序
(1)静态随机存储器(Static Random Access Memory,SRAM)
(2)动态随机存取存储器(Dynamic Random Access Memory,DRAM)
(3)同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)
2. 只读存储器(ROM,非易失性存储器)
存储在只读存储器(Read-OnlyMemory,ROM)中的数据可以在掉电后不丢失,ROM主要用于存储程序和一些数据(常量、系数等),存储在其中的数据只能读不能改,需要使用特定的方法擦除和烧录数据。
(1)只读存储器(Read-OnlyMemory,ROM)。
ROM内部的资料是在ROM的制造工序中,用特殊的方法烧录进去的,一般不能擦除或修改
(2)电可擦除可编程ROM(Electrically Erasable Programmable ROM,EEPROM)。
一般通过特定的指令来擦除和修改其存储内容,一般以页的形式进行擦除,不必将资料全部擦除。
3. 闪存存储器(Flash存储器,非易失性存储器)
闪存存储器又称Flash存储器,是电可擦除的ROM,在使用上与EEPROM类似。但是二者的寻址方法不同,存储单元的结构也不同,Flash存储器的电路结构较简单,同样容量占芯片面积较小,成本比EEPROM低。Flash存储器分为NOR Flash存储器和NAND Flash存储器。
(1) NOR Flash存储器。
有自己的地址线和数据线,可以采用类似于Memory的随机访问方式,但是擦除仍要按块来进行,不能进行先行写操作。NOR Flash存储器可以在芯片内执行,所以NOR Flash存储器可以直接用作执行程序存储器。
(2) NAND Flash存储器。
数据、地址、控制线都是共用的,不能线性访问数据,需要软件区控制读取时序,按页读取,按块擦除,不适合芯片内执行。但是,存储密度较高,因此主要用于海量数据存储
(4) eMMC(Embedded Multi Media Card)存储器。
采用统一的MMC标准接口,把高密度NAND Flash 存储器及MMC控制器封装在一片BGA芯片中,eMMC存储器具有快速、可升级的特点,主要作固态硬盘使用。
嵌入式系统中的1/O接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线,负责处理器和外围设备之间的信息交换。目前嵌入式系统中常用的通用设备接口有GPIO接口(通用可编程接口)、UART接口(通用串行通信接口)、Ethernet接口(以太网接口)、USB接口(通用串行总线接口)、I2C接口(现场总线接口)、I2S接口、SPI接口(串行外围设备接口)、CAN总线接口、Bluetooth接口(蓝牙接口)、Camera Link接口、SD卡接口等。
嵌入式操作系统特点
完成某一项或有限项功能。
在性能和实时性方面有严格的限制。
成本和可靠性通常是影响设计的重要因素。
占有资源少、易于连接。
系统功能可针对需求进行裁剪、调整,以便满足最终产品的设计要求。