雷竞技注册
技术文章

外设中断:定时器,串行通信和adc

2019年10月3日,通过菲利普巨人

了解一些熟悉的外围设备的中断:计时器、串行通信和adc。

本文是关于概念的对话的延续微控制器中的并发和中断

在前一篇文章中,我们讨论了GPIO中断.在这里,我们将简要介绍GPIO在微控制器中的作用,并介绍一些熟悉的外设中的中断概念。这将使我们通过比较三个实际mcu上的中断来结束本系列。

GPIO在微控制器中的作用

GPIO代表通用输入/输出,有时也称为数字I/O控制器。

微控制器有引脚,通过它们与外部世界进行交互。这些引脚通常产生或接收由微控制器处理的电信号。

GPIO是连接到微控制器上的一些引脚的外围设备。

GPIO代表树莓派。图片来自SparkFun Electro雷竞技最新appnics [CC-BY 2.0

GPIO允许您将一个引脚配置为输入或输出。当引脚被配置为一个输入,假设是外部的东西连接到引脚,决定了引脚上的电信号是什么。例如,如果我将引脚连接到一个开关,并将该开关连接到电压源,我可以使用开关来控制引脚上的电信号是否没有电压(0 V)或一些电压(无论源的电压值是什么)。当引脚被配置为输入时,微控制器决定引脚上的信号是什么。

引脚连接到微控制器的寄存器,允许你在程序的引脚上读取或写入你想要的值。管脚上的值被编码为位(0或1)。0通常表示非常低的电压,1通常表示高电压,通常相当于微控制器上的工作电压。例如,对于工作在3.3 V的STM32L151C6,当电压小于0.99 V时,输入读取为0,当电压大于2.31 V时,输入读取为1。

其他外设的中断

下面,我将简要介绍其他常用外围设备以及它们可能提供的中断类型。

计时器

大多数微控制器至少有一个定时器。计时器包含与时钟信号一起工作的计数器,以提供经过时间的感觉。计时器的计数,以及计数器计数的速度,决定了“真实世界”的时间流逝了多少。

大多数计时器都可以配置为当计时器计数到特定值时产生中断。通常有两种情况。

第一种情况是溢出。如果计数器在向上计数,那么这就是它达到最大值的时候。如果它在倒数,那么这就是它达到最小值的时候。不同的微控制器在计数器达到溢位后的行为方式上有不同的设计。有时这种行为是可配置的。

第二种情况是计算特定于用户的值。不管引起中断的事件是什么,通常都会有一个在计时器中设置的标志,另一个在中断控制器中设置的标志,以及一个与来自计时器的中断相关联的中断向量。对于计时器,可能有多个中断向量,每一个都与不同的事件相关联。

串行通信

大多数微控制器也有串行通信,允许它们向其他设备发送消息。通常有数据缓冲区(有时一个用于发送,另一个用于接收)。

可能会有一个中断让CPU知道数据刚刚在接收缓冲区中接收。可能有一个中断,让CPU知道数据,如果放在发送缓冲区,已经成功发送,缓冲区准备接收新数据。

有些通信具有信令,设备必须首先确定谁可以发送消息。在这种情况下,可能会有一个中断让CPU知道另一个设备已经准备好接收或另一个设备打算发送数据。

模拟-数字转换器

有些微控制器配备了模数转换器,它可以在一个范围内采集变化的模拟电压,并将其转换为微控制器可以进一步处理的二进制表示。会话过程需要时间,因此通常会有一个中断,在CPU启动转换后告诉CPU转换已经完成。


在下一篇文章中,我们将通过比较一些熟悉的mcu来结束对微控制器中断的讨论。

特色图像使用的礼貌加雷思HalfacreeCC-BY 2.0].