• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 鐵路雨量監(jiān)測系統(tǒng)中的遠(yuǎn)程通信

    鐵路雨量監(jiān)測系統(tǒng)中的遠(yuǎn)程通信

    作者: 時間:2004-12-07 來源:網(wǎng)絡(luò) 收藏
    摘要:給出一種用于的分布式計算機(jī)和單片機(jī)網(wǎng)絡(luò)結(jié)構(gòu)。重點(diǎn)介紹單片機(jī)及計算機(jī)的MODEM軟件處理方法,并給出部分應(yīng)用程序供讀者參考。本成功應(yīng)用于部門的

    關(guān)鍵詞:單片機(jī) MODEM VB

    引言

    部門的是有關(guān)安全的一個重要環(huán)節(jié)。由過多引起的洪水會影響鐵路路基,引發(fā)列車交通事故。因此,為了確保交通命脈的安全,應(yīng)及時將鐵路沿線的雨量反饋至鐵路管理部門。過去雨量監(jiān)測是由各站點(diǎn)人工抄記雨量監(jiān)測儀表數(shù)據(jù),再匯總鐵路管理部門。顯然信息傳送不及時,且存在人為因素,備案困難。

    微型計算機(jī)的發(fā)展和計算機(jī)通信技術(shù)的提高,使得各種信息采集的自動化、實時性變?yōu)榭赡堋W髡叱晒Φ剡\(yùn)用微型計算機(jī)和單片機(jī)組成主從式微機(jī)網(wǎng)絡(luò),將鐵路雨量監(jiān)測構(gòu)成一個分布式雨量監(jiān)測。該系統(tǒng)將單片機(jī)雨量監(jiān)測儀采集的數(shù)據(jù),自動地由MODEM匯集到系統(tǒng)主計算機(jī),從而使幾百公里長的遠(yuǎn)程通信既經(jīng)濟(jì)又可靠,大大提高了鐵路部門抗災(zāi)的能力。

    一、系統(tǒng)結(jié)構(gòu)設(shè)計

    雨量監(jiān)測系統(tǒng)是由微型計算機(jī)和單片機(jī)組成的主從式微機(jī)網(wǎng)絡(luò)。以單片機(jī)為核心的雨量監(jiān)測儀分布在鐵路各站點(diǎn)。該儀器功能有采集雨量、存儲雨量信息、雨量報警、現(xiàn)場雨量曲線打印以及通信。管理部門以個人計算機(jī)為系統(tǒng)主機(jī)。雨量監(jiān)測系統(tǒng)結(jié)構(gòu)如圖1所示。

    從圖1中看出系統(tǒng)主機(jī)直接與單片機(jī)建立通信聯(lián)系。由于各站點(diǎn)遠(yuǎn)離系統(tǒng)主機(jī),在不附加外部連線等硬件設(shè)施基礎(chǔ)上,利用單片機(jī)加MODEM方式以及電話線實現(xiàn)單片機(jī)遠(yuǎn)程。系統(tǒng)主機(jī)可對各站部的單片機(jī)雨量監(jiān)測儀進(jìn)行各種設(shè)置及數(shù)據(jù)采集,單片機(jī)雨量監(jiān)測儀根據(jù)雨量情況也可自動向系統(tǒng)主機(jī)發(fā)送當(dāng)前雨量數(shù)據(jù),這樣就可做到及時提供現(xiàn)場的雨量情況。

    二、單片機(jī)雨量監(jiān)測儀及其遠(yuǎn)程通信

    各站點(diǎn)的雨量監(jiān)測儀以8051系列單片機(jī)為CPU,輔以定制的液晶顯示器、SRAM、熱敏式繪圖儀、雨量傳感器等,其原理框圖如圖2所示。圖中W87E58是MCU,它兼容MCS-51單片機(jī)并具有32KB片內(nèi)EEPROM。

    單片機(jī)遠(yuǎn)程通信由ST16C450連接MODEM實現(xiàn)。ST16C450是一種通用異步接收發(fā)送器,內(nèi)部有10個寄存器,其中有MODEM控制寄存器和MODEM狀態(tài)寄存器。MCU通過這2個寄存器的操作實現(xiàn)對MODEM的控制并了解MODEM的工作狀態(tài),從而順利進(jìn)行數(shù)據(jù)通信。ST16C450進(jìn)行通信前首先要對其進(jìn)行初始化,即設(shè)置波特率、通信數(shù)據(jù)格式、是否使用中斷等。ST16C450初始化后可采用程序查詢或中斷方式進(jìn)行通信。

    MODEM的使用主要有以下4個操作:

    ①初始化MODEM;

    ②撥號;

    ③應(yīng)答到來的呼叫;

    ④掛斷線路,使MODEM回到AT命令狀態(tài)。

    MODEM的控制由Hayes AT命令集完成,程序可直接發(fā)送(以AT字符開始再加命令和參)數(shù)給MODEM。但是,AT命令無法完成系統(tǒng)間的文件傳送,發(fā)送或接收文件必須由通信軟件按預(yù)先規(guī)定的通信協(xié)議完成。

    MODEM初始化命令串"ATFS0=3","F"重置MODEM,"S0=3"表示應(yīng)答鈴響3次。雨量監(jiān)測儀MODEM初始化子程序如下:

    MSTR:MOV R4,#0

    MST0:MOV DPTR,#P3FE ;MODEM狀態(tài)寄存器地址

    MST1:MOVX A,@DPTR

    ANL A,#30H

    CJNE A,#30H,MST1

    MOV DPTR,#P3FD ;通信線狀態(tài)寄存器

    MST2:MOVX A,@DPTR

    JNB ACC.5,MST2

    MOV DPTR,#MTAB

    MOV A,R4

    MOVC A,@A+DPTR

    JZ MST3

    MOV DPTR,#P3F3 ;數(shù)據(jù)發(fā)送保持寄存器

    MOVX @DPTR,A

    INC R4

    SJMP MST0

    MST3:RET

    MTAB:DB 41H,54H,26H,53H,30H,3DH,33H

    DB 0DH,0 ;ATFS0=3

    子程序執(zhí)行后MODEM應(yīng)答"OK",表示初始化完成。

    MODEM撥號命令串"ATDTxxxxx",xxxxx是電話號碼;撥號成功時MODEM將應(yīng)答以"CONNECT"字符開始的字符串。單睡機(jī)與系統(tǒng)主機(jī)連接完成后,按通信協(xié)議所規(guī)定的數(shù)據(jù)串通信交換數(shù)據(jù)。數(shù)據(jù)通信結(jié)束后,程序發(fā)送掛斷線路命令串"+++ATH0",MODEM自動斷線,從而完成1次通信。

    三、系統(tǒng)主機(jī)與雨量監(jiān)測儀的通信

    系統(tǒng)主機(jī)軟件用VB5.0編制,運(yùn)行于Windows 95環(huán)境。整個軟件由通信、日報表、月報表、年報表、設(shè)定、曲線圖、報警等模塊組成,操作平臺如圖3所示。主機(jī)可與30個站點(diǎn)的雨量監(jiān)測儀連接。

    程序中使用MSComm控件,通過向連接在串行口上的MODEM發(fā)送AT命令來控制。主機(jī)通信狀況分為2類:主動通信和被動通信。下面分別加以介紹。

    1.主動通信

    主機(jī)向站點(diǎn)雨量監(jiān)測儀傳送報警設(shè)定值及收集當(dāng)天或前天的雨量數(shù)據(jù)時稱為主動通信。電話圖標(biāo)表示各站點(diǎn)的雨量監(jiān)測儀,一旦被選中,程序就發(fā)出"ATDTxxxxx"撥號命令,雨量監(jiān)測儀MDOEM處于自動應(yīng)答方式被連接。MODEM連接成功后,主機(jī)會收到"CONNECT 4800"信息,此時,主機(jī)就可以向站點(diǎn)發(fā)送命令和數(shù)據(jù)串。如果站點(diǎn)接收到正確數(shù)據(jù),根據(jù)命令代碼(由通信協(xié)議規(guī)定)就可知道主機(jī)是要設(shè)定參數(shù)還是要收集當(dāng)天或前天的雨量數(shù)據(jù)。若是收集雨量數(shù)據(jù),站點(diǎn)雨量監(jiān)測儀將雨量數(shù)據(jù)傳送給主機(jī);主機(jī)收到站點(diǎn)正確的雨量數(shù)據(jù)后,向MODEM發(fā)送"+++ATH0"離線掛機(jī)命令,結(jié)束本次通信。

    主站發(fā)送的數(shù)據(jù)串里包括站點(diǎn)號、通信代碼、當(dāng)前日期和時間、警戒值及校驗和等信息。用@K和@J作為開始和結(jié)束標(biāo)志。

    下面是主動通信的主要源程序:

    Private Sub 主動通信(發(fā)送代碼)

    Dim i,j,ss,FsStr,ret

    設(shè)置充許通信False

    For i=0 T0 29 '工區(qū)數(shù)

    If工區(qū)選中(i)Then

    顯示信息"撥號到"+工區(qū)名(i)+"..."

    FsStr="ATDT"+電話號碼(i)+vbCr

    '撥號的AT命令

    ret=發(fā)送AT命令(FsStr,"CONNECT",60000)

    '發(fā)送撥號命令,限時60s

    If ret="正常"Then

    FsStr=Format(i,"00")+發(fā)送代碼

    '發(fā)送字符串組合

    FsStr=FsStr+Format(Now,"yymmddhhmmss")

    FsStr=FsStr+設(shè)定值

    FsStr=FsStr+計算累加和(FsStr)

    FsStr="@K"+FsStr+"@J"

    ret=發(fā)送AT命令(FsStr,"@J",5000)

    '發(fā)送數(shù)據(jù),等待接收串結(jié)束符@J

    If InStr(接收串,"@KCUO@J")Then

    '收到下位機(jī)的返回是"錯"

    顯示"返回有錯."信息處理

    Else

    處理接收串 '下位機(jī)接收正確

    End If

    顯示"掛機(jī)..."信息處理

    ret=發(fā)送AT命令("+++","OK",3000)

    '掛機(jī),等待OK,限時3S

    ret=發(fā)送AT命令("ATH0"+vbCrLf,"OK",3000)

    End If

    End If

    Next i

    End Sub

    2.被動通信

    當(dāng)站點(diǎn)監(jiān)測到雨量超過警戒值時,就主動撥號給主機(jī),對主機(jī)而言就是被動通信。平時主機(jī)MODEM也處于自動應(yīng)答狀態(tài),隨時可以接收站點(diǎn)呼叫。主機(jī)程序接收到正確數(shù)據(jù)串后,將數(shù)據(jù)記錄到相應(yīng)文件中保存,點(diǎn)亮操作平臺上該站點(diǎn)的報警指示燈提醒用戶,同時向站點(diǎn)發(fā)送"接收正確"的信息。站點(diǎn)收到主機(jī)正確信息后向MODEM發(fā)送"+++ATH0"離線掛機(jī)命令,結(jié)束本次通信。站點(diǎn)發(fā)來的數(shù)據(jù)串里包括站點(diǎn)號、通信代碼、各種雨量數(shù)據(jù)、報警數(shù)據(jù)及校驗和等信息。用@K和@J作為開始和結(jié)束標(biāo)志。

    被動通信部分的主要源程序如下:

    Private Sub MSComm1_OnComm()

    Dim strSh,Shc

    Shc=MSComm1.InBufferCount '取接收字符個數(shù)

    If Shc>0 Then

    strSh=MSComm1,Input '取本次接收串

    接收串=接收串+strSh

    If InStr(接收串,"RING")Then '若是電話鈴響

    顯示"接收數(shù)據(jù)..."信息算是 '顯示接收數(shù)據(jù)信息

    接收串=""

    End If

    If InStr(接收串,"@J")Then '收到接收串結(jié)束答@J

    處理接收串 '處理接收串

    End If

    End If

    End Sub

    結(jié)束語

    本系統(tǒng)已成功應(yīng)用于鐵路部門。它具有實時性好、信息傳送距離遠(yuǎn)、可靠性高、電路簡單、投資少等優(yōu)點(diǎn)。它可推廣用于其他需要信息采集及遠(yuǎn)程通信的部門,如氣象部門溫度和風(fēng)速收集、水文部門水位和雨量監(jiān)測;電力部門電網(wǎng)監(jiān)測等。



    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 凤凰县| 大港区| 弥勒县| 姜堰市| 东源县| 怀仁县| 扎鲁特旗| 莫力| 双牌县| 左权县| 怀远县| 武强县| 会东县| 湘潭县| 赤壁市| 西乌珠穆沁旗| 县级市| 滕州市| 兴隆县| 惠水县| 安福县| 依兰县| 宜宾市| 兰坪| 福建省| 龙南县| 镇远县| 巴中市| 镇原县| 石泉县| 德格县| 南溪县| 防城港市| 绥阳县| 林州市| 弥勒县| 筠连县| 响水县| 农安县| 济宁市| 田东县|