版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制器原理及应用
PrincipleAndApplicationOfMicrocontroller
第五章GPIO的基础知识1C2000的GPIO模块2GPIO的软件架构3应用实例423
5.1.1
GPIO输出驱动器
5.1.2
GPIO输入驱动器5.1.3GPIO引脚管理
5.1GPIO的基础知识
GPIO是微控制器的数字输入输出模块,可以实现微控制器与外部设备的数字交换。数字输入功能主要是将外部设备的开关量信号转换成CPU可读取的数字信号“1”、“0”,从而获知外部设备的运行状态,如按键状态检测;数字输出功能则是将CPU的数字控制信号“1”、“0”转换成引脚高、低电平信号,从而实现对外部设备运行状态控制,如LED、数码管、继电器控制等。45.1GPIO的基础知识
GPIO的典型内部结构如图所示,主要由保护二级管、输入驱动器、输出驱动器、输入数据寄存器、输出数据寄存器等组成。其中输入和输出驱动器是GPIO结构的核心部分,决定了输入和输出的不同模式。55.1GPIO的基础知识5.1.1GPIO输出驱动器GPIO输出驱动器主要由多路选择器、输出控制和开关组成。1.多路选择器:多路选择器根据用户配置决定该引脚是用于通用GPIO还是复用功能输出。通用输出时,该引脚的输出信号来自于GPIO输出数据寄存器。复用功能输出时,该引脚输出信号来自于片上外设,并且一个引脚输出可能来自多个不同外设。同一时刻,一个引脚只能使用一种输出功能。2.输出控制:根据数字电路输出电平的“强弱”,可将IO输出分为图腾柱输出、开漏输出、下拉电阻输出3种。65.1.1GPIO输出驱动器(1)图腾柱输出:图腾柱、推挽/推拉、Push-Pull指的是同一种电路。下图是图腾柱输出电路简图,图中的开关是受控电子开关,可以由三级管或场效应管构成。此电路输出为强1,强0,或高阻态。推挽输出既提高电路的负载能力,又提高开关速度,适用于输出VSS和VCC的场合。7a)输出强1:上管导通,下管截止,OUTPUT输出高电平;b)输出强0:上管截止,下管导通,OUTPUT输出低电平;c)高阻状态:上管截止,下管截止,OUTPUT输出,对后级电路没有影响。5.1.1GPIO输出驱动器(2)开漏输出:与图腾柱方式相比,只有下管受控,上管断开或没有上管。对于与Vss相连的MOS管来说,其漏级是开路的。当内部输出“0”时,。下图所示为上拉电阻输出,该电路为强0弱1电路。下管导通,引脚相当于接地,外部输出低电平;当内部输出“1”时,下管截止,由于上管也截止,外部输出既不是高电平,也不是低电平,而是高阻态。如果想要外部输出高电平,必须接有上拉电阻85.1.1GPIO输出驱动器a)强0输出:下管导通时,无论OUTPUT接什么负载,均输出低电平;b)弱1输出:下管截止时,如果OUTPUT接的是高阻负载,输出为高电平。对于其他负载,则需要根据负载和上拉电阻的分压关系来计算。95.1.1GPIO输出驱动器(3)下拉输出:下图为下拉电阻输出,该电路为强1弱0电路。与图腾柱方式相比,只有上管受控,没有下管。a)强1输出:上管导通时,无论OUTPUT接什么负载,均输出高电平;b)弱0输出:上管截止时,OUTPUT输出电平取决于负载。如图(c)所示,器件2能否正确识别输入为0电平,取决于R1和R2的比值,以及器件2的1/0识别门限值。105.1.2GPIO输入驱动器
GPIO的输入驱动器主要由多路选择器、TTL肖特基触发器、带开关的上拉电阻和带开关的下拉电阻电路组成。
多路选择器根据用户配置决定该引脚是用于通用GPIO还是用于复用功能输入。通用输入时,该引脚的输入信号保存到GPIO输入数据寄存器。复用功能输入时,该引脚输入信号传给片上外设。
根据TTL肖特基触发器、上拉电阻和下拉电阻的开关状态,GPIO的输入方式有:(1)上拉输入,(2)下拉输入,(3)浮空输入115.1.2GPIO输入驱动器
(1)上拉输入:上拉电阻开关闭合,下拉电阻开关断开。当引脚外接高电平或不接外部电平时,输入为高电平;当引脚外接低电平时,输入为低电平。上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起到限流的作用。(2)下拉输入:上拉电阻开关断开,下拉电阻开关闭合。当引脚外部低电平或不接外部电平时,输入被拉到GND;当引脚外接高电平时,输入为高电平。(3)浮空输入:GPIO内部既无上拉电阻也无下拉电阻,处于浮空状态。引脚在默认情况下为高阻态,其电平状态完全由外部电路决定。这种设置在数据传输时用得比较多。125.1.3GPIO引脚管理
GPIO引脚管理包括引脚的初始化配置和引脚的读写操作。1.引脚初始化配置(1)引脚功能选择:对于高性能的MCU,IO口是高度复用的,除了当作通用IO口外,还可以当作其他外设引脚。所以,在使用前需要进行引脚功能的选择。(2)引脚输入输出确定:对集成电路来说,输入和输出需要两套电路来实现。有些芯片无需设置方向,由指令自动识别,如MCS-51单片机。目前主流控制器都需要预先设定引脚方向。135.1.3GPIO引脚管理(3)使能上拉/下拉电阻:很多MCU具有内部上拉电阻或内部下拉电阻功能,根据需要可以允许或禁止该功能。(4)输入信号滤波功能:有些MCU的IO口还具有输入信号的滤波功能,对外部引脚信号进行滤波,过滤有害的噪声信号。(5)中断触发功能:IO口输入信号可以作为触发外部中断的信号源。(6)其他功能。145.1.3GPIO引脚管理2.引脚读写操作(1)读操作:IO口作为输入口时,CPU如何知道当前IO口的电平?当前IO口的电平通过输入驱动电路将“IO口数据寄存器”置位或复位,这样CPU就能随时读取“IO口数据寄存器”的值。(2)写操作:CPU如何输出某一电平到IO口?CPU把数据写入“IO口数据寄存器”,然后会有相应的输出驱动电路将“IO口数据寄存器”的值传递到MCU的外部引脚处,使得引脚输出高电平或低电平。(3)由于引脚数量众多,一般都对引脚进行分组管理,读写操作可以按组进行,也可以单个引脚独立操作。15165.2.1GPIO概述
5.2.2GPIO内部结构5.2.3GPIO功能描述
5.2.4GPIO输入滤波
5.2C2000的GPIO模块5.2.1GPIO概述GPIO概述F28027有22个GPIO(DIO)、6个AIO(与AD采样通道共用引脚);GPIO引脚分组管理,分为端口A(由GPIO0-GPIO31组成)、端口B(由GPIO32-GPIO38组成)。GPIO引脚与最多3种外设功能引脚共用,使用前需要先进行模式选择。GPIO引脚可工作在上拉模式或推挽模式。GPIO引脚的电气特性:输入时,低电平电压范围为:(Vss-0.3)V~0.8V,高电平电压范围为:2V~(VDD+0.3)V。只有在该电压范围内,寄存器位才能被内部逻辑电路设置为逻辑“0”或逻辑“1”;输出时,逻辑“1”输出的电压最低为2.4V,逻辑“0”输出的电压最高为0.4V。175.2.2GPIO内部结构GPIO内部结构如右图所示(以端口A进行说明)。包括引脚功能选择、方向设置、上拉电阻使能、输入滤波、数据寄存器、外部中断信号源、低功耗模式唤醒源等。185.2.3GPIO功能描述(1)引脚功能选择:配置GPAMUX1/2寄存器,将引脚配置为GPIO,或者3个可用外设功能的一种。复位后所有GPIO引脚都配置为通用输入引脚,也就是输出为高阻状态。(2)GPIO方向选择:配置GPADIR寄存器,将引脚配置为输入或输出。(3)使能/禁止内部上拉电阻:配置GPAPUD寄存器使能或禁止内部上拉电阻。MCU上电复位后,对于可以作为ePWM输出的引脚(GPIO0~GPIO7,共8个引脚),内部上拉电阻默认被禁止。所有其他功能的GPIO引脚的上拉电阻默认使能。195.2.3GPIO功能描述(4)选择低功耗模式唤醒源:通过GPIOLPMSEL寄存器进行配置。可指定端口A的引脚用来把MCU从暂停或待机的低功耗模式唤醒。(5)外部输入中断源设置。选择外部中断的信号源:通过GPIOXINTnSEL寄存器进行配置。指定端口A一个引脚(GPIO0-GPIO31)作为外部中断XINT1,XINT2或XINT3的信号源。205.2.3GPIO功能描述(6)GPIO输出:可以通过GPASET、GPACLEAR、GPATOGGLE三种寄存器加载输出锁存器GPADAT(latch),或直接修改GPADAT(latch)的值,输出驱动电路将“GPADAT(latch)”的值传递到MCU的外部引脚处,引脚输出高电平或低电平。(7)GPIO输入:可以对外部引脚信号进行滤波,过滤有害的噪声毛刺脉冲(由GPACTRL、GPAQSEL1/2设置输入的采样周期和限定周期的数量),确认后的信号送到“IO口数据寄存器”GPADAT(read),CPU就能随时读取“GPADAT(read)”的值了。5.2.4节对输入滤波进行详细说明。215.2.4GPIO滤波输入*
CPU对输入引脚的信号确认有3种方式。非同步(异步输入)方式、同步时钟方式、采样窗方式。默认情况下,所有输入引脚信号被设置为同步于系统时钟SYSCLKOUT。(1)非同步(异步输入)
这种模式用于外设输入不要求同步或者外设本身自己完成同步的情况。这类外设有SCI、SPI和I2C。另外,ePWM模块的触发区信号也与SYSCLKOUT无关。异步模式在引脚配置为GPIO输入时无效,此时默认同步于SYSCLKOUT。225.2.4GPIO滤波输入(2)同步于SYSCLKOUT
引脚复位后,缺省的输入限定模式。该模式下,输入信号同步于系统时钟SYSCLKOUT。由于输入信号是异步的,因此它需要一个SYSCLKOUT周期的时间来确认输入信号的状态变化,不需要更多的时间来限定输入信号。(3)使用采样窗来限定
这种模式下,输入信号首先被同步到系统时钟SYSCLKOUT,然后输入信号状态持续时间达到指定数量周期数时,输入状态才允许改变。下图给出了采用采样窗的输入限定结构框图。这种模式需要用户指定两个参数:1)采样周期,2)采样次数。235.2.4GPIO滤波输入245.2.4GPIO滤波输入1)采样周期(Timebetweensamples)为了限定信号,在固定的周期进行输入信号采样。用户指定采样周期(也称采样间隔时间)是相对于系统时钟(SYSCLKOUT)而言的。采样周期由寄存器GPxCTRL中的8位QUALPRDn来指定。采样周期配置是针对一组(8个)输入信号进行的。2)采样次数(NumberofSamples)采样的次数可以选择为3次采样或者6次采样,通过寄存器GPAQSEL1、GPAQSEL2、GPBQSEL1和GPBQSEL2来设置。当连续3次或6次信号状态一样,输入状态的改变才会被确认,相应的寄存器值改变。255.2.4GPIO滤波输入3)总采样窗口宽度采样窗口就是输入信号被确认的时间长度。为了让输入限定能够检测到输入的变化,信号电平必须在采样窗口或者更长的时间内保持稳定。
下图说明了输入限定的工作过程,其中限定器的采样次数设定为6次,采样周期设定为2个系统时钟周期2×TSYSCLKOUT。也就是每2个系统时钟周期对外部引脚采样一次,必须连续采样到6次相同的信号,也就是最少10个时钟周期,电平才被确认下来。GPIO引脚的输入信号经过限定器后输出信号就对小毛刺A进行了滤波。265.2.4GPIO滤波输入27285.3.1寄存器及驱动函数
5.3.2驱动函数描述5.3.3软件思维导图
5.3GPIO的软件架构5.3.1寄存器及驱动函数
GPIO的硬件初始化配置都需要通过GPIO的寄存器实现:包括GPIO控制寄存器(GPIOControlRegisters)和GPIO中断和低功耗唤醒选择寄存器(GPIOInterruptandLowPowerModeSelectRegisters)。GPIO的读写操作通过GPIO数据寄存器操作(GPIODataRegisters)。下面3个表为寄存器及对应的驱动函数说明。
寄存器的详细信息参见数据手册。这里直接给出对应的驱动函数。295.3.1寄存器及驱动函数305.3.1寄存器及驱动函数315.3.2驱动函数描述
驱动函数通过结构体指针myGpio对寄存器进行读写操作。结构体指针使用方法参见第3章。GPIO模块的驱动函数由两个文件组成,分别是:F2802x_Component/source/gpio.c和F2802x_Component/include/gpio.h。下面给出了GPIO模块驱动函数的原型、功能描述、形参、返回值等说明,并给出了相应示例。325.3.2驱动函数描述335.3.2驱动函数描述345.3.2驱动函数描述355.3.2驱动函数描述365.3.2驱动函数描述375.3.2驱动函数描述385.3.2驱动函数描述395.3.3软件思维导图
GPIO模块的软件思维导图包括GPIO模块的时钟使能、引脚配置、功能配置、中断事件配置等。推荐按照以下步骤进行,可根据实际情况灵活使用。(1)引脚配置
由于引脚功能的复用性,使用前需要根据硬件系统的资源需求,统筹考虑把引脚当作GPIO或其他外设功能。优先考虑并预留外设功能的需求。步骤1:配置引脚功能(GPIO_setMode)。步骤2:使能/禁止内部上拉电阻(GPIO_setPullUp)。405.3.3软件思维导图步骤3:配置输入限定(GPIO_setQualification、GPIO_setQualificationPeriod)。步骤4:配置引脚方向(GPIO_setDirection)。(2)事件配置(可选项)步骤5:低功耗唤醒模式唤醒源(GPIO_lpmSelect)。步骤6:选择外部中断源(GPIO_setExtInt)。415.3.3软件思维导图42435.4应用实例-11.项目任务利用按键控制LED1灯的亮暗。要求按键按住时LED1亮,按键放开时LED1暗。在F28027LaunchPad实验板上完成实例验证。2.项目分析本实例在LaunchPadXL-TMS320F28027F实验板上实施。下图为按键和LED接口原理图,由图可知,按键对应引脚GPIO12,LED1对应引脚GPIO0。GPIO0为低电平时,LED1亮,GPIO0为高电平时,LED1暗。按键按下时,引脚GPIO12输入电平为高电平,按键放开时,引脚GPIO12输入电平为低电平。445.4应用实例-1453.部分程序代码软件工程包括引脚的初始化配置、按键识别程序、LED显示程序和主程序等。部分代码如下。5.4应用实例-1465.4应用实例-1475.4应用实例-1485.4应用实例-1494.文件管理
工程的文件管理方式参见第4章。在第4章软件工程架构的基础上,在用户层增加了KEY文件,包括KEY.c和KEY.h。在User_Dev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河北科技工程职业技术大学第二批选聘22人参考笔试题库附答案解析
- 2026广东东莞市道滘镇中心小学春季学期编外教师招聘2人参考考试题库及答案解析
- 2025河北唐山一中教育集团金枫叶学校招聘教师1人模拟笔试试题及答案解析
- 2026甘肃张掖市教育系统招聘公费师范生72人备考考试试题及答案解析
- 2026西藏日喀则市萨迦县选(聘)任社区工作者20人备考笔试题库及答案解析
- 2025河北秦皇岛市九龙山医院第二批选聘工作人员3人模拟笔试试题及答案解析
- 2025年甘肃省张掖市山丹县招聘城镇公益性岗位人员33人备考考试试题及答案解析
- 2025四川雅安石棉县佳业劳务派遣有限公司招聘石棉县应急救援指挥中心辅助人员1人备考笔试试题及答案解析
- 2025聊城阳昇嘉诚新悦(阳谷)物业管理服务有限公司公开选聘工作人员(5人)参考考试试题及答案解析
- 2025德州夏津县事业单位工作人员“归雁兴乡”参考考试试题及答案解析
- 2025年海北朵拉农牧投资开发有限公司招聘3人备考题库含答案详解
- 2025年港口物流智能化系统建设项目可行性研究报告
- T-CNHC 14-2025 昌宁县茶行业技能竞赛规范
- 薄壁零件冲床的运动方案设计模板
- 2025地球小博士知识竞赛试题及答案
- 2025贵州锦麟化工有限责任公司第三次招聘7人考试笔试模拟试题及答案解析
- 军人体能训练标准化手册
- 住院患者等待时间优化与满意度策略
- 2025水发集团有限公司社会招聘269人考试笔试参考题库附答案解析
- 2025公需课《人工智能赋能制造业高质量发展》试题及答案
- 强磁场对透辉石光催化性能影响的实验毕业论文
评论
0/150
提交评论