本發(fā)明涉及自動化儀表研究領(lǐng)域,特別涉及一種基于I2C的網(wǎng)絡化變送器及其通信實現(xiàn)方法。
背景技術(shù):變送器是一種基礎(chǔ)自動化設(shè)備,用于把不同傳感器送來的物理量信號變換為標準信號制式的測量信號。目前變送器與傳感器之間的信號連接主要為模擬信號,由于不同物理量的變換電路不同,因此變送器一般只能實現(xiàn)對一種物理量實現(xiàn)變送功能,針對不同物理量需要重新設(shè)計變送器。此外在更換傳感器時,往往需要對變送器進行重新校正,由于該過程在應用現(xiàn)場進行,又需要標準樣本(如3.5%的甲烷氣體),因此校正非常不方便,校正過程工作量非常大。為了使變送器有通用性,IEEE協(xié)會制定了智能傳感器接口標準IEEE1451,但是該標準復雜,模塊劃分不合理,模塊之間的接口過于專用,沒有考慮到微處理器技術(shù)和通信技術(shù)的快速發(fā)展,近20年來,一直未被工業(yè)界所接受。在實際應用中,新型變送器最好能兼容已有的變送器類型,這樣才能減少用戶投資,有利于推廣?,F(xiàn)有變送器輸出的標準信號一般為4~20mADC電流信號,為了方便與其它自動化儀表構(gòu)成自動化網(wǎng)絡,一些變送器也提供Modbus/RS485通信接口。數(shù)字化和網(wǎng)絡化是自動化儀表的發(fā)展方向,數(shù)字化和網(wǎng)絡化不僅可以提高變送器的測量精度,而且可以提供遠程診斷、標定和組態(tài)等模擬變送器沒有的新功能。此外,為了使變送器能單獨使用,需要有報警輸出,并能在現(xiàn)場通過手操器進行參數(shù)和功能配置。
技術(shù)實現(xiàn)要素:本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺點與不足,提供一種基于I2C(Inter-IntegratedCircuit)的網(wǎng)絡化變送器,該變送器兼容現(xiàn)有變送器的大多數(shù)功能,可以連接多個智能傳感器,不需要進行現(xiàn)場標定,即插即用,使用和更換方便。本發(fā)明的另一目的在于提供一種基于上述網(wǎng)絡化變送器的通信實現(xiàn)方法,該方法綜合應用了變送器廣播通信模式、請求-應答通信模式和發(fā)布-訂閱通信模式,提高了通信效率,能方便地自動分配智能傳感器的I2C地址,方便使用。本發(fā)明的目的通過以下的技術(shù)方案實現(xiàn):基于I2C的網(wǎng)絡化變送器,包括微控制器電路、人機交互模塊、變送器電源電路、傳感器電源電路、I2C通信電路、模擬輸入電路、4~20mA信號輸出電路、繼電器輸出電路、Modbus/RS485通信電路和接線端子排,其中外部模擬傳感器和具有I2C接口的智能傳感器通過接線端子排與網(wǎng)絡化變送器連接,同時接線端子排還連接24V電源線、繼電器輸出線、4~20mA信號線和Modbus/RS485通信線;所述傳感器電源電路用于在微控制器電路控制下輸出每個智能傳感器所需要的電壓,I2C通信電路通過I2C總線與外部智能傳感器連接。優(yōu)選的,所述微控制器電路中的微控制器采用STM32L151R8T6單片機,變送器工作參數(shù)保存在單片機內(nèi)部的EEPROM中,單片機外接Flash存儲器。Flash存儲器低地址的存儲空間用于存儲16點陣中文字庫以用于LCD中文顯示,高地址的存儲空間用于因Modbus通信故障或者變送器單獨使用時存儲傳感器采集的數(shù)據(jù)。從而提高數(shù)據(jù)采集的可靠性。優(yōu)選的,所述網(wǎng)絡化變送器除了接線端子排外,其他所有電路均密封在防爆金屬殼內(nèi),防爆金屬殼上設(shè)置若干個金屬孔,變送器內(nèi)部的連接線通過金屬孔連接接線端子排,金屬孔被密封膠密封。優(yōu)選的,所述人機交互模塊包括手操器紅外接口電路和液晶顯示模塊,手操器紅外接口電路和液晶顯示模塊分別與微控制器電路連接。進一步的,所述防爆金屬殼的頭部采用透明的有機玻璃。從而可以通過該有機玻璃窗口實現(xiàn)紅外手操和LCD顯示的人機界面。優(yōu)選的,所述手操器紅外接口電路包括UART和IrDA收發(fā)器,用于接收手操器的操作命令和數(shù)據(jù)輸入。優(yōu)選的,所述液晶顯示模塊包括帶LED背光的點陣黑白液晶屏。優(yōu)選的,所述變送器電源電路通過接線端子排與外部的24V電源相連,變送器電源電路包括DC/DC轉(zhuǎn)換器和LDO穩(wěn)壓器,DC/DC轉(zhuǎn)換器用于將24V電源轉(zhuǎn)換為5V,LDO穩(wěn)壓器用于將5V電源轉(zhuǎn)換為3.3V電源,變送器電源電路輸出的5V電源用于供液晶顯示模塊和繼電器輸出電路工作,3.3V電源用于供變送器其它電路工作。具體的,所述傳感器電源電路包括DC/DC前向通道電路、模擬反饋電路、電壓加法電路和傳感器工作電源測量電路,其中DC/DC前向通道電路用于將24V輸入電壓變?yōu)閭鞲衅魉璧墓ぷ麟妷?,模擬反饋電路與電壓加法電路串聯(lián),模擬反饋電路采集DC/DC前向通道電路的輸出信號,電壓加法電路一端與微控制器電路相連,用于接收微控制器電路發(fā)出的反饋控制信號,另一端與DC/DC前向通道電路相連;傳感器工作電源測量電路用于將DC/DC前向通道電路的輸出信號發(fā)送到微控制器電路。用戶根據(jù)模擬傳感器和智能傳感器的使用要求,可以通過手操器輸入對應的電壓值,變送器電源電路、微控制器電路共同作用,可以提供可變輸出的電源電壓給外部模擬傳感器和智能傳感器。更進一步的,所述模擬反饋電路和傳感器工作電源測量電路均為電阻分壓電路。具體的,所述I2C通信電路包括兩個I2C總線上拉電阻。一種基于上述網(wǎng)絡化變送器的通信實現(xiàn)方法,包括步驟:(1)具有I2C接口的智能傳感器上電后,根據(jù)NTSSP協(xié)議(變送器與智能傳感器的通信協(xié)議),先向變送器發(fā)送NTSSP地址請求;所述NTSSP協(xié)議由物理層、數(shù)據(jù)鏈路層和應用層組成,NTSSP的物理層和數(shù)據(jù)鏈路層與I2C標準一致,所述NTSSP協(xié)議中的應用層,其數(shù)據(jù)包結(jié)構(gòu)如下:地址、功能號、數(shù)據(jù)長度、變量名、變量數(shù)值和校驗碼,其中功能號用于表示數(shù)據(jù)包的功能,不同的功能號分別表示申請NTSSP地址、分配NTSSP地址、讀請求數(shù)據(jù)、寫請求數(shù)據(jù)、訂閱數(shù)據(jù)、發(fā)布數(shù)據(jù);(2)變送器根據(jù)智能傳感器信息表進行智能傳感器ID登記并選擇未分配的NTSSP地址(即I2C地址),然后通過廣播方式向該ID號的智能傳感器發(fā)送分配的NTSSP地址;(3)智能傳感器通過該NTSSP地址把自己的工作參數(shù)、測量參數(shù)報告給變送器;(4)變送器登記好智能傳感器的屬性參數(shù)后,變送器采用訂閱模式設(shè)定智能傳感器的工作參數(shù);(5)智能傳感器根據(jù)這些工作參數(shù)工作,并采用發(fā)布模式主動向變送器報告測量值和報警情況。本發(fā)明在上述實現(xiàn)方法中提出了基于I2C的網(wǎng)絡變送器與智能傳感器的協(xié)議(NetworkTransmitterandSmartSensorProtocol,簡稱NTSSP協(xié)議),NTSSP協(xié)議是在現(xiàn)有I2C總線協(xié)議的基礎(chǔ)上增加應用層。NTSSP協(xié)議綜合應用了變送器廣播通信模式、請求-應答通信模式和發(fā)布-訂閱通信模式,從而可以提高通信效率,充分發(fā)揮I2C的多主通信能力。通過增加該應用層,變送器可以自動獲取每個智能傳感器信息,從而實現(xiàn)即插即用,使用方便。優(yōu)選的,所述步驟(1)中的NTSSP協(xié)議中的數(shù)據(jù)鏈路層只采用了SlaveReceiver和MasterTransmitter兩種機制,是I2C數(shù)據(jù)鏈路層的子集,在通信過程中當需要發(fā)送數(shù)據(jù)時采用Master模式,發(fā)送完后采用Slave模式,等待數(shù)據(jù)接收。優(yōu)選的,在智能傳感器正常工作時,變送器中傳感器電源電路中的DC/DC前向通道電路將24V輸入電壓變?yōu)閭鞲衅魉璧墓ぷ麟妷?,模擬反饋電路采集DC/DC前向通道電路的輸出信號后輸入到電壓加法電路中,同時傳感器工作電源測量電路也采集DC/DC前向通道電路的輸出信號將信號發(fā)送到微控制器電路,微控制器電路根據(jù)智能傳感器工作電壓的設(shè)定值、當前的測量值求取電壓差,將此電壓差輸入到電壓加法電路中,電壓加法電路根據(jù)此電壓差、當前的測量值輸出反饋信號到DC/DC前向通道電路。實現(xiàn)智能傳感器的工作電壓可以在2.5~5.0V之間變化。優(yōu)選的,所述步驟(5)中,在智能傳感器向變送器報告測量值和報警情況時,變送器中I2C接收為地址匹配中斷接收,具體如下:(5-1)當發(fā)生中斷后,把接收的數(shù)據(jù)包暫時保存在輸入緩沖區(qū)中,同時數(shù)據(jù)個數(shù)計數(shù)器加1;(5-2)將數(shù)據(jù)包中的數(shù)據(jù)長度的字節(jié)與數(shù)據(jù)個數(shù)計數(shù)器進行比較,判斷數(shù)據(jù)包是否結(jié)束,如果結(jié)束則執(zhí)行步驟(5-3),否則,執(zhí)行步驟(5-7);(5-3)計算數(shù)據(jù)包的校驗碼;(5-4)判斷校驗碼是否正確,若正確,則執(zhí)行步驟(5-5);若不正確,則本次接收無效,執(zhí)行步驟(5-6);(5-5)將當前數(shù)據(jù)包保存到變送器的接收緩沖區(qū)中,對數(shù)據(jù)包進行處理,同時進行數(shù)據(jù)個數(shù)清零,準備下次數(shù)據(jù)包接收;執(zhí)行步驟(5-7);(5-6)數(shù)據(jù)個數(shù)計數(shù)器清零;執(zhí)行步驟(5-7);(5-7)中斷返回。本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點和有益效果:1、本發(fā)明變送器采用I2C總線代替IEEE1541標準,因此通信不僅標準化,而且非常容易在普通的微控制器上實現(xiàn),可以實現(xiàn)多主通信機制,除了可以連接一種模擬傳感器外,還可以連接具有I2C接口的多種智能傳感器,充分利用通用I2C標準,降低了實現(xiàn)成本。2、本發(fā)明變送器還同時具有4~20mADC模擬標準、Modbus/RS485通信接口和繼電器開關(guān)輸出,因此輸出可以兼容現(xiàn)有的變送器。3、本發(fā)明中設(shè)置了人機交互模塊,因此具有良好的中文LCD人機界面,同時通過紅外手操器可以對變送器的工作方式和工作參數(shù)進行配置。另外,變送器中的微控制器電路還具有存儲模塊,因此具有數(shù)據(jù)保存能力。4、本發(fā)明提出的NTSSP協(xié)議是在現(xiàn)有I2C總線協(xié)議的基礎(chǔ)上增加應用層,由于大多數(shù)微處理器集成有I2C接口,即使不含硬件I2C片上外設(shè)的單片機,也可以通過集電極開路輸出的I/O引腳配合軟件來實現(xiàn),因此該實現(xiàn)方式具有成本低、易于實現(xiàn)的優(yōu)點。5、本發(fā)明中的NTSSP協(xié)議綜合應用了變送器廣播通信模式、請求-應答通信模式和發(fā)布-訂閱通信模式,提高了通信效率,能方便地自動分配智能傳感器的I2C地址,從而不需要對變送器和智能傳感器進行現(xiàn)場標定,傳感器即插即用,非常方便。附圖說明圖1是本發(fā)明的工作原理示意圖。圖2是本發(fā)明中傳感器電源電路工作原理示意圖。圖3是本發(fā)明NTSSP協(xié)議的結(jié)構(gòu)。圖4是圖3中應用層數(shù)據(jù)包結(jié)構(gòu)。圖5是本實施例1變送器的工作流程圖。圖6是本實施例1中中斷程序的流程圖。具體實施方式下面結(jié)合實施例及附圖對本發(fā)明作進一步詳細的描述,但本發(fā)明的實施方式不限于此。實施例1參見圖1,基于I2C的網(wǎng)絡化變送器包括STM32L單片機電路、手操器紅外接口電路、液晶顯示模塊、繼電器輸出電路、4~20mA信號輸出電路、模擬輸入電路、變送器電源電路、Modbus/RS485通信電路、傳感器電源電路、I2C通信電路、接線端子排。接線端子排右邊的模擬傳感器和多個智能傳感器是根據(jù)實際測量變量類型選用的傳感器模塊,通過端子排連接變送器,其中智能傳感器具有I2C接口。此外,變送器的外部線也通過接線端子排連接,外接線包括24V電源線、繼電器輸出線、4~20mA信號線、Modbus/RS485通信線。本實施例中變送器的硬件結(jié)構(gòu)全部密封在防爆金屬殼內(nèi),變送器內(nèi)部的連接線通過金屬孔連接接線端子排,金屬孔被密封膠密封。防爆金屬外殼的頭部采用透明的有機玻璃密封,通過該有機玻璃窗口實現(xiàn)紅外手操和LCD顯示的人機界面。本實施例中,STM32L單片機電路采用STM32L151R8T6單片機作為核心控制芯片,變送器工作參數(shù)保存在單片機內(nèi)部的4KBEEPROM中,單片機外接512KB的Flash存儲器AT25DF041A,其低地址的272KB用于存儲16點陣中文字庫,用于LCD中文顯示,高地址的240KB用于因Modbus通信故障或者變送器單獨使用時存儲傳感器采集數(shù)據(jù),提高數(shù)據(jù)采集的可靠性。手操器紅外接口電路和液晶顯示模塊構(gòu)成人機交互模塊,手操器紅外接口電路由單片機片上外設(shè)UART和IrDA收發(fā)器TFDU4101及其相關(guān)電路組成,接收手操器的操作命令和數(shù)據(jù)輸入。液晶顯示模塊由帶LED背光的128×64點陣黑白液晶屏LM6059BCW及其相關(guān)電路組成,單片機采用PWM方式調(diào)節(jié)液晶LED背光的亮度。變送器電源電路把外接的24V電源通過DC/DC轉(zhuǎn)換器CS51412變?yōu)?V電源,再通過LDO穩(wěn)壓器SPX1117變?yōu)?.3V電源,5V電源用于LCD背光和繼電器輸出電路工作,3.3V電源用于系統(tǒng)其它電路工作。模擬輸入電路和4~20mA信號輸出電路主要用于兼容現(xiàn)有的模擬變送器。模擬輸入電路用于對某種類型的傳感器信號(如溫度等)進行放大,然后再連接單片機的片上ADC。4~20mA信號輸出電路把測量變量變?yōu)殡娏餍盘栞敵?,由單片機片上DAC和XTR111及其外圍電路組成。繼電器輸出電路提供繼電器報警輸出,由驅(qū)動芯片ULN2003和2個繼電器ATX209組成。Modbus/RS485通信電路由單片機片上UART和低功耗RS485芯片SP3075E組成,實現(xiàn)變送器的Modbus/RS485通信。傳感器電源電路提供可變輸出電源電壓供智能傳感器工作,工作原理如圖2所示,傳感器電源電路包括DC/DC前向通道電路、模擬反饋電路、電壓加法電路和傳感器工作電源測量電路,其中,DC/DC前向通道電路由核心控制芯片CS51412及其外圍電路組成,用于把24V輸入電壓變?yōu)閭鞲衅魉璧墓ぷ麟妷海漭敵鲭妷悍答侂娐吩谠心M反饋電路基礎(chǔ)上串聯(lián)了一電壓加法電路,通過單片機的DAC輸出電壓EsControl來改變原來的反饋電壓VFB,從而調(diào)節(jié)Es。模擬反饋電路和傳感器工作電源測量電路都為電阻分壓電路,傳感器工作電源測量電路的輸出EsMeasure接單片機片上ADC,單片機根據(jù)傳感器工作電壓的設(shè)定值(有多個傳感器時,取最大值)與測量值比較求誤差,根據(jù)此電壓差來控制EsControl的大小,實現(xiàn)Es從2.5~5.0V的變化。NTSSP協(xié)議如圖3所示,由物理層M301、數(shù)據(jù)鏈路層M302和應用層M303組成,NTSSP的物理層和數(shù)據(jù)鏈路層與I2C標準一致,成本低,接線少。NTSSP的數(shù)據(jù)鏈路層只采用了SlaveReceiver和MasterTransmitter兩種機制,是I2C數(shù)據(jù)鏈路層的子集,不同的是在通信過程中需要在兩種模式中切換,當需要發(fā)送數(shù)據(jù)時變?yōu)镸aster模式,發(fā)送完后變?yōu)镾lave模式,等待數(shù)據(jù)接收。為了提高了通信效率,充分發(fā)揮I2C的多主通信能力,NTSSP協(xié)議綜合應用了變送器廣播通信模式、請求-應答通信模式和發(fā)布-訂閱通信模式。NTSSP協(xié)議的應用層數(shù)據(jù)包如圖4,由地址、功能號、數(shù)據(jù)長度、變量名、變量數(shù)值和校驗碼組成,功能號表示數(shù)據(jù)包的功能,如:功能號0為申請NTSSP地址,功能號1為分配NTSSP地址,功能號2為讀請求數(shù)據(jù),功能號3為寫請求數(shù)據(jù),功能號12為訂閱數(shù)據(jù),功能號13為發(fā)布數(shù)據(jù)。上述基于I2C的網(wǎng)絡化變送器,其實現(xiàn)方法如下:根據(jù)NTSSP協(xié)議,變送器節(jié)點的NTSSP地址(即I2C地址)固定為1,廣播地址為0,智能傳感器的NTSSP地址是在2~127之間臨時分配的,但是每個智能傳感器包括具有唯一性的12字節(jié)ID號。變送器在其內(nèi)部EEPROM保存有每個傳感器的信息表,并由變送器維護。當智能傳感器上電后首先向變送器發(fā)送NTSSP地址請求,變送器根據(jù)智能傳感器信息表進行智能傳感器ID登記并選擇未分配的NTSSP地址,然后通過廣播方式向該ID號的智能傳感器發(fā)送分配的NTSSP地址,此后該智能傳感器通過該地址與變送器進行通信。分配地址后,智能傳感器把自己的工作電壓、測量物理量類型等參數(shù)報告給變送器,變送器登記好傳感器的屬性參數(shù)后,變送器采用訂閱模式設(shè)定傳感器的采樣周期、報警值等工作參數(shù),之后傳感器根據(jù)這些工作參數(shù)工作,采用發(fā)布模式主動向變送器報告測量值和報警情況。本實施例變送器在工作時由一個主程序和多個中斷程序進行控制,中斷程序主要為通信接收中斷程序,具有類似的結(jié)構(gòu),圖6給出了I2C的接收數(shù)據(jù)中斷程序。在主程序中配置I2C接收為地址匹配中斷接收,當發(fā)生中斷后,進入M411開始I2C中斷程序,在M412中,把接收的數(shù)據(jù)暫時保存在輸入緩沖區(qū)中,同時數(shù)據(jù)個數(shù)計數(shù)器加1。在M413中,將數(shù)據(jù)包中的數(shù)據(jù)長度字節(jié)(還需要加3,包括功能號和校驗碼,地址不計入)與數(shù)據(jù)個數(shù)計數(shù)器進行比較來判斷數(shù)據(jù)包是否結(jié)束,若還沒有結(jié)束則進入M418進行中斷返回,若結(jié)束則進入M414計算數(shù)據(jù)包的校驗碼。M415判斷校驗碼是否正確,若錯誤則本次接收無效,進入M417,數(shù)據(jù)個數(shù)計數(shù)器清零;若校驗碼正確,進入M416把數(shù)據(jù)包保存到主程序的接收緩沖區(qū)中,在主程序中進行處理,同時進行數(shù)據(jù)個數(shù)清零,準備下次數(shù)據(jù)包接收。主程序除了完成通信發(fā)送工作外,還根據(jù)人機界面或者Modbus通信的數(shù)據(jù)完成變送器工作參數(shù)配置,根據(jù)接收到的傳感器數(shù)據(jù)更新4~20mA輸出和繼電器報警處理和輸出。參見圖5,包括步驟如下:M400:主程序上電后,進入M401;M401:完成I/O、片上外設(shè)、緩沖內(nèi)存單元(如I2C接收數(shù)據(jù)個數(shù)計數(shù)器等)初始化,啟動RTC計時,啟動UART(紅外)、UART(RS485)和I2C通信中斷。初始化之后,進入無限循環(huán),順序完成各個功能模塊。M402:完成與手操器的紅外通信處理,根據(jù)用戶要求完成變送器工作參數(shù)配置,使得變送器可以不需要進行Modbus/RS485聯(lián)網(wǎng)也可以單獨使用。M403:實現(xiàn)中文人機界面,根據(jù)變送器工作狀態(tài)顯示測量數(shù)據(jù)或者設(shè)定工作參數(shù)。M404:完成模擬傳感器的數(shù)據(jù)采集,先讀片上ADC輸出,再根據(jù)配置的工作參數(shù)轉(zhuǎn)換成測量數(shù)據(jù)。M405:完成I2C的通信處理,保存智能傳感器的測量數(shù)據(jù)。M406:完成Modbus/RS485的通信處理,發(fā)送測量數(shù)據(jù),并進行測量數(shù)據(jù)外部Flash備份,外部Flash的240KB數(shù)據(jù)存儲區(qū)由首尾相繼的環(huán)形數(shù)據(jù)表組成,實現(xiàn)最新數(shù)據(jù)的備份,方便手操器讀取或者上位機通過Modbus/RS485網(wǎng)絡讀取歷史數(shù)據(jù)。M407:把測量數(shù)據(jù)通過片上DAC變?yōu)?~20mA模擬輸出,同時根據(jù)設(shè)定的報警參數(shù)(包括多傳感器的聯(lián)動)進行報警處理和相應的繼電器輸出,之后進入下一循環(huán)。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。