131 1300 0010
其他
當前位置: 首頁>> 元件技術(shù)>>其他>>
  • 導航欄目
  • 二極管
  • 整流橋
  • MOS管
  • 其他
  • 基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)
    基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)
  • 基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)
  •   發(fā)布日期: 2019-09-24  瀏覽次數(shù): 1,322

    隨著自動化程度的不斷提高,對現(xiàn)場數(shù)據(jù)遠程采集與傳輸?shù)囊笠踩找嫣岣?,在電話通訊網(wǎng)絡相當普及的今天,最方便最靈活的方法就是采用MODEM(調(diào)制解調(diào)器)并借助于現(xiàn)有的模擬公用電話交換網(wǎng)進行數(shù)據(jù)傳輸,經(jīng)過幾年的研究,筆者開發(fā)了一種在單片機控制下通過公用電話交換機網(wǎng)絡做載體的數(shù)據(jù)傳輸系統(tǒng),這種數(shù)據(jù)傳輸系統(tǒng)不受時間與地域的限制,并可隨時實時追蹤現(xiàn)場資料的變化情況,從而為遠程故障的診斷和排除提供了便利。

    由于目前國內(nèi)有關單片機和MODEM的接口資料很少,所以,本文主要就單片機和MODEM接口及如何利用AT命令來控制MODEM 做些介紹。

     

    1 系統(tǒng)組成

    圖1 所示為該遠程數(shù)據(jù)采集系統(tǒng)的系統(tǒng)組成圖,整個系統(tǒng)主要由現(xiàn)場數(shù)據(jù)采集器和監(jiān)控中心兩部分組成,現(xiàn)場數(shù)據(jù)采集器負責將所采集到的數(shù)據(jù)進行預處理后打包, 并通過現(xiàn)場調(diào)制解調(diào)器MODEM、公用電話網(wǎng)和監(jiān)控中心的MODEM 將數(shù)據(jù)發(fā)送到監(jiān)控中心。然后監(jiān)控中心將接收到的數(shù)據(jù)進行處理、顯示、存儲和分析,并根據(jù)需要向現(xiàn)場發(fā)送控制指令,由于監(jiān)控中心采用計算機與MODEM 直接相連的方式, 因此硬件接口比較簡單, 而軟件編寫不是本文討論的重點,不再贅述。系統(tǒng)有兩種工作方式:即監(jiān)控中心呼叫現(xiàn)場請求發(fā)送數(shù)據(jù)和現(xiàn)場呼叫監(jiān)控中心主動發(fā)送數(shù)據(jù)。

    基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)的設計

    圖1 系統(tǒng)組成圖

    2 MODEM 命令

    由于MODEM 是將數(shù)據(jù)通過公用電話網(wǎng)進行遠程發(fā)送和傳輸?shù)臉蛄海@里先將MODEM 的功能及用法做一介紹“MODEM 是“調(diào)制解調(diào)器”的英文縮寫,所謂調(diào)制,就是將“0”和“1”的數(shù)字信號變成不同的頻率信號,調(diào)制到載波頻率上,并利用電話線進行模擬信號的傳送, 解調(diào)是調(diào)制的反過程, 即將載波頻率上的頻率信號解調(diào)成與其對應的數(shù)字信號,傳送至終端控制器。

    目前,我們在市場上所見到的MODEM 都用賀氏兼容的指令集來管理和設定MODEM 的各項操作和通訊功能,而一般這些指令皆以AT為前置碼,所以稱這些指令為“AT指令”。下面介紹幾個常見的MODEM 指令,這些指令都以回車(RETURN)結(jié)尾。

    ATA:手動應答指令,強迫MODEM 摘機并檢測載波;

    ATE0: 指令不回應,即向MODEM 發(fā)送的指令不在終端回顯;

    ATV0: MODEM 以數(shù)字形式回應信息,即MODEM 收到指令后,以數(shù)字形式返回結(jié)果碼;

    AT&F:參數(shù)恢復為出廠值;

    AT&D0:忽略DTR信號;

    AT&S0:將DSR信號設定為ON;

    ATD:發(fā)出撥號指令;

    AT&W0:將MODEM 目前的參數(shù)狀態(tài)存儲在參數(shù)表0 中;

    AT&Y0:當MODEM 初始上電時,調(diào)用存儲的參數(shù)表0;

    ATZ0: 復位MODEM 并啟用存儲的第0組參數(shù)表;

    AT&Z=X:將電話號碼X存儲在MODEM 的內(nèi)部存儲器中;

    ATDS:撥出MODEM 預存儲的電話號碼。

    那么,單片機如何利用這些指令來操作MODEM呢?下面以發(fā)送指令ATA為例來加以說明,程序采用C51編寫,該程序只給出了相關的部分,

    #include 《 P》

    #include 《 P》

    #define U8251_C XBYTE[0xfd00]

    /* 定義8251 控制/狀態(tài)字地址*/

    #define U8251_D XBYTE[0xfc00]

    /*定義8251 數(shù)據(jù)緩沖區(qū)地址*/

    unsigned char code ATA[4]={‘A’,‘T’,‘A’,0x0d};

    /*0x0d為回車(return)控制符*/

    void send-code (unsigned char code *send_addr,

    unsigned char send_sum);

    /*發(fā)送函數(shù)聲明,形式參數(shù)為發(fā)送

    首地址和發(fā)送字符個數(shù)*/

    void main()

    {

    ……

    send_code(ATA,4); /*發(fā)送ATA應答命令*/

    ……

    }

    void send_code(unsigned char code *send_addr,

    unsigned char send_sum)

    {

    do{

    while((U8251_c&0x05)!=0x05);

    U8251_D=*send_addr;

    send_addr++;

    }while(--send_sum);

    }

    為了單片機對MODEM 的控制和操作,對本系統(tǒng)設計中的MODEM 做了如下初始化:

    AT&FE0V0&D0&S0&Y0&W0

    3 接口電路

    圖2 為該現(xiàn)場數(shù)據(jù)采集系統(tǒng)中單片機和MODEM的接口電路圖, 單片機選用Winbord(華幫)公司生產(chǎn)的高性能低功耗單片機W78E52B,它采用80C31內(nèi)核,在指令上與MCS-51完全兼容,內(nèi)含8k的電可擦除MTP ROM(Multiple-Time Programmable ROM)。其內(nèi)部串口能和其它有串口的通訊設備一起進行數(shù)據(jù)采集(這部分在圖2中沒畫出);

    基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)的設計

    圖2 單片機和MODEM 的接口電路

    考慮到所采集的數(shù)據(jù)較多,故擴展了一片8155 作為外部數(shù)據(jù)存儲器,并兼做并行數(shù)據(jù)采集接口,其內(nèi)部14 位定時器作為分頻器使用;另擴展的一片8251 用來和MODEM 接口,8251的內(nèi)部工作時序,發(fā)送器時鐘和接收器時鐘需要外部輸入,在設計中,單片機提供的ALE信號作為其外部輸入,因而無需單獨設計分頻器,由于在單片機訪問外部存貯器時, ALE要丟失一個周期,因而采用圖2所示的方法,可充分利用系統(tǒng)資源,根據(jù)接收時鐘輸入RXCLK和發(fā)送時鐘輸入TXCLK的不同,8251 的發(fā)送波特率和接收波特率可以不同,在本系統(tǒng)中,發(fā)送波特率和接收波特率相同,都由8155定時器分頻輸出TMROUT供給。發(fā)送數(shù)據(jù)可根據(jù)系統(tǒng)要求在主程序中完成,接收數(shù)據(jù)緩沖區(qū)請求輸出RXRDY經(jīng)74LS02反向后接78E52B的中斷輸入INT0,接收數(shù)據(jù)采用中斷方式控制,系統(tǒng)設計時忽略了DSR信號, 因而在圖2 中將其直接接地;

    RS232 接口電平轉(zhuǎn)換電路采用一片具有五對輸入和輸出的MSX238,它自帶電荷泵,采用單5伏電源,只用一片便可提供本系統(tǒng)所有RS232電平的驅(qū)動與轉(zhuǎn)換。

    4 現(xiàn)場數(shù)據(jù)采集器的功能及原理

    現(xiàn)場數(shù)據(jù)采集器有兩種工作方式, 即主叫方式和被叫應答方式。主叫方式就是現(xiàn)場數(shù)據(jù)采集器主動呼叫監(jiān)控中心;被叫應答方式是在現(xiàn)場數(shù)據(jù)采集器收到監(jiān)控中心的呼叫振鈴后響應應答指令。另外,現(xiàn)場數(shù)據(jù)采集器具有遠程設置主叫呼叫號碼的功能,其軟件編制流程圖如圖3 所示。

    基于單片機和MODEM接口電路實現(xiàn)遠程數(shù)據(jù)采集系統(tǒng)的設計

    圖3 現(xiàn)場數(shù)據(jù)采集器的程序流程圖

    4.1 通訊波特率

    8251 的通訊波特率取決于RXCLK和TXCLK的時鐘輸入,在異步方式中,RXCLK,TXCLK可以是波特率,也可以是波特率的16 或64倍。這由8251控制字中的波特率因子來決定,在本系統(tǒng)設計中,設波特率因子為異步X16,即RXCLK,TXCLK是傳輸波特率的16倍。從圖2可以看出,RXCLK,TXCLK由8155 的TMROUT給出, 而8155 的TMRIN為系統(tǒng)時鐘fosc的1/6,因此選擇波特率的關鍵就是確定8155定時器的時間常數(shù)。如果將8155 的定時器設為連續(xù)方波輸出,那么8155 定時器的時間常數(shù)N和定時器輸入頻率fTMRIN,輸出頻率fTMROUT的關系為:fTMROUT=fTMRIN/N,設8251的分頻系數(shù)為16,則傳輸波特率可有下式計算:

    波特率=fTMROUT/16=fTMRIN/16N=fosc/(6X16N)

    本系統(tǒng)選用頻率為11.0592MHz 的晶振,fosc為1.0592MHz, 若8251 采用2400Hz的波特率來傳輸數(shù)據(jù),則8155的定時器常數(shù)N為:

    N=11.0592X106/(2400X16X6)=48=30H

    按照以上分析,則8155,8251 初始化編程如下:

    void initialize rs(void)

    {

    U8155_IO=0xc0; /*8155命令字初始化*/

    U8155_TO=0x30;/*送8155定時器常數(shù)低字節(jié)*/

    U8155_TH=0x40; /*送8155定時器常數(shù)高字節(jié)*/

    U8251_C=0x4e; /* 方式控制字初始化*/

    U8251_C=0x37;

    }

    4.2 遠程設置主叫呼叫號碼

    在本系統(tǒng)中,當關鍵數(shù)據(jù)發(fā)生越限變化時,現(xiàn)場數(shù)據(jù)采集器能夠自動呼叫監(jiān)控中心,而被呼叫的電話號碼卻不能夠存儲在程序的ROM中, 原因有兩條:第一:監(jiān)控中心的電話號碼可能會變更;第二:不同的用戶被呼叫的電話號碼不一樣; 而在現(xiàn)場數(shù)據(jù)采集器上設計一片EEPROM 也不是最好的方案;解決這一問題的最佳方法是將此電話號碼存儲在MODEM 中, 那么如何實現(xiàn)呢?可用前面提到的AT&Z=X(X為電話號碼) 命令進行遠程設置,當監(jiān)控中心需要修改這個電話號碼時, 就呼叫現(xiàn)場數(shù)據(jù)采集器,并將此電話號碼傳輸給數(shù)據(jù)采集器,然后由數(shù)據(jù)采集器自動用AT&Z=X(X為電話號碼)命令將此號碼存儲在MODEM 中。

    4.3 主叫方式

    當現(xiàn)場數(shù)據(jù)采集器采集到的關鍵數(shù)據(jù)發(fā)生越限變化時,現(xiàn)場數(shù)據(jù)采集器便利用AT指令ATDS主動撥打存儲在MODEM 中的電話號碼來呼叫監(jiān)控中心,并將關鍵數(shù)據(jù)打包傳送給監(jiān)控中心,在監(jiān)控中心收到信息包后,系統(tǒng)便可進行存儲和分析,以供值班人員判斷并做出處理。

    4.4 被叫方式

    當監(jiān)控中心需要獲得現(xiàn)場數(shù)據(jù)時, 可以主動撥號呼叫現(xiàn)場數(shù)據(jù)采集器, 在圖2中,W78E52 的P1.1在檢測到預定次數(shù)的振鈴信號時發(fā)出MODEM應答指令ATA,并在延時等待MODEM 連通以及雙方握手成功后, 由監(jiān)控中心向現(xiàn)場數(shù)據(jù)采集器發(fā)出請求發(fā)送數(shù)據(jù)指令。現(xiàn)場數(shù)據(jù)采集器收到指令后將實時變化的動態(tài)數(shù)據(jù)傳送給監(jiān)控中心, 以使監(jiān)控中心隨時中斷對數(shù)據(jù)接收, 并向現(xiàn)場數(shù)據(jù)采集器發(fā)出掛機指令?,F(xiàn)場數(shù)據(jù)采集器在收到掛機指令后停止發(fā)送數(shù)據(jù)并掛機。

    4.5 存在問題及解決方法

    本系統(tǒng)剛開始設計時,8251 的復位輸入端和CPU的復位輸入端是連接在一起,這樣設計曾出現(xiàn)過8251不能可靠復位的問題。 后改為靠W78E52的P1.0 給8251發(fā)復位脈沖,圖2 所示,這樣,就可根據(jù)軟件抗干擾的需要隨時復位8251,用C51編寫的復位程序如下:

    void reset_8251(void)

    {

    P1^0=1;

    ACC=0;

    while(--ACC);

    P1^0=0;

    }

    5 結(jié)論

    實踐證明,該系統(tǒng)和MODEM 接口具有電路簡單,成本低,可靠性高的特點。在實際應用中取得了良好效果.
    來源;21ic


  • ·上一篇:
    ·下一篇:
  • 其他關聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機:131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 m.xbquwah.cn 電話:13113000010 粵ICP備2021111333號