第十三章 嵌入式输入输出设备

GPIO的原理与结构

  • GPIO(General Purpose I/O,通用输入/输出接口)也称为并行I/O(parallel I/O),是最基本的I/O形式
    • 有一组输入引脚或输出引脚组成,CPU对它们能够进行存取操作
    • 有些GPIO引脚能够通过软件编程改变输出/输出方向
  • 一个双向GPIO端口(D0)的简化功能逻辑图如图所示,图中:
    • PORT:数据寄存器
    • DDR(Data Direction Register):数据方向寄存器GPIO

A/D接口基本原理与结构

  • A/D转换器是把电模拟量转换为数字量的电路。实现A/D转换的方法有很多,常用的方法有:
    • 计数法
    • 双积分法
    • 逐次逼近法AD转换

计数式A/D转换器原理

  • 计数式A/D转换器电路的主要部件包括:比较器、计数器、D/A转换器和标准电压源。转换原理图如下所示:计数式AD转换原理
  • 特点
    • 结构简单
    • 但转换速度较慢
    • 特别是模拟电压较高时,转换速度更慢
    • 例如对一个8位A/D转换器,若输入模拟量为最大值,计数器要从0开始计数到255,做255次D/A转换和电压比较的工作,才能完成转换

双积分A/D转换器原理

  • 双积分式A/D转换法电路主要部件包括:积分器、比较器、计数器和标准电压源。转换原理图如下所示:

双积分AD转换原理

  • 工作原理:
    • 对输入模拟电压和参考电压进行两次积分,将电压变换成与其成正比的时间间隔
    • 利用时钟脉冲和计数器测出其时间间隔,完成A/D转换双积分AD转换积分原理
  • 双积分式A/D转换器的转换过程如下:
    • 对输入待测的模拟电压Vi进行固定时间的积分
    • 转换至标准电压VREF进行固定斜率的反向积分(定值积分),反向积分进行到一定时间,便返回起始值。对标准电压VREF进行反向积分的时间T正比于输入模拟电压,输入模拟电压越大,反向积分回到起始值的时间T越长,有Vi=(T2/T1)VREF
    • 用标准时钟脉冲测定反向积分时间(如计数器),就可以得到对应于输入模拟电压的数字量,实现A/D转换
  • 特点:
    • 具有很强的抗工频干扰能力
    • 转换精度高
    • 但转换速度慢
    • 通常转换速率小于10Hz,主要用于数字式测试仪表、温度测量等方面

逐次逼近式A/D转换器原理

  • 逐次逼近式A/D转换法电路主要部件包括:比较器、D/A转换器、逐次逼近寄存器和基准电压源

逐次逼近式AD转换器

  • 工作原理:
    • 实质上就是对分搜索法,和天平称重的使用原理一样
    • 在进行A/D转换时,由D/A转换器从高位到低位逐位增加转换位数,产生不同的输出电压,把输入电压与输出电压进行比较而实现
    • 首先使逐次逼近寄存器的最高位为1,这相当于取出基准电压的1/2与输入电压比较,如果在输入电压小于1/2的基准电压,则最高位置0,反之置1。之后,次高位置1,相当于在1/2得到范围中再作对分搜索,以此类推,逐次逼近
  • 特点:
    • 转换速度快
    • 转换精度高
    • 对N位A/D转换只需N个时钟脉冲即可完成
    • 可用于测量微秒级的过渡过程的变化,是目前应用最普遍的一种A/D转换方法

D/A接口基本原理与结构

  • D/A转换器是把输入的数字量转换为与输入量成比例的模拟信号的器件,简称为DAC(Digital to Analog Converter)
    • 在集成化的D/A转换器中,通常采用电阻网络实现将数字量转换为模拟电流
    • 然后再用运算放大器完成模拟电流到模拟电压的转换AD转换
  • 一个4位T型电阻网络DAC如图所示
    • 电路由R-2R电阻解码网络、模拟电子开关和求和放大电路构成,因为R和2R组成T型,故称为T型电阻网络DAC屏幕截图 2024-09-10 093116

分类

  • 电压输出型
    • 电压输出型D/A转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出
    • 直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速D/A转换器使用
  • 电流输出型
    • 电流输出型D/A转换器直接输出电流,但应用中通常外接电流-电压转换电路得到电压输出
    • 电流-电压可以直接在输出引脚上连接一个负载电阻,实现电流-电压转换
    • 但多采用的是外接运算放大器的形式
    • 大部分CMOS D/A转换器当输出电压不为零时不能正确动作,所以必须外接运算放大器
    • 在D/A转换器的电流建立时间上加入了外接运算放大器的延迟,D/A响应变慢
    • 运算放大器因输出引脚的内部电容容易起振,有时必须作相位补偿
  • 乘算型:
    • D/A转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型D/A转换器
    • 乘算型D/A转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化衰减的衰减器及对输入信号进行调制的调制器使用

指标

  • 分辨率(Resolution):
    • DAC电路所能分辨的最小输出电压与满量程输出电压之比称为DAC的分辨率
    • 最小输出电压是指输入数字量只有最低有效位为1时的输出电压
    • 最大输出电压是指输入数字量各位全为1时的输出电压
    • DAC的分辨率可用下式表示:分辨率=(1/(2n-1)) * 量程,式中,n表示数字量的二进制位数
  • DAC产生误差的主要原因有:
    • 基准电压VREF的波动
    • 运放的零点漂移
    • 电阻网络中电阻阻值偏差等原因
  • 转换误差
    • 转换误差重用满量程FSR(Full Scale Range)的百分数来表示
    • 例如,一个DAC的线性误差为0.05%,就是说转换误差是满量程输出的万分之五
    • 有时转换误差用最低有效位LSB(Least Significant Bit)的倍数来表示
    • 例如,一个DAC的转换误差是LSB/2,则表示输出电压的绝对误差是最低有效位(LSB)为1时输出电压的1/2
  • DAC的转换误差主要有失调误差满值误差
  • 失调误差
    • 输入数字量全为0时,模拟输出值与理论输出值的偏差
    • 在一定温度下的失调误差可以通过外部电路调整措施进行补偿,也有些DAC芯片本身有调零端进行调零
    • 对于没有设置调零端的芯片,可以采用外接校正偏置电路加到运放求和端
  • 满值误差
    • 又称增益误差,是指输入数字量全为1时,实际输出电压不等于满值的偏差
    • 调整运放的反馈电阻
  • DAC的分辨率和转换误差共同决定了DAC的精度
    • 要使DAC的精度高,不仅要选择位数高的DAC,还要选用稳定度高的参考电压源VREF和低漂移的运算放大器与其配合
  • 建立时间(Setting Time)
    • 是描述DAC转换速度快慢的一个重要参数,一般是指输入数字量变化后,输出模拟量稳定到相应数值范围所经历的时间
    • DAC中的电阻网络,模拟开关等是非理想器件,各种寄生参数及开关延迟等都会限制转换速度
    • 一般电流输出D/A转换建立时间较短,电压输出D/A转换建立时间较长
    • 实际上建立时间的长短不仅与DAC本身的转换速度有关,还与数字量变化范围有关
    • 输入数字量从全0变到全1(或者从全1变到全0)时,建立时间最长,称为满量程变化建立时间
    • 一般产品手册上给出的是满量程变化建立时间
  • 精度(Accuracy)
    • 绝对精度:在一个转换器中,对应于一个数字量的实际模拟输入电压和理想的模拟输入电压之差并非是一个常数。把它们之间的差的最大值,定义为“绝对误差”。通常以数字量的最小有效位(LSB)的分数值来表示绝对精度,如±1LSB。绝对误差包括量化精度和其他所有精度
    • 相对精度:是指整个转换范围内,任一数字量所对应的模拟输入量的实际值与理论值之差,用模拟电压满量程的百分比表示
    • 例如,满量程为10V,10位A/D芯片,若其绝对精度为±1/2LSB,则其最小有效位的量化单位为9.77mV,其绝对精度为4.88mV,其相对精度为0.048%
  • 量程
    • 量程是指所能转换的模拟输入电压范围,分单极性、双极性两种类型
    • 例如,单极性的量程为0 ~ +5V,0 ~ +20V;双极性的量程为-5 ~ +5V,-10 ~ +10V