SSI總線協議
從圖中可看出,SSI模塊由發送電路、接收電路、串行時鐘和幀同步時鐘產生電路組成。發送電路和接收電路相互獨立,但是共用串行時鐘和幀同步時鐘。
SSI模塊引腳信號描述:
SSICLKIN:SSI時鐘輸入信號。
SSI_BCLK:SSI串行比特時鐘。
SSI_MCLK:SSI串行主時鐘信號,在SSI主模式下,該信號也作為過采樣時鐘信號。
SSI_FS:SSI串行幀同步信號。
SSL_RXD:SSI串行接收數據信號。
SSI_TXD:SSI串行發送數據信號。
SSI的操作模式有3種基本同步操作模式:普通模式、網絡模式和門時鐘模式。
普通模式是最簡單的模式,一幀內只能傳輸一個字,而且每一幀都需要幀同步信號來控制同步;網絡模式主要用于多時隙的情況下,一幀內可以傳輸2個字到32個字不等;門時鐘SSI_BCLK模式下,串行比特時鐘SSI_BCLK指示了發送引腳或接收引腳上的有效數據,所以不需要幀同步信號。
除了上述3種基本模式外,針對音頻上的應用,SSI還支持兩種衍生模式——I2S模式和AC97模式,分別用于傳輸I2S和AC97音頻格式數據。
SSI的初始化,初始化SSI模塊的正確順序:①上電或重啟SSI(SSI_CR[SSI_EN]=0),即關閉SSI模塊功能。②配置SSI模塊。涉及的寄存器包括控制寄存器SSI_CR、中斷允許寄存器SSI_IER、發送配置寄存器SSI_TCR、接收配置寄存器SSI_RCR和時鐘控制寄存器SSI_CCR。③通過SSI_IER寄存器設置必要的中斷或DMA。 ④設置SSI_CR[SSI_EN]=1允許SSI模塊功能。⑤設置SSI_CR[TE/RE],開始發送/接收數據。
SSI的工作過程
(1)發送數據:單通道時,數據從串行發送數據寄存器SSI_TX0中傳到發送移位寄存器TXSR中,再通過串行發送引腳SSI_TXD發送出去,然后根據用戶設置情況決定是否產生發送中斷。如果發送緩沖區TXFIFOO被允許,則SSI_TX0繼續從TXFIFOO中取數據,直到TXFIFOO中的數據全部被發送,再通過用戶設置情況決定是否產生發送中斷。雙通道時,發送移位寄存器TXSR交替從SSI_TX0和SSI_TXl中取出數據。
(2)接收數據:單通道時,數據從串行接收引腳SSI_RXD進來,由接收移位寄存器RXSR傳輸給接收數據寄存器SSI_RX0,再根據用戶設置情況決定是否產生接收中斷。如果接收緩沖區RXFIFOO被允許,則SSI_RX0將數據寫入RXFIFOO,并繼續從接收移位寄存器中獲取數據。雙通道時,接收移位寄存器RXSR交替將數據傳輸給SSI_RX0和SSI_RXl。
評論