《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于VHDL/CPLD的I2C串行總線控制器設計及實現
基于VHDL/CPLD的I2C串行總線控制器設計及實現
錢 敏, 黃秋萍, 李富華, 劉
摘要: 分析了I2C串行總線的數據傳輸機制,用VHDL設計了串行總線控制電路,其中包括微處理器接口電路和I2C總線接口電路。采用ModelSim Plus 6.0 SE軟件進行了前仿真和調試,并在Xilinx ISE 7.1i開發環境下進行了綜合、后仿真和CPLD器件下載測試。 結果表明實現了I2C串行總線協議的要求。
關鍵詞: CPLD I2C VHDL 總線控制器
Abstract:
Key words :

  摘 要: 分析了I2C串行總線的數據傳輸機制,用VHDL設計了串行總線控制電路,其中包括微處理器接口電路和I2C總線接口電路。采用ModelSim Plus 6.0 SE軟件進行了前仿真和調試,并在Xilinx ISE 7.1i開發環境下進行了綜合、后仿真和CPLD器件下載測試。 結果表明實現了I2C串行總線協議的要求。
  關鍵詞: I2C串行總線控制器 接口電路 VHDL CPLD


  串行總線和并行總線相比具有結構簡單、占用引腳少、成本低的優點。常見的串行總線有USB、IEEE1394、I2C等,其中I2C總線具有使用簡單的特點,在單片機、串行E2PROM、LCD等器件中具有廣泛的應用。
  I2C(Inter IC BUS)是Philips公司開發的用于芯片之間連接的總線。 I2C總線用兩根信號線進行數據傳輸,一根為串行數據線(SDA),另一根為串行時鐘線(SCL)。I2C總線允許若干兼容器件(如存儲器、A/D轉換器、D/A轉換器、LCD驅動器等)共享總線。I2C總線理論上可以允許的最大設備數,是以總線上所有器件的總電容(其中包括連線本身的電容和連接端的引出電容)不超過400pF為限,總線上所有器件依靠SDA線發送的地址信號尋址,不需要片選線。任何時刻總線只能由一個主器件控制,各從器件在總線空閑時啟動數據傳輸。I2C總線數據傳輸的標準模式速率為100kbps,快速模式速率為400kbps,高速模式速率為3.4Mbps。
  用VHDL和CPLD設計數字系統具有傳統方法無可比擬的優越性,它已經成為大規模集成電路設計最為有效的一種手段。為簡單起見,本文采用VHDL設計標準模式的I2C總線控制電路。
1 I2C總線上的數據傳輸
  I2C總線包含時鐘線SCL和數據線SDA兩條連線,SCL由主機產生。I2C總線的數據傳輸流程如圖1所示。其傳輸過程為:首先主機產生起始位,然后傳送第一個字節。8位數據中首先傳送的是數據的最高位MSB,最低位LSB為讀寫指示位,1表示主機讀,0表示主機寫,高7位地址可使主機尋址128個從器件。


  從機收到第一字節數據后發響應位,主機收到響應位后接著發送第二個字節的數據。數據發送完畢后產生結束位,數據傳送結束。數據傳送時,只有時鐘SCL為低電平時SDA才允許切換,SCL為高電平時SDA必須穩定,此時SDA的電平就是總線轉送的數值。
  在SCL為高電平時,SDA線由高到低切換表示起始位,SDA線由低到高切換表示停止位。起始位和停止位由主機產生,在起始位產生后總線處于忙狀態,停止位出現并經過一定時間后總線進入空閑狀態。發送器每發送一個字節后,接收器必須產生一個響應位。響應位的驅動時鐘由主機產生則接收器將SDA線拉低產生響應位。如果主機是接收器,則接收最后一個字節時,響應位為1,通知從機結束發送,否則響應位為0。當從機不能響應從機地址(例如它正在執行一些實時函數,不能接收或發送)時,或響應了從機地址但在傳輸一段時間后不能接收更多的數據字節,此時從機可以通過響應位為1通知主機終止當前的傳輸,于是主機產生一個停止位終止傳輸,或者產生重復開始位開始新的傳輸。
  SDA線上傳送的數據必須為8位,每次傳送可以發送的字節數量不受限制。如果從機要完成一些其他功能(例如執行一個內部中斷服務程序)才能接收或發送下一個數據字節,則從機可以使SCL維持低電位,迫使主機進入等待狀態。從機準備好接收或發送下一個數據字節時,釋放SCL,數據傳輸繼續。
  SDA和SCL都是雙向線路,使用時通過上拉電阻連接到電源??偩€空閑時這兩條線路都是高電平,連接到總線的器件的輸出級必須是漏極開路或集電極開路,這樣總線才能執行“線與”的功能。
  主機發完第一個字節后,數據傳輸方向的變化可能存在三種情況。(1)傳輸方向不變,如主機向從機寫;(2)傳輸方向改變,如主機從從機讀數據;(3)傳輸方向改變多次,如主機對從機進行多次讀寫。
2 時鐘同步與仲裁
  I2C總線在任何時刻只能有一個主機,當I2C總線同時有兩個或更多的器件想成為主機時,就需要進行仲裁;時鐘同步的目的就是為仲裁提供一個確定的時鐘。時鐘SCL的同步和仲裁通過“線與”來執行,SCL的低電平時間取決于低電平時間最長的主機,高電平時間取決于高電平時間最短的主機。
  仲裁過程在數據線SDA線上進行,當SCL為高電平時,如果SDA線上有主機發送低電平,則發送高電平的主機將關閉輸出級。因為總線的狀態和自身內部不一樣,于是發送低電平的主機贏得仲裁。仲裁可以持續多個位,在實際通信過程中,仲裁的第一階段比較地址位,如果多個主機尋址同一個從機,則繼續比較數據位(主機是發送機)或響應位(主機是接收機)。由于I2C總線上的地址和數據由贏得總線的主機決定,因此仲裁過程中不會丟失信息。如果一個主機具有從機功能,則當它失去仲裁時,必須立即切換到從機狀態,因為它可能正在被其他主機尋址。
3 I2C總線控制器設計
  I2C總線控制器的主要作用是提供微控制器(μC)和I2C總線之間的接口,為兩者之間的通信提供物理層協議的轉換。在串行應用系統中,外圍器件(如串行E2PROM、LCD、實時鐘等)連接在I2C總線上,再通過I2C總線控制器和μC連起來。其典型的應用,如現在許多彩電的控制系統都基于I2C總線。為了使設計清晰明了,本文將控制器的設計分成兩部分。一部分為微控制器(μC)接口,另一部分為I2C接口,如圖2所示。


  μC接口部分主要包含狀態寄存器(MBSR)、控制寄存器(MBCR)、地址寄存器(MADR)、數據寄存器(MBDR)和地址譯碼/總線接口模塊。狀態寄存器指示I2C總線控制器的當前狀態,如傳輸是否完成、總線是否忙等信息。控制寄存器是μC控制I2C總線控制器的主要途徑,通過置0/1完成I2C總線控制器使能、中斷使能、主/從(Master/Slave)模式選擇、產生起始位等操作。地址寄存器保存著I2C總線控制器作為從機時的地址。數據寄存器用于保存接收的數據或是待發送的數據。
  I2C接口的核心是主狀態機,它控制著整個I2C接口的運作。和I2C總線直接相連的模塊有起始/停止位產生模塊、I2C Header寄存器、I2C數據寄存器和仲裁及起始/停止位檢測模塊。當控制器是Master時,起始/停止位產生模塊用于在I2C總線上產生起始位和停止位;I2C數據寄存器用于保存總線上傳送的數據;仲裁及起始/停止位檢測模塊的作用是執行仲裁,并檢測I2C總線上的起始/停止位,以便為主狀態機提供輸入。其他模塊包括:I2C狀態寄存器,用于記錄I2C總線的狀態;地址比較模塊,用于比較總線上傳送的地址和本機的從機地址是否一致,如果一致,說明其他主機正在尋址本控制器,控制器必須立即切換到從機狀態,同時發出響應位。
3.1 μC接口設計
  μC接口用于連接I2C接口電路和μC,主要實現兩者之間的信號交互握手機制。設計時可以用VHDL提供的狀態機來描述信號交互機制中的工作狀態切換,如圖3(a)所示。
  μC接口電路中使用的四組寄存器的地址是24位的,高16位為I2C總線控制器的基址(MBASE),占用μC的地址空間,低8位用于區別不同的寄存器。寄存器本身是8位的,圖3(b1)為控制寄存器,圖3(b2)為狀態寄存器。圖中示出了每一位的含義。


3.2 I2C接口設計
  I2C接口用于連接μC接口電路和I2C總線,由兩個狀態機構成:一個是I2C接口主狀態機,用于執行發送和接收操作;另一個為“SCL/SDA/ STOP 產生”狀態機,當I2C總線控制器為主機時,這個狀態機產生SCL/START/STOP信號。
  I2C接口用于I2C總線的驅動和接收,當I2C總線控制器為主機時,I2C接口必須按I2C總線規范驅動總線;當總線控制器為從機時,I2C必須能正確接收滿足I2C總線規范的信號。I2C設計規范對總線的時序作了詳細的定義,在不同模式下這些參數的具體數值都有明確的規定。“SCL/START/STOP 產生”狀態機的狀態轉換如圖4所示, I2C接口主狀態機的轉移圖如圖5所示。

 


4 仿真與硬件實現
  本文中仿真工具采用Mentor公司的ModelSim Plus 6.0 SE,其顯著的優越性能是提供了一個混合語言仿真環境,已在產業界廣泛應用。為了測試驗證系統的功能,本文采用了Atemel公司提供的采用I2C總線協議的AT24C02 E2PROM芯片(256B 8bit)的VerilogHDL仿真模型(AT24C02.v)作為從器件對象,用VerilogHDL語言構建了testbench(測試向量),對所設計I2C總線控制器進行仿真。
  圖6和圖7為μC通過I2C總線控制器對E2PROM進行數據寫/讀的仿真波形(將數據FFH~0HH寫進地址0~255單元,然后將它們再按順序讀的模式讀出)。往E2PROM寫入時需要給出所寫起始單元的地址(圖6中為00H); 從E2PROM順序讀時不用給出起始單元地址而從當前地址處開始讀(本文中寫完256B數據后,地址指針又回到0處)。相關狀態及數據已在圖中作了標示。由此可見,所設計的總線控制器完全符合標準I2C串行協議的時序要求。

 


  本文設計的系統實現平臺采用Xilinx公司的XC95216-10-PQ160 CPLD芯片,總邏輯門個數為4 800。經綜合、適配、布局布線后占用器件資源的情況為:宏單元120/216(56%)、寄存器111/216(52%)、功能塊331/432(77%)、乘積項分配器544/1080(51%)??梢?,系統占用約一半的資源,相當精簡。整個系統下載到CPLD后在2MHz時鐘頻率下運行正常。
參考文獻
1 王 誠,薛小剛,鐘信朝. FPGA/CPLD設計工具Xilinx ISE使用詳解.北京:人民郵電出版社,2005:439~478
2 劉 韜,樓興華. FPGA數字電子系統設計與開發實例導航.北京:人民郵電出版社,2005:84~126
3 夏宇聞. 復雜數字電路與系統的Verilog HDL設計技術. 北京:北京航空航天大學出版社,1998:110~136

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          久久久久99| 亚洲久色影视| 国产日韩1区| 男人的天堂成人在线| 美女精品国产| 国内精品久久久久国产盗摄免费观看完整版| 欧美日本三区| 在线视频亚洲| 欧美全黄视频| 国产亚洲在线观看| 欧美三级免费| 国产精品毛片在线| 欧美日韩亚洲一区二区三区在线观看 | 9国产精品视频| 亚洲欧美日产图| 伊人久久大香线蕉av超碰演员| 亚洲欧美久久久| 亚洲欧洲另类| 黄色亚洲大片免费在线观看| 久久久噜噜噜| 免费在线观看成人av| 亚洲黄网站黄| 在线成人黄色| 久久激情网站| 久久精品国产99精品国产亚洲性色| 国产精品久久亚洲7777| 欧美精选一区| 蜜乳av另类精品一区二区| 精品av久久久久电影| 欧美一区久久| 香蕉视频成人在线观看| 亚洲激情自拍| 国精品一区二区| 久久尤物视频| 六月婷婷一区| 免费在线成人av| 亚洲一区二区免费看| 亚洲国产婷婷| 91久久精品www人人做人人爽| 欧美午夜不卡| 欧美精品二区| 欧美福利精品| 欧美特黄a级高清免费大片a级| 久久精品国产第一区二区三区最新章节| 亚洲精品一二| 国产偷自视频区视频一区二区| 亚洲精品视频一区二区三区| 亚洲国产精品一区| 在线观看视频日韩| 亚洲图片欧洲图片日韩av| 亚洲午夜电影| 亚洲国产一区二区在线| 亚洲精华国产欧美| 在线视频欧美一区| 香蕉久久夜色精品国产| 欧美aa国产视频| 黄色欧美成人| 国产精品资源| 午夜日本精品| 欧美久久久久久| 精品不卡一区二区三区| 黄色成人精品网站| 一区二区三区四区五区视频| 亚洲尤物精选| 欧美体内she精视频在线观看| 黑人一区二区| 国产精品嫩草99av在线| 久久亚洲一区二区| 激情五月***国产精品| 国产日韩欧美综合精品| 欧美激情视频一区二区三区免费| 亚洲国产一区二区三区高清| 先锋影音久久| 国产综合色产| 性色一区二区三区| 亚洲午夜精品一区二区| 国产欧美综合一区二区三区| 国产精品第十页| 亚洲一区国产一区| 亚洲人人精品| 国产精品sm| 久久久久久一区| 国产日韩精品视频一区二区三区| 午夜视频久久久| 亚洲一区二区三区欧美| 狠狠色噜噜狠狠色综合久| 亚洲欧美卡通另类91av| 亚洲成色精品| 欧美福利一区| 国产精品手机视频| 亚洲日韩视频| 伊人成人在线视频| 欧美日本三区| 久久久久久亚洲精品不卡4k岛国| 亚洲精品国产日韩| 亚洲一级影院| 欧美三级在线| 欧美在线播放| 91久久精品一区二区别| 欧美a级片网站| 久久国产日韩欧美| 国产农村妇女毛片精品久久莱园子| 国产专区一区| 国产精品va| 欧美涩涩视频| 国产综合自拍| 亚洲午夜精品久久久久久浪潮| 欧美国产先锋| 欧美日韩高清免费| 欧美日韩大片一区二区三区| 午夜免费电影一区在线观看| 欧美精品偷拍| 国内自拍一区| 亚洲激情不卡| 国产日韩免费| 久久都是精品| 欧美 日韩 国产 一区| 欧美在线免费一级片| 欧美在线国产| 国产主播一区二区三区四区| 伊人久久婷婷| 一区二区av| 翔田千里一区二区| 欧美大片专区| 亚洲高清视频一区| 国产日韩在线一区二区三区| 国产毛片久久| 欧美日韩mv| 亚洲精品1区| 国产精品一国产精品k频道56| 亚洲一区欧美二区| 久久久久久久高潮| 欧美午夜在线| 日韩一级网站| 模特精品在线| 韩国一区二区三区在线观看 | 99re热精品| 国产一区二区久久久| 亚洲综合二区| 欧美黄色一级视频| 狠久久av成人天堂| 国产精品久久久久久久久婷婷 | 亚洲精品欧洲精品| 欧美日本不卡| 国产欧美欧美| 久久五月激情| 在线观看一区欧美| 午夜亚洲视频| 亚洲视频欧美在线| 国产日韩视频| 欧美午夜一区二区福利视频| 国产精品免费一区二区三区在线观看 | 老牛嫩草一区二区三区日本 | 亚洲欧洲日本国产| 久久精品成人| 亚洲美女少妇无套啪啪呻吟| 欧美精品国产一区| 国产精品一区二区在线观看| 国内自拍一区| 久久亚洲高清| 亚洲一区日韩在线| 亚洲免费成人| 亚洲二区在线| 欧美日韩精品免费观看视一区二区 | 99精品99| 国产尤物精品| 久久视频一区| 亚洲欧美日韩视频二区| 亚洲国产一区在线| 欧美激情一区| 久久亚洲电影| 亚洲欧美清纯在线制服| 亚洲区第一页| 伊人久久大香线蕉av超碰演员| 久久精品人人| 美女久久一区| 久久久久久久高潮| 亚洲一区久久| 中文精品视频| 一区二区国产在线观看| 精品不卡在线| 极品少妇一区二区三区| 欧美三级免费| 欧美久久成人| 欧美日韩理论| 国产在线精品一区二区中文| 欧美日韩国产精品一区二区亚洲| 久久久久高清| 久久成人免费| 亚洲一区二区三区色| 亚洲三级网站| 宅男噜噜噜66国产日韩在线观看| 日韩一级免费| 香蕉视频成人在线观看| 久久国产精品免费一区| 久久精品欧洲| 国产精品二区二区三区| 国内一区二区三区在线视频| 精品二区久久| 国产亚洲欧美一区二区| 久久riav二区三区| 欧美日本亚洲| 亚洲精品1区2区| 国产精品亚洲综合久久| 久久精品观看| 激情自拍一区| 亚洲一区二区三区午夜| 老司机精品导航| 极品尤物久久久av免费看| 一区二区久久| 欧美在线黄色| 亚洲美女91| 久久亚洲色图| 亚洲黄色大片| 久久欧美肥婆一二区| 1000部精品久久久久久久久| 亚洲欧美网站| 亚洲视频久久| 久久精品国语| 亚洲国产欧美日韩| 销魂美女一区二区三区视频在线| 欧美日韩1080p| 国产视频在线观看一区| 欧美日韩国产欧| 国产亚洲永久域名| 国模大胆一区二区三区| 亚洲一区网站| 亚洲黄色天堂| 欧美日韩亚洲一区| 午夜一区二区三区不卡视频| 黄色免费成人| 巨乳诱惑日韩免费av| 99热精品在线观看| 韩国在线视频一区| 久久久av水蜜桃| 国产视频一区免费看| 国语精品中文字幕| 老鸭窝毛片一区二区三区| 亚洲激情影院| 亚洲一级一区| 国产一区观看| 欧美日韩成人一区二区三区| 男人的天堂亚洲在线| 一本色道久久综合亚洲二区三区| 欧美激情视频一区二区三区免费| 香蕉久久国产| 亚洲一区影院| 国产精品免费区二区三区观看| 亚洲黄色视屏| 最新成人av网站| 亚洲国产欧美不卡在线观看| 韩国欧美一区| 亚洲无线一线二线三线区别av| 欧美精品日本| 欧美精品午夜| 国产精品yjizz| 国产精品大片免费观看| 欧美亚韩一区| 欧美午夜国产| 亚洲午夜精品久久| 亚洲夜间福利| 伊人久久av导航| 在线观看成人一级片| 亚洲国产mv| 9国产精品视频| 国产精品午夜av在线| 西西裸体人体做爰大胆久久久| 午夜在线一区二区| 久久一区精品| 国产精品二区三区四区| 亚洲性图久久| 99精品视频免费观看| 国产精品亚洲一区| 巨乳诱惑日韩免费av| 国产一区再线| 一区二区精品国产| 久久国产99| 欧美特黄一区| 在线视频一区观看| 久久成人国产| 韩国自拍一区| 国产三区精品| 欧美国产高潮xxxx1819| 好看的亚洲午夜视频在线| 99视频精品免费观看| 性欧美暴力猛交另类hd| 午夜精品剧场| 99热这里只有成人精品国产| 老鸭窝毛片一区二区三区| 欧美日韩亚洲一区| 国产欧美91| 欧美日韩国产成人精品| 正在播放亚洲| 欧美日韩高清免费| 国产亚洲二区| 亚洲午夜黄色| 狂野欧美一区| 日韩亚洲不卡在线| 欧美在线1区| 99热这里只有精品8| 午夜免费电影一区在线观看| 国产人成精品一区二区三| 欧美成人首页| 亚洲欧美久久| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美亚洲一区二区三区| 尤物在线精品| 欧美aⅴ99久久黑人专区| 国产日产高清欧美一区二区三区| 欧美日韩国产综合网| 亚洲永久在线| 亚洲国产精品一区制服丝袜| 欧美精选一区| 久久久精彩视频| 国产一区成人| 最新日韩在线| 国产精品大片| 你懂的国产精品永久在线| 国产精品一区二区a| 亚洲精品看片| 黄色成人在线网址| 欧美日韩国产欧| 老**午夜毛片一区二区三区| 亚洲欧美春色| 亚洲综合三区| 亚洲一区二区三区四区中文| 夜夜夜久久久| 国产欧美高清| 国产日韩欧美一区在线| 国产欧美在线| 国产日韩欧美一区| 国产精品久久久免费| 99视频一区| 一本久久知道综合久久| 日韩视频中文| 国产手机视频一区二区| 中文亚洲欧美| 亚洲在线电影| 久久久久久久波多野高潮日日| 噜噜噜噜噜久久久久久91| 六月婷婷久久| 欧美精品自拍| 韩国在线视频一区| 亚洲视频日本| 亚洲久久一区| 国产视频一区在线观看一区免费| 国产婷婷精品| 久久久久久久欧美精品| 午夜日韩福利| 亚洲青涩在线| 先锋影音久久久| 欧美成人亚洲| 亚洲国产日本| 亚洲欧美日韩精品在线| 你懂的国产精品永久在线| 国产精品观看| 一本色道久久综合| 国产伦精品一区二区三区视频孕妇 | 先锋影音一区二区三区| 久久久久久久久久久一区| 欧美精品97| 99国内精品久久久久久久软件| 国产精品久久久久久模特| 久久久天天操| 伊人激情综合| 性色一区二区三区| 国产一区欧美| 国产精品免费一区二区三区在线观看| 亚洲欧美日韩另类精品一区二区三区| 久久亚洲国产精品一区二区 | 最新亚洲一区| 欧美专区在线| 亚洲小说欧美另类婷婷| 欧美一区=区| 亚洲黄色毛片| 亚洲欧美综合一区| 国产精品手机在线| 欧美性色综合| 亚洲一区日本| 亚洲电影av| 欧美女激情福利| 小嫩嫩精品导航| 亚洲激情一区| 欧美激情一级片一区二区| 9国产精品视频| 国产专区一区| 久久婷婷亚洲| 国产毛片一区| 99亚洲一区二区| 一区精品在线| 欧美日韩亚洲一区二区三区在线| 中文精品视频| 亚洲国产激情| 国产精品久久7| 欧美黄在线观看| 久久婷婷国产综合尤物精品| 亚洲在线网站| 国产精品视频福利| 亚洲深爱激情| 在线综合视频|