基于A(yíng)ctel FPGA的I2C IP的應用

發(fā)布時(shí)間:2009-8-25 10:03    發(fā)布者:賈延安
關(guān)鍵詞: Actel , FPGA
I2C(Inter Integrated Circuit)雙向二線(xiàn)制串行總線(xiàn),是由飛利浦公司制定的。I2C總線(xiàn)是一個(gè)多主機的總線(xiàn),使用串行數據線(xiàn)(SDA)和串行時(shí)鐘線(xiàn)(SCL)在總線(xiàn)上傳遞信息。每個(gè)器件都有一個(gè)唯一的識別地址,而且都可以作為一個(gè)發(fā)送器或接收器。當連接在I2C總線(xiàn)上的多個(gè)主機器件同時(shí)傳輸數據時(shí),通過(guò)仲裁來(lái)避免沖突。SDA和SCL都是雙向線(xiàn)路,通過(guò)一個(gè)電流源或上拉電阻連接到電源。器件輸出級必須是漏極開(kāi)路或集電極開(kāi)路,當總線(xiàn)空閑時(shí),兩條線(xiàn)路處于高電平,執行線(xiàn)與的功能。

  Actel公司免費提供I2C IP核——Core I2C。Core I2C是基于A(yíng)PB總線(xiàn)形式的,它的優(yōu)點(diǎn)是可以連接到Core 8051或者是Cortex M1處理器上,方便用戶(hù)進(jìn)行SoC設計,本文將主要介紹Core I2C的原理與應用。

  1. Core I2C介紹

  (1)I2C協(xié)議簡(jiǎn)介

  I2C總線(xiàn)協(xié)議定義如下:只有在總線(xiàn)處于“非忙”狀態(tài)時(shí),才能開(kāi)始數據傳輸。在數據傳輸期間,只要時(shí)鐘線(xiàn)為高電平,數據線(xiàn)都必須保持穩定,否則數據線(xiàn)上的任何變化都被當作“啟動(dòng)”或“停止”信號。圖1所示為總線(xiàn)狀態(tài)的定義。



  I2C總線(xiàn)的工作方式為:當SCL為高電平時(shí),如果檢測到SDA的下降沿,則啟動(dòng)數據的傳輸;在數據傳輸時(shí),只要SCL為高電平時(shí),SDA數據必須保持穩定,SDA數據可以在SCL的低電平時(shí)發(fā)生變化;當SCL為高電平時(shí),如果檢測到SDA的上升沿,則停止數據的傳輸。

  (2)Core I2C內部結構

  Core I2C的內部結構框圖如圖2所示。它主要由串行時(shí)鐘發(fā)生器、地址寄存器、控制寄存器、狀態(tài)寄存器和APB總線(xiàn)接口等組成的。



  ● 串行時(shí)鐘發(fā)生器模塊:提供SCL時(shí)鐘脈沖。

  ● 地址寄存器模塊:包含了內核編程的地址信息。

  ● 控制寄存器模塊:控制串行傳輸的啟動(dòng)、重啟、終止、位速率、地址識別和應答等功能。

  ● 狀態(tài)寄存器模塊:包含了Core I2C內部寄存器工作的狀態(tài)信息。

  ● APB總線(xiàn)接口:提供了I2C和APB總線(xiàn)通信的接口。

  (3)Core I2C內部寄存器

  Core I2C的寄存器的地址映射如表 1所示。



  ● 控制寄存器——I2C_CTRL

  Bit7:串行時(shí)鐘位2,和第0位、第1位一起決定分頻系數。

  Bit6:I2C使能位,1表示I2C被使能,否則被禁止。

  Bit5:起始標志位,1表示起始標志位有效,總線(xiàn)在空閑時(shí)將會(huì )產(chǎn)生一個(gè)起始狀態(tài)位。

  Bit4:停止標志位,1表示停止標志位有效,總線(xiàn)將會(huì )產(chǎn)生一個(gè)停止狀態(tài)位。

  Bit3:串行中斷標志位,在狀態(tài)寄存器的值被更新以后,這位必須被清零。

  Bit2:主/從機設置位,1表示工作在從機模式,0表示工作在主機模式。

  Bit1:串行時(shí)鐘位1,和第7位、第0位一起決定分頻系數。

  Bit0:串行時(shí)鐘位0,和第7位、第一位一起決定分頻系數。

  Core I2C時(shí)鐘頻率的定義如表 2所示。



  ● 狀態(tài)寄存器——I2C_STA

  狀態(tài)寄存器取出所有內部狀態(tài)位并將它們壓縮成一個(gè)5位的代碼,該代碼與每個(gè)I2C總線(xiàn)狀態(tài)位一一對應,5位代碼可用于產(chǎn)生向量地址,以便快速處理不同的服務(wù)程序,每個(gè)服務(wù)程序處理一個(gè)特定的總線(xiàn)狀態(tài)。如果I2C模塊的所有模式都被使用,則有26種可能的總線(xiàn)狀態(tài)。

  ● 數據寄存器——I2C_DAT

  數據寄存器包含要發(fā)送或剛接收的數據,當它沒(méi)有處理字節的移位時(shí),APB控制器可以對其進(jìn)行讀寫(xiě)。

  ● 地址寄存器——I2C_ADDR

  Bit7~Bit1:自身從機地址。

  Bit0:通用調用位,該位設置為1,通用調用地址有效,否則無(wú)效。

  (4)Core I2C的基本操作

  Core I2C可以配置成主機或從機,總線(xiàn)時(shí)鐘速率可調整,最高可支持400kb/s的總線(xiàn)傳輸速率。使用I2C總線(xiàn)時(shí),在總線(xiàn)上要連接兩個(gè)上拉電阻,阻值為1~10k歐姆。

  ● 主機發(fā)送模式

  主機發(fā)送模式的數據發(fā)送格式如圖 3所示。先發(fā)送起始條件,然后發(fā)送從機地址和寫(xiě)方向位,這時(shí)從機會(huì )產(chǎn)生一個(gè)應答,主機在接收到應答位后,依次發(fā)送n個(gè)數據,每個(gè)數據發(fā)送后,從機都會(huì )產(chǎn)生一個(gè)應答位,發(fā)送完n個(gè)數據后,主機發(fā)送停止位。



  ● 主機接收模式

  主機接收模式的數據接收格式如圖4所示。主機先發(fā)送起始條件,然后發(fā)送從機地址和讀方向位,這時(shí)從機會(huì )產(chǎn)生一個(gè)應答,主機在接收到應答位后,依次讀出n個(gè)數據,主機在接收到每個(gè)數據后,都會(huì )產(chǎn)生一個(gè)應答位,接收完數據后,主機發(fā)送停止位。



  (5)應用場(chǎng)合

  I2C協(xié)議主要應用于對串行設備的控制,如各種串行的存儲器等。圖5所示為使用I2C接口控制EEPROM。



  2.小結

  本文主要介紹了Actel FPGA的Core I2C IP核,除了Core I2C,Actel公司還提供了UART、SPI、PWM、Timer等IP核,請關(guān)注周立功公司的網(wǎng)站獲得更多的信息。我們有著(zhù)一個(gè)接近30人的FPGA團隊提供強有力的售后服務(wù),解決用戶(hù)在產(chǎn)品使用和研發(fā)過(guò)程中遇到的困難。若有更多的需求可以與我們聯(lián)系,我們將會(huì )竭誠為您服務(wù),并能關(guān)注下期的FPGA專(zhuān)題技術(shù)講座。
本文地址:http://selenalain.com/thread-3015-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页