單片機(jī)COP840C在無繩電話中的應(yīng)用
DTMF 簡(jiǎn)介。它采用一對(duì)音頻信號(hào)標(biāo)志一個(gè)數(shù)據(jù)的方式,一對(duì)音頻分別從高頻音頻組和低頻音頻組 中送取,其音頻-數(shù)據(jù)對(duì)應(yīng)關(guān)系國(guó)際規(guī)定如表1所示。
表1 音頻-數(shù)據(jù)對(duì)應(yīng)關(guān)系
DTMF模塊的設(shè)計(jì)思想主要是:在CPU RO M中設(shè)置數(shù)據(jù)表來模擬各個(gè)音頻信號(hào)(包括低頻群和高頻群各個(gè)頻點(diǎn)信號(hào)),當(dāng)程序判斷要輸出某DTMF信號(hào)時(shí),先找到該DTMF信號(hào)對(duì)應(yīng)的高、低音頻對(duì)應(yīng)的數(shù)據(jù),然后將其算術(shù)組合,合成值從L口的L0~L5管腳輸出,通過一個(gè)D/A阻抗網(wǎng)絡(luò)之后得到DTMF信號(hào),DTMF信號(hào)輸出持續(xù) 時(shí)間為100 ms,而合成值每118 μs改變一次。CPU定時(shí)器用于100 ms信號(hào)寬度的計(jì)數(shù),到10 0 ms產(chǎn)生中斷以中止DTMF信號(hào)輸出。
下面詳細(xì)介紹該DTMF模塊的原理、流程。該模塊分為 兩個(gè)子模塊:KBDEC,DTMFLP。前者用于DTMF鍵盤譯碼,后者用于雙音頻產(chǎn)生。
KBDEC子模 塊把低為真DTMF鍵盤輸入進(jìn)行譯碼,轉(zhuǎn)換成相應(yīng)的一個(gè)DTMF碼Code l,其二進(jìn)制形式為0000 RRCC,其中RR,CC分別代表四個(gè)行值和四個(gè)列值。
DTMFLP模塊。首先利用Code l,通過查ROM數(shù)據(jù)表Table 1,得到四個(gè)與DTMF鍵有關(guān)的值,這四個(gè)值分別表示高、低音頻ROM數(shù)據(jù)表Table 2的大小和相關(guān)起始地址,利用這四個(gè)值,每隔 117.33 μs,從ROM數(shù)據(jù)表Table 2中取出高、低音頻正弦波頻率值,算術(shù)組合之后輸出到L 口之L0-L5腳,通過外接阻抗階梯網(wǎng)絡(luò)后得到相應(yīng)DTMF信號(hào)。高、低音頻對(duì)應(yīng)Table 2中的數(shù) 據(jù)有不同的基準(zhǔn)值,高頻基準(zhǔn)值為16,低頻基準(zhǔn)值為13,其差值16-13=3是為滿足DTMF信號(hào) 要求而必需的:高頻群高于低頻群2 dB以補(bǔ)償傳輸損耗。
Table 2數(shù)據(jù)表的產(chǎn)生。117.33 μs的倍數(shù)對(duì)于DTMF信號(hào)中的八個(gè)頻率成分而言,均可達(dá)到很好的近似。以1 336 Hz為例:在Table 2中存有其三個(gè)周期共19個(gè)樣點(diǎn),則其合成信號(hào)周 期為[19×117.33 μs]/3
1 345.73 Hz,和1 336 Hz相比 ,相對(duì)該差為+0.73%,在國(guó)標(biāo)DTMF誤差范圍以內(nèi)。至于如何確定各個(gè)音頻在Table 2中的周期數(shù)及樣點(diǎn)數(shù),由于ROM容量限制,不可能在ROM中放入太多數(shù)據(jù),所以設(shè)定周期數(shù)不大于10 ,再設(shè)定誤差最大值比如0.8%,則用窮舉法編一個(gè)簡(jiǎn)單的高組語言程序就可。根據(jù)各個(gè)音頻 在Table 2中的周期數(shù)及樣點(diǎn)數(shù)就可以計(jì)算出Table 2數(shù)據(jù),實(shí)際上在計(jì)算時(shí)為得到最好的近 似,有所謂“正弦波面積準(zhǔn)則”。
5 結(jié) 論
本單片機(jī)系統(tǒng)采用COP840C實(shí)現(xiàn) 了無繩電話各種控制、通信功能,并采用軟件法產(chǎn)生DTMF信號(hào),降低了系統(tǒng)成本,同時(shí)還具有工作可靠性好、耗電少、待機(jī)時(shí)間長(zhǎng)(達(dá)72 h)等特點(diǎn)。采用該單片機(jī)系統(tǒng)的無繩電話產(chǎn)品 已投入批量生產(chǎn)。
評(píng)論