新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機和MODEM接口及利用AT命令來控制MODEM方案

單片機和MODEM接口及利用AT命令來控制MODEM方案

作者: 時間:2012-07-02 來源:網(wǎng)絡 收藏

隨著自動化程度的不斷提高,對現(xiàn)場數(shù)據(jù)遠程采集與傳輸?shù)囊笠踩找嫣岣?,在電話通訊網(wǎng)絡相當普及的今天,最方便最靈活的方法就是采用(調(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)場資料的變化情況,從而為遠程故障的診斷和排除提供了便利。

本文引用地址:http://m.butianyuan.cn/article/171207.htm

由于目前國內(nèi)有關資料很少,所以,本文主要就及如何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ù)。


圖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 的各項操作和通訊功能,而一般這些指令皆以為前置碼,所以稱這些指令為“指令”。下面介紹幾個常見的MODEM 指令,這些指令都以回車(RETURN)結(jié)尾。

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

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

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

ATF:參數(shù)恢復為出廠值;

ATD0:忽略DTR信號;

ATS0:將DSR信號設定為ON;

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

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

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

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

ATZ=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ù)*/


上一頁 1 2 3 4 下一頁

評論


相關推薦

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

關閉