摘 要:管理人員在辦公室或者實驗室中發布通知通告是日常工作,而通過網絡進行遠程通知通告更為便利。文章基于ARM芯片和嵌入式Linux操作系統,設計并實現了遠程多功能電子公告板。文章設計的公告板具有通過手機短信或者局域網進行遠程發布公告的功能,公告內容通過LED顯示屏進行實時顯示,信息的發布者還能通過手機與公告板之間進行實時對講,并通過公告板的攝像頭獲取周圍的視頻和圖像。文章設計的遠程電子公告板具有信息實時發布,實時顯示,信息安全性高,溝通途徑多樣性,可獲取圖像,系統操作方便等優點,有效解決了管理者與成員之間的信息溝通不便,消息滯后,消息虛假,途徑落后等問題。
關鍵詞:電子公告板;LED顯示屏;嵌入式;遠程
引言
諸如辦公室和實驗室這些設備眾多且成員復雜的場所,其管理和通知工作量非常大,但現有的通知手段傳統單一,亟需一種更為先進的,新穎的,安全的方式來發布通知。隨著計算機技術、無線通訊技術、網絡技術的發展,使遠程通知通告成為可能。基于以上技術,設計一個擁有遠程控制功能,短信收發功能,實時通話功能,實時對講功能的電子公告板,就可以解決通知發布效率低下的問題。管理者可以通過計算機端軟件、短信發送控制命令、語音通話、實時對講的方式發布消息,被通知對象可以通過電子公告板、語音、短信等方式獲取通知。將電子公告板運用于辦公室和實驗室等場所,實時滾動顯示需要發布的信息。用這樣的方式取代傳統通知發布方式,可以大幅度的提高管理者和被通知的對象之間溝通的便捷性。
1 系統硬件設計
系統硬件主板結構圖如圖1所示。
1.1 AT91SAM9263
目前,現有的LED顯示屏控制系統中,還有很多是采用8位或16位單片機作為系統的主處理器,系統存在運算速度慢,存儲空間較小,通信方式單一以及數據傳輸速度慢等缺點[1]。針對上述存在的問題,文章設計采用了ARM芯片AT91SAM9263作為主處理器。AT91SAM9263嵌入了一個每秒百萬條指令集的ARM926EJ-S微控制器,從而解決了在圖形界面、數據密集型應用中基于ARM9的傳統微控制器可能遭遇的瓶頸性能問題。
1.2 GSM模塊
管理者將要發布的通告以短信的形式發送到控制系統的主板,被GSM模塊接收,GSM模塊將收到的信息通過RS232串口線傳到ARM控制器,控制器讀取短信經過解碼后,根據短息內容重新編碼發送到LED顯示屏[2]。
1.3 無線對講模塊
無線對講采用SR_FRS_0W5模塊解決,該模塊是一個完整的無線對講模塊,只需接上電源即可工作,無需進行其他控制。模塊提供有語音對講功能。僅有一個默認頻率可用,RS232串口通信接口,電源為DC 3.3V-5.5V。工作方式為PTT(Push-To-Talk)一鍵通,只需要按下PTT按鈕即可實現連接和通話。
1.4 nRF905無線傳輸模塊
在射頻無線通訊上,采用nRF905無線收發模塊,模塊采用433MHz 開放 ISM 頻段,接收發送功能合一。nRF905有四種工作模式,ShockBurst RX、ShockBurst TX、掉電和SPI編程、待機和SPI編程,通過SPI接口對芯片內部的寄存器進行配置實現[3]。
1.5 LED顯示屏模塊
遠程電子公告板中最主要的顯示模塊,也是最大的元件就是LED顯示屏。LED屬于一種特殊的字符設備,叫雜項設備。雜項設備是在嵌入式系統中用得比較多的一種設備驅動[4]。LED顯示屏在硬件上其實是由多個8×8的LED點陣模塊構成的單元板拼接而成的32×128的大型LED矩陣。
2 系統軟件設計
軟件的設計是在嵌入式Linux操作系統下完成和實現的。嵌入式Linux操作系統是一項在近年來被廣泛應用的實時操作系統,特點主要體現在開放性和穩定性方面。能夠與多個交叉系統進行有效融合,實現系統的整體運行[5]。
2.1 程序主函數
本節主要設計主函數,因為各模塊如GSM、公告板的服務函數功能封裝做的非常全面所以程序主函數非常簡潔,只需適時調用各模塊服務函數即可。主函數程序流程圖如圖2所示。
圖2 主函數程序流程圖
2.2 GSM模塊程序設計
GSM模塊的軟件設計,是針對其通訊協議“AT指令”對GSM所有需要的功能進行一一封裝,包括命令發送函數、信息讀取函數、掃描函數;所有功能函數最終全部由GSM服務函數 GSMSever()調用,在主函數實現所需功能。
2.2.1 GSM封裝函數設計
本節將介紹所有GSM功能函數封裝設計。會對命令發送函數、信息讀取函數、掃描函數進行介紹。
(1)GSM_sendcmd():GSM模塊指令發送函數,發送AT指令,并監視模塊應答。(2)GSMScan():消息掃描函數,對串口接收的數據進行關鍵詞的提取,若數據中有關鍵詞“RING”或者“+CLIP”則證明有電話打來。若數據中有“+CMTI”證明有短信進來,進行相應操作,將短信號提取出來放入GSMmsg結構體中對應短信號的成員msgNo中。(3)GSM_msgread():短信數據讀取函數,將串口發送來的短信數據填入到該數組中,方便以后的函數調用。
2.2.2 GSM服務函數
GSM服務函數GSMSever()涵蓋上述提到的所有函數,將有關GSM模塊所有的功能全部實現。并且在執行中接收到相應正確的信號量就可以作為父線程,開啟公告板子線程,將短信結構體內的信息傳輸給公告板服務程序,公告板服務程序將信息進行打包,按照協議對公告板進行發送,最終顯示在公告板上。GSM服務函數工作流程圖如圖3所示。
2.3 公告板模塊程序設計
公告板的軟件設計本質上就是編寫函數,在應用層中向上文提及的各個協議結構體的成員中賦值,然后將所發數據與各個結構體在傳輸層打成一個數據包,然后再按512字節拆包,最后送入到鏈路層打包按順序發出。
(1)生成節目頭部。函數聲明:long (_stdcall *MakeRoot)(long RootType,longColorMode, long survive = ROOT_SURVIVE_ALWAYS)。(2)添加節目。函數聲明:long (_stdcall *AddChapter)(WORD num, DWORD time, WORD wait); //time為毫秒。(3)添加區域/分區。函數聲明:long (_stdcall *AddRegion)(WORD num, long left, long top, long width, long height, long border)。(4)添加頁面。函數聲明:long (_stdcall *AddLeaf)(WORD num, DWORD time, WORD wait)。
3 結束語
本設計采用模塊化的思想完成了以ARM9為核心的遠程電子公告板的軟硬件設計,成功實現了可遠程通信的公告板系統。經過測試和實際運行,文章設計的公告板能夠實現實時信息顯示,上位機信息顯示,手機短信顯示,語音對講,視頻監控等功能,運行穩定可靠,具有很好的應用前景。
參考文獻
[1]任蓉.基于ARM的LED屏顯示控制系統的設計[J].現代物業,2012,3:42-44.
[2]宋威,孫運強.基于ARM和GSM的家電遠程控制系統設計[J].數控技術與應用,2013,1:8-9.
[3]段智文,陳會.基于ARM和nRF905的無線數據收發系統[J].現代電子技術,2010,15:82-84.
[4]任海軍,周輝.基于嵌入式Linux的LED驅動開發與應用[J].軟件導刊,2013,12(9):113.
[5]于德海,閆明.關于嵌入式Linux操作系統的研究[J].電子技術與軟件工程,2014,14:213-214.
作者簡介:朱雨佳,男,工作單位:哈爾濱理工大學,學歷: 本科,主要研究方向:嵌入式系統及應用。
孫棟,工作單位:哈爾濱理工大學。
孟平,工作單位:哈爾濱理工大學。