1 引言 鍋爐控制系統(tǒng)是一個(gè)典型的大慣性、大滯后、多變量的過程控制系統(tǒng),涉及到壓力、溫度、水位等多個(gè)物理參數(shù)的檢測(cè)與控制,需要同時(shí)控制循環(huán)泵、補(bǔ)水泵、加熱裝置、自動(dòng)排除故障等。該系統(tǒng)有32路數(shù)字輸入信號(hào)、32路數(shù)字輸出信號(hào)、ll路模擬量輸入信號(hào)和8路模擬量輸出信號(hào),因此所需要的硬件電路多,控制復(fù)雜,筆者以Atmel公司的AT91RM9200為處理器設(shè)計(jì)出了一款具有32位高速數(shù)據(jù)處理能力,處理速度可達(dá)200 MI/s,并配有LCD、觸摸屏、SD卡、CPLD、音頻、網(wǎng)絡(luò)、USB及串行接口等多項(xiàng)功能的嵌入式工業(yè)鍋爐控制系統(tǒng)。 在系統(tǒng)設(shè)計(jì)過程中,遇到了I/O口嚴(yán)重不足的問題。雖然AT91RM9200具有122個(gè)通用I/O口,但嵌入式系統(tǒng)本身的各項(xiàng)功能實(shí)現(xiàn)占用了大量的I/O口,剩下用于鍋爐控制的已不多,所以需要進(jìn)行I/O口擴(kuò)展。一般采用的解決方案是利用74HC573、74LS164、74LS165、82C55等電路來實(shí)現(xiàn)I/O擴(kuò)展,但使用上述器件存在PCB面積增大、成本高等缺點(diǎn)。這里筆者采用兩個(gè)成都國騰微電子有限公司開發(fā)的GM8166電路,通過串行輸入并行輸出、并行輸入串行輸出轉(zhuǎn)換即可完成鍋爐32路數(shù)字輸入和32路數(shù)字輸出控制的I/O口擴(kuò)展。 2 GM8166的主要特點(diǎn) GM8166通過串行輸入并行輸出、并行輸入串行輸出、并入并出轉(zhuǎn)換完成I/O口的擴(kuò)展。最高工作頻率為10 MHz,用于配合MCU完成對(duì)多個(gè)外圍電路的控制和信號(hào)采集工作。同時(shí)可接入SPI總線,滿足了更多需求。設(shè)計(jì)時(shí)充分考慮了工作溫度范圍要求和抗電磁干擾能力,完全適用于工業(yè)領(lǐng)域。 CM8166的主要特性如下:
3 GM8166的系統(tǒng)結(jié)構(gòu)和引腳功能 3.1 系統(tǒng)結(jié)構(gòu) GM8166由控制模塊、移位寄存器模塊和I/O口模塊組成。圖1為GM8166的系統(tǒng)結(jié)構(gòu)框圖。 3.2 引腳功能 GM8166采用QFP52和SDIP52兩種封裝形式。 用戶可根據(jù)需要進(jìn)行選擇。GM8166的引腳功能說明如下:
4 GM8166在嵌入式鍋爐中的應(yīng)用 4.1 硬件電路設(shè)計(jì) GM8166共有三大功能,滿足三種不同應(yīng)用。申并/并串轉(zhuǎn)換功能為并行口比較緊張的系統(tǒng)通過串口擴(kuò)展32位并行口;并行口切換功能可以將l組8位并行口擴(kuò)展成3組8位并行口,通過控制信號(hào)在3組并口中切換完成輸入/輸出功能;SPI總線功能使該器件可以接入SPI總線中作為從設(shè)備進(jìn)行數(shù)據(jù)收/發(fā),同樣完成串并轉(zhuǎn)換的功能。這里筆者采用兩個(gè)GM8166器件分別實(shí)現(xiàn)32位數(shù)據(jù)的并行輸入串行輸出轉(zhuǎn)換和32位數(shù)據(jù)的串行輸入并行輸出轉(zhuǎn)換,擴(kuò)展為64位I/O口,從而實(shí)現(xiàn)對(duì)鍋爐控制系統(tǒng)數(shù)字量輸入輸出信號(hào)的控制與傳輸。GM8166與AT9lRM9200的硬件原理圖如圖2。 如圖2所示AT91RM9200的PA口與GM8166連接。GM8166-l設(shè)為32位數(shù)據(jù)串行輸入并行輸出模式:AT91RM9200通過PA0口連續(xù)發(fā)送32位數(shù)據(jù)到GM8166-1。在該模式下,當(dāng)Reset信號(hào)為‘1’時(shí),GM8166移位寄存器復(fù)位.即所有的寄存器的值都為‘0’;當(dāng)CSN為‘O’,Reset為‘0’,同時(shí)有時(shí)鐘輸入時(shí),GM8166對(duì)移位寄存器進(jìn)行移位,32個(gè)時(shí)鐘信號(hào)后,32位數(shù)據(jù)全部輸出到寄存器輸出口,由LE和OC/EN控制PDATA[31:0]的輸出狀態(tài),從而實(shí)現(xiàn)對(duì)鍋爐的控制。 GM8166-2設(shè)為32位數(shù)據(jù)并行輸入串行輸出模式:AT91RM9200通過PAl2口連續(xù)接收32位數(shù)據(jù)。在該模式下,當(dāng)Reset信號(hào)為‘1’時(shí),GM8166移位寄存器復(fù)位,即所有寄存器的值都為‘0’;當(dāng)CSN為‘0’,Reset為‘0’,OC/EN信號(hào)為‘O’時(shí),同時(shí)來一個(gè)時(shí)鐘上升沿,GM8166將輸入端口(32位)數(shù)據(jù)并行保存到移位寄存器中;當(dāng)Reset為‘O’和OC/EN信號(hào)為‘1’時(shí),GM8166對(duì)移位寄存器進(jìn)行移位,從而實(shí)現(xiàn)對(duì)鍋爐信號(hào)的采集。 4.2 軟件設(shè)計(jì) 本系統(tǒng)軟件均采用C語言編寫。軟件示例如下。 4.2.1 32位數(shù)據(jù)串行輸入并行輸出轉(zhuǎn)換 4.2.2 32位數(shù)據(jù)并行輸入串行輸出轉(zhuǎn)換 如圖2所示,用PAl作為GM8166-l的CLK,用PA0作SDATA,用PAll作為GM8166-2的CLK,用PAl2作SDATA,用軟件模擬產(chǎn)生串行接口的傳輸過程。編程時(shí),應(yīng)注意GM8166的內(nèi)部移位寄存器都是在CLK的上升沿移位的,所以讀入時(shí)應(yīng)在CLK的上升沿之后讀入SDATA的狀態(tài),寫出時(shí)應(yīng)在CLK上升沿之前置SDATA相應(yīng)電平。 5 結(jié)束語 嵌入式鍋爐控制器中使用了兩個(gè)GM8166器件,實(shí)現(xiàn)了鍋爐中22個(gè)溫度、壓力、水位、燃燒機(jī)、風(fēng)機(jī)等狀態(tài)的檢測(cè)和10個(gè)手動(dòng)按鍵的輸入;32個(gè)水泵、變頻器、燃燒機(jī)、風(fēng)機(jī)的啟停以及輕重油選擇、報(bào)警等開關(guān)量的輸出,解決了使用8255等通用并行I/O電路所帶來的成本高、功耗大和占用電路板面積大等系統(tǒng)結(jié)構(gòu)設(shè)計(jì)與安裝方面的問題。 |