引言
串行護(hù)展總線技術(shù)是新一代單片機(jī)技術(shù)發(fā)展的一個顯著特點(diǎn)。其中PHILIPS公司推出的I2C總線最為著名,它包括一個兩端接口,通過一個帶有緩沖區(qū)的接口,數(shù)據(jù)可以被I2C發(fā)送或接收,控制和狀態(tài)信息則通過一套內(nèi)存映射寄存器來傳送。與并行擴(kuò)展總線相比,串行擴(kuò)展總線有突出的優(yōu)點(diǎn):電路結(jié)構(gòu)簡單,程序編寫方便,易于實(shí)現(xiàn)用戶系統(tǒng)軟硬件的模塊化、標(biāo)準(zhǔn)化等。本文是把I2C總線應(yīng)用到MSP430單片機(jī)溫度控制系統(tǒng)中的一個典型實(shí)例。
I2C總線是用2根雙向I/O信號線(串行時鐘線SCL和串行數(shù)據(jù)線SDA)把多種器件連接起來,并實(shí)現(xiàn)器件之間的串行通訊。
MSP430是TI公司一種具有超低功耗的功能強(qiáng)大的16位單片機(jī),MSP430F169是該系列中的一種型號。它內(nèi)部集成2個16位定時器,1個高速12位A/D轉(zhuǎn)換器,12位或8位的雙重D/A轉(zhuǎn)換器,2個通用同步/異步通訊接口和1個I2C模塊。我們就是利用其I2C模塊來對MSP430F169單片機(jī)進(jìn)行擴(kuò)展。
系統(tǒng)硬件設(shè)計
該系統(tǒng)實(shí)現(xiàn)對曲軸的熱處理進(jìn)行溫度控制。曲軸的熱處理工藝為:曲軸放入淬火加熱爐以350℃~400℃/h加熱,到910℃~930℃保溫1.5h,淬火冷卻至室溫,進(jìn)爐550℃〜600℃回火2.5h。因此,系統(tǒng)需要同時對淬火爐和回火爐進(jìn)行溫度控制。在此系統(tǒng)中,我們需要分別設(shè)計鍵盤模塊和LED顯示模塊,通過鍵盤實(shí)現(xiàn)溫度、PID參數(shù)、時間周期等參數(shù)的人工輸入設(shè)定,通過LED分別實(shí)時顯示淬火爐和回火爐的溫度。在以往的單片機(jī)應(yīng)用系統(tǒng)中,鍵盤接口和LED顯示接口一般是通過并行總線擴(kuò)展的,其特點(diǎn)是信息傳送速度快,但占用的口線多,電路復(fù)雜。有了I2C BUS后,可通過I2C BUS進(jìn)行系統(tǒng)擴(kuò)展,這時只要用SCL和SDA兩根信號線就可將單片機(jī)與外圍器件連接起來,使占用的信號線少,電路大大簡化,系統(tǒng)電路結(jié)構(gòu)如圖1所示。
圖中鍵盤接口是通過PCF8574擴(kuò)展的,PCF8574是8位I/O擴(kuò)展器,具有8位準(zhǔn)雙向口和I2C總線接口,每位都可單獨(dú)設(shè)為輸入或輸出,功耗低,輸出有鎖存,驅(qū)動能力強(qiáng),還具有中斷請求功能。本方案中,該芯片作為4×4矩陣式鍵盤與單片機(jī)接口,初始化后,P0-P3為輸出低電平,P4-P7為輸入,平時單片機(jī)執(zhí)行其它程序,當(dāng)有任一鍵按下時,該芯片在INT端產(chǎn)生中斷請求信號,CPU響應(yīng)中斷進(jìn)入中斷服務(wù)程序。在該芯片中,A2-A0為地址引腳,由引腳電平確定,在該系統(tǒng)中A0接高電平,A1、A2接地;P0-P7為準(zhǔn)雙向口;INT為中斷請求輸出,低電平有效,需要注意的是該端應(yīng)通過上拉電阻上拉。當(dāng)單片機(jī)主節(jié)點(diǎn)對PCF8574進(jìn)行一個字節(jié)的寫操作時,即實(shí)現(xiàn)了I/O口的數(shù)據(jù)輸出。I2C總線發(fā)送到PCF8574中的串行數(shù)據(jù),在應(yīng)答位后出現(xiàn)在I/O端口上,I2C總線不斷送數(shù),I/O上的數(shù)據(jù)不斷更迭。當(dāng)單片機(jī)主節(jié)點(diǎn)對PCF8574讀操作時,即可實(shí)現(xiàn)I/O端口數(shù)據(jù)的輸入,讀入的數(shù)據(jù)存放在接收緩沖區(qū)MRD中。當(dāng)PCF8574輸入端電平狀態(tài)改變時,中斷請求輸出端INT出現(xiàn)低電平,中斷輸出有效,在對其讀寫操作后,中斷請求復(fù)位。I2C總線對PCF8574 I/O口的輸入操作是一個字節(jié)的讀出操作,該系統(tǒng)中PCF8574的SLAW/SLAR為42H/43H。
圖中SAA1064為4位帶小數(shù)點(diǎn)的七段LED顯示器驅(qū)動電路,該器件可靜態(tài)驅(qū)動2位LED、動態(tài)驅(qū)動4位LED,只有一個地址引腳ADR,但可選擇4種電平狀態(tài)。SAA1064中有動態(tài)驅(qū)動控制電路,不須外部動態(tài)驅(qū)動管理。在該芯片中,ADR為地址引腳端,4個模擬電平狀態(tài)對應(yīng)4個引腳地址;CEXT為時鐘振蕩器外接電容,典型值為2.7nF;P1-P16為段驅(qū)動輸出端口,口鎖存器置1時,端口狀態(tài)為低電平;MX1、MX2為動態(tài)顯示方式下,公共段驅(qū)動輸出端,外部應(yīng)用驅(qū)動晶體管。SAA1064的器件地址是0111,地址引腳只有一個,即ADR,引腳地址A2、A1、A0采取ADR模擬電平的比較編址,ADR引腳電平為0、3/8VDD、5/8VDD 、VDD時,相應(yīng)引腳地址A2、A1、A0為000、001、010、011。在該系統(tǒng)中,兩片SAA1064的ADR一個接地,一個接VDD,按圖中接法,左邊SAA1064的SLAW/SLAR為70H/71H,右邊SAA1064的SLAW/SLAR為76H/77H。應(yīng)用動態(tài)驅(qū)動方式在兩片SAA1064上分別接3個LED,都采用P1-P8口動態(tài)驅(qū)動兩位LED顯示,P9-P16口單獨(dú)驅(qū)動一位LED顯示。SAA1064中有5個寄存器單元,分別為1個控制寄存器和4個顯示寄存器,地址單元00H的裝載內(nèi)容為控制命令COM,地址單元01H、02H、03H、04H的裝載內(nèi)容分別為顯示段碼1、顯示段碼2、顯示段碼3、顯示段碼4,在本系統(tǒng)中,只用到前3個顯示段碼。單片機(jī)可從芯片中讀出狀態(tài)字節(jié),該狀態(tài)字節(jié)只用到最高位PR。PR=1表示從上次讀狀態(tài)后出現(xiàn)過掉電和加電,讀狀態(tài)字節(jié)后,PR清“0”。單片機(jī)也可向芯片寫入地址字節(jié)、指令字節(jié)、控制字節(jié)和數(shù)據(jù)字節(jié),指令字節(jié)(00000SC SB SA)中的SC、SB、SA規(guī)定指令字節(jié)后的數(shù)據(jù)字節(jié)從哪個單元開始寫入,以后地址自動增量。
系統(tǒng)軟件設(shè)計
MSP430F169中的I2C控制器是通用串行同步/異步USART外圍模塊中的一部分,且只在USART0中具有I2C模式,其個別位的定義與SPI或UART模式不同。U0CTL寄存器的默認(rèn)值是UART模式,寄存器包含下面這些位:必須設(shè)置SYNC位才能選擇SPI或I2C模式,當(dāng)SWRST=1時,設(shè)置SYNC位選擇SPI模式,當(dāng)SYNC=1設(shè)置I2C位選擇I2C模式,對USART0來說,SYNC位和I2C位可以在一條指令中同時設(shè)置使其運(yùn)行在I2C模式。
MSP430F169內(nèi)部的I2C模塊可以運(yùn)行在主發(fā)送、主接收、從發(fā)送或從接收方式,本應(yīng)用系統(tǒng)為單主系統(tǒng),所以單片機(jī)只運(yùn)行在主發(fā)送和主接收方式。MSP430F169單片機(jī)中用于管理I2C總線的寄存器有:中斷使能寄存器I2CIE,中斷標(biāo)志寄存器I2CIFG,數(shù)據(jù)量寄存器I2CNDAT,通用串行同步/異步模塊寄存器U0CTL,發(fā)送控制寄存器I2CTCTL,數(shù)據(jù)控制寄存器I2CDCTL,分頻計數(shù)寄存器I2CPSC,時鐘高電平寄存器I2CSCLH,時鐘低電平寄存器I2CSCLL,數(shù)據(jù)寄存器I2CDR,主地址寄存器I2COA,從地址寄存器I2CSA,中斷向量寄存器I2CIV。在主運(yùn)行模式中,發(fā)送和接收操作主要由I2CRM、I2CSTT、I2CSTP三個位來控制,這三個位都是發(fā)送控制寄存器I2CTCTL中的位,其中I2CRM是循環(huán)重復(fù)模式控制位,其為0表示由I2CNDAT定義發(fā)送的字節(jié)數(shù),其為1表示發(fā)送的字節(jié)數(shù)由軟件控制,I2CNDAT不用。I2CSTT是啟動發(fā)送控制位,其設(shè)置為1用來啟動數(shù)據(jù)發(fā)送,一旦數(shù)據(jù)傳送開始,這個位自動清零。I2CSTP是停止發(fā)送控制位,這個位置1表示停止數(shù)據(jù)發(fā)送,一旦數(shù)據(jù)發(fā)送停止,該位自動清零。在主發(fā)送模式中,一旦從地址字節(jié)和讀寫方向位發(fā)送之后,通過設(shè)置I2CTRX=0即可進(jìn)入主接收模式。主發(fā)送程序流程圖如圖2所示,主接收程序流程圖如圖3所示。
結(jié)語
由于把I2C總線技術(shù)引入到系統(tǒng)設(shè)計中,使該系統(tǒng)硬件電路變得非常簡單,同時利用新型16位微處理器MSP430F169構(gòu)成整個控制系統(tǒng)的核心,因其自帶I2C接口,使系統(tǒng)的軟件編程也比較簡單,因此不失為一種良好的系統(tǒng)設(shè)計方案。
參考文獻(xiàn):
1. MSP430X1XX Family user,s Guide.Texas Instruments Incorporation, 2003
圖2 主發(fā)送程序流程圖圖3 主接收程序流程圖圖1 系統(tǒng)硬件電路圖
|