订阅业界RSS CSDN首页> 业界

了解下一个物联网或机器人项目的GPIO细节

发表于2019-09-05 09:35| 来源Qualcomm| 作者Qualcomm

摘要:通用输入输出(GPIO)是指电子设备和电路板上一个或多个未放式数字IO引脚。“通用”顾名思义就是指,这些未放式引脚可用于各种目的,最常见的是收集传感器的输入信息或判断输出信号,控制其他设备上的功能。

通用输入输出(GPIO)是指电子设备和电路板上一个或多个未放式数字IO引脚。“通用”顾名思义就是指,这些未放式引脚可用于各种目的,最常见的是收集传感器的输入信息或判断输出信号,控制其他设备上的功能。鉴于这种开放性,GPIO引脚通常也被称为“未使用的引脚”,其目的/功能通常需要由开发者决定[1]。

GPIO可见于许多用例——从执行器或加热器等切换设备,到读取外部设备开关的状态,甚至实现各种通信协议。这样的灵活性也使它在嵌入式系统中发挥重要的作用,比如物联网设备和机器人技术。

下面我们将详细探讨GPIO的特性以及一般的使用方法。

GPIO的特点

制造商往往会通过以下方法暴露GPIO引脚:

• “板级GPIO”,由电路板上的低速扩展连接器组成,也可能包含用于其他目的的引脚;或

•   直接集成在微控制器上(即芯片上部分或全部引脚分配用作GPIO)。

Qualcomm Technologies大多数片上系统都是由提供板级GPIO的OEM集成到电路板上的。比如,搭载Qualcomm® 骁龙™ 400系列处理器的DragonBoard 410c开发板拥有40针低速扩展连接器,其中12个引脚分配给GPIO,还有其他引脚用作电源、接地和其他接口。

GPIO引脚通常用于读取和写入信号,而不是用于供电[2]。这些引脚的工作电压是3.3V,3.3V左右的电压电平即表示开、真或1(取决于系统),而接近0V的电压电平表示关、假或0。将这些值读/写到GPIO引脚的方法也因器件制造商而异,可以是内存映射IO或特定硬件级汇编指令,也可以是以C和Python等语言编写的高级命令或函数。

开发者可以使用设备制造商提供的API,利用GPIO引脚执行以下操作:

• 启用/禁用和读/写。

• 执行去抖动和边缘检测等高级功能。

• 使用脉冲宽度调制输出信号,提供类似模拟的信令(比如,调光等线性操作)。

• 使用GPIO信令实现硬件层通信协议,用于其他类型的接口,如I2C、SPI,甚至是使用位拆裂 (Bit Banging)的并行总线。

• 将输入引脚视为中断请求(IRQ)。

使用GPIO

开发者可以使用GPIO执行以下部分或全部任务:

• 确定可用的物理GPIO引脚及其编号[3]。

• 确定使用哪些GPIO引脚,以及是否需要其他引脚,如低压电源和接地。

• 将引脚连接到外部设备。

• 以编程的方式打开特定的GPIO引脚和/或指定方向(输出或输入)。

• 指定API暴露的其他选项,比如使用GPIO进行边缘检测,或者设置中断处理程序(如果引脚用于IRQ)。比如,SIMCom 9206物联网SDK包括一个Qualcomm Technologies API,具备通过GPIO处理IRQ的功能[4]。

• 读取或写入引脚。

完成这些任务后,只需实现业务逻辑就可以处理GPIO信号了。

结论

GPIO是一种丰富的数字IO机制,嵌入式系统可通过该机制获取有关现实世界的信息并控制其他设备。讨论了这么多有关GPIO的信息之后,现在再来看看支持GPIO功能的部分Qualcomm Technologies平台和开发套件:

• Qualcomm® Robotics RB3 Platform

• Quectel LTE OPEN EVB

• SIMCom LTE IoT Development Kit

此外,不妨再看一下我们的物联网商品推车项目,这个项目结合使用了GPIO和传感器,检测商品库存变化。

参考

•  [1] 请注意,在某些情况下,如果有一组GPIO引脚,其中部分可能已预先分配用于某些功能,而其他引脚仍可供开发者使用。

•  [2] GPIO确实有足够的功率供简单的电子元件使用,比如LED。

•  [3] 注:板级GPIO配置通常有两种类型的引脚编号命名:与物理引脚的编号和布局相对应的板级命名,或者由控制引脚信号的芯片定义的芯片特定编号。

•  [4] 请参阅此SDK qapi文件夹中的文件qapi_gpioint.h。


 更多Qualcomm开发内容请详见:Qualcomm开发社区