基于ARM的開關(guān)量信號采集模板的設(shè)計
O 引言
本文設(shè)計的開關(guān)量信號采集模板是一款嵌入式SCADA系統(tǒng)的一種插件,稱為智能數(shù)字量采集板(IntelligentBinary Input Board,簡稱B板)。該裝置主要用于電力系統(tǒng)等工業(yè)過程控制領(lǐng)域的實時數(shù)據(jù)采集與控制。
在絕大多數(shù)工業(yè)測控系統(tǒng)中都不可避免地會涉及開關(guān)量采集的問題,開關(guān)量信號采樣的準(zhǔn)確可靠性對于整個測控系統(tǒng)能否正常穩(wěn)定地工作,起著重要的作用。從以往的工作經(jīng)驗來看,開關(guān)量信號采集的關(guān)鍵問題就是去抖動,避免錯誤的開關(guān)量變位信號困擾系統(tǒng)的使用者。所謂開關(guān)量信號抖動就是由于開關(guān)量信號的采樣通道受到干擾后裝置采集到了錯誤的開關(guān)狀態(tài)并上報給主站系統(tǒng),產(chǎn)生許多莫須有的告警信息,讓系統(tǒng)的使用者難以辨別事件的真?zhèn)危绊懴到y(tǒng)的實用性。在電力系統(tǒng)自動化行業(yè),開關(guān)量的事件順序記錄分辨率的指標(biāo)要求是1~2ms,繁瑣的硬件去抖動電路和軟件延時去抖動算法會破壞系統(tǒng)的實時性指標(biāo)。為此,本文提出了一種快速的去抖動算法,與模板上硬件去抖動濾波電路配合,較好地解決的上述問題。
本文主要就B板的軟硬件設(shè)計原理與實現(xiàn)方法以及去抖動算法進(jìn)行介紹。
1 硬件設(shè)計
1.1 總體設(shè)計
B板以Philips LPC2138 32位ARM微控制器為核心,完成16通道開關(guān)量的數(shù)據(jù)采集。作為嵌入式SCADA系統(tǒng)的一種插件,板上設(shè)計了一路RS422異步串行通信接口,通過該接口與裝置的通信與管理模板(Communication andManagement Board,簡稱M板)通信,將采集生成的實時開關(guān)量信息上報給M板。由于M板要通過RS422總線管理多塊II0板工作,M板采用主從方式實現(xiàn)與II0板的通信連接,為此各IIO板都設(shè)計了ID標(biāo)識地址進(jìn)行身份確定。B板的ID標(biāo)識地址采用8位雙排跳線器設(shè)置,標(biāo)識地址范圍為0lH~FFH。此外,模板還設(shè)計了一路為RS232接口,用于模板的檢測與調(diào)試,以及LPC2138的軟件下載。調(diào)試RS232接口是一個標(biāo)準(zhǔn)的VTl00超級終端接口,通過該接口可以與PC機(jī)進(jìn)行通信連接,使用Windows的超級終端仿真軟件可以十分方便地對該模板進(jìn)行調(diào)試和檢測。同時該串口也是LPC2138軟件的下載接口,將跳線JPl02和JPl03跳接上,即可通過專用軟件將編譯連接生成的軟件下載到LPC2138的FLASH存儲器。
板上開關(guān)量過程通道包括BI回路信號調(diào)理與濾波電路、光電隔離電路、開關(guān)量狀態(tài)訪問電路。由于LPC2138的I/0引腳的數(shù)量有限,硬件設(shè)計時采用部分I/O引腳作為CS片選信號,部分I/O仿真8位數(shù)據(jù)總線對外部訪問端口進(jìn)行分時操作。
為了保證模板運行的穩(wěn)定可靠性,B板設(shè)計有硬件看門狗電路(HWDT),軟件還設(shè)計了軟看門狗定時監(jiān)視器(SWDT)。軟硬看門狗協(xié)同工作,在軟件“走飛”或局部“走死”之后自動恢復(fù)模板運行。
B板的工作原理如圖1所示。
1.2 LP02138的I/0擴(kuò)展
LPC2138是一款總線不出芯片的片上系統(tǒng)(SoC),主要通過I/O引腳對外部電路進(jìn)行訪問。本文設(shè)計的B板有16路BI輸入狀態(tài)、8位ID標(biāo)識地址、異步串口和HWDT等都需要使用I/O資源,LPC2138的I/O引腳不夠用。為此,硬件設(shè)計時通過對LPC2138的I/0引腳進(jìn)行組合使用,實現(xiàn)了對外部電路的分時訪問。具體實現(xiàn)方法是,采用部分I/O引腳作為CS信號,再用8個I/0模仿8位地址總線DBO~7對外部端口進(jìn)行訪問。這種方法的優(yōu)點在于既可減少I/0資源的使用,PCB布線也容易許多。采用這種方法進(jìn)行I/O擴(kuò)展需要注意兩個方面的問題:①由于LPC2138的I/0引腳在啟動時多為低狀態(tài),此時會導(dǎo)致CS信號都使能,造成沖突,需要將用做CS信號的I/0引腳上拉;②軟件訪問外部電路時,要通過設(shè)置I/O狀態(tài)模擬外部電路的訪問時序。B板LPC2138的I/0擴(kuò)展如圖2所示。
1.3 開關(guān)量輸入過程設(shè)計
開關(guān)量輸入過程通道的設(shè)計相對簡單,首先要根據(jù)光偶的驅(qū)動電流確定輸入電阻的大小,并選擇一個電容與該輸入電阻構(gòu)成一個RC濾波回路,過濾過程通道上的毛刺干擾;為了防止用戶接線時把外部驅(qū)動回路的電源極性接反導(dǎo)致光偶燒壞,在回路上反向接入一個二極管對其進(jìn)行保護(hù);為了適應(yīng)外部輸入回路多樣性(如有源脈沖信號和無源干接點信號不能共地),硬件設(shè)計時將16路開關(guān)量分為4組,每組一個公共端。開關(guān)量輸入信號與LPC2138的接口采用HC245實現(xiàn),軟件設(shè)置片選使能,將BI狀態(tài)放入數(shù)據(jù)總線,讀取BI狀態(tài),然后設(shè)置片選禁止,完成BI的采集工作。開關(guān)量輸入過程通道如圖3所示。
1.4 硬件看門狗復(fù)位電路
評論