dsPIC30F实现高精度数据采集

为提高数据采集系统的采集精度和转换速度,设计基于ad7862和dstpic30f6010a的数据采集系统,详细介绍ad7862和dspic30f6010a的特点和性能;并介绍该系统硬件部分和软件部分,实践证明,该系统取得很好的效果。本系统还采用sd卡作为存储器,实现数据存储功能。
引言:
  本采集系统采用adi公司生产的12位模数转换器ad7862,它是一款高速、低功耗、双核12位模数转换器。能够满足系统对采样精度和采样速度的要求。控制器件采用dspic30f6010a数字信号控制芯片,它是microchip公司生产的高性能16位数字信号控制器,内核包含一个dsp引擎,从而能够显著增强系统的运算和吞吐能力。
在某些数据采集系统中,不仅对数据采集系统的精度和实时性提出要求,而且要求其具有数据存储功能,为了实现存储功能,本系统使用sd卡。sd卡(seeure digital memory card)为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它具有存储容量大,速度快等特点,被广泛用于便携式装置上。
1 ad7862简介
ad7862是一款高速、低功耗、双核12位模数转换器(adc),采用+5 v单电源供电。该器件内置2个4μs逐次逼近型adc、2个采样保持放大器、1个+2.5 v内部基准电压源和1个高速并行接口。其内部结构如图l所示。
由于ad7862内置2个adc和2个采样保持放大器,可以对2路模拟输入信号进行同时采样和转换,从而保留这两个模拟输入信号的相对相位信息。这一功能适用在逆变器采集系统中。它共有4个模拟输入,分成2个通道(a和b),通过ao输入选择通道。每个通道的2个输入(va1与va2或vb1与vb2)使用不同的adc和采样保持放大器可同时进行采样和转换。该器件可接收的模拟输入范围为±10 v(ad7862~10)、±2.5 v(ad7862-3)和o~2.5 v(ad7862-2)。本系统采用ad7862-10。模拟输入均具有过压保护,允许输入电压分别达到±17 v、±7 v或+7 v而不会造成损坏。
转换开始信号低电平有效,同时将2个采样保持放大器置于保持状态,并启动两个输入转换操作。转换开始后,置busy信号为高电平,表示转换还未结束,当再次回到低电平时,表示转换结束,此时便可读取2个通道的转换结果。实际应用中,先置为低电平一段时间,然后检测busy信号,当为低电平时,就开始读取转换结果。转换结束后的第一次读取操作访问va1或vb1的结果,而第二次读取操作访问va2或vb2的结果,具体取决于多路复用器选择ao是低电平还是高电平。ao为低电平时,读取va1或va2;a0为高电平时,读取vb2或vb2。该器件的时序如图2所示。
2 dspic30f6010a简介
16位dspic30f6010a数字信号控制器是16位处理器系列。它是dspic30f电机控制和电源转换系列,用于支持电机控制应用,也适用于不间断电源、逆变器、开关电源及相关设备。
内部有144 kb片上闪存程序空间,8 kb片上数据ram,4 kb非易失性数据eeprom:工作速度最高可达30mi/s;5个16位定时器/计数器;可选择将16位定时器配对组成32位定时器模块;16位捕捉输入功能;8个pwm输出通道:具有互补或独立输出模式、边沿对齐模式和中心对齐模式,4个占空比发生器、互补模式的死区时间控制:2个uart、2个spi、1个i2c总线和2个can总线:最大i/o引脚数为68个。
dspic30f601oa处理器采用改进的哈佛架构,具有独立的程序和数据存储器总线。在执行访问数据ram当前指令的同时可从程序存储器中预取下一条指令,这就加快了处理速度。数据空间为64 kb,大多数指令将其看作一个线性地址空间。当使用某些dsp指令,如dsp乘法指令时,该存储空间被分成2块,分别称为x和y数据空间。因此,这些dsp指令支持双操作数读操作,即,同一条指令可同时从x存储空间和y存储空间中取数据。
3 系统设计
本采样系统主要分为硬件部分设计和软件部分设计。硬件部分是以dspic30f601oa为控制和处理核心,去控制ad7862和sd卡来实现数据的高精度、实时采集和实时存储。信号的高精度和实时模数转换由ad7862来实现,数据的存储由控制器通过spi接口访问sd卡来实现。软件部分主要由控制器i/o引脚的初始化、模数转换开始控制、数据读取和数据存储等部分组成。
3.1 硬件部分实现
数据采集系统以16位dspic30f6010a数字信号控制器作为系统的控制和数据处理核心,产生控制信号控制ad7862实现高精度的实时数据采集。ad7862共需4个控制信号,分别为、ao、和。为转换开始控制信号,a0为读取通道选择控制信号,它控制该通道进行a/d转换和读取其a/d转换结果。为片选信号,低电平有效,在本系统中使其直接与地相连。为读控制信号,低电平有效,当为低电平时可以按顺序读取va1、va2或vbl、vb2上的a/d转换结果。通过以上分析共需3个控制信号,即dspic230f6010a的i/o接口rb8、rb9和rbl0,通过软件产生。
ad7862还产生busy信号,通过它告知控制器a/d转换完成,可以读取结果。dspic30f6010a的中断控制器支持5种外部中断请求信号:in-t0~int4。这些输入是边沿敏感的;它们要求一个由低到高或由高到低的跳变以产生一个中断请求。intcon2寄存器具有5个位(intoep~in-t4ep),用于选译边沿检测电路的极性。本系统中采用由高到低的跳变产生中断请求,blisy控制信号与dspic30f60loa的into相连。数据转换结果通过dspic30f60ioa的i/o口,读到控制器内部。ad7862与控制器的电路连接图如图3所示。
3.2 软件部分实现
软件部分流程如图5所示,系统启动后先初始化i/o、sd卡、ad7862和设置int0中断,为a/d采样和数据存储做准备。由于ad7862有两个通道。需对这两个通道分别进行a/d转换,先采样a通道后采样b通道,具体是哪个通道由ao决定,也就是控制器的rb8引脚。
数据采集过程中要获知a/d转换已结束的方法有:
1)定时 使用定时器,转换开始后过一段时间读取转换结果;
2)扫描 扫描busy引脚,当变为低电平时,即可知转换结束,读取转换结果;
3)中断 busy作为中断信号,输入到into中,并设置为从高到低触发中断,当转换结束后,busy信号由高变低,触发中断。
本系统采用第3种方法,即中断方法。中断服务子程序如图6所示,进入中断服务子程序后,首先清中断标示,然后分两次读取,即vx1和vx2(x代表a或b),读完之后对数据进行处理并存储到sd卡相应位置中,最后置采样结束标示。
4 结束语
实践表明,通过对模数转换器件的正确使用,完全可以达到很高的采样精度,并能满足系统实时性的需要。通过外扩模拟电路部分,可以用于各种高精度高速的数据采集存储系统。

便携式农药检测仪的性能
PL5500 QFN4x4-32 双向升降压转换器
Redmi K20 Pro在北京正式发布首发已超过20万台
气浮轴承的特点与应用
MP3-MP6播放器探秘(2)
dsPIC30F实现高精度数据采集
大华多功能杆塔解决方案的功能特点及应用范围
Github上高星可产品化开源项目--闭环电机驱动器
电气化驱动连接器的新价值
空间光调制器编程技巧
【节能学院】如何实现安全、智能的配电房运维
美光携手树莓派带全民接触计算器
转载|AI算力芯片,智能时代的普罗米修斯之火丨iNED观察
基于GMSK差分解调仿真(2)
改变我们生活的锂离子电池 | 第四讲:什么是全固态电池?实用化的可能性有多大?
舰载无人机测控系统关键技术大盘点
滤波器一些问题的补充
佳明Vivoactive3Trainer评测 针对运动设计的入门级运动腕表
互联网造车成功率很低,郭台铭劝行业“守本分”?
诺基亚预计12月推出4K电视 与电商合作销售