信息電話機關鍵模塊的研究與應用
2 信號采集模塊方案設計
本文引用地址:http://butianyuan.cn/article/87724.htm作為對輸出數據的研究,經由MC14LC5447解調后的信號為異步串行信號,而且數據速率為1 200 bps,可使用單片機的串口模式1來進行數據接收,算法請見參考文獻[1]。單片機除了進行數據采集,將串行數據包解包外,還將數據復原。
主中斷程序大部分都在循環(huán)等待串口程序的中斷響應,首先需要接收的是來電顯示包的長度字段,接收到長度字段的好處就在于可以動態(tài)地接收來電數據包,而不必每次都等待接收固定的長度。雖然來電顯示包長度不可能大于某個固定長度,但根據來電數據包的長度字段,動態(tài)接收數據,使采集的數據更容易處理,而且位于數據包尾的干擾信號也可以再次濾除,從而減輕其他程序的負荷。
當然,在此也可以通過單片機將數據分離出來并進行處理,但為了包的可分析性,單片機除了數據采集外,不做其他的工作。
某一次獲取的數據如下:
圖4 數據采集模塊原理
圖4給出了數據采集模塊的原理,MC14LC5447的DOC信號輸出連接到AT89C2051的第2引腳處(串行輸入端口);MC14LC5447的RDO信號輸出連接到AT89C2051的第6引腳處(AT89C2051的外部中斷0);AT89C2051的第9引腳連接到MC14LC5447的第7引腳(PWRUP),來控制MC14LC5447的開與關。AT89C2051第7引腳連接到USB設備狀態(tài)輸出口,第1 引腳也連接到USB設備的狀態(tài)輸出口,第11引腳連接到USB設備的狀態(tài)輸入口,數據線連接到USB設備的并行數據輸入口。其中第12、第13引腳需要外接上拉電阻。
利用單片機實現的方案較數字邏輯電路的方案有許多優(yōu)點。主要有出錯幾率小,有存儲控制功能,方便,更換靈活等。
利用存儲轉發(fā)方案提高了數據傳輸的安全性。由于USB203無USB的中斷功能,所以接收數據只能用程序循環(huán)的方式來實現,但不恰當地使用循環(huán)會增加系統(tǒng)的負擔。
3 電話信號處理模塊設計
摘掛機信號可以由電話機叉簧線路取得。
經過檢測,叉簧上共有兩路信號: 一路為22~27 V的正弦波信號,位于叉簧第5、6引腳;另一路為15~20 V的負正弦波信號,位于叉簧第3、4引腳。第1、2引腳為信號輸出。當叉簧上的彈片沒有被壓下時,第1、2引腳與第5、6引腳連通,信號為正交流信號,此時表示摘機;當掛機時,叉簧上的彈片被壓下,此時,第1、2引腳與第3、4引腳連通,第1、2引腳上的信號為負交流信號。將此信號轉換為邏輯0、1電平,即摘機時信號為邏輯1,掛機時信號為邏輯0,電路原理如圖5所示。
圖5 叉簧信號處理原理
通過分壓電路與二極管進行濾波,負半周信號將被二極管濾除。由于10 MΩ的電阻分壓,使得輸出電平在1 V左右。經過測試,USB狀態(tài)輸入引腳需要1.6 V以上才認為輸入信號為邏輯1,而低于1.6 V的將被認為是邏輯0。
摘機輸入信號為正弦波,通過整流濾波電路后,能輸出2.6 V左右的電平信號給USB設備,信號為穩(wěn)定的邏輯1。
掛機信號為負值的正弦波,通過整流濾波電路后,能輸出260 mV的電平信號給USB設備,信號為穩(wěn)定的邏輯0。
4 USB傳輸模塊設計
USB傳輸模塊使用USB203作為傳輸接口,如圖6所示。使用此模塊的好處是,它為并串轉換的傳輸模塊,而且有4位控制信號輸入和4位控制信號輸出,并提供了DLL庫文件,為二次開發(fā)提供了方便;但是此設備并沒有使用中斷控制方式,因此讀取數據將是本系統(tǒng)的瓶頸。然而在本系統(tǒng)內并未用到大量的數據采集,數據長度僅僅為26位,即使為其他長度的復合來電顯示數據包,長度也不會大于1 000位,所以是否為高速傳輸在此并不重要。本系統(tǒng)使用USB的原因在于,USB的簡單易用和支持熱插拔,這對于使用RS232通信口的設備較有優(yōu)勢;另外USB使用5 V電源,可以為外接設備提供電源,節(jié)省了外接設備的電源部分,從而減小了外接設備的體積。
圖6 USB傳輸模塊電路原理
圖7 USB接口程序算法流程圖
在DLL中需要建立USB_CID函數,無參數,直接返回處理后的來電數據包中的來電號碼,而且在無號碼時將相應的錯誤代碼返回。在此要注意的是,雖然單片機程序為可變長度存儲,但依然有錯誤產生,原因是來電顯示數據包的發(fā)送。當一次來電時,數據包會在第一和第二振鈴間,如果呼叫者掛斷電話,那么來電數據包將不再發(fā)送;或者被叫者拿起電話也將丟失來電數據包,那么來電包將被存儲一部分,單片機在不重啟的情況下將繼續(xù)等待接收。當下一個來電到達時,這個新的來電數據包將被繼續(xù)存儲,直到滿足第一個來電數據包的長度時,才結束接收,那么整個數據包將被接口程序獲取并判斷是否出錯。如果是復合包,那么在來電號碼數據包前出錯的情況將被排除,但是如果在來電數據號碼數據包內出錯,那么接收到的號碼將被發(fā)送,顯示的可能是亂碼,其算法流程如圖7所示。表 1給出了狀態(tài)字的定義。
表1 狀態(tài)字定義
5 結論
信息電話USB接口設計,是來電顯示電話與計算機的接口和相關的數據采集系統(tǒng),是運用接口技術、計算機軟件技術實現來電號碼等相關信息在計算機上的顯示或存儲,并可以根據基本信息進行來電號碼的分類統(tǒng)計。這些數據對相關部門服務質量和效率的提高將起到重要的作用,同時還可以為相關決策部門及時提供參考信息。
本裝置完成數據采集和數據傳送,而且通過軟件接口完成對相關數據的分離。詳細地研究了來電顯示技術,單片機程序編制和使用VC++編寫DLL。本裝置不但可以嵌入到電話內,還可以作為單一的模塊來使用,所以該系統(tǒng)有廣泛的實用價值。
參考文獻
[1] 常波,朱全銀. 來電顯示電話機USB接口數據采集與處理[J].陜西理工學院學報,2007,23(3): 11-14.
[2] 王辛之,鐘愛琴,王雷,等.AT89系列單片機原理與接口技術[M].北京:北京航空航天大學出版社,2004.
[3] 尹勇,王洪成.單片機開發(fā)環(huán)境μVision2使用指南及USB固件編程與調試[M]. 北京:北京航空航天大學出版社,2004.
[4] 陳啟美,丁傳鎖.計算機USB接口技術[M].南京:南京大學出版社,2003.
[5] 馬偉.計算機USB系統(tǒng)原理及其主/從機設計[M].北京:北京航空航天大學出版社,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] 如何用單片機實現FSK來電顯示解碼[OL].http://www.softexam.cn/tech/catasecond.asp?catalogf=4&catalogs=15.
朱全銀(副教授),主要研究方向為信息技術研究與應用。
評論