單片機(jī)原理及應(yīng)用-SCI SPI串行通信_(tái)第1頁(yè)
單片機(jī)原理及應(yīng)用-SCI SPI串行通信_(tái)第2頁(yè)
單片機(jī)原理及應(yīng)用-SCI SPI串行通信_(tái)第3頁(yè)
單片機(jī)原理及應(yīng)用-SCI SPI串行通信_(tái)第4頁(yè)
單片機(jī)原理及應(yīng)用-SCI SPI串行通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

SCI/SPI串行通信模塊

MCU與外設(shè)進(jìn)行數(shù)據(jù)交換稱為通信,方法:并行---多位同時(shí)傳輸。速度快,距離近,占引腳多,抗干擾弱串行---逐位順序傳輸。速度慢,距離遠(yuǎn),占引腳少,抗干擾強(qiáng)

串行通信須遵守通信協(xié)議嵌入式系統(tǒng)中,串行通信------一般特指SCI與RS232芯片連接的通信但還有眾多串行通信方式

FreescaleMCU通常集成:

SCI---SerialCommunicationInterfaceSPI---SerialPeripheralInterface(Motorola推出)CAN---ControlAreaNetwork(Motorola推出)I2C---InterIntegratedCircuit(philips推出)LIN---LocalInterconnectNetwork

(Motorola推出)

USB---UniversalSerialBus

8.1.1SCI串行通信規(guī)范

SCI串行通信---異步通信,最常用、最經(jīng)典;SCI基本概念:1、異步串行通信的格式(NRZ,8位或9位,異步通信:每一數(shù)據(jù)塊的字符以起始位“0”表示開始;停止位“1”表示結(jié)束)2.串行通信的波特率定義:每秒內(nèi)傳送的位數(shù)單位:b/s或bps常用:1200bps、4800bps、9600bps、19200bps……3.奇偶校驗(yàn)奇校驗(yàn):校驗(yàn)位為0或1,使得幀數(shù)據(jù)中1的數(shù)目是奇數(shù)偶校驗(yàn):校驗(yàn)位為0或1,使得幀數(shù)據(jù)中1的數(shù)目是偶數(shù)4.串行通信的傳輸方式單工:1根數(shù)據(jù)線全雙工:2根數(shù)據(jù)線(常用)半雙工:1根數(shù)據(jù)線

TXDRXDMCUMCUTXDRXDGNDGND5.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之間無(wú)需)

7.SCI通信的基本工作原理接收時(shí),把外部單線輸入的串行數(shù)據(jù)變成1個(gè)字節(jié)的并行數(shù)據(jù)送入MCU發(fā)送時(shí),把需要發(fā)送的1個(gè)字節(jié)的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)單線輸出MCU與PC機(jī)串行通信電路8.1.2S12(X)SCI串行通信接口的功能與設(shè)置

S12XS128集成2個(gè)SCI串行通信模塊,內(nèi)部結(jié)構(gòu)如圖8-4;特點(diǎn):雙線全雙工串行標(biāo)準(zhǔn)NRZ格式可硬件自動(dòng)生成奇偶校驗(yàn)位獨(dú)立的波特率產(chǎn)生邏輯,13位波特率設(shè)置8位或9位數(shù)據(jù)格式獨(dú)立的發(fā)送器和接收器允許控制位中斷驅(qū)動(dòng)機(jī)制,方便調(diào)試可監(jiān)視發(fā)送器的輸出,進(jìn)行通信自診斷SCI模塊引腳復(fù)用:SCI0(RXD,TXD)

PS0,PS1SCI1(RXD,TXD)

PS2,PS3SCI的寄存器設(shè)置

(1)SCI波特率寄存器---SCIxBDH、SCIxBDL

(共16位,13位有效)波特率計(jì)算公式:波特率=總線頻率/(16xBR),編程時(shí)按16位送數(shù),如:

LDX#13STXSCI0BD;2MHz/(16x13)=9600bpsBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0\\\SBR12SBR11SBR10SBR9SBR8高8位SCIBDHBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SBR7SBR6SBR5SBR4SBR3SBR2SBR1SBR0低8位SCIBDL(2)SCI控制寄存器---SCIxCR1、SCIxCR2(3)SCI狀態(tài)寄存器---SCIxSR1Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LOOPSSCISWARSRCMWAKEILTPEPTSCICR1Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TIETCIERIEILIETERERWUSBKSCICR2舉例:設(shè)置允許SCI、正常碼輸出、8位數(shù)據(jù)、無(wú)奇偶校驗(yàn)

SCI0CR1=0x00;舉例:設(shè)置禁止中斷、允許發(fā)送、允許接收,查詢方式收發(fā)

SCI0CR2=0x0C;Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0TDRETCRDRFIDLEORNFFEPF常用:TDRE:發(fā)送寄存器空標(biāo)志。1=可以發(fā)送數(shù)據(jù);0=不可以發(fā)送數(shù)據(jù),需等待

RDRF:接收數(shù)據(jù)滿標(biāo)志。1=可以取出數(shù)據(jù);0=不可以取出數(shù)據(jù),需等待(4)SCI數(shù)據(jù)寄存器---SCIxDRH、SCIxDRLBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0R8T8\\\\\\高位SCIDRHBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0R7/T7R6/T6R5/T5R4/T4R3/T3R2/T2R1/T1R0/T0低位SCIDRLR8:接收位8。寫無(wú)效,9位數(shù)據(jù)模式時(shí),該位是從串行數(shù)據(jù)流中接收的第9位T8:發(fā)送位8。可讀寫,9位數(shù)據(jù)模式時(shí),該位是送到串行數(shù)據(jù)流的第9位R7~R0:接收數(shù)據(jù)位7~0。T7~T0:發(fā)送數(shù)據(jù)位7~0。

注:無(wú)校驗(yàn)位時(shí),只使用低位SCIxDRL(即SCI0DRL或SCI1DRL)

SCI串行通信接口的應(yīng)用程序

基本編制方法:

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

2、發(fā)送數(shù)據(jù):先判斷是否可以發(fā)送數(shù)據(jù),可以時(shí)再發(fā)送

3、接收數(shù)據(jù):先判斷是否可以接收數(shù)據(jù),可以時(shí)再接收【實(shí)例】查詢方式的SCI串行口收發(fā)數(shù)據(jù)。(可連接PC機(jī))思考:可能的問題?循環(huán)中檢測(cè),消耗CPU改造為中斷方式接收【例8-2】MCU中斷響應(yīng)SCI接收,將接收到的數(shù)據(jù)依次存入內(nèi)存中,當(dāng)接收到一組數(shù)據(jù)后通過SCI發(fā)送回送應(yīng)答碼及所接收數(shù)據(jù)。fBus=8MHz。SCI雙方通信約定:19200bps波特率、8位數(shù)據(jù)、無(wú)校驗(yàn)位。

連接信號(hào)線:

1個(gè)時(shí)鐘(SCK)2個(gè)數(shù)據(jù)信號(hào)(MISO,MOSI)1個(gè)從機(jī)選擇信號(hào)(SS)8.2SPI串行通信接口

SPI(SerialPeripheralInterface)---串行外設(shè)接口,一種同步串行通信系統(tǒng),即收、發(fā)雙方共享同一個(gè)時(shí)鐘信號(hào)。SPI通信原理:SPI以主從方式工作,這種模式通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備,需要4根線,事實(shí)上3根也可以(單向傳輸時(shí))

S12(X)SPI模塊的內(nèi)部組成

如圖8-5,主要包括:

8位移位寄存器、時(shí)鐘控制邏輯、引腳控制邏輯、SPI控制邏輯、分頻器、波特率寄存器、狀態(tài)寄存器、SPI控制寄存器。

其中:總線時(shí)鐘經(jīng)波特率寄存器進(jìn)行分頻選擇后作為SPI時(shí)鐘源,核心是8位移位寄存器,在SCK的作用下,數(shù)據(jù)寄存器的數(shù)據(jù)從8位移位寄存器移出或移入。控制寄存器負(fù)責(zé)控制SPI工作方式,狀態(tài)寄存器負(fù)責(zé)記錄SPI工作狀態(tài)。SPI模塊的外部引腳當(dāng)SPI模塊使能時(shí),S口的PS4~PS7變?yōu)镾PI0的MISO、MOSI、SCK、SS引腳:(SPI1與PP0~PP3復(fù)用)MISO(MasterIn/SlaveOut):主機(jī)入/從機(jī)出。MOSI(MasterOut/SlaveIn):主機(jī)出/從機(jī)入。SCK(SerialClock):同步串行時(shí)鐘。做從機(jī)時(shí)為輸入,主機(jī)時(shí)輸出SS(SlaveSelect):從機(jī)選擇。做主機(jī)時(shí)須接高;做從機(jī)時(shí)低選通SPI工作模式

3種:主機(jī)模式從機(jī)模式雙工模式SPI寄存器地址寄存器名稱與縮寫訪問權(quán)限基本功能SPI0SPI1$00D8$00F0控制寄存器1(SPICR1)讀/寫設(shè)置SPI使能、中斷、主從模式$00D9$00F1控制寄存器2(SPICR2)讀/寫設(shè)置工作模式$00DA$00F2波特率寄存器(SPIBR)讀/寫設(shè)置波特率$00DB$00F3狀態(tài)寄存器(SPISR)只讀各個(gè)狀態(tài)、標(biāo)志位$00CD$00F5數(shù)據(jù)寄存器(SPIDR)讀/寫收發(fā)的數(shù)據(jù)注:由于有兩個(gè)串行外設(shè)接口(SPI0/SPI1),編程使用時(shí),寄存器名稱中SPI改為SPIx,x=0,1。

SPI寄存器具體定義見書,不確定時(shí)用默認(rèn);用時(shí)查對(duì)。編程基本方法:1、初始化

2、發(fā)送或接收1個(gè)字節(jié)

【例8-2】SPI輸出控制的跑馬燈。(74LS164:串入并出)

使用SPI,節(jié)省MCU的引腳,但須增加外接移位寄存器?!纠?-3】SPI輸入的開關(guān)檢測(cè)。(74LS165:并入串出)程序略…

參考程序片段:SPI接口還方便于:對(duì)一些具有SPI接口能力的芯片可以直接連接通信,如D/A轉(zhuǎn)換芯片TLC5615、語(yǔ)音芯片ISD1760等。本章習(xí)題:SC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論