基于TMS320LF2407 DSP控制器語音模塊的設(shè)計與實現(xiàn)
何蘇勤 靳麗 摘要:本文著重介紹了dsp芯片的spi同步串行接口及spi與語音轉(zhuǎn)換芯片ad50的通信方式,給出了硬件電路設(shè)計。針對ad50的特點,軟件設(shè)計時通過dsp的spi口對其進(jìn)行初始化配置,使其正常工作。dsp在內(nèi)部對語音信號予以處理并通過ad50輸出。
關(guān)鍵字:數(shù)字信號處理器dsp同步串行接口spi語音模塊 ad50的初始化 1 引言
隨著信息技術(shù)和計算機(jī)技術(shù)的飛速發(fā)展,dsp技術(shù)也正以日新月異的速度應(yīng)用到國民經(jīng)濟(jì)的各個領(lǐng)域。
tms320lf240x系列dsp是美國德州儀器(ti)公司推出的一款16位定點數(shù)字信號處理器,它采用程序總線、數(shù)據(jù)總線分別獨立并具有多條總線的哈佛結(jié)構(gòu)體系,其數(shù)據(jù)和程序有各自獨立的存儲空間,這樣的結(jié)構(gòu)使數(shù)據(jù)吞吐率有很大提高;芯片內(nèi)部包含多個處理單元;16×16位硬件乘法器;廣泛采用深度流水線技術(shù),以及特有的dsp指令,使得取址、譯碼和處理可同時進(jìn)行,從而減少了指令執(zhí)行時間,增強(qiáng)了dsp的處理能力;具有強(qiáng)大的內(nèi)部事件管理器、10位a/d采樣功能、i/o端口等豐富的外設(shè)接口。因此 dsp適用于高速、實時性的數(shù)據(jù)處理應(yīng)用系統(tǒng)?! τ谀骋豢刂迫蝿?wù)可能需要多個dsp相互合作完成或dsp作為主控制器來控制其他外圍器件,這樣dsp就需要和其他控制器頻繁交換數(shù)據(jù),此時,我們可以通過spi口進(jìn)行器件之間的高速數(shù)據(jù)交換,這種通信方式比起通過串行通訊接口(sci)速度提高了近一倍。2. spi串行外設(shè)接口 dsp的串行外設(shè)接口(spi)是一個高速同步串行輸入/輸出(i/o)口,它能使可編程長度(1~16位)的串行位流以可編程的位傳輸速率輸入或輸出器件。spi口主要 通過4根線來完成通信[1],即:時鐘線(spiclk),主機(jī)輸出/從機(jī)輸入線(spisimo),主機(jī)輸入/從機(jī)輸出線(spisomi),spi從發(fā)送使能 。它主要用于主從式系統(tǒng)中,一個主控制器可以帶動幾個從器件,或者一個主控制器可以和幾個其他控制器構(gòu)成多機(jī)系統(tǒng),從器件的時鐘是由主機(jī)給出,主機(jī)通過從發(fā)送使能信號來使同一時刻只有一個從器件和主機(jī)交換數(shù)據(jù)。從器件只有在主機(jī)發(fā)送命令時才向主機(jī)傳送數(shù)據(jù)?! ∮捎趕pi接口是串行傳輸數(shù)據(jù),所以要求通信兩端的時序必須匹配。tms320lf2407的spi接口有4種時序,由芯片的spiclk寄存器的4種時鐘模式確定。這4種模式規(guī)定同步移出和移入數(shù)據(jù)位與時鐘上/下觸發(fā)沿及相位是否延遲的關(guān)系?! ∧J?――上升沿觸發(fā)無延時:上升沿發(fā)送數(shù)據(jù),緊接的下降沿接收數(shù)據(jù)。 模式1――上升沿觸發(fā)有延時:上升沿前半個周期和緊接的下降沿之間發(fā)送數(shù)據(jù),上升沿接收數(shù)據(jù)?! ∧J?――下降沿觸發(fā)無延時:下降沿發(fā)送數(shù)據(jù),緊接的上升沿接收數(shù)據(jù)?! ∧J?――下降沿觸發(fā)有延時:下降沿前半個周期和緊接的上升沿之間發(fā)送數(shù)據(jù),下降沿接收數(shù)據(jù)?! sp可以根據(jù)系統(tǒng)中與之通信的芯片的具體特點來選擇一個工作模式。3. 硬件電路設(shè)計 語音模塊的硬件電路設(shè)計必須保證語音信號輸出的實時性,這里我們采用ti dsp系列的tms320lf2407(以下簡稱2407),它高達(dá)30mips的處理能力足以滿足語音的實時要求。語音采集和輸出芯片采用的是tlc320ad50c[2] (以下簡稱ad50),它是一款單5v電源供電、16位a/d和d/a高分辨率的可編程信號轉(zhuǎn)換器。語音信號實時處理系統(tǒng)的主要功能是將話音通過mic輸入,然后經(jīng)過差分放大、模擬帶通濾波后,輸入ad50,經(jīng)采樣,將數(shù)據(jù)再送入dsp中進(jìn)行處理,最后再將處理完的語音數(shù)據(jù)經(jīng)dac,放大輸出,最后驅(qū)動喇叭發(fā)聲?! d50是差分器件,從mic輸入的信號vaudio經(jīng)集成運放后變?yōu)椴罘州斎?n*vaudio,在對模擬信號進(jìn)行數(shù)據(jù)采集以前,需要經(jīng)過帶通濾波器濾除帶外雜波。由于話音的頻率一般在3400hz以下,而工頻干擾一般為50hz左右。所以設(shè)計了通帶范圍為300hz~3400hz的帶通濾波器。該濾波器由兩級二階低通、兩級二階高通級聯(lián)組成,采用多級反饋形式,具有巴特沃斯(butterworth)帶內(nèi)平坦的特性,這樣可保證300~3400hz的語音信號不失真地通過濾波器,不僅濾除帶外的低頻信號,以減少帶外工頻等分量的干擾,還將濾除帶外的高次諧波,減少由于采樣引起的混疊失真?! ≡O(shè)計中ad50的功能實現(xiàn)是通過對其內(nèi)部的4個寄存器進(jìn)行編程來完成的,對這4個寄存器的訪問與其他一些接口電路有所不同,它不是通過地址線選通寄存器,而是通過串行輸入口(din)在二次通信的時刻將控制字輸入到ad50中,對4個寄存器進(jìn)行初始化。通過這種串行接口的初始化,可以達(dá)到對ad50進(jìn)行編程的目的,可編程的功能還包括:復(fù)位、掉電、通信協(xié)議、信號采樣率、增益控制等?! d50和dsp交換數(shù)據(jù)時,數(shù)據(jù)流和控制流在串行線上一位一位的傳輸,我們通過分時復(fù)用傳輸線即一次串行通信和請求二次串行通信的方法來分辨是數(shù)據(jù)流還是控制流。使一次通信