<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 信息電話機(jī)關(guān)鍵模塊的研究與應(yīng)用

          信息電話機(jī)關(guān)鍵模塊的研究與應(yīng)用

          作者:淮陰工學(xué)院 朱全銀 時(shí)間:2008-09-04 來(lái)源:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用 收藏

          2  信號(hào)采集模塊方案設(shè)計(jì)

          本文引用地址:http://www.ex-cimer.com/article/87724.htm

            作為對(duì)輸出數(shù)據(jù)的研究,經(jīng)由MC14LC5447解調(diào)后的信號(hào)為異步串行信號(hào),而且數(shù)據(jù)速率為1 200 bps,可使用的串口模式1來(lái)進(jìn)行數(shù)據(jù)接收,算法請(qǐng)見(jiàn)參考文獻(xiàn)[1]。除了進(jìn)行數(shù)據(jù)采集,將串行數(shù)據(jù)包解包外,還將數(shù)據(jù)復(fù)原。

            主中斷程序大部分都在循環(huán)等待串口程序的中斷響應(yīng),首先需要接收的是來(lái)電顯示包的長(zhǎng)度字段,接收到長(zhǎng)度字段的好處就在于可以動(dòng)態(tài)地接收來(lái)電數(shù)據(jù)包,而不必每次都等待接收固定的長(zhǎng)度。雖然來(lái)電顯示包長(zhǎng)度不可能大于某個(gè)固定長(zhǎng)度,但根據(jù)來(lái)電數(shù)據(jù)包的長(zhǎng)度字段,動(dòng)態(tài)接收數(shù)據(jù),使采集的數(shù)據(jù)更容易處理,而且位于數(shù)據(jù)包尾的干擾信號(hào)也可以再次濾除,從而減輕其他程序的負(fù)荷。

            當(dāng)然,在此也可以通過(guò)將數(shù)據(jù)分離出來(lái)并進(jìn)行處理,但為了包的可分析性,單片機(jī)除了數(shù)據(jù)采集外,不做其他的工作。

            某一次獲取的數(shù)據(jù)如下:


          圖4  數(shù)據(jù)采集模塊原理

            圖4給出了數(shù)據(jù)采集模塊的原理,MC14LC5447的DOC信號(hào)輸出連接到AT89C2051的第2引腳處(串行輸入端口);MC14LC5447的RDO信號(hào)輸出連接到AT89C2051的第6引腳處(AT89C2051的外部中斷0);AT89C2051的第9引腳連接到MC14LC5447的第7引腳(PWRUP),來(lái)控制MC14LC5447的開與關(guān)。AT89C2051第7引腳連接到USB設(shè)備狀態(tài)輸出口,第1 引腳也連接到USB設(shè)備的狀態(tài)輸出口,第11引腳連接到USB設(shè)備的狀態(tài)輸入口,數(shù)據(jù)線連接到USB設(shè)備的并行數(shù)據(jù)輸入口。其中第12、第13引腳需要外接上拉電阻。

            利用單片機(jī)實(shí)現(xiàn)的方案較數(shù)字邏輯電路的方案有許多優(yōu)點(diǎn)。主要有出錯(cuò)幾率小,有存儲(chǔ)控制功能,方便,更換靈活等。

            利用存儲(chǔ)轉(zhuǎn)發(fā)方案提高了數(shù)據(jù)傳輸?shù)陌踩?。由?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/USB203">USB203無(wú)USB的中斷功能,所以接收數(shù)據(jù)只能用程序循環(huán)的方式來(lái)實(shí)現(xiàn),但不恰當(dāng)?shù)厥褂醚h(huán)會(huì)增加系統(tǒng)的負(fù)擔(dān)。

          3  電話信號(hào)處理模塊設(shè)計(jì)

            摘掛機(jī)信號(hào)可以由電話機(jī)叉簧線路取得。

            經(jīng)過(guò)檢測(cè),叉簧上共有兩路信號(hào): 一路為22~27 V的正弦波信號(hào),位于叉簧第5、6引腳;另一路為15~20 V的負(fù)正弦波信號(hào),位于叉簧第3、4引腳。第1、2引腳為信號(hào)輸出。當(dāng)叉簧上的彈片沒(méi)有被壓下時(shí),第1、2引腳與第5、6引腳連通,信號(hào)為正交流信號(hào),此時(shí)表示摘機(jī);當(dāng)掛機(jī)時(shí),叉簧上的彈片被壓下,此時(shí),第1、2引腳與第3、4引腳連通,第1、2引腳上的信號(hào)為負(fù)交流信號(hào)。將此信號(hào)轉(zhuǎn)換為邏輯0、1電平,即摘機(jī)時(shí)信號(hào)為邏輯1,掛機(jī)時(shí)信號(hào)為邏輯0,電路原理如圖5所示。


          圖5  叉簧信號(hào)處理原理

            通過(guò)分壓電路與二極管進(jìn)行濾波,負(fù)半周信號(hào)將被二極管濾除。由于10 MΩ的電阻分壓,使得輸出電平在1  V左右。經(jīng)過(guò)測(cè)試,USB狀態(tài)輸入引腳需要1.6 V以上才認(rèn)為輸入信號(hào)為邏輯1,而低于1.6 V的將被認(rèn)為是邏輯0。

            摘機(jī)輸入信號(hào)為正弦波,通過(guò)整流濾波電路后,能輸出2.6 V左右的電平信號(hào)給USB設(shè)備,信號(hào)為穩(wěn)定的邏輯1。

            掛機(jī)信號(hào)為負(fù)值的正弦波,通過(guò)整流濾波電路后,能輸出260 mV的電平信號(hào)給USB設(shè)備,信號(hào)為穩(wěn)定的邏輯0。

          4  USB傳輸模塊設(shè)計(jì)

            USB傳輸模塊使用作為傳輸接口,如圖6所示。使用此模塊的好處是,它為并串轉(zhuǎn)換的傳輸模塊,而且有4位控制信號(hào)輸入和4位控制信號(hào)輸出,并提供了DLL庫(kù)文件,為二次開發(fā)提供了方便;但是此設(shè)備并沒(méi)有使用中斷控制方式,因此讀取數(shù)據(jù)將是本系統(tǒng)的瓶頸。然而在本系統(tǒng)內(nèi)并未用到大量的數(shù)據(jù)采集,數(shù)據(jù)長(zhǎng)度僅僅為26位,即使為其他長(zhǎng)度的復(fù)合來(lái)電顯示數(shù)據(jù)包,長(zhǎng)度也不會(huì)大于1 000位,所以是否為高速傳輸在此并不重要。本系統(tǒng)使用USB的原因在于,USB的簡(jiǎn)單易用和支持熱插拔,這對(duì)于使用RS232通信口的設(shè)備較有優(yōu)勢(shì);另外USB使用5 V電源,可以為外接設(shè)備提供電源,節(jié)省了外接設(shè)備的電源部分,從而減小了外接設(shè)備的體積。


          圖6  USB傳輸模塊電路原理



          圖7  程序算法流程圖

            在DLL中需要建立USB_CID函數(shù),無(wú)參數(shù),直接返回處理后的來(lái)電數(shù)據(jù)包中的來(lái)電號(hào)碼,而且在無(wú)號(hào)碼時(shí)將相應(yīng)的錯(cuò)誤代碼返回。在此要注意的是,雖然單片機(jī)程序?yàn)榭勺冮L(zhǎng)度存儲(chǔ),但依然有錯(cuò)誤產(chǎn)生,原因是來(lái)電顯示數(shù)據(jù)包的發(fā)送。當(dāng)一次來(lái)電時(shí),數(shù)據(jù)包會(huì)在第一和第二振鈴間,如果呼叫者掛斷電話,那么來(lái)電數(shù)據(jù)包將不再發(fā)送;或者被叫者拿起電話也將丟失來(lái)電數(shù)據(jù)包,那么來(lái)電包將被存儲(chǔ)一部分,單片機(jī)在不重啟的情況下將繼續(xù)等待接收。當(dāng)下一個(gè)來(lái)電到達(dá)時(shí),這個(gè)新的來(lái)電數(shù)據(jù)包將被繼續(xù)存儲(chǔ),直到滿足第一個(gè)來(lái)電數(shù)據(jù)包的長(zhǎng)度時(shí),才結(jié)束接收,那么整個(gè)數(shù)據(jù)包將被接口程序獲取并判斷是否出錯(cuò)。如果是復(fù)合包,那么在來(lái)電號(hào)碼數(shù)據(jù)包前出錯(cuò)的情況將被排除,但是如果在來(lái)電數(shù)據(jù)號(hào)碼數(shù)據(jù)包內(nèi)出錯(cuò),那么接收到的號(hào)碼將被發(fā)送,顯示的可能是亂碼,其算法流程如圖7所示。表 1給出了狀態(tài)字的定義。

          表1  狀態(tài)字定義

          5  結(jié)論

            信息電話設(shè)計(jì),是來(lái)電顯示電話與計(jì)算機(jī)的接口和相關(guān)的數(shù)據(jù)采集系統(tǒng),是運(yùn)用接口技術(shù)、計(jì)算機(jī)軟件技術(shù)實(shí)現(xiàn)來(lái)電號(hào)碼等相關(guān)信息在計(jì)算機(jī)上的顯示或存儲(chǔ),并可以根據(jù)基本信息進(jìn)行來(lái)電號(hào)碼的分類統(tǒng)計(jì)。這些數(shù)據(jù)對(duì)相關(guān)部門服務(wù)質(zhì)量和效率的提高將起到重要的作用,同時(shí)還可以為相關(guān)決策部門及時(shí)提供參考信息。

            本裝置完成數(shù)據(jù)采集和數(shù)據(jù)傳送,而且通過(guò)軟件接口完成對(duì)相關(guān)數(shù)據(jù)的分離。詳細(xì)地研究了來(lái)電顯示技術(shù),單片機(jī)程序編制和使用VC++編寫DLL。本裝置不但可以嵌入到電話內(nèi),還可以作為單一的模塊來(lái)使用,所以該系統(tǒng)有廣泛的實(shí)用價(jià)值。

          參考文獻(xiàn)

          [1]  常波,朱全銀. 來(lái)電顯示電話機(jī)數(shù)據(jù)采集與處理[J].陜西理工學(xué)院學(xué)報(bào),2007,23(3): 11-14.
          [2]  王辛之,鐘愛(ài)琴,王雷,等.AT89系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004.
          [3]  尹勇,王洪成.單片機(jī)開發(fā)環(huán)境μVision2使用指南及USB固件編程與調(diào)試[M]. 北京:北京航空航天大學(xué)出版社,2004.
          [4]  陳啟美,丁傳鎖.計(jì)算機(jī)USB接口技術(shù)[M].南京:南京大學(xué)出版社,2003.
          [5]  馬偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004.
          [6]  Gary Legg.Usb Goes Wireless[OL].http://www.techonline.com/community/tech_topic/Bluetooth/37308,2004.
          [7]  Bellcore Caller ID specification[OL].http://www.epanorama.net,1991.
          [8]  如何用單片機(jī)實(shí)現(xiàn)來(lái)電顯示解碼[OL].http://www.softexam.cn/tech/catasecond.asp?catalogf=4&catalogs=15.

          朱全銀(副教授),主要研究方向?yàn)樾畔⒓夹g(shù)研究與應(yīng)用。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();