新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)和MODEM接口及遠(yuǎn)程數(shù)據(jù)傳輸

        單片機(jī)和MODEM接口及遠(yuǎn)程數(shù)據(jù)傳輸

        作者: 時(shí)間:2012-10-30 來源:網(wǎng)絡(luò) 收藏

        隨著自動(dòng)化程度的不斷提高,對(duì)現(xiàn)場數(shù)據(jù)遠(yuǎn)程采集與傳輸?shù)囊笠踩找嫣岣撸陔娫捦ㄓ嵕W(wǎng)絡(luò)相當(dāng)普及的今天,最方便最靈活的方法就是采用(調(diào)制解調(diào)器)并借助于現(xiàn)有的模擬公用電話交換網(wǎng)進(jìn)行數(shù)據(jù)傳輸,經(jīng)過幾年的研究,筆者開發(fā)了一種在控制下通過公用電話交換機(jī)網(wǎng)絡(luò)做載體的數(shù)據(jù)傳輸系統(tǒng),這種數(shù)據(jù)傳輸系統(tǒng)不受時(shí)間與地域的限制,并可隨時(shí)實(shí)時(shí)追蹤現(xiàn)場資料的變化情況,從而為遠(yuǎn)程故障的診斷和排除提供了便利。
        由于目前國內(nèi)有關(guān)的接口資料很少,所以,本文主要就接口及如何利用AT命令來控制MODEM 做些介紹。

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

        2 MODEM 命令
        由于MODEM 是將數(shù)據(jù)通過公用電話網(wǎng)進(jìn)行遠(yuǎn)程發(fā)送和傳輸?shù)臉蛄海@里先將MODEM 的功能及用法做一介紹"MODEM 是“調(diào)制解調(diào)器”的英文縮寫,所謂調(diào)制,就是將“0”和“1”的數(shù)字信號(hào)變成不同的頻率信號(hào),調(diào)制到載波頻率上,并利用電話線進(jìn)行模擬信號(hào)的傳送, 解調(diào)是調(diào)制的反過程, 即將載波頻率上的頻率信號(hào)解調(diào)成與其對(duì)應(yīng)的數(shù)字信號(hào),傳送至終端控制器。
        目前,我們?cè)谑袌錾纤姷降腗ODEM 都用賀氏兼容的指令集來管理和設(shè)定MODEM 的各項(xiàng)操作和通訊功能,而一般這些指令皆以AT為前置碼,所以稱這些指令為“AT指令”。下面介紹幾個(gè)常見的MODEM 指令,這些指令都以回車(RETURN)結(jié)尾。

        ATA:手動(dòng)應(yīng)答指令,強(qiáng)迫MODEM 摘機(jī)并檢測載波;
        ATE0: 指令不回應(yīng),即向MODEM 發(fā)送的指令不在終端回顯;
        ATV0: MODEM 以數(shù)字形式回應(yīng)信息,即MODEM 收到指令后,以數(shù)字形式返回結(jié)果碼;
        ATF:參數(shù)恢復(fù)為出廠值;
        ATD0:忽略DTR信號(hào);
        ATS0:將DSR信號(hào)設(shè)定為ON;
        ATD:發(fā)出撥號(hào)指令;
        ATW0:將MODEM 目前的參數(shù)狀態(tài)存儲(chǔ)在參數(shù)表0 中;
        ATY0:當(dāng)MODEM 初始上電時(shí),調(diào)用存儲(chǔ)的參數(shù)表0;
        ATZ0: 復(fù)位MODEM 并啟用存儲(chǔ)的第0組參數(shù)表;
        ATZ=X:將電話號(hào)碼X存儲(chǔ)在MODEM 的內(nèi)部存儲(chǔ)器中;
        ATDS:撥出MODEM 預(yù)存儲(chǔ)的電話號(hào)碼.

        那么,單片機(jī)如何利用這些指令來操作MODEM呢?下面以發(fā)送指令A(yù)TA為例來加以說明,程序采用C51編寫,該程序只給出了相關(guān)的部分,
        #include reg52.h>
        #include absacc.h>
        #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ā)送字符個(gè)數(shù)*/
        void main()
        {
        ……
        send_code(ATA,4); /*發(fā)送ATA應(yīng)答命令*/
        ……
        }


        上一頁 1 2 3 下一頁

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 喀喇沁旗| 平山县| 工布江达县| 潼南县| 山东省| 乐东| 周口市| 陈巴尔虎旗| 青铜峡市| 遂平县| 定襄县| 通榆县| 黄浦区| 赣州市| 简阳市| 保康县| 忻城县| 濮阳市| 永康市| 大同市| 祁连县| 剑河县| 肇庆市| 武汉市| 吉林省| 丹东市| 碌曲县| 贵港市| 大名县| 钟山县| 梅河口市| 尼木县| 南阳市| 广南县| 汝阳县| 惠水县| 开远市| 乳源| 朝阳市| 宝鸡市| 改则县|