技術頻道

      基于CAN總線的大容量漢字火災樓層顯示器設計1

      1 引言

        火災樓層顯示器作為火災自動報警系統的重要組成部分,是一種安裝在樓層或獨立防火區中的數字式火災報警顯示裝置。它通過報警總線與火災報警控制器相連,處理并顯示報警總線上的數據。火災樓層顯示器中的內置單片機將接收到的總線信息進行判斷、分析和處理,將報警的探測器地址編號轉換成相應的火警地點信息(例如房間號和房間類型等),連同火警類型一道通過液晶顯示出來,同時發出聲光報警信號,通知失火區域的人員。

        目前國內現有的火災樓層顯示器大都以51單片機作為MCU。因為ROM尋址空間所限,火災樓層顯示器大都只能顯示火警所在樓層號和地址號,無法以直觀的漢字信息提示情況各異的具體火警地點。如果將漢字信息通過總線分發到各個樓層顯示器,巨大的通訊量又會給火警系統總線帶來沉重負荷,導致整個火警系統效率低下,延誤火警上報時機。本文提出了一種基于CAN總線的大容量漢字火災樓層顯示器,很好的解決了上述問題。

      2 火災報警系統總體功能描述

        火災報警控制系統中,中央火警控制器通過CAN總線和各個單元進行實時通訊并完成各項控制和報警功能。單元是火災探測器、手動報警按鈕、輸入輸出模塊、樓層顯示器等設備的總稱。它們是系統終端,直接探測火災信號,并通過通道上報給控制器,同時接收由各種通道轉發控制器給單元的聯動信息(啟動輸入輸出模塊控制的滅火裝置)、顯示信息(樓層顯示器顯示火災信息)等。通道是回路模塊、轉接模塊和總線控制盤等設備的總稱。它們是控制設備和終端的通道,是拓撲網絡構成的中繼設備。火災報警控制系統的總體結構和樓層顯示器在系統的中的位置如圖1所示。


      圖1 火災報警控制系統結構及樓層顯示器所在位置顯示

      3 系統功能及硬件描述

      3.1 漢字樓層顯示器硬件設計方案

        如圖2所示,漢字樓層顯示器包括單片機及其外圍電路,CAN總線模塊, FLASH存儲器,漢字液晶模塊,UART接口,以及燈和按鍵,蜂鳴器。單片機可通過UART接收PC上傳下來的漢字信息,存儲到FLASH中作為地址信息的查詢數據庫。通過CAN控制器MCP2510和CAN總線驅動器 PCA82C250組成的CAN通信模塊和火災報警控制器進行CAN總線通信。如果有火警發生,單片機將記錄火警信息,查詢FLASH得到火警發生的漢字地址信息,并在漢字液晶上滾動顯示火警和信息查詢結果。同時,發生火警時還可通過查詢鍵快速查詢火警信息,通過蜂鳴器報警,通過消音鍵消音,并點亮發光二極管報警。未發生火警時,通過自檢鍵自檢可以檢查各個功能是否能正常工作。


      圖2 漢字樓層顯示器結構框圖

      3.2 FLASH存儲器電路設計

        FLASH選用的SST29SF040是SST公司推出的高速可編程閃存。它符合JEDEC標準,具有512K×8 Bits的存儲結構;芯片擦除及寫入的時間快,整片擦除只需70毫秒,段擦除只需18毫秒,字編程寫入時間僅為14微秒;可靠性高,能夠重復寫100,000次,數據可以保存100年不丟失。

        SST29SF040的容量是512K Bytes,而51系列單片機的ROM直接尋址范圍是64K Bytes,如果不加以處理而直接使用,將會浪費大量的存儲空間。我們使用了一種分頁存儲方式,使得FLASH存儲空間得以充分利用,大大擴充了單片機ROM尋址范圍。按照每條漢字信息占用32個 Bytes計算,理論上可以最大存儲16384條火警地址信息,足以應付絕大多數復雜的工程環境。圖3為存儲器電路,最高位地址線A16-A18接單片機的P1.0-P1.2,因而FLASH存儲器實現了8頁,每頁64K的外部存儲結構。在每次讀寫FLASH時,將P1.0-P1.2賦不同的值即可實現不同的頁選。假設page為待選取的頁號變量(0-7),在Keil Cx51中通過下列語句即可實現讀寫前的選頁操作:P1 = (P1 & amp; 0xf8) | page;


      圖3 FLASH存儲器分頁存儲電路

      3.3漢字液晶顯示模塊設計

        我們選用金鵬電子公司的OJM2*8A漢字液晶模塊作為顯示設備。OJM2*8A中文液晶顯示模塊內含GB 2312的15*15點陣國標一、二級簡體漢字和 8*8點陣及8*16點陣ASCII字符,用戶輸入GB2312區位碼或ASCII碼即可實現文本顯示。每個漢字的區位碼只占用兩個字節,是原來漢字點陣所需存儲單元的1/16。

        漢字液晶模塊接口協議為請求/應答(REQ/BUSY)握手方式。應答BUSY高電平(BUSY =1)表示液晶模塊忙于內部處理,不能接收用戶命令;BUSY低電平(BUSY =0)表示液晶模塊空閑,等待接收用戶命令。發送命令到液晶模塊可在BUSY =0后的任意時刻開始,先把用戶命令的當前字節放到數據線上,接著發高電平REQ信號(REQ =1)通知液晶模塊處理當前數據線上的命令或數據。液晶模塊在收到外部REQ高電平信號后立即讀取數據線上的命令或數據,同時將應答線BUSY 變為高電平,表明模塊已收到數據并正在忙于對此數據的內部處理。此時用戶對模塊的寫操作已經完成,用戶可以撤消數據線上的信號并可作模塊顯示以外的其他工作,也可不斷地查詢應答線BUSY是否為低(BUSY=0 ?),如果BUSY=0,表明模塊對用戶的寫操作已經執行完畢,可以再送下一個數據。如向模塊發出一個完整的顯示漢字的命令,包括坐標及漢字代碼在內共需5個字節。模塊在接收到最后一個字節后才開始執行整個命令的內部操作,因此最后一個字節的應答BUSY 高電平(BUSY =1)持續時間較長。對液晶模塊寫漢字時序圖如圖4所示。


      圖4 對液晶模塊寫漢字時序圖

      3.4 CAN總線通訊模塊設計

        我們選擇Microchip公司的MCP2510CAN控制器和Philips公司的PCA82C250CAN收發器構建CAN總線通訊模塊。 MCP2510支持CAN2.0A/B協議,可接收和發送2.0協議下的標準幀、擴展幀和遠程幀。MCP2510擁有三個發送緩沖區和兩個接收緩沖區,可以進行接收濾波和消息管理,防止過度發送和過度接收形成擁塞。其最大的優點是擁有傳輸速率可達5Mb/S的SPI端口,節省MCU端口,提高通信速度。 Philips公司的82C250CAN總線收發器可與MPC2510無縫連接,它有高速模式,斜率控制模式和延時模式。經過多次的實驗證實其工作在斜率控制模式下最為穩定,速度也能構滿足系統10Kbps的傳輸速率。


      圖5 CAN總線通信電路

        CAN總線通訊模塊電路如圖5所示,單片機通過I/O口直接和MCP2510的SPI口相連,用軟件模擬實現SPI接口協議。PCA82C250作為 MCP2510與物理CAN總線的接口。如果需要進一步提高系統的抗干擾能力,可在MCP2510和PCA82C250之間加一個光電隔離器。

      4 系統軟件設計

        漢字樓層顯示器軟件功能主要是1.將串口發送下來的漢字信息文件寫入FLASH存儲。2.和火災報警控制器進行CAN通信,如果發現有火警信息,則查找FLASH中的漢字地址信息,予以顯示在漢字液晶上報警,如有多條火警信息,則滾動顯示各條信息。


      圖6 漢字樓層顯示器軟件流程圖

        圖6是漢字樓層顯示器軟件流程圖。用page(值為0-7)表示讀寫的FLASH頁,用count(值為0-65535)表示每頁頁內地址。其中 page0-page6用來存儲通過串口下載的漢字信息,page7用來存儲接收到的火警等動態信息。一旦接收到新火警,即查詢FLASH中相應的漢字信息,并在液晶上滾動顯示。

        為了快速定位所查詢的火警漢字地址信息,我們采用數組結構存儲。盡管這樣會因為實際火警地址不等長,而造成存儲中出現一些空地址,存儲效率不高,但是由于我們對數組的查找是一種可以直接定位的快速查找,不用采用鏈表之類的復雜數據結構,也避免了二分檢索之類復雜的搜索算法。對于單片機而言,實質上是以比較小的空間為代價換來了比較高的時間效率,還是十分值得的。

      5 結語

        本文提出的基于CAN總線的大容量漢字火災樓層顯示器,較好的解決了現有火災樓層顯示器的缺陷。對大于51單片機ROM 64K尋址空間的數據存儲需求,采取分頁存儲的訪問方式可以很好的解決這個問題。通過在FLASH中存儲大容量數據信息,可以避免因為CAN總線上通訊數據流量過大而導致火警不能及時傳達,延誤報警時機。而且FLASH中的漢字信息可以通過串口在線擦寫,便于現場調試。目前產品已經投入實用,用戶反應運行良好。

      參考文獻

        [1] 朱明,王殊. 一種基于CAN總線的大型火災報警系統下位網絡的設計與實現. 消防技術與產品信息,2003,(12):5~8

        [2] 王立峰,王曉平,耿慶波,彭熙偉. 基于CAN總線的客房通信控制器的設計.微計算機信息,2005,(16):3~7

        [3] 徐愛鈞,彭秀華編著. Keil Cx51 V7.0單片機高級語言編程與uVision2應用實踐. 電子工業出版社,2004

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 国产精品区AV一区二区| 国产一区二区三区乱码| 99精品国产高清一区二区麻豆| 国产美女精品一区二区三区| 波多野结衣免费一区视频| 亚洲一区二区三区电影| eeuss鲁片一区二区三区| 日本免费一区二区三区最新vr| 国产亚洲综合一区二区三区| 中文字幕亚洲一区| 污污内射在线观看一区二区少妇| 亚洲一区二区三区在线观看蜜桃| 亚洲AV无码一区二区乱子仑| 日本精品一区二区三区在线视频一| av无码人妻一区二区三区牛牛 | 中文字幕一区二区三区视频在线| 国产一区二区三区久久| 一区二区三区无码被窝影院| 久久精品国产亚洲一区二区三区| 人妻久久久一区二区三区| 国产精品第一区揄拍无码| 国产精品无圣光一区二区| 加勒比无码一区二区三区| 在线观看国产区亚洲一区成人| 99精品国产高清一区二区麻豆| 国产成人无码精品一区在线观看| 3d动漫精品啪啪一区二区中 | 上原亚衣一区二区在线观看| 亚洲一区在线视频观看| 无码欧精品亚洲日韩一区夜夜嗨| 中文字幕一区二区三区精彩视频| 一级毛片完整版免费播放一区 | 亚洲成a人一区二区三区| 亚洲国产视频一区| 91福利国产在线观看一区二区| 免费无码一区二区三区蜜桃大| 日韩精品一区二区三区中文| 视频一区在线播放| 亚洲av色香蕉一区二区三区| 人妻体内射精一区二区三区| 色噜噜AV亚洲色一区二区|