999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的多路I2C總線設計與實現

2011-08-13 06:33:04陳志列
電子技術應用 2011年4期
關鍵詞:設備

陳志列

(研祥智能科技股份有限公司,廣東 深圳 518057)

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控制器作為從節點通信時,地址寄存器中保存的是自己的地址,這個地址在總線上是唯一的。從節點接收到包頭后,將其中的地址與自己的地址比較,如果一致,則響應主節點,開始傳輸。

圖1 多路I2C總線系統硬件設計圖

圖2 邏輯模塊關系示意圖

(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狀態。

圖3 主控制狀態機

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狀態。

圖4 時鐘狀態機

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/.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 亚洲热线99精品视频| 在线日本国产成人免费的| 免费可以看的无遮挡av无码| 91久久大香线蕉| 香蕉视频在线精品| 中文字幕在线日韩91| 欧美中日韩在线| 自拍中文字幕| 中文字幕在线免费看| 免费一级毛片不卡在线播放| 内射人妻无码色AV天堂| 中文字幕佐山爱一区二区免费| 久久网综合| 波多野结衣第一页| 中文字幕在线欧美| 久精品色妇丰满人妻| 九九热视频精品在线| 亚洲综合香蕉| 欧美国产日韩在线| 久久人人妻人人爽人人卡片av| 国产成人亚洲欧美激情| 精品乱码久久久久久久| 无码免费试看| 中文无码精品A∨在线观看不卡| 亚洲最大综合网| 欧美福利在线| 国产剧情一区二区| 亚洲精品国产成人7777| 99热这里只有精品在线播放| 亚洲精品大秀视频| 欧美午夜久久| 国产成+人+综合+亚洲欧美| a欧美在线| 一级爆乳无码av| 中文无码精品a∨在线观看| 91丝袜美腿高跟国产极品老师| 91国内视频在线观看| 播五月综合| 久久青草免费91线频观看不卡| 伊人色在线视频| 一级毛片在线免费视频| 日韩欧美国产综合| 国产不卡国语在线| 日本精品视频一区二区| 丰满人妻一区二区三区视频| 国产极品嫩模在线观看91| 国产精品视屏| 国产精品99一区不卡| 久久精品视频一| 精品视频一区二区观看| 一级毛片免费观看久| 992tv国产人成在线观看| 一区二区三区四区在线| 无码av免费不卡在线观看| 福利在线免费视频| 亚洲IV视频免费在线光看| 欧美成人精品欧美一级乱黄| 中文无码精品A∨在线观看不卡| 国产欧美中文字幕| 亚洲av无码牛牛影视在线二区| 丰满人妻被猛烈进入无码| 97国产在线播放| 香蕉国产精品视频| 一级毛片无毒不卡直接观看| 国产精品美女在线| 免费毛片在线| 波多野结衣二区| 色一情一乱一伦一区二区三区小说 | 女人爽到高潮免费视频大全| 国产高潮视频在线观看| 99热这里只有成人精品国产| 国产丝袜第一页| 中国一级毛片免费观看| 视频一本大道香蕉久在线播放| 欧美成人精品在线| jizz国产视频| 国内熟女少妇一线天| 91免费片| 久久99国产乱子伦精品免| 国产精品55夜色66夜色| 91外围女在线观看| 国产毛片久久国产|