《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的多路I2C總線設計與實現
基于FPGA的多路I2C總線設計與實現
來源:電子技術應用2011年第4期
陳志列 (研祥智能科技股份有限公司,廣東 深圳518057)
(研祥智能科技股份有限公司,廣東 深圳518057)
摘要: 介紹了一種基于FPGA的多路I2C總線設計與實現。主要包括系統處理器、局部總線、FPGA邏輯模塊、負載設備幾部分,實現了從處理器局部總線到I2C協議的轉換及其多路擴展,使系統具有多個I2C總線通道,且每一路I2C總線上能掛載多個不同的主設備或從設備。該系統中各路I2C總線相互獨立工作,沒有干擾和影響。
Abstract:
Key words :

摘  要: 介紹了一種基于FPGA的多路I2C總線設計與實現。主要包括系統處理器、局部總線、FPGA邏輯模塊、負載設備幾部分,實現了從處理器局部總線到I2C協議的轉換及其多路擴展,使系統具有多個I2C總線通道,且每一路I2C總線上能掛載多個不同的主設備或從設備。該系統中各路I2C總線相互獨立工作,沒有干擾和影響。
關鍵詞: I2C;可編程邏輯門陣列;狀態機

 I2C(Inter-Integrated Circuit)總線是由Philips公司開發的用于IC器件之間連接的二線制總線,其為雙向、兩線、串行、多主控接口標準,具有總線仲裁機制,非常適合器件之間近距離、非經常性的數據通信。由于其具有接口線少、控制方式簡化、器件封裝形式小、通信速率較高等優點,I2C總線的應用非常廣泛[1]。
    在工業監控系統中需要有多路I2C總線控制器來完成溫度、電壓、濕度等各個方面的監控功能。但是,目前很多系統沒有或者只有很少通道的I2C總線接口,使其應用受到了限制。
    基于上述技術現狀,本文通過現場可編程門陣列FPGA(Field Programmable Gate Array)實現一種多路I2C總線的系統控制設計。
系統硬件設計
    FPGA作為ASIC專用集成電路領域中的一種半定制電路,可以解決定制電路的不足,又克服了原有可編程器件門電路數有限的缺點,具有設計周期短、開發費用低、保密性強、體積小、重量輕、可靠性高等特點[2]。
  本系統主要由系統處理器、局部總線、FPGA邏輯模塊、負載設備幾部分組成。其中系統處理器采用Freescale公司的MPC8245[3]。
    具有多路I2C總線的系統硬件設計框圖如圖1所示。

    處理器利用局部總線,通過地址線、數據線、讀寫信號線和片選信號線與FPGA邏輯模塊進行通信,在FPGA內部完成I2C總線控制器的功能,實現從處理器局部總線到I2C協議的轉換和多路擴展,其中每個I2C總線控制器掛載多個不同的設備,可以是主設備或從設備。
FPGA邏輯模塊設計
    多路I2C總線的系統控制中,FPGA邏輯模塊的設計是核心。該模塊主要由三部分組成:頂層控制模塊、處理器接口模塊、多路I2C總線控制器模塊。模塊化的設計便于移植和軟件重用。其中FPGA芯片采用XILINX公司的SPARTAN3A系列的芯片,開發平臺為ISE10.1。
頂層控制模塊
    頂層控制模塊主要實現處理器接口模塊與多路I2C總線控制器模塊之間的連接與通信,實現整個輸入輸出接口到各個功能模塊之間的映射。三者之間的邏輯關系如圖2所示。

處理器接口模塊
    MPC8245處理器接口模塊主要完成MPC8245處理器與FPGA的接口功能,并實現與FPGA內部的多路I2C總線控制器數據傳輸的握手協議和數據交換。在MPC8245處理器接口模塊中,每個I2C控制器對應有4個8位的寄存器,即數據寄存器、地址寄存器、控制寄存器和狀態寄存器。
    (1)數據寄存器根據讀/寫信號區分,分為發送數據緩沖寄存器和接收數據緩沖寄存器,共享一個地址,數據長度為8位。
    (2)地址寄存器用來保存當前地址。當該路I2C控制器作為從節點通信時,地址寄存器中保存的是自己的地址,這個地址在總線上是唯一的。從節點接收到包頭后,將其中的地址與自己的地址比較,如果一致,則響應主節點,開始傳輸。
    (3)控制寄存器用來控制I2C總線控制器的數據傳輸,按照設置產生各個協議命令、響應動作及工作模式。
    (4)狀態寄存器顯示當前總線的狀態。通過狀態寄存器中不同的狀態指示,實現與MPC8245處理器的握手協議。
    MPC8245處理器利用地址線、數據線、片選信號和讀寫信號來與MPC8245處理器接口模塊N路I2C總線控制器相關的N×4個寄存器交換數據、讀取狀態、作為從設備時響應的地址和控制各路I2C總線的控制器。
I2C總線控制器模塊
    I2C總線控制器模塊主要實現并行的I2C通信控制,每一路I2C總線控制器通過FPGA的I/O管腳連接到外部實現各自獨立的I2C總線,具有主工作模式和從工作模式兩種工作狀態。
    I2C總線控制器主要有兩個狀態機:主控制狀態機和時鐘生成狀態機。
    主控制狀態機是整個I2C總線控制器的核心。時鐘生成狀態機只在I2C總線控制器作為主設備時的模式下工作,是I2C總線通信時的時鐘。當I2C總線控制器作為從設備通信時,主控制狀態機時鐘由FPGA所實現的I2C總線上所掛載的I2C主設備提供,整個I2C總線通信時的時鐘為外部主設備提供的時鐘。
I2C總線控制器狀態機設計
      (1)主控制狀態機
      主控制狀態機狀態轉移圖如圖3所示。

      IDLE狀態:當I2C上電或者復位后,主控制狀態機就處于此狀態。
      HEADER狀態:在此狀態,系統根據控制寄存器位MSTA值,發送或者接收包頭,滿足條件后,轉移到ACK_HEADER狀態;I2C總線控制器中的HEADER移位寄存器與地址寄存器中存放的I2C總線控制器作為從設備時響應的地址進行比較,如果匹配,則表明該路I2C總線控制器為被主設備尋址的從設備,模式立刻切換到從設備模式,同時狀態寄存器中的MAAS位被置位,數據線SDA將會按照TXAK中的設置應答當前主設備。
    ACK_HEADER狀態:當該路I2C總線控制器作為主設備時,如果沒有收到從設備發送的ACK,則發送結束信號,返回到IDLE狀態;如果收到ACK,則確定仲裁沒有丟失,根據控制寄存器位TX值轉到XMIT_DATA或者RCV_DATA狀態;當該路I2C總線控制器作為從設備時,如果地址匹配,則發送ACK,根據主設備發送的第一個字節中的最后一位的值轉到XMIT_DATA或者RCV_DATA狀態。
    XMIT_DATA狀態:在此狀態時,移位寄存器將數據移到SDA線上。發送一個字節完成后,轉移到WAIT_ACK狀態。
    WAIT_ACK狀態:在此狀態時,如果收到ACK,則返回到XMIT_DATA狀態;如果仲裁丟失,則轉到IDLE狀態;如果沒有收到ACK,則發送結束信號,轉移到IDLE狀態。
    RCV_DATA狀態:在此狀態時,如果檢測到重新啟動信號,則返回HEADER狀態;否則,移位寄存器從SDA線上移入數據,以供MPC8245處理器的驅動程序讀取,移入一個字節后,轉到ACK_DATA狀態,控制寄存器中的TXAK位被輸出到數據線SDA。
    ACK_DATA狀態:I2C控制器發送ACK,返回到RCV_DATA狀態。
    (2)時鐘狀態機
    整個狀態機狀態轉換如圖4所示。

    SCL_IDLE狀態:當上電復位后,狀態機就處于該狀態。當I2C控制器為主節點并且總線空閑時,收到開始標志后,轉移到START狀態。
    START狀態:當在此狀態時,根據I2C協議,需要保持一定的時間,當持續時間滿足要求時,轉移到SCL_LOW_EDGE狀態,否則保持在START狀態。
    SCL_LOW_EDGE狀態:當在此狀態時,在下一個系統時鐘時,轉移到SCL_LOW狀態。
    SCL_LOW狀態:在此狀態時,根據控制信號,設置SDA的輸出,根據I2C協議,需要保持一定的時間,當保持時間滿足要求時,轉移到SCL_HIGH_EDGE狀態,否則保持在該狀態;如果仲裁丟失且已經傳輸了7個字節,則轉移到SCL_IDLE狀態。
    SCL_HIGH_EDGE狀態:在此狀態時,完成一定的操作,持續一個時鐘周期后,轉移到SCL_HIGH狀態。如果SCL輸入為0或者狀態寄存器中的位MCF=1,則一直停留在該狀態。
    SCL_HIGH狀態:在此狀態時,如果有重復起始信號,則SCL高電平持續一半時間,轉移到START狀態;如果有結束信號,則SCL高電平持續一半時間,轉移到STOP_WAIT狀態;根據I2C協議,需要保持一定的時間,當持續時間滿足要求時,轉移到SCL_LOW_EDGE狀態,否則保持在當前狀態。
    STOP_WAIT狀態:在此狀態時,根據I2C協議,需要保持一定的時間,當持續時間滿足要求時,轉移到SCL_IDLE狀態。
系統工作流程
    多路I2C總線的系統在系統上電后,處理器通過FPGA與FPGA相連接的I2C設備通信。
    (1)當處理器作為主設備與FPGA所實現的I2C總線上所掛的從設備進行通信時,處理器主體通過對FPGA內部的該路I2C總線控制器對應的寄存器進行操作,根據I2C總線通信協議,產生起始信號和時鐘信號,并查詢狀態位,對該路I2C總線上的從設備進行發送或者接收數據的操作,在數據交換完成后,產生停止信號,完成整個通信。
    (2)當處理器主體作為從設備與FPGA所實現的I2C總線上所掛的主設備進行通信時,FPGA所實現的I2C總線上所掛的主設備產生起始信號和時鐘信號,處理器主體通過對FPGA內的該路I2C總線控制器對應的數據寄存器進行操作,發送或者接收數據。當通信完成后,FPGA所實現的I2C總線上所掛的主設備產生停止信號,完成整個通信。
    通過可編程邏輯器件實現的多路I2C總線上每一路可以掛多個設備,可以是從設備,也可以是主設備,具體能掛的設備數量受總線電容的限制。
    本設計利用可編程邏輯器件,完成對處理器主體I2C總線的擴展,使該處理器能夠有多個I2C總線通道,每一路I2C總線上可以掛載多個不同的設備,可以是主設備,也可以是從設備,滿足不同應用場合的要求。在可編程邏輯器件內,每個I2C總線控制器僅使用4個寄存器,大大降低了控制的復雜度,無需占用較多的CPU資源,系統穩定,執行效率高。
參考文獻
[1] The I2C-Bus Specification Versiom 2.1. Philips Semiconductors,January 2000.
[2] CILETTI M D. Verilog-HDL 高級數字設計[M].北京:電子工業出版社,2005.
[3] Freescale Semiconductor.MPC8245 Integrated Processor Reference Manual.http://www.freescale.com.cn/.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          在线天堂一区av电影| 国产精品视频成人| 久久九九精品99国产精品| 老司机一区二区| 亚洲精品视频在线播放| 亚洲视频在线观看免费| 国产日韩精品久久久| 欧美日韩在线电影| 国产精品国产三级国产专播品爱网| 久久蜜桃精品| 久久精品一级爱片| 性欧美超级视频| 国产美女精品| 欧美一区二区三区四区夜夜大片| 国产日韩亚洲欧美精品| 亚洲精品国产精品国自产在线| 国产亚洲一本大道中文在线| 久久综合狠狠| 欧美一级片在线播放| 欧美一级艳片视频免费观看| 国产区二精品视| 91久久精品国产91久久性色| 一本久久综合亚洲鲁鲁| 午夜精品一区二区三区四区| 99国产精品久久久| 欧美日韩国产123| 国产欧美视频一区二区| 中文精品视频一区二区在线观看| 久久亚洲一区二区三区四区| 国产午夜精品久久| 亚洲国内高清视频| 国产精品男gay被猛男狂揉视频| 亚洲精品欧美日韩专区| 亚洲精品久久嫩草网站秘色| 亚洲成人资源网| 久久九九免费视频| 另类尿喷潮videofree| 91久久精品国产| 欧美三级日韩三级国产三级| 欧美国产极速在线| 一区二区成人精品| 欧美一区亚洲二区| 免费在线观看精品| 欧美日韩成人在线| 激情久久久久久久久久久久久久久久| 欧美精品综合| 国产精品大片免费观看| 国产精品综合色区在线观看| 久久亚洲春色中文字幕久久久| 国产目拍亚洲精品99久久精品| 国产精品v欧美精品v日韩| 欧美日韩免费观看一区| 亚洲视屏在线播放| 久久精品夜夜夜夜久久| 欧美激情一区二区三区四区| 午夜国产精品视频免费体验区| 香蕉av福利精品导航| 欧美精品18videos性欧美| 欧美另类专区| 亚洲免费视频网站| 国产自产精品| 国产精品视频男人的天堂| 欧美一级大片在线免费观看| 国内揄拍国内精品少妇国语| 蜜臀久久久99精品久久久久久| 亚洲每日更新| 欧美片第1页综合| 一色屋精品视频在线观看网站| 亚洲欧美国产不卡| 国产精品国码视频| 美腿丝袜亚洲色图| 亚洲乱码国产乱码精品精98午夜| 欧美日韩美女一区二区| 韩曰欧美视频免费观看| 国产一区二区三区久久久| 亚洲欧美成人综合| 亚洲一区二区视频在线| 欧美成人第一页| 欧美日韩精品一区二区三区四区| 国产精品久久久久久久7电影| 欧美精品大片| 亚洲欧美精品伊人久久| 国产欧美视频一区二区三区| 日韩视频一区二区三区在线播放| 欧美日韩在线观看一区二区三区| 国产精品99久久不卡二区| 国产精品久久久久久亚洲毛片| 亚洲精品色图| 亚洲高清123| 欧美日本精品一区二区三区| 国产欧美日韩一区二区三区在线观看| 欧美激情网友自拍| 国产乱码精品| 亚洲日本中文字幕区| 欧美高清视频一区| 欧美视频专区一二在线观看| 国产精品福利在线观看网址| 欧美日韩中文精品| 国产精品亚洲综合色区韩国| 一区二区三区四区蜜桃| 久久成人免费视频| 欧美绝品在线观看成人午夜影视| 欧美一区亚洲| 久久久久久久综合狠狠综合| 欧美成年人视频网站欧美| 欧美欧美天天天天操| 欧美日韩1区| 在线日韩中文字幕| 欧美三级电影网| 国产一区二区三区免费不卡| 国产裸体写真av一区二区| 午夜精品久久久久久久99樱桃| 欧美日韩精品高清| 欧美激情视频一区二区三区在线播放| 亚洲欧美日韩中文在线制服| 欧美大学生性色视频| 欧美三级资源在线| 中国女人久久久| 国产欧美日韩一区二区三区在线| 久久久久久高潮国产精品视| 午夜精品久久久久久久99热浪潮| 国产欧美高清| 欧美国产日韩在线观看| 亚洲精品乱码久久久久久日本蜜臀| 韩国成人理伦片免费播放| 久久午夜羞羞影院免费观看| 国产精品国产三级国产aⅴ无密码| 国产一在线精品一区在线观看| 国产精品实拍| 国产精品激情av在线播放| 一本久久a久久精品亚洲| 欧美激情第六页| 欧美日韩日日夜夜| 中国成人黄色视屏| 欧美三级黄美女| 国产一区二区三区观看| 榴莲视频成人在线观看| 一区二区欧美激情| 国产亚洲一区在线播放| 激情视频一区二区| 国产欧美在线| 国模精品一区二区三区| 久久精品国产69国产精品亚洲| 香蕉乱码成人久久天堂爱免费| 在线精品国精品国产尤物884a| 黄色成人在线免费| 欧美大片在线看免费观看| 亚洲国产精品久久91精品| 国内成+人亚洲+欧美+综合在线| 久久成人免费网| 欧美日韩美女在线观看| 午夜日韩福利| 麻豆成人小视频| 亚洲丰满少妇videoshd| 亚洲午夜久久久久久久久电影网| 国产日韩欧美一区二区| 亚洲黄色在线视频| 欧美成人精品高清在线播放| 亚洲国产精品v| 国产精品视频999| 久久中文精品| 国产精品日韩欧美大师| 在线观看视频免费一区二区三区| 久久综合狠狠综合久久激情| 国产精品视频一二三| 欧美二区在线看| 国产精品高潮呻吟久久| 女生裸体视频一区二区三区| 99精品视频免费全部在线| 欧美一区二区视频网站| 国产精品成人免费| 国产精品v欧美精品v日韩| 日韩午夜免费视频| 免费视频一区| 国产喷白浆一区二区三区| 国产精品视频福利| 国产亚洲成精品久久| 亚洲一区二区日本| 99www免费人成精品| 久久国产精品久久久久久| 日韩手机在线导航| 久久午夜激情| 亚洲区中文字幕| 欧美色视频一区| 一区二区在线视频| 狂野欧美激情性xxxx欧美| 国产精品国产a级| 午夜电影亚洲| 亚洲精品小视频| 久久精品夜夜夜夜久久| 久久夜色精品国产亚洲aⅴ| 猛男gaygay欧美视频| 中文亚洲欧美| 欧美视频1区| 欧美aaaaaaaa牛牛影院| 欧美一区二区观看视频| 一区二区三区精品视频| 欧美大片免费久久精品三p| 亚洲欧洲日产国产综合网| 欧美在线观看天堂一区二区三区| 在线观看91久久久久久| 欧美精品福利在线| 欧美一区1区三区3区公司| 亚洲日韩欧美视频| 国产精品一区一区| 国模精品一区二区三区色天香| 欧美国产视频一区二区| 亚洲午夜小视频| 国产精品福利网站| 亚洲国产91精品在线观看| 国产欧美精品一区| 国产日韩精品在线观看| 亚洲一区3d动漫同人无遮挡| 在线不卡中文字幕播放| 国产精品无码专区在线观看| 欧美日本精品一区二区三区| 国内成+人亚洲| 国产欧美一区二区三区久久人妖| 亚洲激情成人在线| 国产精品久久波多野结衣| 国产主播一区二区三区四区| 国产日韩一区二区三区| 久久人人爽人人爽| 中文欧美在线视频| 亚洲第一精品夜夜躁人人躁| 亚洲精品免费在线观看| 欧美视频一区在线| 国产精品视频xxxx| 亚洲一区二区成人| 久热精品在线| 欧美成人性生活| 久久综合一区二区三区| 久热re这里精品视频在线6| 欧美日韩免费一区二区三区| 欧美在线看片a免费观看| 亚洲国产精品悠悠久久琪琪| 国产午夜久久| 久久久人成影片一区二区三区观看| 国产日韩在线看片| 在线观看亚洲专区| 午夜精品视频| 欧美电影打屁股sp| 欧美在线关看| 亚洲国产日韩精品| 亚洲在线一区二区三区| 欧美影视一区| 亚洲综合日韩中文字幕v在线| 午夜精品久久久久久久白皮肤| 欧美午夜电影在线观看| 欧美mv日韩mv国产网站app| 欧美三区免费完整视频在线观看| 国产亚洲精品aa午夜观看| 久久精品一本久久99精品| 欧美三级乱人伦电影| 欧美成年人视频| 午夜一区二区三视频在线观看| 国产精品黄色| 欧美成人xxx| 妖精成人www高清在线观看| 亚洲观看高清完整版在线观看| 欧美丰满高潮xxxx喷水动漫| 亚洲欧美日韩在线播放| 中文网丁香综合网| 亚洲视频一区二区| 欧美激情精品久久久| 国产精品男人爽免费视频1| 欧美在线地址| 欧美日韩成人在线| 欧美激情一区二区三区蜜桃视频| 国产精品久久久久久av下载红粉| 欧美日韩在线观看一区二区| 欧美极品在线观看| 狠狠狠色丁香婷婷综合激情| 亚洲国产日韩在线一区模特| 亚洲电影天堂av| 另类国产ts人妖高潮视频| 国产日韩欧美综合精品| 欧美成人免费在线视频| 久久久精品动漫| 国产日韩欧美中文在线播放| 亚洲欧美日韩国产一区二区| 国产主播喷水一区二区| 欧美成年人网站| 欧美日韩中文| 国产欧美一区二区精品忘忧草| 国产精品日本| 亚洲视频狠狠| 欧美午夜国产| 欧美成人午夜影院| 亚洲天天影视| 99精品欧美一区| 欧美日韩一区二区三区免费| 亚洲精品美女在线观看播放| 国产亚洲欧美一区二区三区| 在线观看国产欧美| 欧美色另类天堂2015| 亚洲精品一区二区三区不| 激情五月婷婷综合| 国产精品日日摸夜夜添夜夜av| 国产欧美一区二区色老头| 欧美伊人久久大香线蕉综合69| 国产婷婷色一区二区三区在线| 激情欧美一区二区三区在线观看| 亚洲人成亚洲人成在线观看图片| 欧美日韩视频一区二区| 欧美连裤袜在线视频| 国产日产精品一区二区三区四区的观看方式| 亚洲乱码国产乱码精品精| 亚洲欧美日韩视频二区| 中日韩午夜理伦电影免费| 国产精品网站视频| 国精品一区二区三区| 亚洲欧美福利一区二区| 美日韩精品视频免费看| 亚洲嫩草精品久久| 1000部精品久久久久久久久| 欧美**字幕| 午夜宅男久久久| 欧美一区二区三区啪啪| 一本大道久久a久久综合婷婷| 国产精品综合| 亚洲激情电影在线| 国产精品免费视频xxxx| 亚洲视频 欧洲视频| 欧美日韩美女一区二区| 久久久久一区二区三区四区| 欧美亚洲不卡| 久久漫画官网|