星空外围最大网址

单片机基础全攻略:GPIO、定时器、串行通信及中断

出处:网络 发布于:2025-04-30 14:12:46

  有效使用的外设功能,对于实现电子产品的智能化和高效化至关重要。本文将详细介绍单片机的几个重要基础外设功能,包括 GPIO、定时器、串行通信和中断功能。
  1. GPIO(通用输入 / 输出端口)
  单片机由 CPU、内存及外设功能等部分组成。CPU 依据指令执行运算、数据读写和条件判断等操作,内存用于保存程序。而外设功能则是为了方便单片机使用而具备的各种功能。
  在 “输入 / 输出端口(I/O 端口)” 中,数字信号的输入 / 输出端口即 “GPIO(General Purpose Input/Output)”,也被称为 “通用 I/O 端口”。它是一种非常方便的数字信号输入 / 输出端口,可用于将数字输出的传感器值和的 ON/OFF 值传送到单片机的输入端,通过 LED 显示单片机的运算结果,以及输出驱动电机运行的信号等。
  GPIO 之所以被称为通用端口,是因为其引脚既可以用于输入,也可以用于输出。早期单片机的引脚固定用于输入或输出,而现在很多单片机可以自由设定引脚为输入或输出端口。例如,若 GPIO 端子有 8 个引脚,可以将 4 个引脚用于输入,另外 4 个引脚用于输出,也可以将 1 个引脚用于输入,其余 7 个引脚用于输出。
  在 GPIO 中,为了实现 CPU 和外部设备之间的数据交换,需要相互执行通过程序处理的数字值(0 或 1)与信号(电压的 LOW 电平或 HIGH 电平)的转换。以 RX63N 单片机的 GPIO 端口基础的寄存器为例,主要有以下几种寄存器:
  端口方向寄存器(PDR):决定引脚方向的寄存器,也称为 “方向寄存器”。
  端口输入数据寄存器(PIDR):输入时反映所使用的引脚状态的寄存器。当引脚输入 LOW 电平或者 HIGH 电平时,会将其转换为 0 或 1 的值并读取该转换结果。随着引脚状态的变化,数值也会相应改变,且不会保持读取时的值。
  端口输出数据寄存器(PODR):此寄存器保存用作输出引脚的输出数据。将 0 或 1 的值转换为 LOW 电平或 HIGH 电平信号并从引脚输出。由于可以像内存一样保持改写前的值,所以在改写前来自引脚的输出电压也将保持不变。
  2. 定时器
  在单片机中,与时间和时刻相关的处理十分常见,如时刻显示、计算过去的时间和设定一定的周期等。例如,需要知道 “该程序从运行开始过去了多少时间”,或者 “每秒输送 128 次信号” 等情况。此外,还经常用于 “等待指定的时间”、“经过指定的时间后将转移到下一个处理” 等场景。实现这些与时间和时刻有关处理的外设功能就是定时器。
  虽然我们也可以不使用外设功能(硬件)的定时器,而是通过软件来计算时间。例如,假设循环(重复)部分的处理需要费时 1μs(微秒,即 100 万分之 1 秒),那么该循环部分重复 1000 次需要花费 1ms(毫秒,即千分之 1 秒),重复 100 万次则需费时 1 秒,即通过 “等待经过循环处理所指定的时间” 来计算时间。然而,这种方法存在诸多弊端。CPU 会集中进行时间计算的处理,从而无法进行其他处理,而且只能计算一个周期的时间。在实际应用中,单片机需要对应 0.1 秒和 1/1024 秒等各种周期的时间,同时 CPU 的计时器频率(驱动速度)也会对软件产生影响。如果将 100MHz 驱动的 CPU 改为 50MHz,那么循环 1 次所需的时间将变为原来的两倍,因此需要对计算时间的软件进行修正。由于在管理上既花时间又容易出错,所以应极力避免通过软件来计算时间。
  在定时器中,“看门狗定时器(WDT)” 具有独特的作用。其名字中的 “Watchdog” 意为 “看门狗”,它的主要工作是监视程序是否出现失控。由 WDT 监视的程序通过事先将设定的值写入 WDT 后启动。WDT 每隔一定时间便减掉写入的值,当程序正常运行时,处理结束前会对 WDT 清零再结束。但是,如果程序失控(进入意料之外的重复状态且无法停止)时,写入 WDT 的值将小于 0(称为下溢),此时 WDT 会向 CPU 通知程序出现了失控。在不允许睡眠的重要系统中,单片机中搭载的 “看门狗定时器”―WDT 发挥了极其重要的作用。
  3. 串行通信
  单片机作为嵌入式设备的 “头脑”,需要与各种外围设备(输入输出设备等)连接。以传感器与单片机的连接为例,如果使用 “GPIO”,从传感器向单片机传送 8 位信号时需要使用 8 个引脚,这种传送模式被称为并行(并行通信)模式。然而,仅一个传感器就需要连接 8 个引脚,会造成资源的浪费。此时,可使用串行传送模式(串行通信)。“串行” 意味着直列或直线,在并行传送模式中需要 8 个引脚才能实现的通信,在串行传送模式中,由于可以以排成一直线的模式进行传送,所以仅需一个引脚就够了。
  由于在单片机内部是通过并行模式来进行信号交换,所以需要将通过串行模式传送来的信号转换为并行模式(串行并行转换)。相反,从单片机向与单片机串行连接的外围设备传送的信号也需要将信号从并行模式转换为串行模式(并行串行转换)。瑞萨电子的单片机 RX63N 是通过被称为 SCI(Serial Communication Interface,串行通信接口)的单元进行这些转换的。例如,使一个引脚对应 1 位的 char 型变量进行信息交换的是并行通信(Parallel communication),而一个引脚以时分(time pision)按每 1 位进行信息交换的就是串行通信(Serial Communication)。
  串行通信具有多种方式,其中易于使用的是 “异步通信模式”。仅需用信号线将单片机和外围设备连接起来便可使用,常用于单片机与动作监视器用的终端之间进行通信,以及单片机与无线 LAN 用模块进行通信。在异步通信模式的串行通信状态下,一字节的文字信息在 “开始位”(Start bit,意味着开始发送)和 “停止位”(Stop bit,意味着停止发送)之间发送。由此,无需 I2C(Inter - Integrated Circuit,内部)及 “SPI(Serial Peripheral Interface,串行外设接口)” 等时钟信号线(但在其他的串行通信模式中这些时钟信号线是必需的,以对发送和接收的时序进行同步)。另外,还可追加用于检查数据是否已正常发送的 “奇偶校验位(Parity bit)”。此通信方式所使用的通信用器件被称为 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器),在瑞萨电子的单片机 -- RX63N 中内置了支持此功能的 SCI(串行通信接口)。
  在异步通信中,能实现按 “单片机→外围设备” 或 “外围设备→单片机” 的方向确保数据信号专用的信号线时,被称为全双工通信。另一方面,将通过 1 根信号线来切换通信方向的方式称为半双工通信。全双工方式时需要 2 根信号线,可同时进行发送和接收;半双工方式时仅需 1 根信号线,但必须在发送和接收之间进行切换。
  4. 中断功能
  在单片机中,当等待某种状态达成时,一种常见的方法是对对象进行定期检查,这种处理被称为 “轮询”。例如,在等待向 GPIO(通用 I/O 端口)的输入从 0 变为 1 时,程序可以一定的间隔来检查 GPIO 的状态。轮询虽然是一种了解状态变化的简单方法,但是如果检查的频度低(间隔长)就会错过变化,如果频度过高(间隔短),即使查也查不到变化,会造成 “空耗”。由于轮询通过简单的程序便能完成处理,所以在掌握对象的变化频度时是有效的。但是,进行多次检查也会给单片机带来负荷,对功耗不利。
  因此,“中断功能” 应运而生。产生中断时,CPU 会暂时停止正在执行的任务,转而进行别的任务,当中途穿插进来的任务结束后,CPU 再返回处理原来的任务。例如,在工作的同时煮鸡蛋,把鸡蛋放入热水中后设置定时器并继续工作,10 分钟后定时器一响就把鸡蛋从热水中捞起。这时,定时器的鸣叫就是中断,而 “把鸡蛋从热水中捞起” 就是穿插进来的工作。
  中断产生于单片机内部和外部的各种设备。来自开关和等单片机外部的中断称为外部引脚中断,其中断信号由名为 “IRQ” 的引脚接收,再向中断控制器(在 RX63N 中被称为 “ICUb”)发出通知。IRQ 为 “Interrupt ReQuest” 的略称,意思为 “中断请求”。另外,来自单片机内部的定时器和 GPIO、串行通信设备 UART 等外设机器的中断被称为外部设备中断,中断信号直接从各外部设备通知中断控制器。
  在中断控制器中,各种设备的中断信号按照先来后到的顺序,以适当的顺序被传送到 CPU。而且,中断被设为无效的设备的中断信号将不会被传送到 CPU,也就意味着可以忽视(屏蔽)这些信号。CPU 按照从中断控制器接收到的指示来执行对应的程序(中断处理)。
  CPU 一旦接收到中断控制器的中断信号,首先将终止执行中的程序。然而,会自动保存 “从何处重启” 的出栈(POP)信息,这被称为 “进栈(PUSH)”。进栈结束后,将开始由中断执行的程序。该程序结束时,进栈信息将回送到 CPU,这种现象被称为 “出栈”。由于进栈和出栈都由 CPU 自动执行,因此程序设计者不必因顺序问题而费心。例如,通过 UART 执行串行通信时,经常监视字节是否被接收了会导致效率不佳。所以,多数情况下都对程序进行如下编程,即在信息送达时就会产生中断并进行适当的处理,另外,使定时器产生中断的情况也不在少数。进行 “经过了一定时间后该做什么” 这类处理时,应进行如下编程,即通过来自定时器的信号开始进行处理。
关键词:单片机

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//www.swtciz.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

我司代理分销MOS管,单片机,电源IC,驱动IC,PD协议IC等,专业提供各种电子元器件!
广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。 

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
 9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!