




版權(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)中,采用了專(zhuān)為音頻處理應(yīng)用設(shè)計(jì)的編解碼器件理系統(tǒng)中,采用了專(zhuān)為音頻處理應(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)換。利用TMS320V
2、C5509A片內(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 McBSP 7.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)。是
3、各種語(yǔ)音信號(hào)數(shù)字處理的平臺(tái)。 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)的
4、播放。實(shí)現(xiàn)語(yǔ)音信號(hào)的播放。 系統(tǒng)硬件結(jié)構(gòu)框圖系統(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)度可變的指令可以使
5、每個(gè)函數(shù)的。這種長(zhǎng)度可變的指令可以使每個(gè)函數(shù)的 控制代碼量比控制代碼量比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)
6、行處理,處理過(guò)后的音頻數(shù)據(jù)再由DSP通過(guò)該通過(guò)該 接口傳回給音頻處理芯片,進(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接口原理圖 J5 J6 J7 J8 I2C (主) (從) TLV320AIC23的控制接口 接口模式 SPI或者或者I2C 選擇理由 在設(shè)計(jì)中,若采用在設(shè)計(jì)中,若采用SPI總線,則需要多占用一個(gè)總線,則需要多占用一個(gè) McBSP)資源,但是很多時(shí)候)資源,但是很多時(shí)候DSP的的McBSP資源會(huì)比資源會(huì)比 較緊張(比如需要跟近端較緊張(比如需要跟近端RS-232和遠(yuǎn)端和遠(yuǎn)端RS-48
7、5連接),連接), 考慮到系統(tǒng)的可擴(kuò)展性,在設(shè)計(jì)中采用了通過(guò)考慮到系統(tǒng)的可擴(kuò)展性,在設(shè)計(jì)中采用了通過(guò)I2C總線來(lái)總線來(lái) 配置配置AIC23。 MODE接口接口 0I2C 1SPI I2C模式下的時(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與 AIC2
8、3間的數(shù)字信號(hào)通信。 CS STATE ADDRES S 00011010 10011011 AIC23通過(guò)麥克風(fēng)采樣模擬音頻信號(hào)或直接輸入模擬音通過(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)行通信,一路
9、控制通過(guò)兩個(gè)獨(dú)立的通道進(jìn)行通信,一路控制AIC23 的端口配置寄存器;另一路發(fā)送和接收數(shù)字音頻信號(hào)。利用的端口配置寄存器;另一路發(fā)送和接收數(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ù)通道傳輸
10、。頻數(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í)鐘為提供。系統(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電源控制電源控制 00000
11、01右輸入聲道音量控制右輸入聲道音量控制0000111數(shù)字音頻接口格式數(shù)字音頻接口格式 0000010耳機(jī)左輸入聲道音量耳機(jī)左輸入聲道音量 控制控制 0001000采樣率控制采樣率控制 0000011耳機(jī)右輸入聲道音量耳機(jī)右輸入聲道音量 控制控制 0001001數(shù)字接口激活數(shù)字接口激活 0000100模擬音頻通道控制模擬音頻通道控制0001111復(fù)位寄存器復(fù)位寄存器 0000101數(shù)字音頻通道控制數(shù)字音頻通道控制 在在5509A與與AIC23的連接中,的連接中,McBSP的接收和發(fā)送工作的接收和發(fā)送工作 在同步方式下,接收和發(fā)送可以獨(dú)立配置,利用在同步方式下,接收和發(fā)送可以獨(dú)立配置,利用550
12、9A的的 I2C模塊,可以對(duì)模塊,可以對(duì)AIC23內(nèi)部的配置寄存器進(jìn)行編程配置,內(nèi)部的配置寄存器進(jìn)行編程配置, 使使AIC23工作在要求的狀態(tài)下。工作在要求的狀態(tài)下。 首先對(duì)首先對(duì)5509A的的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,程序
13、,程序 中發(fā)送數(shù)據(jù)的函數(shù)在設(shè)備忙的情況下不會(huì)返回,而是等待其中發(fā)送數(shù)據(jù)的函數(shù)在設(shè)備忙的情況下不會(huì)返回,而是等待其 準(zhǔn)備好并接收數(shù)據(jù)完畢才返回,所以程序中無(wú)需使用任何控準(zhǔn)備好并接收數(shù)據(jù)完畢才返回,所以程序中無(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
14、_ANALOG_AUDIO_CTL, ANAPCTL_DAC ,ANAPCTL_INSEL); / 使用麥克風(fēng)音源 AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0); / 打開(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,
15、 DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP); AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_8 | 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è)置
16、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)部修改這個(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ā)生器 CLKIN CPU時(shí)鐘時(shí)
17、鐘 CLKDIV CLKOUT CPU、外設(shè)或者其他器件、外設(shè)或者其他器件 圖1-3 時(shí)鐘輸出 時(shí)鐘發(fā)生器 時(shí)鐘發(fā)生器,它可以利用數(shù)字鎖相環(huán)(時(shí)鐘發(fā)生器,它可以利用數(shù)字鎖相環(huán)(DPLL)分頻)分頻 或者倍頻輸入時(shí)鐘頻率(從或者倍頻輸入時(shí)鐘頻率(從CLKIN引腳接收),然后分引腳接收),然后分 別送到別送到CPU、外設(shè)和、外設(shè)和C55x DSP內(nèi)的其他模塊,以使它們內(nèi)的其他模塊,以使它們 工作在所要的時(shí)鐘頻率。工作在所要的時(shí)鐘頻率。 可編程分頻器可編程分頻器 7.3.1 I2C(Inter-Integrated Circuit 內(nèi)部集成電路)模塊 TMS320C55x可以通過(guò)可以通過(guò)I2C串行總
18、線同其他串行總線同其他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é)格式傳輸,支持字節(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ě)操
19、作和處理非法操作中斷;完成讀寫(xiě)操作和處理非法操作中斷; l模塊的工作頻率為模塊的工作頻率為12MHz; l模塊可以使能和被禁止。模塊可以使能和被禁止。 I2C總線連接關(guān)系總線連接關(guān)系 I2C總線使用一條串行數(shù)據(jù)線總線使用一條串行數(shù)據(jù)線SDA和一條串行時(shí)鐘線和一條串行時(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í),可
20、以通過(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)器、噪音過(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ù)
21、據(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í)則低,之后時(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è)字
22、節(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ù)據(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位地址。下面分別給出了位
23、地址。下面分別給出了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ā)送模式和從接收模式,接下來(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ù)同
24、自己產(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)檩斎?,而時(shí)鐘仍然由主方產(chǎn)當(dāng)?shù)刂钒l(fā)送完后,數(shù)據(jù)線變?yōu)檩斎?,而時(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))從接收模式:從接
25、收模式的數(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ě)位為并且讀寫(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è)
26、以上主設(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è)二進(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)入從接收模
27、式, 并同時(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)下,只有一個(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è)備
28、首先在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被釋放后開(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處理,這處理
29、,這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ā)送寄存器同步讀取接收數(shù)據(jù),另一種是向數(shù)據(jù)發(fā)送寄存器 ICDXR同步寫(xiě)入發(fā)送數(shù)據(jù)。同步寫(xiě)入發(fā)送數(shù)據(jù)。 5I2C模塊的禁止與使能模塊的禁止與使能 I2C模塊可以通過(guò)模塊可以通過(guò)I2C模式寄存器模式寄存器ICMDR中的復(fù)位使中的復(fù)位使 能位(能位(IR
30、S)使能或被禁止。)使能或被禁止。 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í)鐘。 IPSCd 07 16 大于大于15 d的值取決于分頻值的值取決于分頻值IPSC mod ()() mst f f ICCLdICCHd mod 2 1 I C f IPSC 輸入時(shí)鐘頻率 IPSC:分頻系數(shù),在預(yù)分頻寄存器:分頻系數(shù),在預(yù)分頻寄存器 (I2CPSC)中設(shè)置中設(shè)置
31、 ICCL:在寄存器:在寄存器I2CCLKL中設(shè)置中設(shè)置 ICCH:在寄存器:在寄存器I2CCLKH中設(shè)置中設(shè)置 具體情況參看具體情況參看TMS320C55x DSP Peripherals Reference Guide 下面給出下面給出I2C模塊的寄存器表,并簡(jiǎn)要說(shuō)明它們的功能。模塊的寄存器表,并簡(jiǎn)要說(shuō)明它們的功能。 I2C模塊的寄存器模塊的寄存器 寄存器寄存器說(shuō)明說(shuō)明功能功能 ICOARI2C自身地址寄存器自身地址寄存器保存自己作為從設(shè)備的保存自己作為從設(shè)備的7位或位或10位地址位地址 ICIMRI2C中斷屏蔽寄存器中斷屏蔽寄存器設(shè)置中斷類(lèi)型是否屏蔽設(shè)置中斷類(lèi)型是否屏蔽 ICSTRI2C
32、中斷狀態(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é)束傳輸 ICDRRI2C數(shù)據(jù)接收寄存器數(shù)據(jù)接收寄存器供供DSP讀取接收的數(shù)據(jù)讀取接收的數(shù)據(jù) I2C模塊的寄存器(續(xù))模塊的寄存器(續(xù)) ICSARI2C從地址寄存
33、器從地址寄存器存放所要通信的從設(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引腳引腳 ICPSCI2C預(yù)定標(biāo)寄存器預(yù)定標(biāo)寄存器用來(lái)對(duì)系統(tǒng)時(shí)鐘分頻以獲得用來(lái)對(duì)系統(tǒng)時(shí)鐘分頻以獲得12M時(shí)鐘時(shí)鐘 ICRSRI2C接收移位寄存器
34、接收移位寄存器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空間的寄存器。空間的寄存器。 I2C模塊用這個(gè)寄存器來(lái)指定模塊用這個(gè)寄存器來(lái)指定 自身的從設(shè)備地址,與自身的從設(shè)備地址,與I2C總線上其它設(shè)備區(qū)分開(kāi)。如果總線上其它設(shè)備區(qū)分開(kāi)。如果 選擇選擇7-bit尋址模式(尋址模式(I2CMDR中的中的XA0),只用到),只用到 I2COAR中的中的bit 60,對(duì),對(duì)bit 97寫(xiě)寫(xiě)0。 bit域域值值說(shuō)說(shuō)
35、明明 1510保留保留0讀的返回值總是讀的返回值總是0,寫(xiě)無(wú)效,寫(xiě)無(wú)效 90OAR007Fh 0003F Fh 7bit尋址模式尋址模式(I2MDR中中XA0) 提供提供I2C模塊模塊7-bit的從地址,的從地址,bit 97寫(xiě)寫(xiě)0 10bit尋址模式尋址模式(I2MDR中中XA1) 提供提供I2C模塊模塊10-bit的從地址的從地址 I2C從地址寄存器(I2CSAR) I2C從地址寄存器從地址寄存器是一個(gè)是一個(gè)16-bit I/O映射寄存器,映射寄存器, I2CSAR中的中的SAR域包含了一個(gè)域包含了一個(gè)7-bit或者或者10-bit的從地址。的從地址。 如果選擇如果選擇7-bit尋址模式(
36、尋址模式(I2CMDR中的中的XA0),只用到),只用到 I2CSAR中的中的bit 60,對(duì),對(duì)bit 97寫(xiě)寫(xiě)0。 bit域域值值說(shuō)說(shuō) 明明 1510保留保留0讀的返回值總是讀的返回值總是0,寫(xiě)無(wú)效,寫(xiě)無(wú)效 90SAR007Fh 0003FF h 7bit尋址模式(尋址模式(I2MDR中中XA0) 當(dāng)當(dāng)I2C為主發(fā)送設(shè)備時(shí),為主發(fā)送設(shè)備時(shí),bit60提供提供7-bit的的 從設(shè)備地址,從設(shè)備地址,bit90寫(xiě)寫(xiě)0 10bit尋址模式(尋址模式(I2MDR中中XA1) 當(dāng)當(dāng)I2C為主發(fā)送設(shè)備時(shí),為主發(fā)送設(shè)備時(shí),bit90提供提供10-bit 的從設(shè)備地址的從設(shè)備地址 I2C預(yù)分頻寄存器(I2
37、CPSC) 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ú)效 70IPSC007Fh 00FFh I2C的預(yù)分頻值,它決定了怎樣將的預(yù)分頻值,它決定了怎樣將CPU 時(shí)鐘分頻,獲得時(shí)鐘分頻,獲得I2C模塊時(shí)鐘;模塊時(shí)鐘; 模塊時(shí)鐘頻率模塊時(shí)鐘頻率I2C輸入時(shí)鐘頻率輸入時(shí)鐘頻率/( IPSC+1) 注意:當(dāng)注意:當(dāng)I2C復(fù)位時(shí)(復(fù)位時(shí)(I2CMDR中中 IRS=0
38、),必須對(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í)間。電平為低的持續(xù)時(shí)間。 I2CCLKH的的ICCH
39、 :對(duì)于每個(gè)主時(shí)鐘周期,:對(duì)于每個(gè)主時(shí)鐘周期,ICCH決定信決定信 號(hào)電平為高的持續(xù)時(shí)間。號(hào)電平為高的持續(xù)時(shí)間。 I2C時(shí)鐘分頻寄存器(I2CCLKL和 I2CCLKH)(2) bit域域值值說(shuō)說(shuō) 明明 15 0 ICC L 0000h FFFF h 時(shí)鐘低電平時(shí)間分頻值(時(shí)鐘低電平時(shí)間分頻值(165 535)。為了)。為了 產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)鐘產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)鐘 周期乘以(周期乘以(ICCLd),),d5、6、7 bit域域值值說(shuō)說(shuō) 明明 15 0 ICCH0000h FFFF h 時(shí)鐘高電平時(shí)間分頻值(時(shí)鐘高電平時(shí)間分頻值(165 535)。為了)。為
40、了 產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí)產(chǎn)生主時(shí)鐘的低電平持續(xù)時(shí)間,將模塊時(shí) 鐘周期乘以(鐘周期乘以(ICCLd),),d5、6、7 I2C時(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è)直接的串行接口,它可以提供到其它C55x
41、x 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能夠向
42、能夠向CPU發(fā)送中斷,向發(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ā)送,
43、數(shù)據(jù)接收引腳DR負(fù)責(zé)數(shù)據(jù)的接收,負(fù)責(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引腳。同樣
44、,當(dāng)接引腳。同樣,當(dāng)接 收數(shù)據(jù)時(shí),收數(shù)據(jù)時(shí),DR引腳上接收到的數(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,2 XSR1,2 RBR1,2
45、DRR1,2 DXR1,2 8RCERs 2MCRs PCR 2SRCRs 2XCRs 2RCRs 2SPCRs 8XCERs McBSP Exand Compress Compand 數(shù)據(jù)、時(shí)鐘、數(shù)據(jù)、時(shí)鐘、 幀同步控制和幀同步控制和 監(jiān)測(cè)寄存器監(jiān)測(cè)寄存器 多通道控制和多通道控制和 監(jiān)測(cè)寄存器監(jiān)測(cè)寄存器 DR DX CLKX CLKR FSX FSR CLKS XEVTA REVTA XEVT REVT XINT RINT 16位位 外設(shè)外設(shè) 總線總線 引腳引腳 到到CPU 的中斷的中斷 到到DMA控控 制器的同制器的同 步事件步事件 Multi-Channel Buffered Seria
46、l Port (McBSP) McBSP - Example 時(shí)鐘和成幀數(shù)據(jù) (1) u數(shù)據(jù)的移動(dòng),是每次從數(shù)據(jù)的移動(dòng),是每次從DR引腳移動(dòng)引腳移動(dòng)1bit到到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è)串行字組成幀,同樣,用戶可以自定
47、義每幀包含 多少個(gè)字。一個(gè)幀的所有字節(jié)都連續(xù)傳送,但是幀和幀之間多少個(gè)字。一個(gè)幀的所有字節(jié)都連續(xù)傳送,但是幀和幀之間 可以有停頓??梢杂型nD。McBSP使用幀同步信號(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域。每
48、幀最多可以有域。每幀最多可以有4096位位 時(shí)鐘和成幀數(shù)據(jù) (2) 操作操作段數(shù)段數(shù)每幀的字?jǐn)?shù)每幀的字?jǐn)?shù)每字的每字的bit數(shù)數(shù) 接收接收1(RPHASE=0)RFRLEN1RWDLEN1 接收接收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為為 XWDLEN2 McBSP接收數(shù)據(jù)流程(1) McBSP接收數(shù)據(jù)流程(2) (1)McBSP等待內(nèi)部FSR上的接收幀同
49、步脈沖信號(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)等于或小于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
50、或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ě)到數(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ù)
51、制到發(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ā)送幀同步信號(hào)。 (4) McBSP根據(jù)根據(jù)XCR2中中XDATDLY位的設(shè)置,插入適當(dāng)位的設(shè)置,插入適當(dāng) 的數(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ù)
52、時(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時(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)的極 性由性由SR
53、GR2中的中的CLKSP字段、字段、PCR中的中的CLKXP字段或字段或 CLKRP字段確定字段確定 。 采樣率發(fā)生器輸入時(shí)鐘選擇采樣率發(fā)生器輸入時(shí)鐘選擇 SCLKMECLKSM輸入時(shí)鐘輸入時(shí)鐘 00CLKS引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘 01CPU時(shí)鐘時(shí)鐘 10CLKR引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘 11CLKX引腳上的信號(hào)作為輸入時(shí)鐘引腳上的信號(hào)作為輸入時(shí)鐘 采樣率發(fā)生器輸入時(shí)鐘極性選擇采樣率發(fā)生器輸入時(shí)鐘極性選擇 輸入時(shí)鐘輸入時(shí)鐘極性選擇極性選擇說(shuō)明說(shuō)明 CLKS引腳引腳 CLKSP=0 CLKSP=1 CLKS為正極性,上升沿有效為正極性,上升沿有效
54、 CLKS為負(fù)極性,下升沿有效為負(fù)極性,下升沿有效 CPU時(shí)鐘時(shí)鐘正極性正極性CPU時(shí)鐘為正極性,上升沿有效時(shí)鐘為正極性,上升沿有效 CLKR引腳引腳 CLKRP=0 CLKRP=1 CLKR為正極性,上升沿有效為正極性,上升沿有效 CLKR為負(fù)極性,下升沿有效為負(fù)極性,下升沿有效 CLKX引腳引腳 CLKXP=0 CLKXP=1 CLKX為正極性,上升沿有效為正極性,上升沿有效 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ā)。
55、分頻值由采樣率發(fā) 生寄存器生寄存器SRGR1中的中的CLKGDV字段確定:字段確定: 2551 1 CLKGDV CLKGDV CLKG 輸入時(shí)鐘頻率 輸出時(shí)鐘頻率 所以輸出的最高時(shí)鐘頻率是輸入時(shí)鐘頻率的一半。當(dāng)所以輸出的最高時(shí)鐘頻率是輸入時(shí)鐘頻率的一半。當(dāng)CLKGDV是奇數(shù)是奇數(shù) 時(shí),時(shí),CLKG的占空比是的占空比是50%,當(dāng),當(dāng)CLKGDV是偶數(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)一步分
56、頻而來(lái),分頻值由采樣率發(fā)生寄 存器存器SRGR2中的中的FPER字段決定:字段決定: 40950 1 FPER FPER CLKG FSG 時(shí)鐘頻率 輸出時(shí)鐘頻率 幀同步脈沖的寬度由采樣率發(fā)生寄存器幀同步脈沖的寬度由采樣率發(fā)生寄存器SRGR1中的中的FWID字段決定:字段決定: 2550 1FWIDCLKGFWIDFSG的周期)(脈寬 2同步同步 SRG的輸入時(shí)鐘可以是內(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í)鐘源
57、時(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屬于多通道串口,每個(gè)屬于多通道串口,每個(gè)McBSP最多可有最多可有128個(gè)通個(gè)通 道。如圖道。如圖5-17所示,其多通道選擇部分由多通道控制寄存器所示,其多通道選擇部分由多通道控制寄存器 MCR、接收使能寄存器、接收使能寄存器RCER
58、和發(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接收多通道選擇接收多通道選擇 接收多通道的選擇由接收多通道的選擇由MCR1中的中的RMCM位確定:位確定: 當(dāng)當(dāng)RMCM=0,所有,所有128接收通道使能且不能被禁止。接收通道使能且不能被禁止。 當(dāng)當(dāng)RMCM=1,接收多通道選擇模式使能。在這種情
59、況下:,接收多通道選擇模式使能。在這種情況下: l通道可以獨(dú)立地被使能或禁止,使能通道的選擇由通道可以獨(dú)立地被使能或禁止,使能通道的選擇由 接收通道使能寄存器接收通道使能寄存器RCER確定。確定。 l如果某個(gè)接收通道被禁止,在這個(gè)通道上接收的數(shù)如果某個(gè)接收通道被禁止,在這個(gè)通道上接收的數(shù) 據(jù)只傳輸?shù)浇邮站彌_寄存器據(jù)只傳輸?shù)浇邮站彌_寄存器RBR中,并不拷貝到中,并不拷貝到DRR ,因此不會(huì)產(chǎn)生,因此不會(huì)產(chǎn)生DMA同步事件。同步事件。 2發(fā)送多通道選擇發(fā)送多通道選擇 發(fā)送多通道的選擇由發(fā)送多通道的選擇由MCR2中的中的XMCM字段確定:字段確定: 當(dāng)當(dāng)XMCM=00b,所有,所有128發(fā)送通道使能
60、且不能被屏蔽;發(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)的接收通 道使能寄存器道使能寄存器RCER使能時(shí)發(fā)送通道才被使能,當(dāng)該發(fā)送通使能時(shí)發(fā)送通道才被使能,當(dāng)該發(fā)送通 道使能時(shí),由道使能時(shí),由XCER寄存器決定該通道是否被屏蔽。寄
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽油機(jī)技術(shù)講解
- 投標(biāo)文件技術(shù)標(biāo)
- 秋季衛(wèi)生教育實(shí)施要點(diǎn)
- 山東省文登市大水泊中學(xué)2026屆高一化學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- 膝關(guān)節(jié)疾病的預(yù)防與治療
- 眩暈癥中醫(yī)護(hù)理
- 醫(yī)院周年慶方案
- 音樂(lè)酒吧工作匯報(bào)
- 嫌疑人x的獻(xiàn)身日版
- 團(tuán)日活動(dòng)評(píng)比展示方案
- 文檔管理系統(tǒng)方案
- 運(yùn)用PDCA降低I類(lèi)切口感染率模板課件
- 特種設(shè)備安全管理課件-電梯安全知識(shí)
- 車(chē)輛轉(zhuǎn)讓合同電子版下載可打印
- 深圳填海工程施工實(shí)施方案
- BB/T 0023-2017紙護(hù)角
- 建設(shè)集團(tuán)有限公司安全生產(chǎn)管理制度匯編
- 行為習(xí)慣養(yǎng)成教育校本教材
- 疫苗運(yùn)輸溫度記錄表
- logopress3培訓(xùn)視頻教程整套模具大綱
- DB32-T 2945-2016硬質(zhì)合金刀具PVD涂層測(cè)試方法-(高清現(xiàn)行)
評(píng)論
0/150
提交評(píng)論