新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > AVR单片机的全功能工业控制器设计

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

作者:时间:2013-11-12来源:网络收藏

引言

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

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

1 信号隔离输入电路

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

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

图1 信号隔离输入电路

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

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

2 控制器输出电路

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

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

图2 控制器输出电路

  模拟电压的输出主要利用的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—关端口);


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭