DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 316|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 17:26:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 AVR系列单片机[1]是ATMEL公司于1997年推出的具备高速处理能力的单片机,它采用Harvard总线结构,程序存储器和数据存储器分离,可对具有相同地址的程序存储器和数据存储器进行寻址的功能。AVR单片机具有良好的集成性能,具备在线编程接口等功能,在自动控制、智能仪表、数据采集系统、家用电器等中有广泛的应用。  ATmega系列单片机属于AVR中的高档产品,它承袭了AT90所具有的特点,并在AT90的基础上,增强了更多的接口功能,而且在省电性能、稳定性、抗干扰性及灵活性方面都更加周全和完善。ATmega128单片机是目前ATmega系列单片机中功能最强的一个型号,最高工作频率可达16MHZ,具有高速运行处理能力。它的芯片内部集成了较大容量的存储器和丰富强大的硬件接口电,并且软件上有效支持C高级语言及汇编语言。针对目前国内工业电力行业中多用户数据采集的需求,研发了一种基于ATmega128单片机的多回、高精度、快速数据采集器,主要是监测电流、报警、状态信息,再根据这些信息形成反馈控制信息,具备远程操作能力,不仅可以用于新的电力系统中,而且可以方便的取代原有网络系统中的设备,具有广阔的市场前景。该数据采集器的关键技术在于ATmega128微处理器芯片内A/D转换器的硬件接口设计及AD采集处理软件编程。
  2ATmega128单片机的主要特征及其片内A/D转换器
  ATmega128是一款采用低功耗CMOS工艺生产的基于AVRRISC结构的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.1A/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个继电器触点输出信号,有信号输出时,继电器触点将闭合。其中继电器采用OMRONG6B-114AP,体积小,触点允许接通的最大信号为:5A,250V(交流)或5A,30V(直流)。
  一般微处理器本身不具备串行通信接口功能,因此,可以通过外接串行接口电加以扩展。在采集器的通讯接口电设计中,系统的通讯接口电部分需要配备有RS485接口,接口芯片采用Sipex的工业级带高静电的芯片SP485EEN,使通信更可靠。该系统具备远程操作能力,可以实现远程输入/输出。
  4.2数据采集和AD处理的软件实现
  AD技术数据采集是该多回数据采集器软件编程部分的主要模块,在循环执行数据采集程序的同时,还间隔地调用了时钟定时中断子程序,数字滤波子程序和分段线性补偿子程序等。系统上电执行初始化程序,复位个端口。通过操作按键确定了采集系统时间段的初始时间之后,系统开始对0~7通道间隔1s时间采集一次电流值,调用数字滤波子程序进行滤波得到精确的数值。再通过数据转换和处理后送微处理器的数据存储器,等待PC机的读取。
  数据采集处理的实现采用AVR单片机C编辑器——ICCAVR编程,以下是系统查询读AD子程序和AD处理的部分程序。
  1.查询读AD子程序
  #defineADC_VREF_TYPE0x00//ReadtheADconversionresult
  unsignedintread_adc(unsignedcharadc_input)
  {ADMUX=adc_inputADC_VREF_TYPE;//StarttheADconversion
  ADCSRA=0x40;//WaitfortheADconversiontocomplete
  while((ADCSRA&0x10)==0);
  ADCSRA=0x10;
  returnADCW;}
  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]=adresult.adzhi;
  data_cl2();//3组AD数字滤波程序
  temp=0;
  ad_i=ad_ii;}
  else
  {data_cl();//计算一组AD值
  ad_end=0;
  data[temp-1]=adresult.adzhi;//存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.
            (责任编辑:电子俱乐部)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-2 19:36 , 耗时 0.087239 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表