摘? 要: 一種新的有線傳呼對(duì)講系統(tǒng)的設(shè)計(jì)方法。該系統(tǒng)以單片機(jī)EM78P447SB為主控制器,通過(guò)信號(hào)發(fā)射芯片HT9200B和接收芯片MT8870等外圍器件,實(shí)現(xiàn)了按鍵輸入撥號(hào)進(jìn)行個(gè)呼、部分呼、群呼、來(lái)電顯示以及音樂鈴聲等功能。
關(guān)鍵詞: EM78P447SB單片機(jī)? HT9200B芯片? MT8870芯片? 有線傳呼對(duì)講系統(tǒng)
?
對(duì)于家居空間越來(lái)越大的居民(如樓中樓、別墅等)及在一棟大樓中辦公的公司或部門,方便、廉價(jià)的通信是必不可少的,而低成本、功能較強(qiáng)的有線傳呼對(duì)講系統(tǒng)能滿足這一需求。
1?系統(tǒng)設(shè)計(jì)
每個(gè)傳呼對(duì)講機(jī)主要由單片機(jī)控制模塊和傳呼對(duì)講模塊二部分組成。將所有的單機(jī)用1條總線連接起來(lái)就構(gòu)成了有線傳呼對(duì)講系統(tǒng),其系統(tǒng)框圖如圖1所示。
?
?
單機(jī)加電后,將開關(guān)K1置于待機(jī)、撥號(hào)狀態(tài),等待對(duì)方來(lái)電或本機(jī)進(jìn)行撥號(hào)。
(1)若是對(duì)方來(lái)電,則對(duì)方來(lái)電信號(hào)經(jīng)消側(cè)音電路,到達(dá)MT8870。MT8870將該信號(hào)解碼后,由單片機(jī)采集、識(shí)別,判斷是否呼本機(jī)。如果是,則輸出音樂鈴聲并顯示來(lái)電;如果不是,機(jī)器不再響應(yīng),仍處于接收待機(jī)狀態(tài)。在這個(gè)過(guò)程中,開關(guān)K2可以打開。
(2)若是本機(jī)撥號(hào),還需將開關(guān)K2閉合。這時(shí),如果總線上有信號(hào)(如通話或撥號(hào)),本機(jī)器對(duì)講部分的喇叭就會(huì)發(fā)出聲音,但需等待;如果喇叭沒有發(fā)出聲音,表明總線是空閑的,可以進(jìn)行撥號(hào)。撥號(hào)過(guò)程:由鍵盤撥出要呼叫機(jī)器的號(hào)碼,并在按下每一個(gè)數(shù)字的同時(shí)輸出顯示。如果按錯(cuò)了,長(zhǎng)按*鍵(約3秒)即可消除。確認(rèn)按鍵正確后,再按一下*鍵即可將已按鍵號(hào)碼和本機(jī)號(hào)碼一起發(fā)送出去,該二進(jìn)制信號(hào)經(jīng)HT9200B編碼成DTMF信號(hào),再經(jīng)TDA2822M放大和消側(cè)音電路加到總線上,傳輸出去。按鍵撥號(hào)發(fā)送完畢后,將K2打開,K1撥向?qū)χv狀態(tài),等待對(duì)方回音,從而進(jìn)入對(duì)講狀態(tài)。
要注意的是,由于每部機(jī)器都可設(shè)置本機(jī)惟一的號(hào)碼,也可以設(shè)置一些公用號(hào)碼,如部分的和群體的。因此,可以通過(guò)鍵盤撥號(hào),實(shí)現(xiàn)個(gè)呼、部分呼、群呼等。
2?單片機(jī)控制模塊
本模塊采用EMC(臺(tái)灣義隆電子有限公司)生產(chǎn)的單片機(jī)EM78P447SB為主控制器來(lái)設(shè)計(jì)單片機(jī)控制模塊電路。硬件電路如圖2所示。
?
?
2.1 單片機(jī)與鍵盤、7節(jié)顯示器的接口設(shè)計(jì)
4個(gè)7節(jié)顯示器與4×3鍵盤共用掃描電路。電路的掃描原理是:在7節(jié)顯示器移位到下一個(gè)顯示的同時(shí),去讀回鍵盤的輸入線加以判斷即可讀到該行的按鍵。P64~P67是掃描線,設(shè)計(jì)為輸出模式;P50~P53為按鍵的輸入線,設(shè)計(jì)為輸入模式。P60~P63設(shè)計(jì)為輸出模式,將掃描的按鍵號(hào)碼的BCD碼經(jīng)74LS47譯碼后供7節(jié)LED顯示,而晶體管9012和1.5kΩ電阻組成的放大電路驅(qū)動(dòng)每個(gè)7節(jié)LED,并且該放大電路可作為開關(guān)使用,從而控制各自的7節(jié)LED是否被點(diǎn)亮。此外,來(lái)電顯示也可由P60~P63輸出到7節(jié)顯示器顯示。
機(jī)器加電后,處于待機(jī)狀態(tài)。#鍵為進(jìn)入撥號(hào)狀態(tài)的控制鍵,長(zhǎng)按該鍵(約3秒),就進(jìn)入撥號(hào)狀態(tài)。撥號(hào)完成后,按動(dòng)*鍵,即可將已按鍵的號(hào)碼連同本機(jī)號(hào)碼發(fā)送出去。已按鍵的號(hào)碼為要呼叫的機(jī)器,發(fā)送的本機(jī)號(hào)碼是為被呼叫機(jī)器來(lái)電顯示用的。撥號(hào)過(guò)程中,如果按錯(cuò)了鍵,可長(zhǎng)按*鍵(約3秒)進(jìn)行消除。撥號(hào)發(fā)送完成后,機(jī)器又進(jìn)入待機(jī)狀態(tài)。
按鍵和顯示必須配合進(jìn)行。這里要解決的問(wèn)題較多,如機(jī)械按鍵彈跳的問(wèn)題。1個(gè)按鍵1次只送出1個(gè)編碼,必須是該按鍵放開后再按下才會(huì)送出相同的編碼和掃描法編程等。以上問(wèn)題,可以用軟件來(lái)解決(軟件的主要設(shè)計(jì)在參考文獻(xiàn)[1]有較詳細(xì)的敘述)。
2.2 單片機(jī)與HT9200B的接口設(shè)計(jì)
EM78P447SB單片機(jī)具有價(jià)格便宜、速度快等特點(diǎn),本設(shè)計(jì)使用HT9200B作為發(fā)射芯片,并采用并行傳輸模式(硬件電路見圖2)。
HT9200B是專為μC接口而設(shè)計(jì)的DTMF發(fā)射芯片,廣泛用于安全系統(tǒng)、住宅自動(dòng)化、通信系統(tǒng)等。它與μC有串行/并行2種接口方式。HT9200B的并行工作方式為:提供4位數(shù)據(jù)輸入引腳D0~D3以產(chǎn)生DTMF信號(hào),置高電平以選擇并行工作方式,它的11引腳CLK和12引腳DATA(為串行模式設(shè)計(jì)的)不用,均設(shè)計(jì)為上拉。輸入數(shù)據(jù)代碼應(yīng)先準(zhǔn)備好,然后將置低電平,從DTMF引腳發(fā)送DTMF信號(hào)。注意:從的下降沿到DTMF信號(hào)輸出的延時(shí)大約6ms。
因此,單片機(jī)與HT9200B的接口設(shè)計(jì)中,用EM78P447SB單片機(jī)的P70~P73分別與HT9200B的數(shù)據(jù)輸入端D0~D3相連接;用單片機(jī)的P74引腳與HT9200B的引腳相連接,以控制HT9200B的串行/并行工作模式;用單片機(jī)的P75引腳與HT9200B的引腳相連接,以控制HT9200B的發(fā)送控制信號(hào),并將P70~P75設(shè)置為輸出模式。
2.3 單片機(jī)與MT8870的接口設(shè)計(jì)
MT8870是DTMF接收芯片,工作性能十分穩(wěn)定。它的編碼方式與HT9200B的編碼方式完全一致。當(dāng)音頻信號(hào)來(lái)到被MT8870解碼后,MT8870的第15引腳S1D會(huì)由高電平1向低電平0跳變,故將該腳與單片機(jī)的中斷引腳/INT相連接。輸出的二進(jìn)制編碼信號(hào)Q1~Q4由使能端TOE控制。當(dāng)TOE為高電平時(shí),打開輸出鎖存器,輸出與當(dāng)前輸入的DTMF信號(hào)相對(duì)應(yīng)的二進(jìn)制編碼;當(dāng)TOE為低電平時(shí),Q1~Q4呈高阻狀態(tài),可直接掛在數(shù)據(jù)總線上。因此,用單片機(jī)的P77引腳控制MT8870的TOE端,并采用中斷方式接收數(shù)據(jù)。也就是說(shuō),當(dāng)信號(hào)線上的音頻信號(hào)經(jīng)消側(cè)音電路來(lái)到時(shí),MT8870就會(huì)將音頻信號(hào)轉(zhuǎn)換成二進(jìn)制碼,轉(zhuǎn)換完成后,S1D就會(huì)出現(xiàn)一個(gè)下降沿信號(hào),從而向單片機(jī)申請(qǐng)中斷。單片機(jī)執(zhí)行中斷服務(wù)子程序,將TOE置為高電平后,就可以從MT8870采集數(shù)據(jù)了。每次中斷,就采集1個(gè)數(shù)字。這里將單片機(jī)的P54~P57設(shè)計(jì)為輸入模式,分別與MT8870的數(shù)據(jù)線Q1~Q4相連接。
2.4 發(fā)聲電路
由單片機(jī)的P76引腳輸出聲頻脈沖,經(jīng)晶體管9013和3kΩ電阻等組成的放大電路驅(qū)動(dòng)8Ω的喇叭發(fā)聲。
當(dāng)某一機(jī)器將所撥號(hào)碼與本機(jī)號(hào)碼發(fā)出時(shí),線上所有的機(jī)器均接收,并將前4個(gè)號(hào)碼與本機(jī)的號(hào)碼比較,如果相符,就調(diào)用發(fā)聲子程序(軟件設(shè)計(jì)可參考文獻(xiàn)[1]),由P76引腳輸出,使喇叭發(fā)出一段音樂聲。音樂停止后,再取出接收到的后4個(gè)數(shù)字(對(duì)方機(jī)器的號(hào)碼)由P6口的P60~P63輸出顯示,即實(shí)現(xiàn)了來(lái)電顯示。這樣循環(huán)3次后,再清除接收號(hào)碼計(jì)數(shù)器并返回到主程序的入口地址。在這個(gè)過(guò)程中,若切換電源到對(duì)講電路,雙方即可通話。
3?傳呼對(duì)講模塊
該模塊只需要1個(gè)音頻功率放大集成電路TDA2822M、消側(cè)音電路以及其他很少器件即可。該模塊的硬件電路如圖3所示。
?
每片TDA2822M內(nèi)含2個(gè)集成運(yùn)放。TDA2822M的1個(gè)集成運(yùn)放的輸入端7腳既接MIC也接HT9200B的DTMF引腳以接收DTMF信號(hào),并將該信號(hào)放大后由引腳1輸出。為了避免回音的影響,將這個(gè)信號(hào)先經(jīng)過(guò)消側(cè)音電路,再放到信號(hào)線上。另一方面,來(lái)自信號(hào)線上的音頻信號(hào)經(jīng)消側(cè)音電路,再經(jīng)TDA2822M的另一個(gè)集成運(yùn)放的輸入端6腳放大后,由TDA2822M的3腳輸出,使喇叭發(fā)聲。
4? 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)工作量較大,而且要用軟件解決按鍵彈跳、按鍵確認(rèn)、掃描顯示、號(hào)碼的接收和發(fā)送等問(wèn)題。系統(tǒng)軟件主要包括:按鍵撥號(hào)、號(hào)碼顯示子程序,發(fā)聲、來(lái)電顯示子程序,發(fā)送號(hào)碼子程序,中斷服務(wù)子程序,延時(shí)子程序等。由于EM78P447SB單片機(jī)硬件中斷入口地址均為001H,并且在這里按鍵撥號(hào)、號(hào)碼顯示子程序和發(fā)聲、來(lái)電顯示子程序均用到了TCC(計(jì)時(shí)/計(jì)數(shù)器)中斷功能,因此,中斷服務(wù)子程序包括外部中斷接收號(hào)碼子程序,按鍵撥號(hào)、號(hào)碼顯示所用到的TCC中斷子程序,發(fā)聲、來(lái)電顯示所用到的TCC中斷子程序三部分。系統(tǒng)主程序流程如圖4所示。
?
?
系統(tǒng)的初始化,除了分配一些功能寄存器、定義一些常量、設(shè)置EM78P447SB單片機(jī)的輸入輸出口的工作模式、本機(jī)的惟一號(hào)碼和其他的公用號(hào)碼外,還要將HT9200B設(shè)置為并行傳輸模式,清除P5、P6、P73個(gè)口的寄存器以及接收號(hào)碼計(jì)數(shù)器等一些功能寄存器及開中斷等。
主程序一開始,要使能/INT外部中斷屏蔽寄存器以便允許/INT外部中斷申請(qǐng);關(guān)閉TCC中斷屏蔽寄存器以便禁止TCC中斷申請(qǐng)。但要注意,執(zhí)行按鍵撥號(hào)、號(hào)碼顯示子程序和發(fā)聲、來(lái)電顯示子程序時(shí),要先使能TCC中斷屏蔽寄存器并關(guān)閉/INT外部中斷屏蔽寄存器。
判斷是否按動(dòng)發(fā)送*鍵的處理方法是:取出第5個(gè)按鍵與*鍵比較。如果已按動(dòng),則發(fā)送號(hào)碼;如果未按動(dòng),則延時(shí)10秒左右。延時(shí)10秒左右程序可以先禁止TCC中斷申請(qǐng),再采用執(zhí)行指令的方法進(jìn)行延時(shí)。
執(zhí)行按鍵撥號(hào)、號(hào)碼顯示子程序和發(fā)聲、來(lái)電顯示子程序的基本編寫方法可參考文獻(xiàn)[1]。本系統(tǒng)還附加了一些功能,如清除已按鍵的數(shù)字、進(jìn)入撥號(hào)模式等。下面重點(diǎn)介紹發(fā)送號(hào)碼子程序和中斷服務(wù)子程序。
????發(fā)送號(hào)碼子程序流程圖如圖5所示。無(wú)線發(fā)射時(shí),要取出所播對(duì)方的號(hào)碼與本機(jī)號(hào)碼共8個(gè)數(shù)字逐一發(fā)出。接收端接收時(shí),需計(jì)數(shù)。計(jì)數(shù)滿8個(gè)后,再將前4個(gè)數(shù)字與本機(jī)號(hào)碼比較,通過(guò)后調(diào)用發(fā)聲、來(lái)電顯示子程序。發(fā)送號(hào)碼子程序執(zhí)行前,必須先關(guān)中斷,否則會(huì)由于單片機(jī)的中斷而引起發(fā)送失敗。
?
?
中斷服務(wù)子程序流程圖如圖6所示。其中,/INT是外部中斷。接收號(hào)碼子程序流程圖如圖7所示。按鍵撥號(hào)、號(hào)碼顯示子程序和發(fā)聲、來(lái)電顯示子程序所用到的TCC中斷子程序可參考文獻(xiàn)[1]。
?
?
5?結(jié)束語(yǔ)
該系統(tǒng)充分利用軟件實(shí)現(xiàn)了較多的功能,因此所用元器件極少。雖然目前市場(chǎng)上通信設(shè)備很多,但這種小巧、功能較強(qiáng)、成本低廉的有線傳呼系統(tǒng)在某些場(chǎng)合也有它的生存空間。此外,還可以將本系統(tǒng)的對(duì)講時(shí)信息加密等功能進(jìn)一步完善,并可以根據(jù)國(guó)家信息產(chǎn)業(yè)部無(wú)線電管理委員會(huì)公布的公眾對(duì)講機(jī)的技術(shù)規(guī)范做成功能更強(qiáng)、使用更方便的無(wú)線傳呼對(duì)講機(jī),以滿足人們郊外旅游,特別是對(duì)一些移動(dòng)通信信號(hào)達(dá)不到的地區(qū)的通信需求,滿足一些需要頻繁通信的如大超市、大酒店、運(yùn)動(dòng)會(huì)等的通信需求。若要做成無(wú)線傳呼對(duì)講機(jī),可以考慮在這個(gè)系統(tǒng)的基礎(chǔ)上再解決無(wú)線發(fā)射、接收等問(wèn)題。
?
參考文獻(xiàn)
1 鄧錦城.EM78447入門與實(shí)作.臺(tái)北:臺(tái)灣宏友圖書開發(fā)股份有限公司,2000