<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于I2C總線的處理器的聯(lián)網(wǎng)設(shè)計(jì)方案

          基于I2C總線的處理器的聯(lián)網(wǎng)設(shè)計(jì)方案

          作者: 時(shí)間:2012-03-14 來(lái)源:網(wǎng)絡(luò) 收藏

          隨著微控制器的價(jià)格越來(lái)越低,功能越來(lái)越強(qiáng)大,電氣人員發(fā)現(xiàn)在單板和多板系統(tǒng)中都使用多個(gè)小型控制器是一種更加經(jīng)濟(jì)高效的方法。這種輔助能夠減輕主在耗時(shí)任務(wù)上面的處理開銷,例如掃描鍵盤、顯示控制器和電機(jī)控制。這些控制器也可以配置為各種各樣的專用外設(shè)。

          本文引用地址:http://www.ex-cimer.com/article/149434.htm

          最近,我接受了一項(xiàng)任務(wù):開發(fā)一種能夠方便地適用于多種應(yīng)用的接口(軟/硬件),且要符合嵌入式中常用的行業(yè)標(biāo)準(zhǔn)。在分析了一些典型應(yīng)用之后,我們列出了一些針對(duì)該硬件接口的需求:常用于32位和8位處理器;能夠得到常用外設(shè)器件的支持;外設(shè)接口代碼量低于0.5kB;引腳數(shù)量少;數(shù)據(jù)帶寬可達(dá)10kBps;RAM用量少;一條上支持多種外設(shè);方便使用API;不需要外部接口驅(qū)動(dòng)硬件。

          由于要求引腳數(shù)量少,所以必須采用串行接口。目前處理器中常見的串行接口包括SPI、、USB和RS-232。通過(guò)從不同方面權(quán)衡比較這些接口,我最終選擇了,因?yàn)樗涌诤?jiǎn)單,靈活性好,得到了大多數(shù)低成本控制器的支持。在不需要很高傳輸速度的情況下,較少的引腳數(shù)和流量控制功能還使得接口相比SPI接口具有更大的優(yōu)勢(shì)。

          I2C的工作原理

          I2C是一種雙線雙向接口,包括一個(gè)時(shí)鐘信號(hào)和一個(gè)數(shù)據(jù)信號(hào)(SCL和SDA)。在不增加任何其他信號(hào)的情況下,一條I2C就可以支持多達(dá)12個(gè)設(shè)備。I2C接口規(guī)范包括三種工作速度:100kbps、400kbps和3.4Mbps。大多數(shù)常見的控制器只支持100-和400kbps兩種模式。I2C支持一個(gè)主設(shè)備多個(gè)從設(shè)備,或者多個(gè)主設(shè)備的配置結(jié)構(gòu)。

          I2C一個(gè)非常重要的特性就是它支持流量控制。如果某個(gè)從設(shè)備無(wú)法保持連續(xù)的字節(jié)傳輸,它可以將總線掛起,直到能夠跟上主設(shè)備的傳輸速度。這對(duì)于包含最小規(guī)模的I2C硬件并且必須在固件上支持部分傳輸協(xié)議的從設(shè)備來(lái)說(shuō)是非常有用的。I2C總線規(guī)范支持7b和10b兩種尋址協(xié)議。我發(fā)現(xiàn)7b尋址模式在大部分應(yīng)用中的效率更高。

          在開始編寫代碼之前,我們需要很好地了解I2C總線的工作原理。任何情況下I2C總線至少要包含一個(gè)主設(shè)備,至少要掛有一個(gè)或多個(gè)從設(shè)備。主設(shè)備總是由主到從發(fā)起數(shù)據(jù)傳輸操作。無(wú)論有多少個(gè)外設(shè)掛接在總線上,I2C接口只有兩個(gè)信號(hào)。

          兩個(gè)信號(hào)都是集電極開路的,通過(guò)大小為2.7k左右的上拉電阻接Vcc電源。SDA信號(hào)是雙向的,可以由主設(shè)備或從設(shè)備驅(qū)動(dòng)。SCL信號(hào)是由主設(shè)備驅(qū)動(dòng)的,但是在一個(gè)數(shù)據(jù)字節(jié)的末尾從設(shè)備必須保持SCL信號(hào)為低,以延遲總線直到從設(shè)備開始處理數(shù)據(jù)。主設(shè)備在數(shù)據(jù)字節(jié)的最后一位傳輸完之后釋放SCL信號(hào),然后檢查SCL信號(hào)是否變高。如果SCL沒(méi)有變高,那么主設(shè)備認(rèn)為從設(shè)備正在請(qǐng)求主設(shè)備延遲,直到其開始處理數(shù)據(jù)。

          當(dāng)通過(guò)I2C總線發(fā)送數(shù)據(jù)時(shí),只有當(dāng)SCL為低電平時(shí)才能進(jìn)行數(shù)據(jù)變換。當(dāng)SCL信號(hào)為高時(shí),任何方向的數(shù)據(jù)都應(yīng)該是穩(wěn)定的.

          當(dāng)總線空閑時(shí),主設(shè)備和從設(shè)備都不下拉SDA和SCL信號(hào)。在發(fā)起一次數(shù)據(jù)傳輸時(shí),主設(shè)備驅(qū)動(dòng)SDA信號(hào)從高電平變成低電平,同時(shí)SCL信號(hào)為高。一般地,當(dāng)SCL信號(hào)為高電平時(shí),SDA信號(hào)的狀態(tài)保持不變,但啟動(dòng)或停止條件下除外。當(dāng)SCL信號(hào)為高并且SDA信號(hào)從低變高時(shí),是傳輸停止的情況(如圖2所示)。

          I2C總線以8b為單位傳輸數(shù)據(jù)。每傳輸一個(gè)字節(jié)時(shí),必須得到數(shù)據(jù)接收方的確認(rèn)。所有的數(shù)據(jù)都是從MSB(最高有效位)開始傳輸?shù)摹?/p>



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();