《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 用單片機(jī)實(shí)現(xiàn)基于I2C串行總線(xiàn)的音頻處理系統(tǒng)
用單片機(jī)實(shí)現(xiàn)基于I2C串行總線(xiàn)的音頻處理系統(tǒng)
國(guó)外電子元器件
方劍鋒 陳文薌 關(guān)明杰
摘要: "/>用單片機(jī)實(shí)現(xiàn)基于I2C串行總線(xiàn)的音頻處理系統(tǒng)-單片機(jī)-電子工程世界網(wǎng)<linkhref="http://1.eewimg.cn/favicon.ico"rel="shortcuticon
Abstract:
Key words :

  目前,,消費(fèi)類(lèi)電子產(chǎn)品(如彩電,、音響等)的功能多樣化使得控制電路變得更為復(fù)雜,。而Philips公司推出的集成電路芯片間總線(xiàn)I2C" title="I2C">I2CBUS(Inter ICBUS)是目前眾多總線(xiàn)中最簡(jiǎn)潔有效,、使用也為廣泛的一種總線(xiàn)格式,。I2C總線(xiàn)通常是以硬件來(lái)實(shí)現(xiàn)的,,這就要求所選器件必須具有I2C總線(xiàn)接口,但目前廣泛使用的MCS-51系列單片機(jī)" title="單片機(jī)">單片機(jī)并不具備I2C總線(xiàn)的專(zhuān)用硬件部分,。本文結(jié)合筆者采用單片機(jī)8031實(shí)現(xiàn)對(duì)具有I2C總線(xiàn)接口的立體聲音頻處理" title="音頻處理">音頻處理芯片TDA7313" title="TDA7313">TDA7313的控制,,介紹了I2C總線(xiàn)以及基于I2C串行總線(xiàn)的單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法和程序。 

  1 I2C總線(xiàn)簡(jiǎn)介

  1.1 I2C總線(xiàn)的組成

  I2C串行總線(xiàn)是用雙向數(shù)據(jù)線(xiàn)(SDA)和串行時(shí)鐘線(xiàn)(SCL)兩根信號(hào)線(xiàn),,在連接到該總線(xiàn)的器件之間傳送信息,。它屬于多主控器總線(xiàn),圖1所示是其組成框圖,??偩€(xiàn)上的每個(gè)器件均可設(shè)置一個(gè)唯一地址,然后根據(jù)所設(shè)的功能進(jìn)行信息的發(fā)送或接收,。除了作為發(fā)送器和接收器以外,,在執(zhí)行數(shù)據(jù)傳輸時(shí),總線(xiàn)的器件還可以設(shè)定為主控器和被控器,。通常由主控器啟動(dòng)總線(xiàn)上的數(shù)據(jù)傳輸,,并產(chǎn)生數(shù)據(jù)傳輸所需的時(shí)鐘信號(hào)。而被其尋址的其它器件均為被控器,,這意味著總線(xiàn)上可連接多個(gè)有控制總線(xiàn)的器件,。 

組成框圖

  I2C總線(xiàn)上的數(shù)據(jù)傳輸率為100 kbit/s,快速方式下可達(dá)400 kbit/s,。連接到總線(xiàn)上的器件數(shù)僅受400 pF的總線(xiàn)電容的限制,。同時(shí),為了避免總線(xiàn)信號(hào)的混亂,,要求連接到總線(xiàn)上的各器件輸出端必須是集電極開(kāi)路或漏極開(kāi)路,,以便產(chǎn)生“線(xiàn)與”功能。I2C總線(xiàn)上的SDA和SCL線(xiàn)都是雙向傳輸線(xiàn),,它們可通過(guò)一個(gè)電阻連接到正電源端,,當(dāng)總線(xiàn)處于空閑狀態(tài)時(shí),,兩條線(xiàn)均為高電平。 

  1.2 I2C總線(xiàn)數(shù)據(jù)傳輸格式

  在I2C總線(xiàn)傳輸過(guò)程中,,僅當(dāng)總線(xiàn)空閑(SCL線(xiàn)和SDA線(xiàn)均為高電平)時(shí),,數(shù)據(jù)傳送才能開(kāi)始,此時(shí)總線(xiàn)上的任何器件均可以控制總線(xiàn),。圖2所示是兩種特定的開(kāi)始和停止條件,,其中當(dāng)SCL線(xiàn)為高電平且SDA線(xiàn)由高變低時(shí)為開(kāi)始條件(S);而當(dāng)SCL線(xiàn)為高電平且SDA線(xiàn)由低變高時(shí)為結(jié)束條件(P),。在數(shù)據(jù)傳送過(guò)程中,,當(dāng)SCL線(xiàn)為高電平時(shí),SDA線(xiàn)必須是穩(wěn)定的高或低電平才能使數(shù)據(jù)有效,。只有當(dāng)SCL線(xiàn)上的時(shí)鐘信號(hào)為低時(shí),,SDA線(xiàn)的狀態(tài)才能改變,且每位數(shù)據(jù)需一個(gè)時(shí)鐘脈沖,。所有數(shù)據(jù)都是按字節(jié)發(fā)送的,,每次發(fā)送的字節(jié)數(shù)不限。每發(fā)送完一個(gè)字節(jié),,主控器釋放SDA線(xiàn)(呈高電平)并由受控器下拉SDA線(xiàn),,從而使SDA線(xiàn)為穩(wěn)定的低電平來(lái)作為有效應(yīng)答位以表示傳輸成功,此時(shí)主控器必須產(chǎn)生一個(gè)與此位相應(yīng)的額外時(shí)鐘脈沖,。

兩種特定的開(kāi)始和停止條件

  圖3為I2C 總線(xiàn)數(shù)據(jù)傳輸格式,。其中第一部分為數(shù)據(jù)傳輸起始信號(hào),即由此開(kāi)始進(jìn)行數(shù)據(jù)傳送,;第二部分為受控器地址,,用來(lái)選擇向哪個(gè)受控器傳送數(shù)據(jù);第三部分為讀/寫(xiě)控制位,,用于指示受控器的工作方式,,0表示寫(xiě),1表示讀,;第四部分是被主控器選中的受控器向主控器回傳的確認(rèn)信號(hào),;第五部分是所傳送的數(shù)據(jù),每傳送一個(gè)字節(jié)數(shù)據(jù),,都要求有一個(gè)應(yīng)答位,;第六部分是數(shù)據(jù)傳輸?shù)慕Y(jié)束信號(hào)。 

I2C 總線(xiàn)數(shù)據(jù)傳輸格式

  每個(gè)具有I2C總線(xiàn)接口的受控器件都有唯一固定的地址,,當(dāng)主控器發(fā)送數(shù)據(jù)時(shí),,I2C總線(xiàn)上掛接的受控器件都會(huì)將主控器發(fā)出的、位于起始信號(hào)后的8位地址信息與自己的地址進(jìn)行比較,如果兩者相同,,則認(rèn)為該受控器件被選中,,然后按照讀/寫(xiě)位規(guī)定的工作方式接收或發(fā)送數(shù)據(jù)。 

  2 I2C總線(xiàn)在單片機(jī)中的實(shí)現(xiàn)

  本音頻處理系統(tǒng)中所使用的IC控制芯片為T(mén)DA7313,,它是具有音量,、高低音調(diào)的左右平衡及前后混頻調(diào)整的立體聲音頻數(shù)字處理器件,它的輸入通道可以選擇,,并具有相應(yīng)的外部響度調(diào)整函數(shù)以及I2C串行總線(xiàn)接口,,因此可廣泛應(yīng)用于汽車(chē)音響和高保真系統(tǒng)中。TDA7313與單片機(jī)8031的連線(xiàn)和基本的管腳定義如圖4所示,。 

TDA7313與單片機(jī)8031的連線(xiàn)和基本的管腳定義

  由于單片機(jī)8031不具有I2C 總線(xiàn)硬件接口,,因此只能通過(guò)編寫(xiě)軟件產(chǎn)生串行時(shí)鐘信號(hào)。當(dāng)系統(tǒng)傳輸數(shù)據(jù)時(shí),,先由單片機(jī)給出一個(gè)啟始信號(hào),;接著送出器件TDA7313的7位地址及讀/寫(xiě)控制位并等待應(yīng)答信號(hào);當(dāng)收到應(yīng)答信號(hào)后,,系統(tǒng)根據(jù)訪(fǎng)問(wèn)要求進(jìn)行相應(yīng)操作,。在實(shí)際操作過(guò)程中,,一般都是通過(guò)CPU向TDA7313輸入一連串的特定數(shù)字命令來(lái)實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的音頻處理,,所以對(duì)TDA7313的操作主要是寫(xiě)操作。 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。