0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

單片機(jī)之間UART通信示意圖分享

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

單片機(jī)簡介

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

單片機(jī)串口通信有哪些

1、SPI

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

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

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

2、USART

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

3、I2C

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

兩個單片機(jī)之間UART串口通信

相信很多人都對單片機(jī)與計(jì)算機(jī)或者芯片通信時(shí),RXD與TXD如何連接比較困惑。因?yàn)樵谝恍╇娐穲D中,有的是直連接法,有的是交叉接法,讓人有點(diǎn)摸不著頭腦。

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

單片機(jī)與計(jì)算機(jī)進(jìn)行串口通信時(shí),單片機(jī)的RXD接計(jì)算機(jī)的TXD,單片機(jī)的TXD接計(jì)算機(jī)的RXD。

(1)使用串口直通線。

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

(2)使用串口交叉線。

設(shè)計(jì)電路時(shí),因?yàn)榇诰€已做交叉,單片機(jī)的RXD連接電路板DB9的RXD,單片機(jī)的TXD連接電路板DB9的TXD,均直連即可。

這就可以解釋為什么有的電路中使用直連接法,有的電路中使用交叉接法,就是因?yàn)槭褂玫拇诰€不同。

單片機(jī)之間UART通信示意圖分享

通信按照基本類型可以分為并行通信和串行通信。并行通信時(shí)數(shù)據(jù)的各個位同時(shí)傳送,可以實(shí)現(xiàn)字節(jié)為單位通信,但是通信線多占用資源多,成本高。比如我們前邊用到的 P0 = 0xFE;一次給 P0 的 8 個 IO 口分別賦值,同時(shí)進(jìn)行信號輸出,類似于有 8 個車道同時(shí)可以過去 8 輛車一樣,這種形式就是并行的,我們習(xí)慣上還稱 P0、P1、P2 和 P3 為 51 單片機(jī)的 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,由它們組成的通信接口就叫做串行接口,簡稱串口。用兩個單片機(jī)進(jìn)行 UART 串口通信,基本的演示圖如圖 11-1 所示。

單片機(jī)之間UART通信示意圖分享

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

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

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

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

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

單片機(jī)之間UART通信示意圖分享

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

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

    關(guān)注

    6057

    文章

    44806

    瀏覽量

    644102
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1249

    瀏覽量

    102696
收藏 2人收藏
  • fzhlpp1

評論

相關(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.6w次閱讀
氯離子結(jié)構(gòu)<b class='flag-5'>示意圖</b>和鈉離子結(jié)構(gòu)<b class='flag-5'>示意圖</b>

電腦鍵盤示意圖,計(jì)算機(jī)鍵盤示意圖

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

飛機(jī)示意圖

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

失會聚示意圖

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

順序傳輸制示意圖

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

混合動力汽車示意圖

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

單片機(jī)的模塊功能示意圖

單片機(jī)的模塊功能示意圖!
發(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>

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會員交流學(xué)習(xí)
  • 獲取您個性化的科技前沿技術(shù)信息
  • 參加活動獲取豐厚的禮品