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