以MCS51為內核構造的單片集成系統(tǒng)
2.1 數(shù)據(jù)截取
根據(jù)抽樣速率和DTMG占空比及持續(xù)時間,可以對接收的數(shù)據(jù)進行截斷。根據(jù)FFT的要求,前后兩段數(shù)據(jù)之間應該有一定長度的公共部分。計算出截新的數(shù)據(jù)幀的長度為128字。為了減少面積,我們比較了幾個方案。在不會出現(xiàn)溢出的情況下,最后采取了圖4所示的設計方案。 數(shù)據(jù)讀取時,為了保證每次數(shù)據(jù)讀取時與前后兩段都有32字的公共部分,第一次從讀數(shù)據(jù)段1中讀出160字的數(shù)據(jù),其前32字的數(shù)據(jù)為上一幀數(shù)據(jù)的最后32字的數(shù)據(jù);下一次在讀數(shù)據(jù)段2中讀出160字的數(shù)據(jù),然后兩個數(shù)據(jù)段讀出數(shù)據(jù)前后之間都有32字的共有數(shù)據(jù)。 2.2 DTMF解碼 對于DTMF解碼中用到的FFT,我們采用經典的Goertzel算法。其思想是利用簡單的遞歸運算代替復雜的FFT運算,且只需要計算幾個頻率占上的值,大大簡化了計算量,通過比較幾個頻率點上數(shù)值的大小和判斷占空時間,就可確定發(fā)送的DTMG頻率組合。為了減少設計中用到的乘法驗證,在滿足通信標準的前提下,將寬度降到12位。Goertzel算法的計算公式如下: 結語 該系統(tǒng)是一個典型的以MCS51為核心。加、DTMG以及門控時鐘等外圍電路組成的控制系統(tǒng)。我們采用自頂向下的設計方法。系統(tǒng)中所有功能模塊均采用VHDL語言進行描述;用FPGA實現(xiàn)的集成系統(tǒng)替換原來的系統(tǒng)通過了功能測試。不但在可靠性上得到了提高,而且滿足芯片面積的要求,達到降低成本的目的。
數(shù)據(jù)截取由一個256字的雙口RAM完成。復位時,對前32字清零。A/D采樣的數(shù)據(jù)幀先放到寫數(shù)據(jù)段1中,再放到寫數(shù)據(jù)段2中,按照寫數(shù)據(jù)段1和寫數(shù)據(jù)段2交替寫入數(shù)據(jù)。在每次寫完一個數(shù)據(jù)段之后,產生一個數(shù)據(jù)改變脈沖。用來表明已完成1幀數(shù)據(jù),可以進行數(shù)據(jù)讀取,從而啟動數(shù)據(jù)讀取操作。
評論