新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于I2C總線的單主多從單片機之間的通信

        基于I2C總線的單主多從單片機之間的通信

        作者: 時間:2013-02-17 來源:網(wǎng)絡 收藏

          引言

          隨著單片機控制系統(tǒng)的不斷擴大以及控制功能不斷增多,有限的單個單片機通用I/O口已不能滿足同一系統(tǒng)中控制多個受控對象需要,隨著FC總線研究的深入,用擴展單片機I/O口的方法在全自動、半自動儀器的開發(fā)領域得到了廣泛應用,本文介紹了一個測試系統(tǒng)通過FC總線擴展I/O口實現(xiàn)了系統(tǒng)的多個功能。給出了系統(tǒng)的硬件連接以及Atmega128與三個Atmega168之間的軟件圖。

          2 系統(tǒng)的硬件結構

          圖1是作者所研究的測試系統(tǒng)的整體框圖,本系統(tǒng)中主要芯片PHILIPS公司的,在此系統(tǒng)中鍵盤上其中三個按鈕分別控制三個電機,系統(tǒng)的主要功能是將掃描到的鍵盤信息發(fā)給Atmega128單片機,Atmega128單片機通過尋址Atmega168,并向被尋址的Atmega168發(fā)送電機控制命令,最后,電機根據(jù)Atmega168控制策略正常運行。電機啟動同時,數(shù)據(jù)采集模塊也開始正常運行,數(shù)據(jù)采集模塊把采到數(shù)據(jù)送到的A/D轉換接口,然后將ADC輸出的數(shù)據(jù)發(fā)送到LCD。系統(tǒng)中的撥碼開關用于設置相應的Atmega168單片機的地址,當單片機Atmega128接收到LPC2292發(fā)來的控制命令時,通過尋址Atmega168,當某個Atmega168的地址與Atmega128廣播地址相同時,它就開始根據(jù)Atmega128發(fā)送的命令控制電機開始工作。

        圖1基于I2C總線的I/O擴展框圖

          3 I2C總線

          I2C總線是PHILIPS公司推出的芯片間串行數(shù)據(jù)傳輸總線,軟、硬件協(xié)議十分巧妙,2根線(SDA,SCL)HP可實現(xiàn)完善的全雙工同步數(shù)據(jù)傳送,能夠十分方便地構成單主系統(tǒng)或多主系統(tǒng)和外同器件擴展系統(tǒng)。不過,多主系統(tǒng)(即系統(tǒng)中有多個I2C總線接口的單片機)會出現(xiàn)多主競爭的復雜狀態(tài)。I2C器件是把I2C的協(xié)議植入器件的I/O接口,使用時器件直接掛到I2C總線上,這一特點給用戶在設計應用系統(tǒng)時帶來了極大的方便。I2C器件無須片選信號,是否選中是由主器件發(fā)出的I2C從地址決定的。

          所有掛到I2C總線的外圍器件,各自都有一個唯一確定的地址。任何時刻總線上只有一個主控器件對總線實行控制權,分時實現(xiàn)點對點的數(shù)據(jù)傳送。I2C總線上所有外闈器件都有規(guī)范的器件地址,器件地址由7位組成,它和1位方向位(R/W)構成了I2C總線器件的尋址字節(jié)SLA,格式如下:


          器件地址(A6,A5,A4,A3)是I2C總線外圍接口器件同有的地址編碼(4位或5位),器件出廠時已固化好。引腳地址(A2,A1,A0)和器件在電路中的實際接法有關(地址線、電源或地),形成地址數(shù)據(jù)。數(shù)據(jù)方向位(R/W)規(guī)定了總線上的主節(jié)點對從節(jié)點的數(shù)據(jù)傳送方向,當(R/W)位置1時接收,當(R/W)為0時發(fā)送。圖1中的撥碼開關設置了從單片機Atmega168的地址,也就是從機地址的低三位(A2,AI,A0),當某個撥碼開關的某個開關閉合時,相應的地址位為零,否則相應位為1,因此可以通過撥碼開關上開關的狀態(tài)來設定從單片機Atmega168的地址,比如某個撥碼開關與A0、A2位對應的開關閉合,與Al對應的開關斷開,那么這個單片機地址的低三位為010。

          4 I2C通信的流程圖

          根據(jù)I2C總線的傳輸協(xié)議規(guī)范和硬件連接,作者給出了如圖2和圖3基本程序流程圖和部分程序。開發(fā)語言為c語言,與匯編語言相比,可以提高軟件的執(zhí)行速度。

        通信相關文章:通信原理


        雙控開關相關文章:雙控開關原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 田东县| 临武县| 特克斯县| 大洼县| 邢台县| 左权县| 浏阳市| 屏边| 莱州市| 嘉黎县| 盘锦市| 安庆市| 麻城市| 双峰县| 云阳县| 梓潼县| 垫江县| 栾川县| 桐庐县| 锡林浩特市| 茶陵县| 抚远县| 台东县| 剑川县| 巴东县| 锡林浩特市| 怀仁县| 广汉市| 集贤县| 广德县| 富川| 镇安县| 瑞昌市| 灵寿县| 鹤山市| 丰镇市| 崇义县| 从化市| 林芝县| 潼关县| 西贡区|