本發明屬于LED指示燈測控領域,特別涉及一種LED指示燈監控系統。
背景技術:
LED指示燈體積小、使用壽命長、色彩鮮艷、響應速度快,廣泛的用于儀器儀表的狀態顯示。在某些應用場合,LED指示燈可以安裝在遠離主機一段距離的地方,典型的例子就是安裝在汽車儀表板上的指示器或工業控制面板上的各類指示器。在要求嚴格的應用場合,除了控制LED指示燈的亮滅狀態,還可能需要監控其故障狀態,以便于能及時的維護。
現有LED指示燈監控的不足之處在于:大量LED指示燈沒有進行狀態監控,也有部分LED指示燈的狀態進行了監控,但監控的LED指示燈數量少;另外,監控方法通常是使用AD采樣其工作電壓,這種方法的采樣時間長并且占用處理器IO口,非常消耗CPU資源監控方法消耗CPU資源,不適用于大規模LED指示燈同時采樣。
例如,某校峨眉校區鐵路沙盤信號燈控制系統中,沙盤上有860個信號燈,采用人工方法對信號燈的故障診斷是一個繁雜的工作,所以迫切需要一種手段來快速的診斷LED信號燈的故障狀態。
技術實現要素:
本發明所要解決的技術問題是提供一種LED指示燈監控系統,能夠批量、快速的控制和讀取LED指示燈的亮滅狀態,同時診斷LED指示燈的故障狀態,以便于及時維護。
為解決上述技術問題,本發明采用的技術方案是:
一種LED指示燈監控系統,包括微控制器,所述微控制器連接串行總線驅動芯片,所述串行總線驅動芯片與串入并出移位寄存器、并入串出移位寄存器分別連接;所述串入并出移位寄存器用于實現控制數據和檢測數據的輸出,所述并入串出移位寄存器用于實現LED指示燈的采樣數據的輸入,且串入并出移位寄存器與并入串出移位寄存器之間通過電平比較網絡相連接;所述電平比較網絡為:電阻R1一端為輸入信號Q2x和輸出信號D2x,另一端連接LED指示燈的一端,還連接電阻R2的一端;電阻R2的一端連接電阻R1,電阻R2的另一端為輸出信號D2x+1,還連接電阻R3的一端;電阻R3的一端連接電阻R2,電阻R2的另一端為輸入信號Q2x+1。
進一步的,所述微控制器采用STM32F103VET6,串行總線驅動芯片采用74HC245,所述微控制器的接口MISO、PB11、SCLK、PB12、MOSI對應連接串行總線驅動芯片的接口B7、A4、A6、A5、A8。
進一步的,所述串入并出移位寄存器采用74HC595,并入串出移位寄存器采用74HC165,串行總線驅動芯片的接口A7、B4連接并入串出移位寄存器,串行總線驅動芯片的接口B5、B8連接串入并出移位寄存器,串行總線驅動芯片的接口B6與串入并出移位寄存器、并入串出移位寄存器都相連;74HC165上的接口D0、D1、D2、D3、D4、D5、D6、D7,74HC595上的接口Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7,D2x、D2x+1、Q2x、Q2x+1之間連接電平比較網絡(9),相鄰的四個接口連接一個電平比較網絡(9),即D2x、D2X+1連接電平比較網絡(9)的輸出,Q2x、Q2x+1連接電平比較網絡(9)的輸入,其中,x=0、1、2或3。
進一步的,所述微控制器還通過RS485接口連接到上位機。
進一步的,所述RS485接口采用MAX485。
進一步的,所述微控制器的接口PB5連接喇叭。
與現有技術相比,本發明的有益效果是:LED指示燈監控系統是接收上位機指令,控制相應LED指示燈或讀取LED指示燈狀態;監視LED指示燈的故障狀態,當故障產生時,立即聲音報警并將故障點位置和故障信息上傳給上位機;可以同時對10000個以內的信號指示燈進行監控,實時響應速度控制在10ms。
附圖說明
圖1是本發明LED指示燈監控系統功能示意圖。
圖2是本發明中LED電平比較網絡采樣示意圖。
圖3是電平比較網絡示意圖。
圖4是本發明中LED指示燈檢測表與燈位的關系圖。
圖5是本發明中設備故障表組成示意圖。
圖中:1-上位機;2-接口轉換芯片;3-喇叭;4-微控制器(MCU);5-串行總線驅動芯片;6-串入并出移位寄存器;7-并入串出移位寄存器;8-電平比較網絡簡圖;9-電平比較網絡。
具體實施方式
下面結合附圖和具體實施方式對本發明作進一步的說明。本發明一種LED指示燈監控系統,包括微控制器4,所述微控制器4連接串行總線驅動芯片5,所述串行總線驅動芯片5與串入并出移位寄存器6、并入串出移位寄存器7分別連接;所述串入并出移位寄存器6用于實現控制數據和檢測數據的輸出,所述并入串出移位寄存器7用于實現LED指示燈的采樣數據的輸入,且串入并出移位寄存器6與并入串出移位寄存器7之間通過電平比較網絡9相連接;所述電平比較網絡9為:電阻R1一端為輸入信號Q2x和輸出信號D2x,另一端連接LED指示燈的一端,還連接電阻R2的一端;電阻R2的一端連接電阻R1,電阻R2的另一端為輸出信號D2x+1,還連接電阻R3的一端;電阻R3的一端連接電阻R2,電阻R2的另一端為輸入信號Q2x+1。
所述微控制器4采用STM32F103VET6,串行總線驅動芯片5采用74HC245,所述微控制器4的接口MISO、PB11、SCLK、PB12、MOSI對應連接串行總線驅動芯片5的接口B7、A4、A6、A5、A8。
所述串入并出移位寄存器6采用74HC595,并入串出移位寄存器7采用74HC165,串行總線驅動芯片5的接口A7、B4連接并入串出移位寄存器7,串行總線驅動芯片5的接口B5、B8連接串入并出移位寄存器6,串行總線驅動芯片5的接口B6與串入并出移位寄存器6、并入串出移位寄存器7都相連;74HC165上的接口D0、D1、D2、D3、D4、D5、D6、D7,74HC595上的接口Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7,D2x、D2x+1、Q2x、Q2x+1之間連接電平比較網絡9,相鄰的四個接口連接一個電平比較網絡9,即D2x、D2X+1連接電平比較網絡9的輸出,Q2x、Q2x+1連接電平比較網絡9的輸入,其中,x=0、1、2或3。
所述微控制器4還通過RS485接口連接到上位機1。所述RS485接口采用MAX485。所述微控制器4的接口PB5連接喇叭3。
采用電平比較網絡9對LED進行并行采樣,考慮到整個系統的實時性,LED指示燈的故障和狀態變化要求在10ms進行響應,所以采樣周期設置為10ms。在每個采樣周期內,要完成采樣、傳輸、數據處理、輸出等幾個過程,通過測算,理論上該系統可以同時對10000個以內的信號指示燈進行監控。與上位機1通信采用RS485,既可實現長距離通信,也可以實現多個LED指示燈監控系統組網通信。每塊采樣驅動板可監控32個LED指示燈,通過串行總線進行級聯,可實現對大量LED進行監控。
控制LED指示燈:上位機1發出控制LED指示燈指令,主板上的MCU4接到指令后對數據進行組織,然后通過串行總線將數據傳給采集驅動板控制LED指示燈。故障狀態監視:主板上的MCU4以10ms為周期控制采集驅動板采集數據,并將燈數據讀至MCU4的內存中。對內存中的數據進行分析后,如果LED指示燈亮滅狀態發生改變,MCU4則將該燈的狀態信息傳給上位機1;如果LED指示燈發生故障,則發出報警,并將報警信息傳給上位機1。
基于LED的工作電壓和CMOS門電路輸入電壓閥值的特點,在LED指示燈工作電路配合監測輔助電路的情況下,對每個LED指示燈構建一個兩路輸入、兩路輸出的電平比較網絡。用電平網絡檢測后,可以檢測出LED指示燈是處于正常、短路、斷路和接地四種狀態,其中短路、斷路和接地屬于故障狀態。
對多個LED指示燈控制的電平比較網絡如圖2所示。總線使用74HC245驅動,LED指示燈的控制數據通過CMOS工藝制造的串入并出移位寄存器74HC595送出。檢測數據采用CMOS工藝制造的并串入出移位寄存器74HC165會送至MCU。每個LED指示燈需要使用74HC595和74HC165兩個點位。當要控制序號為x燈位的LED指示燈時,控制數據需送至74HC595的Q2x端,Q2x端輸出高低電平使LED指示燈Lx熄滅或點亮。當檢測序號為x燈位的LED指示燈時,在Q2x端和Q2x+1端輸出00B、01B、10B和11B四種狀態,然后讀回每種狀態的D2x端和D2x+1端的值,根據返回的邏輯值進行分析就可以判斷出LED指示燈的狀態。
圖2中:
上位機1:用于顯示LED指示燈的亮滅狀態和故障狀態,并控制LED指示燈亮滅。
接口轉換芯片2:采用MAX485,將MCU串行口的TTL電平轉化為RS485接口,以便于和上位機建立遠距離通信。
喇叭3:當LED指示燈發生故障時,發出聲音報警。
MCU4:采用STM32F103VET6芯片,用于控制LED指示燈狀態和周期性檢測LED指示燈狀態。
串行總線驅動芯片5:采用74HC245,驅動SPI接口的串行總線。
串入并出移位寄存器6:采用74HC595,實現控制數據和檢測數據的輸出。
并入串出移位寄存器7:采用74HC165,實現LED指示燈的采樣數據的輸入。
電平比較網絡簡圖8:電平比較網絡圖的簡化示意圖。
電平比較網絡9:既能控制LED指示燈亮滅,也能通過控制LED指示燈的時序,采用特定算法識別出LED指示燈的故障狀態。
采集驅動板10:為了使LED指示燈監控系統適應于不同大小的應用,實現硬件可裁剪,每塊采集驅動板可以驅動32個LED指示燈,采集驅動板之間可以通過SPI串行總線實現級聯。
當檢測LED指示燈時,每個LED指示燈占用掉74HC595和74HC165的兩位端口,如圖4。輸入狀態值有四種,每種狀態輸出后,從74HC165返回數據構成一個檢測表,分別記為檢測狀態表0,檢測狀態表1,檢測狀態表2和檢測狀態表3。
檢測表中的數據位和LED指示燈對應,在圖5反映驅動數據和對應的檢測狀態表,當74HC595的奇數位和偶數位送數據00B時,返回檢測狀態表0,送數據01B時,返回檢測狀態表1,送數據10B時,返回檢測狀態表2,送數據11B時,返回檢測狀態表3。每個狀態表中的兩位與LED指示燈對應,將四個表中相應的兩位組成一個字節就是設備故障表,檢測狀態表3對應到故障表的最高2位,檢測狀態表1對應到故障表的最低2位。構成的設備故障表如圖5所示。
設備故障表里的每個字節對應一個LED指示燈的狀態值。編程時就可以通過選擇語句來判斷LED指示燈所處的狀態,LED_Fault_State[i]保存的是序號為i的LED指示燈的故障狀態。程序主干如下所示:
switch(LED_Fault_State[i])
{
case 0xf8:
...//設備狀態“正常”處理程序
break;
case 0xf5:
...//設備狀態“短路”處理程序
break;
case 0xf0:
...//設備狀態“斷路”處理程序
break;
case 0x50:
...//設備狀態“接地”處理程序
break;
}。