音頻交換混合矩陣設(shè)計(jì)與實(shí)現(xiàn)
2. 3 FPGA及其程序設(shè)計(jì)
FPGA內(nèi)部包含串/并轉(zhuǎn)換、交換矩陣、混合、并/串轉(zhuǎn)換、時(shí)鐘模塊和矩陣控制模塊,其內(nèi)部模塊框圖如圖4 所示。FPGA 選用Altera的EP2C35 芯片,其具體參數(shù)見文獻(xiàn)。
2. 3. 1 時(shí)鐘模塊
時(shí)鐘模塊的功能是為串/并、并/串轉(zhuǎn)換模塊提供統(tǒng)一的全局時(shí)鐘。系統(tǒng)需要的時(shí)鐘信號(hào)有三種,分別是:系統(tǒng)時(shí)鐘( SCK) 、位時(shí)鐘(BCK)和聲道時(shí)鐘(LRCK) ,各時(shí)鐘頻率由采樣頻率( fS )決定:
圖4 FPGA內(nèi)部模塊框圖。
本系統(tǒng)中,采樣頻率fS 為97. 7 kHz,通過一個(gè)50MHz的外部時(shí)鐘信號(hào)分頻產(chǎn)生上述各個(gè)時(shí)鐘。
在模塊內(nèi)建立一個(gè)9 bit累加計(jì)數(shù)器Q,在時(shí)鐘信號(hào)的上升沿完成一個(gè)遞增計(jì)數(shù), 當(dāng)數(shù)值計(jì)到滿值111111111時(shí), 在下一個(gè)時(shí)鐘周期將Q 置0。將XCLK、BCK、LRCK輸出分別連接到計(jì)數(shù)輸出的第0、第2和第8位,并將第3 - 第7位合并成另一個(gè)計(jì)數(shù)輸出S_Count,用于控制串- 并和并- 串轉(zhuǎn)換的位計(jì)數(shù)。所以,實(shí)際生成的fSCK為25 MHz, fBCK為6. 25MHz, fLRCK和fS 為97. 7 kHz。
2. 3. 2 輸入串/并轉(zhuǎn)換模塊
該模塊負(fù)責(zé)將PCM4204輸入的串行PCM編碼轉(zhuǎn)換為并行數(shù)據(jù),送入交換矩陣模塊進(jìn)行處理。模塊內(nèi)部建立通過一個(gè)32 bit移位寄存器( S_Buf) ,用來存儲(chǔ)串行數(shù)據(jù),根據(jù)聲道時(shí)鐘(LRCK)的動(dòng)作來控制并行輸出。串/并轉(zhuǎn)換流程如圖5所示。
圖5 串/并轉(zhuǎn)換流程圖。
2. 3. 3 矩陣控制模塊
該模塊的功能為:接收外部控制單元的命令,控制矩陣實(shí)現(xiàn)轉(zhuǎn)接操作。FPGA保留10個(gè)GP IO作為使能控制端口,定義為表1。
表1 矩陣控制端口定義
模塊的輸出是16組16 bit并行數(shù)據(jù),形成一個(gè)矩陣表。其中,每組數(shù)據(jù)代表輸出端口,該組中的每個(gè)bit代表對(duì)應(yīng)的輸入端口,表中的元素代表相應(yīng)的輸入與輸出之間的連接關(guān)系, 0表示斷開, 1表示連接。
使用時(shí),先選擇需要進(jìn)行操作的輸入和輸出端口以及操作狀態(tài),然后向EN輸入高電平,觸發(fā)控制電路進(jìn)行工作,將選擇的輸入與輸出信號(hào)相連接或斷開。
2. 3. 4 混合模塊
該模塊由數(shù)據(jù)緩沖寄存器(AdderBuf)和加法器(Adder)兩部分組成。數(shù)據(jù)緩沖寄存器讀取控制端口( Sel)的狀態(tài),然后判斷各個(gè)輸入是否有效,即是否送入到輸出端口。若某輸入端口有效,則將該端口數(shù)據(jù)直接送入加法器;若無效則送出數(shù)據(jù)0。
2. 3. 5 交換矩陣模塊
交換矩陣的工作原理是一個(gè)16轉(zhuǎn)256的分配器,將每一路輸入分配為16路,分別送入每一路輸出的混合模塊中。其結(jié)構(gòu)如圖6所示。
圖6 交換矩陣模塊結(jié)構(gòu)圖。
2. 3. 6 輸出并/串轉(zhuǎn)換模塊
該模塊負(fù)責(zé)將混合模塊輸出的24 bit并并行數(shù)據(jù)轉(zhuǎn)化為PCM1681能夠接收的串行PCM編碼。數(shù)據(jù)傳輸格式與PCM4204相同。模塊內(nèi)部建立一個(gè)24 bit移位寄存器,用來產(chǎn)生串行輸出,根據(jù)聲道時(shí)鐘(LRCK)的動(dòng)作判斷讀取并行輸入。并/串轉(zhuǎn)換流程如圖7所示。
圖7 并/串轉(zhuǎn)換流程圖。
3 系統(tǒng)仿真及實(shí)現(xiàn)
3. 1 系統(tǒng)仿真
FPGA總體端口及模塊框圖如圖8所示。
圖8 FPGA總體端口及模塊框圖。
由時(shí)鐘輸入端(CLK)輸入50 MHz時(shí)鐘信號(hào);在交換控制端口送入控制信號(hào),使In_0與Out_0相連, In_1與Out_1相連, ……, In_7與Out_7相連,控制信號(hào)輸入如圖9所示。
圖9 控制信號(hào)輸入。
評(píng)論