PIC
中断:
中断分组管理(快速中断屏蔽)与控制
统一中断入口:根据中断标志位判断中断的类型。因为中断标志位始终会产生,所以开放中断前需要清除中断标志位。
边沿触发:外部中断可以边沿选择。数字信号低电平的驱动能力比较强,下降沿(更陡峭),下降时间比较短,故从可靠性的角度下降沿触发最佳。
电平变化中断:端口处有异或比较器,当变化时产生中断,从而识别边沿。
低压差稳压器(LDO):
为了支持PIC芯片的普适性,内部使用type B(降低功耗),端口使用type A(提高可靠性)。
芯片配置字:
芯片的某些引脚或硬件需要在芯片工作之前就进行配置,硬件实现。配置字中有关于复位、振荡器的规划。
PIC端口结构:
与80C51相比,引进了钳位二极管、模数选择、方向选择、上拉电阻选择.
PIC振荡器:
PIC存在内部振荡器,可以通过外部校准内部。可以控制振荡器。在响应速度、功耗和抗干扰能力三者中达到平衡。
PIC与80C51总体比较:
普适性提高,但配置比较复杂,易用性降低。
几个关键概念:
电源电压:三类(A=5V, B=3.3V, C=1.8V)。
通用端口电平要求:H≥70%Vcc L≤30%Vcc。
复位电平要求:H≥80%Vcc L≤12%Vcc。
信号上升时间:10%Vcc上升到90%VCC所需要的时间。
信号下降时间:90%Vcc下降到10%VCC所需要的时间。
信号上升时间一般比信号下降时间长。好的信号要求信号上升时间与下降时间≤信号周期*4%。可以通过降低频率(周期变长)来实现。
功耗控制:P=K*F,分部件控制时钟(降低功耗且躲避干扰)。
看门狗与可靠性:硬件看门狗发现软件的问题,产生复位。错误不可避免。每种复位不同,因此便于软件处理,恢复到之前状态。
推挽输出与OC(OD)输出:频率高,更有利于提高速度。内部推挽输出OC,板外输出一般为OD。
ARM架构
1. ARM 体系结构
ARM系列微处理器扩展命名扩展符号:
T 16位Thumb指令集:硬件扩展为ARM指令集,因此为压缩指令集,不占用芯片运行的时间。
版本:ARMv4T、 ARMv5T和ARMv6T。
代码尺寸:Thumb指令编译其长度只占ARM指令的65%左右。带来功耗上的优势。但时间上会差一些,增加了指令解压以及需要比ARM更多的指令执行。在异常中断的低级处理时,还是需要使用ARM指令。如果主导因素是空间则选择Thumb,性能则ARM与Thumb指令集2者的平衡。
D 片上调试 debug:响应调试强求暂停
M 支持增强型乘法器:32位乘32位得到64位。ARMV4版本以后,M变种已为标准配置。增加2条AKM指令:长乘法操作和长乘加操作。有时有乘法没除法。
I 嵌入式ICE部件:提供断点和调试点。
E 增强DSP指令:(1)增加16位乘法和乘加。(2)实现饱和的带符号数的加减法操作的指令。溢出时,使用最大或最小值。因此代码不需要判断溢出。
J Java加速器Jazelle:提高Java代码的运行速度,最高可达到8倍,功耗降低80%。
S 可综合:提供VHDL或Verilog HDL硬件描述语言设计文件。
ARM架构的版本:
更新:(1)不断创新提升性能(2)向下兼容保护软件投入
- ARMv4T架构:每条指令1.5个时钟周期。
- ARMv6架构:Thumb-2指令集。
- ARMv7架构:A系列(支持大型嵌入式操作系统)、R系列(实时性)和M系列(单片机/MCU,追求低成本低功耗)。
- ARM Cortex系列,全部采用ARMv7架构。
三种总线:
ARM的总线体系结构是AMBA。存在对总线的控制。
AHB:连接高性能系统模块。支持突发数据传输(例如DMA)。支持单个数据传输。支持分离式总线事务处理。
ASB:连接高性能系统模块。支持突发数据传输。
APB:简单接口。支持低性能外围接口。
ARM工作模式:
用户模式(usr)、快速中断模式(fiq)、外部中断模式(irq)、管理模式(svc)、指令/数据访问终止模式(abt)、系统模式(sys)和未定义指令终止模式(und)。
工作模式可通过软件控制改变,也可通过外部中断或异常处理改变。
程序代码角度:ARM状态和Thumb状态。
ARM处理器核在上电或复位并开始执行程序代码时,处于ARM状态。利用指令CODE 16/32进行切换。
内部寄存器:
37个32位寄存器,分为通用寄存器(31)和状态寄存器(6)。
未分组寄存器(R0R7)和分组寄存器(R8R14)。程序计数器PC(R15)。程序状态寄存器CPSR(R16)。(中断禁止位、T标志位(Thumb)和工作模式位)
其中,Thumb只用到了R0~R7、R13和R14。
异常:
复位、未定义指令异常、软件中断异常、指令预取中止、数据中止、IRQ和FIQ(中断)。异常向量是异常服务程序的入口。
存储器:
支持大端存储和小端存储。ARM默认为小端存储格式。可以通过硬件输入引脚或配置字来配置。对存储单元的访问需要适当地对齐。使用存储器映射方式实现I/O端口地访问(因此没有in/out指令,统一指令实现)。
2. ARM 存储器
存储器分类:
- 主存储器:内存。只读存储器(ROM)、随机存储器(RAM)。
- 辅存储器:外设。硬盘。
访问速度:寄存器>cache>SRAM>DRAM>ROM
辅助存储器:Flash技术。CF卡、SD卡。
NAND Flash:以页为单位读和编程操作和以块为单位进行擦除。
K8F1208芯片:4096个Block,每个Block有32个Page,每个Page有528字节,512字节存储+16字节校验位。因此,对NAND Flash操作的地址分为3部分:块地址、页地址和页内地址。
存储系统机制:
存储管理单元(MMU):主要用来完成虚实地址和物理地址之间的转换。访问权限控制。MMU管理方式:段式、页式和段页式。
3. ARM 时钟及电源管理
S3C2410时钟结构:
不同总线对应有不同时钟。提供给CPU的FCLK、提供给AHB总线设备的HCLK和提供给APB总线设备的PCLK。
2个锁相环(PLLs):外部输入低频,利用闭环倍频。低频比较精准,高频不够精准。软件可以控制是否提供锁相环给某个设备,可以关闭锁相环,从而分级控制,降低功耗,规避干扰。1个是提供总线时钟,1个是提供USB时钟。
S3C2410电源管理模式:
电源管理模式(模式管理):
- 空闲模式(停止供给CPU核时钟)
- 正常模式(可软件控制)
- 低速模式(无PLL模式)
- 休眠/掉电模式(外部中断EINT[15:0]或RTC报警,唤醒逻辑独立供电)
内核提供1.8V电压,处理器端口和存储端口提供3.3V电压。休眠模式也有1.8V。内部设备用电的电压一致,实际用电有上电延时,确保不同引脚都上电后,才进行初始化、配置和运行。
PS:主要思想是硬件上尽可能实现灵活性,软件工具包实现易用性。将复杂的更高层次的开发发展为软件的开发和移植。
4. ARM 定时技术
定时器是嵌入式系统重要的部件。
定时部件3类:看门狗、RTC部件和Timer部件。
看门狗定时器:当程序“跑飞”时,恢复系统的运行,即监视并恢复程序正常运行。时钟(PCLK)。可能会有专用的内部振荡器。2个功能(定时器功能和复位功能)。组成部分(预分频器、再分频器、WTDAT数据寄存器、WTCNT计数器、WTCON控制寄存器和复位信号发生器)。先赋值,再启动。
RTC部件:实时时钟,软件编程支持。有的有独立时钟,有的有独立电源。存在数据失联问题(例如,读时间时,高位年月或日改变,导致数据错误实联),因此数据需要多次读确保数据不失联。报警功能可以提供闹钟功能。时钟精度要求高。
Timer部件:主要是脉宽调制(PWM)。任何模拟信号都可以使用PWM来实现,数字信号生成模拟信号。具有死区管理的功能。Timer0可以用于控制大功率设备。支持DMA的请求模式。DMA和CPU共同使用时,都需要控制总线,因此DMA的加入一定会影响CPU的总线执行的时序。如果需要精确的软件延时(循环实现),又要使用DMA,则计时会不准确。
5. ARM 中断
对于设备的访问有:程序查询方式(效率比较低)、中断方式和DMA方式。
特点:(1)实时性能好(2)调试较复杂(中断嵌套)
可以处理难以预料的故障。
DMA方式与中断方式相比:
- 中断方式,MPU需要执行多条指令,占用一定的时间;DMA 传送1字节只占用1个总线周期,占用MPU时间少。
- DMA的响应速度比中断快。中断需要执行完当前指令并保护现场,而DMA请求在总线周期执行完就可响应。
- 对于快速的I/O设备,中断无法满足要求,必须采用DMA的方式。
中断向量:
ARM可以由软件配置使用独立中断向量或可变中断向量设计。可进行中断向量的分组。
中断类别:
中断主要分为普通中断(IRQ)和快速(异常)中断(FIQ)。
中断管理:
主要通过模式、屏蔽、优先级和挂起(标志)来实现。快速中断没有优先级的判断。
ARM拥有独立的中断向量和分组的中断向量(根据优先级)。
FIQ快速异常中断的执行优先级更高。
6. ARM DMA
定义:
DMA技术是一种高速的数据传输方式,允许在外部设备和存储器之间、存储器与存储器之间等直接传输数据。
哪些部件可以作为源与目的的?
外部DMA请求:
- 单服务请求(突发单字节的传输)
- 单服务握手
- 全服务握手
DMA的知识点:
优先级
源和目的之间的关系
是否支持高速的传递
是否支持批量的传递
是否支持突发单数据传递
生成数据和数据传输完毕后,能不能产生DMA的中断
DMA的使用会影响CPU的时间