《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 一種具有來電顯示及DTMF信號收發(fā)功能的智能控制模塊設(shè)計

一種具有來電顯示及DTMF信號收發(fā)功能的智能控制模塊設(shè)計

2008-11-25
作者:金 鷹, 劉 虎

  摘 要: 探討了FSK來電顯示技術(shù)及DTMF編解碼" title="編解碼">編解碼技術(shù),給出了具有來電顯示和DTMF信號收發(fā)功能的智能控制模塊" title="控制模塊">控制模塊的硬件結(jié)構(gòu)和軟件流程。采用AT89C52單片機(jī)控制HT9032C、MT8880等芯片,設(shè)計實現(xiàn)了基于電話網(wǎng)的DTMF信號的收發(fā)以及來電信息的采集智能控制模塊,并通過RS232接口與上位機(jī)" title="上位機(jī)">上位機(jī)通信,提出了軟硬件抗干擾的具體措施。
  關(guān)鍵詞: 來電顯示; 頻移鍵控; HT9032C; MT8880

?

  隨著電信事業(yè)的迅速發(fā)展以用電話的普及程度的提高,電話的用途不只局限于人與人之間的語音通信上,許多借助于電話和計算機(jī)網(wǎng)絡(luò)所進(jìn)行的功能擴(kuò)展已對社會生活產(chǎn)生越來越重要的影響。
  來電顯示業(yè)務(wù),其專業(yè)名稱為主叫識別信息傳送及顯示業(yè)務(wù),簡稱CID(Calling Identity Delivery)。其原理是交換機(jī)在給用戶提供正常電話業(yè)務(wù)的同時,按照一定的時序向用戶終端提供主叫號碼、日期、時間等信息,在用戶終端接收并顯示。在監(jiān)控領(lǐng)域,可以利用電話網(wǎng)的現(xiàn)有通信資源組建基于電話網(wǎng)絡(luò)智能控制系統(tǒng),利用DTMF信號傳輸控制數(shù)據(jù),遠(yuǎn)程控制監(jiān)控對象,實現(xiàn)應(yīng)用于電話網(wǎng)絡(luò)的、基于來電顯示技術(shù)的智能控制。
1 主要技術(shù)簡介
1.1 來電顯示技術(shù)
  來電顯示數(shù)據(jù)傳送有兩種制式:頻移鍵控(FSK)和雙音多頻(DTMF)。由于DTMF制式自身存在的缺點,它將逐步被FSK制式所取代。
  在FSK制式中,來電信號的發(fā)送時序是在第一次振鈴與第二次振鈴之間,根據(jù)信號格式的不同數(shù)據(jù)消息格式可以分為:單數(shù)據(jù)消息格式(Single Date Message Format)和復(fù)合數(shù)據(jù)消息格式(Multiple Date Message Format)。前者的結(jié)構(gòu)簡單,但可容納的信息內(nèi)容較少;后者的結(jié)構(gòu)比較復(fù)雜,可容納的信息內(nèi)容較多。
  各地數(shù)據(jù)消息格式可能不一樣。經(jīng)實測,筆者所在地使用復(fù)合數(shù)據(jù)消息格式,因此本模塊使用復(fù)合數(shù)據(jù)消息格式。
復(fù)合數(shù)據(jù)消息格式如圖1所示,它由同步信號" title="同步信號">同步信號、標(biāo)志信號、消息類型(80H)、消息長度、若干參數(shù)消息(由參數(shù)類型、參數(shù)長度、參數(shù)字構(gòu)成)及校驗字等組成。其中,參數(shù)類型有五種:01H、02H、04H、07H、08H。0lH表示來電日期和時間,02H表示主叫電話號碼,04H表示主叫者的電話號碼或姓名(來自長途線路),07H表示主叫姓名,08H表示話碼被有意隱藏而不能顯示。

?


  數(shù)據(jù)包格式舉例:
  55H,55H,55H……??????? ;150對0、1相間的同步信號
  80H,17H,01H,08H,30H,36H,30H,32H,31H,32H,32H,
  35H,02H,0BH,31H,33H,39H,35H,32H,33H,34H,36H,37H,
  31H,39H       ????;復(fù)合數(shù)據(jù)消息格式
  BCC校驗字??????????????? ;復(fù)合數(shù)據(jù)消息的所有字符按
??? 256的模求和取補
  上例消息格式中:80H表示復(fù)合數(shù)據(jù)消息格式;17H表示數(shù)據(jù)長度(從其后到校驗字之前)為23字節(jié),這個值是可變的,它隨著各地的電話號碼長度的不同而變化;01H表示第一消息類型,即時間類型;08H表示第一消息類型數(shù)據(jù)長度,月、日、時、分共8字節(jié),且長度固定(本例為06月02日12時25分),采用ASCII碼表示;02H表示第二消息類型,即電話消息類型;0BH表示電話號碼長度,為11位,由于各地區(qū)的電話號碼長度不一致,其長度是可變的(本例為13952346719)。
1.2 DTMF技術(shù)
  DTMF是用兩個特定的單音頻組合信號來代表數(shù)字信號以實現(xiàn)其功能的一種編碼技術(shù),它具有很強(qiáng)的抗干擾能力和較高的傳輸速度,可廣泛用于電話通信系統(tǒng)中。雙音頻解碼電路是系統(tǒng)中的核心部分,它的工作狀況直接決定了系統(tǒng)的可靠性。本設(shè)計中使用雙音頻解碼集成芯片MT8880來完成DTMF信號的收發(fā)。
  MT8880是MITEL公司生產(chǎn)的DTMF信號發(fā)送/接收芯片,該芯片功耗低、集成度高、可進(jìn)行編程控制、可與多種單片機(jī)接口完成DTMF信號發(fā)送、接收、檢測等功能。
2?硬件電路設(shè)計
  本智能控制模塊由MCU AT89C52、FSK解碼芯片HT9032C、DTMF編解碼芯片MT8880、RS232電平轉(zhuǎn)換芯片MAX232、串行EEPROM芯片AT24C02、看門狗芯片IMP813、模擬摘機(jī)電路、電源電路等組成。系統(tǒng)原理框圖如圖2所示。

?


  系統(tǒng)工作原理:在沒有振鈴的情況下,HT9032C的RDET端輸出高電平,當(dāng)有振鈴時,RDET輸出低電平直到振鈴結(jié)束,RDET信號與單片機(jī)的P1.2相連。當(dāng)有振鈴信號時,單片機(jī)在第一次振鈴結(jié)束后,設(shè)置HT9032C的PDWN信號端為低電平,使HT9032C脫離省電模式,并接收FSK信號,在MCU接收數(shù)據(jù)經(jīng)校驗后,將接收到的主叫來電號碼通過光耦經(jīng)MAX232電平轉(zhuǎn)換后送上位機(jī)(PC機(jī)),若接收有錯,則向上位機(jī)發(fā)送錯誤數(shù)據(jù)。
  PC機(jī)驗證來電號碼有效后,則向下位機(jī)(AT89C52)發(fā)送控制命令,下位機(jī)設(shè)置DTMF編解碼芯片MT8880內(nèi)的控制寄存器,使其根據(jù)需要工作于DTMF編碼或解碼狀態(tài)。控制和接收數(shù)據(jù)由PC機(jī)處理??撮T狗電路防止程序跑飛或死機(jī),AT24C02存儲所需電話號碼。系統(tǒng)中,MAX232和光耦采用隔離變壓器單獨供電。
3 軟件流程
  主程序中主要完成各芯片初始化、波特率設(shè)置、來電號碼接收、DTMF信號接收和發(fā)送、串行EEPROM讀寫等工作;接收來電號碼子程序中,主要完成振鈴檢測、750ms延時、檢測同步信號、接收來電號碼數(shù)據(jù)、向上位機(jī)發(fā)送數(shù)據(jù)。由于來電顯示接收涉及比較精準(zhǔn)的時序,因此在編程時應(yīng)特別注意時序問題。本設(shè)計中,MCU串口" title="串口">串口設(shè)置了兩種波特率,一種為1 200b/s,用于與HT9032C通信,接收來電顯示數(shù)據(jù);另一種為9 600b/s,用于與上位機(jī)的通信。主程序流程圖和接收來電號碼子程序流程圖分別如圖3、圖4所示。

?


4 模塊抗干擾措施及系統(tǒng)調(diào)試
  本模塊在電話網(wǎng)與PC機(jī)之間起橋梁作用,因此軟件編程對時序要求比較嚴(yán)格,解決模塊的抗干擾能力是本模塊的重點和難點問題,若不能很好地解決模塊的抗干擾能力,將直接導(dǎo)致無法進(jìn)行FSK解碼或解碼經(jīng)常出錯,或無法正確收發(fā)DTMF信號。系統(tǒng)的干擾源主要有以下幾種:電話線傳輸距離遠(yuǎn),容易受外界電磁干擾;電話線相對“大地”電阻很小,模塊和PC機(jī)相連受PC機(jī)“接地”影響;電話線上并機(jī)使用比較常見,模塊接收數(shù)據(jù)受并線話機(jī)影響。
  為了提高模塊的抗干擾能力,主要從軟硬件兩方面去解決干擾源引起的解碼失效問題。對于電磁干擾,主要從軟件編程上加以解決:檢測振鈴信號時,采用延時并多次采樣的方法解決干擾問題。如圖1所示的70ms高電平標(biāo)志信號最容易受電磁干擾,該信號檢測失效,將引起串口接收啟動,導(dǎo)致解碼失效。為了解決這類問題,采用了檢測同步信號和嚴(yán)格定時的方法,也就是在檢測同步信號(30字節(jié)的01010101串)結(jié)束后,精確延時65ms后再開串口中斷,這大大提高了模塊的抗干擾能力。
  PC機(jī)“接地”干擾的原因是:計算機(jī)系統(tǒng)“地”與“大地”直接相連,而電話線相對“大地”內(nèi)阻很小,當(dāng)電話線上出現(xiàn)FSK或振鈴等交流信號時,信號被電容交流短路,這將導(dǎo)致不能正確解碼或解碼出錯。解決這一問題的辦法是:采用隔離電源對主控電路、RS232接口電路分別供電,效果很好。
  本模塊中,由于仿真器與PC機(jī)相聯(lián),PC機(jī)接“大地”,串口由隔離電源供電,因此系統(tǒng)調(diào)試時不會造成干擾的影響。否則,不能調(diào)試,這一點很重要。
  筆者在進(jìn)行模塊調(diào)試時發(fā)現(xiàn),當(dāng)并線的電話沒有人使用時,F(xiàn)SK解碼非常穩(wěn)定,但當(dāng)并線電話頻繁使用特別是第一次振鈴結(jié)束時,并線電話一摘機(jī),則經(jīng)常出現(xiàn)解碼失效。因此,筆者建議,本模塊應(yīng)專線專用,或要求在兩次振鈴期間不要摘機(jī)。
  接收DTMF信號之前,必須對MT8880進(jìn)行初始化,否則其工作不正常;然后將MT8880設(shè)置為BUST發(fā)送模式,利用MCU模擬MT8880芯片的時序,發(fā)送數(shù)據(jù),產(chǎn)生所需的DTMF信號,通過接口電路將DTMF信號發(fā)送到電話線上。接收DTMF信號時,將MT8880設(shè)置為接收模式,利用MCU模擬MT8880芯片的時序,接收DTMF信號。
  電話號碼存儲要用到EEPROM芯片AT24C02,該芯片使用串行I2C總線方式,但AT89C52芯片沒有I2C總線接口。為了存儲電話號碼,要用AT89C52 P1.0、P1.1管腳模擬I2C總線接口時序,以便能對該芯片正確讀、寫。但要注意,在連續(xù)多字節(jié)讀取時,一次最多只能讀8個字節(jié),多于8個字節(jié)時,要分兩次讀取。
  本模塊基于電信網(wǎng)絡(luò)技術(shù)規(guī)范,利用MCU控制FSK解碼芯片及DTMF芯片,實現(xiàn)主叫電話號碼識別、DTMF數(shù)據(jù)收發(fā),接收的來電號碼及收發(fā)的DTMF數(shù)據(jù)可通過RS232口送往上位PC機(jī),實現(xiàn)各種控制功能。本文提出的智能控制模塊,其串口采用隔離變壓器單獨供電,硬軟件上采用多種抗干擾措施,性能穩(wěn)定,可靠性高,最大的特點是具有RS232接口,能方便地實現(xiàn)上下位機(jī)的通信,實現(xiàn)基于來電顯示及DTMF技術(shù)的各種控制功能。

參考文獻(xiàn)?
[1]?徐玉峰,王珺艷,柴新禹.基于P89C668多功能智能報警控制系統(tǒng)的研制[J]. 電子技術(shù)應(yīng)用,2005,31(11).
[2]?王萍,林善明,劉玉宏.單片機(jī)控制MODEM實現(xiàn)電話遠(yuǎn)程報警[J].微計算機(jī)信息,2002,18(8).
[3]?楊穗,楊恢先.智能來電顯示器的設(shè)計[J].電子器件,2005,28(2).
[4]?趙太飛,趙珂.短消息電話中數(shù)據(jù)鏈路層的控制技術(shù).電子技術(shù)應(yīng)用,2003,29(1).

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。