新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > I2C總線在單片機上的實現(xiàn)

        I2C總線在單片機上的實現(xiàn)

        作者: 時間:2012-03-07 來源:網(wǎng)絡 收藏

        隨著大規(guī)模集成電路技術(shù)的發(fā)展,把CPU和一個單獨工作系統(tǒng)所必需的ROM、RAM、I/O端口、A/D、D/A等外圍電路集成在一個單片內(nèi)而制成的或微控制器愈來愈方便。目前,世界上許多公司生產(chǎn),品種很多。其中包括各種字長的CPU,各種容量的ROM、RAM以及功能各異的I/O接口電路等等,但是,的品種規(guī)格仍然有限,所以只能選用某種單片機來進行擴展。擴展的方法有兩種:一種是并行總線,另一種是串行總線。由于串行總線的連線少,結(jié)構(gòu)簡單,往往不用專門的母板和插座而直接用導線連接各個設備。因此,采用串行線可大大簡化系統(tǒng)的硬件設計。PHILIPS公司早在十幾年前就推出了 I2C串行總線,利用該總線可實現(xiàn)多主機系統(tǒng)所需的裁決和高低速設備同步等功能。因此,這是一種高性能的串行總線。

        1 的硬件結(jié)構(gòu)

        I2C串行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有接到設備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設備的時鐘線SCL接到總線的SCL上。典型的結(jié)構(gòu)如圖1所示。

        為了避免總線信號的混亂,要求各設備連接到總線的輸出端時必須是開漏輸出或集電極開路輸出。設備與總線的接口電路如圖2所示。設備上的串行數(shù)據(jù)線 SDA接口電路應該是雙向的,輸出電路用于向總線上發(fā)送數(shù)據(jù),輸入電路用于接收總線上的數(shù)據(jù)。而串行時鐘線也應是雙向的,作為控制總線數(shù)據(jù)傳送的主機,一方面要通過 SCL輸出電路發(fā)送時鐘信號,另一方面還要檢測總線上的SCL電平,以決定什么時候發(fā)送下一個時鐘脈沖電平;作為接受主機命令的從機,要按總線上的SCL 信號發(fā)出或接收SDA上的信號,也可以向SCL線發(fā)出低電平信號以延長總線時鐘信號周期。總線空閑時,因各設備都是開漏輸出,上拉電阻Rp使SDA和 SCL線都保持高電平。任一設備輸出的低電平都將使相應的總線信號線變低,也就是說:各設備的SDA是“與”關系,SCL也是“與”關系。

        總線對設備接口電路的制造工藝和電平都沒有特殊的要求(NMOS、CMOS都可以兼容)。在I2C總線上的數(shù)據(jù)傳送率可高達每秒十萬位,高速方式時在每秒四十萬位以上。另外,總線上允許連接的設備數(shù)以其電容量不超過400pF為限。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術(shù)專區(qū)

        關閉
        主站蜘蛛池模板: 洛浦县| 闽清县| 常山县| 鄱阳县| 灌阳县| 绥滨县| 大安市| 湄潭县| 如皋市| 林州市| 嘉祥县| 武义县| 九龙县| 商丘市| 海晏县| 柳州市| 石阡县| 阿坝县| 沂水县| 舟山市| 卢龙县| 贞丰县| 龙海市| 高碑店市| 罗城| 阳春市| 黄骅市| 秦安县| 微山县| 额敏县| 林西县| 察隅县| 搜索| 乡城县| 墨江| 阿克苏市| 开平市| 澄江县| 姚安县| 固阳县| 涟水县|