单片机基本功能

GPIO(General-Purpose Input/Output)

基本概念

GPIO,即通用输入输出端口,是一组可以由软件控制其功能的引脚。每个GPIO引脚都可以被独立地设置为输入或输出模式,以及设定高低电平状态。

通过GPIO,单片机能够与外部传感器、开关等设备进行信号交换,实现数据的输入与输出。

组成与原理

通常都包括一些基本的组成部分,如寄存器、TTL肖特基触发器、二极管、P-MOS管和N-MOS管等。以STM32的GPIO为例,其由三个寄存器以及TTL肖特基触发器、二极管、P-MOS管和N-MOS管组成。引脚输入输出电平通常为0~3.3V(带FT可容忍5V输入)。

工作原理基于对特定寄存器的操作,这些寄存器包括但不限于方向寄存器、数据寄存器和控制寄存器。方向寄存器决定了GPIO引脚的方向(输入或输出),数据寄存器用于读取输入值或设置输出值,而控制寄存器则包含了更多的配置选项,如内部电阻的启用等。

模式与配置

输入模式

可用于读取外部信号的信息,如检测按键状态或读取传感器值。可以进一步细分为浮空输入、上拉输入和下拉输入等。

输出模式

推挽输出

推挽输出结构由两个MOS或三极管收到互补控制的信号控制,可以真正地输出高电平和低电平,在两种电平下都具有驱动能力。

优点是驱动能力强,电平切换能力快;

缺点是多个推挽输出端口相连时,由于通路上阻抗较小,电流会从IO的VDD流向另一个IO

GND,可能发生短路进而对端口造成伤害

开漏输出

开漏输出时只有N-MOS管工作,只能输出低电平。当其输出高电平时没有驱动能力(电压会被外部阻抗拉低),需要借助外部上拉电阻完成对外驱动。开漏输出的优点是可以实现电平转换和“线与”功能;缺点是需要外部上拉电阻,驱动能力取决于上拉电阻阻值。

复用模式

GPIO引脚还可以复用为其他外设的功能引脚,如I2C、SPI、UART等。在复用模式下,GPIO引脚的功能和配置由相应的外设控制。

PWM(Pulse Width Modulation)

原理

通过改变脉冲信号的占空比(即脉冲宽度与周期的比值)来等效地获得所需的模拟量(电压或电流)输出。具体来说,PWM信号由一系列固定频率的脉冲组成,每个脉冲的高电平时间占整个周期的比例即为占空比。通过调整占空比,可以控制输出信号的平均电压或功率,从而实现模拟量的控制。

关键参数

周期(T)

一个完整脉冲信号的时间长度,决定PWM信号的频率(f),即每秒钟内脉冲的重复次数,计算公式为f = 1/T,是PWM信号每秒钟从高电平到低电平再回到高电平的次数。

占空比(D)

高电平持续时间(tH)与周期(T)的比值,即D = tH/T。占空比决定了输出信号的平均值,占空比越大,平均值越高。

生成与控制

PWM信号通常通过定时器/计数器模块来生成。定时器/计数器模块可以在特定的时间间隔内产生周期性的中断,或者用于计数外部事件。通过编程设置定时器的工作模式和计数值,可以实现PWM信号的生成和控制。

应用

电机速度,平滑启动与停止,扭矩控制;LED亮度,机械臂,电源管理,音频管理,交流电转直流电

IRQ (Interrupt Request)

基本概念

是单片机在执行程序时,遇到需要处理的紧急事件而发出的请求信号。

当中断源(如外部设备或内部定时器)有事件发生时,它会向单片机发出一个中断请求,即IRQ。单片机在接收到这个请求后,会根据中断的优先级,暂停当前正在执行的程序,转而执行与该中断请求对应的中断处理程序。

处理完毕后,单片机再返回到被中断的程序处继续执行。

类型

内部中断请求

由单片机内部的事件触发的中断请求。

常见的内部中断源包括定时器溢出、串口通信等。当这些内部事件发生时,单片机会自动产生中断请求,并跳转到相应的中断处理程序进行处理。

外部中断请求

由单片机外部的事件触发的中断请求。

常见的外部中断源包括按键按下、外部传感器信号等。当这些外部事件发生时,它们会通过外部电路或接口向单片机发出中断请求。

优先级和嵌套

不同的事件可能需要不同的处理时间。为了保证系统的正常运行,单片机会根据事件的紧急程度来设置不同优先级的中断请求。高优先级的中断请求会打断低优先级的中断请求的执行,确保重要事件能够及时处理。这种机制使得单片机能够更有效地管理各种中断请求,提高系统的运行效率和响应速度。

此外,某些单片机还支持中断嵌套功能,即在一个中断处理程序执行过程中,如果发生了另一个更高优先级的中断请求,单片机可以暂停当前的中断处理程序,转而执行更高优先级的中断处理程序。处理完毕后,再返回到被暂停的中断处理程序处继续执行。

注意事项

合理设置中断优先级

高优先级的中断应该用于处理紧急事件,而低优先级的中断则用于处理相对不重要的事件。

避免中断冲突

合理分配IRQ资源,避免不同设备或功能之间的中断冲突。如果发生中断冲突,可能会导致系统无法正常工作。

注意中断处理程序的编写

尽量简短和高效,以避免占用过多的CPU时间。同时,在处理中断时需要注意保护现场和恢复现场,以确保中断处理完成后能够正确地返回到原来的执行流程。

应用

按键扫描,传感器,定时器。

TIMER

基本概念

单片机内部的一种计数器,它可以通过内部时钟源或外部时钟源进行计数。当计数器的值达到预设值时,TIMER会产生一个中断请求(IRQ),或者触发特定的事件。TIMER可以用于生成精确的时间延迟,也可以用于对外部事件进行计数。

结构和功能

计数寄存器(Counter Register)

用于存储当前的计数值。计数寄存器的位宽常见的有8位、16位和32位,位宽越大,TIMER的计数范围越广。

预分频器(Prescaler)

用于对输入时钟进行分频,降低计数频率。通过调整预分频器的值,可以改变TIMER的计数速度。

工作模式寄存器(Mode Register)

设置TIMER的工作模式。

常见的工作模式包括定时器模式(内部时钟源计数)、计数器模式(外部时钟源计数)、自动重装载模式(计数器达到设定值后自动重新加载初始值)、捕捉模式(捕获外部事件的时间戳)和比较模式(比较计数值和预设值,匹配时产生中断)。

控制寄存器(Control Register)

控制TIMER的启停、中断使能等。

工作原理

初始化:设置TIMER的工作模式、初始值和中断使能。

启动:通过控制寄存器启动TIMER。

计数:TIMER根据内部时钟源或外部输入信号递增计数。

比较:当计数值达到设定值时,TIMER会产生中断请求或触发特定事件。

重载(在自动重装载模式下):计数器达到设定值后,自动重新加载初始值,继续计数。

注意事项

合理设置初始值和预分频器的值:为了确保TIMER能够生成精确的时间延迟或测量准确的频率,需要合理设置TIMER的初始值和预分频器的值。

避免TIMER冲突:合理分配TIMER资源,避免不同功能之间的TIMER冲突。

注意中断处理程序的编写:当TIMER产生中断请求时,需要编写相应的中断处理程序来处理中断。中断处理程序应该尽量简短和高效,以避免占用过多的CPU时间。同时,在处理中断时需要注意保护现场和恢复现场,以确保中断处理完成后能够正确地返回到原来的执行流程

UART(Universal Asynchronous Receiver/Transmitter)

基本概念

一种物理接口形式,通过它可以实现串行通信,使得数据能够按照特定的格式和协议进行传输和处理。UART作为异步且全双工的串口总线,在嵌入式系统中常用于微控制器、传感器、外设等设备之间的数据传输。

工作原理

通过发送和接收数据帧来实现数据的传输。数据帧通常由起始位、数据位、校验位和停止位组成,发送端将数据帧按照此格式发送,接收端在接收到起始位后开始接收数据,并根据数据位、校验位和停止位解析数据。

起始位:逻辑低电平(0),表示一帧数据的开始,用于同步接收端。

数据位:有效数据,长度可选5~9位(通常为8位,对应一个字节)。

校验位(可选):用于简单的错误检测,类型包括偶校验(数据位+校验位的“1”总数为偶数)、奇校验(总数为奇数)和无校验。

停止位:逻辑高电平(1),表示帧结束,长度可为1、1.5或2位。

使用注意事项

确保通信双方使用相同的波特率、数据位数、校验位和停止位设置

注意电平转换:如果两个设备使用不同的工作电压,可能需要进行电平转换。

在高波特率下,注意线路长度和信号完整性:长距离传输时可能需要采取抗干扰措施。

考虑使用流控制(如硬件流控制RTS/CTS)以防止数据丢失。

优缺点

  1. 优点

    • 简单易用:UART通信协议具有简单的数据帧格式和异步传输方式,易于实现和调试。
    • 适用性广泛:UART接口在嵌入式系统中非常常见,适用于多种设备和场景。
    • 低成本:UART接口硬件成本低廉,适合大规模应用。
  2. 缺点

    • 速度相对较慢:与SPI、I2C等同步通信协议相比,UART的传输速度较慢。
    • 扩展性有限:UART通常用于点对点通信,不支持多个设备同时连接(除非使用RS-485等扩展协议)。

USB(Universal Serial Bus)

一种用于计算机与外围设备之间数据传输的接口标准。

自1996年首次推出以来,USB技术经历了多个版本的升级,从USB 1.0到USB 2.0、USB 3.0,再到最新的USB 4.0,每一次更新都带来了更高的数据传输速率和更强的功能支持。在嵌入式系统中,可以实现数据传输、外设连接及系统更新等功能。

Multticore

基本概念

是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。这些内核可以并行工作,共同处理任务,从而显著提高系统的计算性能和吞吐量。在嵌入式系统中,Multicore技术使得系统能够同时处理多个任务,提高了系统的实时性和响应能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值