基于STC12C5A60S2的火災報警控制盤設計
3.2 LED燈顯示模塊軟件設計
本文引用地址:http://www.104case.com/article/273267.htm如圖5、圖8所示,STC12C5A60S2的P00、P01、P02控制兩片級聯的74HC595可以輸出16位任意數據;STC12C5A60S2的P14、P15、P16、P17控制HC154可以輸出16個互斥的低有效16位輸出。LED顯示采用動態掃描,先控制HC154輸出一個互斥的低有效16位輸出選中要顯示LED點陣的列,然后控制兩片級聯的74HC154輸出LED點陣對應的列要顯示的內容,這樣就顯示好一列,然后進行10ms的延時再顯示下一列。
3.3 CAN通信模塊軟件設計
如圖6、圖8所示,MCP2515與STC12C5A60S2通過SPI總線連接,MCP2515第12引腳INT接到STC12C5A60S2的外部中斷1。當MCP2515收到CAN總線上發送給它的數據時,會觸發STC12C5A60S2的外部中斷1,此時STC12C5A60S2通過SPI總線讀MCP2515的RXB0DLC得到CAN數據包的字節長度LEN,讀取RXB0D0處的LEN字節得到CAN數據包的內容;若MCP2515要發送CAN數據包,則STC12C5A60S2通過SPI總線寫MCP2515的TXB0DLC寄存器來設置CAN數據包的長度LEN,寫MCP2515的TXB0D0~TXB0Dx (x=LEN-1)設置CAN數據包的內容。
因為控制盤系統涉及到多機通信,所以需要設置CAN通信使用的協議。CAN總線使用的數據幀由7個不同的位場組成,其中數據場代表CAN總線數據包內容,其長度最大為8字節,所以要通過CAN總線發送數據內容字節長度大于8字節需要分段進行發送。協議上使用的數據包格式為如表1。
本設計中,CAN總線通信的主要內容是按鍵信息和LED燈的信息,其中按鍵信息格式用一個字節表示,字節的低7位表示按鍵的實際值,最高為1表示按鍵請求受控設備打開,為0表示請求設備關閉;LED燈顯示信息用12個字節表示,對應96個LED燈的顯示狀態。
在協議中,為了表示CAN數據包是表示哪種信息,設置數據包格式中第一個分段或當只有一個分段時,數據包格式中的數據DATA[0]=0x01表示按鍵信息,DATA[0]=0x02表示LED燈顯示信息;DATA[1]表示要表示的信息對應的字節長度LEN,之后的LEN字節表示信息的內容。
因為按鍵信息只需要用到一個字節就可以表示,所以設置CAN通信協議數據包格式中SEGFLG為0xfe表示只有一個分段,數據DATA[0]設置為0x01表示數據包代表按鍵信息,數據DATA[1]表示按鍵信息的長度LEN(LEN=1),DATA[2]表示按鍵的消息,DATA[3]為發送方地址SRC、分段說明、數據DATA[0]、DATA[1]、DATA[2]的校驗和。
若發送的是LED燈顯示信息,則需要分段進行發送。設置CAN通信協議數據包格式中SEGFLG分別為1、2、0xff 表示分段1、2和最后一個分段。分段1的數據DATA[0]設置為0x02表示數據包代表LED顯示信息,DATA[1]=0x0c表示LED燈顯示的信息長度為12字節,DATA[2]~DATA[5]表示LED顯示信息的前4個字節,字段2的DATA[0]~DATA[5]表示LED顯示信息的第5到第10字節,字段0xff表示DATA[0]、DATA[1]表示LED顯示信息的后兩個字節,DATA[2]為校驗和。
3.4 串口通信軟件設計
STC12C5A60S2串口發送數據一次可以發送多個字節,不需要分段發送。本設計中主控制盤與消防主機之間的通信采用串口通信。若使用現有的消防主機,則主控制盤串口通信程序需要根據消防主機使用的串口通信協議進行編程。
本設計中,重點主要是火災報警控制盤系統的設計,對消防主機設計不進行深入,假設消防主機使用的串口通信協議如下:通信協議采用校驗和對發送過來的幀進行判斷是否是正確。為保證通信協議的透明性,即保證用戶的數據可以是任何內容,發送方和接收方永遠不會對用戶發送的數據內容做任何限制,該通信協議規定轉義字符為0xdb,若傳送的數據是幀尾(0xFF),則將傳送0xdb,0xdc,若傳送的數據是轉義字符,則傳送0xdb,0xdd這兩個字符。
通信協議中的幀格式如表2所示,串口通信協議中按鍵信息與LED燈顯示信息的表示與CAN通信協議一樣。
4 總結
主和從控制盤上面硬件電路是一樣的,只是從控制盤上面不需要串口接口電路,即需要把從控制盤上面的串口接口電路焊接即可。主控制盤的實物如圖5-1所示。用PC機的串口調試助手模擬消防主機,將PC串口與主控制盤的串口連接,將主控制盤與從控制盤的CAN接口相連接,能夠實現PC機串口調試助手與主控制盤通信,且可以借助主控制盤進行與從控制盤通信。
本設計采用STC12C5A60S2單片機作為微控制器,設計火災報警主控制盤和從控制盤,組成一套完整簡便且成本較低的火災報警控制盤系統。該系統能夠根據火災報警控制系統要監控的設備節點的數量進行擴展,和消防主機配合使用可以組成一套完整的消防火災報警系統。
參考文獻:
[1]陳倬.單片機在火災報警控制系統中的應用[J].科技資訊.2009(22)
[2]陳會鴿,任鳳娟.基于CAN總線的LED路燈控制器設計[J].現代商貿工業.2014(2)
[3]王為國.ZLG7290與51單片機的接口與編程[J].中國基礎教育研究.2008(8)
[4]孔維東,許衛強.16×16點陣LED電子顯示屏的設計[J].無線互聯科技.2013(8)
[5]呂寶鋒.基于MCP2515的CAN總線擴展[J].電子科技.2012(6)
51單片機相關文章:51單片機教程
燃氣報警器相關文章:燃氣報警器原理
評論