嵌入式系統中I2S總線數據通信的軟件模擬
在上面2種數據傳輸格式中,當WS為“1”時傳輸的是左聲道的數據,當WS為“0”時傳輸的是右聲道的數據。為了保證數字音頻信號的正確傳輸,發送端和接收端必須采用相同的數據格式。
以太網數字語音廣播系統主要是指以以太網為傳播介質提供音頻服務的廣播系統,將語音信號以標準IP包的形式在以太網上進行傳送,以實現語音廣播功能。該系統在PC機端通過麥克風采集語音數據,然后將采集到的語音數據通過以太網發送給嵌入式終端,嵌入式終端將接收到的語音數據進行數/模轉換后進行播放。系統實現框圖如圖4所示[5]。
圖4 以太網數字語音廣播系統框圖
圖5 LM3S8962與MS6336的連接圖
廣播系統終端的MCU LM3S8962將接收到的語音數據通過I2S總線發送給語音解碼芯片MS6336進行數/模轉換并播放,
LM3S8962和MS6336的連接如圖5所示。為了完整還原出語音信號,需要保證軟件模擬I2S信號時序嚴格精確,高低電平的轉換采用延時程序實現。MS6336為16位D/A芯片,其I2S時序如圖6所示。
圖6 MS6336的典型I2S時序圖
該系統中的語音數據雙聲道,16位采樣,1個采樣點的數據為4字節,1個采樣點數據通過MCU發送給MS6336,數據發送流程如圖7所示。
圖7 1個采樣點數據發送流程
#define I2S_WS GPIO_PIN_5//模擬I2S聲道選擇時鐘控制位
#define I2S_BCK GPIO_PIN_6//模擬I2S位時鐘控制位
#define I2S_DATA GPIO_PIN_7//模擬I2S數據傳送位
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論