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

引言

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

1 I2C總線原理

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

基于Wolfson音頻SoC的I2C總線接口設計

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

基于Wolfson音頻SoC的I2C總線接口設計

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

第一步,啟動START信號,接著寫一個字節(jié)的設備地址,地址字節(jié)的高7位是設備有效地址,地址字節(jié)的最低1位代表準備寫(低電平),然后等待ACK應答;

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

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

最后發(fā)送的是一個STOP信號,以結束發(fā)送操作。

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

第一步,也是啟動START信號,接著寫一個字節(jié)的設備地址,地址字節(jié)的高7位是設備有效地址,地址字節(jié)的最低位代表準備寫(低有效),然后等待ACK應答;

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

第三步,再次啟動START信號,此時再寫一個字節(jié)的設備地址,這個設備地址字節(jié)的最低1位若為高電品,則代表準備接收數(shù)據(jù);

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

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

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

2 I2C總線的接口設計

2.1  總體內(nèi)部架構設計

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

基于Wolfson音頻SoC的I2C總線接口設計

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

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

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

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

2.2 I2C接口控制器

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

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

2.3  啟動與停止程序

檢測通訊啟動與停止的Verilog程序如下:

always@(posedge mclk or negedge reset_n)

基于Wolfson音頻SoC的I2C總線接口設計

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

基于Wolfson音頻SoC的I2C總線接口設計

基于Wolfson音頻SoC的I2C總線接口設計

基于Wolfson音頻SoC的I2C總線接口設計

3 仿真結果

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

基于Wolfson音頻SoC的I2C總線接口設計

4  結語

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

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉