RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機之間UART通信示意圖分享

h1654155282.3538 ? 來源:網(wǎng)絡整理 ? 2018-04-11 16:04 ? 次閱讀

單片機簡介

單片機是一種集成電路芯片。它采用超大規(guī)模技術(shù)將具有數(shù)據(jù)處理能力的微處理器CPU)、存儲器(含程序存儲器ROM和數(shù)據(jù)存儲器RAM)、輸入、輸出接口電路(I/O接口)集成在同一塊芯片上,構(gòu)成一個即小巧又很完善的計算機硬件系統(tǒng),在單片機程序的控制下能準確、迅速、高效地完成程序設計者事先規(guī)定的任務。所以說,一片單片機芯片就具有了組成計算機的全部功能。

單片機串口通信有哪些

1、SPI

SPI允許單片機和外圍設備或者單片機之間高速同步數(shù)據(jù)傳輸,SPI可以有主機和從機模式之選,通信的主從機之間通過移位寄存器同時交換數(shù)據(jù)。目前自己用的以主機模式居多。SPI需要四線:SS,MISO,MOSI,SCK。

通信過程:在設置好SPI的工作模式:包括SCK頻率(數(shù)據(jù)傳輸速率),工作速度,主從模式,以及數(shù)據(jù)接收發(fā)送對應的時鐘極性。在主模式下,將SS拉低表示通信的開始,然后通過向SPI數(shù)據(jù)寄存器中寫入一字節(jié)的數(shù)據(jù)后自動啟動時鐘SCK開始進行一次通信,通信完成后會產(chǎn)生相應的中斷標志,標志一個字節(jié)數(shù)據(jù)的傳送完成。通信完成后將SS腳拉高,表示通信過程已經(jīng)結(jié)束。

注意SS引腳的設置:當設置為從機模式時,SS引腳應設置為輸入,拉低的時候SPI才能起作用,拉高的話是消極的SPI模式;在主機模式下,SS引腳可以設置,一般應設置為輸出,如果設置為輸入的話應保持為高,否則將不能進行正常的主機模式操作。

2、USART

USART的操作比較簡單,主要是設置波特率,數(shù)據(jù)格式,以及中斷允許位等,值得至于的是其USART IN SPI MODE,在SPI模式下的USART的操作跟SPI操作差不多,主要是Clock的設置,然后發(fā)送數(shù)據(jù)還是通過USART的中斷進行

3、I2C

I2C接口是簡單強大的通信接口,只需要兩根雙向總線(時鐘和數(shù)據(jù)線),SCL和SDA,即可實現(xiàn)一個主機和最多128個從機進行通信。模擬I2C接口的過程:啟動I2C,一般是在SCL為高時將SDA拉低啟動數(shù)據(jù)發(fā)送,SDA只有在SCL為低時才能拉高拉低有效,在SCL為高時拉高拉低SDA只是用于停止啟動I2C通信

兩個單片機之間UART串口通信

相信很多人都對單片機與計算機或者芯片通信時,RXD與TXD如何連接比較困惑。因為在一些電路圖中,有的是直連接法,有的是交叉接法,讓人有點摸不著頭腦。

首先需要明白兩個概念,就是DTEDCE。DTE是指數(shù)據(jù)終端設備,典型的DTE就是計算機和單片機。DCE是指數(shù)據(jù)通信設備,典型的DCE就是MODEM。RS232串口標準中的RXD和TXD都是站在DTE立場上的,而不是DCE。明白了這一點,再講下面的接線方法,就很好理解了。

單片機與計算機進行串口通信時,單片機的RXD接計算機的TXD,單片機的TXD接計算機的RXD。

(1)使用串口直通線。

設計電路時,單片機的RXD連接電路板DB9的TXD,單片機的TXD連接電路板DB9的RXD,具體實現(xiàn)可在232電平轉(zhuǎn)換芯片處反接。

(2)使用串口交叉線。

設計電路時,因為串口線已做交叉,單片機的RXD連接電路板DB9的RXD,單片機的TXD連接電路板DB9的TXD,均直連即可。

這就可以解釋為什么有的電路中使用直連接法,有的電路中使用交叉接法,就是因為使用的串口線不同。

單片機之間UART通信示意圖分享

通信按照基本類型可以分為并行通信和串行通信。并行通信時數(shù)據(jù)的各個位同時傳送,可以實現(xiàn)字節(jié)為單位通信,但是通信線多占用資源多,成本高。比如我們前邊用到的 P0 = 0xFE;一次給 P0 的 8 個 IO 口分別賦值,同時進行信號輸出,類似于有 8 個車道同時可以過去 8 輛車一樣,這種形式就是并行的,我們習慣上還稱 P0、P1、P2 和 P3 為 51 單片機的 4 組并行總線。

而串行通信,就如同一條車道,一次只能一輛車過去,如果一個 0xFE 這樣一個字節(jié)的數(shù)據(jù)要傳輸過去的話,假如低位在前高位在后的話,那發(fā)送方式就是 0-1-1-1-1-1-1-1-1,一位一位的發(fā)送出去的,要發(fā)送 8 次才能發(fā)送完一個字節(jié)。

STC89C52 有兩個引腳是專門用來做 UART 串行通信的,一個是 P3.0 一個是 P3.1,它們還分別有另外的名字叫做 RXD 和 TXD,由它們組成的通信接口就叫做串行接口,簡稱串口。用兩個單片機進行 UART 串口通信,基本的演示圖如圖 11-1 所示。

單片機之間UART通信示意圖分享

圖中,GND 表示單片機系統(tǒng)電源的參考地,TXD 是串行發(fā)送引腳,RXD 是串行接收引腳。兩個單片機之間要通信,首先電源基準得一樣,所以我們要把兩個單片機的 GND 相互連接起來,然后單片機 1 的 TXD 引腳接到單片機 2 的 RXD 引腳上,即此路為單片機 1 發(fā)送而單片機 2 接收的通道,單片機 1 的 RXD 引腳接到單片機 2 的 TXD 引腳上,即此路為單片機 2 發(fā)送而單片機 1 接收的通道。這個示意圖就體現(xiàn)了兩個單片機相互收發(fā)信息的過程。

當單片機 1 想給單片機 2 發(fā)送數(shù)據(jù)時,比如發(fā)送一個 0xE4 這個數(shù)據(jù),用二進制形式表示就是 0b11100100,在 UART 通信過程中,是低位先發(fā),高位后發(fā)的原則,那么就讓 TXD首先拉低電平,持續(xù)一段時間,發(fā)送一位 0,然后繼續(xù)拉低,再持續(xù)一段時間,又發(fā)送了一位 0,然后拉高電平,持續(xù)一段時間,發(fā)了一位 1??一直到把 8 位二進制數(shù)字 0b11100100全部發(fā)送完畢。這里就涉及到了一個問題,就是持續(xù)的這“一段時間”到底是多久?由此便引入了通信中的一個重要概念——波特率,也叫做比特率。

波特率就是發(fā)送二進制數(shù)據(jù)位的速率,習慣上用 baud 表示,即我們發(fā)送一位二進制數(shù)據(jù)的持續(xù)時間=1/baud。在通信之前,單片機 1 和單片機 2 首先都要明確的約定好它們之間的通信波特率,必須保持一致,收發(fā)雙方才能正常實現(xiàn)通信,這一點大家一定要記清楚。

約定好速度后,我們還要考慮第二個問題,數(shù)據(jù)什么時候是起始,什么時候是結(jié)束呢?

不管是提前接收還是延遲接收,數(shù)據(jù)都會接收錯誤。在 UART 通信的時候,一個字節(jié)是 8 位,規(guī)定當沒有通信信號發(fā)生時,通信線路保持高電平,當要發(fā)送數(shù)據(jù)之前,先發(fā)一位 0 表示起始位,然后發(fā)送 8 位數(shù)據(jù)位,數(shù)據(jù)位是先低后高的順序,數(shù)據(jù)位發(fā)完后再發(fā)一位 1 表示停止位。這樣本來要發(fā)送一個字節(jié)的 8 位數(shù)據(jù),而實際上我們一共發(fā)送了 10 位,多出來的兩位其中一位起始位,一位停止位。而接收方呢,原本一直保持的高電平,一旦檢測到了一位低電平,那就知道了要開始準備接收數(shù)據(jù)了,接收到 8 位數(shù)據(jù)位后,然后檢測到停止位,再準備下一個數(shù)據(jù)的接收。我們圖示看一下,如圖 11-2 所示。

單片機之間UART通信示意圖分享

圖 11-2 串口數(shù)據(jù)發(fā)送示意圖,實際上是一個時域示意圖,就是信號隨著時間變化的對應關(guān)系。比如在單片機的發(fā)送引腳上,左邊的是先發(fā)生的,右邊的是后發(fā)生的,數(shù)據(jù)位的切換時間就是波特率分之一秒,如果能夠理解時域的概念,后邊很多通信的時序圖就很容易理解了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634614
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1235

    瀏覽量

    101353
收藏 人收藏

    評論

    相關(guān)推薦

    光電開關(guān)檢測示意圖

    光電開關(guān)檢測示意圖
    發(fā)表于 12-16 15:09 ?18次下載

    氯離子結(jié)構(gòu)示意圖和鈉離子結(jié)構(gòu)示意圖

    氯離子結(jié)構(gòu)示意圖和鈉離子結(jié)構(gòu)示意圖
    發(fā)表于 05-28 22:34 ?5.5w次閱讀
    氯離子結(jié)構(gòu)<b class='flag-5'>示意圖</b>和鈉離子結(jié)構(gòu)<b class='flag-5'>示意圖</b>

    電腦鍵盤示意圖,計算機鍵盤示意圖

    電腦鍵盤示意圖,計算機鍵盤示意圖
    發(fā)表于 03-10 10:51 ?12.7w次閱讀

    飛機示意圖

    飛機示意圖
    發(fā)表于 05-26 15:47 ?2330次閱讀

    失會聚示意圖

    失會聚示意圖
    發(fā)表于 07-31 12:13 ?1089次閱讀

    順序傳輸制示意圖

    順序傳輸制示意圖
    發(fā)表于 07-31 12:18 ?890次閱讀

    混合動力汽車示意圖

    混合動力汽車示意圖插入式混合動力汽車結(jié)構(gòu)示意圖
    發(fā)表于 11-21 14:45 ?2077次閱讀

    單片機的模塊功能示意圖

    單片機的模塊功能示意圖!
    發(fā)表于 02-19 11:32 ?36次下載

    螺栓示意圖下載

    螺栓示意圖下載
    發(fā)表于 01-10 14:15 ?12次下載

    5X35023 參考示意圖

    5X35023 參考示意圖
    發(fā)表于 03-14 19:28 ?0次下載
    5X35023 參考<b class='flag-5'>示意圖</b>

    9ZX21901 參考示意圖

    9ZX21901 參考示意圖
    發(fā)表于 03-21 19:17 ?0次下載
    9ZX21901 參考<b class='flag-5'>示意圖</b>

    9ZX21201 參考示意圖

    9ZX21201 參考示意圖
    發(fā)表于 03-21 19:17 ?0次下載
    9ZX21201 參考<b class='flag-5'>示意圖</b>

    9FGV1006 參考示意圖

    9FGV1006 參考示意圖
    發(fā)表于 05-19 18:40 ?0次下載
    9FGV1006 參考<b class='flag-5'>示意圖</b>

    9DBL0455 參考示意圖

    9DBL0455 參考示意圖
    發(fā)表于 07-05 18:50 ?0次下載
    9DBL0455 參考<b class='flag-5'>示意圖</b>

    9FGV1004 參考示意圖

    9FGV1004 參考示意圖
    發(fā)表于 07-07 19:15 ?1次下載
    9FGV1004 參考<b class='flag-5'>示意圖</b>
    RM新时代网站-首页