單片機原理及應用:第6章 單片機串行通信_第1頁
單片機原理及應用:第6章 單片機串行通信_第2頁
單片機原理及應用:第6章 單片機串行通信_第3頁
單片機原理及應用:第6章 單片機串行通信_第4頁
單片機原理及應用:第6章 單片機串行通信_第5頁
已閱讀5頁,還剩41頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章單片機串行通信串行通信基礎知識單片機串行口串口程序設計I2C、SPI通信接口串行通信串行通信基礎知識并行通信與串行通信串行通信基礎知識異步串行通信的特點:數據的傳送以“Frame”為一個基本單位;

數據的傳送可以是不連續的。異步串行通信和同步串行通信串行通信基礎知識同步通信時A、B雙方使用同一時鐘信號驅動。異步通信時A、B雙方使用各自的時鐘信號驅動,但時鐘信號的頻率相同。串行通信基礎知識串行通信數據傳送方向串行通信基礎知識串行通信數據傳送方向串行通信基礎知識單位:bps(bitpersecond)定義:每秒鐘傳送的二進制位數。在計算機系統中也稱為波特率。

數據位寬Td=1/Baudrate

Baudrate:4800,9600,19200,38400,57600,115200

Baudrate=9600bps對應于一個數據位寬約為104us。比特率(Baudrate)串行通信基礎知識數據校驗方法奇偶校驗法:比對收、發雙方的校驗位是否一致。有奇校驗和偶校驗兩種。校驗過程是針對單個字節的。只能檢查部分錯誤,當一個字節中同時有偶數個bit出錯時,無效。當發送數據量較大時,發送的校驗信息量也會較大。校驗和方法:比對收、發雙方的checkSUM是否相同。校驗是針對一個數據塊的。(特列情況是一個字節)可以發現一個字節中多個bit同時出錯的問題。校驗信息量小,通常采取1或2個字節就可。

串行通信基礎知識RS232C是美國電子工業協會1962年公布,1969年修訂的通用標準串行接口標準。信號線25芯,22根信號線,常用9根線。最簡方式3根線RXD:數據接收線TXD:數據發送線GND:地線

例如PC機上的串口COM1、COM2

電平制采用負邏輯,對應電平如下:1:

-3V~-15V0:

+3V~+15VRS232C簡介串行通信基礎知識常用RS232C總線驅動器及連線方式

單片機------單片機(不采用總線驅動器,適用于近距離)串行通信基礎知識常用RS232C總線驅動器及連線方式單片機------單片機(采用總線驅動器,適用于較遠距離,15m以內)串行通信基礎知識串行通信基礎知識單片機串行口串口程序設計I2C、SPI通信接口串行通信單片機串行接口基本特征一個串行I/O端口,通過引腳RXD(P3.0)和TXD(P3.1)與外設進行全雙工的串行異步通信。4種工作方式2個控制寄存器,用來設置工作方式、發送接收狀態、特征位、波特率等。一個數據寄存器SBUF作為接收發送的數據緩沖基本特征P3.0是串行數據接收端RXD,P3.1是串行數據發送端TXD。串行接口的結構由串行接口控制電路、發送電路和接收電路3部分組成。發送電路由發送緩沖器(SBUF)、發送控制電路組成,用于串行接口的發送。接收電路由接收緩沖器(SBUF)、接收控制電路組成,用于串行接口的接收。兩個數據緩沖器(SBUF)在物理上相互獨立,在邏輯上卻占用同一字節地址99H。單片機串行接口單片機串行接口發送部分的結構CLKCLK信號來源于T1的溢出信號單片機串行接口接收部分的結構CLK數據轉存到SBUF的前提:RI=0.串行口控制寄存器--SCONSM0SM1SM2RENTB8RB8TIRI串行口接收中斷標志串行口工作方式設置:00~11:方式0~方式3方式2和方式3的多機通信特征位允許串行接收位:1:允許;0:禁止接收到的第9位數據要發送的第9位數據串行口發送中斷標志單片機串行接口電源控制寄存器--PCONSMODNANANANANANANA波特率加倍控制位1:加倍;0:不加倍單片機串行接口單片機串行接口方式0單片機串行接口方式1,8位UART模式單片機串行接口方式2,3:9位UART模式單片機串行接口應用特點兩個中斷標志,RI用于接收,TI用于發送。發送/接收前都必須對RI/TI清零,一幀數據發送/接收后,RI/TI自動置1,如要再發送/接收,必須用軟件清零。方式0和1:數據發送/接收完成后,置位RI/TI,請求中斷。方式2和3:數據接收完成后,視SM2和RB8的狀態確定RI和是否請求中斷。SM2RB8接收中斷狀態與標志00激活RI,引起中斷01激活RI,引起中斷10不激活RI,不引起中斷11激活RI,引起中斷單片機串行接口串行通信實現要點4種工作方式的特點是什么?分別應用于什么場合?方式0:并串轉換利用串口擴展并口方式0,2的波特率固定方式1,3的波特率可通過T1,T2(52系列)設定多個值選取原則:采用奇偶校驗時選用方式2或3,9bitUART不采用奇偶校驗時選用方式1,8bitUART進行多級通信時選用方式2或3,9bitUART單片機串行接口串行通信實現要點如何啟動發送和接收過程?發送:MOVSBUF,#0AAH接收:偵測到RXD端1→0的跳變首先移出或發送的是D0,還是D7?首先移出D0位(9AH=10011010B)在接收數據過程中采用了什么措施提供可靠性?對數據進行三次采樣單片機串行接口串行通信實現要點TI標志和RI標志何時會自動置1?RI置1的時間和條件:SM2=0時:RI=0,不論第九位數據為0或為1,RI均置1,數據送入SBUFSM2=1時:RI=0,且當第九位數據為1時,才置RI為1,數據送入SBUFTI置1的時間和條件:數據發送完畢。哪些情況下傳送的數據會丟失?RI標志未及時清零REN未置1單片機串行接口串行通信基礎知識單片機串行口串口程序設計I2C、SPI通信接口串行通信串口程序設計波特率計算串口程序設計串口程序設計例:fosc=6MHz,SMOD=1,波特率=9600bps,求T1的初值解:T1的分頻值N有:

N=6000÷9.6÷12÷16=3.255

取N=3

則有TH1=0FDH,TL1=0FDH

實際波特率

=(2SMOD/32)*((fosc/12)/(256-X))=500K/16/3=10417bps串口程序設計工作方式選擇方式1:8位方式3:9位(雙機通信中可以適用奇偶檢驗方式)方式1,方式3的波特率可有通過T1定時器來設定,并改變。串口程序設計例2:預用51單片機的UART傳送數據,要求采用偶校驗方法,波特率為9600bps,試選擇UART的工作方式,并寫出初始化代碼。(fosc=6MHz)串口程序設計查詢方式下數據的收發(8位UART)發送:MOVSBUF,#0AAHJNBTI,$CLRTI接收:JNBRI,$CLRRIMOVA,SBUF串口程序設計查詢方式下數據的收發

(采用9位UART傳送奇偶校驗位)發送:MOVA,#55HMOVC,PMOVTB8,CMOVSBUF,AJNBTI,$CLRTI接收:JNBRI,$CLRRIMOV

溫馨提示

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

評論

0/150

提交評論