當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:隨著I2C總線應(yīng)用的越來(lái)越廣泛,其電路簡(jiǎn)單,編程方便,易于系統(tǒng)標(biāo)準(zhǔn)化與維護(hù)的優(yōu)點(diǎn)也日益顯現(xiàn)出來(lái)。 文章在分析了I2C總線的基本概念和工作原理的基礎(chǔ)上,重點(diǎn)介紹了基于Wolfson音頻SoC的I2C總線接口的系統(tǒng)結(jié) 構(gòu)和程序設(shè)計(jì)方法。

引言

I2C(Inter-IntegratedCommunication),單線是Philips公司開(kāi)發(fā)的一種高效、簡(jiǎn)單、雙向、兩線制同步串行總線,它僅需要兩根線(串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL)即可為連接到總線的設(shè)備提供簡(jiǎn)單有效的數(shù)據(jù)交換方式該總線可將各電路分割成各種功能的模塊,并進(jìn)行軟件化設(shè)計(jì),各個(gè)功能模塊電路內(nèi)部都集成有一個(gè)I2C總線接口電路,故可連接在總線上,從而很好地進(jìn)行眾多功能模塊與MCU之間的輸入輸出接口,并使連接方式變得簡(jiǎn)便,同時(shí)可靈活地實(shí)現(xiàn)在線配置。本文采用VerilogHDL設(shè)計(jì)了一個(gè)FC總線的控制模塊,該模塊能夠?qū)崿F(xiàn)FC的所有功能。此外,該模塊可作為一個(gè)軟核來(lái)方便地嵌入到音頻SoC系統(tǒng)中,這就是當(dāng)前非常流行的兩線總線。

1 I2C總線原理

通常將FC總線主從機(jī)之間的一次數(shù)據(jù)傳送稱為一幀,一幀數(shù)據(jù)一般由啟動(dòng)信號(hào)、地址碼、若干數(shù)據(jù) 字節(jié)、應(yīng)答信號(hào)位以及停止信號(hào)等組成。SDA SCL都通過(guò)一個(gè)電流源或者上拉電阻連接到正的電 源電壓,圖1所示是rc總線上標(biāo)準(zhǔn)模式器件和快速 模式器件之間的連接電路,由圖1可見(jiàn),當(dāng)總線空閑 時(shí),這兩條線路都是高電平,連接到總線的器件輸出 級(jí)必須是漏極開(kāi)路或者集電極開(kāi)路才能執(zhí)行“線與” 的邏輯功能。串行8位雙向數(shù)據(jù)傳輸位速率在rc 總線的標(biāo)準(zhǔn)模式下,其速率可達(dá)100 Kb/s,快速模式 下可達(dá)400 Kb/s,高速模式下可達(dá)3. 5 Mb/s。

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

I2C總線可構(gòu)成多主和多從系統(tǒng)。在系統(tǒng)結(jié)構(gòu)中,系統(tǒng)通過(guò)硬件或者軟件仲裁獲得總線控制權(quán)。在應(yīng)用系統(tǒng)中,I2C總線多采用主從結(jié)構(gòu)。I2C總線上的設(shè)備尋址由器件地址線決定,與總線相連的每個(gè)器件都對(duì)應(yīng)一個(gè)特定的地址,同時(shí)采用軟件尋址方式,并且可以通過(guò)訪問(wèn)地址最低位來(lái)控制W/R方向。I2C總線的數(shù)據(jù)傳輸格式如圖2所示。

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

I2C總線上發(fā)送數(shù)據(jù)的操作(針對(duì)WM8731/8731L類似的設(shè)備)過(guò)程一般可為4步:

第一步,啟動(dòng)START信號(hào),接著寫(xiě)一個(gè)字節(jié)的設(shè)備地址,地址字節(jié)的高7位是設(shè)備有效地址,地址字節(jié)的最低1位代表準(zhǔn)備寫(xiě)(低電平),然后等待ACK應(yīng)答;

第二步,應(yīng)繼續(xù)寫(xiě)一個(gè)字節(jié)的rc設(shè)備內(nèi)部數(shù)據(jù)訪問(wèn)地址,然后等待發(fā)出ACK;

第三步即可開(kāi)始發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)可以是一個(gè)字節(jié),也可以連續(xù)發(fā)送N個(gè)字節(jié),每發(fā)送完一個(gè)字節(jié)的數(shù)據(jù),都需要等待一個(gè)應(yīng)答ACK信號(hào);

最后發(fā)送的是一個(gè)STOP信號(hào),以結(jié)束發(fā)送操作。

在I2C總線上接收數(shù)據(jù)的操作(針對(duì)WM8731/8731L類似的設(shè)備)過(guò)程如下:

第一步,也是啟動(dòng)START信號(hào),接著寫(xiě)一個(gè)字節(jié)的設(shè)備地址,地址字節(jié)的高7位是設(shè)備有效地址,地址字節(jié)的最低位代表準(zhǔn)備寫(xiě)(低有效),然后等待ACK應(yīng)答;

第二步,繼續(xù)寫(xiě)一個(gè)字節(jié)的I2C器件內(nèi)部數(shù)據(jù)訪問(wèn)地址,并等待ACK;

第三步,再次啟動(dòng)START信號(hào),此時(shí)再寫(xiě)一個(gè)字節(jié)的設(shè)備地址,這個(gè)設(shè)備地址字節(jié)的最低1位若為高電品,則代表準(zhǔn)備接收數(shù)據(jù);

第四步,開(kāi)始接收數(shù)據(jù),數(shù)據(jù)可以是接收一個(gè)字節(jié),也可以連續(xù)接收N個(gè)字節(jié)。在接收前面的N—1個(gè)字節(jié)后,每接收一個(gè)字節(jié)數(shù)據(jù),都要產(chǎn)生一個(gè)ACK;

第五步,在接收最后一個(gè)字節(jié)數(shù)據(jù)前停止控制器生成ACK信號(hào),然后等待最后一個(gè)字節(jié)的數(shù)據(jù)就緒后,再讀??;

最后,發(fā)送一個(gè)STOP信號(hào),以停止接收操作。

2 I2C總線的接口設(shè)計(jì)

2.1  總體內(nèi)部架構(gòu)設(shè)計(jì)

圖3所示為rc總線接口中ip核的總體結(jié)構(gòu)。該接口主要包括時(shí)鐘發(fā)生器,字節(jié)命令控制器、位命令寄存器、數(shù)據(jù)I/O移位寄存器、發(fā)送與接收寄存器等幾部分。

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

時(shí)鐘發(fā)生器可用于產(chǎn)生時(shí)鐘使能信號(hào),該信號(hào)可觸發(fā)位命令控制器的所有時(shí)鐘同步操作。

字節(jié)命令控制器承擔(dān)著I2C接口字節(jié)數(shù)據(jù)的傳輸任務(wù)。它從I2C寄存器中的命令寄存器中讀取操作命令。這些命令可通過(guò)設(shè)置該寄存器中的某些位來(lái)完成,并且都是以字節(jié)為單位。

位命令寄存器負(fù)責(zé)總線上實(shí)際的數(shù)據(jù)傳輸工作,包括START和STOPo這些操作可通過(guò)控制SCL和SDA線來(lái)實(shí)現(xiàn)。

數(shù)據(jù)I/O移位寄存器中存儲(chǔ)著當(dāng)前數(shù)據(jù)傳輸所需要的數(shù)據(jù)。如果是讀操作,移位寄存器將接收從SDA線上的逐位數(shù)據(jù);如果是寫(xiě)操作,移位寄存器則將該數(shù)據(jù)逐位發(fā)送到SDA線上。

2.2 I2C接口控制器

I2C總線是通過(guò)二根線來(lái)連在器件之間進(jìn)行通信的總線,它可根據(jù)地址識(shí)別每個(gè)器件。每個(gè)I2C設(shè)備都有自己固定的硬件地址。對(duì)于芯片WM8731/WM8731L的FC總線它的兩個(gè)從地址為001_1011和001_1010oWM8731設(shè)備的控制操作可以描述為:首先發(fā)出該設(shè)備地址,和該設(shè)備建立連接,再向該設(shè)備讀或?qū)?個(gè)字節(jié)的數(shù)據(jù),最后發(fā)出停止信號(hào)以結(jié)束I2C通訊。

對(duì)WM8731的控制實(shí)際上就是控制FC設(shè)備讀/寫(xiě)數(shù)據(jù),本文不涉及讀數(shù)據(jù)而只介紹部分rc總線寫(xiě)數(shù)據(jù)的關(guān)鍵Verilog程序設(shè)計(jì)。

2.3  啟動(dòng)與停止程序

檢測(cè)通訊啟動(dòng)與停止的Verilog程序如下:

always@(posedge mclk or negedge reset_n)

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

在主機(jī)方式下,完成啟動(dòng)與地址信號(hào)發(fā)送后,即開(kāi)始發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)時(shí),并串?dāng)?shù)據(jù)在SCL的下降沿移位,這樣可保證SCL高電平時(shí)SDA數(shù)據(jù)的穩(wěn)定。發(fā)送的進(jìn)程由WR信號(hào)和從機(jī)的應(yīng)答信號(hào)啟動(dòng)。為了保證時(shí)序正確和控制的可靠,軟件程序可采用有限狀態(tài)機(jī)來(lái)設(shè)計(jì)。其Verilog程序如下:

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

3 仿真結(jié)果

設(shè)計(jì)時(shí),可以釆用Xilinx公司的集成開(kāi)發(fā)工具ISE9.0,仿真工具使用SYNPOSYS的VCS仿真軟件,圖4所示是其仿真波形,由圖可見(jiàn),該設(shè)計(jì)是正確的。整個(gè)設(shè)計(jì)可以采用Verilog語(yǔ)言描述在LINUX平臺(tái)上完成系統(tǒng)的仿真、綜合、映射、布局。在得到正確的仿真結(jié)果后,通過(guò)器件編程(即通過(guò)編程器將設(shè)計(jì)下載到實(shí)際芯片中)來(lái)進(jìn)行系統(tǒng)調(diào)試,直到最后實(shí)現(xiàn)。

基于Wolfson音頻SoC的I2C總線接口設(shè)計(jì)

4  結(jié)語(yǔ)

本文介紹了一種簡(jiǎn)易的音頻soc的I2c總線接口的軟件設(shè)計(jì)方法。該設(shè)計(jì)可以作為一個(gè)ip核方便地嵌入音頻SoC的系統(tǒng)設(shè)計(jì)中,以用于對(duì)具有I2c接口的芯片ic芯片進(jìn)行數(shù)據(jù)讀寫(xiě)。目前,本設(shè)計(jì)已經(jīng)在實(shí)踐項(xiàng)目中投片,并已經(jīng)通過(guò)實(shí)際系統(tǒng)的測(cè)試。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉