<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ATMEGA16的智能控制器的開(kāi)發(fā)研制

          基于ATMEGA16的智能控制器的開(kāi)發(fā)研制

          作者: 時(shí)間:2012-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

          1、引言

          隨著科學(xué)技術(shù)的飛速發(fā)展和人們生活水平的提高,普通儀表已顯過(guò)時(shí),不能滿足現(xiàn)代生活的需求。現(xiàn)代儀表已日趨數(shù)字化、網(wǎng)絡(luò)化和智能化。微電子技術(shù)的發(fā)展和工業(yè)過(guò)程對(duì)測(cè)控方面要求的加強(qiáng),使的應(yīng)用更廣、成本更低。具有低成本、低功耗、高速度的特點(diǎn)。本控制器主要針對(duì)浙大中控的 AE2000B過(guò)程控制實(shí)驗(yàn)裝置設(shè)計(jì)的,對(duì)其水箱的液位、電熱鍋爐的溫度進(jìn)行控制、顯示。

          2、的研制開(kāi)發(fā)

          是以單片機(jī)為核心的儀表,其設(shè)計(jì)要點(diǎn)大致有兩點(diǎn),即模塊化設(shè)計(jì)和模塊的連接。

          2、1 模塊化設(shè)計(jì)

          依據(jù)儀表的功能、精度要求等,自上而下按儀表功能層次把硬件和軟件分成若干個(gè)模塊,分別進(jìn)行設(shè)計(jì)與調(diào)試,然后把它們連接起來(lái),進(jìn)行總調(diào),這是設(shè)計(jì)儀表最基本的思想。

          硬件部分包括主機(jī)電路、過(guò)程輸入/輸出通道(模擬量輸入/輸出通道和開(kāi)關(guān)量輸入/輸出通道)、人機(jī)聯(lián)系部件和接口電路以及串行數(shù)據(jù)通信接口等。軟件部分包括監(jiān)控程序(包括初始化、鍵盤和顯示管理、中斷管理、時(shí)鐘管理、自診斷等),中斷處理程序以及各種測(cè)量(數(shù)字濾波、標(biāo)度變換、非線性校正等)和控制算法等功能模塊。模塊化設(shè)計(jì)的優(yōu)點(diǎn)是:無(wú)論是硬件還是軟件,每個(gè)模塊都相對(duì)獨(dú)立,故能獨(dú)立地進(jìn)行研制和修改,使復(fù)雜的研制工作得到簡(jiǎn)化,從而提高工作教益和研制速度。

          2、2 模塊的連接

          上述各種軟、硬件研制、調(diào)試之后還需要將它們按一定的方式連接起來(lái),才能構(gòu)成完整的儀表,以實(shí)現(xiàn)數(shù)據(jù)采集、傳輸、處理和輸出等各項(xiàng)功能。為實(shí)現(xiàn)既定的各種功能,軟件模塊的連接一般是通過(guò)監(jiān)控主程序調(diào)用各種功能模塊,或采用中斷的方法實(shí)時(shí)地執(zhí)行相應(yīng)的服務(wù)模塊來(lái)實(shí)現(xiàn)。

          硬件模塊連接方法有兩種:一種是以主機(jī)模塊為核心,通過(guò)設(shè)計(jì)者自行定義的內(nèi)部總線(數(shù)據(jù)總線、地址總線和控制總線)連接其它模塊;另一種是用標(biāo)準(zhǔn)總線連接其它模塊,這種方式可選擇標(biāo)準(zhǔn)化、模塊化的典型電路,使配接靈活、方便。

          3、系統(tǒng)硬件研制

          3、1 單片機(jī)的選擇

          單片機(jī)是整個(gè)智能儀器的核心部件,它直接影響整機(jī)的硬件和軟件設(shè)計(jì),它對(duì)智能儀表的功能、性價(jià)比以及研制周期起決定性作用。一般兼有數(shù)據(jù)處理任務(wù)的控制類智能儀表,大多采用數(shù)據(jù)處理型的單片機(jī)。我們選用高性能、低功耗的8位單片機(jī),它具有如下特點(diǎn):16K 字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫(xiě)的能力,即RWW);512字節(jié)EEPROM;1K字節(jié)SRAM;32個(gè)通用I/O口線;32個(gè)通用工作寄存器;三個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器(T/C);可編程串行接口;低功耗空閑和掉電方式等。

          3、2 的選擇

          一臺(tái)智能儀表往往需要有多種。根據(jù)功能模塊劃分,通常指過(guò)程輸入/輸出通道、人機(jī)接口(鍵盤、顯示器、連接電路)等。

          圖1 智能控制器硬件系統(tǒng)原理圖

          3、2、1 模擬量輸入通道

          A/D轉(zhuǎn)換器我們直接運(yùn)用MEGA16芯片上的5-8路10位AD轉(zhuǎn)換。ATmega16有一個(gè)10位的逐次逼近型 ADC。ADC與一個(gè)8通道的模擬多路復(fù)用器連接,能對(duì)來(lái)自端口A的8路單端輸入電壓進(jìn)行采樣。單端電壓輸入以0V (GND)為基準(zhǔn)。器件還支持16 路差分電壓輸入組合。兩路差分輸入(ADC1、ADC0 與ADC3、ADC2)有可編程增益級(jí),在A/D 轉(zhuǎn)換前給差分輸入電壓提供0dB(1x)、20dB(10x) 或46dB(200x)的放大級(jí)。七路差分模擬輸入通道共享一個(gè)通用負(fù)端(ADC1),而其他任何ADC輸入可作為正輸入端。ADC包括一個(gè)采樣保持電路,以確保在轉(zhuǎn)換過(guò)程中輸入到ADC的電壓保持恒定。

          3、2、2 開(kāi)關(guān)量輸出通道

          在測(cè)控系統(tǒng)中,被控設(shè)備的驅(qū)動(dòng)常常采用模擬量輸出驅(qū)動(dòng)和數(shù)字量(開(kāi)關(guān)量)輸出驅(qū)動(dòng)兩種方式。前者由于其輸出受模擬器件的信號(hào)漂移等影響,很難達(dá)到較高的控制精度。隨著電子技術(shù)的迅速發(fā)展,特別是單片機(jī)進(jìn)入測(cè)控領(lǐng)域后,數(shù)字量輸出控制的應(yīng)用日益廣泛。精度控制上,開(kāi)關(guān)量輸出控制比模擬輸出控制高。利用開(kāi)關(guān)量輸出控制往往無(wú)需改動(dòng)硬件,而只需改變程序就可用于不同的控制場(chǎng)合。

          我們采用開(kāi)關(guān)量輸出,并提供2種輸出方式由用戶選擇: 繼電器控制輸出(AC 220V/3A.DC 24V/5A)阻性負(fù)載;SCR(可控硅)輸出400V/0.5A。

          3、2、3 LED顯示電路

          顯示屏驅(qū)動(dòng)電路的主要作用是接受來(lái)自控制系統(tǒng)的數(shù)字信號(hào),將發(fā)光二極管點(diǎn)亮,實(shí)現(xiàn)在LED顯示屏上的信息的顯示。在顯示電路中采用雙4位LED顯示,測(cè)量值和目標(biāo)值同時(shí)顯示,LED顯示屏使用的驅(qū)動(dòng)電路是基于通用型集成電路移位寄存器74HC595和6B595來(lái)設(shè)計(jì)的。

          3、2、4 通訊接口電路

          通訊傳輸采用標(biāo)準(zhǔn)的RS485或RS232計(jì)算機(jī)數(shù)據(jù)串行通訊方式,通過(guò)串口按一定的通訊協(xié)議接收來(lái)自計(jì)算機(jī)串口RS232的信號(hào),經(jīng)過(guò)處理后按一定的規(guī)律傳送到顯示屏上顯示。

          4、系統(tǒng)軟件開(kāi)發(fā)

          系統(tǒng)軟件是整個(gè)控制系統(tǒng)的靈魂,而在控制系統(tǒng)中,核心部分是控制器的設(shè)計(jì)。本次設(shè)計(jì)我們主要采用了PID控制實(shí)現(xiàn),全部軟件都是用C語(yǔ)言編寫(xiě)的。依據(jù)總體設(shè)計(jì)的要求,軟件流程圖如圖3,它由如下模塊組成:

          圖2 電路圖

          圖3 主程序流程圖

          4、1 初始化模塊

          要求完成I/ O的設(shè)置、數(shù)據(jù)存儲(chǔ)器分配(包括A/ D采樣的結(jié)果、輸入按鍵的鍵碼、程序標(biāo)志等) 、定時(shí)器、A/ D的設(shè)置并開(kāi)中斷。

          4、2 循環(huán)掃描模塊

          檢測(cè)是否有鍵盤輸入、A/ D轉(zhuǎn)換完成否、是否定時(shí)中斷等判別任務(wù)。若有則轉(zhuǎn)跳至相應(yīng)的子程序或中斷程序。

          4、3 中斷處理模塊

          依據(jù)狀態(tài)完成定時(shí)計(jì)數(shù)、A/ D采樣、鍵盤掃描等任務(wù)。

          4、4 顯示驅(qū)動(dòng)模塊

          依據(jù)狀態(tài)完成溫度或系數(shù)的顯示。

          4、5 鍵盤處理模塊

          檢測(cè)鍵碼并進(jìn)入相應(yīng)處理程序。

          4、6 定時(shí)中斷模塊

          完成定時(shí)計(jì)數(shù),定時(shí)間隔約為1s,為系數(shù)的設(shè)置提供數(shù)碼。

          4、7 溫度/液位控制模塊

          依據(jù)測(cè)得的數(shù)據(jù)和預(yù)置數(shù)的差確定控制信號(hào)的輸出。

          5、智能控制器的應(yīng)用

          單片機(jī)實(shí)現(xiàn)的智能控制器,主要有如下功能:

          (1) 具有比較強(qiáng)的控制功能,可以實(shí)現(xiàn)基本的PID控制、串級(jí)控制、基本的PID控制、串級(jí)控制、比值控制、前饋控制、史密斯補(bǔ)償控制、位調(diào)節(jié)等功能。

          (2) 能對(duì)輸入信號(hào)進(jìn)行處理,如線性化、數(shù)據(jù)濾波、標(biāo)度變換等。

          (3) 具有顯示測(cè)量值和給定值的功能;具有故障報(bào)警的功能。

          (4) 具有通信的功能。

          (5) 具有自動(dòng)/手動(dòng)切換的功能。

          將研發(fā)的智能控制器應(yīng)用于浙大中控的AE2000B型過(guò)程控制實(shí)驗(yàn)裝置中,具有穩(wěn)定性好、精度高、抗干擾能力強(qiáng)等特點(diǎn),滿足實(shí)驗(yàn)所需的各項(xiàng)指標(biāo)的要求,達(dá)到了預(yù)期的效果。

          6、結(jié)束語(yǔ)

          通過(guò)實(shí)踐運(yùn)行表明,所設(shè)計(jì)的系統(tǒng)能夠可靠、穩(wěn)定、無(wú)擾動(dòng)地完成手動(dòng)、自動(dòng)切換的功能。以PID算法為核心的控制器能很好的滿足系統(tǒng)的穩(wěn)定性和精度要求,并且具有開(kāi)發(fā)周期短、成本低、性能高、功能易擴(kuò)大的優(yōu)點(diǎn)。

          參考文獻(xiàn)

          [1] 宋建國(guó).智能儀表原理與設(shè)計(jì)技術(shù).北京航空航天大學(xué)出版社[M],1998

          [2] 馬天程.智能測(cè)控儀表的研究[J].儀表技術(shù)與傳感器,1997,12:23~28

          [3] 袁樂(lè)安.智能儀表的開(kāi)發(fā)[J].礦業(yè)研究與開(kāi)發(fā),2000,20(2) :34~36

          [4] 王 健,單 印.一種高精度智能溫度控制器[J].微計(jì)算機(jī)信息,2002,18(11) :31~32



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();