首頁>>廠商>>尋呼設備廠商>>深圳菱科實業(yè)

8路FSK主叫號碼識別電路的設計

王昌世 2002/11/25

  

關鍵字:主叫識別 BEL202協(xié)議 FSK MT88E39 單片機 巡檢
Key Words: Caller ID Protocol FSK 88E39 MCS Circle Detect

摘要:本文主要講述基于單片機硬件的8路并發(fā)的FSK主叫號碼的識別電路的設計。
該文同時涉及了BEL202 協(xié)議、FSK以及借助雙口RAM的計算機并行數據通信等技術

Abstract: The paper mainly descriped the design of eight channel hardware FSK Caller IDcircuit based on single chip microprocessor 。It simultaneously include BEL202 protocole,FSK and computer the parallel communication by dual port RAM technology,and so on.

1.主叫號碼識別協(xié)議。

  主叫號碼識別(俗稱來電顯示)現已成為電話通信的一項重要功能,在許多的CTI
呼叫中心和交換機中也都是不可缺少的。

  主叫號碼識別(英譯為Caller ID),又稱主叫號碼傳輸(Calling Number Delivery),
是一種按V.23或是BEL202數據流協(xié)議(在這里統(tǒng)稱為Caller ID協(xié)議),把主叫電話號碼等信息在電話的呼叫階段傳給被叫客戶的一種方法。典型的Caller ID協(xié)議規(guī)范由下列三個層次組成。

1.1物理層

  通過物理層異步傳輸的所有數據都是由8位字符構成的。字符的格式如下:

S2 M B7 B6 B5 B4 B3 B2 L S1

  在這里: S1=開始位,S2=停止位,M=最高有效位,L=最低有效位,B=第2到7數據位。

1.2數據鏈路層

  鏈路層把數據幀組合成一個帶有效驗和的數據包,以區(qū)分噪聲。這個數據包的格式如下:

通道占用 標志信號 信息類型 信息長度 信息 校驗和

  (1) 通道占用信號: 這是一個接續(xù)的"0"和"1"(二進制位)交替信號(按字節(jié),就是0x55) ,位數在96~315之間(對應80ms~262ms),以"1"開始,以"0"結束。

  這個信號的作用在于減少與真實的載波信號類似的信號干擾,接收端只有在正確收到這個信號,
后續(xù)的信號才會有效。

  (2)標志信號:這是一連串的停止位(即"1",就是持續(xù)的高電平),至少55位(對應45ms)。

  (3)信息類型:占一個字節(jié),其值取決于應用情況,多見為"04h"。

  (4)信息長度 :占一個字節(jié)。是"信息"的字節(jié)長度。其值為3--255。

  (5)信息內容:是真正的內容所在(如電話號碼等)。此字段完整的內容格式由"示意層(即presentation layer)"給出(1.3節(jié)討論)。其內容長短隨國家地區(qū)的不同而不同,且具體的內容格式大都比完整的內容格式少許多。

  (6)校驗和:是從"信息類型"開始到"信息"結束的所有字節(jié)("校驗和"本身除外)的字節(jié)和,不計溢出,占一字節(jié),然后求補碼。

1.3示意層

其完整的格式為:

參數類型 參數長度 參數字節(jié) …… 參數類型 參數長度 參數字節(jié)

(1) 示意層的參數是可重復的 。

(2) "參數長度"取值為0~255。

(3) "參數字節(jié)"可為0,既可以沒有。若有,其數制(指ASCII碼等)也是可變的。

(4) 在實際應用中,可以只有"參數字節(jié)"而無"參數類型"和"參數長度"。例如,在我國的一些電信應用中。

1.4一個實例

  下面是一個實例,是從深圳電信局接受到的FSK數據( 十六進制數,其中電話號碼和日期是ASCII碼 )。

  1.4.1實例

  分別用手機(13662573614)和電話(3302729)撥打我公司外線電話3302732。

(1)用手機撥打

0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x04,0x13,0x31,0x32,0x32,0x37,0x31,0x35,0x33,
0x31,0x31,0x33,0x36,0x36,0x32,0x35,0x37,x033,x036,x031,x034,x017

(2)用電話撥打

0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,04,0f,0x31,0x32,0x32,0x37,0x31,0x35,0x34,
0x36,0x33,0x33,0x30,0x32,0x37,0x32,0x39,0xe7

  1.4.2數據分析

  (1)在1.4.1中,先導的28個字節(jié)"0x55",計226位(bit)的"0"和"1",即是在上述的"通道占用信號"。其位數在協(xié)議范圍內。

 。2)"標志信號"在此占約144ms(用數字示波器捕獲),即1200 BIT的"1"。接收時被芯片MT88E39屏蔽,無數據輸出。

  (3)"0x04"是信息類型。

 。4)"0x13"是信息長度。

 。5)緊接著信息長度后的8個數據是撥打電話時的月、日、時和分的ASCII碼(16進制),即12月27日15時31分。


 。6)時間后的11個數據是手機號碼的ASCII碼,也即是13662573614。

 。7)最后一個字節(jié)是效驗和。

 。8)對1.4.2的分析同上,僅把11位的手機號改為7位電話號即可。要注意的是作為先導的"0x55"的個數比1.4.1中多一個。

 。9)很顯然,在此數據格式中省略前述的"示意層"中的"參數類型"和"參數長度",僅有"參數字節(jié)"。

2 FSK

  FSK即"頻移鍵控",它的英譯為"Frequency Shift Keying"。它是在電話線上進行二進制數據(當然,也包括"Caller ID"數據信號在內)調制傳輸的兩種常用的方法之一,是一種用不同的載
波頻率表示二進制數據的"0"和"1"的調制方法。DTMF(即雙音多頻)是另一種方法。


  這個過程可用微處理器(如TI 公司的MSP430)及其程序來實現,也可由專門的芯片來完成(本文既是),而后者對設計者來說則顯得很簡單。

  美國MITEL 公司的MT88E39就是這樣的芯片(當然,還有其它產品,如,臺灣Holtek 公司的HT9032C/D(C為16腳DIP或SOP 封裝,D為8腳DIP或SOP封裝)等,但原理大同小異)。

  2.2.1 MT88E39介紹

  MT88E39為16Pin SOIC封裝。5個輸入腳,8個輸出,1對電源腳,1個內部連接腳,具體如下:

  (1) 第1、2腳,運放的模擬輸入端IN+和IN-。可差分也可作單端輸入。它通常接中繼模塊的輸出端,FSK調制信號即由此輸入。

 。2) 第6、7腳,所需晶振的連接端OSC1和OSC2。當直連外部時鐘時,OSC1作輸入,OSC2則懸空。OSC2也是時鐘輸出端。

  (3) 第13腳,低功耗運行控制輸入端。高電平有效。此時,運放、振蕩器及內部電路不工作。

 。4) 第14腳(MODE),工作模式選擇輸入端()。有模式0和 模式1兩種。兩鐘模式的不同僅在數據輸出與微處理器的接口方式上。模式0使用較多。

 。5) 第10腳(DATA),串行數據輸出端。在無FSK信號輸入時,其為高電平。在有信號時,每字節(jié)按低位在前,高為在后送出。

 。6) 第9腳(DCLK),在不同工作方式,有不同功能。在模式0,它是串行數據輸出位同步時鐘,在無FSK信號輸入時,其為高電平,而在有信號時,其上升沿指示數據位以穩(wěn)定,可以被讀取。在模式1,它作輸入端,需與微處理器的讀信號相連。

  (7) 第11腳(/DR),一個數據字準備好標志信號,也即是輸出字同步時鐘。

  (8) 第12腳(/CD),在指定的時間內,載波被檢測標志。

 。9) 第15腳(IC),內部連接端。行數據輸出端。

 。10) 第3腳(GS),運放增益調整端。

 。11) 第4腳(Vref),參考電壓輸出端(2.5V)。

 。12) 第5腳(CAP),外接0.1μF電容器接入端(另一端接地)。

  (13) 第8、16腳(Vss、Vdd),一對電源腳。詳細資料請見參考文獻[4]。

3.電路設計

  如圖1所示。這是一個在呼叫中心上使用的收號電路,八路可同時進行。


圖1. 8路FSK主叫號碼接收電路(點擊放大)


3.1硬件電路

  由三部分組成:FSK解碼,由單片機完成的FSK數據的串-并轉換及八路巡環(huán),由雙口FIFO RAM(IDT7202)完成與上位機的通信接口(ISA 總線的工控機)。

  3.1.1FSK解碼

  這是一個依據MITEL公司在文獻[1]中所提供的典型應用電路來設計的。C1(104)用來提供FSK正弦調制信號通道。R1、R2用于放大器的增益調整。該增益調整對整個的電路的正常工作至關重要。增益過大容易引起誤接收,增益偏小,則接收不到應有的信號。增益調整主要是針對不同的內外線摸塊而引起的不同的模擬信號輸出的情況。

  晶振為3.58M。此時,串行數據信號"DATA"的波特率為1200。

  禁用低共耗模式(PWND=0)。

  選擇工作方式0。在此方式下,位同步信號"DCLK"的波特率為2400。其上升沿出現在DATA信號位的中間。

  3.1.2單片機電路

  所有四個口(P1-P3)均工作在I/O方式。P1口作DATA信號接收用,每線對應一路FSK信號,總共八路。

  P2口作DCLK信號檢測用,也有八路。

  P0口作并行數據輸出用,與數據緩沖雙口FIFO相接。

  僅部分使用了P3口。

  3.1.3 FIFO電路

  此部分電路功能有二,即多路號碼數據緩沖和上下位機接口。此FIFO的容量為1024*9bit(其中一位是奇偶效驗為,這里未用),其有分別的讀寫數據線(即所謂雙口),可雙口同時讀寫。無地址線,通過內部的讀寫指針來控制順序讀寫,配有硬件讀寫溢出保護。

  3.3.4電路調試

 。1)FSK主叫號碼識別技術的關鍵在于對當地的電信部門所發(fā)FSK信號協(xié)議的了解,這項工作是你在硬件平臺搭建好后要做的第一件事,此事做好后,我想整個的設計工作即完成60%。我們是用美國泰克(Traxi)的數字示波器來做這項工作的。具體做法是:

 、偈静ㄆ魍ǖ1接于電路中任意一路的"DCLK"端,并作為信號源。示波器通道2接于相應的"DATA"端。
  ②掃描時間取50ms或100ms,幅值取2V/格。選擇"單次捕捉"和上升沿觸發(fā)方式。
 、劢o相應的線路打入一個外線電話。如果電路正常,示波器上會顯示出二路同步波形,通道1為同步源。
  ④將波形展開加以分析。特別注意:每字節(jié)按低位在前,高為在后送出。

  (2)應特別注意增益電阻R2的調整。由于中繼(或曰外線)模塊的不同,其輸出的FSK模擬信號的幅值有很大差異,R2的大小必須適應這種變化。因為對MT88E39過大或過小的模擬信號輸入都會使其輸出的FSK數據出錯。

4. 單片機程序設計

4.1程序算法

 。1)依據FSK傳輸協(xié)議,接收數據。

  (2)在定時器T0的中斷服務程序中,定時用查詢方式檢測由MT88E39輸出的FSK信號。當判斷到"DCLK"有上升沿產生后立刻地采集"DATA"數據位信號。T0的定時時間需與MT88E39的DATA和DCLK的時序相匹配,必須保證在八路電話同時接通的情況下,在DATA的數據位的半周期(約為417us)內,能依次檢測到8路DCLK信號的變化(即上升沿),而不遺漏。以180us定時中斷為宜。選擇單片機89C51的主頻為24MHz。

 。3)在連續(xù)收到至少20個55h數據(即通道占用信號)后,程序才往下執(zhí)行,否則表明此次FSK數據出錯,應退出本次收號。

  (4)"04h"是FSK的標志字,在此字后的一個字節(jié)是數據長度。

  (5)在主程序中,在處理完某一路的一幀FSK數據后,才將其寫入FIFO把字節(jié)數據(主叫的日期和號碼)寫入FIFO。

 。6)每次所寫數據前要加入同步碼(如"AA"),每個數據中還應加入線(或路)號(對于兩路以上),用于
標識一個完整的話路數據。

  (7)循環(huán)執(zhí)行。

  (8)在程序中建立以下的變量:

 、 FLAG*(*代表0~7的數字,對應0~7個FSK接收通道,下同)是位標志。記錄上一次被采到的"DCLK"的狀態(tài)。FLAG*=0,表示DCLK的"邏輯0";FLAG*=1,表示DCLK的"邏輯1";
 、谖粯酥維TATE*記錄是否受到"0x04"標志字,受到,則STATE*=1,否則,TSATE*=0。
 、跜OUNT*記錄收取某個字節(jié)時已收到的比特數。
 、蹵ACOUNT*記錄收到的"0x55"的個數。
 、軨COUNT*保存收到的信息長度值。
 、轇COUNT*作為程序中通用的計數器。
 、38h(還有39h~3fh)單元用于存放當前接收的字節(jié)。


圖2a. 主程序流程圖(點擊放大)


圖2b. 中斷服務程序流程圖(點擊放大)


4.2程序流程

見圖2。

5.注釋

 。1)BELLCORE 即美國貝爾電信研究所。"BEL202"是該所制定的有關"CALLER ID"方面的協(xié)議文件。有關"BEL202"更詳細的信息,請參考"BELLCORE Technical Manual"。

  (2)V.23是CCITT(國際電話與電報顧問委員會)于1988年制定的一個建議,是有關"公用交換電話網中使用的標準化600/1200波特調制解調器"的,詳見文獻[5]。

6.結束語

  此設計已在我公司生產的"CTI2000呼叫中心"設備中使用多年,效果良好。

主要參考文獻

[1]《Applicaion Report SPRA462--Inplementing Caller ID on Fixed-point DSPS》((USA)Texas
Instruments Company/網址http://www.ti.com/)
[2]《Caller ID on TMS320C2xx》((USA)Texas Instruments Company)
[3]《FSK Modulation and Demodulation With the Msp430 Microcontroller》((USA)Texas
Instruments Company)
[4]《CMOS MT88E39 Calling Number Identifcation Circuit Advance information (CNIC1.1)》((USA)Mitel

深圳菱科實業(yè)公司供稿 CTI論壇編輯


分類信息: