数据采集,是指从传感器和其他待测设备等模拟和数字等被测单元中自动采集非电量或者电量信号,送到上位机中进行分析和处理。
数据采集实现物理世界到数据世界的基础转换。
数据采集基础
数字与模拟转换ADC/DAC
ADC:Analog to Digital Converter
DAC:Digital to Analog Converter
计算机的世界由二进制0和1组成。
在单片机当中通常存在模拟外设ADC(模数转换器)和DAC(数模转换器)来进行数字信号和模拟信号之间的转换。
- 一个ADC接口通常可以作为输入接口将外界的模拟信号转换为数字信号在单片机内进行使用,例如接口的额定电压为3.3V,则接口可接受的电压范围为0~3.3V。若此ADC为2bit,则可以表示四个不同的电压等级。
- 一个DAC接口与ADC接口的作用相反,可以将单片机内的数字信号输出为一个模拟信号来进行使用,若不使用DAC对电压进行分级,接口只能表示低电平或高电平。
2-bit | 电压值 |
---|---|
00 | 0V |
01 | 1V |
10 | 2V |
11 | 3V |
数据采集与通信
数据采集需要先在传感器和上位机之间建立通信链路,二者建立通信的媒介为信道。
按数据传递的方向与时间关系,通信方式可分为单工、半双工和全双工三种。
- 单工通信是指数据只能单方向传输的工作方式,因此只占用一个信道。
- 半双工通信是指数据通信双方都能收发消息,但不能同时进行收和发的工作方式。
- 全双工通信是指通信双方可同时进行收发消息的工作方式。一般情况下,全双工通信的信道必须是双向信道。
通信方式分类
在数字通信中,按数字信号编码排列的顺序可分为并行传输和串行传输。
串行传输是数字序列以串行方式一个接一个地在一条信道上传输。
- 通常,远距离传输都采用这种方式。
并行传输是将代表信息的数字序列以成组的方式在两条或两条以上的并行信道上同时传输。
- 并行传输的优点是节省传输时间,但需要传输信道多,设备复杂,成本高,故较少采用,一般适用于计算机和其他高速数字系统,特别适用于设备之间的近距离通信。
按通信对象数量的不同,可分为点到点通信、点到多点通信和多点到多点通信三种。
按同步方式不同,可分为同步通信和异步通信。
数据采集接口
通用可编程I/O接口GPIO
General Purpose Input/Output
GPIO用于控制结构简单的外部设备或者电路。这些设备或电路通常有开/关两种状态。
以STM32单片机为例,通常GPIO支持四种输入模式(浮空输入、上拉输入、下拉输入、模拟输入)和四种输出模式(开漏输出、开漏复用输出、推挽输出、推挽复用输出)。
GPIO一般支持三种最大翻转速度(2MHz、10MHz、50MHz)。
UART总线接口
Universal Asynchronous Receiver / Transmitter
UART(通用异步收发传输器)是一种串行异步收发协议,是将传输数据的每个字符一位接一位地传输:
- 将数据的二进制位一位一位地进行传输。
- 在UART通信协议中信号线上的状态位高电平代表"1",低电平代表"0"。
- 当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。
I2C总线接口
Inter-Integrated Circuit Bus
I2C总线是由Philips飞利浦公司开发的一种简单、双向二线制同步串行总线,半双工通信,以字节为单位传输数据,常用于微控制器与外设之间的连接。
每一个设备都可以作为主设备或者从设备,每一个设备都会对应一个唯一的地址。
下图中:
- Vdd为供电
- SDA为串行数据线
- SCL为串行时钟线
SPI总线接口
串行外设接口(Serial Peripheral Interface Bus
,SPI)
又叫序列周边接口。
是一种四线制同步串行外设接口,可以使MCU与各种外围设备以串行方式进行通信以交换信息:
- 用于EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和和数字信号解码器之间。
- 以主从方法进行数据通信,提供时钟的为主设备(Master),接收时钟的为从设备(Slave)。
DMA接口
直接内存访问(Direct Memory Access
,DMA)
作用是无需经过CPU而进行数据传输。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传输数据的通路,能使CPU的效率大大提高。
DMA控制器(DMAC)可代替CPU驱动产生数据访问的地址,并执行数据的读/写操作。
DMA主要由硬件实现,是外设和内存之间交换数据的主要方式之一
系统中断
中断是指计算机运行过程中,出现某些意外情况,需要主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断分类
硬件中断(Hardware Interrupt
):
- 可屏蔽中断(
maskable interrupt
)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。 - 非可屏蔽中断(
non-maskable interrupt,NMI
)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。 - 处理器间中断(
interprocessor interrupt
)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。 - 伪中断(
spurious interrupt
)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。
软件中断(Software Interrupt
):
- 软件中断。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(
Kernel Mode/Ring 0
)的子例程,常用于实现系统调用(System call
)。
数据采集接口协议
基于数据采集的接口,通过连接通信组件,可以形成满足不同数据采集业务场景的接口协议,主要包括有线、无线通信技术。
有线传输方式主要有电线载波、同轴线、开关量信号线、RS-232串口、RS-485、USB、CAN等。
物联网的无线通信技术主要分为两类:
- 一类是RFID、NFC、红外、蓝牙、ZigBee、Wi-Fi等短距离通信技术。
- 一类是LPWAN(
low-power, wide-area network
,低功耗广域网)通信技术,即广域网通信技术,专为低带宽、低功耗、远距离、大量连接的物联网应用而设计。
缩略语
INTR:interrupt require//中断请求
NMI:non maskable interrupt//不可屏蔽中断
IRQ:interrupt request//中断请求
EEPROM:electrically erasable programmable read-only memory//带电可擦可编程只读存储器
- EEPROM是一种掉电后数据不丢失的存储芯片。EEPROM可以在电脑上或专用设备上擦除已有记录,重新编程。一般用在即插即用。
- EEPROM是可以擦写的,但门槛比较高,需要专门的设备,因此对普通用户来说,是只读的
- 维基百科:电子式可擦除可编程只读存储器
- 附上群友大佬的博文链接:https://blog.csdn.net/vagrant0407/article/details/129462005
ADC:analog to digital converter//模数转换器
DAC:digital to anaog converter//数模转换器
DMA:direct memory access//直接内存访问
DMAC: DMA controller//DMA控制器
是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。