<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

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

h1654155282.3538 ? 來源:網絡整理 ? 2018-04-11 16:04 ? 次閱讀

單片機簡介

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

單片機串口通信有哪些

1、SPI

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

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

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

2、USART

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

3、I2C

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

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

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

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

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

(1)使用串口直通線。

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

(2)使用串口交叉線。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    關注

    6008

    文章

    44075

    瀏覽量

    622792
  • uart
    +關注

    關注

    22

    文章

    1162

    瀏覽量

    100202
收藏 人收藏

    評論

    相關推薦

    請問有CYBLE-022001-00的示意圖嗎?

    你好,我在哪里可以找到例子的示意圖?特別是我正在尋找與UART通信的主機微控制器的連接。此外,我正在尋找一個描述主機板正確布局的文檔。提前感謝
    發表于 09-09 11:42

    氯離子結構示意圖和鈉離子結構示意圖

    氯離子結構示意圖和鈉離子結構示意圖
    發表于 05-28 22:34 ?5.4w次閱讀
    氯離子結構<b class='flag-5'>示意圖</b>和鈉離子結構<b class='flag-5'>示意圖</b>

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

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

    飛機示意圖

    飛機示意圖
    發表于 05-26 15:47 ?2272次閱讀

    失會聚示意圖

    失會聚示意圖
    發表于 07-31 12:13 ?1034次閱讀

    順序傳輸制示意圖

    順序傳輸制示意圖
    發表于 07-31 12:18 ?851次閱讀

    混合動力汽車示意圖

    混合動力汽車示意圖插入式混合動力汽車結構示意圖
    發表于 11-21 14:45 ?2005次閱讀

    單片機的模塊功能示意圖

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

    5X35023 參考示意圖

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

    R2A20134EVB管示意圖

    R2A20134EVB管示意圖
    發表于 03-17 19:19 ?0次下載
    R2A20134EVB管<b class='flag-5'>示意圖</b>

    VersaClock III 評估板示意圖s

    VersaClock III 評估板示意圖s
    發表于 04-12 18:35 ?0次下載
    VersaClock III 評估板<b class='flag-5'>示意圖</b>s

    9FGV1006 參考示意圖

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

    9DBL0455 參考示意圖

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

    5X35023 參考示意圖

    5X35023 參考示意圖
    發表于 07-05 19:54 ?0次下載
    5X35023 參考<b class='flag-5'>示意圖</b>

    9DBL06xx 參考示意圖

    9DBL06xx 參考示意圖
    發表于 07-06 19:23 ?0次下載
    9DBL06xx 參考<b class='flag-5'>示意圖</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>