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