I2C總線(xiàn)在多機通信中的應用 作者: 時(shí)間:2007-03-09 來(lái)源:網(wǎng)絡(luò ) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢(xún) 收藏 摘要:介紹了I2C總線(xiàn)的結構、工作原理、數據傳輸方式,討論了基于I2C總線(xiàn)的多機通信軟硬件設計,實(shí)現了程控交換多機通信調度指揮系統。 關(guān)鍵詞:I2C總線(xiàn) 多機通信 軟硬件設計 I2C(Inter Integrated Circuit)總線(xiàn)是Philips公司開(kāi)發(fā)的一種雙向兩線(xiàn)主機總線(xiàn),它能方便地實(shí)現芯片間的數據傳輸與控制。通過(guò)兩線(xiàn)緩沖接口和內部控制與狀態(tài)寄存器,可方便地完成多機間的非主從通信或主從通信?;贗2C總線(xiàn)的多機通信電路結構簡(jiǎn)單、程序編寫(xiě)方便,易于實(shí)現系統軟硬件的模塊化和標準化。 本文給出了基于I2C總線(xiàn)的多機通信調度指揮系統方案,討論了系統的軟硬件設計。 1 系統硬件設計 本調度指揮系統由主機和調度操作臺兩部分組成,工作原理如圖1所示,兩者間通過(guò)RS422總線(xiàn)實(shí)現較長(cháng)距離的數據傳送。主機和操行臺內部均采用分散多處理器控制,處理器間采用I2C總線(xiàn)進(jìn)行數據通信。主機內部采用分散控制方式,整個(gè)交換系統被分割成多個(gè)用戶(hù)子系統及1個(gè)通信子系統,每個(gè)子系統由一個(gè)CPU處理單元負責128個(gè)用戶(hù)的呼叫控制和管理,多個(gè)子系統之間通信I2C組成一個(gè)無(wú)主通信總線(xiàn)進(jìn)行信息交互(如呼叫處理信息、維護信息等),構成一個(gè)完整的交換系統。 調度操作臺由操作臺控制CPU、顯示屏及多個(gè)用戶(hù)鍵板構成,支持128~1024個(gè)操作按鍵和256~2048個(gè)LED指示燈,每個(gè)操作按鍵可縮位一組電話(huà)號碼對應主機內的一個(gè)電話(huà)用戶(hù),雙燈組合指示該電話(huà)用戶(hù)狀態(tài),并支持LCD中文顯示。操作臺內部主控CPU與用戶(hù)鍵板控制CPU之間通過(guò)I2CU叫線(xiàn)組成主從通信總線(xiàn)進(jìn)行信息交互(按鍵信息、LED顯示信息)。 1.1 主機I2C總線(xiàn)構成 子系統的CPU處理單元由Philips-80C652單片機配合外圍電路(如EPROM、RAM、EEPROM、譯碼和I/O驅動(dòng)等)構成,80C652具有一個(gè)支持雙向數據傳送的I2C總線(xiàn)串行接口,I2C總線(xiàn)邏輯根據路徑自動(dòng)地進(jìn)行數據傳送。CPU對I2CU總線(xiàn)的訪(fǎng)問(wèn)通過(guò)以下四個(gè)特殊功能寄存器完成: S1CON(D8H) SIO1控制寄存器 S1STA(D9H) SIO1狀態(tài)寄存器 S1DAT(DAH) SIS1數據寄存器 S1ADR(DBH) SIO1從地址寄存器 SIO1邏輯通過(guò)P1.6/SCL和P1.7/SDA兩個(gè)引腳連接到外部I2C總線(xiàn),可工作于以下四種模式:主發(fā)送模式、主接收模式、從接收模式、從發(fā)送模式。各子系統間的I2C接口復接即構成了主機I2C通信總線(xiàn),通票用無(wú)主通信方式,每個(gè)CPU既可以響應通用地址的廣播呼叫,也可以進(jìn)行點(diǎn)對點(diǎn)的通信,完全滿(mǎn)足程控交換的信息傳送要求且結構簡(jiǎn)單。連接示意圖如圖2所示。1.2 調度臺I2C總線(xiàn)構成 操作臺控制CPU板由Philips-80C652單片機配合外圍電路(如EPROM、RAM、EEPROM、譯碼和顯示驅動(dòng)電路等)構成,其P1.6-SCL、P1.7-SDA為I2C總線(xiàn)接口SIO1。單片機的SIO1通過(guò)MC3486/3487與主機通過(guò)RS422接口通信,SIO1與用戶(hù)鍵板的P87LPC764通信,最多可支持63塊用戶(hù)鍵板的通信連接。 每個(gè)用戶(hù)鍵板均采用Philips-P87LPC764單片機控制,每塊鏈板提供64個(gè)用戶(hù)按鍵及128個(gè)用戶(hù)鍵燈。P87LPC764是51LPC系列OTP單片機,其最大特點(diǎn)是改進(jìn)型80C51系列,增加了WDT看門(mén)狗、I2C總線(xiàn)、三個(gè)模擬量比較器、上電復位檢測,保證I/O口驅動(dòng)電流達到20mA,運行速度為標準80C51的2倍,而且溫度范圍達到了工業(yè)級標準(-40℃~+85℃)。該芯片的I2C總線(xiàn)系統包括一個(gè)可簡(jiǎn)化軟件驅動(dòng)的I2C總線(xiàn)硬件。除了必要總線(xiàn)仲裁、錯誤檢測、時(shí)鐘擴展和總線(xiàn)超時(shí)定時(shí)器外,包括一個(gè)一位接口,這個(gè)接口通過(guò)循環(huán)查詢(xún)或中斷同步軟件。 采用該設計的優(yōu)點(diǎn)在于系統擴充性強,軟件功能分擔:由P87LPC764進(jìn)行按鍵掃描和LED顯示處理,大大減輕了主CPU-80C652的負擔;由于P87LPC764性?xún)r(jià)比優(yōu)越,比專(zhuān)用鍵盤(pán)電路更便宜,功能上也可靈活改變;鍵板可按需配置,只需簡(jiǎn)單的4線(xiàn)連接(SDA、SCL、+5V、GND)。調度臺I2C總線(xiàn)連接示意圖如圖3所示。2 I2C總線(xiàn)的數據傳送方式 I2C總線(xiàn)器件之間通信串行數據線(xiàn)SDA和串行時(shí)鐘線(xiàn)SCL傳送數據,交換信息。每個(gè)器件(微控制器、LCD驅動(dòng)器、存儲器或鍵盤(pán)接口)都要設置一個(gè)獨特的地址碼以示驅別。根據通訊要求,器件可以工作于發(fā)送或接收方式,并允許有多個(gè)設備作為主站控制總線(xiàn)??偩€(xiàn)上主和從、發(fā)送和接收的關(guān)系僅取決于每次數據傳送的方向。 2.1 I2C總線(xiàn)傳輸數據格式 I2C總線(xiàn)的數據傳送格式如圖4所示。 S:start信號; SLA:從機地址,也可以是通用地址; R/W:讀寫(xiě)控制位; A:ACK響應; DATA0~DATA7:每組傳送8個(gè)數據字節; S/P:下一個(gè)start或stop信號。首先發(fā)送開(kāi)始(start)信號,然后傳送第一個(gè)字節:高7位是從機地址,低位表示讀/寫(xiě)(R/W)狀態(tài),“0”表示寫(xiě)操作,“1”表示讀操作。由于CPU之間采用無(wú)主通信或主從通信,一般只采用主發(fā)送和從接收模式,因此該位均值0表示數據發(fā)送;總線(xiàn)上的每個(gè)物理器件判斷接收的地址與本機地址是否一致,地址一致,返回ACK,進(jìn)行正常的數據傳送。每個(gè)地址或數據后必須跟應答信號,當一個(gè)正常的應答信號有效時(shí),SCL時(shí)鐘為高電平,接收模塊數據線(xiàn)SDA置低,同時(shí)按字節傳送數據,傳送結束由發(fā)送端發(fā)送stop信號或下一個(gè)start信號。 從機地址由各CPU按統一原則進(jìn)行分析,主機各子系統可按各自的系統號從01H開(kāi)始編排,00H作為通用呼叫地址;調度臺80C652地址取01H,P87LPC764地址范圍為40H~7FH,其它地址待擴充。 處理器之間采用固定8字節數據通信:DATA0、DATA1、DATA2、DATA3、DATA4、DATA5、DATA6、DATA7。 DATA0:目的地址,發(fā)送時(shí)可根據該地址確定從機地址; DATA1:源地址; DATA2:消息編碼,可按需分配; DATA3~DATA7:該消息應攜帶的其它必要信息。 以調度臺為例,80C652向P86LPC764發(fā)送LED燈顯示數據:目址、源址、55H(消息編碼),鍵地址、左燈狀態(tài)、右燈狀態(tài)、#0EEH、#0EEH。 目址:即P87LPC764地址、40H~7FH; 源址:即80C652地址,01H; 鍵地址:每片P86LPC764所處理的按鍵地址,00H~3FH(64鍵); 燈狀態(tài):即讓對應燈處于滅、常亮、閃爍等狀態(tài)值。圖53 通信軟件設計 主機和調度臺80C652單片機上電時(shí)首先裝載本機從地址和通用地址,設置I2C總線(xiàn)為高中斷。由中斷處理程序自動(dòng)接收數據存入數據緩沖區并查詢(xún)是否有數據發(fā)送,若有,進(jìn)行相應發(fā)送信息,按要求進(jìn)行相關(guān)處理,并查詢(xún)是否有數據需發(fā)送,若有填入發(fā)送緩沖區,設置待發(fā)送S1CON標志,由中斷處理程序發(fā)送。流程如圖5所示。 鍵板I2C總線(xiàn)軟件處理過(guò)程為:鍵板P87LPC764初始化,裝載本機從地址,設置定時(shí)器I為高中斷,PIC總線(xiàn)普通中斷。主程序中進(jìn)行I2CU總線(xiàn)數據發(fā)送檢查,進(jìn)行重發(fā)處理;接收數據處理;待發(fā)送數據處理及設置主站待發(fā)。定時(shí)器I負責監視I2C總線(xiàn),計時(shí)溢出復位I2C接口硬件。I2C中斷處理程序完成數據的接收和發(fā)送工作。流程如圖6所示。圖6本設計采用I2C總線(xiàn)實(shí)現調度指揮系統中多模塊間的雙向通信,電路設計簡(jiǎn)單,易于模塊化及擴展。
評論