16通道開關(guān)信號(hào)采集卡的研制
摘要: 給出以LPC2131 ARM單片機(jī)為核心的16通道開關(guān)信號(hào)采集卡的硬、軟件設(shè)計(jì)。
關(guān)鍵詞: 開關(guān)信號(hào);采集卡;ARM
引言
在大型工業(yè)控制系統(tǒng)中,各級(jí)設(shè)備的啟動(dòng)、停止,都對(duì)整個(gè)系統(tǒng)的運(yùn)行狀況有著一定的影響,對(duì)這些裝置開關(guān)量信號(hào)的采集、動(dòng)作時(shí)序的記錄也顯得尤為重要。所以,有必要設(shè)計(jì)一種開關(guān)量信號(hào)采集卡,來對(duì)這些信號(hào)進(jìn)行采集,以對(duì)設(shè)備運(yùn)行狀態(tài)、生產(chǎn)事故的檢測(cè)和分析、查詢提供依據(jù)。
本文介紹的16通道開關(guān)信號(hào)采集卡采用飛利浦LPC2131 ARM單片機(jī)為核心,以0.5ms的采樣周期,可對(duì)16路開關(guān)量輸入信號(hào)進(jìn)行采集,對(duì)開關(guān)量的跳變波形及發(fā)生時(shí)間進(jìn)行實(shí)時(shí)測(cè)量,并將數(shù)據(jù)上傳至上位機(jī)歷史數(shù)據(jù)庫(kù),其分辨率為1ms。同時(shí),可通過與上位機(jī)軟件的配合對(duì)歷史數(shù)據(jù)進(jìn)行全方位查詢,以分析系統(tǒng)運(yùn)行情況。
測(cè)量卡件留有UART通訊接口,與控制器聯(lián)網(wǎng),將采集的數(shù)據(jù)輸送到控制器處理后,再發(fā)送到工作站顯示狀態(tài),并同時(shí)記錄事件發(fā)生的時(shí)間和狀態(tài),將記錄的數(shù)據(jù)存入工作站歷史數(shù)據(jù)庫(kù)。
信號(hào)采集卡
采集卡在卡件主面板上以16通道LED燈指示通道信號(hào)狀態(tài),同時(shí)在通道與通道之間,通道與底板之間實(shí)現(xiàn)隔離,并實(shí)現(xiàn)了與現(xiàn)場(chǎng)的電磁屏蔽。以保證測(cè)量到的信號(hào)不受干擾。采集卡模塊規(guī)格如表1所示。
同時(shí),采集卡通過UART通訊接口,通訊物理層使用CAN的總線驅(qū)動(dòng)芯片TJA1040,與控制器聯(lián)網(wǎng),將所采集的數(shù)據(jù)發(fā)送到控制器中。
采集卡硬件設(shè)計(jì)
16通道開關(guān)量信號(hào)采集卡硬件電路由信號(hào)采集電路、單片機(jī)系統(tǒng)、通訊接口電路、外接引腳、人機(jī)接口五部分組成,其硬件電路結(jié)構(gòu)示意圖如圖1所示。
圖1 開關(guān)量測(cè)量卡件硬件結(jié)構(gòu)圖
開關(guān)量信號(hào)采集電路
開關(guān)量信號(hào)采集電路是實(shí)現(xiàn)將現(xiàn)場(chǎng)的各路開關(guān)量信號(hào)采集送入處理芯片內(nèi),實(shí)際設(shè)計(jì)中采用飛利浦LPC2131 ARM單片機(jī)。
信號(hào)采集電路的測(cè)量原理為:現(xiàn)場(chǎng)16路開關(guān)量信號(hào)接入卡件測(cè)量端子,由于考慮到現(xiàn)場(chǎng)信號(hào)的波動(dòng)和干擾,為了保證系統(tǒng)穩(wěn)定、可靠地運(yùn)行,防止各類現(xiàn)場(chǎng)及電源干擾對(duì)系統(tǒng)的影響,通道中采用了光電耦合器,將卡件內(nèi)部與現(xiàn)場(chǎng)輸入信號(hào)進(jìn)行隔離,從而實(shí)現(xiàn)信號(hào)的準(zhǔn)確測(cè)量。實(shí)際設(shè)計(jì)中,采用了PS2701光電耦合器,卡件測(cè)量通路的結(jié)構(gòu)框圖如圖2所示。
圖2 開關(guān)量信號(hào)采集電路
后來,由于考慮到信號(hào)反轉(zhuǎn)的簡(jiǎn)易性,將光電耦合器改為PS2705,實(shí)現(xiàn)了信號(hào)反轉(zhuǎn)亦可的功能,所以實(shí)際測(cè)量電路進(jìn)一步簡(jiǎn)化為圖3。
圖3 簡(jiǎn)化開關(guān)量信號(hào)采集電路
經(jīng)過光電耦合器隔離轉(zhuǎn)化后的信號(hào),通過雙向總線驅(qū)動(dòng)器與處理芯片的數(shù)據(jù)總線相連接,將數(shù)據(jù)送入處理芯片LPC2131中進(jìn)行處理。
單片機(jī)系統(tǒng)
處理芯片選用飛利浦LPC2131,它是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的32位ARM7TDMI-STM CPU的微控制器,并帶有32kB的嵌入的高速Flash存儲(chǔ)器。128 位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。同時(shí),LPC2131對(duì)代碼規(guī)模有嚴(yán)格控制,可使用16 位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。
LPC2131的較小的封裝和極低的功耗使其可理想地用于小型系統(tǒng)中,如訪問控制和POS 機(jī)。寬范圍的串行通信接口和片內(nèi)8kB 的SRAM 使LPC2131非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、軟modem、聲音辨別和低端成像,為它們提供巨大的緩沖區(qū)空間和強(qiáng)大的處理功能。多個(gè)32 位定時(shí)器、1個(gè)或2個(gè)10位8路ADC、10 位DAC、PWM 通道和47個(gè)GPIO以及多達(dá)9個(gè)邊沿或電平觸發(fā)的外部中斷使其特別適用于工業(yè)控制系統(tǒng)。
單片機(jī)系統(tǒng)以LPC2131為核心,片內(nèi)自帶8K閃速存儲(chǔ)器,因而無需擴(kuò)展外部ROM;要實(shí)現(xiàn)對(duì)開關(guān)量有關(guān)歷史數(shù)據(jù)的追憶,有關(guān)信息必須易存儲(chǔ)且不容易丟失,在系統(tǒng)失電后可以有效的保存數(shù)據(jù)。其測(cè)量的數(shù)據(jù)信息包括開關(guān)量發(fā)生的年、月、日、時(shí)、分、秒、毫秒以及當(dāng)時(shí)各路通道的開關(guān)量狀態(tài)。
圖4單片機(jī)系統(tǒng)電路框圖
同時(shí),由于在系統(tǒng)運(yùn)行中各種干擾等因素的影響,往往會(huì)引起程序運(yùn)行出現(xiàn)死循環(huán)后跑飛現(xiàn)象,系統(tǒng)中還采用了簡(jiǎn)單的硬件WATCHDOG電路。
通訊接口電路
為了使測(cè)量卡件能夠有效的將采集到的數(shù)據(jù)發(fā)送給控制器,卡件設(shè)計(jì)了UART電路。通過串口,卡件可根據(jù)上位機(jī)的操作命令,完成有關(guān)的數(shù)據(jù)傳送、參數(shù)調(diào)整和時(shí)鐘校對(duì)等任務(wù)。
卡件采用TJA1090通訊芯片,它是專為串行通訊模式設(shè)計(jì)的,輸出端還接有穩(wěn)壓管保護(hù)電路,接口電路如圖5所示。
圖5 通訊接口電路
卡件模塊規(guī)格及其外接電路引腳
卡件通過專用引腳與卡件底板相連接,以傳輸采集到的信號(hào)??饨与娐芬_如圖6所示。
圖6外接電路引腳圖
人機(jī)接口
卡件采用串口通訊與控制器通訊,再將測(cè)量的信號(hào)上傳到上位機(jī),由上位機(jī)的組態(tài)畫面顯示,人機(jī)界面友好,數(shù)據(jù)可用于系統(tǒng)組態(tài)、歷史數(shù)據(jù)查詢等操作,同時(shí)可以實(shí)現(xiàn)過程控制SOE查詢,通過與其配套使用的SOE軟件,可實(shí)現(xiàn)去除抖動(dòng)、削峰、削谷等功能,實(shí)現(xiàn)了SOE事故追憶和查詢,其精度可達(dá)到1ms級(jí)。
采集卡軟件設(shè)計(jì)
卡件軟件設(shè)計(jì)采用功能模塊結(jié)構(gòu)。全部軟件包括主程序、中斷服務(wù)子程序等。其中主程序用來巡回檢測(cè)和執(zhí)行上位機(jī)送來的命令。中斷服務(wù)子程序分為溢出中斷子程序和串行口中斷子程序,前者用于開關(guān)量跳變信號(hào)的采集,后者用于接收上位機(jī)發(fā)來的數(shù)據(jù)。
主程序
卡件帶電后,進(jìn)入主程序。首先判斷卡件是否為上電復(fù)位,如果不是上電復(fù)位,則通過死機(jī)恢復(fù)處理后直接進(jìn)入巡回檢測(cè)階段;如果是上電復(fù)位,則先進(jìn)行卡件自檢及初始化,包括設(shè)置堆棧指針,清內(nèi)存,設(shè)置時(shí)間常數(shù)等,然后允許中斷,進(jìn)入正常的巡回處理程序,可以實(shí)現(xiàn)參數(shù)設(shè)置,開關(guān)量跳變時(shí)間、狀態(tài)采集等功能。如果在主程序中檢測(cè)到程序中定義的接收數(shù)據(jù)標(biāo)志位置位,表明單片機(jī)已接收到上位機(jī)發(fā)出的數(shù)據(jù),接收數(shù)據(jù)過程由串行口中斷子程序來完成。根據(jù)上位機(jī)的數(shù)據(jù),測(cè)量卡件作出相應(yīng)的響應(yīng),或回送數(shù)據(jù),或參數(shù)設(shè)置。
中斷服務(wù)子程序
信號(hào)采集服務(wù)子程序主要完成發(fā)生動(dòng)作的開關(guān)量信號(hào)的采集,由溢出中斷來實(shí)現(xiàn),每0.5ms中斷一次。
通訊服務(wù)子程序主要指的是對(duì)上位機(jī)數(shù)據(jù)的接收子程序,由串行口中斷來實(shí)現(xiàn)。而發(fā)送回上位機(jī)的數(shù)據(jù)大多為開關(guān)量記錄信息,數(shù)據(jù)量較大,主要在主程序中完成。同時(shí),可以設(shè)置通訊時(shí)波特率的大小,此項(xiàng)在卡件參數(shù)設(shè)置中可實(shí)現(xiàn)。
結(jié)語
目前該卡件已在江蘇省南通天生港電廠#10、#11機(jī)組脫硫監(jiān)控系統(tǒng)中投入使用。各項(xiàng)性能指標(biāo)皆達(dá)到原設(shè)計(jì)要求,運(yùn)行可靠,狀況良好,可廣泛適用于化工、冶金、電力等行業(yè)工業(yè)過程中實(shí)現(xiàn)開關(guān)量的采集,事故追憶等功能。
參考文獻(xiàn):
1. 王家楨主編,調(diào)節(jié)器與執(zhí)行器,2003年,清華大學(xué)出版社,34~46
2. 張靖等編,檢測(cè)技術(shù)與系統(tǒng)設(shè)計(jì),中國(guó)電力出版社,2002年,308~340
3. 常斗南、李全利、張學(xué)武編,可編程控制器原理,應(yīng)用,實(shí)驗(yàn),機(jī)械工業(yè)出版社,36~45
4. 汪道輝主編,邏輯與可編程控制系統(tǒng),機(jī)械工業(yè)出版社,2004,210~232
5. 張玉明主編,計(jì)算機(jī)控制系統(tǒng)分析與設(shè)計(jì),中國(guó)電力出版社,2000,37~85
6. 鐘肇新,可編程控制器原理及應(yīng)用,華南理工大學(xué)出版社,2002,50~53
評(píng)論