AVR單片機的全功能工業(yè)控制器設(shè)計
引言
在自動控制產(chǎn)品的設(shè)計過程中,實現(xiàn)方案的選擇常常是很矛盾的。使用可編程邏輯控制器(PLC)和人機界面(HMI)來實現(xiàn),開發(fā)速度較快,但成本太高,所開發(fā)的產(chǎn)品沒有市場競爭力;使用單片機開發(fā),成本低但開發(fā)周期長、開發(fā)量大且通用性不好。用戶需要的是一種成本低、開發(fā)周期較短、通用性較好的控制器,因此全功能工業(yè)控制器有很大的應(yīng)用市場。
全功能工業(yè)控制器的整個電路分為信號隔離輸入部分、控制器輸出部分、實時時鐘與歷史數(shù)據(jù)存儲部分、彩色液晶顯示和觸摸屏控制部分、通信接口等。
1 信號隔離輸入電路
信號隔離輸入電路分為開關(guān)量隔離輸入、模擬量隔離輸入、高速電脈沖隔離輸入,電路如圖1所示,開關(guān)量的隔離輸入較為簡單,輸入信號采用光耦進行隔離后送入單片的普通I/O,單片機用查詢方式進行采集。
圖1 信號隔離輸入電路
高速電脈沖的采集需要注意的是,所設(shè)計的電路必須適應(yīng)高速信號采集的要求,因此隔離光耦應(yīng)采用高速光耦(如6N137等)。采用查詢方式采集高速脈沖容易造成采集數(shù)據(jù)的丟失,高速脈沖應(yīng)采用中斷方式進行采集。
模擬量隔離采集是本控制器的一個重點和難點,筆者之前采用了線性光耦等多種方式進行模擬量的隔離采集實驗,均未獲滿意的效果。這里采用一種先將模擬量數(shù)字化(使用AD7705),然后通過有光耦隔離的數(shù)據(jù)口送到CPU進行模擬量隔離采集的方式,效果理想。
2 控制器輸出電路
控制器的輸出方式有繼電器輸出、晶體管輸出、模擬電壓輸出,如圖2所示。繼電器輸出和晶體管輸出電路較為簡單,這里不作詳細的介紹。下面著重介紹模擬電壓的產(chǎn)生原理。
圖2 控制器輸出電路
模擬電壓的輸出主要利用ATmega128的PWM端口來實現(xiàn),PWM輸出脈沖經(jīng)光耦隔離后再進行濾波產(chǎn)生所需的直流信號。為了提高驅(qū)動能力,加了一級射極跟隨器,如圖2上半部所示。
PWM電壓調(diào)節(jié)實現(xiàn)的程序如下:
#define PWM1_IN(){DDRB.5=1;PORTB.5=0;}//PWM端口控制
#define PWM1_OUT() DDRB.5=1;
/**********************
PWM初始化程序:
使用TIMER1,預(yù)分頻為8,設(shè)置10位快速PWM模式,關(guān)閉中斷
**********************/
void pwm_init(void){
TIMSK=0xC3; //關(guān)閉TIMER1中斷
ETIMSK=0xFE;
TCCR1A=0; //關(guān)閉定時器
TCCR1B=0;
OCR1A=0x0000; //關(guān)閉輸出
OCR1B=0x0000;
TCCR1A=0xA3; //設(shè)置10位快速PWM
//模式,預(yù)分頻為8
TCCR1B=0x0A;
PWM1_IN()
}
/***************************
PWM通道控制程序: 功能——可以進行單通道的開關(guān)和調(diào)整輸出
入口參數(shù)—— b為通道控制(1—改值,2—開端口,3—關(guān)端口);
評論