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

2021-01-09 電子發燒友
  單片機簡介

  單片機是一種集成電路晶片。它採用超大規模技術將具有數據處理能力的微處理器(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如何連接比較困惑。因為在一些電路圖中,有的是直連接法,有的是交叉接法,讓人有點摸不著頭腦。

  首先需要明白兩個概念,就是DTE和DCE。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 所示。

  

  圖中,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 所示。

  

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

打開APP閱讀更多精彩內容

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

相關焦點

  • 淺談UART通信協議 UART接收數據時序設計
    淺談UART通信協議 UART接收數據時序設計 工程師3 發表於 2018-05-05 10:12:00 串口通信也是一個基礎實驗,是FPGA與電腦、單片機、DSP通信的一種最簡單的方案,對通信速率要求不高時可以選擇
  • 不同單片機之間的通信方式
    如果合理使用多種不同類型的單片機組合設計,可以得到極高靈活性與性能價格比,因此,多種異型單片機系統設計漸漸成為一種新的思路,但單片機之間的通信一直是困擾這種方法拓展的主要問題。 本文將分析比較幾種單片機之間的方式、難點,並提出一種解決方案。
  • 基於MPI協議的S7-300 PLC與單片機通信的實現
    MPI協議在PLC之間可組態為主/主協議或主/從協議。介紹了基於MPI協議的西門子S7-300 PLC與單片機實現數據通信的應用實例及其主要設置。西門子S7-300 PLC因其功能強、速度快、擴展靈活,在工業控制領域中佔有重要地位。
  • 分享一份通俗易懂的msp430單片機學習教程
    (6)分步驟學習單片機  學習使用單片機就是理解單片機硬體結構,在彙編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。
  • uart接口有什麼特點與功能
    詳細的說:   UART的特徵   一般uart控制器在嵌入式系統裡面都做在cpu一起,像飛思卡爾的IMX6晶片就是這樣,有多個uart控制器。比如調試gps模塊, IC數據直接通過uart上報,我就直接用了兩個線連出了rx,tx,連上串口轉USB小板, 電腦從串口直接獲取數據,這樣跳過了開發板,測試了gps的數據有沒有問題。
  • 詳細解讀:MSP430G2553單片機串口通信
    MSP430G2553是20個引腳的16位單片機。具有內置的16位定時器、16k的FLASH和512B的RAM,以及一個通用型模擬比較器以及採用通用串行通信接口的內置通信能力。此外還具有一個10位的模數(A/D)轉換器。這裡我們詳細說明MSP430G2553串口通信。其引腳排布如圖1.1所示。其功能表如表1.1所示。
  • 8051單片機簡史:深度認識8051單片機的來龍去脈
    8051單片機具有許多功能,例如:串行通信、定時器、中斷等,因此許多學生和初學者都開始使用8051單片機來研究單片機的概念(儘管隨著Arduino的引入,這種趨勢似乎有了一些改變)。即使8051單片機可能看起來有些過時,我們仍認為它是開始學習單片機、嵌入式系統和編程(包括C和彙編語言)的最佳平臺之一。
  • 「硬見小百科」單片機、ARM、MCU、DSP、FPGA、嵌入式關係
    低端的DSP,如C2000系列,主要是用在電機控制上,不過TI公司好像稱其為DSC(數位訊號控制器)一個介於MCU和DSP之間的東西。高端的DSP,如C5000/C6000系列,一般都是做視頻圖像處理和通信設備這些需要大量運算的地方。
  • 51單片機還有沒有必要學?
    二、51單片機入門學習首先根據個人基礎,如果是完全沒有基礎的,應該還是從51單片機入手,目前51單片機的應用還有很多,很多設備還能見到51晶片,尤其成本低的項目,出貨量特別大,51單片機入門簡單,上手快,項目開發進度快。低端產品大量使用,也是教學入門的晶片。
  • 基於單片機旋轉時鐘的設計
    故該系統的硬體模塊主要由以下幾部分組成:顯示模塊、無線供電模塊、單片機最小系統模塊、紅外遙控模塊、時鐘模塊、校準模塊、電機驅動模塊。其系統原理框圖如圖2.1所示。其中無線供電模塊利用線圈耦合將能量傳輸給單片機系統,單片機系統就能正常工作了。
  • 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計
    2 系統硬體設計 2.1 系統設計分析 溫度控制儀的硬體設計主要由電加熱爐溫度檢測、環境溫度檢測、A/D轉換、外部晶閘管調功、人機互動以及與PC機通信等部分組成。該系統儀表以單片機為核心,讀取計算由測量輸入通道進入的被測信號,再通過一定的算法計算控制量,送至控制輸出通道至控制信號。
  • 光耦在單片機控制系統中的應用
    甚至同一個電路板之間,功率部分對控制單元的幹擾也可以利用隔離電路來增強其穩定性。隔離電路的目的隔離電路的主要目的,是將兩個系統之間的電氣連接關係通過「電光-光電」轉換器件,或者「電磁-磁電」轉換器件來切斷。所謂電氣系統的切斷,即不僅指控制信號的隔離,同樣也是指兩個部分的「地」信號完完全全隔離開來。
  • 51單片機之聲雙色點陣驅動
    2)雙色點陣雙色點陣示意圖如下:COL上有兩種顏色LED在相應的管腳上,按單色點陣點亮原理置相應的電平即可發出相應的光。總結:本節紹了怎樣用51單片機製作電子音樂盒及雙色點陣的控制,下節《51單片機之聲——LCD12864漢字圖形顯示及電子日曆製作(2)》將帶您走進圖形化顯示世界及萬年曆的製作,為了幫助初學者儘快地學習與掌握51單片機的常用功能模塊,與之配套程序講解的視頻不久將會在網上發布,敬請期待。
  • 51/STM32/MSP430/STC/TMS/PIC/AVR,七大主流單片機最全面對比
    下面為大家帶來51、MSP430、TMS、STM32、PIC、AVR、STC單片機之間的優缺點比較及功能體現……低工作功耗CMOS技術,寬工作溫度範圍,噪聲抑制,再加上高性能和豐富的片上外設功能,使TMS370C系列單片機在汽車電子,工業電機控制,電腦,通信和消費類具有一定的應用。  由ST廠商推出的STM32系列單片機,行業的朋友都知道,這是一款性價比超高的系列單片機,應該沒有之一,功能及其強大。
  • 單片機MSP430入門——理論①——MSP430簡介
    1.0 處理能力強MSP430系列單片機是一個16位的單片機,採用了精簡指令集(RISC)結構,具有豐富的尋址方式(7 種源操作數尋址、4 種目的操作數尋址)、簡潔的 27 條內核指令以及大量的模擬指令;大量的寄存器以及片內數據存儲器都可參加多種運算;還有高效的查表處理指令。這些特點保證了可編制出高效率的源程序。
  • 「RISC-V 篇4」十步搞定GD32VF103單片機之RISC-V單片機硬體介紹
    上篇給小夥伴們全面介紹了,我們要開發的RISC-V單片機具體是哪家公司生產,何時設計生產的,具體有哪些產品型號,種類,封裝大小等單片機產品應用需要考慮的內容。了解這些信息,相信對於大家使用這個RISC-V單片機開發產品應用,有很大幫助!
  • 89C51單片機怎麼樣?89C51單片機過時了嗎
    打開APP 89C51單片機怎麼樣?89C51單片機過時了嗎 電工之家 發表於 2020-02-12 14:34:17   89C51單片機是一款8位單片機,最常用的是艾特梅爾產的AT89C51,我在上學時是用的最多的一款單片機晶片
  • 基於AT89C55單片機的PLC研究
    本文在研究 AT89C55單片機後,以該單片機為核心設計了一個綜合PLC系統,集成了多路開關量I/O及模擬量輸入,並可以通過RS232/RS485與上位機進行通訊,已經作為若干高校的實驗設備使用,並且,在要求較高的工程項目中也得到了具體的應用。
  • UART通訊協議詳解(STM32F103)
    不同於SPI,IIC等同步傳輸信號,UART是異步通信的,它只需要一根線就可以實現數據的通信,但因此通信速度相比於SPI,IIC是比較慢的。常用串口通訊結構圖如下:現在,控制器一般都內置了UART,它同外界通訊的電平信號是TTL電平信號。
  • STC89C52單片機對數字溫度計顯示系統的設計
    為了在很大程度上提高對溫度的控制水平,因此以單片機為核心的溫度採集與控制系統很有用研發和應用意義。本文研究了一個可以實時存儲和顯示當前的溫度數據,並且可以切換顯示當前的時間而且可對其時間進行修改的溫度顯示系統。文章以STC89C52單片機,DS18B20溫度傳感器以及DS1302時鐘芯為硬體基礎,主要介紹了相關的硬體電路和相關應用程式。