千斤顶厂家
免费服务热线

Free service

hotline

010-00000000
千斤顶厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

AVR单片机在多回路数据采集器中的应用

发布时间:2020-07-21 18:24:48 阅读: 来源:千斤顶厂家

1 引言

AVR系列单片机[1]是ATMEL公司于1997年推出的具备高速处理能力的单片机,它采用Harvard总线结构,程序存储器和数据存储器分离,可对具有相同地址的程序存储器和数据存储器进行独立寻址的功能。AVR单片机具有良好的集成性能,具备在线编程接口等功能,在自动控制、智能仪表、数据采集系统、家用电器等中有广泛的应用。

ATmega系列单片机属于AVR中的高档产品,它承袭了AT90所具有的特点,并在AT90的基础上,增强了更多的接口功能,而且在省电性能、稳定性、抗干扰性及灵活性方面都更加周全和完善。ATmega128单片机是目前ATmega系列单片机中功能最强的一个型号,最高工作频率可达16MHZ,具有高速运行处理能力。它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电路,并且软件上有效支持C高级语言及汇编语言。针对目前国内工业电力监控行业中多用户数据采集的需求,研发了一种基于ATmega128单片机的多回路、高精度、快速数据采集器,主要是监测电流、报警、状态信息,再根据这些信息形成反馈控制信息,具备远程操作能力,不仅可以用于新的电力监控系统中,而且可以方便的取代原有网络系统中的设备,具有广阔的市场前景。该数据采集器的关键技术在于ATmega128微处理器芯片内A/D转换器的硬件接口设计及AD采集处理软件编程。

2 ATmega128单片机的主要特征及其片内A/D转换器

ATmega128是一款采用低功耗CMOS工艺生产的基于AVR RISC 结构的8位单片机,其主要性能有:高性能、低功率的8位AVR微控制器,先进的RISC精简指令集结构。ATmega128单片机芯片内集成了较大容量的非易失性程序和数据存储器以及工作存储器;丰富强大的外部接口性能;特殊的微控制处理器性能。其主要优点是芯片本身自带看门狗电路,片内程序Flash及8通道复用的10位A/D转换器;通用I/O接口具有很强的驱动能力,可省去一部分驱动电路,节约了系统成本;附带同步串行接口SPI,可以实现与PC机的联网通讯功能;采用符合IEEEstd.1149.1标准的JTAG测试接口来实现程序的下载和系统的调试,因而系统的开发调试十分方便;即使已被应用于现场,也可以随时进行一定程序的修改。

ATmega128有一个10位的逐次比较的A/D转换器,ADC与一个8通道的模拟多路复用器连接,能够对以PORTC口作为ADC输入引脚的8路单端电压输入进行采样。ADC包括采样保持电路,以确保输入电压在ADC转换过程中保持恒定。ADC还有一个噪声抑制器,在休眠模式下进行A/D转换时,应用该特性可以降低由MCU内核和I/O外围设备引入的噪声。ADC功能单元有独立的专用模拟电源引脚AVCC供电。AVCC和VCC的电压差别不能大于0.3V。ADC转换的参考电源可采用芯片内部的参考电源,或采用AVCC,也可采用外部的参考电源,外部参考电源由引脚AREF接入,同时AREF引脚外部并接一个电容来提高ADC的抗噪性能。ADC还包含一个预分频器,可以对输入的系统时钟进行分频,以获得适合的ADC时钟。一次常规的A/D转换需要13个ADC时钟周期,ADC为用户提供了内部中断方式的处理,可以满足实时性的要求。

近年来ATmega128单片机以优良而稳定的性能广泛应用于各种电力系统智能自动化仪表中。

3 多回路数据采集器的总体结构

多回路数据采集器系统主要由微处理器、AD采集处理部分、参数设置、输出单元、LED显示和通讯接口等功能模块组成。

考虑到模拟信号及开关量信号的数目、速度、精度的要求,系统结构的精简、成本以及今后软硬件的升级需要,该采集器系统的微处理器功能模块由ATmega128单片机来实现。 AD采集处理部分是本系统设计的关键部分,它需要采集8路输入信号,每路输入信号有:1个电流有效值(0~6A),两个有源开关量输入(报警信号和状态信号输入)。参数设置部分主要设置本设备地址和通讯波特率,可设置本设备地址范围为1~63,通讯波特率范围为4800~38400波特,以满足用户多种不同需求。这一功能由软件编程来实现。输出单元同样有8路输出,每路有2个开关量输出,用继电器提供两个无源触点来实现。为了避免外部干扰对信号影响,信号的输入和输出单元使用高速光电耦合电路。显示部分用LED显示报警信号与状态检测信号输入、系统电源的通断信号以及通讯信号的工作情况。通讯接口单元采用RS485接口电路,是一种RS232/RS485转换器。该数据采集器系统与PC机通过采用ModBus/RTU协议实现通信联网功能。

4 系统AD采集处理的实现

4.1 A/D转换器的硬件接口连接

以ATmega128单片机为核心的多回路数据采集器的A/D转换器的硬件接口电路框图如图1所示。ATmega128单片机的内部资源非常丰富,有128KB的闪速存储器可以编程,4K字节的SRAM和4K字节的EEPROM来存储变量,一般情况下,不需要扩展外部的ROM和RAM。

系统的硬件制板主要分为一块CPU主控板和八块I/O接口板。CPU主控板主要包括八路电流信号的采集模块、参数设置模块、电源模块、通讯接口模块及JTAG接口模块等。将八路开关量的输入和输出单元分别制成八块I/O接口板,每块I/O接口板包括两个有源开关量信号和两个继电器触点输出信号。I/O接口板采用与CPU主控板可脱卸方式连接,主要优点在于实际使用时可灵活选配,方便实用,节省了硬件成本,且仪器出故障时便于维修更换。

由于电力系统中要测量的常常是大电流,被测的电流需经过一级变压器后才能接入CPU主板,成为主板中电流互感器的模拟输入信号。模拟信号经过CD4051多路开关,并由LF124四运算放大器将模拟电流小信号放大。每路的最大输入电流允许为6A。放大后的模拟信号利用微处理器提供的内部ADC进行模数转换处理,并将10位转换结果放在ADC数据寄存器ADCH和ADCL中。在连续采样模式下,ADC连续取样,并不断更新ADC数据寄存器。本系统的关键技术在于八路模拟信号共用同一个放大电路,既可解决一致性问题,又可节约硬件成本。同时八路模拟输入信号全部用模拟多路开关进行隔离,避免信号之间的相互干扰。为了确保采集的速度,需ATmega128微处理器对八路模拟信号进行连续高速巡回检测,并在模拟多路开关切换时进行软件消抖。由于系统被测交流电流变化缓慢,在组成对模拟信号的自动巡回检测模块时,没有加入采样/保持器电路。对八路模拟信号还采用数字滤波和分段线性补偿等软件技术,增强抗干扰性,使信号采样保持在最佳线性状态,以保证测量的精确度。

所有输入、输出开关量信号都采用光电隔离器实现系统与现场信号的隔离,提高系统的

抗干扰能力。I/O接口板中报警和状态信号灯工作时电源供电都为DC24V,LED显示对报警和状态信号有无进行实时的状态报告。I/O接口板提供的2个继电器触点输出信号,有信号输出时,继电器触点将闭合。其中继电器采用OMRON G6B-114AP,体积小,触点允许接通的最大信号为:5A,250V(交流)或 5A ,30V(直流)。

一般微处理器本身不具备串行通信接口功能,因此,可以通过外接串行接口电路加以扩展。在采集器的通讯接口电路设计中,系统的通讯接口电路部分需要配备有RS485接口,接口芯片采用Sipex的工业级带高静电保护的芯片SP485EEN,使通信更可靠。该系统具备远程操作能力,可以实现远程输入/输出。

4.2 数据采集和AD处理的软件实现

数据采集是该多回路数据采集器软件编程部分的主要模块,在循环执行数据采集程序的同时,还间隔地调用了时钟定时中断子程序,数字滤波子程序和分段线性补偿子程序等。系统上电执行初始化程序,复位个端口。通过操作按键确定了采集系统时间段的初始时间之后,系统开始对0~7通道间隔1s时间采集一次电流值,调用数字滤波子程序进行滤波得到精确的数值。再通过数据转换和处理后送微处理器的数据存储器,等待PC机的读取。

数据采集处理的实现采用AVR单片机C编辑器——ICCAVR编程,以下是系统查询读AD子程序和AD处理的部分程序。

1.查询读AD子程序

#define ADC_VREF_TYPE 0x00 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input)

{ ADMUX=adc_input|ADC_VREF_TYPE; // Start the AD conversion

ADCSRA|=0x40; // Wait for the AD conversion to complete

while ((ADCSRA 0x10)==0);

ADCSRA|=0x10;

return ADCW; }

2.AD处理程序

while (ad_end) // ad_end是位标志,=1表明AD转换完毕

{ if (temp>2) //采集3组AD值

{ PORTG |=0x08; // PORTG.3=1 ; 关闭多路开关

ad_ii=ad_i;

ad_ii++;

if(ad_ii>7)ad_ii=0;

PORTF =0xF1;

PORTF |=adtondao[ad_ii]; //切换AD通道

PORTG =0XF7; /*PORTG.3=0; 打开多路开关*/

data_cl(); //本组(第三组)AD计算子程序 ad_end=0;

data[2]=zhi;

data_cl2(); //3组AD数字滤波程序

temp=0;

ad_i=ad_ii; }

else

{ data_cl(); //计算一组AD值

ad_end=0;

data[temp-1]=zhi; //存AD值 } }

5 结束语

ATmega128微处理器本身带有多路10位精度的逐次比较式A/D转换器,在该多回路数据采集器系统中可以显著地降低成本。由于ATmega128的A/D转换器转换速度比较高,可以采取一些数字滤波算法来得到较为精确和稳定的转换结果。利用C语言编程,使该多回路数据采集器系统的硬件设计变得简单,AD采集处理编程也容易,大大缩短了开发周期。采集器样机经厂家与标准0.2级电流表对照试验,多路电流测量都已超过0.5级表的标准;由于它直接对交流信号波形进行采样运算,因此其精度、响应速度比采用直流采样方法的高,而且系统更新、维护方便,为今后开发系列化产品打下了良好的基础。

参考文献:

[1]耿德根、宋建国,AVR高速嵌入式单片机原理及应用[M],北京:北京航空航天大学出版社,2001.

[2]常广、王毅,电力系统在数据采集系统的研制[J],微计算机信息,2003,(2):31-32.

[3]冯健、张化光,高速实时数据采集装置及其测量方法[J],仪器仪表学报,2005,(8):256-257.

分频器相关文章:分频器原理隔离器相关文章:隔离器原理

杭州牙齿矫正价格

合肥双眼皮修复

南昌双眼皮价格