基于AD7862和dsPIC30F的数据采集系统
2010-07-13李媛媛杨鲁发张大磊
李媛媛, 杨鲁发, 张大磊, 戴 舒
(1.华北电力大学 电子与通信工程系,河北 保定 071003;2.秦皇岛职业技术学院 机电工程系,河北 秦皇岛 066100)
在现代控制系统中,数据采集系统就像控制系统的“眼睛”和“耳朵”一样,成为控制系统不可或缺的重要部分。它是各种控制系统获取信息的一种重要途径。由于数据采集系统的精度和实时性对于整个控制系统的性能至关重要[1],所以必须合理设计使其能提供预期的采样速度、达到一定的转换精度,并应该做到电路简单、抗干扰性能强[2]。本采集系统采用ADI公司生产的12位模数转换器AD7862,它是一款高速、低功耗、双核12位模数转换器。能够满足系统对采样精度和采样速度的要求。控制器件采用dsPIC30F6010A数字信号控制芯片,它是Microchip公司生产的高性能16位数字信号控制器,内核包含一个DSP引擎,从而能够显著增强系统的运算和吞吐能力。
在某些数据采集系统中,不仅对数据采集系统的精度和实时性提出要求,而且要求其具有数据存储功能,为了实现存储功能,本系统使用SD卡。SD卡(Secure Digital Memory Card)为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它具有存储容量大,速度快等特点,被广泛用于便携式装置上。
1 AD7862简介
(ADC),采用+5 V单电源供电。该器件内置2个4 μs逐次逼近型ADC、2个采样保持放大器、1个+2.5 V内部基准电压源和1个高速并行接口[3]。其内部结构如图1所示。
图1 AD7862内部结构
由于AD7862内置2个ADC和2个采样保持放大器,可以对2路模拟输入信号进行同时采样和转换,从而保留这两个模拟输入信号的相对相位信息。这一功能适用在逆变器采集系统中。它共有4个模拟输入,分成2个通道(A和B),通过A0输入选择通道。每个通道的2个输入(VA1与VA2或VB1与VB2)使用不同的ADC和采样保持放大器可同时进行采样
AD7862是一款高速、低功耗、双核12位模数转换器和转换。该器件可接收的模拟输入范围为±10 V(AD7862-10)、±2.5 V(AD7862-3)和 0~2.5 V(AD7862-2)。 本系统采用AD7862-10。模拟输入均具有过压保护,允许输入电压分别达到±17 V、±7 V或+7 V而不会造成损坏。
图2 AD7862的时序
2 dsPIC30F6010A简介
16 位dsPIC30F6010A数字信号控制器是16位处理器系列[4]。它是dsPIC30F电机控制和电源转换系列,用于支持电机控制应用,也适用于不间断电源、逆变器、开关电源及相关设备。
内部有144 KB片上闪存程序空间,8 KB片上数据RAM,4 KB非易失性数据EEPROM;工作速度最高可达30 MI/s;5个16位定时器/计数器;可选择将16位定时器配对组成32位定时器模块;16位捕捉输入功能;8个PWM输出通道:具有互补或独立输出模式、边沿对齐模式和中心对齐模式,4个占空比发生器、互补模式的死区时间控制;2个UART、2个SPI、1个I2C总线和2个CAN总线;最大I/O引脚数为68个。
dsPIC30F6010A处理器采用改进的哈佛架构,具有独立的程序和数据存储器总线。在执行访问数据RAM当前指令的同时可从程序存储器中预取下一条指令,这就加快了处理速度。数据空间为64 KB,大多数指令将其看作一个线性地址空间。当使用某些DSP指令,如DSP乘法指令时,该存储空间被分成2块,分别称为X和Y数据空间。因此,这些DSP指令支持双操作数读操作,即,同一条指令可同时从X存储空间和Y存储空间中取数据。
3 系统设计
本采样系统主要分为硬件部分设计和软件部分设计。硬件部分是以dsPIC30F6010A为控制和处理核心,去控制AD7862和SD卡来实现数据的高精度、实时采集和实时存储。信号的高精度和实时模数转换由AD7862来实现,数据的存储由控制器通过SPI接口访问SD卡来实现。软件部分主要由控制器I/O引脚的初始化、模数转换开始控制、数据读取和数据存储等部分组成。
3.1 硬件部分实现
AD7862还产生BUSY信号,通过它告知控制器A/D转换完成,可以读取结果。dsPIC30F6010A的中断控制器支持5种外部中断请求信号:INT0~INT4。这些输入是边沿敏感的;它们要求一个由低到高或由高到低的跳变以产生一个中断请求。INTCON2寄存器具有5个位(INT0EP~INT4EP),用于选择边沿检测电路的极性。本系统中采用由高到低的跳变产生中断请求,BUSY控制信号与dsPIC30F6010A的INT0相连。数据转换结果通过dsPIC30F6010A的I/O口,读到控制器内部。AD7862与控制器的电路连接图如图3所示。
图3 AD7862与控制器的电路连接
系统的数据存储载体为SD卡。SD卡的技术是基于Multi Media卡(MMC)格式上发展而来,大小和MMC差不多,SD卡与MMC卡保持着向上兼容。SD卡是东芝公司在MMC卡技术中加入加密技术硬件而成,所有SD卡都必须支持较老的SPI/MMC模式。SD卡的接口支持SD和SPI两种操作模式。主机系统可以选择其中任意模式。SD卡模式允许4线的高速数据传输,传输速率高,但是大部分单片机无此接口,使用软件模拟协议复杂。SPI模式使用简单通用的SPI通道接口就可实现数据传输,目前大多数单片机提供SPI接口[5]。本设计采用SPI模式,利用dsPIC30F6010A的SPI接口访问SD卡。SD卡使用的电压为3.3 V,具体电路连接如图4所示。
图4 控制器与SD卡的接口
3.2 软件部分实现
软件部分流程如图5所示,系统启动后先初始化I/O、SD卡、AD7862和设置INT0中断,为A/D采样和数据存储做准备。由于AD7862有两个通道,需对这两个通道分别进行A/D转换,先采样A通道后采样B通道,具体是哪个通道由A0决定,也就是控制器的RB8引脚。
图5 数据采集存储流程图
数据采集过程中要获知A/D转换已结束的方法有[6]:
1)定时 使用定时器,转换开始后过一段时间读取转换结果;
2)扫描 扫描BUSY引脚,当变为低电平时,即可知转换结束,读取转换结果;
3)中断 BUSY作为中断信号,输入到INT0中,并设置为从高到低触发中断,当转换结束后,BUSY信号由高变低,触发中断。
本系统采用第3种方法,即中断方法。中断服务子程序如图6所示,进入中断服务子程序后,首先清中断标示,然后分两次读取,即VX1和VX2(X代表A或B),读完之后对数据进行处理并存储到SD卡相应位置中,最后置采样结束标示。
图6 中断程序子程序
4 结束语
数据采集系统采用dsPIC30F6010A、AD7862和SD卡组成了高性能12位并行数据采集及存储系统。介绍了硬件电路的连接,然后进行了数据采集的软件设计与实现。实践表明,通过对模数转换器件的正确使用,完全可以达到很高的采样精度,并能满足系统实时性的需要。通过外扩模拟电路部分,可以用于各种高精度高速的数据采集存储系统。
[1]周 林,殷 侠.数据采集与分析技术[M].西安:西安电子科技大学出版社,2005.
[2]刘 强,谢 川,杨文通.12位高速数据采集系统的设计[J].微计算机信息,2006(8):97-99.
[3]Analog Devices.AD782Datasheet[EB/OL].http://www.analog.com/static/imported-files/data_sheets/AD7862.pdf.
[4]Microchip.dsPIC30F6010A/6015 Data sheet[DB/OL].http://ww1.microchip.com/downloads/cn/DeviceDoc/cn530931.pdf.
[5]朱大锐,张团善,高 文.ATmega128L单片机的Micro SD卡读写[J].单片机与嵌入式系统应用,2009(5):37-39.
[6]张毅坤,陈善久,裘雪红.单片机微型计算机原理及应用[M].西安:西安电子科技大学出版社,2004.