關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 簡要分析I2C總線在多機(jī)通信中的應(yīng)用

簡要分析I2C總線在多機(jī)通信中的應(yīng)用

作者: 時間:2006-12-13 來源:網(wǎng)絡(luò) 收藏

  I2C(Inter Integrated Circuit)總線是Philips公司開發(fā)的一種雙向兩線總線,它能方便地實(shí)現(xiàn)芯片間的數(shù)據(jù)傳輸與控制。通過兩線緩沖接口和內(nèi)部控制與狀態(tài)寄存器,可方便地完成多機(jī)間的非主從通信或主從通信?;贗2C總線的多機(jī)通信電路結(jié)構(gòu)簡單、程序編寫方便,易于實(shí)現(xiàn)系統(tǒng)軟硬件的模塊化和標(biāo)準(zhǔn)化。

本文給出了基于I2C總線的多機(jī)通信調(diào)度指揮系統(tǒng)方案,討論了系統(tǒng)的軟硬件設(shè)計(jì)。

1 系統(tǒng)硬件設(shè)計(jì)

本調(diào)度指揮系統(tǒng)由和調(diào)度操作臺兩部分組成,工作原理如圖1所示,兩者間通過總線實(shí)現(xiàn)較長距離的數(shù)據(jù)傳送。和操行臺內(nèi)部均采用分散多控制,間采用I2C總線進(jìn)行數(shù)據(jù)通信。


  主機(jī)內(nèi)部采用分散控制方式,整個交換系統(tǒng)被分割成多個用戶子系統(tǒng)及1個通信子系統(tǒng),每個子系統(tǒng)由一個CPU處理單元負(fù)責(zé)128個用戶的呼叫控制和管理,多個子系統(tǒng)之間通信I2C組成一個無主通信總線進(jìn)行信息交互(如呼叫處理信息、維護(hù)信息等),構(gòu)成一個完整的交換系統(tǒng)。

調(diào)度操作臺由操作臺控制CPU、顯示屏及多個用戶鍵板構(gòu)成,支持128~1024個操作按鍵和256~2048個LED指示燈,每個操作按鍵可縮位一組電話號碼對應(yīng)主機(jī)內(nèi)的一個電話用戶,雙燈組合指示該電話用戶狀態(tài),并支持LCD中文顯示。操作臺內(nèi)部主控CPU與用戶鍵板控制CPU之間通過I2CU叫線組成主從通信總線進(jìn)行信息交互(按鍵信息、LED顯示信息)。

1.1 主機(jī)I2C總線構(gòu)成

子系統(tǒng)的CPU處理單元由Philips-80C652單片機(jī)配合外圍電路(如EPROM、RAM、EEPROM、譯碼和I/O驅(qū)動等)構(gòu)成,80C652具有一個支持雙向數(shù)據(jù)傳送的I2C總線串行接口,I2C總線邏輯根據(jù)路徑自動地進(jìn)行數(shù)據(jù)傳送。CPU對I2CU總線的訪問通過以下四個特殊功能寄存器完成:

S1CON(D8H) SIO1控制寄存器

S1STA(D9H) SIO1狀態(tài)寄存器

S1DAT(DAH) SIS1數(shù)據(jù)寄存器

S1ADR(DBH) SIO1從地址寄存器

SIO1邏輯通過P1.6/SCL和P1.7/SDA兩個引腳連接到外部I2C總線,可工作于以下四種模式:主發(fā)送模式、主接收模式、從接收模式、從發(fā)送模式。各子系統(tǒng)間的I2C接口復(fù)接即構(gòu)成了主機(jī)I2C通信總線,通票用無主通信方式,每個CPU既可以響應(yīng)通用地址的廣播呼叫,也可以進(jìn)行點(diǎn)對點(diǎn)的通信,完全滿足程控交換的信息傳送要求且結(jié)構(gòu)簡單。連接示意圖如圖2所示。


  1.2 調(diào)度臺I2C總線構(gòu)成

操作臺控制CPU板由Philips-80C652單片機(jī)配合外圍電路(如EPROM、RAM、EEPROM、譯碼和顯示驅(qū)動電路等)構(gòu)成,其P1.6-SCL、P1.7-SDA為I2C總線接口SIO1。單片機(jī)的SIO1通過MC3486/3487與主機(jī)通過接口通信,SIO1與用戶鍵板的P87LPC764通信,最多可支持63塊用戶鍵板的通信連接。

每個用戶鍵板均采用Philips-P87LPC764單片機(jī)控制,每塊鏈板提供64個用戶按鍵及128個用戶鍵燈。P87LPC764是51LPC系列OTP單片機(jī),其最大特點(diǎn)是改進(jìn)型80C51系列,增加了WDT看門狗、I2C總線、三個模擬量比較器、上電復(fù)位檢測,保證I/O口驅(qū)動電流達(dá)到20mA,運(yùn)行速度為標(biāo)準(zhǔn)80C51的2倍,而且溫度范圍達(dá)到了工業(yè)級標(biāo)準(zhǔn)(-40℃~+85℃)。該芯片的I2C總線系統(tǒng)包括一個可簡化軟件驅(qū)動的I2C總線硬件。除了必要總線仲裁、錯誤檢測、時鐘擴(kuò)展和總線超時定時器外,包括一個一位接口,這個接口通過循環(huán)查詢或中斷同步軟件。

采用該設(shè)計(jì)的優(yōu)點(diǎn)在于系統(tǒng)擴(kuò)充性強(qiáng),軟件功能分擔(dān):由P87LPC764進(jìn)行按鍵掃描和LED顯示處理,大大減輕了主CPU-80C652的負(fù)擔(dān);由于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è)置一個獨(dú)特的地址碼以示驅(qū)別。根據(jù)通訊要求,器件可以工作于發(fā)送或接收方式,并允許有多個設(shè)備作為主站控制總線??偩€上主和從、發(fā)送和接收的關(guān)系僅取決于每次數(shù)據(jù)傳送的方向。

2.1 I2C總線傳輸數(shù)據(jù)格式

I2C總線的數(shù)據(jù)傳送格式如圖4所示。

S:start信號;

SLA:從機(jī)地址,也可以是通用地址;

R/W:讀寫控制位;

A:ACK響應(yīng);

DATA0~DATA7:每組傳送8個數(shù)據(jù)字節(jié);

S/P:下一個start或stop信號。


  首先發(fā)送開始(start)信號,然后傳送第一個字節(jié):高7位是從機(jī)地址,低位表示讀/寫(R/W)狀態(tài),“0”表示寫操作,“1”表示讀操作。由于CPU之間采用無主通信或主從通信,一般只采用主發(fā)送和從接收模式,因此該位均值0表示數(shù)據(jù)發(fā)送;總線上的每個物理器件判斷接收的地址與本機(jī)地址是否一致,地址一致,返回ACK,進(jìn)行正常的數(shù)據(jù)傳送。每個地址或數(shù)據(jù)后必須跟應(yīng)答信號,當(dāng)一個正常的應(yīng)答信號有效時,SCL時鐘為高電平,接收模塊數(shù)據(jù)線SDA置低,同時按字節(jié)傳送數(shù)據(jù),傳送結(jié)束由發(fā)送端發(fā)送stop信號或下一個start信號。

從機(jī)地址由各CPU按統(tǒng)一原則進(jìn)行分析,主機(jī)各子系統(tǒng)可按各自的系統(tǒng)號從01H開始編排,00H作為通用呼叫地址;調(diào)度臺80C652地址取01H,P87LPC764地址范圍為40H~7FH,其它地址待擴(kuò)充。

之間采用固定8字節(jié)數(shù)據(jù)通信:DATA0、DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7。

DATA0:目的地址,發(fā)送時可根據(jù)該地址確定從機(jī)地址;

DATA1:源地址;

DATA2:消息編碼,可按需分配;

DATA3~DATA7:該消息應(yīng)攜帶的其它必要信息。

以調(diào)度臺為例,80C652向P86LPC764發(fā)送LED燈顯示數(shù)據(jù):目址、源址、55H(消息編碼),鍵地址、左燈狀態(tài)、右燈狀態(tài)、#0EEH、#0EEH。

目址:即P87LPC764地址、40H~7FH;

源址:即80C652地址,01H;

鍵地址:每片P86LPC764所處理的按鍵地址,00H~3FH(64鍵);

燈狀態(tài):即讓對應(yīng)燈處于滅、常亮、閃爍等狀態(tài)值。

圖5

3 通信軟件設(shè)計(jì)

主機(jī)和調(diào)度臺80C652單片機(jī)上電時首先裝載本機(jī)從地址和通用地址,設(shè)置I2C總線為高中斷。由中斷處理程序自動接收數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū)并查詢是否有數(shù)據(jù)發(fā)送,若有,進(jìn)行相應(yīng)發(fā)送信息,按要求進(jìn)行相關(guān)處理,并查詢是否有數(shù)據(jù)需發(fā)送,若有填入發(fā)送緩沖區(qū),設(shè)置待發(fā)送S1CON標(biāo)志,由中斷處理程序發(fā)送。流程如圖5所示。

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

圖6

  本設(shè)計(jì)采用I2C總線實(shí)現(xiàn)調(diào)度指揮系統(tǒng)中多模塊間的雙向通信,電路設(shè)計(jì)簡單,易于模塊化及擴(kuò)展。



關(guān)鍵詞: 主機(jī) 處理器 RS422

評論


相關(guān)推薦

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

關(guān)閉