FSK信息解碼的電話網(wǎng)數(shù)據(jù)通信
關(guān)鍵詞:單片機(jī) 電話主叫信息識別 FSK 數(shù)據(jù)通信
電話主叫識別信息發(fā)送及接收(俗稱來電顯示),簡稱CID(Calling Identify Delivery),是電信局向被叫電話用戶提供的一種服務(wù)項(xiàng)目,是指在被叫用戶終端設(shè)備上顯示主叫電話號碼、主叫用戶姓名、呼叫日期和時(shí)間等主叫識別信息并進(jìn)行存儲,以供用戶查閱的服務(wù)項(xiàng)目。被叫用戶根據(jù)顯示的主叫識別信息而決定是否接聽電話,可以避開一些不愿接聽或不友好的電話。利用這個(gè)功能可以進(jìn)行FSK信息解碼的電話網(wǎng)數(shù)據(jù)通信,應(yīng)用于實(shí)際生活中。
1 電話主叫識別原理和傳送協(xié)議
實(shí)現(xiàn)電話主叫信息識別業(yè)務(wù)的基本方法是,發(fā)端程序交換機(jī)將主叫電話號碼等信息通過局間指令系統(tǒng)傳磅給終端交換機(jī),終端交換機(jī)再將主叫識別信息以移頻鍵控FSK(Frequency-Shift Keying)或雙音多頻DTMF(DualToneMulti-Frequency)方式,在第一次振鈴或第二次振鈴間隔期前傳送給被叫用戶終端設(shè)備。我國的通信行業(yè)標(biāo)準(zhǔn)明確規(guī)定,統(tǒng)一采用FSK方式提供主叫電話來顯示服務(wù)。在一次呼叫中,若被叫用戶申請了CID業(yè)務(wù),則電信局的終端交換機(jī)就會(huì)向該被叫用戶傳送主叫識別信息數(shù)據(jù)。傳送流程與時(shí)序如圖1所示。
其中A、B、C、D、E為數(shù)據(jù)傳送時(shí)的狀態(tài)持續(xù)時(shí)間,各段時(shí)間值如表1所列。在數(shù)據(jù)傳送前或傳送過程中,如果用戶摘機(jī),則傳送停止,但呼叫處理正常進(jìn)行。
表1 CID信號傳送各段時(shí)間值
符 號 | 時(shí) 間 值 | 說 明 |
tA | 1s | 第一次鈴流信號 |
tB | 0.5stB1.5s | 第一次振鈴結(jié)束與數(shù)據(jù)傳送開始之間的時(shí)間間隔 |
tC | ≤2.9s | 傳送數(shù)據(jù)的時(shí)間,包括信道占用信號和標(biāo)志信號 |
tD | ≥200ms | 數(shù)據(jù)傳送結(jié)束與第二次振鈴開始的時(shí)間間隔 |
tE | 1s | 第二次鈴流信號 |
tB+C+D | ≤3.6s | 各時(shí)段可根據(jù)具體情況確定 |
2 主叫識別信息數(shù)據(jù)格式
FSK主叫識別信息數(shù)據(jù)的傳輸格式有兩種:單數(shù)據(jù)消息格式SDMF(Single Data Message Format)和復(fù)合數(shù)據(jù)消息格式MDMF(Multiple Data Message Format)。前者的結(jié)構(gòu)簡單,可容納的信息內(nèi)容較少,如主叫號碼、日期和時(shí)間;后者的結(jié)構(gòu)比較復(fù)雜,可容納的信息長度較長,除單數(shù)據(jù)格式內(nèi)容以外還可以主叫用戶的姓名等。本文主要介紹FSK主叫信息數(shù)據(jù)格式的接收。
單數(shù)據(jù)消息格式由消息頭和消息體組合,消息頭由消息類型和消息長度組成,它們均為8位字。消息類型的值來識別消息的特征;消息長度指明后面所跟消息字的長度。消息體包括交換機(jī)需傳給終端用戶的消息。消息體可容納1~255個(gè)8位的消息字。每個(gè)字用8位帶校驗(yàn)位的7位ASCII編碼字符集表示。
一個(gè)完事的消息幀由信道占用信號、標(biāo)志信號、數(shù)據(jù)信息和校驗(yàn)字組成。信道占用信號和標(biāo)志信號用來提示電話終端準(zhǔn)備接收數(shù)據(jù);校驗(yàn)字用來作差錯(cuò)檢查,如圖2所示。
①信道占用信號。這是發(fā)送主叫信息時(shí)要首先發(fā)出的頭標(biāo)志,由一組300個(gè)連續(xù)的“0”和“1”交替地組成。其第一個(gè)位為“0”,最后一個(gè)位為“1”。在通話狀態(tài)下,此信號不發(fā)送。
②標(biāo)志信號。在掛機(jī)狀態(tài)下,程控交換機(jī)向用戶發(fā)送主叫信息時(shí)要先發(fā)送的第二個(gè)標(biāo)志信號,由180個(gè)標(biāo)志位(邏輯“1”)組成。在通話狀態(tài)下,此信號不發(fā)送。
③標(biāo)志位。程控交換機(jī)根據(jù)線路使用情況隨機(jī)插入的標(biāo)志位,由0~10個(gè)邏輯“1”組成。
④數(shù)據(jù)字。主叫信息,每個(gè)數(shù)據(jù)字之前先行一次“0”作起始位,在最后加一位“1”作結(jié)束位,每個(gè)數(shù)字的最低位先發(fā)送。這樣,實(shí)際每個(gè)字為10位,即1PXXXXXXX0,其中P為奇偶校驗(yàn)位。
電話主叫信息數(shù)據(jù)傳送時(shí),信道占用信號首先發(fā)送,后接標(biāo)志信號,最后連續(xù)發(fā)送數(shù)據(jù)字。根據(jù)數(shù)據(jù)傳送情況,間隔地插入一些標(biāo)志位。一般標(biāo)志位會(huì)加在如下字的傳送之間:
a. 消息類型字與消息長度之間;
b. 消息長度字與第一個(gè)參考數(shù)字或消息字之間;
c. 參數(shù)類型字與相應(yīng)的參數(shù)長度字之間;
d. 參考長度字與第一個(gè)參考字之間;
e. 最后一個(gè)參數(shù)字與下一個(gè)參數(shù)類型字之間;
f. 最后一個(gè)參考字或消息字與校驗(yàn)字之間。
單數(shù)據(jù)消息格式數(shù)據(jù)傳送按消息類型(04H)、消息長度、消息字、月、日、時(shí)、分、主叫號碼(或“O”或“P”)的順序排列組成消息進(jìn)行傳送。所有的消息字和參數(shù)字都有奇數(shù)偶校驗(yàn)位,采用奇偶校驗(yàn)的方式傳送。
3 電話FSK信息通信電路設(shè)計(jì)
本文以FSK信息解調(diào)器SM8220P芯片與單片機(jī)及外電路接口為例,介紹FSK信息的通信接收方法。SM8220P解調(diào)器是日本NPC公司生產(chǎn)的雙列直插、低功耗CMOS集成電路FSK解調(diào)芯片,其解調(diào)器的引腳功能如表2所列。
表2 SM8220P引腳功能
符 號 | 引 腳 | 功 能 |
TIP-RING | 1,2 | 電話信號輸入端。信號輸入必須隔直流 |
AGND | 3 | 模擬地,要通過一個(gè)電容接地 |
RDIN | 4 | 振鈴檢測輸入。要把振鈴信號經(jīng)衰減后連接到此引腳 |
RDRC | 5 | 振鈴檢測RC延時(shí)電路,低電平有效 |
RDET | 6 | 振鈴檢測輸出,內(nèi)部接施密特觸發(fā)電路。當(dāng)為低電平時(shí),表明檢測到振鈴信號輸入;不用時(shí)應(yīng)接地 |
PWDN | 7 | 掉電控制,平時(shí)應(yīng)保持為低電平。若為高電平,進(jìn)入掉電工作模式,COSCOUT、CDET和DOUT自動(dòng)被設(shè)置成高電平,AGND、FOUT被設(shè)置成高阻抗?fàn)顟B(tài) |
GND | 8 | 器件地 |
OSCIN/CLKIN | 9 | 振蕩放大器輸入,外部振蕩放入器信號經(jīng)此引腳輸入 |
OSCOUT | 10 | 振蕩放大器輸出,使用外部振蕩信號時(shí)必須開路 |
CDET | 11 | 載波檢測輸出端,低電平有效。為低電平時(shí),表明此時(shí)有FSK載波信號輸入 |
NC | 12 | 空腳 |
DOUT | 13 | 數(shù)據(jù)輸出,平時(shí)為高電平。當(dāng)CDET=0時(shí),表明此時(shí)電話經(jīng)上有一個(gè)有效的FSK信號輸入,經(jīng)解調(diào)后由該腳輸出 |
DMIN | 14 | 解調(diào)器輸入端 |
FOUT | 15 | FSK帶通濾波器輸出端,通過一個(gè)電容耦合連接到DMIN |
VDD | 16 | 電源正極(3~5.5V) |
SM8220P遵循Bell 202和ITU-T V.23協(xié)議標(biāo)準(zhǔn),以連續(xù)二進(jìn)制脈沖頻移鍵控信號的方式傳輸,傳輸速率為1200bps。支持FSK號碼顯示和姓名顯示等多種功能;芯片內(nèi)部包含電源掉電檢測電路、振鈴檢測電路和載波檢測電路;信號輸入檢測靈敏度高,電源工作電壓較寬(3~5.5V),是進(jìn)行電話FSK信息解碼通信的較好的集成芯片。
為實(shí)現(xiàn)電話FSK信息的接收,采用P87LPC764單片機(jī)控制SM8220P電路,以完成電話FSK信息解碼通信的工作。電話FK信息通信具體電路如圖3所示。
從圖3中可知,對于從電話線上傳輸來的FSK信號,信號傳送在第一次振鈴和第二次振鈴之間。振鈴信號經(jīng)過整流、分壓,加到TIL113光電耦合器件的發(fā)射管上,使發(fā)射管有電流通過而發(fā)光,照射到光敏三極管的基極,臻使光敏三極管飽和導(dǎo)通。在R6上得到大于1V的脈沖信號,輸入到單片機(jī)外部中斷0,喚醒單片機(jī)準(zhǔn)備接收。0.5s后FSK信號經(jīng)過C3、C4、R1、C2的隔直和衰減,輸入到FSK接收器SM8220P的差分輸入端TIP和RING腳,將FSK信號讀取解調(diào)后從DOUT腳輸出ASCII碼的串行序列,由P87LPC764單片機(jī)接收處理,提取出相應(yīng)的電話FSK信息,發(fā)到多功能LED顯示模塊MAX7219驅(qū)動(dòng)數(shù)碼顯示和24C64保存。
4 FSK信息接收通信軟件設(shè)計(jì)
單片機(jī)對SM8220P輸出的ASCII碼串行序列的識別過程,由接收和數(shù)據(jù)整合兩部分組成。由于FSK信號波特率為1200bps,每發(fā)1位的時(shí)間是833us,因此,可以設(shè)定定時(shí)器每833us接收1位,每10位提取出1個(gè)數(shù)字。如此反復(fù)循環(huán),直到接收完全FSK信息。當(dāng)有電話來時(shí),在第一聲振鈴后,單片機(jī)開始準(zhǔn)備檢測接收信號,SM8220P開始接收300個(gè)由0、1組成的頻率為1200Hz的信道占用信號和180個(gè)“1”標(biāo)志信號,緊接著接收主叫號碼和時(shí)間。每收到1個(gè)數(shù)字,SM8220P都把它變換成10位(1PXXXXXXXX0)的串行序列,由13腳輸出傳送給P87LPC764單片機(jī),P87LPC764經(jīng)過精確的定時(shí)編程將其檢測整合出相應(yīng)的FSK號碼、時(shí)間等數(shù)據(jù),完成FSK信息解碼、接收通信、接收到的電話號碼可以保存在24C64串行E2PROM中,也可以輸出到LCD上顯示。SM8220P的11腳用來提示電話線上是否有新的FSK信息的輸入。若有新的FSK信息輸入,此引腳將產(chǎn)生低電平。單片機(jī)接收FSK主叫信息可以采用定時(shí)中斷方式,也可以采用延時(shí)查詢的辦法進(jìn)行。電話FSK信息接收通信程序流程如圖4所示。
結(jié)語
近幾年來,我國電信網(wǎng)絡(luò)基礎(chǔ)建設(shè)發(fā)展很快,電話普及率逐年提高。通過調(diào)查顯示,用戶迫切需要利用電話來傳遞更多的信息。利用SM8220P與單片機(jī)的結(jié)合,可以很方便地實(shí)現(xiàn)電話FSK信息的解碼、接收通信,實(shí)現(xiàn)用電話網(wǎng)進(jìn)行用戶遠(yuǎn)程自動(dòng)抄表等功能。
注:調(diào)試通過的FSK信息的解碼、接收通信的匯編程序見網(wǎng)站www.dpj.com.cn。
評論