魏 輝,劉祖鵬
(河南機電高等專科學校,河南 新鄉(xiāng) 453000)
目前國內(nèi)各大城市常見LED(Light-Emitting-Diode)廣告發(fā)布系統(tǒng)的搭建和信息內(nèi)容的更新方式,多采用傳統(tǒng)技術手段,無論是信息錄入、終端管理制作和使用成本高。GSM網(wǎng)絡主要提供語音、短消息、數(shù)據(jù)等多種業(yè)務,其SMS短消息通訊方式采用通常的無線GSM短消息模塊實現(xiàn)短消息的傳輸。因此LED廣告發(fā)布系統(tǒng)上位機和控制終端之間可以通過基于GSM公共網(wǎng)進行數(shù)據(jù)和相關的命令傳送,從而為實現(xiàn)LED的廣告發(fā)布系統(tǒng)的信息發(fā)布方式提供了無線工作的可能。
本系統(tǒng)主要由上位機管理系統(tǒng)和下位機控制終端兩部分組成。上位機管理系統(tǒng)主要包括計算機及應用軟件、GSM無線通訊模塊和數(shù)據(jù)庫系統(tǒng)組成。下位機控制終端包括單片機控制系統(tǒng)和GSM無線通訊模塊。上位機管理系統(tǒng)運行在Windows操作系統(tǒng)的PC機上,采用面向?qū)ο蟮拈_發(fā)工具Microsoft Visual C#進行開發(fā),與計算機數(shù)據(jù)庫技術相結(jié)合,通過工業(yè)級GSM模塊以現(xiàn)有的GSM網(wǎng)絡為媒介來完成對終端的控制。其系統(tǒng)總體結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
上位機采用微機,GSM通訊模塊電源、SIM卡接口電路、Sync引腳指示電路與下位機相同。由于微機串行口為RS-232C標準接口,與通訊模塊在接口規(guī)范上不一致,因此必須將串行口的輸入/輸出電平進行轉(zhuǎn)換,目前較為廣泛地使用集成電路轉(zhuǎn)換器件。設計中采用MAXIM公司的MAX232串口芯片來實現(xiàn)TTL電平到RS-232C串口電平的轉(zhuǎn)換。[1]上位機通過RS-232C串口與TC35通信口進行控制命令和數(shù)據(jù)交換,實現(xiàn)異步串行收發(fā)功能。MAX809R電源監(jiān)控芯片與TC35的啟動口(15腳)相連,系統(tǒng)上電后Reset引腳產(chǎn)生延時240ms的低電壓脈沖,啟動TC35。TC35模塊與PC機RS-232C串口實現(xiàn)通信的硬件接口電路如圖2所示[2]。
根據(jù)本系統(tǒng)的特點,本系統(tǒng)的管理模塊中的數(shù)據(jù)庫部分選擇應用較為廣泛的Microsoft Office Access數(shù)據(jù)庫。該數(shù)據(jù)庫軟件面向個人用戶,應用廣泛,操作簡單,極為適合本系統(tǒng)的數(shù)據(jù)管理[3]。
管理系統(tǒng)只能讓具有管理權限的用戶登錄,這就需要將管理員的信息在數(shù)據(jù)庫中保存起來,在每次登錄時對用戶輸入的信息進行核對,若與數(shù)據(jù)庫中的信息相符合,則認為是合法用戶,可以使用本系統(tǒng);否則認為是不合法用戶,對登錄請求予以拒絕。設計數(shù)據(jù)庫表結(jié)構(gòu)如圖3所示。
對發(fā)布過的信息必須保存在數(shù)據(jù)庫中,這樣用戶可以對歷史的發(fā)送記錄進行查詢,周期性的可以對發(fā)布信息進行統(tǒng)計,使用戶對發(fā)布的信息有綜合的了解同時對發(fā)信人的號碼和備注進行關聯(lián),使管理員看到的不是枯燥的手機號碼,而是自定義過后的備注信息。
在實際的應用中,用戶往往要對終端信息進行大量的操作,如添加、修改、刪除等等。日積月累,對于時間較久的操作往往不能完全回憶,本系統(tǒng)對用戶的操作進行了跟蹤,讓用戶在使用時不用再做記錄,對于以前的操作可以進行查詢及恢復,大大減輕了用戶的工作量,突出了人性化設計的思想。
圖2 TC35與MAX232的連接圖
圖3 用戶管理模塊數(shù)據(jù)庫設計
用Microsoft Visual C#開發(fā)串行通信程序有兩種方法:一是利用Windows的API函數(shù);另一種是采用通信控件MSComm來實現(xiàn)。利用API函數(shù)編寫串口通信程序較為復雜,其優(yōu)點是可實現(xiàn)的功能更豐富、應用面更廣、更適合于編寫較為復雜的低層次通信程序。MSComm.用戶通信控件提供了通過串口發(fā)送和接收數(shù)據(jù)的串行通信能力,它不但包括了Windows API中關于串行通信的16個函數(shù)所完成的全部功能,而且開拓了更多的對象屬性,方便用戶進行設計,滿足不同用戶的業(yè)務需求,可以較容易地解決串口通信問題[4]。
本系統(tǒng)中,利用PC機的串口COM1和下位機TC35進行通信,PC機應用程序設計采用Microsoft Visual C#編寫。用Microsoft Visual C#編程時,用控件對串行口進行編程。Microsoft Visual C#采用事件驅(qū)動機制,編程時不必考慮程序?qū)嶋H的執(zhí)行流程。創(chuàng)建圖形用戶界面時,只需在窗體上放置相關的控件等對象,并加入與對象相應的少量的功能代碼,就可以實現(xiàn)界面的交互功能[5]。
MSCOMM通信控件有20多個屬性,編程時使用了其中的11種屬性。現(xiàn)簡單介紹如下:
1)CDHolding屬性
CDHolding的值為True時,載波檢測線為高電平,表示Modem處于在線狀態(tài);否則,載波檢測線為低電平,表示Modem處于掛機狀態(tài)。
2)Comport屬性
2.2 暴露方式及部位 暴露方式:銳器傷82名、占68.91%,黏膜暴露17名、占14.29%,皮膚暴露15名、占12.60%,其他5名、占4.20%;暴露部位:手指95名、占79.83%,手臂17名、占14.29%,眼7名、占5.88%。
在使用通信端口之前,必須先設定Comport屬性的值。程序中選用PC機的COM1。
3)DSRHolding屬性
DSR信號由Modem發(fā)送到與之相連的計算機以通知計算機準備處理操作。當DSR信號線處于高電平時,DSRHolding=True;當DSR信號線處于低電平時,DSRHolding=False。
4)InBuferCount屬性
該屬性在設計階段不起作用,它返回存放在接收緩沖區(qū)中的字符個數(shù)。這表示已由Modem接收并已存放在接收緩沖區(qū)中的字符數(shù)。通過設置InBufer-Count的值為0可以將接收緩沖區(qū)清零。從下位機發(fā)送來的數(shù)據(jù)是有一定的格式的,上位機在讀取時必須把每一個數(shù)據(jù)讀完整才能保證讀數(shù)的正確性。因此,在程序中可以通過該屬性的值判斷Modem緩沖區(qū)中的字符數(shù),以確定數(shù)據(jù)是否完整地傳送了過來。若是,則可讀取該數(shù),否則還需等待。
5)Handshaking屬性
Handshaking屬性的取值如表1所示。6)InBuferSize屬性
?
InBuferSize表示接收緩沖區(qū)的總?cè)?,缺省值?024字節(jié)。如果出現(xiàn)溢出錯誤,可再增大接收緩沖區(qū)以匹配傳輸速度。
其他屬性如“Input屬性”、“Input Len屬性”、“Output屬性”、“Port Open屬性”、“Setting屬性”設置比較簡單,這里就不再一一贅述了。
在通信軟件中,首先進行初始化。
1)設置MSComm控件的屬性值:Comport屬性設置為1,即系統(tǒng)利用串口COM1的第一個端口,Settings屬性設置為9600,N,8,1,即波特率為 9600,無奇偶校驗位8位數(shù)據(jù)位,1位停止位;
2)Port Open屬性設置為True,InputLen屬性設置為0,即讀入全部字符;
3)Rthreshold屬性設置為1,即當串口接受緩沖區(qū)達到所設置的字節(jié)數(shù)1時,將會引發(fā)OnComm事件中的接收事件。接收數(shù)據(jù)時,利用事件驅(qū)動的方法,當Rthreshold屬性值為1時,MSComm控件的 On-Comm事件發(fā)生,將數(shù)據(jù)讀入。
上位機使用MSComm控件與下位機進行串口通信,MSComm控件的Input與Output兩個屬性,分別對應串行端口的輸入與輸出操作。上位機接收下位機發(fā)采集數(shù)據(jù),首先設置好MSComm控件的屬性,打開端口,打開“開始”命令按鈕,開始監(jiān)控計算機串口工作情況,當有信息傳送到達后,觸發(fā)OnComm事件,同時Timer控件動作定時讀取輸入緩沖區(qū)內(nèi)的數(shù)據(jù)將數(shù)據(jù)接收。數(shù)據(jù)接收結(jié)束后通過解碼函數(shù)實現(xiàn)信息的解碼。
由于信息發(fā)布系統(tǒng)的分散性,使得傳統(tǒng)的維護方法工作量明顯加大,尤其在更新其顯示信息時更是如此。本系統(tǒng)依托覆蓋廣泛的GSM移動通訊公網(wǎng)提供的短消息業(yè)務傳輸更新數(shù)據(jù),無需自行組網(wǎng),系統(tǒng)運行費用低廉,數(shù)據(jù)傳輸可靠、迅速,是比較理想的通訊方式。盡管系統(tǒng)在實際通訊過程中會產(chǎn)生延時等現(xiàn)象,但是通過避開網(wǎng)絡繁忙的時間段進行數(shù)據(jù)傳輸,或者通過設定更加完善的通訊協(xié)議,或者通過增加多個短信模塊,用上位機控制多個模塊對信息進行同時發(fā)布,就可以將發(fā)送速度提高。通過上述措施這種現(xiàn)象是可以減少和彌補的。
[1]李朝青.單片機原理及接口技術[M].北京:航空航天大學出版社,1999.
[2]杜清珍,馬仙女.多道單片機測溫接口電路的設計[J].現(xiàn)代電子技術,1996.(3):7 -9.
[3]袁小兵.基于GSM的數(shù)據(jù)采集與控制系統(tǒng)[J].工程物理研究院科技年報,2003(1):403 -404.
[4]馮偉,郭旭.煤礦地面監(jiān)控系統(tǒng)中基于GSM-SMS的數(shù)據(jù)傳輸[J].煤炭科學技術,2007,35(10):55 -57.
[5]鄔春明.基于 TC35i的小區(qū)遠程報警系統(tǒng)[J].2007,33(11):129 -132.