《第07章 SPI和I2C模塊及其應(yīng)用實(shí)例》由會員分享,可在線閱讀,更多相關(guān)《第07章 SPI和I2C模塊及其應(yīng)用實(shí)例(21頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用1第7章SPI和I2C模塊及其應(yīng)用實(shí)例嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用2本章目錄7.1 SPI的基本工作原理7.2 SPI模塊的編程基礎(chǔ)7.3 SPI的進(jìn)一步討論7.4 IIC模塊7.5 IIC總線工作原理 7.6 IIC模塊的編程基礎(chǔ)7.7 IIC模塊的進(jìn)一步討論嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用37.1 SPI的基本工作原理7.1.1 功能描述 移位寄存器 移位寄存器 MISO MISO 主MCU MOSI MOSI 波特率發(fā)生器 從MCU SPSCK SPSCK SPISPI全雙工主全雙工主- -從連接從連接嵌入式系
2、統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用47.1 SPI的基本工作原理7.1.2 SPI模塊的I/O引腳 從機(jī)選擇引腳 主出從入引腳MOSI 主入從出引腳MISO SPI串行時鐘引腳SPSCK嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用57.2 SPI模塊的編程基礎(chǔ)7.2.1 SPI模塊的寄存器 地址地址寄存器名稱與縮寫寄存器名稱與縮寫訪問訪問權(quán)限權(quán)限基本功能基本功能SPI0SPI1$00D8$00F0控制寄存器控制寄存器1(SPICR1)讀讀/寫寫設(shè)置傳輸格式、中斷使能設(shè)置傳輸格式、中斷使能$00D9$00F1控制寄存器控制寄存器2(SPICR2)只讀只讀中斷標(biāo)志、發(fā)送與接收狀態(tài)中斷標(biāo)志、發(fā)
3、送與接收狀態(tài)$00DA$00F2波特率寄存器波特率寄存器(SPI0BR)讀讀/寫寫設(shè)置波特率設(shè)置波特率$00DB$00F3狀態(tài)寄存器狀態(tài)寄存器(SPISR)只讀只讀讀取各個狀態(tài)標(biāo)記位讀取各個狀態(tài)標(biāo)記位$00CD$00F5數(shù)據(jù)寄存器數(shù)據(jù)寄存器(SPIDR)讀讀/寫寫收發(fā)的數(shù)據(jù)收發(fā)的數(shù)據(jù)說明:由于有兩個串行外設(shè)接口說明:由于有兩個串行外設(shè)接口(SPI0/SPI1)(SPI0/SPI1),使用,使用SPIxSPIx時,時,寄存器名稱中寄存器名稱中SPISPI改為改為SPIxSPIx,x=0 x=0,1 1。嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用67.2 SPI模塊的編程基礎(chǔ)7.2.2 SPI
4、7.2.2 SPI編程基本方法編程基本方法 SPISPI初始化初始化第第1 1步:寫控制字到步:寫控制字到SPICRSPICR,確定是否允許,確定是否允許SPISPI接接收中斷、收中斷、SPISPI的工作方式、時鐘極性、時鐘相的工作方式、時鐘極性、時鐘相位、是否允許位、是否允許SPISPI等。等。第第2 2步:寫控制字到步:寫控制字到SPISCRSPISCR,確定,確定SPISPI的波特率。的波特率。 發(fā)送與接收發(fā)送與接收1 1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) 通過通過SPISPI發(fā)送發(fā)送1 1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) void SPISend1(INT8U void SPISend1(INT8U SendDataS
5、endData) ) 通過通過SPISPI接收接收1 1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù) INT8U SPIRev1(void)INT8U SPIRev1(void)嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用77.3 SPI的進(jìn)一步討論 & SPISPI接口對一些擴(kuò)展芯片如接口對一些擴(kuò)展芯片如ADAD采集芯采集芯片片TLC2543TLC2543等應(yīng)用比較廣泛。等應(yīng)用比較廣泛。& TLC2543TLC2543與具有與具有SPISPI或相同接口能力的或相同接口能力的MCUMCU可以直接連接可以直接連接. .& 對于沒有對于沒有SPISPI接口的接口的MCUMCU可以通過軟件可以通過軟件編程合成編程合成SPIS
6、PI操作。操作。 嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用87.4 IIC模塊 7.4.1 IIC7.4.1 IIC總線特點(diǎn)總線特點(diǎn)二線制二線制 支持多主控支持多主控 位速率位速率100kbit/s 100kbit/s 3.4Mbit/s3.4Mbit/s。連接到相同總線的連接到相同總線的ICIC數(shù)量數(shù)量7.4.2 IIC7.4.2 IIC總線標(biāo)準(zhǔn)的發(fā)展歷史總線標(biāo)準(zhǔn)的發(fā)展歷史 19921992年年19981998年年20012001年年嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用97.4 IIC模塊 7.4.3 IIC7.4.3 IIC總線的相關(guān)術(shù)語總線的相關(guān)術(shù)語 主機(jī)主機(jī)( (主控器
7、主控器) )從機(jī)從機(jī)( (被控器被控器) )地址地址發(fā)送器發(fā)送器接收器接收器SDA(SerialSDA(Serial DAtaDAta) )SCL(SerialSCL(Serial CLockCLock) )嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用107.5 IIC總線工作原理 3IICIIC總線的典型連接總線的典型連接嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用117.5 IIC總線工作原理 7.5.1 7.5.1 總線上數(shù)據(jù)的有效性總線上數(shù)據(jù)的有效性 數(shù)據(jù)線穩(wěn)定 數(shù)據(jù)有效 允許改變 數(shù)據(jù)期 IICIIC總線上數(shù)據(jù)的有效性總線上數(shù)據(jù)的有效性嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)
8、用127.5 IIC總線工作原理 7.5.2 7.5.2 總線上的信號總線上的信號 開 始 信 號 /重 新 開 始 信 號 停 止 信 號 開始、重新開始和停止信號開始、重新開始和停止信號嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用137.5 IIC總線工作原理 7.5.2 7.5.2 總線上的信號總線上的信號 非應(yīng)答信號 應(yīng)答信號 應(yīng)答時鐘周期 主機(jī)產(chǎn)生的SCL信號 接收器 輸出信號 發(fā)送器 輸出信號 開始信號 IICIIC總線的應(yīng)答信號總線的應(yīng)答信號嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用147.5 IIC總線工作原理 7.5.3 7.5.3 總線上數(shù)據(jù)傳輸格式總線上數(shù)據(jù)傳輸格式
9、 IICIIC總線的數(shù)據(jù)傳輸格式總線的數(shù)據(jù)傳輸格式 開始或重新開始信號 停止或重新開始信號 在從機(jī)中斷時,時鐘線保持低 字節(jié)傳送完成后, 從機(jī)產(chǎn)生中斷 D7 D6 D1 D0 D7 D6 A A A 嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用157.5 IIC總線工作原理 7.5.4 7.5.4 IICIIC總線尋址約定總線尋址約定 &起始信號后的第一個字節(jié)為尋址字節(jié) &尋址字節(jié)由被控器的七位地址位和一位方向位組成&任意兩個從機(jī)的地址都不相同 嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用167.5 IIC總線工作原理 7.5.5 7.5.5 主機(jī)向從機(jī)讀寫主機(jī)向從機(jī)讀寫1 1個字節(jié)數(shù)據(jù)的
10、過程個字節(jié)數(shù)據(jù)的過程 主 機(jī) 寫 數(shù) 據(jù) S T A R T 從 機(jī) 地 址 0 A 訪 問 地 址 A 數(shù) 據(jù) A S T O P W 應(yīng) 答 信 號 應(yīng) 答 信 號 應(yīng) 答 信 號 主機(jī)向從機(jī)寫數(shù)據(jù)主機(jī)向從機(jī)寫數(shù)據(jù) STOP 應(yīng)答信號 W START 從機(jī)地址 0 A 訪問地址 A 重新開始 從機(jī)地址 1 A 數(shù)據(jù) A 應(yīng)答信號 應(yīng)答信號 R 主機(jī)讀數(shù)據(jù) 非應(yīng)答信號 主機(jī)從從機(jī)讀數(shù)據(jù)主機(jī)從從機(jī)讀數(shù)據(jù) 嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用177.6 IIC模塊的編程基礎(chǔ) 7.6.1 DG1287.6.1 DG128芯片芯片IICIIC的模塊的模塊允許多主機(jī)模式,符合允許多主機(jī)模式,
11、符合IICIIC總線協(xié)議;總線協(xié)議;可軟件編程選擇可軟件編程選擇256256個串行時鐘頻率;個串行時鐘頻率;軟件編程實(shí)現(xiàn)軟件編程實(shí)現(xiàn)ACKACK信號;信號;位與位之間的中斷傳輸方式;位與位之間的中斷傳輸方式;仲裁丟失中斷的同時,自動從主機(jī)模式切換仲裁丟失中斷的同時,自動從主機(jī)模式切換到從機(jī)模式;到從機(jī)模式;具有從地址識別中斷;具有從地址識別中斷;起停信號的產(chǎn)生和檢測,并可以重復(fù)產(chǎn)生開起停信號的產(chǎn)生和檢測,并可以重復(fù)產(chǎn)生開始信號;始信號;信號的產(chǎn)生和檢測;信號的產(chǎn)生和檢測;總線繁忙檢測??偩€繁忙檢測。 嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用187.6 IIC模塊的編程基礎(chǔ) 7.6.2 I
12、IC7.6.2 IIC模塊寄存器介紹模塊寄存器介紹寄存器名稱寄存器名稱縮寫縮寫地址地址訪問權(quán)限訪問權(quán)限基本功能基本功能地址寄存器地址寄存器IBADIBAD$00E0$00E0讀讀/ /寫寫設(shè)置從機(jī)地址設(shè)置從機(jī)地址分頻寄存器分頻寄存器IBFRIBFR$00E1$00E1讀讀/ /寫寫設(shè)置設(shè)置IICIIC模塊的工作模塊的工作頻率等頻率等控制寄存器控制寄存器IBCRIBCR$00E2$00E2讀讀/ /寫寫設(shè)置傳輸格式、中斷設(shè)置傳輸格式、中斷使能使能狀態(tài)寄存器狀態(tài)寄存器IBSRIBSR$00E3$00E3只讀只讀表明表明IICIIC模塊的工作模塊的工作狀態(tài)狀態(tài)數(shù)據(jù)寄存器數(shù)據(jù)寄存器IBDRIBDR$0
13、0E4$00E4讀讀/ /寫寫收發(fā)數(shù)據(jù)收發(fā)數(shù)據(jù)嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用197.6 IIC模塊的編程基礎(chǔ) 7.6.3 IIC7.6.3 IIC模塊編程模塊編程&IICIIC模塊初始化函數(shù)模塊初始化函數(shù)void void IICInit(voidIICInit(void) )&接收與發(fā)送接收與發(fā)送1 1字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)接收接收1 1字節(jié)數(shù)據(jù)的函數(shù)字節(jié)數(shù)據(jù)的函數(shù)INT8U IICread1(INT8U INT8U IICread1(INT8U DeviceAddrDeviceAddr, INT8U , INT8U AccessAddrAccessAddr, INT8U , IN
14、T8U * *Data)Data)發(fā)送發(fā)送1 1字節(jié)數(shù)據(jù)的函數(shù)字節(jié)數(shù)據(jù)的函數(shù)INT8U IICwrite1(INT8U INT8U IICwrite1(INT8U DeviceAddrDeviceAddr, INT8U , INT8U AccessAddrAccessAddr, INT8U Data), INT8U Data)&接收與發(fā)送接收與發(fā)送N N字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)接收接收N N字節(jié)數(shù)據(jù)的函數(shù)字節(jié)數(shù)據(jù)的函數(shù)INT8U IICreadN(INT8U INT8U IICreadN(INT8U DeviceAddrDeviceAddr, INT8U , INT8U AccessAddrAcces
15、sAddr, INT8U Data, INT8U N), INT8U Data, INT8U N)發(fā)送發(fā)送N N字節(jié)數(shù)據(jù)的函數(shù)字節(jié)數(shù)據(jù)的函數(shù)INT8U IICwriteN(INT8U INT8U IICwriteN(INT8U DeviceAddrDeviceAddr, INT8U , INT8U AccessAddrAccessAddr, INT8U Data, INT8U N), INT8U Data, INT8U N)嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用207.7 IIC模塊的編程基礎(chǔ) 7.7.1 7.7.1 仲裁程序仲裁程序 7.7.2 7.7.2 時鐘同步時鐘同步7.7.3 7.7.3 握手握手7.7.4 7.7.4 時鐘周期延長時鐘周期延長嵌入式系統(tǒng)-使用HCS12微控制器的設(shè)計與應(yīng)用21謝謝 謝謝Ver 1.0