HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-ADC

本文介绍了ADC模数转换器的基本概念、技术参数,详细阐述了ADC模块的相关API接口,包括读操作函数,以及在HDF框架下的ADCHDF驱动开发流程,包括接口层、核心层和适配层的作用。开发者指南包括实例化步骤和驱动调试建议。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、 ADC 概述

ADC(Analog to Digital Converter)模数转换器。现实生活中的所有属性(如温度、湿度、光照强度等)都是连续的,即为模拟信号;而单片机或电子计算机所能识别的信号都是离散的数字信号。此时,若是需要使用现实世界中的各种属性,就需要一种设备将模拟信号转换为数字信号,它就是模数转换器。

ADC 主要用于将模拟量转换成数字量,从而便于存储与计算等。

ADC 的主要技术参数有:

  • 分辨率:分辨率指的是 ADC 模块能够转换的二进制位数,位数越多分辨率越高。例如采集的电压范围是 0-5V,那么 8bit 的 ADC 的最小分辨率就是 5/2^8=0.0195V。
  • 转换误差:转换误差通常是以输出误差的最大值形式给出。它表示 A/D 转换器实际输出的数字量和理论上的输出数字量之间的差别。常用最低有效位的倍数表示。
  • 转换时间:转换时间是指 A/D 转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。

ADC物理连线示意图

请添加图片描述

二、ADC 模块相关API

头文件路径:base/iothardware/peripheral/interfaces/inner_api/iot_adc.h

接口函数描述
hi_u32 hi_adc_read(hi_adc_channel_index channel, hi_u16 *data, hi_adc_equ_model_sel equ_model,hi_adc_cur_bais cur_bais, hi_u16 delay_cnt);ADC读操作
hi_float hi_adc_convert_to_voltage(hi_u16 data);将ADC读取到的码字转换为电压

三、接口调用实例

//代码功能:定义 GPIO_04 号口为 ADC1 模式以及 ADC 相关参数,最后进行读操作。

#include "iot_adc.h"
// HI_ADC_CHANNEL_1 通道编号
// HI_ADC_EQU_MODEL_8 平均算法模式
// HI_ADC_CUR_BAIS_DEFAULT 模拟电源控制,自动识别模式
// 0xff 采样延迟时间,取值为 0~0xFF0 之间
hi_adc_read(HI_ADC_CHANNEL_1,&data, HI_ADC_EQU_MODEL_8, HI_ADC_CUR_BAIS_DEFAULT,0xff);

四、ADC HDF驱动开发

在HDF框架中,同类型设备对象较多时(可能同时存在十几个同类型配置器),若采用独立服务模式,则需要配置更多的设备节点,且相关服务会占据更多的内存资源。相反,采用统一服务模式可以使用一个设备服务作为管理器,统一处理所有同类型对象的外部访问(这会在配置文件中有所体现),实现便捷管理和节约资源的目的。ADC模块即采用统一服务模式(如图2所示)。

ADC模块各分层的作用为:

接口层:提供打开设备,写入数据,关闭设备的能力。

核心层:主要负责服务绑定、初始化以及释放管理器,并提供添加、删除以及获取控制器的能力。

适配层:由驱动适配者实现与硬件相关的具体功能,如控制器的初始化等。

在统一模式下,所有的控制器都被核心层统一管理,并由核心层统一发布一个服务供接口层,因此这种模式下驱动无需再为每个控制器发布服务。

图 2 ADC统一服务模式结构图

请添加图片描述

4.1、开发步骤(待续…)

ADC模块适配包含以下四个步骤:

  • 实例化驱动入口
    • 实例化HdfDriverEntry结构体成员。
    • 调用HDF_INIT将HdfDriverEntry实例化对象注册到HDF框架中。
  • 配置属性文件
    • 在device_info.hcs文件中添加deviceNode描述。
    • 【可选】添加adc_config.hcs器件属性文件。
  • 实例化核心层接口函数
    • 初始化AdcDevice成员。
    • 实例化AdcDevice成员AdcMethod。实例化AdcDevice成员AdcMethod,其定义和成员说明见接口说明。
  • 驱动调试
    • 【可选】针对新增驱动程序,建议验证驱动基本功能,例如挂载后的测试用例是否成功等。

坚持就有收获

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻下一城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值