基于CMX860的來電顯示電話測(cè)試儀的設(shè)計(jì)
1 引 言
目前,隨著電信部門電話主叫識(shí)別(來電顯示)業(yè)務(wù)的普遍開通,具有主叫識(shí)別功能的電話機(jī)越來越普及。根據(jù)這個(gè)情況,我們?cè)O(shè)計(jì)了一臺(tái)可以測(cè)試主叫識(shí)別功能的多功能電話測(cè)試儀,采用了cml(consumermicrocircuit
limited)公司的cmx860作為其中來電顯示測(cè)試電路的核心元件,單片機(jī)采用了sst89c58。
1.1 cmx860簡(jiǎn)介
cmx860是一塊通用的低功耗電話機(jī)信令收發(fā)集成電路。cmx860包含dtmf編碼解碼器、v.23調(diào)制解調(diào)器,具有鈴流檢測(cè)、話機(jī)摘機(jī)檢測(cè)等功能,它可以廣泛應(yīng)用于由線路提供電源的電話設(shè)備。
cmx860的主要特性有:(1)提供v.23 1200/75bps的fsk信號(hào)發(fā)送和接收;(2)雙音多頻及音頻信令的發(fā)送和接收;(3)用戶線端和電話機(jī)端驅(qū)動(dòng);(4)呼叫進(jìn)程解碼;(5)來電等候信號(hào)的產(chǎn)生和檢測(cè);(6)“c-bus”串行總線接口;(7)低功耗工作方式。
圖1是cmx860的原理框圖。cmx860包括ssop及soic兩種封裝,共28腳。具體管腳圖及管腳
說明請(qǐng)參見cmx860用戶手冊(cè)。
1.2 sst89c58簡(jiǎn)介
單片機(jī)sst89c58與標(biāo)準(zhǔn)的8052引腳、指令和片內(nèi)資源全兼容。sst89c58的優(yōu)點(diǎn)是包含36kb高性能的flash,既可以存儲(chǔ)程序,也可保存數(shù)據(jù),簡(jiǎn)化了系統(tǒng)設(shè)計(jì),省去了通常外部擴(kuò)展的24xx系列或93xx系列的外部flash,元件數(shù)目減少,系統(tǒng)可靠性增加,總體成本降低。sst89c58的另一個(gè)優(yōu)點(diǎn)是保密性好,不易被解密或仿制。
2 cmx860與單片機(jī)的連接
cmx860的一個(gè)顯著特點(diǎn)是它的所有編程功能可以通過一個(gè)稱為c-bus(c總線)的串行總線接口來完成。單片機(jī)通過c-bus與cmx860連接,c-bus串行總線可在單片機(jī)和cmx860內(nèi)部寄存器間進(jìn)行數(shù)據(jù)、控制或狀態(tài)信息的傳送。
2.1 cmx860與單片機(jī)的硬件連接
cmx860的c-bus接口兼容于大多數(shù)通用的單片機(jī)串行接口,而且可與單片機(jī)的通用i/o管腳連接。本系統(tǒng)采用sst89c58的p1口的p1.4、p1.5、p1.6、p1.7腳與cmx860的c-bus接口連接。具體連接如圖2所示。
cmx860各引腳功能:csn腳作為使能腳,data腳從單片機(jī)接收串行數(shù)據(jù)信號(hào),clk腳從單片機(jī)接收串行時(shí)鐘信號(hào),reda腳向單片機(jī)發(fā)送串行數(shù)據(jù)信號(hào)。
2.2 單片機(jī)對(duì)cmx860編程
根據(jù)c-bus接口的時(shí)序,在串行輸入時(shí)鐘的上升沿,從單片機(jī)命令數(shù)據(jù)線上送來的數(shù)據(jù)被鎖進(jìn) cmx860。當(dāng)串行時(shí)鐘為高電平時(shí),從cmx860送到單片機(jī)的響應(yīng)數(shù)據(jù)有效。在數(shù)據(jù)傳送期間,csn線(使能端)必須保持低電平,而在兩次傳輸之間保持高電平。具體傳送過程中,首先由單片機(jī)發(fā)送給cmx860一個(gè)字節(jié)表示cmx860內(nèi)部寄存器地址(cmx860內(nèi)部寄存器說明及地址參見參考文獻(xiàn)〔1〕),接著,由單片機(jī)發(fā)給cmx860的只寫存儲(chǔ)器一個(gè)或多個(gè)的數(shù)據(jù)字節(jié),或者單片機(jī)從cmx860的只讀存儲(chǔ)器讀出一個(gè)或多個(gè)數(shù)據(jù)字節(jié),從而完成對(duì)cmx860的控制編程。圖3是由單片機(jī)向cmx860發(fā)出一個(gè)地址信號(hào)和一個(gè)數(shù)據(jù)信號(hào)的時(shí)序圖。
下面是單片機(jī)與cmx860通信的幾個(gè)子程序:
(1)單片機(jī)向cmx860寫入一個(gè)字節(jié)信息子程序,信息存在寄存器a中。
out byte:mov r7,#8
outb1: clr clk;時(shí)鐘信號(hào)置為低電平
rlc a;從a中讀出一比特
mov date,c;將一比特信息放入data數(shù)據(jù)線上
setb clk;時(shí)鐘信號(hào)置為低電平
rlca;從a中讀出一比特
mov date,c;將一比特信息放入data數(shù)據(jù)線上
setb clk;時(shí)鐘信號(hào)置為高電平,在時(shí)鐘的上升沿時(shí)data數(shù)據(jù)線上數(shù)據(jù)被送入cmx860
djnzr7,outb1;總共輸入8比特clr clkret
(2)單片機(jī)從cmx860讀出一個(gè)字節(jié)信息子程序,信息存入寄存器a中。
in byte:mov r7,#8
inb1: clr clk;時(shí)鐘信號(hào)置為低電平
nop
setbclk;時(shí)鐘信號(hào)置為高電平
mov c,sout;在時(shí)鐘信號(hào)為高電平時(shí)將rdda數(shù)據(jù)線上的數(shù)據(jù)比特讀入單片機(jī)
rlca;將數(shù)據(jù)比特存入寄存器a中
djnzr7,inb1;共讀入8個(gè)比特
clr clk
ret
(3)單片機(jī)向cmx860特定寄存器寫入一個(gè)字節(jié)信息子程序。
write byte:clr csn;使能端置為低電平
mov a,addr;
3 電話主叫識(shí)別簡(jiǎn)介
3.1 主叫識(shí)別業(yè)務(wù)定義
主叫識(shí)別信息傳送及顯示業(yè)務(wù),是向被叫電話機(jī)提供的一種新的服務(wù)項(xiàng)目,指在被叫用戶終端設(shè)備上顯示主叫號(hào)碼、主叫用戶姓名、呼叫日期、時(shí)間等主叫信息,并進(jìn)行存儲(chǔ),以供用戶查閱的一種服務(wù)。
3.2 實(shí)現(xiàn)主叫識(shí)別的方法
實(shí)現(xiàn)主叫識(shí)別的基本方法是發(fā)端交換機(jī)將主叫號(hào)碼等信息通過信令系統(tǒng)傳送給終端交換機(jī),終端交換機(jī)將主叫識(shí)別信息以雙音多頻(dtmf)或頻移鍵控(fsk)的方式傳送給終端用戶/終端設(shè)備。終端交換機(jī)將主叫識(shí)別信息在第一次振鈴和第二次振鈴間隙送給被叫用戶終端。
3.3 主叫識(shí)別信息數(shù)據(jù)的傳送時(shí)序
主叫識(shí)別信息數(shù)據(jù)的傳送時(shí)序圖見圖4。
圖4中,階段a是交換機(jī)向終端電話發(fā)出的第一次振鈴信號(hào);階段b是第一次振鈴結(jié)束與數(shù)據(jù)傳送開始之間的時(shí)間間隔,時(shí)長(zhǎng)為0.5~1.5s;階段c是交換機(jī)向終端電話發(fā)出的關(guān)于主叫識(shí)別信息的數(shù)據(jù)信號(hào),時(shí)長(zhǎng)應(yīng)小于2.9s;階段d數(shù)據(jù)傳送結(jié)束與第二次振鈴開始之間的時(shí)間間隔,時(shí)長(zhǎng)大于200ms;階段e是交換機(jī)向終端電話發(fā)出的第二次振鈴信號(hào),時(shí)長(zhǎng)為1s。
3.4 主叫識(shí)別信息數(shù)據(jù)格式
主叫識(shí)別信息數(shù)據(jù)由信息頭和信息體兩部分構(gòu)成,信息頭由信息類型和信息長(zhǎng)度組成,它們均為8比特,信息類型的值用來識(shí)別信息的類型,信息長(zhǎng)度指明后來跟的信息值的長(zhǎng)度,信息體包括交換機(jī)發(fā)送給終端用戶的主叫用戶信息,信息體可容納1~255個(gè)8比特的消息字,每個(gè)字用帶校驗(yàn)的ascii碼表示。如圖5所示。
4 電話測(cè)試儀中來電顯示測(cè)試部分的硬件及軟件實(shí)現(xiàn)
4.1 硬件實(shí)現(xiàn)
電話測(cè)試儀中來電顯示測(cè)試部分模擬終端交換機(jī)向被測(cè)試電話機(jī)發(fā)出主叫用戶信息,以檢測(cè)被測(cè)電話顯示的內(nèi)容是否準(zhǔn)確。其原理框圖見圖6。其中,主控部分包括sst89c58和cmx860等電路,產(chǎn)生并發(fā)送主叫用戶信息;電源部分向主控部分及顯示部分提供+5v及+9v電壓;仿真部分模擬交換機(jī)的用戶環(huán)路,連接電話機(jī),并向電話機(jī)提供48v饋電;顯示部分用來顯示測(cè)試儀的狀態(tài)及電話機(jī)向測(cè)試儀發(fā)出的各種信息如號(hào)碼等;輸入部分用于輸入主叫用戶信息及測(cè)試儀的控制命令。
4.2 軟件實(shí)現(xiàn)
系統(tǒng)模擬交換機(jī)向電話機(jī)發(fā)送主叫識(shí)別信息,電話機(jī)接收后顯示主叫信息。需要顯示的主叫識(shí)別信息內(nèi)容可以采用兩種方法獲得:(1)在編程時(shí)預(yù)先存入數(shù)據(jù)存儲(chǔ)區(qū),采用這種方法可以存儲(chǔ)國(guó)標(biāo)要求測(cè)試的所有內(nèi)容;(2)由用戶輸入,用戶可以根據(jù)需要在測(cè)試前輸入信息,這樣可以增加測(cè)試的靈活性。發(fā)送主叫識(shí)別信息有dtmf及fsk兩種信號(hào)方式。用戶可根據(jù)被測(cè)試電話機(jī)選擇其中一種或兩種信號(hào)方式。測(cè)試軟件流程圖如圖7所示。流程圖中輸出來電顯示信息部分按圖4的流程。
5 結(jié)束語(yǔ)
我們采用cmx860為核心設(shè)計(jì)的可測(cè)試來電顯示的多功能電話測(cè)試系統(tǒng),目前已投入使用。
評(píng)論