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