展烽 孫小進(jìn)
【摘要】針對(duì)礦用氣體傳感器在生產(chǎn)過程中需逐臺(tái)調(diào)校、費(fèi)時(shí)費(fèi)力的問題,提出了一種基于I2C總線協(xié)議的批量調(diào)校方法。調(diào)校主機(jī)通過I2C通信方式可以實(shí)時(shí)訪問多臺(tái)傳感器的顯示值,并可通過I2C總線接口向多臺(tái)需要調(diào)校的傳感器發(fā)送調(diào)校命令與調(diào)校值,傳感器接收到調(diào)校數(shù)據(jù)后完成自我調(diào)校,通過這種方式,有效提高了氣體傳感器的生產(chǎn)效率。
【關(guān)鍵詞】氣體傳感器;批量調(diào)校;I2C總線
引言
隨著國家對(duì)煤礦安全生產(chǎn)的重視,礦用氣體傳感器的需求量與日俱增,尤其是瓦斯、一氧化碳等有毒有害氣體類傳感器。這些傳感器在生產(chǎn)過程中一般采用先調(diào)零點(diǎn)再調(diào)線性的方法進(jìn)行調(diào)校,從而保證傳感器的測量精度。調(diào)校過程一般采用人工逐臺(tái)調(diào)校的方法,操作過程繁瑣,不能自動(dòng)根據(jù)誤差值發(fā)送調(diào)校命令,無法與計(jì)算機(jī)或其他調(diào)校設(shè)備相連[1],人為干擾因素較多且存在通氣中毒的隱患,鑒于以上幾點(diǎn),筆者設(shè)計(jì)了一種氣體傳感器批量生產(chǎn)調(diào)校的裝置,使氣體傳感器的生產(chǎn)過程可以快速化,自動(dòng)化。
1.傳感器批量調(diào)校裝置的總體設(shè)計(jì)
在基于I2C總線技術(shù)的傳感器批量調(diào)校裝置中,調(diào)校主機(jī)與傳感器有各自的I2C接口,通過I2C接口,傳感器把測量的氣體濃度值發(fā)送給調(diào)校主機(jī),調(diào)校主機(jī)可以通過串口將數(shù)據(jù)傳給上位機(jī)顯示;調(diào)校主機(jī)通過I2C接口向傳感器發(fā)送調(diào)校命令和調(diào)校值,傳感器接收到命令和數(shù)據(jù)后,通過單片機(jī)內(nèi)部程序完成自我調(diào)校,從而實(shí)現(xiàn)單臺(tái)傳感器的調(diào)校工作。
圖1 傳感器批量調(diào)校裝置基本結(jié)構(gòu)圖
當(dāng)需要進(jìn)行傳感器的批量調(diào)校時(shí),調(diào)校主機(jī)通過I2C接口逐個(gè)讀取傳感器的當(dāng)前顯示值再傳給上位機(jī),經(jīng)過人工判斷后,上位機(jī)發(fā)送調(diào)校命令給調(diào)校主機(jī),調(diào)校主機(jī)再通過I2C接口將調(diào)校命令和調(diào)校值逐臺(tái)發(fā)送給傳感器,當(dāng)所有傳感器都成功接收到調(diào)校命令和調(diào)校值后,即完成了裝置內(nèi)部傳感器的批量調(diào)校工作。傳感器批量調(diào)校裝置基本結(jié)構(gòu)圖如圖1所示。
2.I2C總線設(shè)計(jì)
2.1 硬件實(shí)現(xiàn)
I2C總線由時(shí)鐘線SCL和數(shù)據(jù)線SDA構(gòu)成,目前大部分單片機(jī)都已集成包含了I2C硬件接口,使得在操作I2C總線時(shí)軟件編程變的簡單。鑒于筆者單位所生產(chǎn)的傳感器均采用新華龍的C8051系列單片機(jī),故本套裝置中調(diào)校主機(jī)也選用新華龍的C8051F502單片機(jī)作為微控制器,內(nèi)含看門狗、I2C接口、UART接口、64Kb空間的FLASH、25路I/O口,既可通過I2C接口與傳感器進(jìn)行數(shù)據(jù)交換,也可通過UART接口與上位機(jī)PC進(jìn)行通信。
在進(jìn)行傳感器的批量調(diào)校工作時(shí),為確保調(diào)校主機(jī)與每臺(tái)傳感器之間的I2C通信能獨(dú)立可靠地進(jìn)行,采用模擬開關(guān)用來控制每臺(tái)傳感器I2C接口對(duì)外通信的通斷。本文選用具有16路開關(guān)通斷功能的CD4067作為I2C總線傳輸?shù)拈_關(guān),I2C總線的SCL與SDA各占用一個(gè)CD4067,形成第一組I2C通道開關(guān)。每組中的兩個(gè)CD4067的共用地址碼和使能端,使得調(diào)校主機(jī)在與16臺(tái)傳感器之間進(jìn)行I2C通信時(shí),SCL和SDA同時(shí)接通,確保通信無誤;若在電路加入另外一組CD4067,其地址碼與第一組共用,但使能端不與第一組CD4067共用,通過控制兩組CD4067的使能端,理論上便可實(shí)現(xiàn)調(diào)校主機(jī)最多可與32臺(tái)傳感器之間的I2C通信。硬件原理圖見圖2。
2.2 軟件實(shí)現(xiàn)
一次典型的I2C數(shù)據(jù)傳輸包括一個(gè)起始條件(START)、一個(gè)地址字節(jié)(位7-1:7位從地址;位0:R/W方向位)、一個(gè)或多個(gè)字節(jié)的數(shù)據(jù)和一個(gè)停止條件(STOP)。每個(gè)接收的字節(jié)都必須用SCL高電平期間的SDA低電平來確認(rèn)(ACK),如果接收器件不確認(rèn),則發(fā)送器件將讀到一個(gè)非確認(rèn)(NACK),這時(shí)用SCL高電平期間的SDA高電平表示[2]。如圖3是一次I2C總線的基本時(shí)序。
對(duì)I2C接口的訪問和控制是通過3個(gè)特殊寄存器來實(shí)現(xiàn)的:配置寄存器SMB0CF,數(shù)據(jù)寄存器SMBODAT,控制寄存器SMBOCN。其中SMB0CF用于配置I2C的主從模式的使能、時(shí)鐘速率等;SMBODAT用于緩存將要寫出的數(shù)據(jù)或讀入的數(shù)據(jù);SMBOCN用于控制I2C接口的工作模式,包括主發(fā)送,主接收,從發(fā)送,從接收模式,當(dāng)中斷標(biāo)志SI=1時(shí),可讀取SMBOCN的高四位來確定當(dāng)前接口的工作狀態(tài),并通過軟件完成下一步的事件。常用的主發(fā)送模式和主接收模式的操作時(shí)序,如圖4和圖5。
當(dāng)調(diào)校主機(jī)與某一通道的傳感器之間通過I2C總線相連時(shí),傳感器主動(dòng)發(fā)送產(chǎn)品的狀態(tài)信息和氣體測量值給調(diào)校主機(jī)(調(diào)校主機(jī)作為從接收);通過更改CD4067的地址碼或使能位,打開另外一組I2C通道,讀取另外一臺(tái)傳感器的當(dāng)前測量值。當(dāng)上位機(jī)發(fā)送調(diào)校命令給調(diào)校主機(jī)時(shí),調(diào)校主機(jī)主動(dòng)發(fā)送調(diào)校命令和調(diào)校數(shù)據(jù)給傳感器(傳感器作為從接收),調(diào)校完成后,傳感器主動(dòng)發(fā)送調(diào)校結(jié)果給調(diào)校主機(jī)(調(diào)校主機(jī)作為從接收),以便和調(diào)校主機(jī)確認(rèn)調(diào)校成功。(下轉(zhuǎn)第199頁)(上接第197頁)為確保每次數(shù)據(jù)通信無誤,將所有需要發(fā)送的數(shù)據(jù)字節(jié)進(jìn)行8位CRC校驗(yàn)后作為最后一個(gè)字節(jié)發(fā)送;接收數(shù)據(jù)時(shí)將接收最后一個(gè)字節(jié)之前的數(shù)據(jù)進(jìn)行8位CRC校驗(yàn),與最后接收的一個(gè)字節(jié)比較,如果相等,說明通信數(shù)據(jù)無誤,若不相等,進(jìn)入相應(yīng)的軟件處理程序。
3.具體應(yīng)用
在礦用氣體傳感器批量調(diào)校裝置中,由于一臺(tái)調(diào)校主機(jī)最多只可以和32臺(tái)傳感器進(jìn)行通信,故在整個(gè)調(diào)校裝置中采用上位機(jī)控制多臺(tái)調(diào)校主機(jī)的方式從而形成對(duì)大批量傳感器的批量調(diào)校。在結(jié)合實(shí)際調(diào)校裝置的氣室尺寸和調(diào)校主板的PCB布局后,最終研制完成了氣體傳感器智能調(diào)校老化柜,裝有組態(tài)軟件的上位機(jī)通過串口與7臺(tái)地址不一樣的調(diào)校主機(jī)通信,每臺(tái)調(diào)校主機(jī)通過I2C總線與18臺(tái)傳感器進(jìn)行通信,即每批次可完成126臺(tái)傳感器的調(diào)校工作,每臺(tái)傳感器通過各自的I2C總線通道與調(diào)校主機(jī)通信,發(fā)送實(shí)時(shí)氣體濃度測量值;組態(tài)軟件作為該調(diào)校裝置的上位機(jī)控制平臺(tái),強(qiáng)大的實(shí)時(shí)數(shù)據(jù)庫可以保存?zhèn)鞲衅鱾魉偷膶?shí)時(shí)數(shù)據(jù)[3];當(dāng)柜體內(nèi)部充滿標(biāo)準(zhǔn)氣樣時(shí),操作人員通過上位機(jī)的組態(tài)軟件向調(diào)校主機(jī)發(fā)送命令即可完成批量調(diào)校工作。
4.結(jié)語
礦用氣體類傳感器批量調(diào)校裝置實(shí)現(xiàn)了對(duì)傳感器調(diào)校過程的自動(dòng)化,通過運(yùn)用I2C總線技術(shù),可實(shí)時(shí)采集每臺(tái)傳感器的氣體濃度測量值,在上位機(jī)上裝入相應(yīng)的數(shù)據(jù)分析軟件,可實(shí)時(shí)分析判斷每臺(tái)傳感的測量誤差、數(shù)據(jù)穩(wěn)定性、響應(yīng)時(shí)間等參數(shù),并可按照國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)或企業(yè)標(biāo)準(zhǔn)打印數(shù)據(jù)報(bào)表,減少了人工數(shù)據(jù)記錄等工作。目前該裝置已可以完成催化瓦斯傳感器和一氧化碳傳感器的調(diào)校工作與老化工作,經(jīng)過多次實(shí)驗(yàn)證明,這種批量調(diào)校方法速度快,準(zhǔn)確率高,無論是操作性還是安全性均超過傳統(tǒng)的人工逐臺(tái)調(diào)校的方法,大大提高了礦用產(chǎn)品生產(chǎn)過程的自動(dòng)化程度。
參考文獻(xiàn)
[1]邢倩,田慕琴,王雪松.組態(tài)軟件與Modebus協(xié)議在礦用傳感器調(diào)校裝置中的應(yīng)用[J].工況自動(dòng)化,2012(4):73-75.
[2]張培仁,孫力.基于C語言C8051F系列微控制器原理與應(yīng)用[M].北京:清華大學(xué)出版社,2006.
[3]曾慶波,孫華,周衛(wèi)宏.監(jiān)控組態(tài)軟件及其應(yīng)用技術(shù)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2010.
基金項(xiàng)目:礦用氣體傳感器生產(chǎn)工裝的研究(項(xiàng)目編號(hào):KJ-2013-TDCZ-04),天地工藝創(chuàng)新基金。
作者簡介:展烽(1988—),男,江蘇靖江人,大學(xué)本科,2010畢業(yè)于江蘇理工學(xué)院,現(xiàn)供職于天地(常州)自動(dòng)化股份有限公司,從事電氣工藝工作。