AD7490与PIC18F97J60构建高精度数据采集系统
2026/7/8 9:36:29 网站建设 项目流程

1. 项目背景与核心需求

在工业自动化、医疗设备和环境监测等领域,模拟信号的精确采集与数字化处理一直是关键环节。AD7490作为一款16位高速逐次逼近型(SAR)ADC,配合PIC18F97J60这款集成以太网功能的8位微控制器,能够构建一套高性价比的模拟信号采集与传输系统。这种组合特别适合需要远程监控的中低速信号采集场景,比如生产线上的温度传感器网络、分布式环境监测节点等。

传统的数据采集系统往往面临几个痛点:模拟信号传输距离受限、抗干扰能力差、布线成本高。而采用AD7490+PIC18F97J60的方案,通过将模拟信号就地转换为数字信号并通过以太网传输,可以有效解决这些问题。AD7490的16位分辨率在大多数工业场景中已经足够,其1MSPS的采样率也能满足多数中速信号的需求,比如电机振动监测(通常需要10-50kHz采样率)、过程控制(1-10kHz)等。

2. 硬件系统架构设计

2.1 核心器件选型分析

AD7490是ADI公司推出的16位1MSPS SAR ADC,采用5V单电源供电,功耗仅12.5mW(1MSPS时)。与ΔΣ型ADC相比,SAR架构在中等精度下能提供更快的转换速度,且不需要额外的滤波等待时间。其并行接口可以直接与微控制器的I/O端口连接,简化了硬件设计。在实际选型时,我们还需要考虑:

  • 输入范围:AD7490支持±VREF输入,通过配置可设置为0-VREF或±VREF/2
  • 参考电压:需要外接低噪声参考源,如ADR421(2.5V)或ADR439(3V)
  • 抗混叠滤波:根据奈奎斯特准则,前端需要配置截止频率≤500kHz的低通滤波器

PIC18F97J60是Microchip推出的集成10/100以太网MAC和PHY的8位MCU,具有128KB Flash和3.8KB RAM。其特点包括:

  • 内置以太网协议栈,支持TCP/IP、UDP、HTTP等协议
  • 80MHz工作频率,满足中等数据处理需求
  • 丰富的外设接口:SPI、I2C、UART等

2.2 电路设计关键点

原理图设计时需要特别注意以下几个部分:

模拟前端电路:

Vin ──┬───[10kΩ]───┐ │ │ [100nF] [100Ω] │ │ └───┬───┐ └─── ADC_IN+ │ │ GND [10nF]

这是一个简单的抗混叠滤波和信号调理电路,其中:

  • 10kΩ电阻限制输入电流
  • 100nF电容滤除高频噪声
  • 100Ω电阻与ADC内部采样电容形成RC网络,确保采样保持阶段充分建立

电源设计:

+5V ────[LDO]─── 3.3V (数字部分) │ └───[LC滤波]─── 5V (模拟部分)

建议采用双路LDO供电,数字和模拟部分独立。模拟电源需增加LC滤波(如10μH+10μF),参考电压源应远离高频数字信号线。

PCB布局要点:

  • 采用星型接地,模拟地和数字地在ADC下方单点连接
  • 模拟信号走线尽量短,避免平行于数字信号线
  • 在ADC电源引脚就近放置0.1μF去耦电容

3. 软件实现与配置

3.1 ADC驱动开发

AD7490通过并行接口与MCU连接,基本操作时序如下:

  1. 置CONVST为低启动转换
  2. 等待BUSY信号变高(转换开始)
  3. BUSY变低后读取数据

示例代码片段:

#define ADC_DATA_PORT PORTD #define ADC_BUSY_PIN PORTBbits.RB0 #define ADC_CONVST_PIN PORTBbits.RB1 uint16_t read_adc7490(void) { ADC_CONVST_PIN = 0; // 启动转换 while(ADC_BUSY_PIN); // 等待转换开始 while(!ADC_BUSY_PIN); // 等待转换完成 return ADC_DATA_PORT; // 读取结果 }

关键配置参数:

  • 采样率:通过定时器中断触发CONVST,最高1MHz
  • 输入范围:通过硬件连接选择单极性/双极性模式
  • 数据对齐:16位数据可直接读取

3.2 网络通信实现

PIC18F97J60内置以太网模块,使用Microchip提供的TCP/IP协议栈:

void ETH_Init(void) { MACInit(); // 初始化MAC层 IPSet(192,168,1,100); // 设置静态IP TCPSet(5000); // 监听5000端口 } void send_adc_data(uint16_t data) { TCPWrite("ADC:", 4); // 发送数据头 TCPWrite(&data, 2); // 发送ADC值 TCPFlush(); // 立即发送 }

实际应用中需要考虑:

  • 数据打包协议设计(建议采用简单的二进制格式)
  • 超时和重传机制
  • 多客户端连接管理

4. 系统优化与性能测试

4.1 噪声抑制技巧

实测中发现的主要噪声源及解决方案:

  1. 电源噪声

    • 在ADC电源引脚增加10μF钽电容+0.1μF陶瓷电容组合
    • 使用低噪声LDO如LT1763
    • 测试结果:PSRR提高15dB
  2. 数字开关噪声

    • 在并行数据线上串接22Ω电阻
    • 降低MCU I/O口驱动强度
    • 效果:ENOB从14.2位提升到15.1位
  3. 接地回路干扰

    • 采用隔离式DC-DC为模拟部分供电
    • 使用数字隔离器如ADuM1400隔离并行接口
    • 测试:共模抑制比提升40dB

4.2 采样精度测试方法

使用高精度信号源产生以下测试信号:

  • 直流:测量DNL和INL
  • 低频正弦波:进行FFT分析
  • 满幅阶跃:测试建立时间

典型测试结果:

测试项目条件结果
ENOB100kHz输入15.3位
THD1kHz, -0.5dBFS-92dB
通道间串扰相邻通道满幅输入-110dB

注意:实际精度受PCB布局影响很大,建议至少做两次原型迭代。在第一版设计中,我们发现将参考电压走线过长会导致约2LSB的误差。

5. 实际应用案例

5.1 工业温度监测网络

在某化工厂的温度监测系统中,我们部署了20个基于AD7490+PIC18F97J60的采集节点,每个节点连接4路PT100温度传感器。系统架构如下:

[PT100]──[信号调理]──[AD7490] │ [PIC18F97J60]──[以太网交换机]──[监控服务器]

关键参数:

  • 采样率:10Hz/通道(远高于温度变化速度)
  • 分辨率:0.01°C(16位ADC+软件滤波)
  • 数据传输:UDP协议,每5秒打包发送一次数据

实施中发现的问题及解决:

  1. 初期采用TCP协议导致网络拥堵 → 改用UDP+应用层确认
  2. 电磁干扰导致个别节点数据异常 → 增加磁环和共模扼流圈
  3. 长期运行出现偶发死机 → 看门狗定时器+自动复位电路

5.2 实验室振动分析仪

用于电机振动监测的便携式设备,采用AD7490采集加速度计信号:

[IEPE加速度计]──[恒流源]──[AD7490]──[PIC18F97J60]──[WiFi模块]

特殊处理:

  • 抗混叠滤波:8阶巴特沃斯,截止频率25kHz
  • 触发采样:利用ADC的BUSY信号触发外部中断
  • 数据预处理:在MCU端进行FFT运算,仅上传频谱数据

性能指标:

  • 动态范围:90dB
  • 频率分辨率:1Hz(基于1秒采样)
  • 电池续航:连续工作8小时

6. 进阶开发建议

对于需要更高性能的场景,可以考虑以下改进方向:

  1. 多片ADC同步采样

    • 使用AD7490的CONVST信号并联驱动多片ADC
    • 通过PIC的PMP接口并行读取数据
    • 应用场景:三相电流同步检测
  2. 低功耗优化

    • 利用AD7490的休眠模式(功耗降至1μA)
    • 动态调整采样率(如环境监测中可夜间降低采样率)
    • 实测:采用间歇工作模式可使整机功耗降低70%
  3. 边缘计算

    • 在MCU端实现简单算法(移动平均、阈值检测等)
    • 示例代码:
    #define WINDOW_SIZE 10 uint16_t moving_avg(uint16_t new_val) { static uint16_t buffer[WINDOW_SIZE]; static uint8_t index = 0; static uint32_t sum = 0; sum -= buffer[index]; buffer[index] = new_val; sum += new_val; index = (index + 1) % WINDOW_SIZE; return sum / WINDOW_SIZE; }
  4. 安全性增强

    • 启用PIC18F97J60的AES加密引擎
    • 实现简单的挑战-响应认证机制
    • 防止未经授权的数据访问

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询