電信終端FSK數(shù)據(jù)通信的低功耗實(shí)現(xiàn)
摘 要: FSK數(shù)據(jù)是電信網(wǎng)絡(luò)中進(jìn)行信息交互的主要方式,用來(lái)傳輸來(lái)電顯示及話(huà)費(fèi)、短信息等多種格式的數(shù)據(jù)。對(duì)FSK數(shù)據(jù)的準(zhǔn)確接收廈其低功耗設(shè)計(jì)是對(duì)電信終端的基本要求。本設(shè)計(jì)以MC68HC908AP64單片機(jī)度HT9032D解調(diào)芯片為硬件構(gòu)架,以中斷查詢(xún)FSK方式工作,且在三種功耗模式中切換。該方案能夠實(shí)現(xiàn)電信終端線(xiàn)路取電工作并準(zhǔn)確接受FSK。文中結(jié)合主叫識(shí)別信息接收介紹這種方案。
關(guān)鍵詞: 電信終端 主叫識(shí)別信息 FSK數(shù)據(jù)通信低功耗
當(dāng)前實(shí)現(xiàn)FSK數(shù)據(jù)通信的芯片種類(lèi)繁多,發(fā)展迅速,在眾多方案選擇中,要考慮到開(kāi)發(fā)成本,運(yùn)行穩(wěn)定性,是否能夠實(shí)現(xiàn)線(xiàn)路取電等問(wèn)題,而這些要求也會(huì)隨著技術(shù)發(fā)展而不斷提高。HC908AP64單片機(jī)是摩托羅拉公司推出的一款新型8位低功耗單片機(jī),和低功耗的HT9032D配合,可構(gòu)建FSK數(shù)據(jù)通信的新方案。該方案可以用來(lái)接收包括主叫識(shí)別信息等在內(nèi)的多種平臺(tái)信息。下面首先介紹主叫識(shí)別信息。
1主叫識(shí)別信息
主叫識(shí)別信息傳送CID(Calling Identity Delivery)是向被叫用戶(hù)電話(huà)提供的一種服務(wù)業(yè)務(wù)。其方法是發(fā)端交換機(jī)將主叫號(hào)碼等信息傳送給終端交換機(jī),終端交換機(jī)再將信息傳送給被叫用戶(hù)終端,如圖1所示。
主叫號(hào)碼信息的信號(hào)采用的是連續(xù)二進(jìn)制頻移鍵控(BFSK)方式,數(shù)據(jù)傳輸方式為二進(jìn)制異步串行方式,邏輯1的頻率為1200Hz,邏輯o的頻率為2200 Hz,傳輸速率為1200bps。主叫號(hào)碼信息可以在被叫掛機(jī)(On_Hook)或摘機(jī)通信狀態(tài)下傳送。掛機(jī)狀態(tài)下傳送方法是,終端交換機(jī)將主叫信息在第1次振鈴和第2次振鈴期間傳給被叫用戶(hù)。對(duì)此已有相應(yīng)的協(xié)議標(biāo)準(zhǔn),例如:BeIl 202、CCITT V.23 1200波特率FSK數(shù)據(jù)傳輸標(biāo)準(zhǔn)。信息傳送的數(shù)據(jù)格式有2種:?jiǎn)螖?shù)據(jù)消息格式(Single Data MessageFormat)和復(fù)合數(shù)據(jù)消息格式(Multiple Data MessageFormat)。消息幀格式如下:
①信道占用信號(hào)由1組300個(gè)連續(xù)的“0”和“1”交替的位組成,其第1個(gè)比特為“0”,最后一個(gè)比特為“l(fā)”。②標(biāo)志信號(hào)由180個(gè)(掛機(jī)傳送)或80個(gè)(摘機(jī)傳送)邏輯“1”組成。③標(biāo)志位由0~10個(gè)邏輯“1”組成。④對(duì)于消息類(lèi)型、消息長(zhǎng)度、消息字、校驗(yàn)字這些數(shù)據(jù)字,每個(gè)數(shù)據(jù)字之前加1位“0”作為起始位,數(shù)據(jù)字之后加1位“1”作為結(jié)束位(即每個(gè)字占10個(gè)比特)。數(shù)據(jù)傳送時(shí)信道占用信號(hào)首先發(fā)送,每個(gè)數(shù)據(jù)字中低位在前發(fā)送。
兩種主要的數(shù)據(jù)格式消息層的數(shù)據(jù)信號(hào)組成如圖2和圖3所示。
與單數(shù)據(jù)格式(圖2)一樣,復(fù)合數(shù)據(jù)消息格式(圖3)由消息頭和消息體組成。不同的是,復(fù)合數(shù)據(jù)的消息體由一個(gè)或多個(gè)小的消息(稱(chēng)為參數(shù)消息)組成,參數(shù)消息同樣具有參數(shù)頭和參數(shù)體。參數(shù)頭包括參數(shù)類(lèi)型和參數(shù)長(zhǎng)度。它們均為比特字,參數(shù)類(lèi)型值用來(lái)識(shí)別后續(xù)參數(shù)字,參數(shù)長(zhǎng)度指明參數(shù)體中參數(shù)字的數(shù)目。消息類(lèi)型0x04對(duì)應(yīng)著單數(shù)據(jù)格式,0x80對(duì)應(yīng)著復(fù)合數(shù)據(jù)消息格式。取得格式后將接收到消息數(shù)據(jù)根據(jù)相應(yīng)格式,進(jìn)行處理[1]。
來(lái)電顯示在第1聲振鈴和第2聲振鈴之間發(fā)送,所以一般檢測(cè)到振鈴時(shí)開(kāi)始接收來(lái)電顯示信息。
2 FSK信息接收硬件方案和構(gòu)建
實(shí)現(xiàn)FSK信號(hào)解調(diào)的芯片有MC145447、MT8841/8843、HT9030/9031、HT9032C/D等多種。在選取芯片時(shí),從以下幾點(diǎn)考慮:
①是否可以實(shí)現(xiàn)低功耗。電信終端要求線(xiàn)路供電是一種趨勢(shì),所以最好MCU及解調(diào)芯片是低功耗芯片且功耗可調(diào)。
②對(duì)芯片的控制盡量簡(jiǎn)單,能夠節(jié)約MCU的口線(xiàn)資源。由于MCU的外圍電路很多有鍵盤(pán)掃描電路、顯示控制電路、EEPROM的控制電路、時(shí)鐘控制電路,都需要MCU來(lái)控制,所以MCU的口線(xiàn)資源對(duì)整個(gè)硬件的實(shí)現(xiàn)都比較寶貴。雖然口線(xiàn)復(fù)用能夠在一定程度上解決這種資源緊張,但單口線(xiàn)復(fù)用對(duì)整個(gè)電路的控制帶來(lái)不確定性。對(duì)解調(diào)芯片的控制有串口方式和并口方式。采用串口方式更能節(jié)約口線(xiàn)資源。
③在電路中有的資源(比如振鈴檢測(cè)電路),要盡量復(fù)用,不要采用芯片及電路檢測(cè)振鈴多重控制,避免軟件設(shè)計(jì)的復(fù)雜性。
基于以上分析,選擇HT9032D做解調(diào)芯片。它能實(shí)現(xiàn)Bell202 FSK和v.23解調(diào),芯片內(nèi)部包含電源掉電檢測(cè)電路、振鈴檢測(cè)電路和載波檢測(cè)電路。信號(hào)輸入檢測(cè)靈敏度高,電源工作電壓較寬(3~5.5 V),是進(jìn)行電話(huà)FSK信息解碼通信的較好的集成芯片。通過(guò)對(duì)其的PDWN硬件置“1”,就可工作在低功耗模式(I1 μA);PDWN硬件置“0”,就工作在正常模式(I5 mA)。接收“1”的頻率范圍為(120012)Hz,接收“0”的頻率范圍為(220022)Hz,和MCU問(wèn)的通信方式為1200 bps異步串口方式,解調(diào)器的引腳如表1所列。
MCU采用MC68HC908AP64。這種芯片的工作電壓范圍為4.5~5.5 V和2.7~3.3兩種,2 KB的RAM,60 KB的Flash存儲(chǔ)器。有48針及42針的LQFP,42針SDIP等三種封裝。該芯片本身功耗很低,而且能夠運(yùn)行STOP、WAIT命令,使其能夠工作在低功耗監(jiān)控模式。當(dāng)外部中斷或者時(shí)鐘中斷產(chǎn)生時(shí)能夠喚醒它。STOP模式和WAIT模式的區(qū)別在于,STOP模式中斷產(chǎn)生后能夠自己馬上進(jìn)入全速模式工作,而WAIT模式必須要在中斷中用指令控制該MCU進(jìn)入全速模式工作。這樣只有在需要的時(shí)候喚醒系統(tǒng)工作。這種模式切換很好地保證了本方案的功耗最低。對(duì)該芯片的編程控制,完全在C環(huán)境下進(jìn)行,極大地減少了程序開(kāi)發(fā)時(shí)間。硬件結(jié)構(gòu)如圖4所示。
對(duì)于從電話(huà)線(xiàn)上傳輸來(lái)的FSK信號(hào),信號(hào)傳送在第1次振鈴和第2次振鈴之間。不振鈴時(shí),三極管Q1截至,Ring為高電平;振鈴時(shí),振鈴信號(hào)經(jīng)過(guò)C1耦合及Z1穩(wěn) 壓,Q1基極高電平,導(dǎo)通,集電極為低電平,喚醒單片機(jī)啟動(dòng)判斷,檢測(cè)Ring上的波形是否為25 Hz的信號(hào)。是, 為振鈴,則啟動(dòng)FSK接收。0.5s后,F(xiàn)SK信號(hào)經(jīng)過(guò)C3、 C4、R1、R2的隔直和衰減,輸入到FSK接收器HT9032D 的差分輸入端TIP和Ring腳,將FSK信號(hào)讀取解調(diào)后從 DOUT腳輸出。ASCII碼的數(shù)字都有奇偶校驗(yàn)位,采用奇 偶校驗(yàn)的方式傳送。串行序列,由MC68HC908AP64單片機(jī)接收處理,提取出相應(yīng)的電話(huà)FSK信息,送到多功能LCD顯示模塊,驅(qū)動(dòng)數(shù)碼顯示和EEPROM保存[2]。
3 FSK信息接收通信軟件的實(shí)現(xiàn)
對(duì)于單片機(jī)系統(tǒng),硬件的實(shí)現(xiàn)確定了底層軟件的實(shí)現(xiàn)方法。
3.1 HT9032D工作模式切換
HT9032D工作模式可以控制,一般將它的PDWN置成“1”,使其處在低功耗模式;只有在MCU檢測(cè)到振鈴時(shí),或者打完電話(huà),話(huà)機(jī)上呼請(qǐng)求平臺(tái)資費(fèi)信息時(shí),才開(kāi)啟HT9032D的接收(PDWN置成“0”)。接收完畢或者話(huà)費(fèi)接收失敗,平臺(tái)重發(fā)超時(shí),開(kāi)啟HT9032D又被置為低功耗狀態(tài)。
3.2串口實(shí)現(xiàn)接收
由于是多種FSK數(shù)據(jù)的接收,要做到各種數(shù)據(jù)接收和各個(gè)模塊之間的復(fù)用,所以將FSK接收分成圖5所示物理層、數(shù)據(jù)鏈路層和應(yīng)用層,每個(gè)層之間是透明的。這樣結(jié)構(gòu)簡(jiǎn)單,便于設(shè)計(jì)和維護(hù)。
(1)物理層
因?yàn)樵趩纹瑱C(jī)系統(tǒng)中,MCU一般只有一個(gè)硬件串口,且往往被用來(lái)作程序升級(jí)等功能,所以串口資源不足,而且配置1200 bps的波特率方式接收FSK解調(diào)芯片的DOUT的數(shù)據(jù),受到晶振的頻率和MCU的功能的限制,本方案采用在一般的口線(xiàn)上實(shí)現(xiàn)軟串口方式接收HT9032D數(shù)據(jù)。由于DOUT數(shù)據(jù)輸出方式為1200 bps異步串口方式,即每個(gè)bit數(shù)據(jù)的時(shí)間為1/1200=μs,本方案采用278μs的中斷方式對(duì)HT9032D數(shù)據(jù)輸出腳DOUT進(jìn)行不斷掃描,,也就實(shí)現(xiàn)了每個(gè)bit的三點(diǎn)采樣。通過(guò)三點(diǎn)采樣的方式確定接收的bit,極大地提高了軟件對(duì)接收數(shù)據(jù)的判斷正確度。取樣示意圖如圖6所示。
(2)鏈路層
鏈路層主要是為了同步處理及數(shù)據(jù)類(lèi)型判斷。分析幾種FSK數(shù)據(jù)的特點(diǎn)發(fā)現(xiàn),它們的結(jié)構(gòu)基本都由以下部分構(gòu)成[3]:
信道占用信號(hào)和標(biāo)志信號(hào)構(gòu)成同步信號(hào),所以在接收數(shù)據(jù)前同步是關(guān)鍵。
鏈路層的軟件流程如圖7所示。
同步的過(guò)程分五步:第一步接收到“0”和“1”的交替位;第二步計(jì)數(shù)并判斷信道占用信號(hào)是否成功接收,成功接收則進(jìn)入第三步接收標(biāo)志信號(hào);第三步接收到連續(xù)的“1”的交替位進(jìn)人第四步標(biāo)志信號(hào)計(jì)數(shù);第四步計(jì)數(shù)并接收判斷標(biāo)志信號(hào)是否成功接收,成功接收則進(jìn)入第五步接收數(shù)據(jù)信號(hào);第五步接收消息層數(shù)據(jù),根據(jù)不同的數(shù)據(jù)消息類(lèi)型取出相應(yīng)的消息層數(shù)據(jù)信號(hào)。由于這五個(gè)步驟都是在278 μs中斷模塊中實(shí)現(xiàn)的,保證了每次中斷只會(huì)運(yùn)行其中的一個(gè)步驟,所以加快了中斷的運(yùn)行速度,保證了程序的穩(wěn)定性。
(3)應(yīng)用層
將鏈路層分離出來(lái)的消息層數(shù)據(jù)信號(hào),按照單復(fù)數(shù)來(lái)電顯示的格式分揀。分揀成功后發(fā)送到顯示模塊顯示并存儲(chǔ)到EEPROM,為來(lái)電顯示查詢(xún)提供幫助。
3.3在軟件設(shè)計(jì)時(shí)應(yīng)該注意的幾個(gè)問(wèn)題
①在接收平臺(tái)的資費(fèi)信息時(shí),一定要注意平臺(tái)和終端的協(xié)議不一定和實(shí)際的同步碼的個(gè)數(shù)相符合,所以一定要在不同平臺(tái)的測(cè)試過(guò)程中,通過(guò)示渡器測(cè)量DOUT輸出的同步碼的長(zhǎng)度。
②由于有一些和1200 Hz和2200 Hz相近的信號(hào)容易被識(shí)別成同步信號(hào),比如回鈴音信號(hào),造成數(shù)據(jù)誤判斷,所以在鏈路層中一定要將該信號(hào)濾除掉,以免影響其他有用信號(hào)的接收。
③由于軟串口接收數(shù)據(jù)的物理層是用定時(shí)中斷的方式工作的,當(dāng)定時(shí)中斷被別的中斷中斷時(shí),容易造成數(shù)據(jù)讀錯(cuò),所以在接收FSK數(shù)據(jù)時(shí),一定要關(guān)閉所有其他
中斷。
④278 μs中斷的啟動(dòng)必須是先檢測(cè)到鈴聲后再進(jìn)行;同時(shí),接收完數(shù)據(jù)后要停止該中斷。這樣可以有效地減少功耗。
結(jié) 語(yǔ)
HT9032D與MC68Hc908AP64結(jié)合的方案,從軟硬件兩方面綜合考慮了低功耗和接收準(zhǔn)確度的問(wèn)題,可以很方便地實(shí)現(xiàn)電話(huà)FSK信息的解碼、接收通信,實(shí)現(xiàn)用電話(huà)網(wǎng)進(jìn)行用戶(hù)遠(yuǎn)程數(shù)據(jù)結(jié)算等功能。本方案已在一款新型智能公話(huà)中使用,并和中興、華為、貝爾等智能網(wǎng)平臺(tái)進(jìn)行數(shù)據(jù)通信測(cè)試,運(yùn)行效果良好。
評(píng)論