91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

串口通信的幾個概念

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2020-10-12 14:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

串行同步通信

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

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

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

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

串行異步通信過程

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

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

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

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

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

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

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

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

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

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

舉例來說,假設傳輸?shù)臄?shù)據(jù)位為01001100,如果是奇校驗,則奇校驗位為0(要確保總共有奇數(shù)個1),如果是偶校驗,則偶校驗位為1(要確??偣灿信紨?shù)個1)。

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

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

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

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

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

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

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

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

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

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

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

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

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

(1)開始通信,信號線為空閑(邏輯1),當檢測到由1到0的跳變時,開始對接收時鐘計數(shù)。

(2)當計到8個時鐘的時候,對輸入信號進行檢測,若仍然為低電平,則確認這是起始位,而不是干擾信號。

(3)接收端檢測到起始位后,隔16個接收時鐘對輸入信號檢測一次,把對應的值作為D0位數(shù)據(jù)。

(4)再隔16個接收時鐘,對輸入信號檢測一次,把對應的值作為D1位數(shù)據(jù),直到全部數(shù)據(jù)位都輸入。

(5)檢驗奇偶檢驗位。

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

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

(8)當信號再次變?yōu)榈蜁r,開始進入下一幀的檢測。

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

串口通信的幾個概念

為了更好的理解串口通信,我們還需要了解幾個串口通信當中的基本概念。

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

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

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

串口接頭

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

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

RS-232C標準

常用的串行通信接口標準有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作為串行通信接口的電氣標準定義了數(shù)據(jù)終端設備(DTE:data terminal equipment)和數(shù)據(jù)通信設備(DCE:data communication equipment)間按位串行傳輸?shù)慕涌谛畔?,合理安排了接口的電氣信號?a href="http://www.makelele.cn/v/tag/1472/" target="_blank">機械要求,在世界范圍內(nèi)得到了廣泛的應用。

電氣特性

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

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

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

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

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

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

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

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

信號線分配

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

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

下面對這些信號線做個簡單的介紹。

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

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

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

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

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

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

(6)振鈴指示(RI),當數(shù)據(jù)通信設備收到交換臺送來的振鈴呼叫信號時,使該信號有效(ON),通知終端,已被呼叫。

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

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

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

責任編輯:lq

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

    關注

    18

    文章

    6396

    瀏覽量

    140079
  • 串行
    +關注

    關注

    0

    文章

    256

    瀏覽量

    35438
  • com接口
    +關注

    關注

    0

    文章

    6

    瀏覽量

    17231

原文標題:詳解單片機中的串口通訊

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    UWB650串口測距通信定位模塊規(guī)格書

    UWB650串口測距通信定位模塊規(guī)格書
    發(fā)表于 11-03 17:40 ?1次下載

    串口通信基石:Air8000下Modbus RTU串口初始化詳解!

    串口初始化是Modbus RTU通信穩(wěn)定可靠的關鍵起點。本篇深入剖析Air8000開發(fā)板串口參數(shù)配置、初始化代碼實現(xiàn)及調(diào)試要點,結合master_rtu示例,分享實際操作中的經(jīng)驗與避坑指南,讓您
    的頭像 發(fā)表于 10-28 16:33 ?1666次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>基石:Air8000下Modbus RTU<b class='flag-5'>串口</b>初始化詳解!

    基于FPGA開發(fā)板TSP的串口通信設計

    本文詳細介紹基于Terasic FPGA開發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設計與實現(xiàn)。系統(tǒng)采用Verilog HDL編寫UART收發(fā)控制器,通過CP2102N實現(xiàn)FPGA與PC間的快速穩(wěn)定
    的頭像 發(fā)表于 10-15 11:05 ?4490次閱讀
    基于FPGA開發(fā)板TSP的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>設計

    基于FPGA開發(fā)板DE23-Lite的串口通信設計

    DE23-Lite開發(fā)板提供了一個UART通信接口(物理接口是下圖的Type C接口),用戶能夠通過主機與Agilex 3 FPGA進行串口通信。
    的頭像 發(fā)表于 10-15 10:57 ?4447次閱讀
    基于FPGA開發(fā)板DE23-Lite的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>設計

    串口通信有哪些方式

    串口通信(Serial Communication)是一種通過串行方式逐位傳輸數(shù)據(jù)的通信方式,廣泛應用于嵌入式系統(tǒng)、工業(yè)控制、儀器儀表等領域。其通信方式可根據(jù)不同的分類標準劃分為多種類
    的頭像 發(fā)表于 09-28 18:02 ?1123次閱讀

    【排障帖】分享串口通信常見問題自查流程

    。 當我們面對串口通信問題時,排查過程通??梢苑譃?b class='flag-5'>幾個關鍵步驟,這些步驟可以幫助我們系統(tǒng)地定位并解決問題。以下是我們排查串口通信問題時通常會
    發(fā)表于 09-10 11:45

    PLC串口自由協(xié)議通信概述

    串口自由協(xié)議通信是一種靈活的串行通信方式。在該模式下,開發(fā)者無需遵循特定標準協(xié)議,可根據(jù)實際需求自由定義數(shù)據(jù)格式與交互規(guī)則。
    的頭像 發(fā)表于 08-07 09:15 ?2179次閱讀
    PLC<b class='flag-5'>串口</b>自由協(xié)議<b class='flag-5'>通信</b>概述

    Modbus轉MQTT網(wǎng)關具備幾個網(wǎng)口幾個串口

    在工業(yè)自動化與物聯(lián)網(wǎng)深度融合的當下,設備間的數(shù)據(jù)交互需求日益復雜化:一方面,傳統(tǒng)工業(yè)現(xiàn)場仍廣泛依賴Modbus等串行通信協(xié)議實現(xiàn)設備互聯(lián),其穩(wěn)定性和成熟度無可替代;另一方面,云平臺與物聯(lián)網(wǎng)系統(tǒng)普遍
    的頭像 發(fā)表于 07-23 15:37 ?694次閱讀
    Modbus轉MQTT網(wǎng)關具備<b class='flag-5'>幾個</b>網(wǎng)口<b class='flag-5'>幾個</b><b class='flag-5'>串口</b>

    淺談無線通信的基本概念

    從工作頻段到信道的劃分,再到多址方式、雙工方式、調(diào)制方式、分集技術和MIMO,這些概念共同作用,使得無線通信能夠高效、可靠地進行。隨著技術的不斷發(fā)展,這些基礎技術也在不斷演進,尤其是在5G系統(tǒng)中,新的多址方式、雙工技術和更復雜的MIMO系統(tǒng)都為未來的
    的頭像 發(fā)表于 07-04 11:34 ?1526次閱讀

    智嵌物聯(lián)串口轉光纖轉換器-延長串口通信距離,增強抗干擾性能

    智嵌物聯(lián)研發(fā)的串口光纖收發(fā)器是將RS-485/422/RS232接口信號轉換為光纖接口傳輸,通信距離可達20Km,大大延長串口通信距離以及抗干擾性能。設備可自適應
    的頭像 發(fā)表于 06-27 17:08 ?766次閱讀
    智嵌物聯(lián)<b class='flag-5'>串口</b>轉光纖轉換器-延長<b class='flag-5'>串口</b><b class='flag-5'>通信</b>距離,增強抗干擾性能

    ESP32用作經(jīng)典藍牙串口透傳模塊與手機進行串口通信

    本文介紹了如何把ESP32用作一個藍牙串口透傳設備使用,其功能和常用的HC-05/06串口藍牙設備一樣。并與手機藍牙串口APP進行雙向藍牙通信。
    的頭像 發(fā)表于 06-20 17:45 ?3051次閱讀
    ESP32用作經(jīng)典藍牙<b class='flag-5'>串口</b>透傳模塊與手機進行<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    串口網(wǎng)關是什么

    串口網(wǎng)關是什么? 串口網(wǎng)關(Serial Gateway) 是一種硬件或軟件設備,用于將 串口通信協(xié)議 (如RS-232、RS-485、TTL等)轉換為 網(wǎng)絡
    的頭像 發(fā)表于 06-05 11:31 ?814次閱讀

    常用通信接口一(串口、RS232、RS485、USB、TYPE-C原理與區(qū)別)

    一、什么是串口通信?常見的串口通信一般是指異步串行通信。與串行通信相對的是并行
    的頭像 發(fā)表于 05-29 15:44 ?3967次閱讀
    常用<b class='flag-5'>通信</b>接口一(<b class='flag-5'>串口</b>、RS232、RS485、USB、TYPE-C原理與區(qū)別)

    第七章 串口通信

    本章介紹了W55MH32的串口通信,講述了數(shù)據(jù)通信基礎概念、串口通信協(xié)議和特性與功能,以及DMA
    的頭像 發(fā)表于 05-26 17:00 ?1007次閱讀
    第七章 <b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    輕松解碼串口通信

    說到通信,在我們的生活方方面面體現(xiàn)的淋漓盡致,比如手機信號,WiFi 等這些無線通信更是近些年 熱點并且各種通信設備都出來了,真的是科技社會,對我們的生活太方便了對于通信,我們今天聊一
    發(fā)表于 03-24 14:22 ?4次下載