引言
目前我國電話網交換機傳送主叫識別信息CID(Calling Identity Delivery) 有兩種方式,較常用的是FSK(頻移鍵控) 方式,另一種是DTMF(雙音多頻) 方式。基于ARM 的來電號碼顯示器的實現方法利用CID 芯片HT9032C 來解調FSK 碼,同時可實現液晶顯示、E2PROM存儲和語音播報電話主叫號碼等功能,以SPI 串行接口智能顯示鍵盤控制芯片ZLG7289A 為核心設計的鍵盤電路可實現查閱、刪除信息。文章詳細介紹了系統的硬件電路設計和軟件流程。實踐表明,顯示器外圍器件少,抗干擾能力強,使用方便。
??????? 1 系統硬件設計
1.1 系統總體設計
整個系統由5 部分組成,分別是: (1) FSK 信號解調; (2) 來電號碼語音播報; (3) 顯示來電; (4) 存儲來電信息; (5) 按鍵控制部分。具體如圖1 所示。
?
圖1 系統組成框圖
1.2 系統各組成部分設計
(1) FSK 信號解調。
CID 芯片HT9032C 解調器是***HOLTEK 公司生產的雙列直插、低功耗的接收物理層主叫識別信息的CMOS 集成電路FSK 解調芯片,它能滿足Bell 202 和CCITT V.23 標準,實現1200 波特率FSK數據傳輸標準,且能檢測鈴流和載波,電話線經過接口電路接到HT9032C 的TIP,RING,RDET1 和RDET2腳,當有振鈴信號來時,HT9032C 的RDET 腳觸發下降沿。在第一次和第二次振鈴之間HT9032C 把邏輯"1" (1200 ± 12) Hz、邏輯"0" (2200 ± 22) Hz、傳輸速率為1200 bit /s 的FSK 信號解調成串行異步二進制數據。當檢測到有效載波信號,CDET 觸發下降沿。在DOUT 腳輸出包括信道占用信號、標志信號和主叫識別信號的所有信號; 在DOUTC 腳只輸出主叫識別信號。
HT9032C 與ARM9 的具體硬件連線如圖2 所示。
?
圖2 CID 芯片HT9032C 與ARM9 的硬件連線
HT9032C 的RDET 引腳接MCU 的外部中斷0,當有振鈴信號時,RDET 腳觸發外部中斷0 服務程序。
HT9032C 的CDET 引腳接MCU 的外部中斷1,當檢測到有效解調后的主叫識別信號,CDET 腳觸發外部中斷1 程序。HT9032C 的DOUTC 引腳接MCU 的串行中斷。當檢測到振鈴和有效載波信號,便打開串口中斷,接收解調的FSK 信號,得到來電信息。
(2) 來電號碼語音播報。
采用錄放一體化的高保真單片固態語音集成電路ISD1420 實現自動語音播放來電號碼。其內部有128K 的E2PROM 用于存放語音信息,并可分成160段,每段信息為0.125 s,總共可存儲20 s 的信息。語音分段的信息是由ISD1420 的地址線A0 ~ A7 的值決定的。在錄制過程中將可能要播放的語音庫按每個0. 5 s 的單位進行錄制,每個漢字或數字的語音信息對應到一個地址。在檢測到來電號碼后,依次給定A0 ~A7 的值就能構成一句話,播放來電號碼。
(3) 顯示來電。
液晶顯示模塊LCD 用來顯示主叫號碼、日期、時間等信息。LCD 接收到來電信息后即依次取出各個信息并進行顯示。
(4) 存儲來電信息。
采用允許三總線工作的串行外設接口(SPI) 芯片X25045 作為存儲器。此芯片把看門狗定時器、電壓監控和E2PROM 集成在單個封裝內,降低了系統成本并減少了對電路板空間的要求; 其看門狗功能提供了對微控制器的保護,通過編程監控系統,當系統發生故障時自動以RESET 信號作出響應; X25045 的存貯器部分是CMOS 的4096 bit(512 × 8) 串行E2PROM.
(5) 按鍵控制部分。
采用ZLG7289A 控制3 個按鍵: "DEL"、上"UP"、下"DOWN"分別用于刪除、查閱主叫信息。
2 主叫識別信息的兩種數據格式
終端交換機向該被叫用戶傳送主叫識別信息數據傳送時序如圖3 所示。
?
圖3 主叫識別信息數據傳送時序
符號時間值:
A-0.5 ~ 1.5 s 第一次振鈴結束與數據傳送開始之間的時間間隔。
B + C-2.9 s 傳送數據的時間包括信道占用信號Channel Seizure Signal 和標志信號Mark Signal.
D-0.2 s 數據傳送結束與第二次振鈴開始之間的時間隔。
E-1 s 鈴流。
B + C + D-3.1 s 各時段可根據具體情況定。
信道占用信號和標志信號的目的是提示電話終端準備接收數據,校驗字是用作差錯檢查。信道占用信號是由一組300 個連續的"0"和"1"交替的位組成,其第一個比特為"0",最后一個比特為"1".在通話狀態下,信道占用信號不發送。標志信號是由180 個(在掛機狀態下) 或80 個(在通話狀態下) 標志位(邏輯"1") 組成,標志位由0 ~ 10 個邏輯"1"組成。
每個數據字之前先行一位"0"作為起始位,在最后加一位"1"作為結束位,每個數據字的最低位先發送。這樣,實際每個字占10 bit,即1PXXXXXXX0 (P為奇偶校驗位) .數據傳送時,信道占用信號發送后接收標志信號。主叫識別數據格式有兩種: 單數據消息格式(SDMF) 和復合數據消息格式(MDMF) .
(1) 單數據消息格式(SDMF)。
單數據消息格式由消息頭和消息體組成,這種格式的結構簡單,可容納的信息內容較少,如: 呼叫序號、呼叫建立日期和時間及主叫號碼。消息頭由消息類型和消息長度組成,它們均為8 bit.消息類型的值用來識別消息的特征,消息長度指明后面所跟的消息字的長度。消息體包括交換機需傳給終端用戶的消息,消息體可容納1255 個8 bit 的消息字,每個字用8 bit 帶校驗位的7 位編碼字符集表示。其消息格式如圖4 所示。
?
圖4 單數據消息格式組成圖
(2) 復合數據消息格式(MDMF)。
這種格式的結構比較復雜,可傳送的信息包括除單數據格式內容外還有主叫用戶的姓名等。復合數據消息格式也是由消息頭和消息體組成,不同的是,復合數據的消息體由一個或多個小的參數消息組成,參數消息也具有參數頭和參數體。參數頭包括參數類型和參數長度,它們均為8 bit,參數類型值用來識別后續參數字,參數長度指明參數體中參數字的數目。復合數據消息格式允許不同特征產生的不同消息在同一個幀中傳送。在此不再詳述。
3 系統軟件流程設計
系統軟件由四部分組成,分別為主程序,中斷0 程序,中斷1 程序和串口中斷程序。
主程序及各程序功能介紹如下。
(1) 主程序開始初始化系統各功能芯片,設置串行通信的波特率,從E2PROM 中讀存儲的來電信息,并顯示最后一條信息; 然后開中斷0 循環等待振鈴信號。程序流程圖如圖5 所示。
?
圖5 主程序流程圖
(2) 外部中斷0 服務程序。
當有振鈴信號來時,便觸發外部中斷0 服務程序。
若判斷為第一次振鈴,則開外部中斷1,判斷是否有有效解調FSK 信號。
(3) 外部中斷1 服務程序。
當判斷有有效信號來時,便觸發外部中斷0 服務程序。若判斷為第一次振鈴,則打開串口中斷,準備接收解調為串行異步二進制數據的來電信息。
(4) 串口中斷程序。
在串口服務程序中不斷記錄緩沖器SUBF 中的數據,存儲并顯示當前信息。
4 實驗數據分析
串口輸出的字符串為: 0x80 0x18 0x32 0x00 0x310x31 0x30 0x38 0x33 0x30 0x31 0x30 0x33 0x34 0x300x31 0x35 0x32 0x31 0x36 0x37 0x36 0x30 0x31 0x360x37 0xEF經過分析,0x80 表示此消息數據為復合數據消息格式,0x18 表示數據長度,后面則表示時間為2011 年08 月30 日10 時34 分,來電號碼為01521760167,校驗字為0xEF.所有數據和(包括校驗位) 按256 的模求和為00,證明收到的數據完全正確。
評論
查看更多