




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、串行總線擴(kuò)展技術(shù) SPI和I2C2013級電路與系統(tǒng) ZACK1SPI總線SPI是英語 Serial Peripheral interface 的縮寫,含義為串行外圍設(shè)備接口。它是由 Motorola 公司開發(fā)的、用來在微控制器和外圍設(shè)備芯片之間實(shí)現(xiàn)數(shù)據(jù)交換的低成本、易使用的接口。被廣泛應(yīng)用 于 EEPROM, FLASH,實(shí)時時鐘,AD 轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。與標(biāo)準(zhǔn)的USART串行接口不同,SPI 是一個同步協(xié)議同步協(xié)議接口,具有全雙全雙工通信工通信的特性。SPI總線上所有的傳輸都參照一個共同的時鐘,這個同步時鐘信號由主設(shè)備產(chǎn)生。接收數(shù)據(jù)的從設(shè)備使用時鐘對串行比特流
2、的接收進(jìn)行同步化。2SPI總線協(xié)議四條信號線:MISO(主機(jī)輸入/從機(jī)輸出)MOSI(主機(jī)輸出/從機(jī)輸入)SCLK(串行時鐘)CS或SS (外設(shè)片選或從機(jī)選擇)特點(diǎn):全雙工(輸入/輸出獨(dú)立)同步(帶有時鐘線)物理結(jié)構(gòu)簡單靈活性強(qiáng)3SPI接口硬件原理SPI在硬件上可以看做是一個16位的環(huán)形移位寄存器,其中8位位于主設(shè)備中,另外8位位于從設(shè)備中。每一次讀寫操作都會使主設(shè)備和從設(shè)備中的8位數(shù)據(jù)完成一次互換!4SPI接口時序四種可選模式調(diào)整相位關(guān)系: CPOL用來決定SCK時鐘信號空閑時的電平,CPOL0,空閑電平為低電平,CPOL1時,空閑電平為高電平。CPHA是用來決定采樣時刻的,CPHA=0,在
3、每個周期的第一個時鐘沿采樣,CPHA1,在每個周期的第二個時鐘沿采樣。5SPI連接舉例67SPI缺點(diǎn):沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)例:MCU與LCD之間的單線模式通信由于缺少應(yīng)答機(jī)制,MCU將一直無法確認(rèn)LCD是否收到了數(shù)據(jù)8解決方案:增加應(yīng)答線增加應(yīng)答線可以使得該協(xié)議更加完善,但也增加了額外的硬件開銷,且并不適用于接口已經(jīng)固化的設(shè)備(例如前面提到的LCD,或者已經(jīng)集成好的AD、FLASH等芯片),但在主機(jī)和從機(jī)都是MCU的情況下,增加一個引腳則并不是什么大問題。9抗干擾措施SPI采用的是單端非平衡單端非平衡的傳輸方式,傳輸?shù)臄?shù)據(jù)位的電壓電平是以公公共地共地作為參考的。在這種傳輸方式中,對于
4、已進(jìn)入信號中的干擾是無法消除和減弱的。且信號在傳輸過程中總會受到干擾,而且距離越長干擾越嚴(yán)重,以至于信號傳輸產(chǎn)生錯誤。解決方案采用平衡傳輸方案(例如:轉(zhuǎn)換為LVDS模式傳送)使用瞬時電壓抑制器(TVS管)STM32的SPI接口3線全雙工同步傳輸帶或不帶第三根雙向數(shù)據(jù)線的雙線單工同步傳輸8或或16位位傳輸幀格式選擇主或從操作支持多主模式8個主模式波特率預(yù)分頻系數(shù)(最大為fPCLK/2) 從模式頻率(最大為fPCLK/2) 主模式和從模式的快速通信主模式和從模式下均可以由軟件或硬件進(jìn)行NSS管理:主/從操作模式的動態(tài)改變可編程的時鐘極性和相位可編程的數(shù)據(jù)順序可編程的數(shù)據(jù)順序,MSB在前或LSB在前
5、可觸發(fā)中斷的專用發(fā)送和接收標(biāo)志SPI總線忙狀態(tài)標(biāo)志支持可靠通信的硬件CRC 可觸發(fā)中斷的主模式故障、過載以及CRC錯誤標(biāo)志支持支持DMA功能功能的1字節(jié)發(fā)送和接收緩沖器:產(chǎn)生發(fā)送和接受請求1011控制寄存器SPI_CR1BIDIMODEBIDIOERXONLY工作模式工作模式0X0全雙工0X1單向只接收11X雙向、發(fā)送10X雙向、接收Attention:1)BIDIMODE為1時工作在單線雙向單線雙向模式,為0時工作在雙線雙向雙線雙向模式;2)BIDIOE只在單線模式單線模式下有用,RXONLY只在雙線模式雙線模式下有用。12控制寄存器SPI_CR1CRCEN: 硬件CRC檢驗使能CRCNEX
6、T: 下一個發(fā)送CRCDFF: 數(shù)據(jù)幀格式設(shè)置SSM: 軟件從設(shè)備管理SSI: 內(nèi)部從設(shè)備選擇LSBFIRST: 發(fā)送幀格式 SPE: SPI使能BR2:0: 波特率控制MSTR: 主/從設(shè)置CPOL/CPHA: 時鐘極性/相位 13控制寄存器SPI_CR214中斷使能設(shè)置:TXEIE: 發(fā)送緩沖區(qū)空中斷使能RXNEIE: 接收緩沖區(qū)非空中斷使能ERRIE: 錯誤中斷使能DMA使能設(shè)置:TXDMAEN: 發(fā)送DMA使能RXDMAEN: 接收DMA使能SSOE:SS輸出使能。若設(shè)備處于多主設(shè)備模式,該位必須置為0,此時SS的功能可由通用I/O口來替代。15狀態(tài)寄存器SPI_SRBSY: 忙標(biāo)志O
7、VR: 溢出標(biāo)志MODF: 模式錯誤CRCERR: CRC錯誤標(biāo)志UDR: 下溢標(biāo)志位CHSIDE: 聲道TXE: 發(fā)送緩沖為空RXNE: 接收緩沖為空其中,標(biāo)志位UDR和CHSIDE只在I2S音頻協(xié)議下有意義,此處不做討論。16數(shù)據(jù)寄存器(SPI_SR)CRC多項式寄存器(SPI_CRCPR)17接收CRC寄存器(SPI_RXCRCR)發(fā)送CRC寄存器(SPI_TXCRCR)18SPI中斷中斷響應(yīng)函數(shù) Void SPIx_IRQHandler(void) ;19SPI配置流程(1)配置引腳復(fù)用功能 i) 使能spi時鐘; ii)設(shè)置引腳復(fù)用(2)設(shè)置工作模式 i) 主/從設(shè)置 ii) 數(shù)據(jù)格
8、式設(shè)置 iii)時鐘極性/相位設(shè)置 iv)單線/雙線模式、接收/輸出模式 v) CRC設(shè)置 vi) 中斷/DMA設(shè)置(3)使能SPI,開始工作20初始化函數(shù)21發(fā)送/接收函數(shù)測試外設(shè):W25X16(16Mb FLASH)void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)22主函數(shù)23執(zhí)行結(jié)果24I2C總線I2C(InterIntegrated Circuit)總線是由PHILIPS公司開發(fā)
9、的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn)。I2C通過串行數(shù)據(jù)(SDA)線和串行時鐘 (SCL)線在連接到總線的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器MCU、LCD 驅(qū)動器、存儲器或鍵盤接口),而且都可以作為一個發(fā)送器或接收器(由器件的功能決定)。25I2C總線特點(diǎn)1、只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL;2、每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機(jī)/從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為
10、主機(jī)發(fā)送器或主機(jī)接收器;3、它是一個真正的多主機(jī)總線,如果兩個或更多主機(jī)同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;4、串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s;5、連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制。26I2C總線協(xié)議I2C的起始和停止條件/產(chǎn)生IIC起始信號void IIC_Start(void) SDA_OUT(); /sda線輸出 IIC_SDA=1; IIC_SCL=1; delay_us(4); IIC_SDA=0; /START:when CLK
11、is high,DATA change form high to low delay_us(4); IIC_SCL=0; /鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) /產(chǎn)生IIC停止信號void IIC_Stop(void) SDA_OUT(); /sda線輸出 IIC_SCL=0; IIC_SDA=0; /STOP:when CLK is high DATA change form low to high delay_us(4); IIC_SCL=1; IIC_SDA=1; /發(fā)送I2C總線結(jié)束信號 delay_us(4);27I2C數(shù)據(jù)的有效傳輸條件I2C總線協(xié)議/發(fā)送一個字節(jié)數(shù)據(jù)void II
12、C_Send_Byte(u8 txd) u8 t; SDA_OUT(); IIC_SCL=0; /拉低時鐘開始數(shù)據(jù)傳輸 for(t=0;t7; txd=1; delay_us(2); IIC_SCL=1; delay_us(2); IIC_SCL=0; delay_us(2); u8 IIC_Read_Byte(unsigned char ack) /接收一個字節(jié) unsigned char i,receive=0; SDA_IN(); /SDA設(shè)置為輸入 for(i=0;i8;i+ ) IIC_SCL=0; delay_us(2); IIC_SCL=1; receive=1; if(READ_SDA) receive+; delay_us(1); if (!ack) IIC_NAck(); /發(fā)送nACK else IIC_Ack(); /發(fā)送ACK return receive;28I2C總線數(shù)據(jù)傳輸和應(yīng)答I2C總線協(xié)議I2C應(yīng)答機(jī)制:數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時鐘脈沖由主機(jī)產(chǎn)生。在響應(yīng)的時鐘脈沖期間發(fā)送器釋放SDA 線(高)。在響應(yīng)的時鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 井巷工程施工合同范例
- 入駐農(nóng)莊合同范例
- 代購合同和購買合同范例
- 中英文外銷合同范例
- 出口銷售協(xié)議合同范例
- 農(nóng)村魚塘租賃合同(合同范例)
- 供熱退費(fèi)合同范例
- 加工合同范例筒單
- 凍品供應(yīng)配送合同范例
- 公司請保安合同范例
- C形根管的形態(tài)識別和治療實(shí)用教案
- 部編版《道德與法治》四年級下冊第5課《合理消費(fèi)》優(yōu)質(zhì)課件
- 京東入駐流程(課堂PPT)
- 鍋爐巡檢制度
- 切紙機(jī)說明書-原稿
- 中國國際航空公司VI形象識別規(guī)劃提案
- 三菱PLC模擬量模塊fx2n4da中文手冊
- 金屬材料工程課程設(shè)計
- 學(xué)校突發(fā)公共衛(wèi)生事件應(yīng)急處置.ppt
- 學(xué)生課堂表現(xiàn)評價量表(20211208204532)
- 4K超高清電視在傳統(tǒng)播出中面臨的問題及系統(tǒng)建設(shè)規(guī)劃探討
評論
0/150
提交評論