嵌入式MODEM在鐵路雨量監測係統中的應用 引言 鐵(tie)路(lu)部(bu)門(men)的(de)雨(yu)量(liang)監(jian)測(ce)是(shi)有(you)關(guan)鐵(tie)路(lu)安(an)全(quan)的(de)一(yi)個(ge)重(zhong)要(yao)環(huan)節(jie)。由(you)雨(yu)量(liang)過(guo)多(duo)引(yin)起(qi)的(de)洪(hong)水(shui)會(hui)影(ying)響(xiang)鐵(tie)路(lu)路(lu)基(ji),引(yin)發(fa)列(lie)車(che)交(jiao)通(tong)事(shi)故(gu)。因(yin)此(ci),為(wei)了(le)確(que)保(bao)交(jiao)通(tong)命(ming)脈(mai)的(de)安(an)全(quan),應(ying)及(ji)時(shi)將(jiang)鐵(tie)路(lu)沿(yan)線(xian)的(de)雨(yu)量(liang)反(fan)饋(kui)至(zhi)鐵(tie)路(lu)管(guan)理(li)部(bu)門(men)。過(guo)去(qu)雨(yu)量(liang)監(jian)測(ce)是(shi)由(you)各(ge)站(zhan)點(dian)人(ren)工(gong)抄(chao)記(ji)雨(yu)量(liang)監(jian)測(ce)儀(yi)表(biao)數(shu)據(ju),再(zai)彙(hui)總(zong)鐵(tie)路(lu)管(guan)理(li)部(bu)門(men)。顯(xian)然(ran)信(xin)息(xi)傳(chuan)送(song)不(bu)及(ji)時(shi),且(qie)存(cun)在(zai)人(ren)為(wei)因(yin)素(su),備(bei)案(an)困(kun)難(nan)。 微型計算機的發展和計算機通信技術的提高,使得各種信息采集的自動化、實shi時shi性xing變bian為wei可ke能neng。作zuo者zhe成cheng功gong地di運yun用yong微wei型xing計ji算suan機ji和he單dan片pian機ji組zu成cheng主zhu從cong式shi微wei機ji網wang絡luo,將jiang鐵tie路lu雨yu量liang監jian測ce構gou成cheng一yi個ge分fen布bu式shi雨yu量liang監jian測ce係xi統tong。該gai係xi統tong將jiang單dan片pian機ji雨yu量liang監jian測ce儀yi采cai集ji的de數shu據ju,自zi動dong地di由youMODEM彙集到係統主計算機,從而使幾百公裏長的遠程通信既經濟又可靠,大大提高了鐵路部門抗災的能力。檢測儀使用的MODEM為帆升電子通信廠的嵌入式MODEMMD-24(Z)A.PC機端使用的是實達捷豹2外置MODEM。 一、係統結構設計 雨(yu)量(liang)監(jian)測(ce)係(xi)統(tong)是(shi)由(you)微(wei)型(xing)計(ji)算(suan)機(ji)和(he)單(dan)片(pian)機(ji)組(zu)成(cheng)的(de)主(zhu)從(cong)式(shi)微(wei)機(ji)網(wang)絡(luo)。以(yi)單(dan)片(pian)機(ji)為(wei)核(he)心(xin)的(de)雨(yu)量(liang)監(jian)測(ce)儀(yi)分(fen)布(bu)在(zai)鐵(tie)路(lu)各(ge)站(zhan)點(dian)。該(gai)儀(yi)器(qi)功(gong)能(neng)有(you)采(cai)集(ji)雨(yu)量(liang)、存儲雨量信息、雨量報警、現場雨量曲線打印以及通信。管理部門以個人計算機為係統主機。雨量監測係統結構如圖1所示。 從圖1中看出係統主機直接與單片機建立通信聯係。由於各站點遠離係統主機,在不附加外部連線等硬件設施基礎上,利用單片機加MODEM方(fang)式(shi)以(yi)及(ji)電(dian)話(hua)線(xian)實(shi)現(xian)單(dan)片(pian)機(ji)遠(yuan)程(cheng)。係(xi)統(tong)主(zhu)機(ji)可(ke)對(dui)各(ge)站(zhan)部(bu)的(de)單(dan)片(pian)機(ji)雨(yu)量(liang)監(jian)測(ce)儀(yi)進(jin)行(xing)各(ge)種(zhong)設(she)置(zhi)及(ji)數(shu)據(ju)采(cai)集(ji),單(dan)片(pian)機(ji)雨(yu)量(liang)監(jian)測(ce)儀(yi)根(gen)據(ju)雨(yu)量(liang)情(qing)況(kuang)也(ye)可(ke)自(zi)動(dong)向(xiang)係(xi)統(tong)主(zhu)機(ji)發(fa)送(song)當(dang)前(qian)雨(yu)量(liang)數(shu)據(ju),這(zhe)樣(yang)就(jiu)可(ke)做(zuo)到(dao)及(ji)時(shi)提(ti)供(gong)現(xian)場(chang)的(de)雨(yu)量(liang)情(qing)況(kuang)。 二、單片機雨量監測儀及其遠程通信 各站點的雨量監測儀以8051係列單片機為CPU,輔以定製的液晶顯示器、SRAM、熱敏式繪圖儀、雨量傳感器等,其原理框圖如圖2所示。圖中W87E58是MCU,它兼容MCS-51單片機並具有32KB片內EEPROM。 單片機遠程通信由ST16C450連接MODEM實現。ST16C450是一種通用異步接收發送器,內部有10個寄存器,其中有MODEM控製寄存器和MODEM狀態寄存器。MCU通過這2個寄存器的操作實現對MODEM的控製並了解MODEM的工作狀態,從而順利進行數據通信。ST16C450進行通信前首先要對其進行初始化,即設置波特率、通信數據格式、是否使用中斷等。ST16C450初始化後可采用程序查詢或中斷方式進行通信。 MODEM的使用主要有以下4個操作: ①初始化MODEM; ②撥號; ③應答到來的呼叫; ④掛斷線路,使MODEM回到AT命令狀態。 MODEM的控製由Hayes AT命令集完成,程序可直接發送(以AT字符開始再加命令和參)數給MODEM。但是,AT命令無法完成係統間的文件傳送,發送或接收文件必須由通信軟件按預先規定的通信協議完成。 MODEM初始化命令串"AT&FS0=3","&F"重置MODEM,"S0=3"表示應答鈴響3次。雨量監測儀MODEM初始化子程序如下: MSTR:MOV R4,#0 MST0:MOV DPTR,#P3FE ;MODEM狀態寄存器地址 MST1:MOVX A,@DPTR ANL A,#30H CJNE A,#30H,MST1 MOV DPTR,#P3FD ;通信線狀態寄存器 MST2:MOVX A,@DPTR JNB ACC.5,MST2 MOV DPTR,#MTAB MOV A,R4 MOVC A,@A+DPTR JZ MST3 MOV DPTR,#P3F3 ;數據發送保持寄存器 MOVX @DPTR,A INC R4 SJMP MST0 MST3:RET MTAB:DB 41H,54H,26H,53H,30H,3DH,33H DB 0DH,0 ;AT&FS0=3 子程序執行後MODEM應答"OK",表示初始化完成。 MODEM撥號命令串"ATDTxxxxx",xxxxx是電話號碼;撥號成功時MODEM將應答以"CONNECT"字zi符fu開kai始shi的de字zi符fu串chuan。單dan片pian機ji與yu係xi統tong主zhu機ji連lian接jie完wan成cheng後hou,按an通tong信xin協xie議yi所suo規gui定ding的de數shu據ju串chuan通tong信xin交jiao換huan數shu據ju。數shu據ju通tong信xin結jie束shu後hou,程cheng序xu發fa送song掛gua斷duan線xian路lu命ming令ling串chuan"+++ATH0",MODEM自動斷線,從而完成1次通信。 三、係統主機與雨量監測儀的通信 係統主機軟件用VB5.0編製,運行於Windows 95環境。整個軟件由通信、日報表、月報表、年報表、設定、曲線圖、報警等模塊組成,操作平台如圖3所示。主機可與30個站點的雨量監測儀連接。 程序中使用MSComm控件,通過向連接在串行口上的MODEM發送AT命令來控製。主機通信狀況分為2類:主動通信和被動通信。下麵分別加以介紹。 1.主動通信 主zhu機ji向xiang站zhan點dian雨yu量liang監jian測ce儀yi傳chuan送song報bao警jing設she定ding值zhi及ji收shou集ji當dang天tian或huo前qian天tian的de雨yu量liang數shu據ju時shi稱cheng為wei主zhu動dong通tong信xin。電dian話hua圖tu標biao表biao示shi各ge站zhan點dian的de雨yu量liang監jian測ce儀yi,一yi旦dan被bei選xuan中zhong,程cheng序xu就jiu發fa出chu"ATDTxxxxx"撥號命令,雨量監測儀MDOEM處於自動應答方式被連接。MODEM連接成功後,主機會收到"CONNECT 4800"信息,此時,主機就可以向站點發送命令和數據串。如果站點接收到正確數據,根據命令代碼(由通信協議規定)就可知道主機是要設定參數還是要收集當天或前天的雨量數據。若是收集雨量數據,站點雨量監測儀將雨量數據傳送給主機;主機收到站點正確的雨量數據後,向MODEM發送"+++ATH0"離線掛機命令,結束本次通信。 主站發送的數據串裏包括站點號、通信代碼、當前日期和時間、警戒值及校驗和等信息。用@K和@J作為開始和結束標誌。 下麵是主動通信的主要源程序: Private Sub 主動通信(發送代碼) Dim i,j,ss,FsStr,ret 設置充許通信False For i=0 T0 29 '工區數 If工區選中(i)Then 顯示信息"撥號到"+工區名(i)+"..." FsStr="ATDT"+電話號碼(i)+vbCr '撥號的AT命令 ret=發送AT命令(FsStr,"CONNECT",60000) '發送撥號命令,限時60s If ret="正常"Then FsStr=Format(i,"00")+發送代碼 '發送字符串組合 FsStr=FsStr+Format(Now,"yymmddhhmmss") FsStr=FsStr+設定值 FsStr=FsStr+計算累加和(FsStr) FsStr="@K"+FsStr+"@J" ret=發送AT命令(FsStr,"@J",5000) '發送數據,等待接收串結束符@J If InStr(接收串,"@KCUO@J")Then '收到下位機的返回是"錯" 顯示"返回有錯."信息處理 Else 處理接收串 '下位機接收正確 End If 顯示"掛機..."信息處理 ret=發送AT命令("+++","OK",3000) '掛機,等待OK,限時3S ret=發送AT命令("ATH0"+vbCrLf,"OK",3000) End If End If Next i End Sub 2.被動通信 當站點監測到雨量超過警戒值時,就主動撥號給主機,對主機而言就是被動通信。平時主機MODEMyechuyuzidongyingdazhuangtai,suishikeyijieshouzhandianhujiao。zhujichengxujieshoudaozhengqueshujuchuanhou,jiangshujujiludaoxiangyingwenjianzhongbaocun,dianliangcaozuopingtaishanggaizhandiandebaojingzhishidengtixingyonghu,tongshixiangzhandianfasong"接收正確"的信息。站點收到主機正確信息後向MODEM發送"+++ATH0"離線掛機命令,結束本次通信。站點發來的數據串裏包括站點號、通信代碼、各種雨量數據、報警數據及校驗和等信息。用@K和@J作為開始和結束標誌。 被動通信部分的主要源程序如下: Private Sub MSComm1_OnComm() Dim strSh,Shc Shc=MSComm1.InBufferCount '取接收字符個數 If Shc>0 Then strSh=MSComm1,Input '取本次接收串 接收串=接收串+strSh If InStr(接收串,"RING")Then '若是電話鈴響 顯示"接收數據..."信息算是 '顯示接收數據信息 接收串="" End If If InStr(接收串,"@J")Then '收到接收串結束答@J 處理接收串 '處理接收串 End If End If End Sub 結束語 本係統已成功應用於鐵路部門。它具有實時性好、信息傳送距離遠、可靠性高、電路簡單、投資少等優點。它可推廣用於其他需要信息采集及遠程通信的部門,如氣象部門溫度和風速收集、水文部門水位和雨量監測;電力部門電網監測等。
|