![cover](https://img-blog.csdnimg.cn/direct/96d87e57d5e546ddbdc381895716ec06.png)
智能硬件(6)之通用引脚(GPIO)
小编带领大家学习的四大开源硬件和智能模块,他们之间是如何通信的,主控芯片是如何控制智能模块,做某些事情呢?有没有小朋友发起疑问呢?
这里,涉及到了特别重要的知识点,就是通用引脚,英文缩写是GPIO。所以的开源硬件(主控芯片)都有自己的特定引脚,这些引脚是主控芯片暴漏出来,唯一和外界通信的桥梁。
一、通用管脚概念
今天就来学习下,通用引脚的概念和用作。引脚:是单片机这种主控芯片特有的名字,可以理解它和我们人类的手脚相似,不管做什么事情,都是需要依靠它,下图针脚形状的都是引脚。
单片机的引脚会有很多,人类只有一副手脚,那是因为我们的手脚可以做很多复杂的动作,攥拳、握手、活动手指等。因为单片机的引脚功能相对人类能做的能做到的动作很有限,所以需要更多的引脚来完成复杂和大工作量的任务。
二、管脚功能和模式
通用引脚主要分为数字、模拟两种功能,又分为输出和输入两种模式:
①状态1一般等于系统电压,指的是当前的主控芯片采用的电压,esp32系列是3.3V的供电电压,所以系统电压就是3.3V。
②状态0一般等于GND,也就是接地,电压为0V。
③模拟电压是一个范围的值,输出的电压范围一般是 0 到 系统电压,输入同理。
这里面可能很多小朋友,对数字和模拟理解可能比较晦涩,这是需要大篇幅来讲解,会在后续的分享中,给大家一一讲解,今天主要掌握数字引脚的输出电压状态就可以啦。
上述的uart、i2c、spi、adc和pwm等功能都是通过管脚的输出和输入模式来实现的。
三、TTL逻辑电平
这里给大家补充一个概念,ttl电平,上述说状态1一般是系统电压,状态0一般是GND,其实这是不准确,这个是根据控制芯片的供电电压决定的。
比如:VCC(系统电压)5.0V,输入的状态1(Vih)电压指的是 大于2.0V就都可以认为是状态1;同理输入状态0(Vil)电压指的是小于0.8V就都是状态0;输出状态1(Voh)电压指的是 大于2.4V就可以;同理输出状态0(Vol)电压指的是 小于0.4V就可以。
单片机的输出电压状态1和0,是直接被拉满的,以3.3V供电电压esp32为例,状态1输出的就是3.3V,状态0输出的就是0V。
四、通用引脚如何实现 串口(uart)、i2c、spi等外设
通过上述的学习,我们了解到,引脚只能输出、输入状态0、1,那么他们是如果实现复杂的外协资源呢。
其实,在计算机领域,都是采用二进制编码实现任意的消息的,比如ascii编码。
我们的引脚只能有0、1两种状态,是不是正好映射我们的二进制 0、1呢,那我们想要实现特定的信息,是不是只需要让我们的引脚连续输出0、1数据,然后组合起来是不是就可以表示特定的字符,多个字符就是可以表示特定的意义呢。
没有错,我们的丰富的外设资源,uart、i2c、spi等,就是通过多个字符,组合来完成特定的意义,按照特定的协议标准,就形成了特定的的外设资源的总线协议了。
uart、i2c、spi这些资源在后续的分享中会讲解,大家这里只需要知道,我们的引脚是如果实现复杂消息通信的就可以了。
更多推荐
所有评论(0)