2012年單片機(jī)第八章spisci_第1頁
2012年單片機(jī)第八章spisci_第2頁
2012年單片機(jī)第八章spisci_第3頁
2012年單片機(jī)第八章spisci_第4頁
2012年單片機(jī)第八章spisci_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MCU與外設(shè)進(jìn)行數(shù)據(jù)交換稱為通信,方法:并行---多位同時傳輸。速度快,距離近,占引腳多;串行---逐位順序傳輸。速度慢,距離遠(yuǎn),占引腳少;串行通信須遵守通信協(xié)議,S12集成:SPI、SCI、CAN、I2C等

第8章S12串行通信模塊8.1SCI串行通信接口8.1.1SCI異步串行通訊規(guī)范

SCI串行通信---異步通信,最常用;SCI基本概念:1、異步串行通信的格式

NRZ,8位或9位,異步通信:每一數(shù)據(jù)塊的字符以起始位“0”表示開始;停止位“1”表示結(jié)束)。2.串行通信的波特率定義:每秒內(nèi)傳送的位數(shù);單位:b/s或bps;常用:1200bps、4800bps、9600bps……;對應(yīng)發(fā)送端:按照約定的頻率發(fā)送移位信號;對于接收端:檢測起始位開始,以16倍約定波特率采樣數(shù)據(jù),對每一位均采樣16次,保證數(shù)據(jù)接收正確。5.RS-232C串行通信標(biāo)準(zhǔn)

負(fù)邏輯:邏輯“1”:-15V~-3V;“0”:+3V~+15V。傳輸距離≤30m,通信速率≤20Kbps。接口:9芯3線:地(GND)、發(fā)送數(shù)據(jù)(TXD)、接收數(shù)據(jù)(RXD)6.SCI的電平轉(zhuǎn)換電路

MCU與MCU之間無需轉(zhuǎn)換電路。3.奇偶校驗奇校驗:校驗位為0或1,使得1的數(shù)目是奇數(shù);偶校驗:校驗位為0或1,使得1的數(shù)目是偶數(shù);4.串行通信的傳輸方式單工:1根數(shù)據(jù)線,單方向;

全雙工:2根數(shù)據(jù)線,雙向常用,半雙工:1根數(shù)據(jù)線,分時雙向。

7.SCI通信的基本工作原理接收時,把外部單線輸入的串行數(shù)據(jù)變成1個字節(jié)的并行數(shù)據(jù)送入MCU;發(fā)送時,把需要發(fā)送的1個字節(jié)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)單線輸出。8.1.2.SCI串行通信接口的特點

S12集成了2個SCI串行通信模塊。特點:標(biāo)準(zhǔn)NRZ格式;雙線全雙工串行軟件設(shè)置波特率軟件設(shè)置字長(8或9位)硬件自動生成奇偶校驗位;接收喚醒功能(適合多處理器系統(tǒng))獨立的發(fā)送器和接收器允許控制位;中斷驅(qū)動機(jī)制;可監(jiān)視發(fā)送器的輸出,進(jìn)行通信自診斷;(1)SCI波特率寄存器---SCIxBDH、SCIxBDL(共16位)波特率計算公式:波特率=總線頻率/(16xBR)

如:LDD#13

STABSCI0BDLSTAASCI0BDH;2MHz/(16x13)=9600bps寄存器高8位(SCI0BDH、SCI1BDH)數(shù)據(jù)位D7D6D5D4D3D2D1D0定義xxxSBR12SBR11SBR10SBR9SBR8復(fù)位00000000寄存器低8位(SCI0BDL、SCI1BDL)數(shù)據(jù)位D7D6D5D4D3D2D1D0定義SBR7SBR6SBR5SBR4SBR3SBR2SBR1SBR0復(fù)位00000100(2)SCI控制寄存器---SCIxCR1、SCIxCR2縮寫:SCI0CR1、SCI1CR1數(shù)據(jù)位D7D6D5D4D3D2D1D0定義LOOPSSCISWAIRSRCMWAKEILTPEPT復(fù)位00000000

舉例:設(shè)置允許SCI、正常碼輸出、8位數(shù)據(jù)、無校驗

SCI0CR1=Ox00;縮寫:SCI0CR2、SCI1CR2數(shù)據(jù)位D7D6D5D4D3D2D1D0定義TIETCIERIEILIETERERWUSBK復(fù)位00000000

舉例:設(shè)置允許發(fā)送、允許接收,查詢方式收發(fā)

SCI0CR2=0x0C;注:控制寄存器的WAKE和RWU位:用于多處理器系統(tǒng)??s寫:SCI0SR1、SCI1SR1定義:只讀數(shù)據(jù)位D7D6D5D4D3D2D1D0定義TDRETCRDRFIDLEORNFFEPF復(fù)位11000000(3)SCI狀態(tài)寄存器1---SCIxSR1一般使用D7和D5位。其他控制位一般用于通過MODEM連接的遠(yuǎn)程通訊。TDRE:發(fā)送寄存器空標(biāo)志?!綽it7】1=可以發(fā)送數(shù)據(jù);0=不可以發(fā)送數(shù)據(jù),需等待。RDRF:接收數(shù)據(jù)滿標(biāo)志?!綽it5】1=可以取出數(shù)據(jù);0=不可以取出數(shù)據(jù),需等待。列:查詢方式從SCI0接收一個字符:

BRCLRSCI0SR1,#$20,*;等待RDRF=1.LDAASCI0DRL列:查詢方式從SCI0發(fā)出一個字符:

BRCLRSCI0SR1,#$80,*;等待TDRE=1.STAASCI0DRLSCI狀態(tài)寄存器2(一般不關(guān)心)縮寫:SCI0SR2、SCI1SR2定義:只讀數(shù)據(jù)位D7D6D5D4D3D2D1D0定義----------BK13TXDIRRAF復(fù)位00000000

常用:

D0=1:正在接收數(shù)據(jù)。CPU進(jìn)入STOP模式前探測是否SCI正在接收數(shù)據(jù);縮寫:SCI0DRH、SCI0DRL、SCI1DRH、CI1DRL位定義:數(shù)據(jù)位D7D6D5D4D3D2D1D0讀操作R8000000寫操作T8復(fù)位00000000數(shù)據(jù)位D7D6D5D4D3D2D1D0讀操作R7R6R5R4R3R2R1R0寫操作T7T6T5T4T3T2T1T0復(fù)位00000000DRH:DRL:(4)SCI數(shù)據(jù)寄存器---SCIxDRH、SCIxDRLSCIDRL讀入時,是接收的數(shù)據(jù);寫出時,是發(fā)出的數(shù)據(jù)。8.1.3SCI串行通信接口的應(yīng)用程序

基本編制方法:

1、初始化:設(shè)置波特率、設(shè)置2個控制寄存器

2、發(fā)送數(shù)據(jù):發(fā)送數(shù)據(jù)寄存器是空,可以時再發(fā)送;

3、接收數(shù)據(jù):接收數(shù)據(jù)寄存器是滿,可以時再接收?!緦嵗坎樵兎绞降腟CI串行口收發(fā)數(shù)據(jù)。(可連接PC機(jī))8.2SPI串行通信接口

SPI(SerialPeripheralInterface)---串行外設(shè)接口,一種同步串行通信系統(tǒng),即收、發(fā)雙方共享同一個時鐘信號。8.2.1SPI串行外設(shè)接口規(guī)范SPI工作模式主機(jī)模式:數(shù)據(jù)寫入到SPI數(shù)據(jù)寄存器,引發(fā)數(shù)據(jù)傳輸開始;從機(jī)模式:不能主動引發(fā)數(shù)據(jù)傳輸,雙工模式:單線雙工模式。主機(jī)模式使用MOSI雙向通信;從機(jī)使用MISO;SPI的數(shù)據(jù)傳輸過程

數(shù)據(jù)傳輸時,主機(jī)的程序控制著數(shù)據(jù)傳輸,從機(jī)的程序配合主機(jī)工作,完成傳輸過程。主機(jī)發(fā)出啟動傳輸信號開始,此時要傳送的數(shù)據(jù)裝入8位移位寄存器,同時產(chǎn)生8個時鐘信號從SPSCK引腳依次送出;SCK控制下,主機(jī)8位移位寄存器的數(shù)據(jù)依次從MOSI引腳送出,到從機(jī)的MOSI引腳并送入8位移位寄存器;在此過程中,從機(jī)的數(shù)據(jù)也通過MISO引腳到主機(jī)中。SPI模塊的引腳

SPI模塊通常引出4個引腳,分別為:SS、MISO、MOSI、SPSCK。

(1)從機(jī)選擇引腳SS(Slaveselect)

若SPI工作于主機(jī)方式,置SS為高電平;若SPI工作于從機(jī)方式,當(dāng)SS=0時,表示主機(jī)選中了該從機(jī),反之則未選中該從機(jī)。(2)主出從入引腳MOSI(Masterout/slavein)MOSI是主機(jī)輸出、從機(jī)輸入數(shù)據(jù)線。

(3)主入從出引腳MISO(Masterin/slaveout)

MISO是主機(jī)輸入、從機(jī)輸出數(shù)據(jù)線。(4)SPI串行時鐘引腳SPSCK(SPIserialclock)SPSCK用于控制主機(jī)與從機(jī)之間的數(shù)據(jù)傳輸。SPI工作模式主機(jī)模式:數(shù)據(jù)寫入到SPI數(shù)據(jù)寄存器,引發(fā)數(shù)據(jù)傳輸開始;從機(jī)模式:不能主動引發(fā)數(shù)據(jù)傳輸,雙工模式:單線雙工模式。主機(jī)模式使用MOSI雙向通信;從機(jī)使用MISO;地址寄存器名稱與縮寫訪問權(quán)限基本功能SPI0SPI1$00D8$00F0控制寄存器1(SPICR1)讀/寫設(shè)置傳輸格式、中斷使能$00D9$00F1控制寄存器2(SPICR2)只讀中斷標(biāo)志、發(fā)送與接收狀態(tài)$00DA$00F2波特率寄存器(SPIBR)讀/寫設(shè)置波特率$00DB$00F3狀態(tài)寄存器(SPISR)只讀讀取各個狀態(tài)標(biāo)記位$00CD$00F5數(shù)據(jù)寄存器(SPIDR)讀/寫收發(fā)的數(shù)據(jù)SPI寄存器SPI邏輯結(jié)構(gòu)圖8.2.2SPI模塊功能與設(shè)置波特率選擇寄存器SPI狀態(tài)寄存器SPI0SR/SPI1SRSPIF:接收數(shù)據(jù)的判斷標(biāo)志

1=數(shù)據(jù)已經(jīng)傳到數(shù)據(jù)寄存器,可以讀?。?/p>

0=數(shù)據(jù)傳輸貿(mào)易結(jié)束;SPTEF:發(fā)送數(shù)據(jù)的判斷標(biāo)志

1=SPI數(shù)據(jù)寄存器為空,可以發(fā)送;0=數(shù)據(jù)寄存器滿;SPI編程基本方法(1)SPI初始化

第一步:寫控制字到SPCR,確定是否允許SPI接收中斷、SPI的工作方式、時鐘極性、時鐘相位、是否允許SPI等。第二步:寫控制字到SPSCR,確定SPI的波特率。(2)發(fā)送一個數(shù)據(jù)與接收一個數(shù)據(jù) 通過SPI發(fā)送一個數(shù)據(jù),同時通過SPI接收一個數(shù)據(jù),作為主機(jī)方,只要將數(shù)據(jù)送入SPDR,然后檢查SPSCR的SPTE位(位3),若該位為1,表示數(shù)據(jù)已送出。若同時接收對方送來的數(shù)據(jù),則接著檢查SPSCR的SPRF位(位7),若該位為1,表示要接收的數(shù)據(jù)已進(jìn)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論