1、 嵌入式系统概述。
1)概念:以应用为核心,以计算机技术为基础,软硬件均可裁剪,适用在对功能、稳定性、功耗有严格要求的系统中。
2)组成部分:嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定应用程序。
3)区别于pc:一般专用于特定的任务,而pc是一个通用计算机、使用多种类型的处理器和处理器体系结构、极其关注成本、有实时约束、使用实时多任务操作系统、软件故障造成的后果比pc系统更严重、大多有功耗约束、经常在极端的环境下运行、系统资源比pc少的多、通常所有的目标**存放在rom中、需要专用工具和方法进行开发设计、嵌入式系统的数量远远超过pc
4)为什么需要嵌入式操作系统:复杂繁多的硬件系统管理难度急剧提高、复杂系统应用程序编写困难、实时性无法保障。
5)嵌入式系统:低成本微处理器(硬件动作及数据存取,硬件系统-处理器、内存、接口);微型os(高可靠性、高实时性,协调管理硬件设备计用户程序任务)
6)实时操作系统与裸机的区别:在裸机上写程序,通常把程序分为两部分:前台系统和后台系统。
简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用api函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。
前台是中断级,后台是任务级;实时操作系统又分为硬实时和软实时。硬实时要求在规定的时间内必须完成操作 ,硬实时系统不允许超时,在软实时里面处理过程超时就没有那么严格。 在实时操作系统中,可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
实时操作系统的核心在于实时内核。
7)嵌入式系统的应用领域:交通管理、工控设备、智能玩具、环境监测、电子商务、医疗仪器、网络设备、通信设备。
2、stm-32
1)stm-32:st推出的基于cortex-m3内核的mcu,自带多种常用通信接口(usart、i2c、spi),应用于智能手环、四轴飞行器、移动pos机、3d打印。
2)stm-32命名规则:stm32f103vet6->stm32表示32bitmcu、f表示基础型、v表示100pin,c表示48pin、r-64\z-144\b-208\n-216,e表示flash容量(e-512\c-256\i-2048)、t表示qfp封装、6表示温度等级为a(-40~85)
3)stm32选型:普通应用,不需要接大屏幕的一般选择cortex-m3内核的f1系列、如果要追求高性能,需要大量的数据运算,且需要外接rgb大屏幕的则选择cortex-m4内核的f429系列。;明确了大方向之后,接下来就是细分选型,先确定引脚,具体得根据实际项目中需要使用到什么功能,够用就好;确定好了引脚数目之后再选择flash大小,相同引脚数的mcu会有不同的flash大小可供选择,这个也是根据实际需要选择。
4)stm32开发环境:电脑主机(usb连接)-**器(排线连接)-开发板。
5)stm32架构:cortex-m3(arm设计)、总线矩阵、flash、外设等(st设计)。其中cortez-m3、dma1、dma2、dma为驱动单元,flash(内核通过icode总线访问存储程序)、sram(dcode总线访问,ram)、fsmc(静态内存拓展)、ahb到apb桥(从ahb总线延伸出来的两条apb2和apb1总线,上面挂载着stm32各种各样的特色外设)、dma请求均为被动单元。
6)stm32内部总线:dcode:数据可以被dcode总线和dma总线访问,为了避免访问冲突,在取数的时候需要经过一个总线矩阵来仲裁,决定哪个总线在取数;内核读取程序编译指令通过icode总线读取;system系统总线:
访问外设寄存器;2个dma总线:传输数据,减小cpu工作量。
7)存储器映射:给存储器分配地址的过程即为存储器映射;被控单元共同排列在4gb地址空间。
8)存储器区域功能划分:block0(预留)-code、block1(预留)-sram、block2(apb1、apb2、ahb)-片上外设、block3-fsmc的bank1-bank2、block4-fsmc的bank3-bank4、block5-fsmc寄存器、block6-未使用、block7-cortex-m3内部外设。
9)寄存器映射:根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是寄存器,给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。
10)外设地址映射:apb1挂载低速外设,apb2和ahb挂载高速外设。相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外设的地址。
其中apb1总线的地址最低,片上外设从这里开始,也叫外设基地址。
3、 stm32开发。
1) 寄存器开发:project->选取具体cpu型号->新建工程添加文件(startup_stm32f10x_启动文件、>编译**程序。
2) 寄存器点亮led:通过stm32的可控制引脚(gpio)实现对led的亮灭控制a、引脚两个保护二极管防止引脚外部过高过低电压输入;但是引脚扔不能驱动大功率设备;b、输出模式:推挽输出、开漏电路。
3) gpio工作模式。
输入模式(模拟、浮空、上拉、下拉),输出模式(推挽输出、开漏输出)复用功能。
4) 启动文件:初始化堆栈指针sp、初始化程序计数器指针pc、设置堆栈指针大小、初始化中断向量表、配置外部sram、调用systemini()函数配置系统时钟、设置程序入库main()、复位程序:
5) 中断服务程序:
7) stm32外设较多,为了降低功耗每个外设对应一个时钟,若需要外设工作则必须先打开相应的时钟。
8) led主程序:
4、 stm32库函数开发。
1) 库函数开发与寄存器开发区别:
2) 库函数开发。
外设寄存器映射。
5、 stm32标准库。
a、 内核函数:包含访问内核寄存器的名称、地址定义。
b、 设备外设访问:提供片上核外外设地址和中断定义。
c、 d、
e、 库函数开发流程:新建本地工程文件夹(doc、libraries、listing、output、project、user)->新建工程->选取cpu型号->添加**库文件->添加组文件夹->添加文件->配置魔术棒选项卡->配置输出选项卡->配置list选项卡->配置c/c++选项卡->配置**器->选取默认配置**器->setting选项配置->选取芯片型号。
f、 标准库点亮led
按键抖动:6、 时钟。
7、 配置系统时钟。
8、 中断。
9、 外部中断控制。
10、 串行通信与并行通信。
串行通信(通信距离较远、抗干扰能力较强、传输速率较慢、成本较低);并行通信相反。
11、 全双工、半双工、单工通信。
12、 同步、异步通信。
同步通信:通信双方在同意时钟信号驱动下进行协调传输数据;异步通信:无须时钟信号同步,直接在信号中穿插同步信号检测位或将数据打包以帧格式传输。
13、 usart收发实验。
14、 dma(直接存储器访问,在进行数据访问时无须cpu参与,支持外设到存储器传输、存储器到外设传输、存储器到存储器传输)
15、 存储器到存储器传输。
16、存储器到外设(配置usart通信功能、设置串口dma工作参数、使能dma、dma传输同时cpu进行其他任务)
17、定时器。
18、基本定时器(开定时器时钟、初始化时基和结构体、使能timx、x[6, 7]、update中断、打开定时器、编写中断服务程序)
1、 时钟源(内部时钟源、外部时钟源(时钟信号输入引脚、滤波器、边沿检测、触发选择、从模式选择、使能计数器、控制器、3、时基单元、4、输入捕获、5、输出比较(死区发生器-用于产生互补输出信号ocx和ocxn、断路功能。
2、 pwm输入模式。
只使用通道1和2,pwm输入模式需要占用两个捕获寄存器。
3、 pwm互补输出(定时器gpio初始化、定时器时基结构体初始化、定时器输出比较结构体初始化、定时器刹车和死区结构体初始化)
19、iwdg
独立看门狗时钟、计数器时钟、计数器、重装载寄存器、键寄存器、状态寄存器。
20、systick
21、adc
电压输入范围、输入通道、转换顺序、触发源、转换时间、数据存储器、中断、电压转换。
22、独立模式单通道采集(初始化adc的gpio、设置adc的工作参数并初始化、设置adc工作时钟、设置adc转换通道顺序及采样时间、配置使能adc转换完成中断,在中断内读取转换完的数据、使能adc、使能软件触发adc转换)
23、独立模式多通道采集(初始化adc的gpio、初始化adc工作参数、配置dma工作参数、读取adc采集数据)
24、双重adc同步规则采集(初始化adc的gpio、初始化dma配置、初始化adc参数、读取adc采集的数据,并打印校正)
25、显示器。
1 显示器简介。
显示器属于计算机的i/o设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有crt显示器、液晶显示器、led点阵显示器及oled显示器。
显示器的基本参数。
1)像素。像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点,即前面讲解液晶原理中提到的一个显示单元。
1)分辨率。
一些嵌入式设备的显示器常常以"行像素值x列像素值"表示屏幕的分辨率。如分辨率800x480表示该显示器的每一行有800个像素点,每一列有480个像素点,也可理解为有800列,480行。
2)色彩深度。
色彩深度指显示器的每个像素点能表示多少种颜色,一般用"位"(bit)来表示。如单色屏的每个像素点能表示亮或灭两种状态(即实际上能显示2种颜色),用1个数据位就可以表示像素点的所有状态,所以它的色彩深度为1bit,其它常见的显示屏色深为16bit、24bit。
3)显示器尺寸。
显示器的大小一般以英寸表示,如5英寸、21英寸、24英寸等,这个长度是指屏幕对角线的长度,通过显示器的对角线长度及长宽比可确定显示器的实际长宽尺寸。
4)点距。点距指两个相邻像素点之间的距离,它会影响画质的细腻度及**距离,相同尺寸的屏幕,若分辨率越高,则点距越小,画质越细腻。如现在有些手机的屏幕分辨率比电脑显示器的还大,这是手机屏幕点距小的原因;led点阵显示屏的点距一般都比较大,所以适合远距离**。
26、存储器。
ram是"random access memory"的缩写,被译为随机存储器。所谓"随机存取",指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。ram可随读取其内部任意地址的数据,时间都是相同的。
根据ram的存储机制,又分为动态随机存储器dram(dynamic ram)以及静态随机存储器sram(static ram)两种。动态随机存储器dram的存储单元以电容的电荷来表示数据,有电荷代表1,无电荷代表0,见图 222。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,因此它需要定期刷新操作,这就是"动态(dynamic)"一词所形容的特性。
刷新操作会对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保证数据的正确性。静态随机存储器sram的存储单元以锁存器来存储数据,见图 224。这种电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的),所以这种存储器被称为"静态(static)"ram。
嵌入式ARM嵌入式系统设计
摘要 本系统设计了基于arm系统的嵌入式硬件平台,其中主要介绍了系统母版的具体电路实现,其硬件电路已经通过了信号完整性分析。中国 网 关键词 arm 嵌入式系统 中图分类号 tp368.1 文献标识码 a 文章编号 1007 9416 2012 12 0104 01 1 序言 本系统是设计一款基于a...
嵌入式系统
期末作业考核。满分100分。一 判断题 每题3分,共30分 1.嵌入式系统中的软件系统主要由嵌入式操作系统和应用软件组成,其中嵌入式微处理器属于嵌入式软件系统的核心。答 错。2.运行在智能手机或平板电脑中的android系统是一种嵌入式操作系统。答 对。3.windriver公司所提供的软件开发包是...
嵌入式系统
关于嵌入式系统 献给热爱此道的初学者们前言。网上看到众多网友都问了关于嵌入式系统方面的很多问题,很多都可在这里找到答案,希望我的这篇文章能给他们以启发。也请大家不要轻易 一 嵌入式系统的概念。着重理解 嵌入 的概念。主要从三个方面上来理解。1 从硬件上,将基于cpu的处围器件,整合到cpu芯片内部,...