999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于I2C總線的多MCU系統設計

2015-04-12 00:00:00李晶呂肖晗
現代電子技術 2015年9期

摘 要: 在一些應用系統中常常使用多片MCU協同實現系統功能,為實現多片MCU之間的數據交換,可以應用多端口RAM,但其結構復雜,成本高;而利用I2C總線使多片MCU之間通過RAM實現數據交換,具有結構簡單、成本低的優點。介紹一種基于I2C總線的多MCU系統的設計,簡要討論I2C總線的結構、工作原理及多MCU競爭仲裁,給出I2C總線的多MCU系統的設計,實現了多MCU系統在實際中的應用。

關鍵詞: I2C總線; 多MCU系統; P89LPC932; 數據交換

中圖分類號: TN915?04 文獻標識碼: A 文章編號: 1004?373X(2015)09?0016?03

Abstract: System functions are implemented by multi?MCU collaborative working in some application systems. Although the multi?port RAM can be applied to achieve data exchange among multiple MCUs, its structure is complex and cost is high. Multi?MCU data exchange can be realized by the method to link I2C bus with RAM, which has the advantages of simple structure and low cost. Design of the multi?MCU system based on I2C bus is introduced. The structure, execution principle, multi?MCU competition and arbitration of I2C bus are discussed briefly. The design of multi?MCU system based on I2C bus is given. The application of multi?MCU system in practice was implemented.

Keywords: I2C; multi?MCU system; P89LPC932; data exchange

0 引 言

隨著微電子技術的發展和MCU價格的降低,常常在實際應用中使用多片MCU來協同完成系統功能,以實現更高的性能。在這些系統中多片MCU通過某種方式實現數據交換,其中使用雙口或多口E2PROM是一種常見的方法[1?2]。這種電路結構復雜、成本高,需要軟、硬件解決多MCU訪問的競爭問題,更重要的是目前許多MCU不支持外部總線,不能擴展外部E2PROM,因此無法使用這種方法。I2C總線是由Philips公司推出的芯片間串行傳輸總線。它以規范嚴謹、使用簡單靈活、支持的外圍器件繁多等特點而被廣泛應用。I2C總線具有十分完善的總線協議,在協議的支持下,可以自動處理總線上出現的多MCU訪問的競爭。目前的文獻通常是介紹I2C總線在單MCU系統中的應用[3?4],本文介紹一種利用I2C總線實現多片MCU訪問E2PROM,從而實現數據交換的方法。

1 I2C總線工作原理

I2C總線是一種“二線”結構,分別使用“SDA”和“SCL”信號線實現數據傳輸。I2C總線對與其相連的設備采用軟件尋址。每一種器件都有一個特定的7位I2C地址,以便主機了解當前正與其進行通信的器件。這個7位地址的前4位固定,用來指明器件所屬類別,如1010表明是串行E2PROM器件。后3位(如A2,A1和A0)通過硬件管腳進行設置來修改器件的I2C地址。表示地址字節的最低1位(R/W)用來指明主控制器向從機發送(寫,R/W=0)還是接收(讀,R/W=1)來自從機的數據。每個傳輸過程都是以起始條件開始,停止或重新開始條件結束。每一次數據傳送都是由主控制器發起的,如果某一時刻總線上有多個主控器,并且都請求控制總線,這時就要進行總線仲裁處理。一旦一個主控器獲得總線控制權,其他主控器必須等待此主控器發送完一個停止條件并將總線釋放為“空閑”狀態方可重新控制總線。在系統中主控制器通常都由MCU擔任。

2 多MCU系統下的I2C總線

I2C總線軟、硬件協議十分巧妙,它可以用于構成多MCU系統。當系統中有多個I2C總線接口單片機時,會出現多MCU競爭的復雜狀態。I2C總線軟、硬件協議以及I2C總線單片機中的SFR保證了多MCU競爭時的協調管理。I2C總線提供的狀態處理軟件能自動處理總線上出現的26種狀態。在使用I2C總線時將這些軟件工具在程序存儲器中定位,利用這些軟件編制出歸一化操作命令,用于I2C總線應用程序設計十分簡單、方便。

2.1 多MCU竟爭仲裁

主機只能在總線空閑的時侯啟動傳輸。兩個或多個主機可能在起始條件的最小持續時間內產生一個起始條件,結果在總線上產生一個規定的起始條件。當SCL線是高電平時,仲裁在SDA線發生;這樣,在其他主機發送低電平時,發送高電平的主機將斷開它的數據輸出級,因為總線上的電平與它自己的電平不相同,仲裁可以持續多位。它的第一個階段是比較地址位。如果每個主機都嘗試尋址相同的器件,仲裁會繼續比較數據位(如果是主機—發送器),或者比較響應位(如果是主機—接收器)。因為I2C總線的地址和數據信息由贏得仲裁的主機決定,在仲裁過程中不會丟失信息[5]。

2.2 主系統的數據傳送過程

考慮以下實際應用,系統中有兩片單片機,MCU A進行數據采集,并將數據存入E2PROM,MCU B不定時地從E2PROM取出數據(如圖1所示)。傳輸數據的過程如下:

(1) 假設MCU A要發送信息到E2PROM

① MCU A(主機)尋址接收器E2PROM;

② MCU A(主機)發送器發送數據到接收器E2PROM;

③ MCU A終止傳輸。

(2) 如果MCU B想從器件E2PROM中接收信息

① MCU B(主機)尋址E2PROM(從器件);

② MCU B(主機)從E2PROM(從器件)讀數據;

③ MCU B終止傳輸。

(3) 以上兩種情況同時發生時,I2C總線起動總線的競爭仲裁功能

① MCU A或MCU B贏得總線的控制權,掌管總線,競爭失敗的微控制器退出總線;

② 贏得總線的控制權的微控制器尋址E2PROM(從器件),并進行數據傳輸;

③ 贏得總線的控制權的微控制器終止數據傳輸,競爭失敗的微控制器試圖掌控總線,從器件尋址,并進行數據傳輸;

④ 數據傳送完畢,總線進入空閑狀態。

由上可知,在多MCU系統下的數據傳送過程要比單主機系統下復雜得多。但I2C總線軟、硬件協議能進行協調管理,保證數據的可靠傳輸。

3 多MCU系統的具體實現

本應用中選用了兩片P89LPC932單片機及一片24系列的E2PROM。P89LPC932中I/O口P1.3和P1.2為復用端口,在用作I2C通信時,P1.3為SDA,P1.2為SCL,在程序中應該設置為開漏方式。電路中[R1、][R2]為I2C總線的上拉電阻,在具體電路中應適當調整。選擇上拉電阻要考慮的因素主要為供電電源、總線上的電容值和連接器件數。在《I2C總線協議》中規定,在供電電壓大于2 V,灌電流為3 mA時,輸出低電平不高于0.4 V。在本電路中供電電壓為(3±0.3) V。,因而上拉電阻的最小值為[(3.3-0.4)0.003=967 ]Ω。上拉電阻的取值不能過大,因為上拉電阻R與總線上的電容值C構成的RC電路的時間常數,影響了總線從高電平到低電平的過渡時間,因而影響了通信速率。在快速模式中,SDA,SCL信號從低到高的過渡時間應該不大于300 ns,P89LPC932端口輸出電容為15 pF,因而上拉電阻的最大值為[300 ns(0.7×15 pF×3)=9.5 ]kΩ。在電路中[R1,][R2]取值為5 kΩ。

由于P89LPC932單片機中帶有內部RC振蕩源,在電路中省略了一般51單片機所需要的晶振,因而電路比較簡單。其硬件電路如圖2所示。

4 多MCU系統下的軟件設計

I2C總線的通信都是由主機發起的。具體為主機發送起始條件,然后發送要操作的從機地址和讀寫命令。在收到從機應答后,進行相應操作。軟件設計主要包括主機的寄存器的設置及讀寫子程序的設計。

4.1 P89LPC932單片機I2C寄存器的設置

LPC932單片機微功耗51內核,內部集成了I2C總線,支持400K高速模式,既可作I2C總線上的主控器件,也可作I2C總線上的從器件[6]。LPC900單片機的I2C總線通過以下6個特殊功能寄存器實現接口:I2CON(I2C控制寄存器?0D8H)、I2DAT(數據寄存器?0DAH)、I2STAT(狀態寄存器?0D9H)、I2ADR(地址寄存器?0DBH)、I2SCLH(占空比寄存器高字節?0DDH)、I2SCLLSCL(占空比寄存器低字節?0DCH)。

I2C地址寄存器在處于主模式時,該寄存器的內容無效。I2C狀態寄存器是一個8位只讀寄存器,它包含了I2C接口的狀態代碼,最低3位總是為0,I2C一共有26種可能的狀態。

4.2 多MCU系統下的程序設計

按照I2C總線的規范,I2C總線數據傳送可分為主發送、主接收、從發送、從接收4種方式。在多MCU模式下有主發送、主接收2種方式。每種方式都有典型的傳送過程,這些數據傳送都是由一些狀態碼標記的總線狀態處理過程組成,因此I2C總線上的一個完整的數據傳送是由多個I2C中斷狀態處理程序來完成的。每出現一個新的狀態,就會產生一次I2C中斷,然后進入該總線的中斷處理程序,處理完畢中斷返回再等待一次新的中斷及狀態處理直至結束。注意以下所說的主機可以是兩片MCU中的任一片,而從機指的是I2C器件。

I2C總線的數據操作過程及總線狀態處理是在標準軟件包的支持下完成,無須用戶介入,用戶可以通過查詢I2C總線的狀態寄存器就可了解總線的處理狀態,從而做相應的處理。程序設計流程圖如圖3所示。

I2C通信程序設計要點如下:

(1) 每次通信的起始條件和停止條件均由主機發起,從機只是負責監聽主機信號。起始條件和停止條件是通過置位I2CON中的STA和STO位達到的。

(2) 當主機獲得總線,成功發送啟動條件后,地址和數據的發送是通過寫數據寄存器I2DAT達到的。

(3) 每次發送地址和數據后應該查詢狀態寄存器I2STAT檢查數據發送狀態以進行下一步動作。

(4) 每次通信完畢后主機和從機均應該釋放總線。

程序設計過程中值得注意的是:讀寫過程中從器件的地址是變化的,寫過程中E2PROM的地址是0A0H,讀過程中E2PROM的地址是0A1H。

5 結 語

本應用以兩片MCU通過I2C總線共享一個存儲器,實現了I2C總線多MCU機應用系統的設計,電路設計簡單,易于擴展,具有較強的實用性。雖然本文是以MCS51內核單片機LPC932為例實現的,并且系統中僅兩片MCU,但實際上任何帶有I2C總線接口的多片MCU都可使用該方法。

參考文獻

[1] 張洪剛,苑秉成,徐瑜,等.基于FPGA和SD卡的水聲信號高速采集與存儲系統設計[J].電子器件,2009,32(1):208?212.

[2] 肖堃,閆杰,靳文平.基于TMS320F28335的無人機機載智能接口卡設計[J].機械制造,2013,51(590):17?20.

[3] 馮立杰,傅民倉,李文波.多CPU嵌入式系統的設計方法[J].現代電子技術,2006,29(6):54?55.

[4] 何冰,曾立波,尹邦勝.I2C總線在嵌入式系統中的應用[J].現代電子技術,2005,28(16):31?32.

[5] 何立民.I2C總線應用系統設計[M].北京:北京航空航天大學出版社,1995.

[6] 周立功單片機公司.P89LPC932A1 FLASH單片機使用指南[EB/OL].[2010?08?09].http://www.zlgmcu.com.

主站蜘蛛池模板: 尤物视频一区| 中文字幕在线视频免费| 欧美视频免费一区二区三区| 国产人成网线在线播放va| 99精品这里只有精品高清视频| 在线观看免费黄色网址| 91欧洲国产日韩在线人成| 久久黄色免费电影| 国内精品久久久久久久久久影视| 精品91视频| 天天综合网色中文字幕| 国产成人免费| 第九色区aⅴ天堂久久香| 欧美一区二区三区国产精品| 亚洲欧美日韩成人高清在线一区| 99久久精品免费视频| 国产欧美日韩va另类在线播放| 国产不卡在线看| 91午夜福利在线观看| 无码综合天天久久综合网| 欧美精品三级在线| 亚洲国产日韩欧美在线| 九色视频一区| 午夜一级做a爰片久久毛片| 福利一区三区| 久久精品一卡日本电影| 亚洲精品动漫| 99热这里都是国产精品| 老司国产精品视频91| 色婷婷成人| 亚洲日韩高清在线亚洲专区| 99热精品久久| 免费国产不卡午夜福在线观看| 欧美福利在线观看| 久久五月视频| 国产精品尤物在线| 国产原创演绎剧情有字幕的| 91精品网站| 欧美成人影院亚洲综合图| 免费观看无遮挡www的小视频| 真人免费一级毛片一区二区| 毛片在线区| 欧美亚洲中文精品三区| 国产剧情无码视频在线观看| 亚洲男人的天堂网| 久久青草免费91线频观看不卡| 精品久久香蕉国产线看观看gif| a天堂视频| 无码综合天天久久综合网| 亚洲六月丁香六月婷婷蜜芽| 欧美激情第一区| 国产精品视频观看裸模| 日本午夜精品一本在线观看| 久久久久亚洲精品成人网| 国产亚洲视频中文字幕视频| 国产区在线观看视频| 青青久视频| 视频二区亚洲精品| 亚洲国产日韩一区| 欧美午夜性视频| 在线观看无码av免费不卡网站 | 精品国产免费观看| 欧美一区精品| 国产区在线看| 日韩av手机在线| 国产午夜精品鲁丝片| 在线免费不卡视频| 91青青草视频在线观看的| a欧美在线| 欧美日韩高清| 伊人激情久久综合中文字幕| 亚洲视频影院| 性网站在线观看| 99九九成人免费视频精品| 亚洲毛片一级带毛片基地| 午夜爽爽视频| 思思99热精品在线| 国产亚洲欧美日韩在线一区| 国产无码高清视频不卡| 日韩在线欧美在线| 国产成人禁片在线观看| 久久久久久久久18禁秘|