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

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

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

串口通信的幾個(gè)概念

STM32嵌入式開發(fā) ? 來(lái)源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2020-10-12 14:19 ? 次閱讀

串口是串行接口(serial port)的簡(jiǎn)稱,也稱為串行通信接口或COM接口。串口通信是指采用串行通信協(xié)議(serial communication)在一條信號(hào)線上將數(shù)據(jù)一個(gè)比特一個(gè)比特地逐位進(jìn)行傳輸?shù)耐ㄐ拍J?。串口?a href="http://www.ttokpm.com/v/tag/2364/" target="_blank">電氣標(biāo)準(zhǔn)及協(xié)議來(lái)劃分,包括RS-232-C、RS-422、RS485等。

在串行通信中,數(shù)據(jù)在1位寬的單條線路上進(jìn)行傳輸,一個(gè)字節(jié)的數(shù)據(jù)要分為8次,由低位到高位按順序一位一位的進(jìn)行傳送。串行通信的數(shù)據(jù)是逐位傳輸?shù)模l(fā)送方發(fā)送的每一位都具有固定的時(shí)間間隔,這就要求接收方也要按照發(fā)送方同樣的時(shí)間間隔來(lái)接收每一位。不僅如此,接收方還必須能夠確定一個(gè)信息組的開始和結(jié)束。

常用的兩種基本串行通信方式包括同步通信和異步通信。

串行同步通信

同步通信(SYNC:synchronous data communication)是指在約定的通信速率下,發(fā)送端和接收端的時(shí)鐘信號(hào)頻率和相位始終保持一致(同步),這樣就保證了通信雙方在發(fā)送和接收數(shù)據(jù)時(shí)具有完全一致的定時(shí)關(guān)系。

同步通信把許多字符組成一個(gè)信息組(信息幀),每幀的開始用同步字符來(lái)指示,一次通信只傳送一幀信息。在傳輸數(shù)據(jù)的同時(shí)還需要傳輸時(shí)鐘信號(hào),以便接收方可以用時(shí)針信號(hào)來(lái)確定每個(gè)信息位。

同步通信的優(yōu)點(diǎn)是傳送信息的位數(shù)幾乎不受限制,一次通信傳輸?shù)臄?shù)據(jù)有幾十到幾千個(gè)字節(jié),通信效率較高。同步通信的缺點(diǎn)是要求在通信中始終保持精確的同步時(shí)鐘,即發(fā)送時(shí)鐘和接收時(shí)鐘要嚴(yán)格的同步。常用的做法是兩個(gè)設(shè)備使用同一個(gè)時(shí)鐘源。

在串口通信與編程中應(yīng)用最多的是異步通信方式。

串行異步通信過程

異步通信(ASYNC:asynchronous data communication),又稱為起止式異步通信,是以字符為單位進(jìn)行傳輸?shù)?,字符之間沒有固定的時(shí)間間隔要求,而每個(gè)字符中的各位則以固定的時(shí)間傳送。

在異步通信中,收發(fā)雙方取得同步是通過在字符格式中設(shè)置起始位和停止位的方法來(lái)實(shí)現(xiàn)的。具體來(lái)說就是,在一個(gè)有效字符正式發(fā)送之前,發(fā)送器先發(fā)送一個(gè)起始位,然后發(fā)送有效字符位,在字符結(jié)束時(shí)再發(fā)送一個(gè)停止位,起始位至停止位構(gòu)成一幀。停止位至下一個(gè)起始位之間是不定長(zhǎng)的空閑位,并且規(guī)定起始位為低電平(邏輯值為0),停止位和空閑位都是高電平(邏輯值為1),這樣就保證了起始位開始處一定會(huì)有一個(gè)下跳沿,由此就可以標(biāo)志一個(gè)字符傳輸?shù)钠鹗肌6鶕?jù)起始位和停止位也就很容易的實(shí)現(xiàn)了字符的界定和同步。

顯然,采用異步通信時(shí),發(fā)送端和接收端可以由各自的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,可以互不同步。

下面簡(jiǎn)單的說說異步通信的數(shù)據(jù)發(fā)送和接收過程。

數(shù)據(jù)格式

在介紹異步通信的數(shù)據(jù)發(fā)送和接收過程之前,有必要先弄清楚異步通信的數(shù)據(jù)格式。

異步通信規(guī)定傳輸?shù)臄?shù)據(jù)格式由起始位(start bit)、數(shù)據(jù)位(data bit)、奇偶校驗(yàn)位(parity bit)和停止位(stop bit)組成,異步通信數(shù)據(jù)格式如下圖所示(該圖中未畫出奇偶校驗(yàn)位,因?yàn)槠媾紮z驗(yàn)位不是必須有的,如果有奇偶檢驗(yàn)位,則奇偶檢驗(yàn)位應(yīng)該在數(shù)據(jù)位之后,停止位之前)。

(1)起始位:起始位必須是持續(xù)一個(gè)比特時(shí)間的邏輯0電平,標(biāo)志傳輸一個(gè)字符的開始,接收方可用起始位使自己的接收時(shí)鐘與發(fā)送方的數(shù)據(jù)同步。

(2)數(shù)據(jù)位:數(shù)據(jù)位緊跟在起始位之后,是通信中的真正有效信息。數(shù)據(jù)位的位數(shù)可以由通信雙方共同約定,一般可以是5位、7位或8位,標(biāo)準(zhǔn)的ASCII碼是0~127(7位),擴(kuò)展的ASCII碼是0~255(8位)。傳輸數(shù)據(jù)時(shí)先傳送字符的低位,后傳送字符的高位。

(3)奇偶校驗(yàn)位:奇偶校驗(yàn)位僅占一位,用于進(jìn)行奇校驗(yàn)或偶校驗(yàn),奇偶檢驗(yàn)位不是必須有的。如果是奇校驗(yàn),需要保證傳輸?shù)臄?shù)據(jù)總共有奇數(shù)個(gè)邏輯高位;如果是偶校驗(yàn),需要保證傳輸?shù)臄?shù)據(jù)總共有偶數(shù)個(gè)邏輯高位。

舉例來(lái)說,假設(shè)傳輸?shù)臄?shù)據(jù)位為01001100,如果是奇校驗(yàn),則奇校驗(yàn)位為0(要確??偣灿衅鏀?shù)個(gè)1),如果是偶校驗(yàn),則偶校驗(yàn)位為1(要確??偣灿信紨?shù)個(gè)1)。

由此可見,奇偶校驗(yàn)位僅是對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的置邏輯高位或邏輯低位,不會(huì)對(duì)數(shù)據(jù)進(jìn)行實(shí)質(zhì)的判斷,這樣做的好處是接收設(shè)備能夠知道一個(gè)位的狀態(tài),有可能判斷是否有噪聲干擾了通信以及傳輸?shù)臄?shù)據(jù)是否同步。

(4)停止位:停止位可以是是1位、1.5位或2位,可以由軟件設(shè)定。它一定是邏輯1電平,標(biāo)志著傳輸一個(gè)字符的結(jié)束。

(5)空閑位:空閑位是指從一個(gè)字符的停止位結(jié)束到下一個(gè)字符的起始位開始,表示線路處于空閑狀態(tài),必須由高電平來(lái)填充。

數(shù)據(jù)發(fā)送過程

清楚了異步通信的數(shù)據(jù)格式之后,就可以按照指定的數(shù)據(jù)格式發(fā)送數(shù)據(jù)了,發(fā)送數(shù)據(jù)的具體步驟如下:

(1)初始化后或者沒有數(shù)據(jù)需要發(fā)送時(shí),發(fā)送端輸出邏輯1,可以有任意數(shù)量的空閑位。

(2)當(dāng)需要發(fā)送數(shù)據(jù)時(shí),發(fā)送端首先輸出邏輯0,作為起始位。

(3)接著就可以開始輸出數(shù)據(jù)位了,發(fā)送端首先輸出數(shù)據(jù)的最低位D0,然后是D1,最后是數(shù)據(jù)的最高位。

(4)如果設(shè)有奇偶檢驗(yàn)位,發(fā)送端輸出檢驗(yàn)位。

(5)最后,發(fā)送端輸出停止位(邏輯1)。

(6)如果沒有信息需要發(fā)送,發(fā)送端輸出邏輯1(空閑位),如果有信息需要發(fā)送,則轉(zhuǎn)入步驟(2)。

數(shù)據(jù)接收過程

在異步通信中,接收端以接收時(shí)鐘和波特率因子決定每一位的時(shí)間長(zhǎng)度。下面以波特率因子等于16(接收時(shí)鐘每16個(gè)時(shí)鐘周期使接收移位寄存器移位一次)為例來(lái)說明。

(1)開始通信,信號(hào)線為空閑(邏輯1),當(dāng)檢測(cè)到由1到0的跳變時(shí),開始對(duì)接收時(shí)鐘計(jì)數(shù)。

(2)當(dāng)計(jì)到8個(gè)時(shí)鐘的時(shí)候,對(duì)輸入信號(hào)進(jìn)行檢測(cè),若仍然為低電平,則確認(rèn)這是起始位,而不是干擾信號(hào)。

(3)接收端檢測(cè)到起始位后,隔16個(gè)接收時(shí)鐘對(duì)輸入信號(hào)檢測(cè)一次,把對(duì)應(yīng)的值作為D0位數(shù)據(jù)。

(4)再隔16個(gè)接收時(shí)鐘,對(duì)輸入信號(hào)檢測(cè)一次,把對(duì)應(yīng)的值作為D1位數(shù)據(jù),直到全部數(shù)據(jù)位都輸入。

(5)檢驗(yàn)奇偶檢驗(yàn)位。

(6)接收到規(guī)定的數(shù)據(jù)位個(gè)數(shù)和校驗(yàn)位之后,通信接口電路希望收到停止位(邏輯1),若此時(shí)未收到邏輯1,說明出現(xiàn)了錯(cuò)誤,在狀態(tài)寄存器中置“幀錯(cuò)誤”標(biāo)志;若沒有錯(cuò)誤,對(duì)全部數(shù)據(jù)位進(jìn)行奇偶校驗(yàn),無(wú)校驗(yàn)錯(cuò)時(shí),把數(shù)據(jù)位從移位寄存器中取出送至數(shù)據(jù)輸入寄存器,若校驗(yàn)錯(cuò),在狀態(tài)寄存器中置“奇偶錯(cuò)”標(biāo)志。

(7)本幀信息全部接收完,把線路上出現(xiàn)的高電平作為空閑位。

(8)當(dāng)信號(hào)再次變?yōu)榈蜁r(shí),開始進(jìn)入下一幀的檢測(cè)。

以上就是異步通信中數(shù)據(jù)發(fā)送和接收的全過程了。

串口通信的幾個(gè)概念

為了更好的理解串口通信,我們還需要了解幾個(gè)串口通信當(dāng)中的基本概念。

(1)發(fā)送時(shí)鐘:發(fā)送數(shù)據(jù)時(shí),首先將要發(fā)送的數(shù)據(jù)送入移位寄存器,然后在發(fā)送時(shí)鐘的控制下,將該并行數(shù)據(jù)逐位移位輸出。

(2)接收時(shí)鐘:在接收串行數(shù)據(jù)時(shí),接收時(shí)鐘的上升沿對(duì)接收數(shù)據(jù)采樣,進(jìn)行數(shù)據(jù)位檢測(cè),并將其移入接收器的移位寄存器中,最后組成并行數(shù)據(jù)輸出。

(3)波特率因子:波特率因子是指發(fā)送或接收1個(gè)數(shù)據(jù)位所需要的時(shí)鐘脈沖個(gè)數(shù)。

串口接頭

常用的串口接頭有兩種,一種是9針串口(簡(jiǎn)稱DB-9),一種是25針串口(簡(jiǎn)稱DB-25)。每種接頭都有公頭和母頭之分,其中帶針狀的接頭是公頭,而帶孔狀的接頭是母頭。下圖是DB-9外觀圖

由上圖可以看出,在9針串口接頭中,公頭和母頭的管腳定義順序是不一樣的,這一點(diǎn)需要特別注意。那么,這個(gè)管腳都有什么作用呢?9針串口和25針串口常用管腳的功能說明如下圖所示。

RS-232C標(biāo)準(zhǔn)

常用的串行通信接口標(biāo)準(zhǔn)有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作為串行通信接口的電氣標(biāo)準(zhǔn)定義了數(shù)據(jù)終端設(shè)備(DTE:data terminal equipment)和數(shù)據(jù)通信設(shè)備(DCE:data communication equipment)間按位串行傳輸?shù)慕涌谛畔?,合理安排了接口的電氣信?hào)和機(jī)械要求,在世界范圍內(nèi)得到了廣泛的應(yīng)用。

電氣特性

RS-232C對(duì)電器特性、邏輯電平和各種信號(hào)功能都做了規(guī)定。

在TXD和RXD數(shù)據(jù)線上:

邏輯1為-3~-15V的電壓。

邏輯0為3~15V的電壓。

在RTS、CTS、DSR、DTR和DCD等控制線上:

信號(hào)有效(ON狀態(tài))為3~15V的電壓。

信號(hào)無(wú)效(OFF狀態(tài))為-3~-15V的電壓。

由此可見,RS-232C是用正負(fù)電壓來(lái)表示邏輯狀態(tài),與晶體管-晶體管邏輯集成電路(TTL)以高低電平表示邏輯狀態(tài)的規(guī)定正好相反。

信號(hào)線分配

RS-232C標(biāo)準(zhǔn)接口有25條線,其中,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線以及7條備用和未定義線。

那么,這些信號(hào)線在9針串口和25針串口的管腳上是如何分配的呢?9針串口和25針串口信號(hào)線分配如下圖所示。

下面對(duì)這些信號(hào)線做個(gè)簡(jiǎn)單的介紹。

(1)數(shù)據(jù)裝置準(zhǔn)備好(DSR),有效狀態(tài)(ON)表示數(shù)據(jù)通信設(shè)備處于可以使用狀態(tài)。

(2)數(shù)據(jù)終端準(zhǔn)備好(DTR),有效狀態(tài)(ON)表示數(shù)據(jù)終端設(shè)備處于可以使用狀態(tài)。

這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說明通信鏈路可以開始進(jìn)行通信了,能否開始進(jìn)行通信要由下面的一些控制信號(hào)決定。

(3)請(qǐng)求發(fā)送(RTS),用來(lái)表示數(shù)據(jù)終端設(shè)備(DTE)請(qǐng)求數(shù)據(jù)通信設(shè)備(DCE)發(fā)送數(shù)據(jù)。

(4)允許發(fā)送(CTS),用來(lái)表示數(shù)據(jù)通信設(shè)備(DCE)已經(jīng)準(zhǔn)備好了數(shù)據(jù),可以向數(shù)據(jù)終端設(shè)備(DTE)發(fā)送數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)。請(qǐng)求發(fā)送(RTS)和允許發(fā)送(CTS)用于半雙工的通信系統(tǒng)中,在全雙工的系統(tǒng)中,不需要使用請(qǐng)求發(fā)送(RTS)和允許發(fā)送(CTS)信號(hào),直接將其置為ON即可。

(5)數(shù)據(jù)載波檢出(DCD),用于表示數(shù)據(jù)通信設(shè)備(DCE)已接通通信鏈路,告知數(shù)據(jù)終端設(shè)備(DTE)準(zhǔn)備接收數(shù)據(jù)。

(6)振鈴指示(RI),當(dāng)數(shù)據(jù)通信設(shè)備收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON),通知終端,已被呼叫。

(7)發(fā)送數(shù)據(jù)(TXD),數(shù)據(jù)終端設(shè)備(DTE)通過該信號(hào)線將串行數(shù)據(jù)發(fā)送到數(shù)據(jù)通信設(shè)備(DCE)。

(8)接收信號(hào)(RXD),數(shù)據(jù)終端設(shè)備(DTE)通過該信號(hào)線接收從數(shù)據(jù)通信設(shè)備(DCE)發(fā)來(lái)的串行數(shù)據(jù)。

(9)地線(SG、PG),分別表示信號(hào)地和保護(hù)地信號(hào)線。

責(zé)任編輯:lq

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

    關(guān)注

    18

    文章

    5880

    瀏覽量

    135314
  • 串行
    +關(guān)注

    關(guān)注

    0

    文章

    235

    瀏覽量

    33691
  • com接口
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    11015

原文標(biāo)題:詳解單片機(jī)中的串口通訊

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串口通信的基本概念

    串口通信(Serial Communications)的基本概念可以歸納為以下幾個(gè)方面:
    的頭像 發(fā)表于 06-12 09:28 ?382次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的基本<b class='flag-5'>概念</b>

    上位機(jī)與下位機(jī)串口通信的區(qū)別在哪

    上位機(jī)與下位機(jī)串口通信的區(qū)別主要體現(xiàn)在以下幾個(gè)方面: 通信方式的區(qū)別 上位機(jī)與下位機(jī)的串口通信
    的頭像 發(fā)表于 06-06 10:34 ?632次閱讀

    什么是串口通信?它有哪些特點(diǎn)和應(yīng)用?

    在現(xiàn)代電子通信和計(jì)算機(jī)領(lǐng)域中,串口通信(Serial Communications)扮演著至關(guān)重要的角色。它是一種按位(bit)發(fā)送和接收字節(jié)的通信方式,能夠?qū)崿F(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸和高效
    的頭像 發(fā)表于 05-23 16:23 ?1394次閱讀

    常見串口通信幾個(gè)問題請(qǐng)教?

    有關(guān)常見串口通信幾個(gè)問題請(qǐng)教論壇里的專家? 1、常見串口通信CAN,DP,PN,ETHER IP/TCP,ETHERCAT等,這些
    發(fā)表于 04-04 16:30

    VC++串口通信詳解

    電子發(fā)燒友網(wǎng)站提供《VC++串口通信詳解.doc》資料免費(fèi)下載
    發(fā)表于 03-24 09:36 ?0次下載

    UART串口通信協(xié)議是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一種通信接口協(xié)議,用于實(shí)現(xiàn)串口通信。它是一種簡(jiǎn)單的、可靠的、廣泛應(yīng)用的串口
    的頭像 發(fā)表于 03-19 17:26 ?959次閱讀

    QT串口通信的簡(jiǎn)單使用

    QT串口通信是上位機(jī)和下位機(jī)通信常用的通信方式, 也是學(xué)習(xí)QT必須學(xué)會(huì)的基礎(chǔ)知識(shí), 這篇就簡(jiǎn)單介紹一下QT串口
    的頭像 發(fā)表于 01-15 09:27 ?1408次閱讀
    QT<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的簡(jiǎn)單使用

    單片機(jī)串口通信的接收與發(fā)送程序

    單片機(jī)串口通信的接收與發(fā)送程序 一、引言 單片機(jī)串口通信是一種常見的通信方式,廣泛應(yīng)用于各種嵌入式系統(tǒng)和工業(yè)控制領(lǐng)域。通過
    的頭像 發(fā)表于 12-19 13:57 ?4411次閱讀

    用proteus和keil實(shí)現(xiàn)串口通信仿真

    前面一課講述了串行口通信的技術(shù)原理,本課通過安裝虛擬串口,用proteus和keil實(shí)現(xiàn)串口通信仿真。
    的頭像 發(fā)表于 11-27 16:42 ?4504次閱讀
    用proteus和keil實(shí)現(xiàn)<b class='flag-5'>串口</b><b class='flag-5'>通信</b>仿真

    STM32里的串口通信

    端。STM32的串口資源有USART1、USART2、USART3. 串口幾個(gè)重要的參數(shù): 波特率,串口通信的速率 空閑,一般為高電平 起
    的頭像 發(fā)表于 11-10 15:58 ?2600次閱讀
    STM32里的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    licheepi 4a串口通信(usb串口)

    licheepi 4a串口通信(usb串口)
    的頭像 發(fā)表于 11-08 09:09 ?481次閱讀
    licheepi 4a<b class='flag-5'>串口</b><b class='flag-5'>通信</b>(usb<b class='flag-5'>串口</b>)

    LED顯示屏的幾個(gè)最基本概念

    電子發(fā)燒友網(wǎng)站提供《LED顯示屏的幾個(gè)最基本概念.pdf》資料免費(fèi)下載
    發(fā)表于 11-02 09:53 ?0次下載
    LED顯示屏的<b class='flag-5'>幾個(gè)</b>最基本<b class='flag-5'>概念</b>

    STM32串口中斷及DMA接收常見的幾個(gè)問題

    STM32串口中斷及DMA接收常見的幾個(gè)問題
    的頭像 發(fā)表于 10-26 16:41 ?3173次閱讀
    STM32<b class='flag-5'>串口</b>中斷及DMA接收常見的<b class='flag-5'>幾個(gè)</b>問題

    串口中的幀是什么概念?

    串口中的幀是什么概念
    發(fā)表于 10-20 07:27

    天線的幾個(gè)基本概念

    電子發(fā)燒友網(wǎng)站提供《天線的幾個(gè)基本概念.ppt》資料免費(fèi)下載
    發(fā)表于 10-07 16:17 ?1次下載
    天線的<b class='flag-5'>幾個(gè)</b>基本<b class='flag-5'>概念</b>