引 言
隨著嵌入式系統(tǒng)的廣泛應(yīng)用,系統(tǒng)內(nèi)串口通信的需求越來越高,串行數(shù)據(jù)傳輸的協(xié)議也多樣化,常用的有SSI、SPI、I2C、UART等。其中,SSI是一種帶有幀同步信號(hào)的串行數(shù)據(jù)協(xié)議。微處理器MCF5329中的SSI接口除了能用作一般的串行數(shù)據(jù)傳輸外,由于它帶有的幀同步信號(hào)可用作左右聲道數(shù)據(jù)的同步,支持兩種音頻總線接口(I2S和AC97接口),所以它還能用作音頻數(shù)據(jù)的傳輸。
TLV320DAC23是TI公司推出的高性能立體聲高端編解碼芯片,支持多種采樣率和多種音頻格式,并具有功耗低、封裝小的特點(diǎn),廣泛應(yīng)用于便攜式數(shù)字音頻處理系統(tǒng)中。
1 同步串行接口SSI的工作原理
Synchronous SerialInterface(SSI)是一個(gè)全雙工的串行接口,允許芯片與多種串行設(shè)備通信。它是高精度絕對值角度編碼器中一種較常用的接口方式,它采用主機(jī)主動(dòng)式讀出方式,即在主控者發(fā)出的時(shí)鐘脈沖的控制下,從最高有效位(MSB)開始同步傳輸數(shù)據(jù)。SSI模塊結(jié)構(gòu)如圖1所示。
從圖中可看出,SSI模塊由發(fā)送電路、接收電路、串行時(shí)鐘和幀同步時(shí)鐘產(chǎn)生電路組成。發(fā)送電路和接收電路相互獨(dú)立,但是共用串行時(shí)鐘和幀同步時(shí)鐘。
1.1 SSI模塊引腳信號(hào)描述
SSLCLKIN:SSI時(shí)鐘輸入信號(hào)。
SSLBCLK:SSI串行比特時(shí)鐘。
SSLMCLK:SSI串行主時(shí)鐘信號(hào),在SSI主模式下,
該信號(hào)也作為過采樣時(shí)鐘信號(hào)。
SSI_FS:SSI串行幀同步信號(hào)。
SSLRXD:SSI串行接收數(shù)據(jù)信號(hào)。
SSI_TXD:SSI串行發(fā)送數(shù)據(jù)信號(hào)。
1.2 SSI的操作模式
SSI有3種基本同步操作模式:普通模式、網(wǎng)絡(luò)模式和門時(shí)鐘模式。
普通模式是最簡單的模式,一幀內(nèi)只能傳輸一個(gè)字,而且每一幀都需要幀同步信號(hào)來控制同步;網(wǎng)絡(luò)模式主要用于多時(shí)隙的情況下,一幀內(nèi)可以傳輸2個(gè)字到32個(gè)字不等;門時(shí)鐘SSI_BCLK模式下,串行比特時(shí)鐘SSI_BCLK指示了發(fā)送引腳或接收引腳上的有效數(shù)據(jù),所以不需要幀同步信號(hào)。
除了上述3種基本模式外,針對音頻上的應(yīng)用,SSI還支持兩種衍生模式——I2S模式和AC97模式,分別用于傳輸I2S和AC97音頻格式數(shù)據(jù)。
1.3 SSI的初始化
初始化SSI模塊的正確順序:
①上電或重啟SSI(SSI_CR[SSI_EN]=0),即關(guān)閉SSI模塊功能。
②配置SSI模塊。涉及的寄存器包括控制寄存器SSI_CR、中斷允許寄存器SSI_IER、發(fā)送配置寄存器SSI_TCR、接收配置寄存器SSI_RCR和時(shí)鐘控制寄存器SSI_CCR。
③通過SSI_IER寄存器設(shè)置必要的中斷或DMA。
④設(shè)置SSI_CR[SSI_EN]=1允許SSI模塊功能。
⑤設(shè)置SSI_CR[TE/RE],開始發(fā)送/接收數(shù)據(jù)。