資料介紹
基于CPLD的系統(tǒng)中I2C總線的設計
?
摘要: 在介紹I2C總線協(xié)議的基礎上,討論了基于CPLD的系統(tǒng)中I2C總線的設計技術,并結(jié)合工程實例設計了I2C總線IP核,給出了部分源代碼和仿真結(jié)果。
關鍵詞: I2C總線 IP核 CPLD
I2C總線是PHILIPS公司推出的新一代串行總線,其應用日漸廣泛?1~2?。目前許多單片機都帶有I2C總線接口,能方便地實現(xiàn)I2C總線設計;對沒有I2C總線的微控制器(MCU),可以采用兩條I/O口線進行模擬。在以單片機為MCU的系統(tǒng)中很容易實現(xiàn)I2C總線的模擬擴展,有現(xiàn)成的通用軟件包可以使用?2~3?。
對有些基于CPLD的系統(tǒng),要與帶有I2C總線接口的外圍器件連接,實現(xiàn)起來相對復雜一些。為實現(xiàn)系統(tǒng)中的I2C總線接口,可以另外引入單片機,也可以采用PCF8584或者PCA9564器件(PHILIPS公司推出的專用I2C總線擴展器)進行擴展,但這樣會增加系統(tǒng)成本,使系統(tǒng)冗余復雜。像ALTERA、XILINX等一些大公司有專用的基于CPLD器件的I2C總線IP核,但這些IP核的通用性不強,需要的外圍控制信號較多,占用系統(tǒng)很大的資源,因此直接采用這種IP核不可取。
I2C總線的協(xié)議
I2C總線僅僅依靠兩根連線就實現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送:一根為串行數(shù)據(jù)線(SDA),一根為串行時鐘線(SCL)。該總線協(xié)議有嚴格的時序要求。總線工作時,由時鐘控制線SCL傳送時鐘脈沖,由串行數(shù)據(jù)線SDA傳送數(shù)據(jù)??偩€傳送的每幀數(shù)據(jù)均為一個字節(jié)(8 bit),但啟動I2C總線后,傳送的字節(jié)個數(shù)沒有限制,只要求每傳送一個字節(jié)后,對方回應一個應答位(Acknowledge Bit)。發(fā)送數(shù)據(jù)時首先發(fā)送數(shù)據(jù)的最高位(MSB)。
I2C總線協(xié)議規(guī)定,啟動總線后第一個字節(jié)的高7位是從器件的尋址地址,第8位為方向位(“0”表示主器件對從器件的寫操作;“1”表示主器件對從器件的讀操作),其余的字節(jié)為操作的數(shù)據(jù)??偩€每次傳送開始時有起始信號,結(jié)束時有停止信號。在總線傳送完一個或幾個字節(jié)后,可以使SCL線的電平變低,從而使傳送暫停。
圖1列出了I2C總線上典型信號的時序,圖2表示I2C總線上一次完整的數(shù)據(jù)傳送過程。
依據(jù)I2C總線的傳輸協(xié)議,總線工作時的具體時序如下:
起始信號(S):在時鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由高電平向低電平的變化,用于啟動I2C總線,準備開始傳送數(shù)據(jù);
停止信號(P):在時鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由低電平向高電平的變化,用于停止I2C總線上的數(shù)據(jù)傳送;
應答信號(A):I2C總線的第9個脈沖對應應答位,若SDA線上顯示低電平則為總線“應答”(A),若SDA線上顯示高電平則為“非應答”(/A);
數(shù)據(jù)位傳送:I2C總線起始信號或應答信號之后的第1~8個時鐘脈沖對應一個字節(jié)的8位數(shù)據(jù)傳送。在脈沖高電平期間,數(shù)據(jù)串行傳送;在脈沖低電平期間,數(shù)據(jù)準備,允許總線上數(shù)據(jù)電平變化。
?
摘要: 在介紹I2C總線協(xié)議的基礎上,討論了基于CPLD的系統(tǒng)中I2C總線的設計技術,并結(jié)合工程實例設計了I2C總線IP核,給出了部分源代碼和仿真結(jié)果。
關鍵詞: I2C總線 IP核 CPLD
I2C總線是PHILIPS公司推出的新一代串行總線,其應用日漸廣泛?1~2?。目前許多單片機都帶有I2C總線接口,能方便地實現(xiàn)I2C總線設計;對沒有I2C總線的微控制器(MCU),可以采用兩條I/O口線進行模擬。在以單片機為MCU的系統(tǒng)中很容易實現(xiàn)I2C總線的模擬擴展,有現(xiàn)成的通用軟件包可以使用?2~3?。
對有些基于CPLD的系統(tǒng),要與帶有I2C總線接口的外圍器件連接,實現(xiàn)起來相對復雜一些。為實現(xiàn)系統(tǒng)中的I2C總線接口,可以另外引入單片機,也可以采用PCF8584或者PCA9564器件(PHILIPS公司推出的專用I2C總線擴展器)進行擴展,但這樣會增加系統(tǒng)成本,使系統(tǒng)冗余復雜。像ALTERA、XILINX等一些大公司有專用的基于CPLD器件的I2C總線IP核,但這些IP核的通用性不強,需要的外圍控制信號較多,占用系統(tǒng)很大的資源,因此直接采用這種IP核不可取。
I2C總線的協(xié)議
I2C總線僅僅依靠兩根連線就實現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送:一根為串行數(shù)據(jù)線(SDA),一根為串行時鐘線(SCL)。該總線協(xié)議有嚴格的時序要求。總線工作時,由時鐘控制線SCL傳送時鐘脈沖,由串行數(shù)據(jù)線SDA傳送數(shù)據(jù)??偩€傳送的每幀數(shù)據(jù)均為一個字節(jié)(8 bit),但啟動I2C總線后,傳送的字節(jié)個數(shù)沒有限制,只要求每傳送一個字節(jié)后,對方回應一個應答位(Acknowledge Bit)。發(fā)送數(shù)據(jù)時首先發(fā)送數(shù)據(jù)的最高位(MSB)。
I2C總線協(xié)議規(guī)定,啟動總線后第一個字節(jié)的高7位是從器件的尋址地址,第8位為方向位(“0”表示主器件對從器件的寫操作;“1”表示主器件對從器件的讀操作),其余的字節(jié)為操作的數(shù)據(jù)??偩€每次傳送開始時有起始信號,結(jié)束時有停止信號。在總線傳送完一個或幾個字節(jié)后,可以使SCL線的電平變低,從而使傳送暫停。
圖1列出了I2C總線上典型信號的時序,圖2表示I2C總線上一次完整的數(shù)據(jù)傳送過程。
依據(jù)I2C總線的傳輸協(xié)議,總線工作時的具體時序如下:
起始信號(S):在時鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由高電平向低電平的變化,用于啟動I2C總線,準備開始傳送數(shù)據(jù);
停止信號(P):在時鐘SCL為高電平期間,數(shù)據(jù)線SDA出現(xiàn)由低電平向高電平的變化,用于停止I2C總線上的數(shù)據(jù)傳送;
應答信號(A):I2C總線的第9個脈沖對應應答位,若SDA線上顯示低電平則為總線“應答”(A),若SDA線上顯示高電平則為“非應答”(/A);
數(shù)據(jù)位傳送:I2C總線起始信號或應答信號之后的第1~8個時鐘脈沖對應一個字節(jié)的8位數(shù)據(jù)傳送。在脈沖高電平期間,數(shù)據(jù)串行傳送;在脈沖低電平期間,數(shù)據(jù)準備,允許總線上數(shù)據(jù)電平變化。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- I2C總線應用系統(tǒng)設計運用 10次下載
- 基于51的I2c總線 34次下載
- SPI總線及I2C總線工作原理 0次下載
- 基于CPLD的I2C總線接口設計
- I2C總線在Linux系統(tǒng)中的驅(qū)動設計
- I2C總線技術在彩電中的應用
- 基于I2C總線的大型開關矩陣設計與實現(xiàn)
- I2C總線應用中的幾個問題
- 基于MCU和CPLD系統(tǒng)中I2C總線控制器的設計與實現(xiàn)
- I2C總線規(guī)范與I2C器件C51讀寫程序
- i2c總線的特點
- 基于MCU 的I2C 總線傳輸設計
- 用嵌入式系統(tǒng)的SPI模塊實現(xiàn)I2C總線通信
- i2c總線ppt(I2C總線器件應用) 0次下載
- I2C總線器件在高抗干擾系統(tǒng)中的應用 0次下載
- I2C總線協(xié)議的工作原理和尋址格式 1134次閱讀
- Linux I2C驅(qū)動入門知識科普 1518次閱讀
- i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程 7086次閱讀
- I2C總線驅(qū)動的C語言源程序詳細說明 5050次閱讀
- I2C總線系統(tǒng)中引起電壓失常的原因和檢修方法 1.5w次閱讀
- I2C總線控制系統(tǒng)的構成_I2C總線控制系統(tǒng)的特點 1581次閱讀
- 基于MCS-51單片機I2C總線接口電路的設計 3245次閱讀
- I2C總線的工作原理解析 6416次閱讀
- I2C總線的特點與構成詳解 1w次閱讀
- 80C51單片機模擬I2C總線的主機程序分享 3232次閱讀
- I2C總線的特點、控制技術與傳輸分析 9914次閱讀
- i2c總線相關知識 3411次閱讀
- 《振南電子STM32視頻教程》第八講:I2C總線 1077次閱讀
- 基于FPGA的I2C SLAVE模式總線的設計方案 1.3w次閱讀
- I2C器件接口IP核的CPLD設計 1136次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多