dspC55xxch7 語(yǔ)音信號(hào)_第1頁(yè)
dspC55xxch7 語(yǔ)音信號(hào)_第2頁(yè)
dspC55xxch7 語(yǔ)音信號(hào)_第3頁(yè)
dspC55xxch7 語(yǔ)音信號(hào)_第4頁(yè)
dspC55xxch7 語(yǔ)音信號(hào)_第5頁(yè)
已閱讀5頁(yè),還剩112頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第7章章 基于基于DSP的的語(yǔ)音信號(hào)的采集和播放系統(tǒng)語(yǔ)音信號(hào)的采集和播放系統(tǒng) 在以在以DSP為核心的語(yǔ)音信號(hào)處理系統(tǒng)中,為核心的語(yǔ)音信號(hào)處理系統(tǒng)中,DSP要完要完成信號(hào)的采集運(yùn)算處理任務(wù),成信號(hào)的采集運(yùn)算處理任務(wù),A/D和和D/A完成語(yǔ)音信號(hào)完成語(yǔ)音信號(hào)的輸入和輸出。在以的輸入和輸出。在以TMS320VC5509A為核心的語(yǔ)音處為核心的語(yǔ)音處理系統(tǒng)中,采用了專為音頻處理應(yīng)用設(shè)計(jì)的編解碼器件理系統(tǒng)中,采用了專為音頻處理應(yīng)用設(shè)計(jì)的編解碼器件TLV320AIC23,來(lái)完成模擬語(yǔ)音信號(hào)的采樣和數(shù)字音頻,來(lái)完成模擬語(yǔ)音信號(hào)的采樣和數(shù)字音頻信號(hào)的信號(hào)的D/A轉(zhuǎn)換。利用轉(zhuǎn)換。利用TMS320VC5509A

2、片內(nèi)多通道緩片內(nèi)多通道緩沖串口(沖串口(McBSP),通過(guò)),通過(guò)I2C總線來(lái)對(duì)總線來(lái)對(duì)AIC23進(jìn)行控制進(jìn)行控制,從而實(shí)現(xiàn)具有較強(qiáng)功能的語(yǔ)音處理系統(tǒng)。,從而實(shí)現(xiàn)具有較強(qiáng)功能的語(yǔ)音處理系統(tǒng)。目 錄7.1 系統(tǒng)的總體設(shè)計(jì)系統(tǒng)的總體設(shè)計(jì)7.2 TLV320AIC23B與與TMS320VC5509A的的 接口設(shè)計(jì)接口設(shè)計(jì)7.3 DSP相關(guān)片上外設(shè)相關(guān)片上外設(shè) 7.3.1 I2C 7.3.2 McBSP7.4 軟件設(shè)計(jì)軟件設(shè)計(jì)7.5 系統(tǒng)展望系統(tǒng)展望 語(yǔ)音信號(hào)的采集和播放是語(yǔ)音信號(hào)處理的基語(yǔ)音信號(hào)的采集和播放是語(yǔ)音信號(hào)處理的基礎(chǔ),礎(chǔ),DSP是各種語(yǔ)音信號(hào)數(shù)字處理的平臺(tái)。是各種語(yǔ)音信號(hào)數(shù)字處理的平臺(tái)。

3、DSP通過(guò)控制語(yǔ)音信號(hào)的模數(shù)和數(shù)模轉(zhuǎn)換器采通過(guò)控制語(yǔ)音信號(hào)的模數(shù)和數(shù)模轉(zhuǎn)換器采集和播放語(yǔ)音信號(hào),再通過(guò)集和播放語(yǔ)音信號(hào),再通過(guò)DSP的數(shù)字信號(hào)處的數(shù)字信號(hào)處理實(shí)現(xiàn)各種語(yǔ)音信號(hào)處理的算法。理實(shí)現(xiàn)各種語(yǔ)音信號(hào)處理的算法。7.1 系統(tǒng)的總體設(shè)計(jì)系統(tǒng)兩大組成部分 音頻編解碼芯片音頻編解碼芯片 實(shí)現(xiàn)數(shù)模和模數(shù)轉(zhuǎn)換功能實(shí)現(xiàn)數(shù)模和模數(shù)轉(zhuǎn)換功能 DSP芯片芯片 控制音頻編解碼芯片采集和播放語(yǔ)音信號(hào),實(shí)現(xiàn)語(yǔ)音信號(hào)控制音頻編解碼芯片采集和播放語(yǔ)音信號(hào),實(shí)現(xiàn)語(yǔ)音信號(hào)的采集,然后將語(yǔ)音信號(hào)存儲(chǔ)到的采集,然后將語(yǔ)音信號(hào)存儲(chǔ)到DSP的內(nèi)部的內(nèi)部RAM中,最后中,最后實(shí)現(xiàn)語(yǔ)音信號(hào)的播放。實(shí)現(xiàn)語(yǔ)音信號(hào)的播放。系統(tǒng)硬件結(jié)構(gòu)框圖

4、系統(tǒng)硬件結(jié)構(gòu)框圖DSP芯片的選擇uDSP指標(biāo)指標(biāo) 處理速度、功耗、程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的容量、片內(nèi)處理速度、功耗、程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的容量、片內(nèi)的資源。的資源。uVC55xx系列特點(diǎn)系列特點(diǎn) 低功耗,適合個(gè)人與便攜式上網(wǎng)以及無(wú)線通信應(yīng)用低功耗,適合個(gè)人與便攜式上網(wǎng)以及無(wú)線通信應(yīng)用 。處。處理速度在理速度在80MIPS-400MIPS之間之間 。具有。具有MCBSP同步串口、同步串口、HPI并行接口、定時(shí)器、并行接口、定時(shí)器、DMA等外設(shè)等外設(shè) 。C55xx的指令長(zhǎng)度的指令長(zhǎng)度從從8-bit到到48-bit。這種長(zhǎng)度可變的指令可以使每個(gè)函數(shù)的。這種長(zhǎng)度可變的指令可以使每個(gè)函數(shù)的控制代碼量比

5、控制代碼量比C54x降低降低40 ,減少了存儲(chǔ)器的容量,降,減少了存儲(chǔ)器的容量,降低了成本。低了成本。(TMS320VC5509)7.2 TLV320AIC23與TMS320VC5509的接口設(shè)計(jì) 控制接口控制接口 DSP芯片通過(guò)控制接口向音頻處理芯片傳送配置參芯片通過(guò)控制接口向音頻處理芯片傳送配置參 數(shù),控制音頻處理芯片的工作狀態(tài)。數(shù),控制音頻處理芯片的工作狀態(tài)。 數(shù)字音頻接口數(shù)字音頻接口 通過(guò)該接口,音頻處理芯片將采集到的音頻數(shù)通過(guò)該接口,音頻處理芯片將采集到的音頻數(shù) 據(jù)傳據(jù)傳 給給DSP進(jìn)行處理,處理過(guò)后的音頻數(shù)據(jù)再由進(jìn)行處理,處理過(guò)后的音頻數(shù)據(jù)再由DSP通過(guò)該通過(guò)該 接口傳回給音頻處理

6、芯片,進(jìn)行數(shù)模轉(zhuǎn)換后播放出來(lái)接口傳回給音頻處理芯片,進(jìn)行數(shù)模轉(zhuǎn)換后播放出來(lái)。TLV320AIC23內(nèi)部結(jié)構(gòu)圖內(nèi)部結(jié)構(gòu)圖 AIC23與VC5509接口原理圖 J5J6J7J8I2C(主)(從)TLV320AIC23的控制接口接口模式 SPI或者或者I2C選擇理由 在設(shè)計(jì)中,若采用在設(shè)計(jì)中,若采用SPI總線,則需要多占用一個(gè)總線,則需要多占用一個(gè)McBSP)資源,但是很多時(shí)候)資源,但是很多時(shí)候DSP的的McBSP資源會(huì)比資源會(huì)比較緊張(比如需要跟近端較緊張(比如需要跟近端RS-232和遠(yuǎn)端和遠(yuǎn)端RS-485連接),連接),考慮到系統(tǒng)的可擴(kuò)展性,在設(shè)計(jì)中采用了通過(guò)考慮到系統(tǒng)的可擴(kuò)展性,在設(shè)計(jì)中采用

7、了通過(guò)I2C總線來(lái)總線來(lái)配置配置AIC23。MODE接口接口0I2C1SPII2C模式下的時(shí)序圖對(duì)接口原理圖的說(shuō)明 MODE接數(shù)字地 表示利用I2C控制接口對(duì)AIC23傳輸控制數(shù)據(jù),定義了I2C總線上AIC23的7bit外設(shè)地址“0011010”。 收發(fā)時(shí)鐘新信號(hào)CLKX1和CLKR1由AIC23的串行數(shù)據(jù)輸入時(shí)鐘BCLK提供,并由AIC23的幀同步信號(hào)LRCIN、LRCOUT啟動(dòng)串口數(shù)據(jù)傳輸。 DX1和DR1分別與AIC23的DIN和DOUT相連,從而完成DSP與AIC23間的數(shù)字信號(hào)通信。CS STATEADDRESS0001101010011011 AIC23通過(guò)麥克風(fēng)采樣模擬音頻信號(hào)或

8、直接輸入模擬音通過(guò)麥克風(fēng)采樣模擬音頻信號(hào)或直接輸入模擬音頻信號(hào),然后將其轉(zhuǎn)換為頻信號(hào),然后將其轉(zhuǎn)換為DSP可以處理的數(shù)字信號(hào)??梢蕴幚淼臄?shù)字信號(hào)。 當(dāng)當(dāng)DSP處理完后,再將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出處理完后,再將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出,用戶即可利用耳機(jī)或揚(yáng)聲器收聽(tīng)到高質(zhì)量的音頻信號(hào)。,用戶即可利用耳機(jī)或揚(yáng)聲器收聽(tīng)到高質(zhì)量的音頻信號(hào)。 5509A與與AIC23的硬件連接示意圖如下圖所示。的硬件連接示意圖如下圖所示。 AIC23通過(guò)兩個(gè)獨(dú)立的通道進(jìn)行通信,一路控制通過(guò)兩個(gè)獨(dú)立的通道進(jìn)行通信,一路控制AIC23的端口配置寄存器;另一路發(fā)送和接收數(shù)字音頻信號(hào)。利用的端口配置寄存器;另一路發(fā)送和接收

9、數(shù)字音頻信號(hào)。利用5509A的的I2C總線被用來(lái)作為單向控制通道,控制通道只在配總線被用來(lái)作為單向控制通道,控制通道只在配置置AIC23時(shí)才使用,當(dāng)傳輸音頻信號(hào)時(shí),它一般是空閑的。時(shí)才使用,當(dāng)傳輸音頻信號(hào)時(shí),它一般是空閑的。I2C總線是由數(shù)據(jù)線總線是由數(shù)據(jù)線SDA和時(shí)鐘線和時(shí)鐘線SCL構(gòu)成的串行總線,可發(fā)構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。送和接收數(shù)據(jù)。McBSP被用來(lái)作為雙向數(shù)據(jù)通道,所有的音被用來(lái)作為雙向數(shù)據(jù)通道,所有的音頻數(shù)據(jù)都通過(guò)數(shù)據(jù)通道傳輸。頻數(shù)據(jù)都通過(guò)數(shù)據(jù)通道傳輸。 AIC23內(nèi)部具有一個(gè)可編程時(shí)鐘,由內(nèi)部具有一個(gè)可編程時(shí)鐘,由PLL1708 PLL驅(qū)動(dòng)驅(qū)動(dòng)提供。系統(tǒng)的默認(rèn)時(shí)鐘為提供

10、。系統(tǒng)的默認(rèn)時(shí)鐘為18.432MHz。內(nèi)部的采樣頻率通常。內(nèi)部的采樣頻率通常由由18.432MHz時(shí)鐘分頻產(chǎn)生,例如時(shí)鐘分頻產(chǎn)生,例如48kHz或或8kHz。采樣頻率。采樣頻率通過(guò)通過(guò)AIC23的的SAMPLERATE寄存器設(shè)置。寄存器設(shè)置。0 0 1 0 0 0 1 1 TLV320AIC23的內(nèi)部寄存器地址地址寄存器寄存器地址地址寄存器寄存器0000000左輸入聲道音量控制左輸入聲道音量控制0000110電源控制電源控制0000001右輸入聲道音量控制右輸入聲道音量控制0000111數(shù)字音頻接口格式數(shù)字音頻接口格式0000010耳機(jī)左輸入聲道音量耳機(jī)左輸入聲道音量控制控制0001000采樣

11、率控制采樣率控制0000011耳機(jī)右輸入聲道音量耳機(jī)右輸入聲道音量控制控制0001001數(shù)字接口激活數(shù)字接口激活0000100模擬音頻通道控制模擬音頻通道控制0001111復(fù)位寄存器復(fù)位寄存器0000101數(shù)字音頻通道控制數(shù)字音頻通道控制 在在5509A與與AIC23的連接中,的連接中,McBSP的接收和發(fā)送工作的接收和發(fā)送工作在同步方式下,接收和發(fā)送可以獨(dú)立配置,利用在同步方式下,接收和發(fā)送可以獨(dú)立配置,利用5509A的的I2C模塊,可以對(duì)模塊,可以對(duì)AIC23內(nèi)部的配置寄存器進(jìn)行編程配置,內(nèi)部的配置寄存器進(jìn)行編程配置,使使AIC23工作在要求的狀態(tài)下。工作在要求的狀態(tài)下。 首先對(duì)首先對(duì)55

12、09A的的I2C模塊初始化,圖模塊初始化,圖7-25是是5509A I2C主主從發(fā)送控制流程圖,將數(shù)據(jù)逐次寫(xiě)入從發(fā)送控制流程圖,將數(shù)據(jù)逐次寫(xiě)入I2CDXR,并通過(guò),并通過(guò)I2C總線發(fā)送給總線發(fā)送給AIC23,可以完成對(duì),可以完成對(duì)AIC23的初始化配置。的初始化配置。5509A I2C主從發(fā)送控制流程圖主從發(fā)送控制流程圖 由于設(shè)置由于設(shè)置AIC23接收、處理數(shù)據(jù)的速度為接收、處理數(shù)據(jù)的速度為48kHz,程序,程序中發(fā)送數(shù)據(jù)的函數(shù)在設(shè)備忙的情況下不會(huì)返回,而是等待其中發(fā)送數(shù)據(jù)的函數(shù)在設(shè)備忙的情況下不會(huì)返回,而是等待其準(zhǔn)備好并接收數(shù)據(jù)完畢才返回,所以程序中無(wú)需使用任何控準(zhǔn)備好并接收數(shù)據(jù)完畢才返回,

13、所以程序中無(wú)需使用任何控制數(shù)據(jù)發(fā)送速度的技術(shù)。下面給出制數(shù)據(jù)發(fā)送速度的技術(shù)。下面給出AIC23初始化的部分源代初始化的部分源代碼。碼。void AIC23_Init() I2C_Init(); / 復(fù)位AIC23并打開(kāi)電源 AIC23_Write(AIC23_RESET_REG, 0); AIC23_Write(AIC23_POWER_DOWN_CTL, 0); AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC ,ANAPCTL_INSEL); / 使用麥克風(fēng)音源AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0); /

14、打開(kāi)打開(kāi)line in音量控制音量控制s AIC23_Write(AIC23_LT_LINE_CTL,0 x000); AIC23_Write(AIC23_RT_LINE_CTL,0 x000); / AIC23工作于主模式,工作于主模式,44.1kHz立體聲立體聲, 16bit采樣采樣 / 輸入時(shí)鐘為輸入時(shí)鐘為12MHz AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP); AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_8 |

15、SRC_BOSR | SRC_MO); / 打開(kāi)耳機(jī)音量控制和數(shù)字接口打開(kāi)耳機(jī)音量控制和數(shù)字接口 AIC23_Write(AIC23_LT_HP_CTL, 0 x07f); / 0 x79 為麥克風(fēng)為麥克風(fēng) AIC23_Write(AIC23_RT_HP_CTL, 0 x07f); AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT); / 設(shè)置設(shè)置 McBSP0為從模式為從模式 McBSP0_InitSlave();7.3 DSP相關(guān)片上外設(shè)時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器 外部時(shí)鐘信號(hào)從外部時(shí)鐘信號(hào)從CLKIN引腳輸入,在內(nèi)部修改這個(gè)信號(hào),來(lái)引腳輸入,在內(nèi)部

16、修改這個(gè)信號(hào),來(lái)產(chǎn)生希望頻率的輸出時(shí)鐘。時(shí)鐘發(fā)生器將這個(gè)輸出時(shí)鐘送給產(chǎn)生希望頻率的輸出時(shí)鐘。時(shí)鐘發(fā)生器將這個(gè)輸出時(shí)鐘送給CPU、外設(shè)和其它內(nèi)部模塊。、外設(shè)和其它內(nèi)部模塊。I2C模塊模塊 發(fā)送配置參數(shù)給發(fā)送配置參數(shù)給TLV320AIC23。McBSP 和和TLV320AIC23實(shí)現(xiàn)無(wú)縫連接,傳送音頻數(shù)據(jù)。實(shí)現(xiàn)無(wú)縫連接,傳送音頻數(shù)據(jù)。DSP時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器CLKINCPU時(shí)鐘時(shí)鐘CLKDIVCLKOUTCPU、外設(shè)或者其他器件、外設(shè)或者其他器件圖1-3 時(shí)鐘輸出時(shí)鐘發(fā)生器 時(shí)鐘發(fā)生器,它可以利用數(shù)字鎖相環(huán)(時(shí)鐘發(fā)生器,它可以利用數(shù)字鎖相環(huán)(DPLL)分頻)分頻或者倍頻輸入時(shí)鐘頻率(從或者倍頻輸

17、入時(shí)鐘頻率(從CLKIN引腳接收),然后分引腳接收),然后分別送到別送到CPU、外設(shè)和、外設(shè)和C55x DSP內(nèi)的其他模塊,以使它們內(nèi)的其他模塊,以使它們工作在所要的時(shí)鐘頻率。工作在所要的時(shí)鐘頻率??删幊谭诸l器可編程分頻器7.3.1 I2C(Inter-Integrated Circuit內(nèi)部集成電路)模塊 TMS320C55x可以通過(guò)可以通過(guò)I2C串行總線同其他串行總線同其他I2C兼容設(shè)備兼容設(shè)備相連接,通過(guò)該串行總線可以收發(fā)相連接,通過(guò)該串行總線可以收發(fā)8位數(shù)據(jù)。位數(shù)據(jù)。 C55x的的I2C總線模塊有如下特點(diǎn):總線模塊有如下特點(diǎn):l兼容兼容I2C總線標(biāo)準(zhǔn):即支持位總線標(biāo)準(zhǔn):即支持位/字節(jié)格

18、式傳輸,支持字節(jié)格式傳輸,支持7位位和和10位尋址模式,支持多主方發(fā)送從方接收模式和多主位尋址模式,支持多主方發(fā)送從方接收模式和多主方接收從方發(fā)送模式,方接收從方發(fā)送模式,I2C總線的數(shù)據(jù)傳輸率可以從總線的數(shù)據(jù)傳輸率可以從10kbit/s到到400kbit/s;l可以通過(guò)可以通過(guò)DMA完成讀寫(xiě)操作;完成讀寫(xiě)操作;l可以用可以用CPU完成讀寫(xiě)操作和處理非法操作中斷;完成讀寫(xiě)操作和處理非法操作中斷;l模塊的工作頻率為模塊的工作頻率為12MHz;l模塊可以使能和被禁止。模塊可以使能和被禁止。I2C總線連接關(guān)系總線連接關(guān)系 I2C總線使用一條串行數(shù)據(jù)線總線使用一條串行數(shù)據(jù)線SDA和一條串行時(shí)鐘線和一條

19、串行時(shí)鐘線SCL,這兩條線都支持輸入輸出雙向傳輸,在連接時(shí)應(yīng)注,這兩條線都支持輸入輸出雙向傳輸,在連接時(shí)應(yīng)注意這兩根線都需要外接上拉電阻,當(dāng)總線處于空閑狀態(tài)時(shí)意這兩根線都需要外接上拉電阻,當(dāng)總線處于空閑狀態(tài)時(shí)兩條線都處于高電平。兩條線都處于高電平。I2C總線支持多主設(shè)備模式,當(dāng)多總線支持多主設(shè)備模式,當(dāng)多個(gè)主設(shè)備要進(jìn)行通信時(shí),可以通過(guò)仲裁機(jī)制決定那個(gè)主設(shè)個(gè)主設(shè)備要進(jìn)行通信時(shí),可以通過(guò)仲裁機(jī)制決定那個(gè)主設(shè)備占用總線。備占用總線。 I2C總線模塊由串行接口、總線模塊由串行接口、DSP外設(shè)總線接口、時(shí)鐘產(chǎn)外設(shè)總線接口、時(shí)鐘產(chǎn)生和同步器、預(yù)定標(biāo)器、噪音過(guò)濾器、仲裁器以及中斷和生和同步器、預(yù)定標(biāo)器、噪音

20、過(guò)濾器、仲裁器以及中斷和DMA同步事件接口,下面給出了同步事件接口,下面給出了I2C總線模塊內(nèi)部框圖??偩€模塊內(nèi)部框圖。 I2C總線模塊內(nèi)部框圖總線模塊內(nèi)部框圖 1I2C總線數(shù)據(jù)傳輸總線數(shù)據(jù)傳輸 I2C串行數(shù)據(jù)信號(hào)在時(shí)鐘信號(hào)為低時(shí)改變,而在時(shí)鐘信號(hào)為高時(shí)串行數(shù)據(jù)信號(hào)在時(shí)鐘信號(hào)為低時(shí)改變,而在時(shí)鐘信號(hào)為高時(shí)進(jìn)行判別,這時(shí)數(shù)據(jù)信號(hào)必須保持穩(wěn)定。當(dāng)進(jìn)行判別,這時(shí)數(shù)據(jù)信號(hào)必須保持穩(wěn)定。當(dāng)I2C總線處在空閑態(tài)轉(zhuǎn)化到總線處在空閑態(tài)轉(zhuǎn)化到工作態(tài)的過(guò)程中必須滿足起始條件,即串行數(shù)據(jù)信號(hào)工作態(tài)的過(guò)程中必須滿足起始條件,即串行數(shù)據(jù)信號(hào)SDA首先由高變首先由高變低,之后時(shí)鐘信號(hào)也由高變低;當(dāng)數(shù)據(jù)傳輸結(jié)束時(shí)則低,之后

21、時(shí)鐘信號(hào)也由高變低;當(dāng)數(shù)據(jù)傳輸結(jié)束時(shí)則SDA首先由低變首先由低變高,之后時(shí)鐘信號(hào)也由低變高標(biāo)志數(shù)據(jù)傳輸結(jié)束。高,之后時(shí)鐘信號(hào)也由低變高標(biāo)志數(shù)據(jù)傳輸結(jié)束。 I2C總線以字節(jié)為單位進(jìn)行處理,而對(duì)字節(jié)的數(shù)量則沒(méi)有限制。總線以字節(jié)為單位進(jìn)行處理,而對(duì)字節(jié)的數(shù)量則沒(méi)有限制。I2C總線傳輸?shù)牡谝粋€(gè)字節(jié)跟在數(shù)據(jù)起始之后,這個(gè)字節(jié)可以是總線傳輸?shù)牡谝粋€(gè)字節(jié)跟在數(shù)據(jù)起始之后,這個(gè)字節(jié)可以是7位從位從地址加一個(gè)讀寫(xiě)位,也可以是地址加一個(gè)讀寫(xiě)位,也可以是8位數(shù)據(jù)。當(dāng)讀寫(xiě)位為位數(shù)據(jù)。當(dāng)讀寫(xiě)位為1時(shí),則主方從從時(shí),則主方從從設(shè)備讀取數(shù)據(jù),為設(shè)備讀取數(shù)據(jù),為0時(shí)則向所選從設(shè)備寫(xiě)數(shù)據(jù)。在應(yīng)答模式下需要在時(shí)則向所選從設(shè)備寫(xiě)數(shù)

22、據(jù)。在應(yīng)答模式下需要在每個(gè)字節(jié)之后附加一個(gè)應(yīng)答位(每個(gè)字節(jié)之后附加一個(gè)應(yīng)答位(ACK)。當(dāng)使用)。當(dāng)使用10位尋址模式時(shí),所位尋址模式時(shí),所傳的第一個(gè)字節(jié)由傳的第一個(gè)字節(jié)由11110加上地址的高兩位和讀寫(xiě)位組成,下一字節(jié)傳加上地址的高兩位和讀寫(xiě)位組成,下一字節(jié)傳輸剩余的輸剩余的8位地址。下面分別給出了位地址。下面分別給出了8位和位和10位尋址模式下的數(shù)據(jù)傳輸位尋址模式下的數(shù)據(jù)傳輸格式示意圖。格式示意圖。位尋址數(shù)據(jù)格式(位尋址數(shù)據(jù)格式(8位)位) 位尋址數(shù)據(jù)格式(位尋址數(shù)據(jù)格式(10位)位) I2C總線的數(shù)據(jù)傳輸可以分成總線的數(shù)據(jù)傳輸可以分成4種模式種模式主發(fā)送模式主發(fā)送模式、主接收模式、從發(fā)送

23、模式和從接收模式,接下來(lái)分別介、主接收模式、從發(fā)送模式和從接收模式,接下來(lái)分別介紹這四種模式。紹這四種模式。(1)主發(fā)送模式:主發(fā)送模式支持)主發(fā)送模式:主發(fā)送模式支持7位和位和10位尋址模式,位尋址模式,這時(shí)數(shù)據(jù)由主方送出,并且發(fā)送的數(shù)據(jù)同自己產(chǎn)生的時(shí)鐘這時(shí)數(shù)據(jù)由主方送出,并且發(fā)送的數(shù)據(jù)同自己產(chǎn)生的時(shí)鐘脈沖同步,而當(dāng)一個(gè)字節(jié)已經(jīng)發(fā)送走后需要脈沖同步,而當(dāng)一個(gè)字節(jié)已經(jīng)發(fā)送走后需要DSP干預(yù)時(shí),干預(yù)時(shí),時(shí)鐘信號(hào)保持低。時(shí)鐘信號(hào)保持低。(2)主接收模式:主接收模式也支持兩種尋址方式。而)主接收模式:主接收模式也支持兩種尋址方式。而當(dāng)?shù)刂钒l(fā)送完后,數(shù)據(jù)線變?yōu)檩斎耄鴷r(shí)鐘仍然由主方產(chǎn)當(dāng)?shù)刂钒l(fā)送完后,數(shù)

24、據(jù)線變?yōu)檩斎耄鴷r(shí)鐘仍然由主方產(chǎn)生。當(dāng)一個(gè)字節(jié)傳輸完后需要生。當(dāng)一個(gè)字節(jié)傳輸完后需要DSP干預(yù)時(shí),時(shí)鐘保持低電干預(yù)時(shí),時(shí)鐘保持低電平。在傳輸結(jié)束時(shí)由主方產(chǎn)生一個(gè)結(jié)束標(biāo)志。平。在傳輸結(jié)束時(shí)由主方產(chǎn)生一個(gè)結(jié)束標(biāo)志。(3)從接收模式:從接收模式的數(shù)據(jù)和時(shí)鐘都由主方產(chǎn))從接收模式:從接收模式的數(shù)據(jù)和時(shí)鐘都由主方產(chǎn)生,但可以在需要生,但可以在需要DSP干預(yù)時(shí)使干預(yù)時(shí)使SCL信號(hào)保持低。信號(hào)保持低。(4)從發(fā)送模式:從發(fā)送模式只能由從接收模式轉(zhuǎn)化而)從發(fā)送模式:從發(fā)送模式只能由從接收模式轉(zhuǎn)化而來(lái),當(dāng)在從接收模式下接收的地址同自己的地址相同時(shí),來(lái),當(dāng)在從接收模式下接收的地址同自己的地址相同時(shí),并且讀寫(xiě)位為并

25、且讀寫(xiě)位為1,則進(jìn)入從發(fā)送模式。從發(fā)送模式時(shí)鐘由,則進(jìn)入從發(fā)送模式。從發(fā)送模式時(shí)鐘由主設(shè)備產(chǎn)生,從設(shè)備產(chǎn)生數(shù)據(jù)信號(hào),但可以在需要主設(shè)備產(chǎn)生,從設(shè)備產(chǎn)生數(shù)據(jù)信號(hào),但可以在需要DSP干干預(yù)時(shí)使預(yù)時(shí)使SCL信號(hào)保持低。信號(hào)保持低。 2仲裁仲裁 如果在一條總線上有兩個(gè)或兩個(gè)以上主設(shè)備同時(shí)開(kāi)始如果在一條總線上有兩個(gè)或兩個(gè)以上主設(shè)備同時(shí)開(kāi)始一個(gè)主發(fā)送模式,這時(shí)就需要一個(gè)仲裁機(jī)制決定到底由誰(shuí)一個(gè)主發(fā)送模式,這時(shí)就需要一個(gè)仲裁機(jī)制決定到底由誰(shuí)掌握總線的控制權(quán)。掌握總線的控制權(quán)。 仲裁是通過(guò)串行數(shù)據(jù)線上競(jìng)爭(zhēng)傳輸?shù)臄?shù)據(jù)來(lái)進(jìn)行判別仲裁是通過(guò)串行數(shù)據(jù)線上競(jìng)爭(zhēng)傳輸?shù)臄?shù)據(jù)來(lái)進(jìn)行判別的,總線上傳輸?shù)拇袛?shù)據(jù)流實(shí)際上是一個(gè)二

26、進(jìn)制數(shù),如的,總線上傳輸?shù)拇袛?shù)據(jù)流實(shí)際上是一個(gè)二進(jìn)制數(shù),如果主設(shè)備傳輸?shù)亩M(jìn)制數(shù)較小,則仲裁器將優(yōu)先權(quán)賦予這果主設(shè)備傳輸?shù)亩M(jìn)制數(shù)較小,則仲裁器將優(yōu)先權(quán)賦予這個(gè)主設(shè)備,沒(méi)有被賦予優(yōu)先權(quán)的設(shè)備則進(jìn)入從接收模式,個(gè)主設(shè)備,沒(méi)有被賦予優(yōu)先權(quán)的設(shè)備則進(jìn)入從接收模式,并同時(shí)將仲裁喪失標(biāo)志置成并同時(shí)將仲裁喪失標(biāo)志置成1,并產(chǎn)生仲裁喪失中斷。,并產(chǎn)生仲裁喪失中斷。 當(dāng)兩個(gè)或兩個(gè)以上主設(shè)備傳送的第一個(gè)字節(jié)相同,則當(dāng)兩個(gè)或兩個(gè)以上主設(shè)備傳送的第一個(gè)字節(jié)相同,則將根據(jù)接下來(lái)的字節(jié)進(jìn)行仲裁。將根據(jù)接下來(lái)的字節(jié)進(jìn)行仲裁。 3時(shí)鐘產(chǎn)生和同步時(shí)鐘產(chǎn)生和同步 正常狀態(tài)下,只有一個(gè)主設(shè)備產(chǎn)生時(shí)鐘信號(hào),但如果正常狀態(tài)下,只有

27、一個(gè)主設(shè)備產(chǎn)生時(shí)鐘信號(hào),但如果有兩個(gè)或兩個(gè)以上主設(shè)備進(jìn)行仲裁,這時(shí)就需要進(jìn)行時(shí)鐘有兩個(gè)或兩個(gè)以上主設(shè)備進(jìn)行仲裁,這時(shí)就需要進(jìn)行時(shí)鐘同步。串行時(shí)鐘線同步。串行時(shí)鐘線SCL具有線與的特性,這意味著如果一具有線與的特性,這意味著如果一個(gè)設(shè)備首先在個(gè)設(shè)備首先在SCL線上產(chǎn)生一個(gè)低電平信號(hào)就將否決其他線上產(chǎn)生一個(gè)低電平信號(hào)就將否決其他設(shè)備,這時(shí)其他設(shè)備的時(shí)鐘發(fā)生器也將被迫進(jìn)入低電平。設(shè)備,這時(shí)其他設(shè)備的時(shí)鐘發(fā)生器也將被迫進(jìn)入低電平。如果有設(shè)備仍處在低電平,如果有設(shè)備仍處在低電平,SCL信號(hào)也將保持低電平,這信號(hào)也將保持低電平,這時(shí)其他結(jié)束低電平狀態(tài)的設(shè)備必須等待時(shí)其他結(jié)束低電平狀態(tài)的設(shè)備必須等待SCL被

28、釋放后開(kāi)始被釋放后開(kāi)始高電平狀態(tài)。通過(guò)這種方法時(shí)鐘得到同步。高電平狀態(tài)。通過(guò)這種方法時(shí)鐘得到同步。 4I2C模塊的中斷和模塊的中斷和DMA同步事件同步事件 I2C模塊可以產(chǎn)生模塊可以產(chǎn)生5種中斷類(lèi)型以方便種中斷類(lèi)型以方便CPU處理,這處理,這5種類(lèi)型分別是仲裁喪失中斷、無(wú)應(yīng)答中斷、寄存器訪問(wèn)就種類(lèi)型分別是仲裁喪失中斷、無(wú)應(yīng)答中斷、寄存器訪問(wèn)就緒中斷、接收數(shù)據(jù)就緒中斷和發(fā)送數(shù)據(jù)就緒中斷。緒中斷、接收數(shù)據(jù)就緒中斷和發(fā)送數(shù)據(jù)就緒中斷。DMA同同步事件有兩種類(lèi)型,一種是步事件有兩種類(lèi)型,一種是DMA控制器從數(shù)據(jù)接收寄存器控制器從數(shù)據(jù)接收寄存器ICDRR同步讀取接收數(shù)據(jù),另一種是向數(shù)據(jù)發(fā)送寄存器同步讀取

29、接收數(shù)據(jù),另一種是向數(shù)據(jù)發(fā)送寄存器ICDXR同步寫(xiě)入發(fā)送數(shù)據(jù)。同步寫(xiě)入發(fā)送數(shù)據(jù)。 5I2C模塊的禁止與使能模塊的禁止與使能 I2C模塊可以通過(guò)模塊可以通過(guò)I2C模式寄存器模式寄存器ICMDR中的復(fù)位使中的復(fù)位使能位(能位(IRS)使能或被禁止。)使能或被禁止。I2C時(shí)鐘產(chǎn)生I2C時(shí)鐘產(chǎn)生DSP時(shí)鐘產(chǎn)生器從外部時(shí)鐘源接收信號(hào),產(chǎn)生時(shí)鐘產(chǎn)生器從外部時(shí)鐘源接收信號(hào),產(chǎn)生I2C輸入時(shí)鐘信輸入時(shí)鐘信號(hào)。號(hào)。I2C模塊內(nèi)部,還要對(duì)這個(gè)輸入時(shí)鐘進(jìn)行兩次分頻,產(chǎn)模塊內(nèi)部,還要對(duì)這個(gè)輸入時(shí)鐘進(jìn)行兩次分頻,產(chǎn)生主時(shí)鐘和模塊時(shí)鐘。生主時(shí)鐘和模塊時(shí)鐘。IPSCd0716大于大于15d的值取決于分頻值的值取決于分頻值I

30、PSC mod()()mstffICCLdICCHdmod21I CfIPSC輸入時(shí)鐘頻率IPSC:分頻系數(shù),在預(yù)分頻寄存器:分頻系數(shù),在預(yù)分頻寄存器(I2CPSC)中設(shè)置中設(shè)置ICCL:在寄存器:在寄存器I2CCLKL中設(shè)置中設(shè)置ICCH:在寄存器:在寄存器I2CCLKH中設(shè)置中設(shè)置具體情況參看具體情況參看TMS320C55x DSP Peripherals Reference Guide 下面給出下面給出I2C模塊的寄存器表,并簡(jiǎn)要說(shuō)明它們的功能。模塊的寄存器表,并簡(jiǎn)要說(shuō)明它們的功能。 I2C模塊的寄存器模塊的寄存器 寄存器寄存器說(shuō)明說(shuō)明功能功能ICOARI2C自身地址寄存器自身地址寄存器

31、保存自己作為從設(shè)備的保存自己作為從設(shè)備的7位或位或10位地址位地址ICIMRI2C中斷屏蔽寄存器中斷屏蔽寄存器設(shè)置中斷類(lèi)型是否屏蔽設(shè)置中斷類(lèi)型是否屏蔽ICSTRI2C中斷狀態(tài)寄存器中斷狀態(tài)寄存器用來(lái)判定中斷是否發(fā)生并可查詢用來(lái)判定中斷是否發(fā)生并可查詢I2C的狀的狀態(tài)態(tài)ICCLKLI2C時(shí)鐘分頻低計(jì)數(shù)器時(shí)鐘分頻低計(jì)數(shù)器對(duì)主時(shí)鐘分頻,產(chǎn)生低速傳輸頻率對(duì)主時(shí)鐘分頻,產(chǎn)生低速傳輸頻率ICCLKHI2C時(shí)鐘分頻高計(jì)數(shù)器時(shí)鐘分頻高計(jì)數(shù)器對(duì)主時(shí)鐘分頻,產(chǎn)生高速傳輸頻率對(duì)主時(shí)鐘分頻,產(chǎn)生高速傳輸頻率ICCNTI2C數(shù)據(jù)計(jì)數(shù)寄存器數(shù)據(jù)計(jì)數(shù)寄存器該寄存器被用來(lái)產(chǎn)生結(jié)束條件結(jié)束傳輸該寄存器被用來(lái)產(chǎn)生結(jié)束條件結(jié)束傳輸

32、ICDRRI2C數(shù)據(jù)接收寄存器數(shù)據(jù)接收寄存器供供DSP讀取接收的數(shù)據(jù)讀取接收的數(shù)據(jù) I2C模塊的寄存器(續(xù))模塊的寄存器(續(xù)) ICSARI2C從地址寄存器從地址寄存器存放所要通信的從設(shè)備的地址存放所要通信的從設(shè)備的地址ICDXRI2C數(shù)據(jù)發(fā)送寄存器數(shù)據(jù)發(fā)送寄存器供供DSP寫(xiě)發(fā)送的數(shù)據(jù)寫(xiě)發(fā)送的數(shù)據(jù)ICMDRI2C模式寄存器模式寄存器包含包含I2C模塊的控制位模塊的控制位ICIVRI2C中斷向量寄存器中斷向量寄存器供供DSP查詢已經(jīng)發(fā)生的中斷查詢已經(jīng)發(fā)生的中斷ICGPIOI2C通用輸入輸出寄存器通用輸入輸出寄存器當(dāng)當(dāng)I2C模塊工作在通用模塊工作在通用IO模式下時(shí)控制模式下時(shí)控制SDA和和SCL引

33、腳引腳ICPSCI2C預(yù)定標(biāo)寄存器預(yù)定標(biāo)寄存器用來(lái)對(duì)系統(tǒng)時(shí)鐘分頻以獲得用來(lái)對(duì)系統(tǒng)時(shí)鐘分頻以獲得12M時(shí)鐘時(shí)鐘ICRSRI2C接收移位寄存器接收移位寄存器DSP無(wú)法訪問(wèn)無(wú)法訪問(wèn)ICXSRI2C發(fā)送移位寄存器發(fā)送移位寄存器DSP無(wú)法訪問(wèn)無(wú)法訪問(wèn)I2C自身地址寄存器(I2COAR) I2C自身地址寄存器自身地址寄存器(I2COAR)是一個(gè))是一個(gè)16-bit映射到映射到DSP的的I/O空間的寄存器??臻g的寄存器。 I2C模塊用這個(gè)寄存器來(lái)指定模塊用這個(gè)寄存器來(lái)指定自身的從設(shè)備地址,與自身的從設(shè)備地址,與I2C總線上其它設(shè)備區(qū)分開(kāi)。如果總線上其它設(shè)備區(qū)分開(kāi)。如果選擇選擇7-bit尋址模式(尋址模式(I

34、2CMDR中的中的XA0),只用到),只用到I2COAR中的中的bit 60,對(duì),對(duì)bit 97寫(xiě)寫(xiě)0。bit域域值值說(shuō)說(shuō) 明明1510保留保留0讀的返回值總是讀的返回值總是0,寫(xiě)無(wú)效,寫(xiě)無(wú)效90OAR007Fh0003FFh7bit尋址模式尋址模式(I2MDR中中XA0)提供提供I2C模塊模塊7-bit的從地址,的從地址,bit 97寫(xiě)寫(xiě)010bit尋址模式尋址模式(I2MDR中中XA1)提供提供I2C模塊模塊10-bit的從地址的從地址I2C從地址寄存器(I2CSAR) I2C從地址寄存器從地址寄存器是一個(gè)是一個(gè)16-bit I/O映射寄存器,映射寄存器, I2CSAR中的中的SAR域包含

35、了一個(gè)域包含了一個(gè)7-bit或者或者10-bit的從地址。的從地址。如果選擇如果選擇7-bit尋址模式(尋址模式(I2CMDR中的中的XA0),只用到),只用到I2CSAR中的中的bit 60,對(duì),對(duì)bit 97寫(xiě)寫(xiě)0。 bit域域值值說(shuō)說(shuō) 明明1510保留保留0讀的返回值總是讀的返回值總是0,寫(xiě)無(wú)效,寫(xiě)無(wú)效90SAR007Fh0003FFh7bit尋址模式(尋址模式(I2MDR中中XA0)當(dāng)當(dāng)I2C為主發(fā)送設(shè)備時(shí),為主發(fā)送設(shè)備時(shí),bit60提供提供7-bit的的從設(shè)備地址,從設(shè)備地址,bit90寫(xiě)寫(xiě)010bit尋址模式(尋址模式(I2MDR中中XA1)當(dāng)當(dāng)I2C為主發(fā)送設(shè)備時(shí),為主發(fā)送設(shè)備時(shí)

36、,bit90提供提供10-bit的從設(shè)備地址的從設(shè)備地址I2C預(yù)分頻寄存器(I2CPSC) I2C預(yù)分頻寄存器預(yù)分頻寄存器(I2CPSC)是一個(gè))是一個(gè)16-bit I/O映射寄存映射寄存器,用來(lái)對(duì)器,用來(lái)對(duì)I2C的輸入時(shí)鐘分頻,獲得期望的模塊時(shí)鐘的輸入時(shí)鐘分頻,獲得期望的模塊時(shí)鐘 。bit域域值值說(shuō)說(shuō) 明明158保留保留0讀的返回值總是讀的返回值總是0,寫(xiě)無(wú)效,寫(xiě)無(wú)效70IPSC007Fh00FFhI2C的預(yù)分頻值,它決定了怎樣將的預(yù)分頻值,它決定了怎樣將CPU時(shí)鐘分頻,獲得時(shí)鐘分頻,獲得I2C模塊時(shí)鐘;模塊時(shí)鐘;模塊時(shí)鐘頻率模塊時(shí)鐘頻率I2C輸入時(shí)鐘頻率輸入時(shí)鐘頻率/(IPSC+1)注意:

37、當(dāng)注意:當(dāng)I2C復(fù)位時(shí)(復(fù)位時(shí)(I2CMDR中中IRS=0),必須對(duì)),必須對(duì)IPSC初始化。預(yù)初始化。預(yù)分頻的頻率只有在分頻的頻率只有在IRS變?yōu)樽優(yōu)?時(shí)才有時(shí)才有效。效。IRS1時(shí),改變時(shí),改變IPSC的值無(wú)效的值無(wú)效I2C時(shí)鐘分頻寄存器(I2CCLKL和I2CCLKH)(1) 當(dāng)當(dāng)I2C模塊是模塊是主設(shè)備主設(shè)備時(shí),需要對(duì)模塊時(shí)鐘進(jìn)行分頻,獲得時(shí),需要對(duì)模塊時(shí)鐘進(jìn)行分頻,獲得SCL引腳上的主時(shí)鐘,主時(shí)鐘的波形取決于兩個(gè)分頻值:引腳上的主時(shí)鐘,主時(shí)鐘的波形取決于兩個(gè)分頻值: I2CCLKL的的ICCL :對(duì)于每個(gè)主時(shí)鐘周期,:對(duì)于每個(gè)主時(shí)鐘周期,ICCL決定信號(hào)決定信號(hào)電平為低的持續(xù)時(shí)間。電

38、平為低的持續(xù)時(shí)間。 I2CCLKH的的ICCH :對(duì)于每個(gè)主時(shí)鐘周期,:對(duì)于每個(gè)主時(shí)鐘周期,ICCH決定信決定信號(hào)電平為高的持續(xù)時(shí)間。號(hào)電平為高的持續(xù)時(shí)間。 I2C時(shí)鐘分頻寄存器(I2CCLKL和I2CCLKH)(2)bit域域值值說(shuō)說(shuō) 明明150ICCL0000hFFFFh 時(shí)鐘低電平時(shí)間分頻值(時(shí)鐘低電平時(shí)間分頻值(165 535)。為了)。為了產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)鐘產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)鐘周期乘以(周期乘以(ICCLd),),d5、6、7bit域域值值說(shuō)說(shuō) 明明150ICCH0000hFFFFh時(shí)鐘高電平時(shí)間分頻值(時(shí)鐘高電平時(shí)間分頻值(165 535)。為

39、了)。為了產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)鐘周期乘以(鐘周期乘以(ICCLd),),d5、6、7I2C時(shí)鐘低電平寄存器(時(shí)鐘低電平寄存器(I2CCLKL)的說(shuō)明)的說(shuō)明I2C時(shí)鐘高電平寄存器(時(shí)鐘高電平寄存器(I2CCLKH)的說(shuō)明)的說(shuō)明7.3.2 多通道緩存串口(MsBSP) 多通道緩存串口(多通道緩存串口(MsBSP, multi-channel buffered serial ports)在)在C55xx DSP和系統(tǒng)中的其它器件間提供了和系統(tǒng)中的其它器件間提供了一個(gè)直接的串行接口,它可以提供到其它一個(gè)直接的串行接口,它可以提供到其它C55xx

40、DSPs、codecs和其它器件的接口。和其它器件的接口。 McBSP包括一個(gè)數(shù)據(jù)流通路和一個(gè)控制通路,通過(guò)包括一個(gè)數(shù)據(jù)流通路和一個(gè)控制通路,通過(guò)7個(gè)個(gè)引腳與外部設(shè)備連接引腳與外部設(shè)備連接 。l全雙工通信;全雙工通信;l雙緩沖數(shù)據(jù)寄存器,允許傳送連續(xù)的數(shù)據(jù)流;雙緩沖數(shù)據(jù)寄存器,允許傳送連續(xù)的數(shù)據(jù)流;l獨(dú)立的收發(fā)時(shí)鐘信號(hào)和幀信號(hào);獨(dú)立的收發(fā)時(shí)鐘信號(hào)和幀信號(hào);l可用可用128個(gè)通道進(jìn)行收發(fā);個(gè)通道進(jìn)行收發(fā);l可與工業(yè)標(biāo)準(zhǔn)的編解碼器、模擬接口芯片(可與工業(yè)標(biāo)準(zhǔn)的編解碼器、模擬接口芯片(AICs)以及其)以及其它串行它串行A/D、D/A芯片直接接口連接;芯片直接接口連接;l能夠向能夠向CPU發(fā)送中斷,

41、向發(fā)送中斷,向DMA控制器發(fā)送控制器發(fā)送DMA事件;事件;l具有可編程的采樣率發(fā)生器;具有可編程的采樣率發(fā)生器;l可設(shè)置幀同步脈沖和時(shí)鐘信號(hào)的極性;可設(shè)置幀同步脈沖和時(shí)鐘信號(hào)的極性;l傳輸?shù)淖珠L(zhǎng)可以是傳輸?shù)淖珠L(zhǎng)可以是8位、位、12位、位、16位、位、20位、位、24位或位或32位;位;l具有具有律和律和A律壓縮擴(kuò)展功能;律壓縮擴(kuò)展功能;l可將可將McBSP引腳配置為通用輸入輸出引腳。引腳配置為通用輸入輸出引腳。 McBSP可以分為可以分為數(shù)據(jù)通道數(shù)據(jù)通道和和控制通道控制通道兩部分。數(shù)據(jù)發(fā)送兩部分。數(shù)據(jù)發(fā)送引腳引腳DX負(fù)責(zé)數(shù)據(jù)的發(fā)送,數(shù)據(jù)接收引腳負(fù)責(zé)數(shù)據(jù)的發(fā)送,數(shù)據(jù)接收引腳DR負(fù)責(zé)數(shù)據(jù)的接收,負(fù)

42、責(zé)數(shù)據(jù)的接收,發(fā)送時(shí)鐘引腳發(fā)送時(shí)鐘引腳CLKX、接收時(shí)鐘引腳、接收時(shí)鐘引腳CLKR、發(fā)送幀同步引腳、發(fā)送幀同步引腳FSX和接收幀同步引腳和接收幀同步引腳FSR提供串行時(shí)鐘和控制信號(hào)。提供串行時(shí)鐘和控制信號(hào)。 CPU和和DMA控制器通過(guò)外設(shè)總線與控制器通過(guò)外設(shè)總線與McBSP進(jìn)行通信。當(dāng)進(jìn)行通信。當(dāng)發(fā)送數(shù)據(jù)時(shí),發(fā)送數(shù)據(jù)時(shí),CPU和和DMA將數(shù)據(jù)寫(xiě)入數(shù)據(jù)發(fā)送寄存器(將數(shù)據(jù)寫(xiě)入數(shù)據(jù)發(fā)送寄存器(DXR1,DXR2),接著拷貝到發(fā)送移位寄存器(),接著拷貝到發(fā)送移位寄存器(XSR1,XSR2),通過(guò)發(fā)送移位寄存器輸出至),通過(guò)發(fā)送移位寄存器輸出至DX引腳。同樣,當(dāng)接引腳。同樣,當(dāng)接收數(shù)據(jù)時(shí),收數(shù)據(jù)時(shí),D

43、R引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器引腳上接收到的數(shù)據(jù)先移位到接收移位寄存器(RSR1,RSR2),接著拷貝到接收緩沖寄存器(),接著拷貝到接收緩沖寄存器(RBR1,RBR2),),RBR再將數(shù)據(jù)拷貝到數(shù)據(jù)接收寄存器(再將數(shù)據(jù)拷貝到數(shù)據(jù)接收寄存器(DRR1,DRR2)中,并通知串口事件通知)中,并通知串口事件通知CPU或或DMA讀取數(shù)據(jù)。這讀取數(shù)據(jù)。這種多級(jí)緩沖方式使得片內(nèi)數(shù)據(jù)通信和串行數(shù)據(jù)通信能夠同時(shí)種多級(jí)緩沖方式使得片內(nèi)數(shù)據(jù)通信和串行數(shù)據(jù)通信能夠同時(shí)進(jìn)行。進(jìn)行。 McBSP的框圖的框圖 RSR1,2XSR1,2RBR1,2DRR1,2DXR1,28RCERs2MCRsPCR2SRCR

44、s2XCRs2RCRs2SPCRs8XCERsMcBSPExandCompressCompand數(shù)據(jù)、時(shí)鐘、數(shù)據(jù)、時(shí)鐘、幀同步控制和幀同步控制和監(jiān)測(cè)寄存器監(jiān)測(cè)寄存器多通道控制和多通道控制和監(jiān)測(cè)寄存器監(jiān)測(cè)寄存器DRDXCLKXCLKRFSXFSRCLKSXEVTAREVTAXEVTREVTXINTRINT16位位外設(shè)外設(shè)總線總線引腳引腳到到CPU的中斷的中斷到到DMA控控制器的同制器的同步事件步事件Multi-Channel Buffered Serial Port (McBSP)McBSP - Example時(shí)鐘和成幀數(shù)據(jù) (1)u數(shù)據(jù)的移動(dòng),是每次從數(shù)據(jù)的移動(dòng),是每次從DR引腳移動(dòng)引腳移動(dòng)1

45、bit到到RSR或者從或者從XSR移移動(dòng)動(dòng)1bit到到DX引腳。傳輸每一位的時(shí)間,由時(shí)鐘信號(hào)的上升沿引腳。傳輸每一位的時(shí)間,由時(shí)鐘信號(hào)的上升沿或下降沿控制?;蛳陆笛乜刂?。u數(shù)據(jù)數(shù)據(jù)bit組成一個(gè)串行字,在移位寄存器和數(shù)據(jù)引腳之間傳送。組成一個(gè)串行字,在移位寄存器和數(shù)據(jù)引腳之間傳送。用戶可以自定義串行字中的用戶可以自定義串行字中的bit數(shù)。數(shù)。u一個(gè)或多個(gè)串行字組成幀,同樣,用戶可以自定義每幀包含一個(gè)或多個(gè)串行字組成幀,同樣,用戶可以自定義每幀包含多少個(gè)字。一個(gè)幀的所有字節(jié)都連續(xù)傳送,但是幀和幀之間多少個(gè)字。一個(gè)幀的所有字節(jié)都連續(xù)傳送,但是幀和幀之間可以有停頓。可以有停頓。McBSP使用幀同步信

46、號(hào)來(lái)控制幀的發(fā)送和接收。使用幀同步信號(hào)來(lái)控制幀的發(fā)送和接收。uMcBSP允許用戶將幀配置成一段或者是兩段以求達(dá)到最高的允許用戶將幀配置成一段或者是兩段以求達(dá)到最高的傳輸速率。傳輸速率。u表表3.14說(shuō)明了接收控制寄存器(說(shuō)明了接收控制寄存器(RCR1和和RCR2)以及發(fā)送控)以及發(fā)送控制寄存器(制寄存器(XCR1和和XCR2)里決定每幀的段數(shù)、每段的字?jǐn)?shù)、)里決定每幀的段數(shù)、每段的字?jǐn)?shù)、每字的位數(shù)的每字的位數(shù)的bit域。每幀最多可以有域。每幀最多可以有4096位位 時(shí)鐘和成幀數(shù)據(jù) (2)操作操作段數(shù)段數(shù)每幀的字?jǐn)?shù)每幀的字?jǐn)?shù)每字的每字的bit數(shù)數(shù)接收接收1(RPHASE=0)RFRLEN1RWD

47、LEN1接收接收2 (RPHASE=1)RFRLEN1和和RFRLEN2段段1為為RWDLEN1段段2為為RWDLEN2發(fā)送發(fā)送1 (XPHASE=0)XFRLEN1XWDLEN1發(fā)送發(fā)送2 (XPHASE=1)XFRLEN1和和XFRLEN2段段1為為XWDLEN1段段2為為XWDLEN2McBSP接收數(shù)據(jù)流程(1)McBSP接收數(shù)據(jù)流程(2)(1)McBSP等待內(nèi)部FSR上的接收幀同步脈沖信號(hào);(2)幀同步脈沖到達(dá)時(shí),根據(jù)RCR2中RDATDLY位的設(shè)置,插入適當(dāng)?shù)臄?shù)據(jù)延遲。(上圖中為1bit數(shù)據(jù)延遲)(3)McBSP接收DR引腳上的數(shù)據(jù)bits,并將其移送到接收移位寄存器。如果字長(zhǎng)等于或

48、小于16 bits,只用RSR1。如果字長(zhǎng)大于16 bits,則要使用RSR2和RSR1,且RSR2中是高位數(shù)據(jù)。(4)當(dāng)接收到一個(gè)完整的字,如果RBR1為空,則將數(shù)據(jù)復(fù)制到接收緩存寄存器。(5)如果DRR1沒(méi)有被前面的數(shù)據(jù)占滿,McBSP將RBR中的數(shù)據(jù)復(fù)制到DRR。當(dāng)DRR1接收到新的數(shù)據(jù),SPCR1里面的就緒位置位,表示數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以讀取。(6)CPU或DMA控制器從數(shù)據(jù)接收寄存器讀取數(shù)據(jù)。當(dāng)DRR1被讀取,RRDY清0,開(kāi)始下一個(gè)RBR到DRR的復(fù)制。McBSP發(fā)送數(shù)據(jù)流程(1)McBSP發(fā)送數(shù)據(jù)流程(2)(1)CPU或或DMA控制器將數(shù)據(jù)寫(xiě)到數(shù)據(jù)發(fā)送寄存器。數(shù)據(jù)控制器將數(shù)據(jù)寫(xiě)到

49、數(shù)據(jù)發(fā)送寄存器。數(shù)據(jù)寫(xiě)到寫(xiě)到DXR1以后以后SPCR2中的發(fā)送就緒位中的發(fā)送就緒位XRDY清清0,表示,表示DXR1不能接收新的數(shù)據(jù)。如果字長(zhǎng)大于不能接收新的數(shù)據(jù)。如果字長(zhǎng)大于16 bit,則要使用,則要使用DXR2和和DXR1,DXR2中是高位。中是高位。(2)DXR1接收到一個(gè)新的數(shù)據(jù),接收到一個(gè)新的數(shù)據(jù),McBSP將將DXR的數(shù)據(jù)復(fù)的數(shù)據(jù)復(fù)制到發(fā)送移位寄存器。發(fā)送就緒制到發(fā)送移位寄存器。發(fā)送就緒bit(XRDY)置位,表示)置位,表示發(fā)送器已經(jīng)準(zhǔn)備好從發(fā)送器已經(jīng)準(zhǔn)備好從CPU或著或著DMA控制器接收數(shù)據(jù)。控制器接收數(shù)據(jù)。(3) McBSP等待等待FSX引腳上的發(fā)送幀同步信號(hào)。引腳上的發(fā)送

50、幀同步信號(hào)。(4) McBSP根據(jù)根據(jù)XCR2中中XDATDLY位的設(shè)置,插入適當(dāng)位的設(shè)置,插入適當(dāng)?shù)臄?shù)據(jù)延遲。的數(shù)據(jù)延遲。(5) McBSP將發(fā)送移位寄存器的數(shù)值移位到將發(fā)送移位寄存器的數(shù)值移位到DX引腳。引腳。McBSP的采樣率發(fā)生器 McBSP包括一個(gè)采樣率發(fā)生器包括一個(gè)采樣率發(fā)生器SRG,用于產(chǎn)生內(nèi)部數(shù)據(jù)時(shí)鐘,用于產(chǎn)生內(nèi)部數(shù)據(jù)時(shí)鐘CLKG和內(nèi)部幀和內(nèi)部幀同步信號(hào)同步信號(hào)FSG,如圖所示。,如圖所示。CLKG控制控制DR上數(shù)據(jù)的移位和上數(shù)據(jù)的移位和DX上的數(shù)據(jù)發(fā)送;上的數(shù)據(jù)發(fā)送;FSG控制控制DR和和DX上的幀同步。上的幀同步。 采樣率發(fā)生器的時(shí)鐘源可以由采樣率發(fā)生器的時(shí)鐘源可以由CPU

51、時(shí)鐘或外部引腳(時(shí)鐘或外部引腳(CLKS,CLKX或或CLKR)提供,時(shí)鐘源的選擇可以通過(guò)引)提供,時(shí)鐘源的選擇可以通過(guò)引腳控制寄存器腳控制寄存器PCR中的中的SCLKME字段和采樣率發(fā)生寄存器字段和采樣率發(fā)生寄存器SRGR2中的中的CLKSM字段來(lái)確定,參見(jiàn)下表。輸入信號(hào)的極字段來(lái)確定,參見(jiàn)下表。輸入信號(hào)的極性由性由SRGR2中的中的CLKSP字段、字段、PCR中的中的CLKXP字段或字段或CLKRP字段確定字段確定 。采樣率發(fā)生器輸入時(shí)鐘選擇采樣率發(fā)生器輸入時(shí)鐘選擇SCLKMECLKSM輸入時(shí)鐘輸入時(shí)鐘00CLKS引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘01CPU時(shí)鐘時(shí)鐘10CLK

52、R引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘11CLKX引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘采樣率發(fā)生器輸入時(shí)鐘極性選擇采樣率發(fā)生器輸入時(shí)鐘極性選擇輸入時(shí)鐘輸入時(shí)鐘極性選擇極性選擇說(shuō)明說(shuō)明CLKS引腳引腳CLKSP=0CLKSP=1CLKS為正極性,上升沿有效為正極性,上升沿有效CLKS為負(fù)極性,下升沿有效為負(fù)極性,下升沿有效CPU時(shí)鐘時(shí)鐘正極性正極性CPU時(shí)鐘為正極性,上升沿有效時(shí)鐘為正極性,上升沿有效CLKR引腳引腳CLKRP=0CLKRP=1CLKR為正極性,上升沿有效為正極性,上升沿有效CLKR為負(fù)極性,下升沿有效為負(fù)極性,下升沿有效CLKX引腳引腳CLKXP=0CL

53、KXP=1CLKX為正極性,上升沿有效為正極性,上升沿有效CLKX為負(fù)極性,下升沿有效為負(fù)極性,下升沿有效1采樣率發(fā)生器的輸出時(shí)鐘和幀同步信號(hào)采樣率發(fā)生器的輸出時(shí)鐘和幀同步信號(hào) 輸入的時(shí)鐘經(jīng)過(guò)分頻產(chǎn)生輸入的時(shí)鐘經(jīng)過(guò)分頻產(chǎn)生SRG輸出時(shí)鐘輸出時(shí)鐘CLKG。分頻值由采樣率發(fā)。分頻值由采樣率發(fā)生寄存器生寄存器SRGR1中的中的CLKGDV字段確定:字段確定:2551 1CLKGDVCLKGDVCLKG輸入時(shí)鐘頻率輸出時(shí)鐘頻率所以輸出的最高時(shí)鐘頻率是輸入時(shí)鐘頻率的一半。當(dāng)所以輸出的最高時(shí)鐘頻率是輸入時(shí)鐘頻率的一半。當(dāng)CLKGDV是奇數(shù)是奇數(shù)時(shí),時(shí),CLKG的占空比是的占空比是50%,當(dāng),當(dāng)CLKGDV

54、是偶數(shù)是偶數(shù)2p時(shí),時(shí),CLKG高電平持高電平持續(xù)時(shí)間為續(xù)時(shí)間為p+1個(gè)輸入時(shí)鐘周期,低電平持續(xù)時(shí)間為個(gè)輸入時(shí)鐘周期,低電平持續(xù)時(shí)間為p個(gè)輸入時(shí)鐘周期。個(gè)輸入時(shí)鐘周期。 幀同步信號(hào)幀同步信號(hào)FSG由由CLKG進(jìn)一步分頻而來(lái),分頻值由采樣率發(fā)生寄進(jìn)一步分頻而來(lái),分頻值由采樣率發(fā)生寄存器存器SRGR2中的中的FPER字段決定:字段決定:40950 1FPERFPERCLKGFSG時(shí)鐘頻率輸出時(shí)鐘頻率 幀同步脈沖的寬度由采樣率發(fā)生寄存器幀同步脈沖的寬度由采樣率發(fā)生寄存器SRGR1中的中的FWID字段決定:字段決定:2550 1FWIDCLKGFWIDFSG的周期)(脈寬2同步同步 SRG的輸入時(shí)鐘可

55、以是內(nèi)部時(shí)鐘,即的輸入時(shí)鐘可以是內(nèi)部時(shí)鐘,即CPU時(shí)鐘,也可以時(shí)鐘,也可以是來(lái)自是來(lái)自CLKX、CLKR和和CLKS引腳的外部輸入時(shí)鐘。當(dāng)采用引腳的外部輸入時(shí)鐘。當(dāng)采用外部時(shí)鐘源時(shí),一般需要同步,同步由采樣率發(fā)生寄存器外部時(shí)鐘源時(shí),一般需要同步,同步由采樣率發(fā)生寄存器SRGR2中的字段中的字段GSYNC控制??刂?。 l當(dāng)當(dāng)GSYNC=0時(shí),時(shí),SRG將自由運(yùn)行,并按將自由運(yùn)行,并按CLKDV、FPER和和FWID等參數(shù)的配置產(chǎn)生輸出時(shí)鐘;等參數(shù)的配置產(chǎn)生輸出時(shí)鐘;l當(dāng)當(dāng)GSYNC=1時(shí),時(shí),CLKG和和FSG將同步到外部輸入將同步到外部輸入時(shí)鐘。時(shí)鐘。多通道模式選擇 McBSP屬于多通道串口,

56、每個(gè)屬于多通道串口,每個(gè)McBSP最多可有最多可有128個(gè)通個(gè)通道。如圖道。如圖5-17所示,其多通道選擇部分由多通道控制寄存器所示,其多通道選擇部分由多通道控制寄存器MCR、接收使能寄存器、接收使能寄存器RCER和發(fā)送使能寄存器和發(fā)送使能寄存器XCER組成組成。其中,。其中,MCR可以禁止或使能全部可以禁止或使能全部128個(gè)通道,個(gè)通道,RCER和和XCER可以分別禁止或使能某個(gè)接收或發(fā)送通道。每個(gè)寄存可以分別禁止或使能某個(gè)接收或發(fā)送通道。每個(gè)寄存器控制器控制16個(gè)通道,因此個(gè)通道,因此128個(gè)通道共有個(gè)通道共有8個(gè)通道使能寄存器。個(gè)通道使能寄存器。1接收多通道選擇接收多通道選擇接收多通道的

57、選擇由接收多通道的選擇由MCR1中的中的RMCM位確定:位確定:當(dāng)當(dāng)RMCM=0,所有,所有128接收通道使能且不能被禁止。接收通道使能且不能被禁止。當(dāng)當(dāng)RMCM=1,接收多通道選擇模式使能。在這種情況下:,接收多通道選擇模式使能。在這種情況下:l通道可以獨(dú)立地被使能或禁止,使能通道的選擇由通道可以獨(dú)立地被使能或禁止,使能通道的選擇由接收通道使能寄存器接收通道使能寄存器RCER確定。確定。l如果某個(gè)接收通道被禁止,在這個(gè)通道上接收的數(shù)如果某個(gè)接收通道被禁止,在這個(gè)通道上接收的數(shù)據(jù)只傳輸?shù)浇邮站彌_寄存器據(jù)只傳輸?shù)浇邮站彌_寄存器RBR中,并不拷貝到中,并不拷貝到DRR,因此不會(huì)產(chǎn)生,因此不會(huì)產(chǎn)生D

58、MA同步事件。同步事件。2發(fā)送多通道選擇發(fā)送多通道選擇發(fā)送多通道的選擇由發(fā)送多通道的選擇由MCR2中的中的XMCM字段確定:字段確定:當(dāng)當(dāng)XMCM=00b,所有,所有128發(fā)送通道使能且不能被屏蔽;發(fā)送通道使能且不能被屏蔽;當(dāng)當(dāng)XMCM=01b,由發(fā)送使能寄存器,由發(fā)送使能寄存器XCER選擇通道,如該通選擇通道,如該通道沒(méi)有被選擇則該通道被禁止;道沒(méi)有被選擇則該通道被禁止;當(dāng)當(dāng)XMCM=10b,由,由XCER寄存器禁止通道,如果該通道沒(méi)有寄存器禁止通道,如果該通道沒(méi)有被禁止則通道使能;被禁止則通道使能;當(dāng)當(dāng)XMCM=11b,所有通道被禁止用,而只有當(dāng)對(duì)應(yīng)的接收通,所有通道被禁止用,而只有當(dāng)對(duì)應(yīng)

59、的接收通道使能寄存器道使能寄存器RCER使能時(shí)發(fā)送通道才被使能,當(dāng)該發(fā)送通使能時(shí)發(fā)送通道才被使能,當(dāng)該發(fā)送通道使能時(shí),由道使能時(shí),由XCER寄存器決定該通道是否被屏蔽。寄存器決定該通道是否被屏蔽。 McBSP的寄存器主要包括的寄存器主要包括3部分:收發(fā)通道寄存器、時(shí)部分:收發(fā)通道寄存器、時(shí)鐘和幀同步寄存器、多通道選擇寄存器。鐘和幀同步寄存器、多通道選擇寄存器。 1收發(fā)通道寄存器收發(fā)通道寄存器 收發(fā)通道中收發(fā)通道中CPU或或DMA控制器可以訪問(wèn)的寄存器包括數(shù)控制器可以訪問(wèn)的寄存器包括數(shù)據(jù)接收寄存器據(jù)接收寄存器DRR和數(shù)據(jù)發(fā)送寄存器和數(shù)據(jù)發(fā)送寄存器DXR。由于。由于McBSP支持支持8、12、16

60、、20、24或或32位的字長(zhǎng),當(dāng)字長(zhǎng)等于或小于位的字長(zhǎng),當(dāng)字長(zhǎng)等于或小于16位,位,只使用只使用DRR1/DXR1,當(dāng)字長(zhǎng)超過(guò),當(dāng)字長(zhǎng)超過(guò)16位,位,DRR1/DXR1存放低存放低16位,位,DRR2/DXR2存放其余數(shù)據(jù)位。存放其余數(shù)據(jù)位。2時(shí)鐘和幀同步寄存器時(shí)鐘和幀同步寄存器 時(shí)鐘和幀部分寄存器主要用于控制時(shí)鐘和幀同步信號(hào)的產(chǎn)時(shí)鐘和幀部分寄存器主要用于控制時(shí)鐘和幀同步信號(hào)的產(chǎn)生、收發(fā)數(shù)據(jù)幀格式和串口狀態(tài)的檢測(cè)等。生、收發(fā)數(shù)據(jù)幀格式和串口狀態(tài)的檢測(cè)等。(1) 串口控制寄存器串口控制寄存器 每個(gè)每個(gè)McBSP有兩個(gè)串口控制寄存器有兩個(gè)串口控制寄存器SPCR1和和SPCR2,用,用于控制于控制M

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論