基于單片機(jī)的固定電話(huà)短信息終端的開(kāi)發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
現(xiàn)在,短信息服務(wù)日益普及。各個(gè)電話(huà)機(jī)廠家競(jìng)相設(shè)計(jì)和開(kāi)發(fā)短信息終端電話(huà)。為配合我所開(kāi)發(fā)的短信息終端專(zhuān)用集成芯片,我們?cè)O(shè)計(jì)開(kāi)發(fā)出了可發(fā)送和接受短信息的固定電話(huà)。此電話(huà)除具有來(lái)電顯示功能外,還能夠接收信息中心下傳的FSK格式短信,可以利用DTMF和FSK兩種格式上傳信息。有比較好的人機(jī)界面,能夠采用拼音輸入方法編輯短信內(nèi)容。能夠存儲(chǔ)200個(gè)電話(huà),200個(gè)下載的短信,實(shí)現(xiàn)電話(huà)號(hào)碼的查找,下載短信的閱讀,時(shí)鐘顯示等功能。下面先從硬件方面介紹系統(tǒng)的設(shè)計(jì)。
硬件部分
圖1 系統(tǒng)硬件原理框圖
圖2 CAS檢測(cè)原理電路
系統(tǒng)硬件原理框圖見(jiàn)圖1,下面說(shuō)明各部分的功能。
CPU控制部分
系統(tǒng)中采用80C31作為主控CPU,負(fù)責(zé)整個(gè)系統(tǒng)的程序流程,外擴(kuò)了32K RAM,64K EPROM,和一片ATMEL公司的AT29C040A作為電話(huà)薄、短信息和二級(jí)字庫(kù)字模的存儲(chǔ)器。
CAS檢測(cè)電路
CAS檢測(cè)原理電路如圖2所示。在短信電話(huà)中,CAS信號(hào)的檢測(cè)是必不可少的,但以前的普通電話(huà)及來(lái)電顯示電話(huà)都不具有此項(xiàng)功能,市場(chǎng)上具有CAS音檢測(cè)功能的芯片也比較少見(jiàn),因此,我們?cè)O(shè)計(jì)了一種CAS音檢測(cè)電路,在實(shí)際應(yīng)用中,效果不錯(cuò)(見(jiàn)圖3)。
圖3 CAS檢測(cè)實(shí)際電路
CAS為DTMF信號(hào),頻率為2130/2750Hz,所以采用兩個(gè)單獨(dú)的濾波器,如果為CAS,則A,B點(diǎn)輸出均為高電平,產(chǎn)生CAS中斷。圖中SIGNAL為DTMF信號(hào),CAS_CON為CAS音檢測(cè)控制電路,當(dāng)CAS_CON=1時(shí),檢測(cè)CAS音;CAS_CON=0時(shí),不檢測(cè)CAS音。當(dāng)檢測(cè)到CAS,CASINT輸出高電平。
&n bsp; EPLD集成控制電路
外部控制電路部分采用ALTERA公司的EPM7128QC160,將設(shè)計(jì)中所用到的74系列和4000系列芯片全部集成在里面,并且它有160個(gè)PIN,能夠滿(mǎn)足系統(tǒng)中輸入輸出信號(hào)對(duì)管腳的需求。大大縮小了PCB面積,在調(diào)試時(shí)非常方便,且提高了系統(tǒng)整體的可靠性。
其它部分因?yàn)槎加鞋F(xiàn)成的芯片或成熟的電路,這里不再說(shuō)明。
軟件部分
軟件采用模塊化設(shè)計(jì),每一模塊都可單獨(dú)設(shè)計(jì)和調(diào)試。主要有鍵盤(pán)處理模塊、系統(tǒng)狀態(tài)轉(zhuǎn)換模塊、電話(huà)處理模塊(包括FSK短信的處理與發(fā)送)、LCD顯示模塊、中斷處理模塊(CAS,FSK,振鈴,摘掛機(jī)的檢測(cè)和FSK短信息接收)。除中斷處理模塊外,其它的四個(gè)模塊在主程序中循環(huán)調(diào)用。
鍵盤(pán)處理模塊
電話(huà)與CPU利用同一按鍵進(jìn)行工作,由CPU通過(guò)模擬開(kāi)關(guān)控制按鍵的傳遞方向。在正常打電話(huà)或摘機(jī)時(shí),鍵值傳遞給電話(huà)中的撥號(hào)芯片;掛機(jī)時(shí)則傳遞給CPU處理。CPU不停的監(jiān)測(cè)是否有鍵被按下,當(dāng)有鍵按下時(shí),設(shè)置系統(tǒng)狀態(tài)轉(zhuǎn)換標(biāo)志為1,否則為0。為了使用方便,比普通電話(huà)增加了四個(gè)按鍵:取消鍵(key_C),主菜單鍵(key_M),選中鍵(key_OK),輸入方法切換鍵(key_CH)。
系統(tǒng)狀態(tài)轉(zhuǎn)換模塊
這是整個(gè)系統(tǒng)的核心控制部分。它根據(jù)按鍵及系統(tǒng)所處的不同狀態(tài),進(jìn)行狀態(tài)間的切換和狀態(tài)內(nèi)鍵值的處理。當(dāng)系統(tǒng)狀態(tài)轉(zhuǎn)換標(biāo)志為1時(shí),進(jìn)入此模塊。根據(jù)鍵值的不同,進(jìn)行相應(yīng)的處理。系統(tǒng)主要設(shè)定的狀態(tài)有: 初始狀態(tài)(S_init),主菜單狀態(tài)(S_mainmenu),電話(huà)薄狀態(tài)(S_menu1),短信息狀態(tài)(S_menu2),系統(tǒng)設(shè)置狀態(tài)(S_menu3),添加電話(huà)號(hào)碼狀態(tài)(S_addphone_1),添加電話(huà)姓名狀態(tài)(S_addphone_2),添加電話(huà)存儲(chǔ)位置狀態(tài)(S_addphone_3),查找電話(huà)狀態(tài)(S_lookphone),短信編輯狀態(tài)(S_edit_sm),發(fā)送短信狀態(tài)(S_send_sm),閱讀短信狀態(tài)(S_read_sm)等。
LCD顯示模塊
這一部分是依據(jù)系統(tǒng)所處的狀態(tài)進(jìn)行顯示。主要有菜單的顯示,所編輯漢字與字符的顯示,下載的短信的顯示,顯示有短信和來(lái)電顯示電話(huà)等部分。顯示中,最難于處理的是短信的漢字與ASCII碼一起顯示,因?yàn)闈h字是全角顯示,ASCII碼則為半角顯示,否則顯示效果不好,并且還要涉及翻頁(yè)中顯示的起始位置。在開(kāi)發(fā)中采用的程序流程如圖4所示。
圖4 LCD顯示模塊流程圖
電話(huà)處理模塊
在這一部分中,負(fù)責(zé)處理短信息電話(huà),來(lái)電顯示電話(huà),及普通的電話(huà)。當(dāng)有振鈴到來(lái)時(shí),進(jìn)入電話(huà)處理程序。接受交換中心發(fā)送的FSK信號(hào),并根據(jù)信號(hào)的內(nèi)容,決定是短信息,還是來(lái)電顯示電話(huà)。對(duì)于短信息,則發(fā)送應(yīng)答信息,轉(zhuǎn)入短信息的處理模塊;當(dāng)是來(lái)電顯示(CALLER ID)電話(huà),則將在LCD上顯示電話(huà)號(hào)碼。如果沒(méi)有收到FSK信息,則判定為普通的電話(huà)。(系統(tǒng)暫時(shí)不考慮來(lái)電顯示電話(huà)中下行DTMF格式)。圖5是其程序流程圖。
圖5 電話(huà)處理程序圖
中斷處理程序(CAS,FSK,振鈴,摘掛機(jī))
在中斷處理程序中,主要是處理FSK信號(hào)的接收、CAS信號(hào),振鈴和摘掛機(jī)檢測(cè),并使相應(yīng)的標(biāo)志位置1,以便于主程序處理。其中,F(xiàn)SK信號(hào)的接受先是采用查詢(xún)的方法同步FSK信息,在同步之后是利用51單片機(jī)的串口接收。
結(jié)語(yǔ)
設(shè)計(jì)的固定電話(huà)網(wǎng)短信息終端同時(shí)具有上傳消息的能力和接收短消息終端下行消息的能力(C類(lèi)終端),滿(mǎn)足“基于固定網(wǎng)短消息傳送的技術(shù)規(guī)范”的要求。為短信息終端專(zhuān)用集成芯片提供了驗(yàn)證平臺(tái)。