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