基于CAN總線的大容量漢字火災(zāi)樓層顯示器報(bào)警系統(tǒng)方案設(shè)計(jì)
4 系統(tǒng)軟件設(shè)計(jì)本文引用地址:http://m.butianyuan.cn/article/160410.htm
漢字樓層顯示器軟件功能主要是1.將串口發(fā)送下來的漢字信息文件寫入FLASH存儲(chǔ)。2.和火災(zāi)報(bào)警控制器進(jìn)行CAN通信,如果發(fā)現(xiàn)有火警信息,則查找FLASH中的漢字地址信息,予以顯示在漢字液晶上報(bào)警,如有多條火警信息,則滾動(dòng)顯示各條信息。
圖 6是漢字樓層顯示器軟件流程圖。用page(值為0-7)表示讀寫的FLASH頁,用count(值為0-65535)表示每頁頁內(nèi)地址。其中 page0-page6用來存儲(chǔ)通過串口下載的漢字信息,page7用來存儲(chǔ)接收到的火警等動(dòng)態(tài)信息。一旦接收到新火警,即查詢FLASH中相應(yīng)的漢字信息,并在液晶上滾動(dòng)顯示。
為了快速定位所查詢的火警漢字地址信息,我們采用數(shù)組結(jié)構(gòu)存儲(chǔ)。盡管這樣會(huì)因?yàn)閷?shí)際火警地址不等長,而造成存儲(chǔ)中出現(xiàn)一些空地址,存儲(chǔ)效率不高,但是由于我們對(duì)數(shù)組的查找是一種可以直接定位的快速查找,不用采用鏈表之類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),也避免了二分檢索之類復(fù)雜的搜索算法。對(duì)于單片機(jī)而言,實(shí)質(zhì)上是以比較小的空間為代價(jià)換來了比較高的時(shí)間效率,還是十分值得的。
5 結(jié)語
本文提出的基于CAN總線的大容量漢字火災(zāi)樓層顯示器,較好的解決了現(xiàn)有火災(zāi)樓層顯示器的缺陷。對(duì)大于51單片機(jī)ROM 64K尋址空間的數(shù)據(jù)存儲(chǔ)需求,采取分頁存儲(chǔ)的訪問方式可以很好的解決這個(gè)問題。通過在FLASH中存儲(chǔ)大容量數(shù)據(jù)信息,可以避免因?yàn)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/CAN">CAN總線上通訊數(shù)據(jù)流量過大而導(dǎo)致火警不能及時(shí)傳達(dá),延誤報(bào)警時(shí)機(jī)。而且FLASH中的漢字信息可以通過串口在線擦寫,便于現(xiàn)場調(diào)試。目前產(chǎn)品已經(jīng)投入實(shí)用,用戶反應(yīng)運(yùn)行良好。
評(píng)論