基于TMS320C6701的自適應(yīng)濾波器設(shè)計與調(diào)試
2.3 硬件結(jié)構(gòu)與原理
本電路采用2片C6701,電路結(jié)構(gòu)如圖3所示,3路信號為10位定點數(shù)據(jù)格式,拼成30位并行數(shù)據(jù)送到C6701的總線上,C6701將其讀到片內(nèi)RAM,利用移位指令分解為3個定點數(shù)。求權(quán)C6701必須把數(shù)據(jù)轉(zhuǎn)換成浮點數(shù),才能以較高的精度快速求出自適應(yīng)權(quán)。求權(quán)運算中要用到除法操作,浮點DSP進(jìn)行除法運算很方便。求權(quán)C6701將求得的權(quán)轉(zhuǎn)換為16位定點格式,寫到兩片C6701共用的RAM中,加權(quán)C6701按定點方式用自適應(yīng)權(quán)對3路數(shù)據(jù)加權(quán),對結(jié)果取16位,通過FIFO后送出。
系統(tǒng)時鐘為3 MHz,此時鐘將3路共30位數(shù)據(jù)以及I,Q標(biāo)志位共6701位數(shù)據(jù)送向C6701,兩片C6701利用互鎖信號XF0、XF1確保正確地從總線上讀取數(shù)據(jù),既不丟失,也不重復(fù)讀取,并根據(jù)數(shù)據(jù)的I,Q標(biāo)志區(qū)分復(fù)數(shù)據(jù)的實部和虛部,兩片C6701的操作如下:
(1)求權(quán)C6701用XF1和互鎖指令定期讀取一批數(shù)據(jù)作為樣本,求得自適應(yīng)權(quán),并化為16位定點數(shù)。
(2)求權(quán)C6701利用配置成通用輸出管腳的TCLK0、TCLK1向加權(quán)C6701先后提出INT0請求、HOLD請求。
(3)求權(quán)C6701取得兩片C6701的公共總線控制權(quán),利用地址線、數(shù)據(jù)線、讀寫R/W和STRB向公共RAM寫入自適應(yīng)權(quán),然后撤銷HOLD請求。
(4)加權(quán)C6701取得總線控制權(quán),從公共RAM中讀自適應(yīng)權(quán)。
(5)加權(quán)C6701進(jìn)行3路數(shù)據(jù)合成,把16位結(jié)果和I,Q標(biāo)志寫入FIFO;系統(tǒng)按數(shù)據(jù)時鐘從FIFO中取走數(shù)據(jù)。加權(quán)C6701一直進(jìn)行這樣的合成、寫FIFO操作,直到求權(quán)C6701下一次提出中斷、HOLD請求。
(6)在兩片C6701訪問公共RAM,以及加權(quán)C6701向FIFO寫數(shù)時,輸入緩沖器74F245上的三態(tài)使能是關(guān)閉的。
2.4 時序要求
C6701利用互鎖操作從數(shù)據(jù)線上正確讀數(shù)是關(guān)鍵,數(shù)據(jù)時鐘的占空比是50%,將它與C6701的XF1(設(shè)定為輸入)相連,C6701通過互鎖指令保證讀數(shù)操作與數(shù)據(jù)時鐘準(zhǔn)確同步,同時加權(quán)C6701還要完成多次乘加運算和FIFO寫數(shù)操作,這要求在硬件時序給定的情況下,C6701利用軟件指令的優(yōu)化排列來保證處理的正確性和高效性,其同步和運算、讀寫流程如圖4所示,當(dāng)C6701讀數(shù)、寫FIFO的時序與數(shù)據(jù)時鐘不合拍時,可以執(zhí)行指令執(zhí)行順序或增減空操作(NOP)指令。
3 軟硬件調(diào)試
將PC機(jī)通過仿真卡、電纜與C6701電路板上的仿真口接好,給電路板加電,運行仿真軟件,觀察C6701的寄存器、程序、數(shù)據(jù)內(nèi)容,因為有兩片C6701,用兩個仿真器調(diào)試更方便。軟硬件調(diào)試的工作主要是C6701與其他設(shè)備的握手、通信問題。求權(quán)C6701的主要調(diào)試過程是:
(1)調(diào)試互鎖讀數(shù)指令,若有信號源,即前端送來3路數(shù)據(jù)和相應(yīng)的時鐘且3路信號值已知或已測出的話,則令C6701全速運行讀取一段數(shù)據(jù),然后讓C6701停下來,觀察讀到的數(shù)據(jù)與送來的數(shù)據(jù)是否完全一致,若不一致,則逐步檢查;若沒有信號源,則利用示波器或邏輯分析儀來分析波形,C6701進(jìn)行互鎖讀時,就會將XF0置低,觀察XF0與XF1(數(shù)據(jù)時鐘)以及STRB信號的波形,可以看出同步互鎖的時序配合,若達(dá)不到要求,則要修改C6701程序,還應(yīng)注意C6701讀數(shù)時刻(STRB上升沿)是否臨近數(shù)據(jù)轉(zhuǎn)換沿。
(2)向RAM寫自適應(yīng)權(quán):利用仿真器直接察看RAM中內(nèi)容是否正確寫入,或者將寫入的權(quán)再從RAM讀回后比較,以次驗證存儲器總線操作。
4 程序固化
軟硬件調(diào)試符合要求后,就可以將程序固化到RAM中。求權(quán)C6701的程序代碼固化在EPROM地址1000H開始的區(qū)間,加權(quán)C6701的程序代碼固化在EPROM地址8000H開始的區(qū)間,求權(quán)C6701是標(biāo)準(zhǔn)的8位ROM引導(dǎo)方式,而加權(quán)C6701是串行口引導(dǎo)方式,其程序頭與求權(quán)C6701代碼的程序頭一樣,加權(quán)C6701的32位代碼事先按先低字節(jié),后高字節(jié)的順序轉(zhuǎn)換成8位代碼。
求權(quán)C6701的代碼在上電復(fù)位后自動裝入片內(nèi)RAM,求權(quán)C6701引導(dǎo)成功后要通過串口向加權(quán)C6701發(fā)送加權(quán)C6701的代碼,求權(quán)C6701總共向加權(quán)C6701發(fā)送N+2個32字。
在程序固化后,再檢驗電路板的工作是否正確,可通過C6701的IACK等管腳連到的發(fā)光二極管閃爍來表明DSP程序已經(jīng)正確引導(dǎo)并正常運行,在C6701的程序中應(yīng)加入IACK指令,C6701全速工作時定期在IACK管腳上輸出一個負(fù)脈沖。
5 結(jié) 語
DSP器件已經(jīng)應(yīng)用于很多領(lǐng)域,用其構(gòu)成的自適應(yīng)濾波器,也得到了廣泛應(yīng)用,本文提出的這種特殊結(jié)構(gòu)的自適應(yīng)濾波器,由于有較好的實時性和濾波效果,應(yīng)該有較好的應(yīng)用前景。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論