I2C總線控制及基于FPGA的實現(共9頁)_第1頁
I2C總線控制及基于FPGA的實現(共9頁)_第2頁
I2C總線控制及基于FPGA的實現(共9頁)_第3頁
I2C總線控制及基于FPGA的實現(共9頁)_第4頁
I2C總線控制及基于FPGA的實現(共9頁)_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、I2C總線控制及基于FPGA的實現 摘 要根據串行擴展的特點,詳細描述了12C總線的結構、原理和工作過程,通過舉例介紹了通過FPGA設計實現12C總線的基本思想,并給出了xlinx ise 61環境下仿真程序部分代碼和ModelSim軟件下的仿真時序圖。 關鍵詞12C總線;VHDL;FPGA 引言:在開發FPGA中,利用EDA工具設計芯片實現系統功能已經成為支撐電子設計的通用平臺,并逐步向支持系統級的設計方向發展,各分立元件的連接和接口擴展就顯得十分重要。擴展的方法有兩種:一種是并行總線,另一種是串行總線。由于串行總線連線少,結構簡單,往往不用專用的母板和插座而直接用導線連接各個設備即可。因此

2、,采用串行總線大大簡化了系統硬件設計。尤其是12C串行總線,它是具備多主機系統所需的包括裁決和高低速設備同步等功能的高性能串行總線,以其接口簡單、使用靈活等突出優點在數字系統中獲得了廣泛的應用。 1、幾種串行總線 雖然現代的微控制器和FPGA提供了大量的120插腳,并且SMD技術(表面安裝器件)也在一塊幾英寸大小的PCB上提供了盡可能多的插腳,但這并沒有影響串行總線連在電路板分立元件連接方面的應用。除傳統的總線如12C和SPI(串行外圍接口)之外,還有在溫度計和智能按鍵等的靈敏傳感器方面廣泛應用的Dallas 1Wire單總線等。 SPI通過快速ADC、DAC、E2PROM設備連接微控制器,分

3、離的輸入輸出插腳保證了數據高速率。由于協議中并沒有內嵌式地址,因此總線上各個設備必須支持片選信號,每個從設備有一個被選輸入,主設備必須具有與其從屬設備數量一樣多的被選輸出,或者必須有一個外部解碼器。SPI允許簡單地連接移位寄存器之類的非智能外圍設備,連鎖式的移位寄存器可以實現大容量輸入輸出擴展器。 Dallas單總線上的連接則必須具備高智能水平。在這個協議中,單總線通常要求外接一個47k左右的上拉電阻,用持續1到15s的低電平來傳送1,用持續60s到1201s的低電平來傳輸0。指令和數據通過這種方式傳輸到從設備。控制器為了同步發送一個“1”,從設備將其中一部分轉換為“O”,數據通過這種方式從設

4、備傳輸至控制器。 Philips公司早在1980年開發了I2C標準,I2C總線是關注速度和復雜程度之間的很好的折衷,當時只定義了100kHZt和400kHZ兩個傳輸速率,但并沒有規定單個比特的長度,所以在一個沒有諸如中斷限制的微控制器的系統中用軟件驅動I2C設備很容易實現。 I2C總線只使用兩根I20,就可以對一系列的I2C器件進行控制,節省了I/O口,受到越來越多工程師的青睞。由于電接口的集電極開路特性,從設備可以在任意時刻連接或斷開而不會影響總線上的其它設備。I2C總線還包括了一個利用線與連接的仲裁機制,這就意味著真正的多主體總線可以實現,在特定時間內只有一個主控端能夠取得總線控制權。實際

5、上,如果兩個甚至更多的主體試圖在總線上傳遞信息(第一個產生“1”的同時,其他主體產生“0”),它們將會失去主控權。同時,如果有一臺從設備是低速設備,它將抑制時鐘線路延緩總線上所有事務。 基于以上原因,12C總線是一個控制FPGA器件的很好選擇,可以在FPGA上通過自定義邏輯來實現從接口。 2、I2C總線詳解 I2C是英文“Inter Integrated Circuit”的縮寫,中文意思是“集成電路之間”。I2C總線就是集成電路之間傳送時鐘脈沖與數據的公用線路。采用I2C總線控制就是將微處理器的SCL(串行時鐘)、SDA(串行數據)總線與其它集成電路或存儲器連接起來,通過總線來交換信息,實行控

6、制。I2C總線最主要的優點是其簡單性和有效 性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,從而減少了電路板的空間和芯片管腳的數量,進而降低了互聯成本。 I2C總線的男一個優點是,它支持多主控(multimastering),其中任何能夠進行發送和接收的設備都可以成為主控設備(在任何時間點上只能有一個主控設備)。一個主控設備能夠控制信號的傳輸和時鐘頻率。有大量的微處理器外圍設備可以附加到上面,通過120擴展器(如PCF8574)來起動顯示控制器和E2PROM,通過一個12C器件關聯的存儲器總量沒有限制,可以從幾個字節到256kb甚至更多。 每個I2C器件都擁有一個唯一的7-bit

7、I2C地址,讓主控端知道通信傳輸的對象是誰,通常7-bit中四個較重要的位(MSBtheMost Significant Bit)為固定的,并依器件本身性質的分類區分,如1010即代表串行E2PROM。而其他三個較不重要的位(LSB),即A2、A1與A0則可以通過硬件電子引腳設定,并取得高達8個不同的12C地址組合,因此在同一個12C總線上可以有8個相同形式的器件運作。這些引腳固定在Vcc高電平代表邏輯1,固定在接地低電壓則代表邏輯O,7 bit的選址方式可以實現總線上128個器件的組合,但由于部份地址設定保留給特殊指令應用,因此實際上最高器件數大約為I20個。對連接到同一總線上的從設備數量的

8、限制是:總線的電容總和必須低于400 pF,大約20到30個器件或10m的傳輸長度,以符合上升與下降時間的要求。同時并聯有雙向12C總線緩沖器用來隔離總線上不同接線的電容,以實現更大(2000pF)與更長(2000 m)的總線結構。 許多微控制器(如Cypress CY7C68013和Microchip PICl8Cxxxfamily)在芯片上包含了一個12C總線主外設,如果沒有硬件接口,它可以控制一對I/O插腳用軟件來實現。而且許多編譯器提供了驅動程序來控制I2C設備,無論設備有沒有硬件接口。 圖1例示了在CCS c編譯器如何對PIC(外圍接口控制)微處理器上的I2C外圍設備的聲明。I2C庫

9、包含了實現I2C總線的函數,#USE I2C保存I2C_START,I2C_STOP,I2CREAD,12C_WRITE和I2C POLL函數的結果直到下一個I2C進程到來。軟件作用在NORFORCE_sW特定時產生。 I2C總線支持三種傳輸速度。早期設備的初始速率很低,支持100KHZ的低速模式和400KHZ的快速模式,目前已經擴展了34MHZ的高速模式,而且被更多的新設備所支持。其它選項用來規定I2C接口是否為主(從)接口,規定了采用硬件接口還是軟件仿真以及插腳是否被時鐘和數據所用。 3、12G總線連接 12C總線中的兩根線通常稱為SDA(串行數據)和SCL (串行時鐘),它們分別用來傳輸

10、數據和時鐘信號。連接到這兩線的設備必須禁止ESD(Electro-Static discharge靜電放電)保護二極管嵌位輸入線信號到其本身的電源電壓。這使I2C總線能被不同電源電壓的設備共享。SDA和SCL上拉電阻必須連接到5V10。每個設備都要包含片內濾波器以消除尖峰信號并改進總線整體健壯性。如圖2所示。 I2C總線允許多主體配置,一個主體要釋放總線必須完全停止操縱SCL線。如果一個系統只有一個主設備且從設備是不要求時鐘擴展的高速設備,則SCL上的上拉電阻可以取消且主設備可以用低電平和高電平驅動SCL線路。 二線協議是基于起、止狀態識別的。起始信號就是在SCL線為高時SDA線從高到低;停止

11、信號則是在SCL線為高時SDA線從低到高;應答信號是在SCL為高時SDA為低;非應答信號相反,是在SCL為高時SDA為高。傳輸數據“0”和數據“1”與發送應答位和非應答位時序圖是相同的(圖3)。在其它所有時刻,只要SCLD在數據轉移階段是高電平,SDA就必須保持穩定。SDA起動時間(SCL上升)的定義基于總線標準速率:在100kHZ總線上為200ns,在400kHZ總線上為100ns。 在一個起止狀態之間的數據字節數沒有限制,唯一的要求是每個數據字節必須是得到確認的,確認狀態是在SDA上每一個8位字節后面的第9位用低電平表示,在一個寫周期中,從設備在數據字節中提供確認信息;在一個讀周期中,主設

12、備提供除最后一個數據字節外的所有確認信息。丟失認證信息會導致事務終止。圖3畫出了I2C總線上幾個基本信號的時序,包括起始信號、停止信號、應答信號、非應答信號以及傳輸數據“0”和數據1”的時序。圖3還表不了一個完整的數據傳送過程,一個在I2C總線發送起始信號后,發送從設備的7位尋址地址和1位表示這次操作性質的讀寫標識位,在有應答信號后開始傳送數據,直到發送停止信號。數據是以字節為單位的。發送節點每發送1個字節就要檢測SDA線上有沒有收到應答信號,有則繼續發送,否則將停止發送數據。 4、開發工具 技術進步和高性能PC機的廣泛使用使工程人員和電子愛好者也能設計自定義芯片,而不僅僅只有大公司才能做到。

13、幾乎所有FPGA廠商已經開發了自己的綜合設計軟件包。有的已經在網絡上發布了免費使用的軟件包。Xilinx的免費WebPACK支持方案設計(圖表、VHDL和Verilog)并用功能強大的Mentor Graphics ModelSim進行邏輯仿真。后面的設計很容易用虛擬示波器、邏輯狀態分析軟件和虛擬測試點等虛擬工具驗證。 Xilinx軟件包允許將設計移置到它的不同芯片系列。包括Virtex,Spartan-II,Spartan-3,CoolRunner和XC9500 CPLDs。很容易就微處理器外圍設備移置到大的FPGA設備或普通的CPLD設備上。Spar-tan-II系列以較低的價位提供了足夠

14、的邏輯門數,IO資源允許直接連接到12C總線。方案也可以移置到新的partan-3系列,不過由于這個系列不能禁止ESD保護,IO配置必須重新定義。 Spartan-II具備禁止IO緩沖器內上拉電阻和ESD保護二極管的能力。這使芯片因插腳能承受外部電阻上拉到5V電壓而可以在多電壓系統中使用。而Spartan一3系列的ESD保護二極管不能被禁止。這在單一電壓系統中沒有影響,但在多電壓系統中,必須用一對MOSFET(金屬氧化物半導體場效應晶體管)晶體管分離電壓。圖4采用兩個N通道MOSFET將12C分離到5V和33V兩個范圍。 5FPGA設計應用 舉一個簡單的例子,本例(圖5)中Revision為一個8位只讀寄存器,只有l位輸出。12C總線模塊植入PGA,只需用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論