嵌入式体系结构课程总结
题目: LPC2131 ARM硬件结构及程序设计
二级学院计算机科学与信息学院
专 业 计算机科学与技术
班 级
学生姓名学号
教 师
时 间2015.1.2
成 绩
1.系统控制和启动过程:
系统控制模块:
晶振
振荡器支持晶振范围为10MHz~25MHz。晶振输出频率称为fOSC,而ARM处理器时钟频率称为cclk。
除非连接并运行PLL,否则在该文档中FOSC和cclk的值是相同的。参见6.21.2节“PLL”。
PLL
PLL可以接受范围为10MHz~25MHz的输入时钟频率。输入频率通过一个电流控制振荡器(CCO)
可以倍增为10MHz~60MHz。倍增器可以是从1到32的整数(实际上在该系列微控制器当中,由于CPU
频率的,倍增器的值不可能高于6)。CCO操作的范围为156MHz~320MHz,因此在环当中增加了一个分频器,这样PLL在提供所需要的输出频率时,使CCO保持在其频率范围内。输出分频器可设置为2、4、8或者16分频以产生输出时钟。由于最小输出分频值为2,这样就确保了PLL输出具有50%的占空比。
PLL在芯片复位后关闭并且被旁路,可通过软件使能。程序必须配置并且激活PLL,等待PLL锁定之后再将PLL作为时钟源。PLL设置时间为100us。
复位和唤醒定时器
LPC2131/2132/2138有2个复位源:RESET管脚和看门狗复位。RESET管脚是一个施密特触发输入管脚,带有附加的干扰滤波器。任何复位源所导致的芯片复位都会启动唤醒定时器(见下面描述的唤醒定时器),复位状态将一直保持到外部复位撤除,振荡器开始运行。振荡器运行经过固定数目的时钟后Flash控制器完成其初始化。
当内部复位撤除后,处理器从复位向量地址0开始执行。此时所有的处理器和外设寄存器都被初始化为预设的值。唤醒定时器的用途是确保振荡器和其它芯片操作所需要的模拟功能在处理器能够执行指令之前完全正常工作。这在上电、各种类型的复位以及任何原因所导致上述功能被关闭的情况下非常重要。由于振荡器和其它功能在掉电模式下关闭,因此将处理器从掉电模式中唤醒就要利用唤醒定时器。
唤醒定时器监视晶体振荡器是否可以安全地开始执行代码。当芯片上电时,或某些事件导致芯片退出
掉电模式时,振荡器需要一定的时间以产生足够振幅的信号驱动时钟逻辑。时间的长度取决于许多因素,
包括VDD上升速度(上电时)、晶振的类型及电气特性(如果使用石英晶体)以及其它外部电路(例如:电容)和外部环境下振荡器自身的特性。掉电监测器
LPC2131/2132/2138包含一个VDD管脚电压的2级检测。如果VDD电压低于,掉电检测器(BOD)
向向量中断控制器声明一个中断。该信号可通过中断使能;或者,也可由件通过读取相应的寄存器来监控信号。
当VDD管脚的电压低于2.6V时,这个第二级的低电压检测将产生复位,禁能LPC2131/2132/2138。该
复位可以防止Flash的内容发生改变,因为低电压下芯片的各种功能部件的操作都将变得不可靠。BOD电路将使电压降低到1V以下来维持复位,这个电压下上电复位电路也可保持复位。
2.9V和2.6V阈值都有滞后。正常工作时,这个滞后可使2.9V的检测能产生可靠的中断或使正常反复执行的事件能检测到掉电条件。代码安全
LPC2131/2132/2138可控制应用代码是否被调试或被保护以防盗用。
当片内boot-loader在Flash中检测到一个有效校验和并在Flash的0x1FC地址单元读取0x87654321时,禁止调试,Flash代码被保护。一旦调试被禁能,它就只能通过执行芯片擦除来使能。外部中断输入根据可选管脚功能的设定,LPC2131/2132/2138最多可包含9个边沿或电平触发外部中断输入。外部事件可作为4个的中断信号来处理。外部中断输入可用于将处理器从掉电状态唤醒。
存储器映射控制
存储器映射控制改变了从地址0x00000000开始的中断向量的映射。向量可以映射到片内Flash存储器的底部,也可以映射到片内静态RAM。这使得在不同存储器空间中运行的代码都能够对中断进行控制。功率控制
LPC2131/2132/2138支持两种低功耗模式:空闲模式和掉电模式。在空闲模式中,指令的执行被暂停,
直到产生复位或中断为止。外围功能在空闲模式下继续工作并可产生中断唤醒处理器。空闲模式使处理器自身、存储器系统和相关的控制器以及内部总线不再消耗功率。
在掉电模式中,振荡器被关闭,芯片没有任何的内部时钟。处理器状态和寄存器、设寄存器和内部
SRAM的值在掉电模式下保持不变。芯片管脚的逻辑电平保持静态。通过复位或特定的不需要时钟还可工作的中断可终止掉电模式并恢复正常操作。由于芯片所有动态的操作都被暂停,掉电模式使芯片消耗的功率降低到几乎为零。外设的功率控制特性允许关闭单独的不需要使用的外设,这样可进一步降低功耗。
VPB总线
VPB分频器决定处理器时钟(cclk)和外设时钟(pclk)之间的关系。VPB分频器有两个用途。第一,VPB
分频器通过VPB总线为外设提供所需的时钟(PCLK),使外设可工作在ARM处理器选择的速率下。为了
实现该功能,VPB总线频率可以降低为处理器时钟频率的1/2~1/4。由于VPB总线必须在上电时正确工作
(如果VPB总线由于VPB分频器控制寄存器的原因而不工作,则它的时序不能改变),因此VPB总线在
复位后的默认状态是以1/4的处理器时钟速率运行。VPB分频器的第二个用途是当所有外设都不必在全速
率下运行时降频以降低功耗。由于VPB分频器连接到PLL的输出,PLL(如果正在运行)在空闲模式时保
持有效。
仿真和调试
LPC2131/2132/2138支持通过JTAG串行端口进行仿真和调试。跟踪端口允许跟踪程序的执行。调试和换页
跟踪功能只在GPIO的P1口复用。这意味着当应用在嵌入式系统内运行时,位于P0口的所有通信、定时器和接口外设在开发和调试阶段都可用。
EmbeddedICE
标准的ARM EmbeddedICE逻辑提供对片内调试的支持。对目标系统进行调试需要一个主机来运行调
试软件和EmbeddedICE协议转换器。EmbeddedICE协议转换器将远程调议命令转换成所需要的JTAG
数据,从而对目标系统上的ARM内核进行访问。
ARM内核有一个内置的调试通信通道功能。调试通信通道允许程序在目标系统上运行,即使进入调试
状态,目标系统程序与主机调试器或其它的主机进行通信时也不会中断程序流程。ARM7TDMI-S内核
上运行的程序将调试通信通道作为协处理器14进行访问。调试通信通道允许JTAG端口发送和接收数据,
但不影响正常的程序流程。调试通信通道数据和控制寄存器映射EmbeddedICE逻辑中的地址。
嵌入式跟踪
由于LPC2131/2132/2138带有大量的片内存储器,因此不能简单地通过观察外部管脚来确定处理器核
是如何运行的。嵌入式跟踪宏单元(ETM)对深嵌入处理器内核提供了实时跟踪能力。它向一个跟踪端口
输出处理器执行的信息。
ETM直接连接到ARM内核而不是主AMBA系统总线。它将跟踪信息压缩并通过一个窄带跟踪端口输
出。外部跟踪端口分析仪在软件调试器的控制下捕获跟踪信息。指令跟踪(或PC跟踪)显示了处理器的执行
流程并提供所有已执行指令的列表。指令跟踪被压缩为广播分支地址和一套用于指示流水线状态的状态信
号。跟踪信息的产生可通过选择触发源进行控制。触发源包括地址比较器、计数器和序列发生器。由于跟
踪信息被压缩,软件调试器需要一个执行代码的静态映像。由于这个,自修改代码无法被跟踪。
RealMonitor
RealMonitor是一个可配置的软件模块,它由ARM公司开发,可以提供实时的调试。它是一个轻便的
调试监控器,当用户对运行在前台的应用程序进行调试时,它运行在后台。它使用DCC(调试通信通道)
(EmbeddedICE逻辑中包含了DCC)与主机进行通信。LPC2131/2132/2138包含一个编程到片内Flash存
储器中的特定RealMonitor软件。
2.GPIO
GPIO功能描述
每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。
GPIO端口的每个位可以由软件分别配置成多种模式。
─输入浮空
─输入上拉
─输入下拉
─模拟输入
─开漏输出
─推挽式输出
─推挽式复用功能
─开漏复用功能
每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/更改的访问;这样,在读和更改访问之间产生IRQ时不会发生危险。
下图给出了一个I/O端口位的基本结构。
复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式(CNFx[1:0]=01b,MODEx[1:0]=00b)。
复位后,JTAG引脚被置于输入上拉或下拉模式:
─PA15:JTDI置于上拉模式
─PA14:JTCK置于下拉模式
─PA13:JTMS置于上拉模式
─PB4: JNTRST置于上拉模式
当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。
输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。
所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。
当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作里,可以只更改一个或多个位。
这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是 GPIOx_BRR)中想要更改的位写’1’来实现的。没被选择的位将不被更改。
复用功能(AF)
使用默认复用功能前必须对端口位配置寄存器编程。
对于复用的输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入管脚必须由外部驱动
注意:也可以通过软件来模拟复用功能输入管脚,这种模拟可以通过对GPIO控制器编程来实现。此时,端口应当被设置为复用功能输出模式。显然,这时相应的管脚不再由外部驱动,而是通过GPIO控制器由软件来驱动。
对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。
对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。这时,输入驱动器被配置成浮空输入模式。
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。
如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,它的输出将不确定。
软件重新映射I/O复用功能
为了使不同器件封装的外设I/O功能的数量达到最优,可以把一些复用功能重新映射到其他一些脚上。这可以通过软件配置相应的寄存器来完成(参考AFIO寄存器描述)。这时,复用功能就不再映射到它们的原始引脚上了。
输入配置
当I/O端口配置为输入时:
输出缓冲器被禁止
施密特触发输入被激活
根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接
出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器
对输入数据寄存器的读访问可得到I/O状态
3.向量中断及外部中断输入
ARM7TDMI内核具有两个中断输入,分别为IRQ中断和FIQ中断。向量中断控制器(VIC)负责管理芯片的中断源,最多可以管理32个中断输入请求。
程序状态寄存器CPSR与VIC的关系
ARM内核通过CPSR来监视和控制内部的操作,CPSR中的“I”位和“F”位分别用来控制IRQ模式和FIQ模式的使能。
当I = 1时,禁止IRQ中断
当I = 0时,使能IRQ中断
中断分类
中断输入请求可以在VIC中被设置为以下三类:
FIQ中断:具有最高优先级;
向量IRQ中断:具有中等优先级;
非向量IRQ中断:具有最低优先级;
LPC2000系列ARM具有4路外部中断,可以设置为2种类型:
边沿触发:
上升沿触发
下降沿触发
电平触发:
高电平触发
低电平触发
1.边沿触发中断.
下降沿触发类型中断的请求和清除时序。
2.电平触发中断.
低电平触发类型中断的请求和清除时序。
外部中断源
LPC2000系列微控制器几乎所有的外设部件都可以产生中断。其中外部中断含有4个的中断输入。
寄存器
中断信号波形与设置方式
外部中断与VIC的关系
外部中断0位于VIC通道14,中断选择寄存器VICIntSelect[14]用来选择通道14的中断类型:
当VICIntSelect[14] = 0时,通道14分配为IRQ中断
当VICIntSelect[14] = 1时,通道14分配为FIQ中断
外部中断应用示例
//初始化EINT0为电平中断
PINSEL1 = (PINSEL1&0xFFFFFFFC) | 0x01;
EXTMODE = EXTMODE & 0x0E;
//初始化EINT0为下降沿中断
PINSEL1 = (PINSEL1&0xFFFFFFFC) | 0x01;
EXTMODE = EXTMODE | 0x01;
EXTPOLAR = EXTPOLAR & 0x0E;
//清除所有外部中断标志
EXTINT = 0x0F;
4.定时器
1) 描述
定时器0 和定时器1 除了外设基地址不相同以外,其它都相同。
定时器对外设时钟(pclk)周期进行计数,根据4 个匹配寄存器的设定,可设置为匹配
(即到达匹配寄存器指定的定时值)时产生中断或执行其它动作。它还包括4 个捕获输入,用
于在输入信号发生跳变时捕获定时器值,并可选择产生中断。
2)结构
定时器 0 和定时器1 的方框图,
3) 特性
带可编程32 位预分频器的32 位定时器/计数器
具有多达4 路捕获通道。当输入信号跳变时可取得定时器的瞬时值。也可选择使捕
获事件产生中断。
4 个32 位匹配寄存器,匹配时的动作有如下3 种:
匹配时定时器继续工作,可选择产生中断
匹配时停止定时器,可选择产生中断
匹配时复位定时器,可选择产生中断
4 个对应于匹配寄存器的外部输出,匹配时的输出有如下4 种:
匹配时设置为低电平
匹配时设置为高电平
匹配时翻转
匹配时无动作
4)管脚描述
5)定时器0 初始化示例
void Time0Init(void)
{ T0TC = 0; // 定时器设置为0
T0PR = 0; // 时钟不分频
T0MCR = 0x03; // 设置T0MR0 匹配后复位T0TC,并产生中断标志
T0MR0 = Fpclk/10; // 设置0.1S 匹配值
T0TCR = 0x01; // 启动定时器0
}
5.SPI
SPI(Serial Peripheral Interface——串行外设接口)总线系统是一种同步串行外设接口,
允许MCU 与各种外围设备以串行方式进行通信、数据交换。外围设备包FLASHRAM、A/D
转换器、网络控制器、MCU 等。SPI 系统可直接与各个厂家生产的多种标准外围器件直接
接口,一般使用4 条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线SSEL(有的SPI 接口芯片带有中断信号线INT,有的SPI 接口芯片没有主机输出/从机输入数据线MOSI)。所以,SPI 系统总线一共只需3~5 位数据线和控制线即可实现与具有SPI 的各种I/O 器件接口。各信号含义如下:
SCK 串行时钟,用于同步SPI 接口间数据传输的时钟信号。该时钟总是由主机驱动并
且从机接收。
SSEL 从机选择,SPI 从机选择信号是一个低有效信号,用于指示被选择参与数据传输
的从机。每个从机都有各自特定的从机选择输入信号。在数据处理之前,SSEL 必须为低电
平并在整个处理过程中保持低电平。如果在数据传输中SSEL 信号变为高电平,传输中止。
MISO 主入从出,该信号是一个单向的信号,它将数据从从机传输到主机。当器件为从
机时,串行数据从该端口输出;当器件为主机时,串行数据从该端口输入;当从机没有被选
择时,将该信号驱动为高阻态。
MOSI 主出从入,该信号是一个单向的信号,它将数据从主机传输到从机。当器件为主
机时,串行数据从该端口输出;当器件为从机时,串行数据从该端口输入。
结构:
寄存器:
SPI数据寄存器
SPDR | 功能 | 描述 | 复位值 |
7 : 0 | 数据 | SPI双向数据 | 0 |
SPCCR | 功能 | 描述 | 复位值 | |||||||
0 | SPI中断 | SPI中断标志。向该位写入1清零。 注:当SPIE位置“1”,并且SPIF和MODF位种至少有一位为1时,该位置位。但是只有当SPI中断位置位并且SPI中断在VIC中被使能,SPI中断才能由中断处理程序处理。 | 0 | |||||||
7 : 1 | 保留 | 用户程序不要向这些位写入1 | NA | |||||||
名称 | 描述 | 访问 | 复位值 | SPI0名称 | SPI1名称 | |||||
SPCR | SPI控制寄存器。该寄存器控制SPI的操作模式。 | 读写 | 0 | S0SPCR | S1SPCR | |||||
SPSR | SPI状态寄存器。该寄存器显示SPI的状态。 | 只读 | 0 | S0SPSR | S1SPSR | |||||
SPDR | SPI数据寄存器。该双向寄存器为SPI提供发送和接收的数据。发送数据通过写该寄存器提供。SPI接收的数据可以从该寄存器读出。 | 读写 | 0 | S0SPDR | S1SPDR | |||||
SPCCR | SPI时钟计数寄存器。该寄存器控制主机SCK的频率。 | 读写 | 0 | S0SPCCR | S0SPCCR | |||||
SPINT | SPI中断标志寄存器。该寄存器包含 | 读写 | 0 | S0SPINT | S0SPINT |
#define MSTR (1<<5)
#define CPOL (1<<4)
#define CPHA (1<<3)
#define LSBF (1<<3)
#define SPI_MODE (MSTR | CPOL)
/*初始化SPI接口,设置为主机*/
Void MSpiIni(uint8 fdiv)
{
S0PCCR = fdiv&0xFE;
S0PCR = SPI_MODE;}
6.I2C
(1)特性
(1)标准的I2C 总线接口
(2)可配置为主机、从机或主/从机
(3)可编程时钟可实现通用速率控制
(4)主机从机之间双向数据传输
(5)多主机总线(无主机)
(6)同时发送的主机之间进行仲裁,避免了总线数据的冲突
(2)应用
与外部标准I2C 部件接口,例如串行E2PROM、RAM、RTC、LCD、音调发生器等等。
(3)引脚描述
(4)寄存器描述
(5)主模式I2C 的初始化
void I2C_Init(uint32 fi2c)
{ if(fi2c>400000) fi2c = 400000;
PINSEL0 = (PINSEL0&0xFFFFFF0F) | 0x50; // 设置I2C 控制口有效
I2SCLH = (Fpclk/fi2c + 1) / 2; // 设置I2C 时钟为fi2c
I2SCLL = (Fpclk/fi2c) / 2;
I2CONCLR = 0x2C;
I2CONSET = 0x40; // 使能主I2C
/* 设置I2C 中断允许*/
VICIntSelect = 0x00000000; // 设置所有通道为IRQ 中断
VICVectCntl0 = 0x29; // I2C 通道分配到IRQ slot 0,即优先级最高
VICVectAddr0 = (int)IRQ_I2C; // 设置I2C 中断向量地址
VICIntEnable = 0x0200; // 使能I2C 中断
}
(6)从模式I2C 的初始化
void I2C_SlavInit(uint8 adr)
{ PINSEL0 = (PINSEL0&0xFFFFFF0F) | 0x50; // 设置I2C 控制口有效
I2ADR = adr&0xFE; // 设置从机地址
I2CONCLR = 0x28;
I2CONSET = 0x44; // I2C 配置为从机模式
/* 设置I2C 中断允许*/
VICIntSelect = 0x00000000; // 设置所有通道为IRQ 中断
VICVectCntl0 = 0x29; // I2C 通道分配到IRQ slot 0,即优先级最高
VICVectAddr0 = (int)IRQ_I2C; // 设置I2C 中断向量地址
VICIntEnable = 0x0200; // 使能I2C 中断
}
7.UART
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,通常集成于其他通讯接口的连结上。
具体实物表现为的模块化芯片,或作为集成于微处理器中的周边设备。一般和RS-232C规格的,类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。
UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信
计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。
它是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。
UART作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。
其中各位的意义如下:
起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。
奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。
停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。[3]
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。
波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol)。一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为120字符/秒,传输使用256阶符号,每个符号代表8bit,则波特率就是120baud,比特率是120*8=960bit/s。这两者的概念很容易搞错。
8.A/D
随着数字技术,特别是信息技术的飞速发展与普及,在现代控制、通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别、处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路--模数和数模转换器。
将模拟信号转换成数字信号的电路,称为模数转换器(简称A/D转换器或ADC,Analog to Digital Converter);将数字信号转换为模拟信号的电路称为数模转换器(简称D/A转换器或DAC,Digital to Analog Converter);A/D转换器和D/A转换器已成为信息系统中不可缺少的接口电路。
为确保系统处理结果的精确度,A/D转换器和D/A转换器必须具有足够的转换精度;如果要实现快速变化信号的实时控制与检测,A/D与D/A转换器还要求具有较高的转换速度。转换精度与转换速度是衡量A/D与D/A转换器的重要技术指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成型的A/D和D/A转换器,它们具有愈来愈先进的技术指标。
引脚描述
寄存器描述
9.WDT
Watchdog Timer 中文名看门狗。是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。
软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位.看门狗可设定溢出率,也可单独用来作为定时器使用.
看门狗使用注意:大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。
看门狗运用:看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值.
10.PWM
脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振波开关技术将会成为 PWM控制技术发展的主要方向之一。
其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。
各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到PWM波形。
在PWM波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即可,因此在交-直-交变频器中,PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。