嵌入式复习整理
第1章 概述
1. 微控制器的含义:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/
计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。 2. CPU包括运算器和控制器
3. 双列直插 Dual-in-line package,DIP 第2章 AW60硬件最小系统与S08CPU
1. AW60存储器映像:所谓存储器映像(Memory map),是指地址$0000 - $FFFF这个64KB空
间,哪些地址被何种存储器或I/O寄存器所占用。
(1) 2KB的RAM:地址为$0070 - $086F,用于存放用户数据(主要是全局变量)和堆栈空间。 (2) 两段Flash存储器,$0870 - $17FF,$1860-$FFFF,存储程序、常量和中断向量。 (3) I/O映像寄存器:直接页寄存器、高端页寄存器和非易失性寄存器。
2. AW60引脚:电源类信号引脚、复位信号引脚、主要功能模块引脚和其他引脚。
3. AW60最小硬件系统:包括电源及其滤波电路、复位电路、晶振电路及其PLL滤波电路、写入
器接口电路。 4. S08CPU的特点:
(1) 具有16位堆栈指针SP、16位变址寄存器HX,16种寻址方式; (2) 最高达40MHz CPU内部总线频率、64KB程序/数据存储器空间; (3) 不经过累加器A的存储器之间数据直接传送; 5. S08CPU的内部寄存器:
(1) 累加器A(Accumulator):8位通用寄存器,用来存放操作数和运算结果。
(2) 变址寄存器HX(Index Pointer) :16位寄存器,H是高8位,X是低8位,可单独使用。 (3) 堆栈指针SP(Stack Pointer) :指向下一个栈地址的16位寄存器,堆栈指针SP采用递减的
结构,即进栈时SP减1,出栈时SP加1。
(4) 程序计数器PC(Program Counter) :也是16位的,可寻址范围达64KBPC存放下一条指令
的地址,在执行转移指令时存放转移地址,在执行中断指令时存放中断子程序入口地址。 (5) 条件码寄存器CCR(Condition Code Register) :8位的寄存器,其中5位(除了中断屏蔽位I)
用于指示执行完指令的结果状态,这些位可由程序来测试。 6. 分为哈弗结构和普林斯顿结构
7. 两个串行通信接口SCI模块与可选的13位中断;8引脚键盘中断KBI模块 8. 中断向量区:64字节,共32的中断源,三个中断入口,首地址占两节
第3章 第一个样例程序及CodeWarrior工程组织
1. 通用I/O接口:I/O接口,即输入输出接口,是微控制器同外界进行交互的重要通道。所谓通
用I/O,也记为GPIO(General Purpose I/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。
2. 上拉电阻和下拉电阻:MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上
拉电阻”。与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”。阻值在1K~10K之间
3. AW60的GPIO接口:AW60有7个GPIO口,每个GPIO口的名称由一位英文字母组成,分别是A、
B、C、D、E、F、G。
GPIO模块的每个口最多对应8个GPIO引脚,但各个GPIO口的编程寄存器均为8位,没有对应引脚的位无效。
GPIO的基本寄存器:
(1) 端口数据方向寄存器(DDR):若为0,则为输入,若为1,则为输出。 (2) 端口数据寄存器:存放要输入或输出的数据。
(3) PTXDD=0 管脚方向:输入;PTXPE=0 上拉:禁止;PTXDS=0 输出驱动:低驱动; PTXSE=0 输出:摆率禁止
第4章 基于硬件构件的嵌入式系统开发方法 1. 嵌入式系统开发主要存在以下两大问题:
硬件设计缺乏重用支持 驱动程序可移植性差
2. 根据接口之间的生产消费关系,接口可分为两类:提供接口和需求接口。
根据所拥有接口类型的不同,硬件构件分为三类: 核心构件、中间构件、终端构件。 第5章 串行通信接口SCI
1. 串行通信的概念:SCI(standard non-return-zero mark/space data format) “标准不归零传号/空号
数据格式,通常采用NRZ数据格式。“不归零”的最初含义是:用正、负电平表示二进制值,不使用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。下图给出了8位数据、无校验情况的传送格式
2. 奇偶校验:字符奇偶校验检查(character parity checking)称为垂直冗余检查(vertical redundancy checking,VRC),它是每个字符增加一个额外位使字符中“1”的个数为奇数或偶数。
奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果“1”的数目是奇数,校验位应为“0”。
偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如果是奇数则为“1”。
3. 串行通信的传输方式:单工(Simplex)、全双工(Full-duplex)、半双工(Half-duplex)。 4. 波特率:每秒内传送的位数 5. AW60的SCI模块的编程结构:
从程序员角度看,涉及SCI的有8个8位寄存器,其中2个波特率寄存器,1个数据寄存器,3个控制寄存器,2个状态寄存器。
SCI波特率计算公式:
SCI波特率= fBUSCLK/(16×BR),其中fBUSCLK为内部总线频率
SCI控制寄存器1(SCIxC1)用于设置SCI的工作模式,可选择运行模式、唤醒模式、空闲类型检测以及奇偶校验。
SCI控制寄存器2(SCIxC2)用于收/发及相关中断控制的设置。
6. 中断向量表:中断向量表是一个指针数组,其中每一项都存放了中断处理函数的入口地址。 7. 中断的处理过程一般为:
关中断、保护现场、 执行中断服务程序、 恢复现场、开中断。 第6章 GPIO的应用实例——键盘、LED与LCD 1. 键盘
(1) AW60的键盘中断模块:
AW60单片机上的PTG0 – PTG4、PTD2 – PTD3、PTD7共8个引脚与键盘中断模块(KBI)的引脚复用。键盘中断矢量地址:$FFD2—$FFD3。键盘中断初始化顺序:先设置键盘中断状态和控制寄存器(KBI1SC),后设置键盘中断引脚使能寄存器(KBI1PE)。 2. 数码管LED编程实例:
(1) LED的引脚使用:
利用MCU的PTB口控制8个位段(数据),PTB7 – PTB0分别接h-a位段,PTD0,PTD1,PTD4,PTD5作为片选端(位控制)。
3. 液晶LCD编程实例
(1) LCD的基本特点和分类方法
1)低电压微功耗,2)平板型结构,3)使用寿命长,4)被动显示,5)显示信息量大且易于彩色化,6)无电磁辐射 LCD的分类:
1)按电光效应分类,LCD可分为电场效应类,电流效应类,电热效应类和热效应类。 2)按现实内容分类,LCD可分为字段型,点阵字符型,点阵图形型。 3)按LCD的采光方式分类,分为带背光源与不带背光源两大类。
(2) HD44780:HD44780的外部引脚一般有14条,其中有8条数据线,3条控制线。
HD44780指令集:(要求RS = 0)
1) R/W = 0,DATA = 0000 0001 ,清屏 2) R/W = 0,DATA = 0000 001* ,归位 …… 3) R/W = 1,读忙操作。 (3) LCD的引脚使用
在实验板上LCD数据线7-14引脚分别MCU的PTA0-PTA7连接,LCD的控制线RS,R/W,E(4,5,6引脚)分别与MCU的PTC4,PTC6,PTF6连接。 第7章 定时器模块
1. AW60内的计时器:AW60提供两个独立的定时器,分别是TPM1和TPM2,其中TPM1有6
个通道,TPM2有2个通道。 2. 定时器模块的寄存器:
(1) 状态和控制寄存器:D7(TOF)定时器溢出标志位,D6(TOIE)定时器溢出中断允许位,D4、D3(CLKS)时钟源选择位,D2-D0(PS)定时器分频因子选择位。 (2) TPM计数寄存器(TPMxCNT):16位寄存器,每一计数周期自动加1,当时钟溢出时清零。 (3) TPM预置寄存器(TPMxMOD):16位寄存器,用于设定计数寄存器的计数溢出值。 3. 分频因子p与预置寄存器的设定:t=n/( fBUS/p) ,其中n为预置寄存器值 第8章 模数转换模块
1. A/D转换的基本问题:
(1) 采样精度:数字量变化一个最小量时模拟信号的变化量,即我们通常所说的采样位数。 (2) 采样速率:完成一次A/D采样所要花费的时间。
(3) 滤波:为了使采样的数据更准确,必须对采样的数据进行筛选去掉误差较大的毛刺。 (4) 物理量回归:在实际应用中,得到稳定的A/D采样值以后,还需要把A/D采样值与实际物
理量对应起来,这一步称为物理量回归。
2. AW60的A/D转换结构:AW60芯片内部集成了一个8位/10位精度的逐次逼近式的A/D转换
模块,最多可支持28路独立的模拟输入(AD0~AD27),但在64引脚封装中,只引出16个通道供用户使用(AD0~AD15),这些通道与I/O引脚复用。
3. AW60的A/D转换模块编程寄存,8个寄存器:2个状态和控制寄存器,1个数据结果寄存器,
1个比值寄存器,1个配置寄存器,3个引脚控制寄存器