在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51手記之標(biāo)準(zhǔn)51(四)

            51手記之標(biāo)準(zhǔn)51(四)

            作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
            51手記標(biāo)準(zhǔn)51---串行口

            1.串行通信基本方式:異步通信和同步通信

            本文引用地址:http://www.biyoush.com/article/201611/317147.htm

            1).異步通信方式——以“字符”為單位進(jìn)行傳送

            用一幀表示一個字符,一個字符包括4個部分

            起始位1位有效

            數(shù)據(jù)位5--8位

            奇偶校驗位1位

            停止位1位、1位半、2位“1”有效

            在異步通信時,通信雙方必須事先約定

            ①字符格式。雙方要事先約定數(shù)據(jù)位的位數(shù)、奇偶校驗形式及起始位和停止位的位數(shù);

            例如:用ASCⅡ碼通信,有效數(shù)據(jù)為7位,加一個奇偶校驗位、一個起始位和一個停止位共10位。當(dāng)然停止位也可以大于1位。

            ②波特率(Baud rate)。波特率就是傳送速率,即每秒傳送的二進(jìn)制位數(shù)。單位為bit/s或波特。

            2).同步通信方式

            異步通信由于要在每個數(shù)據(jù)前后附加起始位、停止位,每發(fā)送一個字符約有20%的附加數(shù)據(jù),占用了傳輸時間,降低了傳送效率

            同步通信則去掉每個數(shù)據(jù)的起始位和停止位,把要發(fā)送的數(shù)據(jù)按順序連接成一個數(shù)據(jù)塊,在數(shù)據(jù)塊的開頭附加1~2個同步字符,

            在數(shù)據(jù)塊的末尾加差錯校驗字符。同步通信的數(shù)據(jù)格式如圖7-2所示。在數(shù)據(jù)塊內(nèi)部,數(shù)據(jù)與數(shù)據(jù)之間沒有間隙。

            要求:發(fā)送和接收雙方要保持完全同步,所以,要求發(fā)送和接收設(shè)備必須使用同一時鐘。

            解決辦法:

            對于近距離通信:采用在傳輸線中增加一根時鐘信號線來解決。

            對于遠(yuǎn)距離通信:通過解調(diào)器從數(shù)據(jù)流中提取同步信號,用鎖相技術(shù)實現(xiàn)收、發(fā)頻率完全相同的時鐘信號。

            如上所述,異步通信技術(shù)較為簡單,應(yīng)用范圍廣;同步通信傳輸速率高,適用于高速率、大容量的數(shù)據(jù)通信,但硬件復(fù)雜。

            2.串行通信數(shù)據(jù)傳輸方式

            單工方式:數(shù)據(jù)傳送是單向的,一端為發(fā)送另一端為接收,只需一條數(shù)據(jù)線。

            半雙工方式:數(shù)據(jù)傳送是雙向的,A→B,B→A,同一時間只能做一個方向傳送,只需一條數(shù)據(jù)線。

            全雙工方式:數(shù)據(jù)傳送是雙向的,A、B兩端可同時發(fā)送,又可同時接收,需兩根數(shù)據(jù)線。


            MCS-51系列單片機(jī)有一個全雙工的串行口

            1.串行口結(jié)構(gòu)

            組成:發(fā)送數(shù)據(jù)緩沖器:只能寫入,不能讀出

            接收數(shù)據(jù)緩沖器:只能讀出,不能寫入

            發(fā)送控制器

            輸出控制門

            接收控制器

            輸入移位寄存器

            兩個專用寄存器SCON:存放串行口的控制和狀態(tài)信息

            PCON:改變串行通信波特率

            發(fā)送緩沖器和接收緩沖器兩個用同一符號SBUF,地址99H,用指令判斷選哪個

            MOV SBUF,A寫入;MOV A,SBUF讀出

            2.工作方式

            串行口有4種工作方式,由SCON中的SM0:SM1來定義。方式0時,SM2位(多機(jī)通訊控制位)必須為0。

            1)方式0

            發(fā)送數(shù)據(jù)緩沖器:只能寫入,不能讀出

            同步移位寄存器輸入輸出方式,常用于外接移位寄存器,以擴(kuò)展并行I/O口。

            RXD引腳——串行輸入/輸出

            TXD引腳——輸出同步移位脈沖

            8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。

            波特率固定為fosc/12。

            ①發(fā)送

            當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUF的指令時,產(chǎn)生一個正脈沖,串行口即把SBUF中的8位數(shù)據(jù)以fosc/12的固定波特率從RXD引腳串行輸出,低位在先, TXD引腳輸出同步移位脈沖,發(fā)送完8位數(shù)據(jù)置“1”中斷標(biāo)志位TI。

            ②接收

            方式0接收時,REN為串行口接收允許接收控制位,REN=0,禁止接收。REN=1,允許接收。當(dāng)CPU向串行口的SCON寄存器寫入控制字(置為方式0,并置“1”REN位,同時RI=0)時,產(chǎn)生一個正脈沖,串行口即開始接收數(shù)據(jù)。

            引腳RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號輸出端,接收器也以fosc/12的固定波特率采樣RXD引腳的數(shù)據(jù)信息,當(dāng)接收到8位數(shù)據(jù)時置“1”中斷標(biāo)志RI。表示一幀數(shù)據(jù)接收完畢,可進(jìn)行下一幀數(shù)據(jù)的接收。

            2)方式1

            8位異步收發(fā)通信。用于數(shù)據(jù)的串行發(fā)送和接收。TXD腳和RXD腳分別用于發(fā)送和接收數(shù)據(jù)。

            方式1收發(fā)一幀的數(shù)據(jù)為10位,1個起始位(0),8個數(shù)據(jù)位,1個停止位(1),先發(fā)送或接收最低位。

            ①發(fā)送

            方式1輸出時,數(shù)據(jù)位由TXD端輸出,

            當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動發(fā)送。圖中TX時鐘的頻率就是發(fā)送的波特率。發(fā)送開始時,內(nèi)部發(fā)送控制信號變SEND*變?yōu)橛行В瑢⑵鹗嘉幌騎XD輸出。

            此后,每經(jīng)過一個TX時鐘周期,便產(chǎn)生一個移位脈沖,并由TXD輸出一個數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,置“1”中斷標(biāo)志位TI,然后SEND*信號失效。

            ②接收

            前提REN=1;數(shù)據(jù)從RXD(P3.0)引腳輸入。當(dāng)檢測到起始位的負(fù)跳變時,則開始接收。

            定時控制信號有兩種(如圖所示),一種是接收移位時鐘(RX時鐘),它的頻率和傳送的波特率相同。另一種是位檢測器采樣脈沖,它的頻率是RX時鐘的16倍。也就是在1位數(shù)據(jù)期間,有16個采樣脈沖,以波特率的16倍的速率采樣RXD引腳狀態(tài),當(dāng)采樣到RXD端從1到0的跳變時就啟動檢測器,采用三中取二的原則,接收的值是3次連續(xù)采樣(第7、8、9個脈沖時采樣)取其中兩次相同的值,以確認(rèn)是否是真正的起始位(負(fù)跳變)的開始。

            當(dāng)一幀數(shù)據(jù)接收完畢以后,必須同時滿足以下兩個條件,這次接收才真正完成。

            a.RI=0,即上一幀數(shù)據(jù)接收完成時,RI=1發(fā)出的中斷請求已被響應(yīng),SBUF中的數(shù)據(jù)已被取走,說明“接收SBUF”已空。

            b.SM2=0或收到的停止位=1(方式1時,停止位已進(jìn)入RB8),則收到的數(shù)據(jù)裝入SBUF和RB8(RB8裝入停止位),且置“1”中斷標(biāo)志RI。

            若這兩個條件不同時滿足,收到的數(shù)據(jù)不能裝入SBUF,該幀數(shù)據(jù)將丟失。

            方式1波特率=(2SMOD/32)×定時器T1的溢出率=(2SMOD/32)/(256-TL1)

            3)方式2

            9位異步通信接口。每幀數(shù)據(jù)均為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控的第9位數(shù)據(jù)和1位停止位。

            方式2波特率=(2SMOD/64)×fosc

            ①發(fā)送

            發(fā)送前,先根據(jù)通訊協(xié)議由軟件設(shè)置TB8(例如,雙機(jī)通訊時的奇偶校驗位或多機(jī)通訊時的地址/數(shù)據(jù)的標(biāo)志位)。

            ②接收

            REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測邏輯采樣到RXD引腳從1到0的負(fù)跳變,并判斷起始位有效后,便開始接收一幀信息。在接收器完第9位數(shù)據(jù)后,需滿足以下兩個條件,才能將接收到的數(shù)據(jù)送入SBUF。

            a.RI=0,意味著接收緩沖器為空。

            b.SM2=0或接收到的第9位數(shù)據(jù)位RB8=1時。

            當(dāng)上述兩個條件滿足時,接收到的數(shù)據(jù)送入SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,并置“1”RI。若不滿足這兩個條件,接收的信息將被丟棄。

            4)方式3

            方式3為波特率可變的9位異步通訊方式,除波特率外,方式3和方式2相同。

            方式3波特率=(2SMOD/32)×定時器T1的溢出率=(2SMOD/32)/(256-TL1)

            3.多機(jī)通信

            串行口用于多機(jī)通信時必須使用方式2或方式3。

            由單片機(jī)構(gòu)成的多機(jī)系統(tǒng),常采用總線型主從式結(jié)構(gòu):在多個單片機(jī)組成的系統(tǒng)中,只有一個是主機(jī),其余是從機(jī),主機(jī)發(fā)送的信息可被各從機(jī)接收,而各從機(jī)發(fā)送的信息只有主機(jī)接收,從機(jī)與從機(jī)之間不能互相直接通信。

            主機(jī)的RXD與所有從機(jī)的TXD端相連,TXD與所有從機(jī)的RXD端相連。

            多機(jī)通信的實現(xiàn),主要靠主、從機(jī)正確地設(shè)置與判斷多機(jī)通信控制位SM2和發(fā)送、接收的第9位數(shù)據(jù)(TB8或RB8)。

            1)多機(jī)通信原理

            串行口控制寄存器SCON中的SM2位就是滿足這一條件而設(shè)置的多機(jī)通訊控制位。

            在串行口以方式2(或方式3)接收時:

            若SM2=1,表示允許多機(jī)通訊,這時出現(xiàn)兩種可能情況:

            ①接收到的第9位數(shù)據(jù)為1時,數(shù)據(jù)才裝入SBUF,并將中斷標(biāo)志RI置“1”,向CPU發(fā)出中斷請求;

            ②接收到的第9位數(shù)據(jù)為0時,則不產(chǎn)生中斷標(biāo)志,信息將拋棄。

            若SM2=0,則接收的第9位數(shù)據(jù)不論是0還是1,都產(chǎn)生RI=1中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUF中。

            當(dāng)主機(jī)給從機(jī)發(fā)送信息時,要根據(jù)發(fā)送信息的性質(zhì)來設(shè)置TB8,

            發(fā)送地址信號時,設(shè)置TB8=1,

            發(fā)送數(shù)據(jù)或命令時,設(shè)置TB8=0。

            當(dāng)從機(jī)的SM2為1時,該從機(jī)只接收地址幀(RB8位為1),對數(shù)據(jù)幀(RB8位為0)不予理睬。

            而當(dāng)SM2為0時,該從機(jī)接收所有發(fā)來的信息。

            2)多機(jī)通信過程

            ①令所有從機(jī)的SM2位置1,使它們處于只接收地址幀的狀態(tài)(即從機(jī)復(fù)位);

            ②主機(jī)發(fā)送一幀地址信息,其中包括8位地址,第9位(即TB8)為1,以表示發(fā)送的是地址;

            ③從機(jī)接收到地址幀后,各自中斷CPU,把接收到的地址與其本機(jī)地址作比較;

            ④地址相符的從機(jī)對SM2清0,準(zhǔn)備接收主機(jī)發(fā)來的數(shù)據(jù)/命令。地址不符的從機(jī)仍維持SM=1不變,對主機(jī)發(fā)來的數(shù)據(jù)幀不予理睬,直到主機(jī)發(fā)來新的地址幀;

            ⑤主機(jī)發(fā)送數(shù)據(jù)或控制信息(第9位為0)給被尋址的從機(jī);

            ⑥被尋址的從機(jī),因SM=0,可以接收主機(jī)發(fā)送過來的所有數(shù)據(jù)。當(dāng)從機(jī)接收數(shù)據(jù)結(jié)束時,置位SM2,返回接收地址幀狀態(tài)(復(fù)位狀態(tài));

            ⑦當(dāng)主機(jī)需改為與其他從機(jī)通信時,可再發(fā)出地址幀來呼叫其他從機(jī)。



            關(guān)鍵詞: 51手記標(biāo)準(zhǔn)5

            評論


            技術(shù)專區(qū)

            關(guān)閉