AVR单片机的全功能工业控制器设计

发布者:GoldenSerenity最新更新时间:2013-11-12 来源: eefocus关键字:隔离采集  485接口  ATmega128  DS1642 手机看文章 扫描二维码
随时随地手机看文章

引言

  在自动控制产品的设计过程中,实现方案的选择常常是很矛盾的。使用可编程逻辑控制器(PLC)和人机界面(HMI)来实现,开发速度较快,但成本太高,所开发的产品没有市场竞争力;使用单片机开发,成本低但开发周期长、开发量大且通用性不好。用户需要的是一种成本低、开发周期较短、通用性较好的控制器,因此全功能工业控制器有很大的应用市场。

  全功能工业控制器的整个电路分为信号隔离输入部分、控制器输出部分、实时时钟与历史数据存储部分、彩色液晶显示和触摸屏控制部分、通信接口等。

1 信号隔离输入电路

  信号隔离输入电路分为开关量隔离输入、模拟量隔离输入、高速电脉冲隔离输入,电路如图1所示,开关量的隔离输入较为简单,输入信号采用光耦进行隔离后送入单片的普通I/O,单片机用查询方式进行采集。

图1 信号隔离输入电路

  高速电脉冲的采集需要注意的是,所设计的电路必须适应高速信号采集的要求,因此隔离光耦应采用高速光耦(如6N137等)。采用查询方式采集高速脉冲容易造成采集数据的丢失,高速脉冲应采用中断方式进行采集。

  模拟量隔离采集是本控制器的一个重点和难点,笔者之前采用了线性光耦等多种方式进行模拟量的隔离采集实验,均未获满意的效果。这里采用一种先将模拟量数字化(使用AD7705),然后通过有光耦隔离的数据口送到CPU进行模拟量隔离采集的方式,效果理想。

2 控制器输出电路

  控制器的输出方式有继电器输出、晶体管输出、模拟电压输出,如图2所示。继电器输出和晶体管输出电路较为简单,这里不作详细的介绍。下面着重介绍模拟电压的产生原理。

图2 控制器输出电路

  模拟电压的输出主要利用ATmega128的PWM端口来实现,PWM输出脉冲经光耦隔离后再进行滤波产生所需的直流信号。为了提高驱动能力,加了一级射极跟随器,如图2上半部所示。

  PWM电压调节实现的程序如下:

#define PWM1_IN(){DDRB.5=1;PORTB.5=0;}//PWM端口控制

#define PWM1_OUT() DDRB.5=1;

/**********************

PWM初始化程序:

使用TIMER1,预分频为8,设置10位快速PWM模式,关闭中断

**********************/

void pwm_init(void){

   TIMSK&=0xC3;  //关闭TIMER1中断

          ETIMSK&=0xFE;

   TCCR1A=0;     //关闭定时器

         TCCR1B=0;

         OCR1A=0x0000; //关闭输出

         OCR1B=0x0000;

        TCCR1A=0xA3; //设置10位快速PWM 

                                   //模式,预分频为8

   TCCR1B=0x0A;

   PWM1_IN()

}

/***************************

PWM通道控制程序: 功能——可以进行单通道的开关和调整输出

入口参数—— b为通道控制(1—改值,2—开端口,3—关端口);[page]

c为PWM更改值

***************************/

void pwm(unsigned char b,unsigned int c){

  switch(b){

    case 1://改变PWM1值

      if(c<=0x03FF)OCR1A=c;

      break;

    case 2://开PWM1端口

      if(c<=0x03FF)OCR1A=c;

      PWM1_OUT()

      break;

    case 3://关PWM1端口

      OCR1A=0x0000;

      PWM1_IN()

      break;

  }

}

3 实时时钟和历史数据存储模块

  很多工业控制器需要将关机前的有关数据记录下来,以便下次开机时继续使用原先设置好的参数;有些工作数据也要进行实时保存,以保证不因掉电等意外发生而受影响。采用EEPROM存储,读写速度慢而且受使用次数的限制;采用铁电存储器可以实现,但一般容量小,价格较高。

  工业控制操作往往是与当前实时时钟相关联的,实时时钟在工业控制器中是很重要的一个部件。

  美国Dallas公司的DS1642,将实时时钟和历史数据存储器合二为一,价格也较为适中。电路的连接方式如图3所示。

  DS1642包含1个2K×8的非易挥发性的SRAM和1个实时时钟/日历,以及内嵌晶振和锂电池。 DS1642的时钟寄存器和记忆寄存器的存取方式同普通RAM的存取方式,而计时寄存器采取了双缓冲的方式,以保证在存储器存取过程中不间断计时。当电能监控电路监测到掉电时,DS1642即接通内部电源以确保时间保持和内存数据不受破坏,精度可达1 min/月。详情请见有关数据手册。

4 彩色液晶显示模块

  彩色液晶显示功能的实现直接采用深圳市中天越华自动控制科技有限公司的ZTCOLOR3彩色液晶驱动模块,电路接口如图3所示。

  模块的使用很简单,模块本身具有数据刷新等功能。当显示的画面没有变化时,单片机不需要对模块进行操作;要更改显示界面时,用写寄存器的方式写入数据即可。(详见生产商的使用说明书)

图3 时钟和数据存储与液晶显示模块连接电路、

5 触摸屏控制模块

  触摸屏采用四线电阻式触摸屏,利用ATmega128的A/D口对通电后的触摸屏各触摸点电压值进行采样,以确定用户的触摸位置而进行相应的操作。电路如图4所示。

图4 触模屏控制模块电路

  具体实现程序如下:

#define TX1_0(){PORTE.3=1;DDRE.3=1;}

#define TY1_1(){PORTE.5=0;DDRE.5=1;}

#define TY1_0(){PORTE.5=1;DDRE.5=1;}

#define TX0_1(){PORTE.4=1;DDRE.4=1;}

#define TX0_0(){PORTE.4=0;DDRE.4=1;}

#define TY0_1(){PORTE.6=1;DDRE.6=1;}

#define TY0_0(){PORTE.6=0;DDRE.6=1;}

#define TINT_IN() {DDRE.7=0;}//触摸屏中断口为输入方式

#define TINT_INPUT PINE.7

#define TADX_IN(){DDRF|=1;PORTF&=0xFE;delay_us(50);DDRF&=0xFE;}//触摸屏ADC端口为输入方式#define TADY_IN(){DDRF|=2;PORTF&=0xFD;delay_us(50);DDRF&=0xFD;}

/******************************

触摸屏初始化: 初始化触摸屏四线端口、初始化触摸屏中断口、初始化ADC端口

******************************/

void touch_init(void){

  unsigned char i;

  TX1_0()    //初始化四线端口

  TX0_0()

  TY1_1()

  TY0_0()

  TINT_IN()   //触摸屏中断端口为输入方式

  EICRB|=0xC0; //设置INT7为上升沿触发,清除中断

         //标志,开中断

  EIFR|=0x80;

  EIMSK|=0x80;

  TADX_IN()//把触摸屏ADC端口设置为输入

  TADY_IN()

}[page]

/*************************************

INT0中断程序(触摸屏数据采集程序)

采用中断方式,在中断程序中进行A/D转换读取触摸屏数据

*************************************/

interrupt[9] int7_touch(void){ //触摸屏数据采集程序

  touch_int();

  TADY_IN()

  TADX_IN()

  TX1_0()//启动ADC转换Y轴数据

        TX0_0()

  TY0_1()

  TY1_1()

  delay_us(400);

  for(i=0;i<15;i++){

   ADCSRA=0xA3;

   ADMUX=0x41;

   ADCSRA|=0x40;

   while(!ADCSRA.4){;}

   touch_ydata[i]=ADC&0x03FF;

  }

       TY1_0()   //启动ADC转换X轴数据

  TY0_0()

  TX1_1();

  TX0_1()

  delay_us(400);

  for(i=0;i<15;i++){

   ADCSRA=0xA3;

   ADMUX=0x40;

   ADCSRA|=0x40;

   while(!ADCSRA.4){;}

        touch_xdata[i]=ADC&0x03FF;

  }

  EIMSK&=0x7F;

        //一次数据接收完成,关闭中断

  TX1_0()

  TX0_0()

  TY1_1()

  TY0_0()

  TINT_IN()

  TADX_IN()

  TADY_IN()

  EIFR|=0x80;

        //清除中断标志位

  TADY_IN()

  TADX_IN()

}

6 通信接口

  控制器通信接口是具有抗噪声干扰性、长距离传输和多站连接能力的RS485接口。它是采用单片机串口通过光耦隔离后,再经过Maxim公司RS485芯片来实现的,主要用于组网和方便与上位计算机的通信。具体电路见图4。

结语

  本文介绍的全功能工业控制器,具有较高的通用性,已用于批量生产。有关电路和程序均已验证,可以直接引用。

关键字:隔离采集  485接口  ATmega128  DS1642 引用地址:AVR单片机的全功能工业控制器设计

上一篇:AVR单片机的天然气发动机系统设计
下一篇:基于Atmel QTouch的ATmega48感应的按键设计

推荐阅读最新更新时间:2024-03-16 13:30

基于ATmega128的安全工器具监控系统设计
众所周知,安全是电力企业一个永恒的主题,而安全工器具的好坏,将直接影响着电力企业在生产过程中的人身和设备安全。笔者提出了一种基于AVR单片机的安全工器具监控系统的设计方案,主要是对安全工器具的离就位状态信息、有效使用期限和安全工器具柜内的温湿度状况等进行监控,可以根据实现安全工器具柜内温湿度的自动调节,能够自动记录安全工器具的相关信息。本文首先阐述了系统的总体结构,然后详细论述了系统的硬件设计和软件设计。 1 安全工器具监控系统的总体结构 1.1 系统结构 本文所设计的安全工器具监控系统主要分为下位机数据采集和上位机数据管理两个部分,两者之间通过网络进行通信。 系统首先通过数据采集板对安全工器具柜的相关量进行采集,然后将采
[单片机]
基于<font color='red'>ATmega128</font>的安全工器具监控系统设计
ATmega128的16路遥控单元电路分析
简介:该装置通过RS485($49.9800) 总线与上位机相连,作为远程继电器输出模块,用于接收计算机指令,执行系统的遥控操作或自动控制,继电器输出共16 路,装置拥有1600 组操作事件记录,带GPS 校时功能,在外部电源掉电后可以保证SOE 事件记录一个月内不丢失 本文介绍一款具有16 路遥控接点输出的ARTU-J16,该装置通过RS485($49.9800)总线与上位机相连,作为远程继电器输出模块,用于接收计算机指令,执行系统的遥控操作或自动控制,继电器输出共16 路,装置拥有1600 组操作事件记录,带GPS 校时功能,在外部电源掉电后可以保证SOE 事件记录一个月内不丢失,相对以往控制方式,本设计在简化控制网络结构
[单片机]
<font color='red'>ATmega128</font>的16路遥控单元电路分析
ATmega128学习(MOdbus串口通信)
//ATmega128 AU USART1,波特率9600,modbus协议,单速,1停止位,CRC校验 //编译器 :ICC7.22 //晶振:11.0592MHZ,,外部高频石英震荡器,启动时间4.1ms //熔丝:扩展位:0xff, 0x19af,加密位:0xff //*********************************************************************** // 初始化去,参数定义区 //*********************************************************************** #include #inclu
[单片机]
基于Atmega128单片机和GPRS的矿区铁路道口监测系统
1 引言   矿区铁路是衔接国家铁路与矿区的中间环节,是铁路运输网的重要组成部分。据有关资料统计,目前国内矿区铁路超过2万公里且其沿线附近通常分布着多个道口。由于道口大多分布在远离市区的矿山企业内部,并且其数量多、分散以及道口之间的距离长,加上矿区内各种运输工具的交叉作业及车辆、人员的不固定的流动,使矿区铁路道口的安全管理成为十分突出的问题。为使各级矿区管理部门能及时、准确掌握各个道口的的安全情况,本文以 Atmega128和MC55为核心,设计一套铁路道口监测系统,实现对铁路道口监测管理的自动化、数字化和网络化。这对保证矿区正常生产、提高矿山企业经济效益和通过道口车辆、行人安全具有重要意义。 2 系统组成
[单片机]
基于<font color='red'>Atmega128</font>单片机和GPRS的矿区铁路道口监测系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved