色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

串口通信的幾個概念

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2020-10-12 14:19 ? 次閱讀

串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。串口通信是指采用串行通信協議(serial communication)在一條信號線上將數據一個比特一個比特地逐位進行傳輸的通信模式。串口按電氣標準及協議來劃分,包括RS-232-C、RS-422、RS485等。

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

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

串行同步通信

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

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

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

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

串行異步通信過程

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

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

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

下面簡單的說說異步通信的數據發送和接收過程。

數據格式

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

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

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

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

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

舉例來說,假設傳輸的數據位為01001100,如果是奇校驗,則奇校驗位為0(要確保總共有奇數個1),如果是偶校驗,則偶校驗位為1(要確保總共有偶數個1)。

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

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

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

數據發送過程

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

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

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

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

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

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

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

數據接收過程

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

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

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

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

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

(5)檢驗奇偶檢驗位。

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

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

(8)當信號再次變為低時,開始進入下一幀的檢測。

以上就是異步通信中數據發送和接收的全過程了。

串口通信的幾個概念

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

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

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

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

串口接頭

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

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

RS-232C標準

常用的串行通信接口標準有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作為串行通信接口的電氣標準定義了數據終端設備(DTE:data terminal equipment)和數據通信設備(DCE:data communication equipment)間按位串行傳輸的接口信息,合理安排了接口的電氣信號和機械要求,在世界范圍內得到了廣泛的應用。

電氣特性

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

在TXD和RXD數據線上:

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

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

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

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

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

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

信號線分配

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

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

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

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

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

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

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

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

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

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

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

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

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

責任編輯:lq

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

    關注

    18

    文章

    6066

    瀏覽量

    136283
  • 串行
    +關注

    關注

    0

    文章

    237

    瀏覽量

    33921
  • com接口
    +關注

    關注

    0

    文章

    6

    瀏覽量

    12989

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

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

收藏 人收藏

    評論

    相關推薦

    串口通信原理解析 串口與并口的區別

    串口通信,又稱為串行通信,是一種數據傳輸方式,其中數據以位的形式按順序(一個接一個)通過單一通信線路發送。這種通信方式在早期計算機和現代嵌
    的頭像 發表于 12-27 09:50 ?526次閱讀

    串口通信的開發環境配置

    串口通信的開發環境配置涉及多個方面,包括選擇編程語言、安裝必要的庫或驅動程序、配置串口參數等。以下是一個基于Python的串口通信開發環境配
    的頭像 發表于 11-22 09:21 ?338次閱讀

    串口通信在物聯網中的應用

    感應器、全球定位系統、激光掃描器等,實時采集任何需要監控、連接、互動的物體或過程,采集其聲、光、熱、電、力學、化學、生物、位置等各種需要的信息,通過各類可能的網絡接入,實現物與物、物與人、物與網絡的智能化連接。 一、串口通信的基本概念
    的頭像 發表于 11-22 09:15 ?446次閱讀

    串口通信的硬件接口要求 串口通信與網絡通信的比較

    在現代計算機和電子設備中,數據通信是信息交換的基礎。串口通信作為一種傳統的數據傳輸方式,盡管在某些應用場景中逐漸被網絡通信所取代,但在特定的工業控制、嵌入式系統和設備間
    的頭像 發表于 11-22 09:14 ?655次閱讀

    使用Python進行串口通信的案例

    當然!以下是一個使用Python進行串口通信的簡單示例。這個示例展示了如何配置串口、發送數據以及接收數據。我們將使用 pyserial 庫,這是一個非常流行的用于串口
    的頭像 發表于 11-22 09:11 ?388次閱讀

    串口通信與并口通信的區別

    在計算機和電子設備的數據傳輸領域,串口通信(Serial Communication)和并口通信(Parallel Communication)是兩種基本的通信方式。它們各自有著獨特的
    的頭像 發表于 11-22 09:04 ?944次閱讀

    串口通信協議解析 串口通信應用實例

    串口通信協議解析 串口通信協議是指規定了數據包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定一致的數據包格式才能正常收發數據的有關規范。以下是
    的頭像 發表于 11-21 17:03 ?671次閱讀

    串口屏如何與主控制器進行通信

    一、串口通信基礎 串口通信是一種通過串行數據傳輸的方式進行通信的方法。在串口
    的頭像 發表于 11-20 09:32 ?267次閱讀
    <b class='flag-5'>串口</b>屏如何與主控制器進行<b class='flag-5'>通信</b>?

    為什么通信要使用虛擬串口串口助手?

    串口助手和虛擬串口是什么?串口助手和虛擬串口串口通信中很常見。
    的頭像 發表于 11-15 01:04 ?1542次閱讀
    為什么<b class='flag-5'>通信</b>要使用虛擬<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    串口通信的基本概念

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

    上位機與下位機串口通信的區別在哪

    上位機與下位機串口通信的區別主要體現在以下幾個方面: 通信方式的區別 上位機與下位機的串口通信
    的頭像 發表于 06-06 10:34 ?1163次閱讀

    什么是串口通信?它有哪些特點和應用?

    在現代電子通信和計算機領域中,串口通信(Serial Communications)扮演著至關重要的角色。它是一種按位(bit)發送和接收字節的通信方式,能夠實現數據的遠距離傳輸和高效
    的頭像 發表于 05-23 16:23 ?2725次閱讀

    常見串口通信幾個問題請教?

    有關常見串口通信幾個問題請教論壇里的專家? 1、常見串口通信CAN,DP,PN,ETHER IP/TCP,ETHERCAT等,這些
    發表于 04-04 16:30

    VC++串口通信詳解

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

    UART串口通信協議是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一種通信接口協議,用于實現串口通信。它是一種簡單的、可靠的、廣泛應用的串口
    的頭像 發表于 03-19 17:26 ?1503次閱讀
    主站蜘蛛池模板: 欧美在线看费视频在线| 久久精品AV一区二区无码| 九九热这里只有国产精品| 午夜想想爱| 国产免费人成在线视频有码| 色就色综合| 高h辣h双处全是肉一对一| 青娱乐国产精品视频| 超碰97av 在线人人操| 日本综艺大尺度无删减版在线| 不卡一区二区高清观看视频| 青青青久久久| 广播电台在线收听| 色婷婷五月综合久久中文字幕| 国产成人ae在线观看网站站| 午夜dj免费中文字幕| 国产私拍福利精品视频| 亚洲国产女人aaa毛片在线| 国精一区二区AV在线观看网站| 亚洲国产日韩欧美视频二区| 极品美女穴| 91精品视频网站| 日本高清色片| 国产亚洲精品久久久999无毒 | 三级全黄的视频| 国产欧美精品一区二区三区-老狼 国产欧美精品国产国产专区 | 玉娇龙续集春雪瓶txt免费阅读 | 老师紧窄粉嫩| yellow在线观看免费高清的日本| 天堂草原天黑黑| 久草在线在线精品观看99| 91精品在线国产| 色戒西瓜视频| 久久 这里只精品 免费| 97国产视频| 午夜福利免费视频921000电影| 簧片在线免费观看| java农村野外妇女hd| 亚洲a免费| 欧美精品久久久久性色AV苍井 | 日韩精品免费在线观看|