大部分的嵌入式系统都包括一些I/O设备,例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上模拟数据采样、用于保存数据的Flash/SD卡以及网络设备上的以太网接口等,都是嵌入式系统中容易找到的I/O设备例子。
本专栏主要是分享RT-Thread是如何对不同的I/O设备进行管理的。读完本专栏,我们会了解到如何从宏观角度去管理I/O设备,为我们在编写代码时有一个参考的管理模型,从而提高我们代码的复用性、降低耦合性,从而实现换硬件不动软件的目标。
1、《设备与驱动:I/O设备模型》
2、《设备与驱动:UART设备》
3、《设备与驱动:PIN设备》
4、《设备与驱动:ADC设备》
5、《设备与驱动:DAC设备》
6、《设备与驱动:CAN设备》
7、《设备与驱动:I2C设备》
8、《设备与驱动:PWM设备》
9、《设备与驱动:SPI设备》
目录
一、DAC简介
DAC(Digital-to-Analog Converter)指数模转换器。是指把二进制数字量形式的离散数字信号转换为连续变化的模拟信号的器件。在数字世界中,要处理不稳定和动态的模拟信号并不容易,基于DAC的特性,在各种不同的产品中都可以找到它的身影。与之相应的ADC(Analog-to-Digital Converter),它是DAC数模转换的逆向过程。DAC主要应用与音频放大、视频编码、电机控制、数字电位计‘开关电源输出控制等。
二、转换过程
DAC主要由数字寄存器、模拟电子开关、位权网络、求和运算放大器和基准电压源(或恒流源)组成。用存于数字寄存器的数字量的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其位权成正比的电流值,再由运算放大器对各电流值求和,并转换成电压值。DAC的转换过程如下图所示:
数模转换器是数字信号转换为模拟信号的系统,一般用低通滤波器即可实现。数字信号先进行编码,即把数字码转换成与之对应的电平,形成阶梯状信号,然后进行低通滤波。
三、分辨率
分辨率是指D/A转换器能够转换的二进制位数,位数越多分辨率越高。
四、转换时间
建立时间是将一个数字量转换为稳定模拟信号所需的时间,也可以认为是转换时间。D/A中常用建立时间来描述其速度,而不是A/D中常用的转换速率。一般地,电流输出D/A建立时间较短,电压输出D/A则较长。
五、转换精度
精度是指输入端加有最大数值量时,DAC的实际输出值和理论计算值之差,它主要包括非线性误差、比例系统误差、十条误差。
六、线性度
理想的D/A转换器是线性的,实际上是有误差的。线性度是指数字量化时,D/A转换器输出的模拟量按比例关系变化程度。