《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > I2C總線在多機通信中的應用

I2C總線在多機通信中的應用

2008-09-23
作者:唐紅文, 陳少平

  摘 要: 介紹了I2C總線的結(jié)構(gòu),、工作原理,、數(shù)據(jù)傳輸方式,討論了基于I2C總線的多機通信" title="多機通信">多機通信軟硬件設(shè)計" title="軟硬件設(shè)計">軟硬件設(shè)計,,實現(xiàn)了程控交換多機通信調(diào)度指揮系統(tǒng),。
  關(guān)鍵詞: I2C總線 多機通信 軟硬件設(shè)計


  I2C(Inter Integrated Circuit)總線是Philips公司開發(fā)的一種雙向兩線多主機總線,它能方便地實現(xiàn)芯片間的數(shù)據(jù)傳輸與控制,。通過兩線緩沖接口和內(nèi)部控制與狀態(tài)寄存器,,可方便地完成多機間的非主從通信或主從通信?;贗2C總線的多機通信電路結(jié)構(gòu)簡單,、程序編寫方便,,易于實現(xiàn)系統(tǒng)軟硬件的模塊化和標準化。
  本文給出了基于I2C總線的多機通信調(diào)度指揮系統(tǒng)方案,,討論了系統(tǒng)的軟硬件設(shè)計,。
1 系統(tǒng)硬件設(shè)計
  本調(diào)度指揮系統(tǒng)由主機和調(diào)度操作臺兩部分組成,工作原理如圖1所示,兩者間通過RS422總線實現(xiàn)較長距離的數(shù)據(jù)傳送" title="數(shù)據(jù)傳送">數(shù)據(jù)傳送,。主機和操作臺內(nèi)部均采用分散多處理器控制,,處理器間采用I2C總線進行數(shù)據(jù)通信。


  主機內(nèi)部采用分散控制方式,,整個交換系統(tǒng)被分割成多個用戶子系統(tǒng)及1個通信子系統(tǒng),,每個子系統(tǒng)由一個CPU處理單元負責128個用戶的呼叫控制和管理,多個子系統(tǒng)之間通過I2C組成一個無主通信總線" title="通信總線">通信總線進行信息交互(如呼叫處理信息,、維護信息等),,構(gòu)成一個完整的交換系統(tǒng)。
  調(diào)度操作臺由操作臺控制CPU,、顯示屏及多個用戶鍵板構(gòu)成,,支持128~1024個操作按鍵和256~2048個LED指示燈,每個操作按鍵可縮位一組電話號碼對應主機內(nèi)的一個電話用戶,,雙燈組合指示該電話用戶狀態(tài),,并支持LCD中文顯示。操作臺內(nèi)部主控CPU與用戶鍵板控制CPU之間通過I2C總線組成主從通信總線進行信息交互(按鍵信息,、LED顯示信息),。
1.1 主機I2C總線構(gòu)成
  子系統(tǒng)的CPU處理單元由Philips-80C652單片機配合外圍電路(如EPROM、RAM,、EEPROM,、譯碼和I/O驅(qū)動等)構(gòu)成,80C652具有一個支持雙向數(shù)據(jù)傳送的I2C總線串行接口,,I2C總線邏輯根據(jù)路徑自動地進行數(shù)據(jù)傳送,。CPU對I2C總線的訪問通過以下四個特殊功能寄存器完成:
  S1CON(D8H)    SIO1控制寄存器
  S1STA(D9H)    SIO1狀態(tài)寄存器
  S1DAT(DAH)    SIO1數(shù)據(jù)寄存器
  S1ADR(DBH)    SIO1從地址寄存器
  SIO1邏輯通過P1.6/SCL和P1.7/SDA兩個引腳連接到外部I2C總線,可工作于以下四種模式:主發(fā)送模式,、主接收模式,、從接收模式、從發(fā)送模式,。各子系統(tǒng)間的I2C接口復接即構(gòu)成了主機I2C通信總線,,采用無主通信方式,每個CPU既可以響應通用地址的廣播呼叫,,也可以進行點對點通信,完全滿足程控交換的信息傳送要求且結(jié)構(gòu)簡單,。連接示意圖如圖2所示,。


1.2 調(diào)度臺I2C總線構(gòu)成
  操作臺控制CPU板由Philips-80C652單片機配合外圍電路(如EPROM,、RAM,、EEPROM、譯碼和顯示驅(qū)動電路等)構(gòu)成,,其P1.6-SCL、P1.7-SDA為I2C總線接口SIO1,。單片機的SIO0通過MC3486/3487與主機通過RS422接口通信,,SIO1與用戶鍵板的P87LPC764通信,最多可支持63塊用戶鍵板的通信連接,。
  每個用戶鍵板均采用Philips-P87LPC764單片機控制,,每塊鍵板提供64個用戶按鍵及128個用戶鍵燈。P87LPC764是51LPC系列OTP單片機,,其最大特點是改進型80C51系列,,增加了WDT看門狗、I2C總線,、二個模擬量比較器,、上電復位檢測,保證I/O口驅(qū)動電流達到20mA,,運行速度為標準80C51的2倍,,而且溫度范圍達到了工業(yè)級標準(-40℃~+85℃)。該芯片的I2C總線系統(tǒng)包括一個可簡化軟件驅(qū)動的I2C總線硬件,。除了必要的總線仲裁,、錯誤檢測、時鐘擴展和總線超時定時器外,,還包括一個一位接口,,這個接口通過循環(huán)查詢或中斷同步軟件。
  采用該設(shè)計的優(yōu)點在于系統(tǒng)擴充性強,,軟件功能分擔:由P87LPC764進行按鍵掃描和LED顯示處理,,大大減輕了主CPU-80C652的負擔;由于P87LPC764性價比優(yōu)越,,比專用鍵盤電路更便宜,,功能上也可靈活改變;鍵板可按需配置,,只需簡單的4線連接(SDA,、SCL、+5V,、GND),。調(diào)度臺I2C總線連接示意圖如圖3所示。


2 I2C總線的數(shù)據(jù)傳送方式
  I2C總線器件之間通過串行數(shù)據(jù)線SDA和串行時鐘線SCL傳送數(shù)據(jù),,交換信息,。每個器件(微控制器,、LCD驅(qū)動器、存儲器或鍵盤接口)都要設(shè)置一個獨特的地址碼以示區(qū)別,。根據(jù)通訊需要,,器件可以工作于發(fā)送或接收方式,并允許有多個設(shè)備作為主站控制總線,??偩€上主和從、發(fā)送和接收的關(guān)系僅取決于每次數(shù)據(jù)傳送的方向,。
2.1 I2C總線傳輸數(shù)據(jù)格式
  I2C總線的數(shù)據(jù)傳送格式如圖4所示,。


  S:start信號;
  SLA:從機地址,,也可以是通用地址,;
  R/W:讀寫控制位;
  A:ACK響應,;
  DATA0~DATA7:每組傳送8個數(shù)據(jù)字節(jié),;
  S /P:下一個start或stop信號。
  首先發(fā)送開始(start)信號,,然后傳送第一個字節(jié):高7位是從機地址,,低位表示讀/寫(R/W)狀態(tài),“0”表示寫操作,,“1”表示讀操作,。由于CPU之間采用無主通信或主從通信,一般只采用主發(fā)送和從接收模式,,因此該位均填0表示數(shù)據(jù)發(fā)送,;總線上的每個物理器件判斷接收的地址與本機地址是否一致,地址一致,,返回ACK,,進行正常的數(shù)據(jù)傳送。每個地址或數(shù)據(jù)后必須跟應答信號,,當一個正常的應答信號有效時,,SCL時鐘為高電平,接收模塊數(shù)據(jù)線SDA置低,,同時按字節(jié)傳送數(shù)據(jù),,傳送結(jié)束由發(fā)送端發(fā)送stop信號或下一個start信號。
  從機地址由各CPU按統(tǒng)一原則進行分配,,主機各子系統(tǒng)可按各自的系統(tǒng)號從01H開始編排,,00H作為通用呼叫地址;調(diào)度臺80C652地址取01H,P87LPC764地址范圍為40H~7FH,,其它地址待擴充,。
  處理器之間采用固定8字節(jié)數(shù)據(jù)通信:DATA0、DATA1,、DATA2、DATA3,、DATA4,、DATA5、DATA6,、DATA7,。
  DATA0:目的地址,發(fā)送時可根據(jù)該地址確定從機地址,;
  DATA1:源地址,;
  DATA2:消息編碼,可按需分配,;
  DATA3~DATA7:該消息應攜帶的其它必要信息,。
  以調(diào)度臺為例,80C652向P87LPC764發(fā)送LED燈顯示數(shù)據(jù):目址,、源址,、55H(消息編碼),鍵地址,、左燈狀態(tài),、右燈狀態(tài)、#0EEH,、#0EEH,。
  目址:即P87LPC764地址、40H~7FH,;
  源址:即80C652地址,,01H;
  鍵地址:每片P87LPC764所處理的按鍵地址,,00H~3FH(64鍵),;
  燈狀態(tài):即讓對應燈處于滅、常亮,、閃爍等狀態(tài)值,。
3 通信軟件設(shè)計
  主機和調(diào)度臺80C652單片機上電時首先裝載本機從地址和通用地址,設(shè)置I2C總線為高中斷,。由中斷處理程序" title="中斷處理程序">中斷處理程序自動接收數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū)并查詢是否有數(shù)據(jù)發(fā)送,,若有,進行相應發(fā)送處理;系統(tǒng)設(shè)置50ms定時中斷處理,集中處理接收到的信息,,按要求進行相關(guān)處理,,并查詢是否有數(shù)據(jù)需發(fā)送,若有填入發(fā)送緩沖區(qū),,設(shè)置待發(fā)送S1CON標志,,由中斷處理程序發(fā)送。流程如圖5所示,。


  鍵板I2C總線軟件處理過程為:鍵板P87LPC764初始化,,裝載本機從地址,設(shè)置定時器I為高中斷,,I2C總線普通中斷,。主程序中進行I2C總線數(shù)據(jù)發(fā)送檢查,進行重發(fā)處理,;接收數(shù)據(jù)處理,;待發(fā)送數(shù)據(jù)處理及設(shè)置主站待發(fā)。定時器I負責監(jiān)視I2C總線,,計時溢出復位I2C接口硬件,。I2C中斷處理程序完成數(shù)據(jù)的接收和發(fā)送工作。流程如圖6所示,。


  本設(shè)計采用I2C總線實現(xiàn)調(diào)度指揮系統(tǒng)中多模塊間的雙向通信,,電路設(shè)計簡單,易于模塊化及擴展,。
參考文獻
1 陳秀玲, 周 欣,陳黎平.I2C總線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計及其應用.微型電腦應用, 2003;19(5):42~45
2 蔣偉宏,習 勇,魏急波.基于MPC850嵌入式通信平臺的I2C接口設(shè)計. 通信技術(shù)與設(shè)備,2002;28(10):20~22
3 何立民. I2C總線應用系統(tǒng)設(shè)計.北京:北京航空航天大學出版社,,1995

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。