曾舒雅,黃 成,范 龍,張 卅
(江蘇理工學院電氣信息工程學院,江蘇 常州 213001)
近年來隨著DSP或FPGA技術的飛速發展,嵌入式語音處理系統中也越來越多的使用了FPGA芯片。語音信號的數字化主要利用A/D、D/A轉換芯片完成,還可以采用專用PCM編解碼芯片實現[1-3]。本文介紹一種利用FPGA實現PCM編解碼芯片接口的設計方案,針對PCM編解碼芯片MC14LC5480設計FPGA接口電路,同時引入紅外發射和接收電路,實現語音信號的實時無線傳輸。
本文設計的PCM編解碼芯片接口主要應用于紅外無線語音傳輸系統。系統采用“FPGA+音頻編解碼芯片”的硬件結構。FPGA主要采用Altera公司的低成本CycloneII系列芯片EP2C8Q208C8;音頻編解碼芯片采用Motorola公司的MC14LC5480,主要用于對語音信號的A/D、D/A轉換,可實現8位單聲道語音信號的PCM編解碼,該芯片具有低功耗、低噪聲等特點,片內全差分模擬電路設計,集成發送帶通濾波器和接收低通濾波器,具有RC預/后濾波器,μ/A律可選[2]①。系統硬件結構框圖如圖1所示。
在發送端,語音信號源提供相應的語音信號,通過語音PCM編碼芯片MC14LC5480將模擬的語音信號轉換為數字信號形成PCM編碼格式,產生數據幀同步信號FST、位時鐘信號BCLKT、語音數據信號DT,經FPGA加入同步頭,最后將每一個編碼信號前加同步頭傳輸到紅外線發送電路,通過發送電路將語音數據DT”發送出去。為了保證數字化傳輸的同步,需要在PCM編碼格式中加入同步頭,本文采用固定同步頭的方式,即采用巴克碼序列信號“01110010”。發送端采用有源晶振產生2.048MHz的主時鐘信號,供給FPGA和MC14LC5480,通過FPGA產生128 kHz和8kHz位同步時鐘和幀同步時鐘供給MC14LC5480。
接收端通過S5821高速紅外接收管接收到數據[5],送到接收端FPGA通過數字鎖相環PLL恢復128 kHz的位時鐘、8kHz的幀同步時鐘,通過分頻產生2.048MHz的主時鐘信號;同時將幀同步頭從數據信號中去除。然后將三路時鐘及數據信號送到PCM語音編解碼芯片MC14LC5480解碼并轉換為模擬音頻信號,經耳機插孔送入耳機,另外一路接LM386功放電路驅動8歐姆揚聲器。

圖1 系統硬件結構框圖
加入同步頭的語音數據結構如圖2所示。將MC14LC5480接成長幀模式。MC14LC5480使用采樣率為8kHz,量化精度為8位時,其數據比特速率為64Kbps。圖2中發/收幀同步(FST/FSR)時鐘頻率固定為8kHz,發/收位同步(BCLKT/BCLKR)時鐘頻率可選擇為128kHz。由于采用單向紅外傳輸,僅傳送數據信號而不傳送時鐘信號。因此,在接收端需要產生幀同步時鐘和位時鐘,且發送端需要加入同步信號以解決數據信號自同步的問題,以保證數據的正確傳輸。一個周期內幀同步時鐘的高電平寬度等8個位同步時鐘周期,其上升沿驅動8位PCM語音數據的收/發,數據為8位;一個周期內幀同步時鐘的低電平寬度等8個位同步時鐘周期,對應數據幀同步頭“01110010”。

圖2 語音數據結構
發送端程序的總體結構如圖3所示。發送端程序流程如圖4所示。發送端程序包括三個底層模塊采用VHDL語言編寫,分別為:CNT4——巴克碼產生模塊;CNT25——分頻模塊,用來產生幀同步信號FST和位時鐘BCLKT;MUX21A——用來在語音數據信號中加入同步頭數據。頂層模塊采用原理圖設計,程序與硬件電路的接口如下:
·PCM 碼流輸入端DATAIN——DT輸入
·2.048MHz的時鐘信號輸入端MCLK——語音芯片時鐘MCLK
·加同步頭的PCM碼流輸出端PCM——DT輸出
·幀同步信號輸出端FST8K——FST
·位時鐘輸出端BCLK128K——BCLKT

圖3 發送端程序的總體結構

圖4 發送端程序流程

圖5 接收端程序流程
接收端程序流程如圖5所示。接收端程序的總體結構如圖6所示。接收端程序包括四個底層模塊采用VHDL語言編寫,分別為:ZONG——位時鐘鎖相環,用來產生位時鐘FSR;CNT25——分頻模塊,用來產生語音芯片時鐘;JianMaQi——用來在語音數據信號中檢測出同步頭數據,以便后續電路去除同步頭數據;ZHENGTONG——用來去除同步頭數據。頂層模塊采用原理圖設計,程序與硬件電路的接口如下:
·50MHz的時鐘信號輸入端CLK——主時鐘
·接收PCM碼流輸入端DATA——DR輸入
·2.048MHz的時鐘信號輸出端CLK2M——語音芯片時鐘輸出MCLK
·PCM 碼流輸出端DOUT——DR輸出
·幀同步信號輸出端FSR——FSR輸出
·位時鐘輸出端BCK——BCLKR

圖6 接收端程序的總體結構
利用QURATUS II軟件對上述程序進行波形仿真。輸入MCLK時鐘信號和DATAIN數據信號,由圖7可看出,在FST8K低電平處對應數據為“01110010”,在高電平處對應數據為DATAIN數據,和圖2語音數據結構基本一致,說明發送端程序可正常工作。

圖7 發送端波形
輸入CLK時鐘信號和DATA數據信號,由圖8可看出,在FSR低電平處對應數據為全“0”,在高電平處對應數據為DATA數據延遲一個周期,和圖2語音數據結構基本一致,說明接收端程序也可正常工作。

圖8 接收端波形
采用“FPGA+音頻編解碼芯片”的硬件結構設計一個數字語音通信系統,具備紅外通信模塊,可無線傳輸語音信號。使用硬件描述語言設計FPGA控制程序,采用原理圖和VHDL文本相結合的編程方式,直觀性好;通過軟件波形仿真,功能實現后再下載到FPGA硬件上,編程速度快,并且修改方便。實驗表明:該系統工作穩定,傳輸語音聽不出失真。增加大紅外發射功率或者使用光學透鏡系統,可增加發射接收距離。由于紅外線方式的最大優點是不受無線電干擾,這一方案可用于無線電干擾比較嚴重的場合實現遠程無線語音通信。
注釋:
①Motorola,Inc.Datasheet:MC14LC5480,1996.
[1]沈佐峰,陳曦.一種多路音頻編解碼系統的設計與實現[J].通信技術,2012,45(03):79-81.
[2]方子樵.用P89LPC932A1驅動PCM 語音芯片MC14LC5480[J].單片機與嵌入式系統應用,2007(11):41-43.
[3]王杰玉,杜煒,潘紅兵.基于FPGA的音頻編解碼芯片接口設計[J].現代電子技術,2009(5):179-181.
[4]錢敏,曹云鵬,章敏,等.基于FPGA/HDL的紅外遙控接收信號解碼器設計[J].通信技術,2009,42(08):219-221.