新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > TMS320C5402實現16路全雙工來電顯示

        TMS320C5402實現16路全雙工來電顯示

        作者: 時間:2006-05-07 來源:網絡 收藏

        摘要:按照v.23建議、利用TMS320C5402實現16路全雙工來電顯示的原理、算法分析及軟硬件設計。該系統已在深圳市鼎銘電子有限公司開發成功,并投入了使用。

        本文引用地址:http://www.104case.com/article/242330.htm

        關鍵詞:來電顯示(Caller ID Detection0) 器() 頻移鍵控(FSK)

        來電顯示并非電話必須具備的功能,它可以作為附加功能有償提供給用戶。目前,實際來電顯示的方法很多,但隨著集成電路和的飛速發展,利用實現來電顯示具有成本低、可靠性高、軟硬件設計簡單、可維護性強等特點。TI公司的TMS320C5X系列特別適用于通信領域。本文主要介紹利用TMS320C5402實現符合v.23建議[1]的16路全雙工來電顯示。另外,此方案略作修改還可符合bell202建議。

        1 基本原理及算法設計

        v.23的波特率為1200Baud,調制方式為2FSK,發送1時載波頻率為F1=1300Hz,發送0時載波頻率為F0=2100Hz。采用FSK調制方式的主要優點是:①無需載波恢復,大大降低了系統復雜度。②對幅度的非線性抗干擾能力強。因為FSK信號為恒包絡信號,其信息完全包含在信號的過零點上,所以比起AM信號,其對幅度非線性抗干擾能力要強。③調制解調易用軟硬件實現,簡單易懂。其最大的缺點就是頻率利用率低。因為電話的頻帶范圍為300~3400Hz,因此利用FSK調制方式僅適用于中低速通信。由于v.23波特率為1200Baud,采用2FSK調制方式,所以其比特率為1200bps,但完全可選用于來電顯示。

        為了以下敘述方便,在此先給出FSK系統的原理框圖,如圖1所示。

        整個系統的核心是FSK的算法設計。從圖1可以看出,關鍵幾步為:①調制,即如何實現任意頻率的正弦波發生器。②濾波器設計包括發送濾波器和接收端的低通濾波器。這一步相對來說比較簡單,可以利用MATLAB軟件來計算其系數,只要給出要求的截止頻率等參數即可,這大大減輕了我們的工作。③解調方法使用延遲相乘法,其延遲步數k的選擇是整個系統的關鍵。④同步可使用鎖相環來實現,這可以參考大多數文獻的鎖相環實現方法。為此,在討論中我們著重突出第①、③兩步。

        1.1 調制部分

        調制就是把數字信號變成適合于信道傳輸的正弦波。在此利用查表法[2]來產生正弦波。因為TMS320C5402中包含一個N=256點的Q15正弦表。相位Ψi在[0,2π]上均勻分布:Ψi=2iπ/N i∈[0,N-1]。假設sin_addr為正弦表首地址,則sin(Ψi)的地址是sin)addr+i。

        調制信號可表示為:x(t)=Asin(2πFt)=Asinφ(t)),F={F0,F1}。設Te為抽樣間隔,則當t=nTe時,φ(nTe)=φn=2πFnTe=φn-1+2πFTe

        φn=(φn-1+ΔφF)MOD2π

        ΔφF=2πFTeπ (由仙農定理知:1/Te≥2F)

        φn的取??衫枚M制補碼的循環性實現。在程序中,φn以16位有符號整數In表示:In=2 15φn/π-2 15。例如,當φn=0時,In=-2 15;當φn=π時,In=0;當φn=2π時,In=2 15,超出了表示范圍,變成-2 15,這樣便起到了取模的作用。

        由In確定i方法為:i=In/(2 16/N)+N/2,其中2 16/N為正弦表相鄰兩點的相位差值,相應的ΔI=2 15ΔφF/π2 16FT。

        假設絕對幅度誤差為dx,則AsinΔφF2dx

        Asin(2π/N)2dx

        A2π/N2dx即N>Aπ/dx

        這就是對正弦表大小的要求。反過來,如果給定N,則對信號幅度提出了限定。

        對于v.23,比特率為1200bps,而采樣率一般為8000Hz,每個比特的采樣點數為8000/1200=20/3,不為整數。為了處理方便,調制時可以提高采樣率使其為24kbps,則每個比特采樣點數為20。但注意,發送到線路上的信號采樣率仍為8000Hz,可用程序的簡單循環控制實現。按照這種處理辦法,當發送比特1時,ΔI=2 16F1Te=2 16×1300×1/(8000×3)=3550;當發送比特0時,ΔI=2 16F0Te=2 16×2100×1/(8000×3)=5734

        1.2 解調部分

        在圖1中,k一定要小于每個比特的采樣數,此例k6。假設接收到的樣值s(n)和s(n-k)屬于同一個比特,則:

        v(n)=s(n)s(n-k)=A2sin(2πFnTe)sin(2πF(n-k)Te)

        =A2/2[cos(2πFkTe]-cos(4πFnTe-2πFkTe)

        通過低通濾波器后,r(n)=A 2/2cos(2πFkTe)F={F0,F1}

        由此可見,r(n)為常數,A 2/2cos(2πFkTe)或A 2/2cos(2πF1kTe),僅依賴于發送比特是0還是1。

        k的選擇應使d(k)=|cos(2πF0kTe)-cos(2πF1kTe)|最大。在此方案中,k=4。

        由于v.23的比特率為1200bps,因此低通濾波器fcutoff=1200Hz。

        2 DSP設計

        TMS320C5402是一款高性價比的器[3~4]。片上有可編程等待狀態發生器和塊切換寄存器、兩個多通道增強型緩沖串口(McBsp)、一個增強型的8位并行主機接口(HPI8)、兩個16位定時器、一個六通道DMA控制器。TMS320C5402還有4K×16bit片上ROM和4K×16bit片上RAM,最大可尋址1M×16bit的存儲空間。片上ROM的保留區域對用戶來說是不可用的,原因是用戶無法寫入數據。片上ROM包括為Bootloader保留的區域及A律表、μ律表、sin表和中斷向量表。TMS320C5402有內部振蕩器構成的內部時鐘源和鎖相環時鐘發生器構成的外部時鐘源。

        系統初始化工作頻率為100MHz,對片上存儲器訪問無需等待狀態,訪問外部I/O空間設為兩個等待狀態。

        在本系統中,采用McBsp0、DMA0、DMA4。DMA0的同步事件為McBsp0的接收事件REVT0;源地址指向DRR,并固定不變;目的地址指向DMA接收緩沖區,每次自增1;采用ABU模式實現雙緩沖,DMA0接收緩沖區半滿或全滿時發生中斷;中斷服務子程序對其中剛引起中斷的那一半數據進行解調,而此時接收的數據順序放到另一半。為了節省存儲空間,串口不對接收數據進行擴張,而在程序中進行軟件擴張。DMA4的同步事件為McBsp0的發送事件XEVT0;源地址指向DMA發送緩沖區,每次自增1;目的地址指向DXR,并固定不變;采用ABU模式實現雙緩沖;DMA發送緩沖區半滿或全滿時發生中斷,中斷服務子程序發送剛引起中斷的那一半數據,而此時正在調制的數據順序放到另一半。因為線路上一般傳送的是A律數據,因此發送時要在串口中進行硬件壓縮。

        經仿真發現,采用C語言編程,TMS320C5402至少到以實現16路全雙工來電顯示,因此McBsp0應設置為:接收數據格式為每幀8字,每字16位(表示16路A律數據);發送數據格式為每幀16字,每字16位。為了減少串口錯誤指定由RSYNCERR和XSYNCERR產生RINT和XINT。

        另外還需注意,為了實現字同步,異步傳輸時首先對發送數據的每個字節加上起始位0和停止位1,解調手應去掉相應的起始位和停止位。在發送過程中,如果沒有待發數據,可以發送停止位(即頻率為F1的載波)或靜音(樣值為0)。

        利用TMS320C5402實現符合v.23建議的16路全雙工來電顯示,其原理簡單,易實現,但是抗干擾性較差。由于DTMF的某些頻率與v.23碼的載波頻率非常接近,如果混有DTMF碼,也可解出少量的DTMF碼。為了排除此類錯誤,需要加上增益控制、帶通濾波等,這使得設計變得復雜。實踐中,此類錯誤較少,除非特別要求,否則不必理會。

        為了進一步提高精度,可以用長整數表示相位,還可采用重采樣技術及局部FFT等技術[5]或者改進解調方法可實現高精度檢測。

        目前,此系統已在深圳市鼎銘電子有限公司開發成功并投入使用。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大新县| 斗六市| 恩平市| 博罗县| 寿阳县| 通山县| 乐业县| 平安县| 同德县| 河曲县| 德清县| 东阿县| 乐陵市| 乐山市| 忻城县| 古田县| 永康市| 九龙城区| 手游| 安宁市| 龙海市| 冀州市| 阳东县| 泽州县| 肥乡县| 新野县| 花莲县| 建瓯市| 沙河市| 闽清县| 潞西市| 紫云| 内乡县| 新竹县| 长春市| 江门市| 苍梧县| 墨脱县| 奎屯市| 忻州市| 葵青区|