單片機基于DTMF編碼的無線電數(shù)據(jù)通信
隨著單片機應用的普及,單片機間通信問題已引起廣泛的關注。目前,應用較多的是有線通信,而如何利用現(xiàn)有的無線模擬信道進行單片機數(shù)據(jù)傳輸,是眾多同行們更加關心的課題。本節(jié)介紹一種利用DTMF編碼進行單片機間無線數(shù)據(jù)通信的應用系統(tǒng)。它具有簡便、實用、價格低廉等特點。
一、系統(tǒng)工作原理
本系統(tǒng)采用51單片機控制雙音多頻DTMF發(fā)生器(TCM5087)來實現(xiàn)信道編碼。DT-MF產(chǎn)生的雙音編碼正弦波送入無線電話進行發(fā)射。接收端將無線電話機收到的DTMF信號送入DTMF解調(diào)器(MT8870)來實現(xiàn)信道解碼,從而完成單片機間的數(shù)據(jù)通信。其結(jié)構如圖1- 74所示。
二、DTMF信號編碼方式
DTMF是一種在電話通信中應用較廣泛的信號編碼方式。
為了更清楚地了解DTMF信號的編碼原理,下面分別介紹其發(fā)生器、解調(diào)器及單片機的控制工作過程。
三、TCM5087結(jié)構及其工作原理
TCM5087是雙列直插式DTMF信號發(fā)生器專用電路。
輸入端R1~R4(行)、Cl~C4(列)既可接普通電話鍵盤,也可用于電平輸入。16端為音調(diào)輸出端,輸出的兩個音頻信號被線性地疊加在一起。一個音頻由輸入端Ri~R4從低頻組中選定;另一個音頻由輸入端Cl~C4從高頻組中選定。低頻組有697Hz(R1)、770 Hz( R2)、852Hz(R3)和941 Hz(R4)四個頻率,高頻組有1 209 Hz(C1)、1 336 Hz(C2)、1 477 Hz(C3)和1633 Hz(C4)四個頻率。當行(R1)輸入為0電平時,選擇其低頻組中的一個;當列(C1)輸入為VDD電平時,選擇其高頻組中的一個。輸出的音頻單音幅度Vpp為400~500 mV。雙音調(diào)輸出的諧波失真和交調(diào)失真小于10%,頻率誤差為±1.0%,準確度優(yōu)于0.75%,高頻比低頻加重2 dB。15端用來阻止單音產(chǎn)生,當為O電平時,輸出端將不會產(chǎn)生單音調(diào)輸出。10端是靜噪輸出端,2端為發(fā)射機開關控制端,7端為片內(nèi)振蕩器外接晶振的一個輸入端,8端為片內(nèi)振蕩器外接晶振的另一個輸入端。應用時,在7、8端之間接入3. 579 545 MHz晶體即可。該芯片的最大優(yōu)點是所用外圍元件最少,僅需一個廉價的彩電晶體即可工作。
四、MT8870結(jié)構及工作原理
MT8870是雙列直插式DTMF解調(diào)專用電路。其內(nèi)部電路方框圖如圖1- 78所示。
由圖1-74及圖1-78可以看出:由運放及R1、R2、C1組成一反相放大器,對輸入的DT-MF信號進行隔離放大。其增益K=-R2 /R1,K值一般為1~5;輸入的DTMF信號幅度應為27. 5~883 mV;VREF (4)為參考電壓輸出端,取值為VDD/2=2.5 V;IC(5端和6端)為內(nèi)部電路的連接線,必須接V ss;其他各端子的功能參照譯碼過程波形圖,不難理解。值得注意的是,輸出的二進制編碼信號Qi~Q4由使能端TOE控制:TOE為高電平時,打開輸出鎖存器,輸出與當前輸入的DTMF信號相對應的二進制編碼;當TOE為低電平時,Qi~Q4呈高阻狀態(tài),故可直接掛在數(shù)據(jù)總線上。DTMF信號與二進制編碼信號的對應關系如表1- 22所列。
表1- 22 DTMF信號與二進制編碼的對應關系
雙音到達檢測時間tDP為5~15ms;雙音持續(xù)時間tREC應為20~40 ms; tGTP、tGTA由時間常數(shù)R3 C2決定,表達式為:
式中:V TST為門限電壓,一般取VDD/2,故tGTP =tGTA=0.69 R3 C2。譯碼過程波形可參照圖1-79。
五、單片機控制工作過程
發(fā)送端:單片機將欲發(fā)送的數(shù)據(jù)通過查表變換成對應的DTMF代碼;然后由DB總線送74LS273鎖存;TCM5087接到鎖存器信號后,發(fā)出雙音頻正弦波信號;同時發(fā)出發(fā)射機打開信號,將無線電話機置為發(fā)射狀態(tài),從而將代碼所對應的雙音調(diào)發(fā)射出去。持續(xù)一段時間后(約40 ms),單片機再以同樣方式將另一數(shù)據(jù)發(fā)射出去。
接收端:由無線電話收到的雙音信號輸入到MT8870解調(diào)器后,在EST端產(chǎn)生一矩形脈沖,經(jīng)R3C2積分后,在S1/GT端產(chǎn)生如圖1- 79所示波形。當S1/GT端電乎高于VTST時,產(chǎn)生SiD信號為1;當S1/GT端電平低于VTST時,SiD信號為0。該信號輸出端與單片機8031的外部中斷INTi端相連,當該信號發(fā)生由1到0的跳變時,中斷標志IEI置1(中斷方式安排為下降沿觸發(fā)方式)。8031響應中斷后,產(chǎn)生一個RD信號,經(jīng)反相后,使MT8870的TOE端產(chǎn)生一個高電平脈沖信號,將與當前輸入的雙音信號相對應的二進制編碼信號通過DB總線(低4位)讀入8031。單片機通過查表,即可得到與發(fā)送端完全一致的數(shù)據(jù)信息,完成了數(shù)據(jù)遠傳。具體編碼方式可參考表1- 22。
六、軟件設計
本系統(tǒng)應用程序為模塊式結(jié)構,發(fā)送端為主動工作方式,接收端為被動工作方式。有關信息編碼可參考表1- 22。
數(shù)據(jù)傳送程序清單如下:
查詢式無線遙測水位儀中采用了上述電路方案。實際運行表明,該系統(tǒng)穩(wěn)定可靠,抗干擾能力強,使用方便、靈活,價格低廉,誤碼率完全滿足要求,對軟件稍作充實修改,即可廣泛應用于各種低速無線數(shù)據(jù)傳輸?shù)膱龊?/p>