摘要:介紹FSK信息解碼的基本原理和數(shù)據(jù)傳輸格式,利用FSK解碼芯片(SM8220P)與單片機(jī)的接口,實(shí)現(xiàn)電話FSK信息的數(shù)據(jù)傳輸;給出采用電話FSK信息進(jìn)行數(shù)據(jù)通信 的相關(guān)電路圖、程序流程圖和FSK信息接收的匯編源代碼。
關(guān)鍵詞:單片機(jī) 電話主叫信息識(shí)別 FSK 數(shù)據(jù)通信
電話主叫識(shí)別信息發(fā)送及接收(俗稱來電顯示),簡稱CID(Calling Identify Delivery),是電信局向被叫電話用戶提供的一種服務(wù)項(xiàng)目,是指在被叫用戶終端設(shè)備上顯示主叫電話號(hào)碼、主叫用戶姓名、呼叫日期和時(shí)間等主叫識(shí)別信息并進(jìn)行存儲(chǔ),以供用戶查閱的服務(wù)項(xiàng)目。被叫用戶根據(jù)顯示的主叫識(shí)別信息而決定是否接聽電話,可以避開一些不愿接聽或不友好的電話。利用這個(gè)功能可以進(jìn)行FSK信息解碼的電話網(wǎng)數(shù)據(jù)通信,應(yīng)用于實(shí)際生活中。
1 電話主叫識(shí)別原理和傳送協(xié)議
實(shí)現(xiàn)電話主叫信息識(shí)別業(yè)務(wù)的基本方法是,發(fā)端程序交換機(jī)將主叫電話號(hào)碼等信息通過局間指令系統(tǒng)傳磅給終端交換機(jī),終端交換機(jī)再將主叫識(shí)別信息以移頻鍵控FSK(Frequency-Shift Keying)或雙音多頻DTMF(DualToneMulti-Frequency)方式,在第一次振鈴或第二次振鈴間隔期前傳送給被叫用戶終端設(shè)備。我國的通信行業(yè)標(biāo)準(zhǔn)明確規(guī)定,統(tǒng)一采用FSK方式提供主叫電話來顯示服務(wù)。在一次呼叫中,若被叫用戶申請了CID業(yè)務(wù),則電信局的終端交換機(jī)就會(huì)向該被叫用戶傳送主叫識(shí)別信息數(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信號(hào)傳送各段時(shí)間值
[table]
符 號(hào)
時(shí) 間 值
說 明
tA
1s
第一次鈴流信號(hào)
tB
0.5s 第一次振鈴結(jié)束與數(shù)據(jù)傳送開始之間的時(shí)間間隔 tC ≤2.9s 傳送數(shù)據(jù)的時(shí)間,包括信道占用信號(hào)和標(biāo)志信號(hào) tD ≥200ms 數(shù)據(jù)傳送結(jié)束與第二次振鈴開始的時(shí)間間隔 tE 1s 第二次鈴流信號(hào) tB+C+D ≤3.6s 各時(shí)段可根據(jù)具體情況確定 [/table] 2 主叫識(shí)別信息數(shù)據(jù)格式 FSK主叫識(shí)別信息數(shù)據(jù)的傳輸格式有兩種:單數(shù)據(jù)消息格式SDMF(Single Data Message Format)和復(fù)合數(shù)據(jù)消息格式MDMF(Multiple Data Message Format)。前者的結(jié)構(gòu)簡單,可容納的信息內(nèi)容較少,如主叫號(hào)碼、日期和時(shí)間;后者的結(jié)構(gòu)比較復(fù)雜,可容納的信息長度較長,除單數(shù)據(jù)格式內(nèi)容以外還可以主叫用戶的姓名等。本文主要介紹FSK主叫信息數(shù)據(jù)格式的接收。 單數(shù)據(jù)消息格式由消息頭和消息體組合,消息頭由消息類型和消息長度組成,它們均為8位字。消息類型的值來識(shí)別消息的特征;消息長度指明后面所跟消息字的長度。消息體包括交換機(jī)需傳給終端用戶的消息。消息體可容納1~255個(gè)8位的消息字。每個(gè)字用8位帶校驗(yàn)位的7位ASCII編碼字符集表示。 一個(gè)完事的消息幀由信道占用信號(hào)、標(biāo)志信號(hào)、數(shù)據(jù)信息和校驗(yàn)字組成。信道占用信號(hào)和標(biāo)志信號(hào)用來提示電話終端準(zhǔn)備接收數(shù)據(jù);校驗(yàn)字用來作差錯(cuò)檢查,如圖2所示。 、傩诺勒加眯盘(hào)。這是發(fā)送主叫信息時(shí)要首先發(fā)出的頭標(biāo)志,由一組300個(gè)連續(xù)的“0”和“1”交替地組成。其第一個(gè)位為“0”,最后一個(gè)位為“1”。在通話狀態(tài)下,此信號(hào)不發(fā)送。 ②標(biāo)志信號(hào)。在掛機(jī)狀態(tài)下,程控交換機(jī)向用戶發(fā)送主叫信息時(shí)要先發(fā)送的第二個(gè)標(biāo)志信號(hào),由180個(gè)標(biāo)志位(邏輯“1”)組成。在通話狀態(tài)下,此信號(hào)不發(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í),信道占用信號(hào)首先發(fā)送,后接標(biāo)志信號(hà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í)、分、主叫號(hào)碼(或“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引腳功能 [table] 符 號(hào) 引 腳 功 能 TIP-RING 1,2 電話信號(hào)輸入端。信號(hào)輸入必須隔直流 AGND 3 模擬地,要通過一個(gè)電容接地 RDIN 4 振鈴檢測輸入。要把振鈴信號(hào)經(jīng)衰減后連接到此引腳 RDRC 5 振鈴檢測RC延時(shí)電路,低電平有效 RDET 6 振鈴檢測輸出,內(nèi)部接施密特觸發(fā)電路。當(dāng)為低電平時(shí),表明檢測到振鈴信號(hào)輸入;不用時(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 振蕩放大器輸入,外部振蕩放入器信號(hào)經(jīng)此引腳輸入 OSCOUT 10 振蕩放大器輸出,使用外部振蕩信號(hào)時(shí)必須開路 CDET 11 載波檢測輸出端,低電平有效。為低電平時(shí),表明此時(shí)有FSK載波信號(hào)輸入 NC 12 空腳 DOUT 13 數(shù)據(jù)輸出,平時(shí)為高電平。當(dāng)CDET=0時(shí),表明此時(shí)電話經(jīng)上有一個(gè)有效的FSK信號(hào)輸入,經(jīng)解調(diào)后由該腳輸出 DMIN 14 解調(diào)器輸入端 FOUT 15 FSK帶通濾波器輸出端,通過一個(gè)電容耦合連接到DMIN VDD 16 電源正極(3~5.5V) [/table] SM8220P遵循Bell 202和ITU-T V.23協(xié)議標(biāo)準(zhǔn),以連續(xù)二進(jìn)制脈沖頻移鍵控信號(hào)的方式傳輸,傳輸速率為1200bps。支持FSK號(hào)碼顯示和姓名顯示等多種功能;芯片內(nèi)部包含電源掉電檢測電路、振鈴檢測電路和載波檢測電路;信號(hào)輸入檢測靈敏度高,電源工作電壓較寬(3~5.5V),是進(jìn)行電話FSK信息解碼通信的較好的集成芯片。 為實(shí)現(xiàn)電話FSK信息的接收,采用P87LPC764單片機(jī)控制SM8220P電路,以完成電話FSK信息解碼通信的工作。電話FK信息通信具體電路如圖3所示。 從圖3中可知,對于從電話線上傳輸來的FSK信號(hào),信號(hào)傳送在第一次振鈴和第二次振鈴之間。振鈴信號(hào)經(jīng)過整流、分壓,加到TIL113光電耦合器件的發(fā)射管上,使發(fā)射管有電流通過而發(fā)光,照射到光敏三極管的基極,臻使光敏三極管飽和導(dǎo)通。在R6上得到大于1V的脈沖信號(hào),輸入到單片機(jī)外部中斷0,喚醒單片機(jī)準(zhǔn)備接收。0.5s后FSK信號(hào)經(jīng)過C3、C4、R1、C2的隔直和衰減,輸入到FSK接收器SM8220P的差分輸入端TIP和RING腳,將FSK信號(hào)讀取解調(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í)別過程,由接收和數(shù)據(jù)整合兩部分組成。由于FSK信號(hào)波特率為1200bps,每發(fā)1位的時(shí)間是833us,因此,可以設(shè)定定時(shí)器每833us接收1位,每10位提取出1個(gè)數(shù)字。如此反復(fù)循環(huán),直到接收完全FSK信息。當(dāng)有電話來時(shí),在第一聲振鈴后,單片機(jī)開始準(zhǔn)備檢測接收信號(hào),SM8220P開始接收300個(gè)由0、1組成的頻率為1200Hz的信道占用信號(hào)和180個(gè)“1”標(biāo)志信號(hào),緊接著接收主叫號(hào)碼和時(shí)間。每收到1個(gè)數(shù)字,SM8220P都把它變換成10位(1PXXXXXXXX0)的串行序列,由13腳輸出傳送給P87LPC764單片機(jī),P87LPC764經(jīng)過精確的定時(shí)編程將其檢測整合出相應(yīng)的FSK號(hào)碼、時(shí)間等數(shù)據(jù),完成FSK信息解碼、接收通信、接收到的電話號(hào)碼可以保存在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)抄表等功能。 作者:東華理工大學(xué) 朱兆優(yōu) 周航慈 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用