單片機原理與應(yīng)用 第六章單片機串行通信_第1頁
單片機原理與應(yīng)用 第六章單片機串行通信_第2頁
單片機原理與應(yīng)用 第六章單片機串行通信_第3頁
單片機原理與應(yīng)用 第六章單片機串行通信_第4頁
單片機原理與應(yīng)用 第六章單片機串行通信_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

數(shù)據(jù)位寬Td=1/Baudrate

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

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

串行通信基礎(chǔ)知識數(shù)據(jù)校驗方法奇偶校驗法基本思想:依據(jù)偶校驗或奇校驗原則,比較發(fā)送方和接收方的校驗位是否相同。偶校驗:數(shù)據(jù)區(qū)與檢驗位中1的總數(shù)為偶數(shù)。奇校驗:數(shù)據(jù)區(qū)與檢驗位中1的總數(shù)為奇數(shù)。缺點:每次都需要傳送檢驗位,另外,不能監(jiān)測偶數(shù)個錯誤。串行通信基礎(chǔ)知識數(shù)據(jù)校驗方法校驗和方法的基本原理發(fā)送方A,接收方B分別計算數(shù)據(jù)塊的累加和;A方將校驗和(SUMS)發(fā)給B方;B方比較雙方計算的校驗和是否一致特點:檢驗效率高,校驗和只需要在數(shù)據(jù)塊發(fā)送完畢后發(fā)送一次,不需要多次發(fā)送??梢园l(fā)現(xiàn)偶數(shù)個bit出錯的問題。串行通信基礎(chǔ)知識RS232C是美國電子工業(yè)協(xié)會1962年公布,1969年修訂的通用標準串行接口標準。信號線25芯,22根信號線,常用9根線。最簡方式3根線RXD:數(shù)據(jù)接收線TXD:數(shù)據(jù)發(fā)送線GND:地線

例如PC機上的串口COM1、COM2

電平制采用負邏輯,對應(yīng)電平如下:1:

-3V~-15V0:

+3V~+15VRS232C簡介DB-9連接器串行通信基礎(chǔ)知識常用RS232C總線驅(qū)動器及連線方式

單片機------單片機(不采用總線驅(qū)動器,適用于近距離)串行通信基礎(chǔ)知識常用RS232C總線驅(qū)動器及連線方式單片機------單片機(采用總線驅(qū)動器,適用于較遠距離,15m以內(nèi))TTL/CMOS電平制RS232電平制串行通信基礎(chǔ)知識串行通信基礎(chǔ)知識特性RS-232CRS-485傳輸距離

距離短15米(19200bps)距離遠1.2km(10Mbps)傳輸速率20kbps10Mbps數(shù)據(jù)傳送方向全雙工半雙工抗干擾能力不能抑制共模干擾能抑制共模干擾通信方式點對點通信可以組網(wǎng)多機通信信號表達方式使用絕對電壓表示邏輯使用差分信號,利用電壓差表示邏輯信號線3線制2線制RS-232C與RS-485的區(qū)別串行通信基礎(chǔ)知識RS232使用絕對電壓表示邏輯(如使用-12V表示邏輯1,12V表示邏輯0),支持全雙工方式,實現(xiàn)通信最少要3條通信線(RX,TX,GND),因為使用絕對電壓表示邏輯,由于干擾,導線電阻等原因,通訊距離不遠,15m以內(nèi)(波特率為19200bps)。通訊距離越遠,可支持的波特率越低。主要用于點對點通信(雙機通信)。RS422在RS232后推出,使用差分電平表示邏輯,就是兩根線的電壓差表示邏輯,支持全雙工方式,實現(xiàn)通信需要4根通信線

(發(fā)送線:T+,T-;接收線:R+,R-)。通訊距離可達1.2km。通訊距離越遠,波特率越低。RS485在通信距離,速度,多機通信方面,均為較大優(yōu)勢,廣泛用于工業(yè)測控領(lǐng)域。在RS422后推出,使用差分電平表示邏輯,可以有效減小共模干擾,主要的差別是RS485是半雙工的,因此采用2根通信線(A+,B-)實現(xiàn)通信。通訊距離可達1.2km。最大通信速率可達10Mbps。支持多機通信模式,可以組網(wǎng)構(gòu)成分布式網(wǎng)絡(luò)。串行通信基礎(chǔ)知識USB轉(zhuǎn)RS232連接器串行通信基礎(chǔ)知識串行通信基礎(chǔ)知識單片機串行口串口程序設(shè)計I2C、SPI通信接口串行通信單片機串行接口基本特征一個串行I/O端口,通過引腳RXD(P3.0)和TXD(P3.1)與外設(shè)進行全雙工的串行異步通信。4種工作方式2個控制寄存器,用來設(shè)置工作方式、發(fā)送接收狀態(tài)、特征位、波特率等。一個數(shù)據(jù)寄存器SBUF作為接收發(fā)送的數(shù)據(jù)緩沖基本特征P3.0是串行數(shù)據(jù)接收端RXD,P3.1是串行數(shù)據(jù)發(fā)送端TXD。串行接口的結(jié)構(gòu)由串行接口控制電路、發(fā)送電路和接收電路3部分組成。發(fā)送電路由發(fā)送緩沖器(SBUF)、發(fā)送控制電路組成,用于串行接口的發(fā)送。接收電路由接收緩沖器(SBUF)、接收控制電路組成,用于串行接口的接收。兩個數(shù)據(jù)緩沖器(SBUF)在物理上相互獨立,在邏輯上卻占用同一字節(jié)地址99H。單片機串行接口單片機串行接口發(fā)送部分的結(jié)構(gòu)CLKCLK信號來源于T1的溢出信號單片機串行接口接收部分的結(jié)構(gòu)CLK數(shù)據(jù)轉(zhuǎn)存到SBUF的前提:RI=0.UART串行口控制寄存器--SCONSM0SM1SM2RENTB8RB8TIRI串行口接收中斷標志串行口工作方式設(shè)置:00~11:方式0~方式3方式2和方式3的多機通信特征位允許串行接收位:1:允許;0:禁止接收到的第9位數(shù)據(jù)要發(fā)送的第9位數(shù)據(jù)串行口發(fā)送中斷標志單片機串行接口電源控制寄存器--PCONSMODNANANANANANANA波特率加倍控制位1:加倍;0:不加倍單片機串行接口單片機串行接口方式0單片機串行接口理解:在方式0中,TXD是時鐘線,頻率固定,是fosc/12;RXD是數(shù)據(jù)線,數(shù)據(jù)的發(fā)送和接收是分時進行的。方式1,8位UART模式單片機串行接口方式2,3:9位UART模式單片機串行接口應(yīng)用特點兩個中斷標志,RI用于接收,TI用于發(fā)送。發(fā)送/接收前都必須對RI/TI清零,一幀數(shù)據(jù)發(fā)送/接收后,RI/TI自動置1,如要再發(fā)送/接收,必須用軟件清零。方式0和1:數(shù)據(jù)發(fā)送/接收完成后,置位RI/TI,請求中斷。方式2和3:數(shù)據(jù)接收完成后,視SM2和RB8的狀態(tài)確定RI和是否請求中斷。SM2RB8接收中斷狀態(tài)與標志00激活RI,引起中斷01激活RI,引起中斷10不激活RI,不引起中斷11激活RI,引起中斷單片機串行接口串行通信實現(xiàn)要點4種工作方式的特點是什么?分別應(yīng)用于什么場合?方式0:并串轉(zhuǎn)換利用串口擴展并口方式0,2的波特率固定方式1,3的波特率可通過T1,T2(52系列)設(shè)定多個值選取原則:采用奇偶校驗時選用方式2或3,9bitUART不采用奇偶校驗時選用方式1,8bitUART進行多機通信時選用方式2或3,9bitUART單片機串行接口串行通信實現(xiàn)要點如何啟動發(fā)送和接收過程?發(fā)送:MOVSBUF,#0AAH接收:偵測到RXD端1→0的跳變首先移出或發(fā)送的是D0,還是D7?首先移出D0位(9AH=10011010B)在接收數(shù)據(jù)過程中采用了什么措施提供可靠性?對數(shù)據(jù)進行三次采樣單片機串行接口串行通信實現(xiàn)要點TI標志和RI標志何時會自動置1?RI置1的時間和條件:SM2=0時:RI=0,不論第九位數(shù)據(jù)為0或為1,RI均置1,數(shù)據(jù)送入SBUFSM2=1時:RI=0,且當?shù)诰盼粩?shù)據(jù)為1時,才置RI為1,數(shù)據(jù)送入SBUFTI置1的時間和條件:數(shù)據(jù)發(fā)送完畢。哪些情況下傳送的數(shù)據(jù)會丟失?RI標志未及時清零REN未置1單片機串行接口串行通信基礎(chǔ)知識單片機串行口串口程序設(shè)計I2C、SPI通信接口串行通信串口程序設(shè)計TTL/CMOS電平制RS232電平制TTL/CMOS電平制使用雙絞線提高可靠性雙機通信硬件實現(xiàn)波特率計算串口程序設(shè)計這里,將T1當做分頻器使用。若T1的初值為N,則分頻值=256-N這里,T1是一個3分頻器。串口程序設(shè)計串口程序設(shè)計波特率與系統(tǒng)晶振頻率、T1初始值的關(guān)系

波特率也是UART硬件結(jié)構(gòu)移位發(fā)送(接收)數(shù)據(jù)的工作時鐘信號頻率。例: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串口程序設(shè)計工作方式選擇方式1:8位方式3:9位(雙機通信中可以使用奇偶檢驗方式)方式1,方式3的波特率可有通過T1定時器來設(shè)定,并改變。串口程序設(shè)計例:預(yù)用51單片機的UART傳送數(shù)據(jù),要求采用偶校驗方法,

波特率為9600bps,試選擇UART的工作方式,

并寫出初始化代碼。(fosc=6MHz)串口程序設(shè)計查詢方式下數(shù)據(jù)的收發(fā)(8位UART)發(fā)送:MOVSBUF,#0AAHJNBTI,$CLRTI接收:JNBRI,$MOVA,SBUFCLRRI串口程序設(shè)計查詢方式下數(shù)據(jù)的收發(fā)

(采用9位UART傳送奇偶校驗位)發(fā)送:MOVA,#55HMOVC,PMOVTB8,CMOVSBUF,AJNBTI,$CLRTI接收:JNBRI,$MOVA,SBUFMOVC,R8BCLRRI串口程序設(shè)計---奇偶校驗方法應(yīng)用例:閱讀以下代碼段,歸納程序的功能,并說明R0,R7的作用。串口程序設(shè)計---奇偶校驗方法應(yīng)用理解程序:R0:數(shù)據(jù)緩存區(qū)指針。通過R0指針可以讀取要發(fā)送的數(shù)據(jù)。R7:存放數(shù)據(jù)長度。通過改變R7的值,可以改變要發(fā)送的數(shù)據(jù)個數(shù)。串口程序設(shè)計---奇偶校驗方法應(yīng)用串口程序設(shè)計---校驗和方法應(yīng)用理解程序:R0:數(shù)據(jù)緩存區(qū)指針。R2:存放數(shù)據(jù)校驗和。特點:一邊發(fā)送,一邊計算校驗和。串口程序設(shè)計---校驗和方法應(yīng)用聯(lián)絡(luò)的必要性及其實現(xiàn)串口程序設(shè)計雙機通訊設(shè)計實例串口程序設(shè)計串口程序設(shè)計串口程序設(shè)計串口程序設(shè)計流程圖串口程序設(shè)計幀格式不統(tǒng)一

:雙方校驗方式不一致(無校驗,偶校驗,奇校驗)

波特率不統(tǒng)一

:雙方的波特率不同。實際波特率存在誤差(單片機與PC機通信時需要特別注意)雙機通訊中的常見問題

系統(tǒng)晶振頻率選擇11.0592MHz的優(yōu)勢在哪里?fosc(MHz)SMODT1的參數(shù)標稱波特率實際波特率誤差NTH1(TL1)1203FDH9600104178.5%16FAH9600104178.5%11.059216FAH960096000

實際系統(tǒng)中波特率誤差要控制在3%以內(nèi)!串口程序設(shè)計正確使用波特率發(fā)生器T0不能作波特率發(fā)生器T1可以作波特率發(fā)生器T1多選用定時方式2,因為可以自動裝載初值。T1也可選為定時方式1,但必須在T1中斷程序中對T1進行重新賦值。(否則波特率就不對了!)52系列中T2也可作為波特率發(fā)生器T2有16位自動裝載功能,可以支持的更高的波特率,實際波特率可以配置得更準確,波特率誤差可以更小。

串口程序設(shè)計多機通信的基本思想1#2#N#串口程序設(shè)計多機通信的基本思想系統(tǒng)中主機、從機均采用9位UART模式,利用TB8區(qū)分地址幀和數(shù)據(jù)幀地址幀:TB8=1,數(shù)據(jù)幀:TB8=0,利用特性:SM2=1時,接收方的UART要求RB8=1,

才能激活RI,才能觸發(fā)串口中斷。主機首先發(fā)“地址幀”,即地址碼,也是要呼叫的從機ID號,此時置TB8=1。全體從機都會接收地址幀,并與自己的地址號(ID)比較,

若主機呼叫自己便回應(yīng),

并置SM2=0(切換到雙機通信模式),準備接收數(shù)據(jù)。主機若收到從機回應(yīng),便開始發(fā)送數(shù)據(jù),此時置TB8=0,連續(xù)發(fā)送數(shù)據(jù),

直到數(shù)據(jù)發(fā)送完畢。主從機一次通信結(jié)束后,主從機重置自己的SM2=1。

主機可以再次呼叫其它從機,并開始新的數(shù)據(jù)傳送過程。串行通信基礎(chǔ)知識單片機串行口串口程序設(shè)計I2C、SPI通信接口串行通信I2C:Inter-IntegratedCircuit,由Philips公司,80年代提出的同步串行總線。

波特率:0-400kbps。

雙線制,半雙工。

雙線指:時鐘線SCL和數(shù)據(jù)線SDAI2C總線I2C、SPI通信接口I2C總線I2C、SPI通信接口圖6.19I2C總線系統(tǒng)的基本結(jié)構(gòu)I2C、SPI通信接口SPI:Serialperipheralinterface,由Motoro

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論