<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 電信終端FSK數(shù)據(jù)通信的低功耗實現(xiàn)

          電信終端FSK數(shù)據(jù)通信的低功耗實現(xiàn)

          作者: 時間:2006-09-22 來源:網(wǎng)絡(luò) 收藏

          摘 要數(shù)據(jù)是網(wǎng)絡(luò)中進行信息交互的主要方式,用來傳輸來電顯示及話費、短信息等多種格式的數(shù)據(jù)。對數(shù)據(jù)的準確接收廈其低設(shè)計是對的基本要求。本設(shè)計以MC68HC908AP64單片機度HT9032D解調(diào)芯片為硬件構(gòu)架,以中斷查詢方式工作,且在三種模式中切換。該方案能夠線路取電工作并準確接受FSK。文中結(jié)合主叫識別信息接收介紹這種方案。
          關(guān)鍵詞: 電信 主叫識別信息 FSK

          當(dāng)前FSK的芯片種類繁多,發(fā)展迅速,在眾多方案選擇中,要考慮到開發(fā)成本,運行穩(wěn)定性,是否能夠線路取電等問題,而這些要求也會隨著技術(shù)發(fā)展而不斷提高。HC908AP64單片機是摩托羅拉公司推出的一款新型8位低功耗單片機,和低功耗的HT9032D配合,可構(gòu)建FSK的新方案。該方案可以用來接收包括主叫識別信息等在內(nèi)的多種平臺信息。下面首先介紹主叫識別信息。

          1主叫識別信息

          主叫識別信息傳送CID(Calling Identity Delivery)是向被叫用戶電話提供的一種服務(wù)業(yè)務(wù)。其方法是發(fā)端交換機將主叫號碼等信息傳送給終端交換機,終端交換機再將信息傳送給被叫用戶終端,如圖1所示。

          主叫號碼信息的信號采用的是連續(xù)二進制頻移鍵控(BFSK)方式,數(shù)據(jù)傳輸方式為二進制異步串行方式,邏輯1的頻率為1200Hz,邏輯o的頻率為2200 Hz,傳輸速率為1200bps。主叫號碼信息可以在被叫掛機(On_Hook)或摘機通信狀態(tài)下傳送。掛機狀態(tài)下傳送方法是,終端交換機將主叫信息在第1次振鈴和第2次振鈴期間傳給被叫用戶。對此已有相應(yīng)的協(xié)議標準,例如:BeIl 202、CCITT V.23 1200波特率FSK數(shù)據(jù)傳輸標準。信息傳送的數(shù)據(jù)格式有2種:單數(shù)據(jù)消息格式(Single Data MessageFormat)和復(fù)合數(shù)據(jù)消息格式(Multiple Data MessageFormat)。消息幀格式如下:

          ①信道占用信號由1組300個連續(xù)的“0”和“1”交替的位組成,其第1個比特為“0”,最后一個比特為“l(fā)”。②標志信號由180個(掛機傳送)或80個(摘機傳送)邏輯“1”組成。③標志位由0~10個邏輯“1”組成。④對于消息類型、消息長度、消息字、校驗字這些數(shù)據(jù)字,每個數(shù)據(jù)字之前加1位“0”作為起始位,數(shù)據(jù)字之后加1位“1”作為結(jié)束位(即每個字占10個比特)。數(shù)據(jù)傳送時信道占用信號首先發(fā)送,每個數(shù)據(jù)字中低位在前發(fā)送。

          兩種主要的數(shù)據(jù)格式消息層的數(shù)據(jù)信號組成如圖2和圖3所示。

          與單數(shù)據(jù)格式(圖2)一樣,復(fù)合數(shù)據(jù)消息格式(圖3)由消息頭和消息體組成。不同的是,復(fù)合數(shù)據(jù)的消息體由一個或多個小的消息(稱為參數(shù)消息)組成,參數(shù)消息同樣具有參數(shù)頭和參數(shù)體。參數(shù)頭包括參數(shù)類型和參數(shù)長度。它們均為比特字,參數(shù)類型值用來識別后續(xù)參數(shù)字,參數(shù)長度指明參數(shù)體中參數(shù)字的數(shù)目。消息類型0x04對應(yīng)著單數(shù)據(jù)格式,0x80對應(yīng)著復(fù)合數(shù)據(jù)消息格式。取得格式后將接收到消息數(shù)據(jù)根據(jù)相應(yīng)格式,進行處理[1]。

          來電顯示在第1聲振鈴和第2聲振鈴之間發(fā)送,所以一般檢測到振鈴時開始接收來電顯示信息。

          2 FSK信息接收硬件方案和構(gòu)建
          實現(xiàn)FSK信號解調(diào)的芯片有MC145447、MT8841/8843、HT9030/9031、HT9032C/D等多種。在選取芯片時,從以下幾點考慮:

          ①是否可以實現(xiàn)低功耗。電信終端要求線路供電是一種趨勢,所以最好MCU及解調(diào)芯片是低功耗芯片且功耗可調(diào)。

          ②對芯片的控制盡量簡單,能夠節(jié)約MCU的口線資源。由于MCU的外圍電路很多有鍵盤掃描電路、顯示控制電路、EEPROM的控制電路、時鐘控制電路,都需要MCU來控制,所以MCU的口線資源對整個硬件的實現(xiàn)都比較寶貴。雖然口線復(fù)用能夠在一定程度上解決這種資源緊張,但單口線復(fù)用對整個電路的控制帶來不確定性。對解調(diào)芯片的控制有串口方式和并口方式。采用串口方式更能節(jié)約口線資源。

          ③在電路中有的資源(比如振鈴檢測電路),要盡量復(fù)用,不要采用芯片及電路檢測振鈴多重控制,避免軟件設(shè)計的復(fù)雜性。

          基于以上分析,選擇HT9032D做解調(diào)芯片。它能實現(xiàn)Bell202 FSK和v.23解調(diào),芯片內(nèi)部包含電源掉電檢測電路、振鈴檢測電路和載波檢測電路。信號輸入檢測靈敏度高,電源工作電壓較寬(3~5.5 V),是進行電話FSK信息解碼通信的較好的集成芯片。通過對其的PDWN硬件置“1”,就可工作在低功耗模式(I1 μA);PDWN硬件置“0”,就工作在正常模式(I5 mA)。接收“1”的頻率范圍為(120012)Hz,接收“0”的頻率范圍為(220022)Hz,和MCU問的通信方式為1200 bps異步串口方式,解調(diào)器的引腳如表1所列。


          MCU采用MC68HC908AP64。這種芯片的工作電壓范圍為4.5~5.5 V和2.7~3.3兩種,2 KB的RAM,60 KB的Flash存儲器。有48針及42針的LQFP,42針SDIP等三種封裝。該芯片本身功耗很低,而且能夠運行STOP、WAIT命令,使其能夠工作在低功耗監(jiān)控模式。當(dāng)外部中斷或者時鐘中斷產(chǎn)生時能夠喚醒它。STOP模式和WAIT模式的區(qū)別在于,STOP模式中斷產(chǎn)生后能夠自己馬上進入全速模式工作,而WAIT模式必須要在中斷中用指令控制該MCU進入全速模式工作。這樣只有在需要的時候喚醒系統(tǒng)工作。這種模式切換很好地保證了本方案的功耗最低。對該芯片的編程控制,完全在C環(huán)境下進行,極大地減少了程序開發(fā)時間。硬件結(jié)構(gòu)如圖4所示。


          對于從電話線上傳輸來的FSK信號,信號傳送在第1次振鈴和第2次振鈴之間。不振鈴時,三極管Q1截至,Ring為高電平;振鈴時,振鈴信號經(jīng)過C1耦合及Z1穩(wěn) 壓,Q1基極高電平,導(dǎo)通,集電極為低電平,喚醒單片機啟動判斷,檢測Ring上的波形是否為25 Hz的信號。是, 為振鈴,則啟動FSK接收。0.5s后,F(xiàn)SK信號經(jīng)過C3、 C4、R1、R2的隔直和衰減,輸入到FSK接收器HT9032D 的差分輸入端TIP和Ring腳,將FSK信號讀取解調(diào)后從 DOUT腳輸出。ASCII碼的數(shù)字都有奇偶校驗位,采用奇 偶校驗的方式傳送。串行序列,由MC68HC908AP64單片機接收處理,提取出相應(yīng)的電話FSK信息,送到多功能LCD顯示模塊,驅(qū)動數(shù)碼顯示和EEPROM保存[2]。

          3 FSK信息接收通信軟件的實現(xiàn)
          對于單片機系統(tǒng),硬件的實現(xiàn)確定了底層軟件的實現(xiàn)方法。

          3.1 HT9032D工作模式切換

          HT9032D工作模式可以控制,一般將它的PDWN置成“1”,使其處在低功耗模式;只有在MCU檢測到振鈴時,或者打完電話,話機上呼請求平臺資費信息時,才開啟HT9032D的接收(PDWN置成“0”)。接收完畢或者話費接收失敗,平臺重發(fā)超時,開啟HT9032D又被置為低功耗狀態(tài)。

          3.2串口實現(xiàn)接收

          由于是多種FSK數(shù)據(jù)的接收,要做到各種數(shù)據(jù)接收和各個模塊之間的復(fù)用,所以將FSK接收分成圖5所示物理層、數(shù)據(jù)鏈路層和應(yīng)用層,每個層之間是透明的。這樣結(jié)構(gòu)簡單,便于設(shè)計和維護。


          (1)物理層
          因為在單片機系統(tǒng)中,MCU一般只有一個硬件串口,且往往被用來作程序升級等功能,所以串口資源不足,而且配置1200 bps的波特率方式接收FSK解調(diào)芯片的DOUT的數(shù)據(jù),受到晶振的頻率和MCU的功能的限制,本方案采用在一般的口線上實現(xiàn)軟串口方式接收HT9032D數(shù)據(jù)。由于DOUT數(shù)據(jù)輸出方式為1200 bps異步串口方式,即每個bit數(shù)據(jù)的時間為1/1200=μs,本方案采用278μs的中斷方式對HT9032D數(shù)據(jù)輸出腳DOUT進行不斷掃描,,也就實現(xiàn)了每個bit的三點采樣。通過三點采樣的方式確定接收的bit,極大地提高了軟件對接收數(shù)據(jù)的判斷正確度。取樣示意圖如圖6所示。


          (2)鏈路層
          鏈路層主要是為了同步處理及數(shù)據(jù)類型判斷。分析幾種FSK數(shù)據(jù)的特點發(fā)現(xiàn),它們的結(jié)構(gòu)基本都由以下部分構(gòu)成[3]:


          信道占用信號和標志信號構(gòu)成同步信號,所以在接收數(shù)據(jù)前同步是關(guān)鍵。

          鏈路層的軟件流程如圖7所示。


          同步的過程分五步:第一步接收到“0”和“1”的交替位;第二步計數(shù)并判斷信道占用信號是否成功接收,成功接收則進入第三步接收標志信號;第三步接收到連續(xù)的“1”的交替位進人第四步標志信號計數(shù);第四步計數(shù)并接收判斷標志信號是否成功接收,成功接收則進入第五步接收數(shù)據(jù)信號;第五步接收消息層數(shù)據(jù),根據(jù)不同的數(shù)據(jù)消息類型取出相應(yīng)的消息層數(shù)據(jù)信號。由于這五個步驟都是在278 μs中斷模塊中實現(xiàn)的,保證了每次中斷只會運行其中的一個步驟,所以加快了中斷的運行速度,保證了程序的穩(wěn)定性。

          (3)應(yīng)用層
          將鏈路層分離出來的消息層數(shù)據(jù)信號,按照單復(fù)數(shù)來電顯示的格式分揀。分揀成功后發(fā)送到顯示模塊顯示并存儲到EEPROM,為來電顯示查詢提供幫助。

          3.3在軟件設(shè)計時應(yīng)該注意的幾個問題

          ①在接收平臺的資費信息時,一定要注意平臺和終端的協(xié)議不一定和實際的同步碼的個數(shù)相符合,所以一定要在不同平臺的測試過程中,通過示渡器測量DOUT輸出的同步碼的長度。

          ②由于有一些和1200 Hz和2200 Hz相近的信號容易被識別成同步信號,比如回鈴音信號,造成數(shù)據(jù)誤判斷,所以在鏈路層中一定要將該信號濾除掉,以免影響其他有用信號的接收。

          ③由于軟串口接收數(shù)據(jù)的物理層是用定時中斷的方式工作的,當(dāng)定時中斷被別的中斷中斷時,容易造成數(shù)據(jù)讀錯,所以在接收FSK數(shù)據(jù)時,一定要關(guān)閉所有其他
          中斷。

          ④278 μs中斷的啟動必須是先檢測到鈴聲后再進行;同時,接收完數(shù)據(jù)后要停止該中斷。這樣可以有效地減少功耗。

          結(jié) 語
          HT9032D與MC68Hc908AP64結(jié)合的方案,從軟硬件兩方面綜合考慮了低功耗和接收準確度的問題,可以很方便地實現(xiàn)電話FSK信息的解碼、接收通信,實現(xiàn)用電話網(wǎng)進行用戶遠程數(shù)據(jù)結(jié)算等功能。本方案已在一款新型智能公話中使用,并和中興、華為、貝爾等智能網(wǎng)平臺進行數(shù)據(jù)通信測試,運行效果良好。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();