計算機串口通信基礎

2020-11-25 電子發燒友

計算機串口通信基礎

李倩 發表於 2018-07-12 08:08:37

串口通信是非常重要的,首先了解下基礎

計算機串口通信基礎

隨著多微機系統的廣泛應用和計算機網絡技術的普及,計算機的通信功能越越顯得重要。計算機通信是指計算機與外部設備或計算機與計算機之間的信息交換。

通信有並行通信和串行通信兩種方式。在多微機系統以及現代化測控系統中信息的交換多採用串行通信方式。

計算機通信是將計算機技術和通信技術的相結合,完成計算機與外部設備或計算機與計算機之間的信息交換。可以分為兩大類:並行通信與串行通信。

並行通信通常是將數據字節的各位用多條數據線同時進行傳送。(如下圖)

由上圖可知一下可以傳8位,跟並行的A/D D/A 差不多,詢問和應答 是發送 和接受 來詢問是否準備好了沒有。

並行通信控制簡單,傳輸速度快;由於傳輸線較多,長距離傳送時成本高且接收方的各位同時接受存在困難。

串行通信是將數據字節分成一位一位的形式在一條傳輸線上逐個地傳送。(如下圖)

注意:先發的是低位

串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,丹數據的傳送控制比並行通信複雜。

串行通信的基本概念

一、異步通信與同步通信

1、異步通信

異步通信是指通信的發送與接收設備使用各自的時鐘控制數據的發送和接收過程。為使雙方的收發協調,要求發送和接收設備的時鐘儘可能一致。

異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有位間隔的整數倍的關係,但同一個字符內的各位之間的距離均為「位間隔」的整數倍。

異步通信的數據格式:

{先發起始位:低電平 表示起始位 再發數據位 LSB 是低端 (LSB: Least Significant Bit)最低有效位,先發低位數據共7位數據 + 1位校驗位數據 (判斷發送是否正確,如果不要校驗位那麼8位都是數據位) 最後發一個停止位(高電平結束就是一個位寬的高電平表示停止位) 共10位 一幀 。}

異步通訊的特點:不要求收發雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加2~3位用於起始位,各幀之間有間隔,因此傳輸效率不高。

2、同步通信

同步通信時要建立發送方時鐘對接受方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為「位間隔」的整數倍,同時傳送的字符間不留間隙,即保持位同步關係,也保持字符同步關係。發送方對接受方的同步可以通過兩種方法實現。

面向字符的同步格式:

此時,傳送的數據和控制信息都必須由規定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H),SOH為序始字符(ASCII碼為01H),表示標題的開始,標題中包含源地址,目標地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數據塊開始。數據塊是傳送正文內容,由多個字符組成。數據塊後面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然後是校驗碼。典型的面向字符的同步規程如IBM的二進位同步規程BSC。

面向位的同步格式:

此時,將數據塊看做數據流,並用序列01111110作為開始和結束標誌。為了避免在數據流中出現序列01111110時引起的混亂,發送方總是在其發送的數據流中沒出現5個連續的1就插入一個附加的0;接收方則每檢測到5個連續的1並且其後有一個0時,就刪除該0。

典型的面向位的同步協議如ISO的高級數據鏈路控制規程HDLC和IBM的同步數據鏈路控制規程SDLC。

同步通信的特點::是以特定的位組合「01111110」作為幀的開始和結束標誌,所傳輸的一幀數據可以是任意位。所以傳輸效率高,但實現的硬體設備比異步通信發雜。(同步通信可以作為了解我這裡只是想表達下我的理解,其實現實中我們用的大多數是異步通信)。

二、串行通信的傳輸方向1、單工單工是指數據傳輸僅能沿著一個方向,不能實現反向傳輸。2、半雙工半雙工是指數據傳輸可以沿兩個方向,不能實現反向傳輸。3、全雙工全雙工是指數據可以同時進行雙向傳輸。

三、信號的調製與解調利用調製器(MODULATOR)把數位訊號轉換成模擬信號,然後送到通信線路上去,再由解調器(Demodulator)把從通信線路上收到的模擬信號轉換成數位訊號。由於通信是雙向的,調製器和解調器合併在一個裝置中,這就是數據機MODEM。

從上圖可以看出早期的計算機網絡通信就是利用串口RS-232C(是計算機串口電平)經過MODEM 實現雙向通信的,當然傳輸速率相當低。

四、串行通信的錯誤校驗

1、奇偶校驗

在發送數據時,數據位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數據中「1」的個數與校驗位「1」的個數之和應為奇數;偶校驗時,數據中「1」的個數與校驗位「1」的個數之和應為偶數。接受字符時,對「1」的個數進行校驗,若發現不一致,則說明傳輸數據過程中出現了差錯。(注意:為了簡單等會我寫的程序不加校驗了)。

2、代碼和校驗

代碼和校驗是發送方將所發數據塊求和(或各字節異或),產生一個字節的校驗字符(校驗和)附加到數據塊末尾。接受方接受數據同時對數據塊(除校驗字節外)求和(或個字節異或),將所得結果與發送方的「校驗和」進行比較,相符則無差錯,否則即認為傳送過程中出現了差錯。

3、循環冗餘校驗

這種校驗是通過某種數學運算實現有效信息與校驗位之間的循環校驗,常用於對磁碟信息的傳輸,存儲區的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用與同步通信中。(異步很少用,應用於同步通信,作為了解,在讀研究生時候學資訊理論能學到,這裡我也就是一知半解,嘿嘿畢竟哥沒讀過研究生)。

五、傳輸速率與傳輸距離

1、傳輸速率

比特率是每秒鐘傳輸二進位代碼的位數,單位是:位/秒(bps).如每秒鐘傳送240個字符,而每個字符格式包含10位(1起始位,1停止位,8個數據位),這時的比特率為:10*240個/秒=2400 bps

2、傳輸距離與傳輸速率的關係

串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小,當比特率超過1000BPS,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。

串行通信接口標準

一、RS-232C接口

RS232C是EIA(美國電子工業協會)1969年修訂RS-232C標準。RS-232C定義了數據終端設備(DTE)與數據通信設備(DCE)之間的物理接口標準。

1、機械特性

RS-232C接口規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)

以前是25針的這個可不是電腦的並行口內部是不一樣的,因為電腦的並行口裡面是有一組數據線,有詢問應答等 , 現在都用9針的了(右邊)。記住裡面有針的是公頭,另外一個帶孔的是母頭。現在外面賣的的串口線內部是已經對調好的了就是發送接收是對調的,這樣我們直接使用就可以了。

上圖是25針的串口對應現在9針的管腳定義。RTS DSR在連接MODEM 需接上 一般我們只是接2/3/5 腳就行了。

4、過程特性

過程特性規定了信號之間的時序關係,以便正確地接收和發送數據

5、RS-232C電平與TTL電平轉換驅動電路

現在我們已經集合了,就用MAX232直接能夠實現TTL ->RS232 及 RS-232 ->TTL 都有了。

6、採用RS-232C接口存在的問題

1、傳輸距離短,傳輸速率低

RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15米(線路條件好時也不能超過幾十米)。最高傳送速率為20Kbps.

2、有電平偏移

RS-232C總線標準要求收發雙方共地。通信距離較大時,收發雙方的地電平差別較大,在信號地上將有較大的地電流並產生壓降。

3、抗幹擾能力差

RS-232C在電平轉換時採用單端輸入輸出,在傳輸過程中當幹擾和噪聲混在正常信號中。為了提高信噪比,RS-232C總線標準不得不採用比較大的電壓擺幅。 

二、RS-422A接口(為了改進 RS-232C 就是在RS232C 輸出後再進行改進)

RS-422A輸出驅動器為雙端平衡驅動器。如果其中一條線為邏輯「1」狀態,另一條線就為邏輯「0」,比採用單端不平衡驅動對電壓的放大倍數大一倍。差分電路能從地線幹擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了幹擾和噪聲,由於差分放大器的作用,可使幹擾和噪聲相互抵消。因此可以避免或大大減弱地線幹擾和電磁幹擾的影響。RS-422A傳輸速率(90Kbps)時,傳輸距離可達1200米。(作為了解下)

三、RS-485接口

RS-485是RS-422A的變型:RS-422A用於全雙工,而RS-485則用於半雙工。RS-485是一種多發送器標準,在通信線路上最多可以使用32 對差分驅動器/接收器。如果在一個網絡中連接的設備超過32個,還可以使用中繼器。

RS-485的信號傳輸採用兩線間的電壓來表示邏輯1和邏輯0。由於發送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線採用差動信道,所以它的幹擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離可達1200米,傳輸速率可達1Mbps。 

RS-485是一點對多點的通信接口,一般採用雙絞線的結構。普通的PC機一般不帶RS485接口,因此要使用RS-232C/RS-485轉換器。對於單片機可以通過晶片MAX485來完成TTL/RS-485的電平轉換。在計算機和單片機組成的RS-485通信系統中,下位機由單片機系統組成,上位機為普通的PC機,負責監視下位機的運行狀態,並對其狀態信息進行集中處理,以圖文方式顯示下位機的工作狀態以及工業現場被控設備的工作狀況。系統中各節點(包括上位機)的識別是通過設置不同的站地址來實現的。

打開APP閱讀更多精彩內容

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

相關焦點

  • 淺談硬體串口通信基礎概念
    串口通信(Serial Communication),是指外設和計算機間通過數據信號線、地線等按位進行傳輸數據的一種通信方式,屬於串行通信方式。串口是一種接口標準,它規定了接口的電氣標準,沒有規定接口插件電纜以及使用的協議。
  • 基於MFC串口連續通信的簡易實現
    之間的時間間隔T1,將間隔本文引用地址:http://www.eepw.com.cn/article/201610/306451.htm串口通信適用於長距離控制與數據傳輸,許多單片機在內部均集成了串口通信模塊,而計算機的作業系統也內嵌有對串口通信的支持。
  • LabVIEW串口通信的一個例子-串口"示波器"
    功能介紹:左邊上方串口接收區,下方為串口字符發送區。右方為一個波形圖表,在程序內部每次將串口發送過來的數據,以f%格式化,顯示在波形圖表上。狀態Init:程序初始化,主要把OpenCom等按鈕,串口狀態,串口接收字符串,波形圖標,TX/RX計數等控制項,置為False或清零。初始化狀態只執行一次,接下來就進入狀態Event。
  • 什麼是「串口」?
    常見的串口DB9串口是計算機上一種非常通用設備通信的協議(不要與通用串行總線Universal Serial Bus大多數計算機包含兩個基於RS232的串口。串口同時也是儀器儀表設備通用的通信協議;很多GPIB兼容的設備也帶有RS-232口。同時,串口通信協議也可以用於獲取遠程採集設備的數據。串口通信的概念非常簡單,串口按位(bit)發送和接收字節。儘管比按字節(byte)的並行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。
  • 基於C8051F040單片機的CAN總線和RS-232串口通信設計
    為了實現對CAN總線和RS-232串口雙向通信需求,提出了一種基於C8051F040單片機的數據通信方案,並完成系統設計。分析了CAN總線和RS-232串口的通信特點,介紹了單片機硬體,並對軟體的設計思路與流程做了詳盡描述,完成功能檢測。實驗結果表明,該設計達到了要求。
  • 嵌入式硬體通信接口協議-UART(一)協議基礎
    串口的出現是在1980年前後,數據傳輸率是115kbps~230kbps。串口出現的初期是為了實現連接計算機外設的目的,初期串口一般用來連接滑鼠和外置Modem以及老式攝像頭和寫字板等設備。串口也可以應用於兩臺計算機(或設備)之間的互聯及數據傳輸。由於串口(COM)不支持熱插拔及傳輸速率較低,目前部分新主板和大部分便攜電腦已開始取消該接口。
  • 中標麒麟作業系統串口調試方法研究
    串口作為一種廣泛應用的計算機接口,計算機對設備進行通信控制幾乎都是通過串口進行的。在中標麒麟作業系統下進行串口調試與Windows不同,本文將介紹兩種中標麒麟作業系統下的串口調試方法。2minicom串口調試軟體2.1minicom簡介minicom的功能與Windows系統下的超級終端類似,計算機可以利用此軟體通過串口控制外部硬體設備。
  • 樂創物聯物聯網架構之硬體層中間件Arduino 串口通信
    下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。本節就來講感知層下硬體層中間件Arduino 串口通信。感知層是物聯網最基礎的部分,就像人的五官一樣去感受世界。1 Arduino 串口通信簡介Arduino需要和其他設備之間進行通信(例如PC、藍牙、WiFi等),而最常見最簡單的方式就是串口通信。
  • 基於樹莓派的多串口多總線伺服器設計
    引言本文引用地址:http://www.eepw.com.cn/article/201609/304386.htm工業控制中,各設備的信號採集和監控只靠串口總線難以實現擴展,要將現場控制網絡和信息網絡相連,就需要解決串口通信協議和網際網路通信協議的轉換問題,即把原有設備轉換為具備網絡接口的外設,這樣可以將傳統串行鏈路上的數據傳輸到信息網絡上,而無需更換原有設備。
  • RS232 RS485 串口 電平標準
    串行接口  串行接口簡稱串口,也稱串行通信接口或串行通訊接口(通常指COM接口),是採用串行通信方式的擴展接口。    總述串口通信的兩種最基本的方式:同步串行通信方式和異步串行通信方式。同步串行是指SPI(Serial Peripheral interface)的縮寫,顧名思義就是串行外圍設備接口。SPI總線系統是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息,TRM450是SPI接口。
  • 機房常見的串口伺服器有哪些?它的作用是?
    對於串口伺服器,兩個關鍵詞是串口和網絡。網絡分為內網和外網兩種,內網一般指乙太網,外網指Internet,它是進行全球範圍內通信的有效手段。
  • python3腳本篇1-串口通訊腳本
    前言本文我們來學習Python軟體包pyserial的使用,硬體採用wemos D1開發板,直接燒錄串口章節代碼即可,本文主要編寫PC端Python腳本,完成腳本和外接串口設備通訊的功能。一、基礎知識1.pyserial簡介:pyserial模塊是python和串口設備通訊的package,串口是計算機上比較通用的通訊協議,串口設備通過USB插入電腦,python通過pyserial模塊就可以完成和串口設備的通訊,
  • 串口通信原理和控制程序
    以USART1為例的串口初始化本文引用地址:http://www.eepw.com.cn/article/201809/391492.htm  本程序調用了STM32自帶的固件庫,工程中具體的文件見下圖:
  • 串口波特率轉換的純軟體實現
    本軟體用Visual Basic軟體編寫,串口用MSCOMM控制項實現。核心功能就是將Mscomm1接收的數據立即送到Mscomm2的發送區。難點在於對16進位數據的轉換處理。If Next Text1 = strData Call hexSend2 發送一個16進位 strData = "" Else Text1 = Text1 & strBuff If MSComm2.PortOpen = False Then MsgBox "請打開串口
  • 基於串口通訊技術實現流量計計量系統的設計
    而技術控制措施又是建立管理制度的基礎,在這樣的情況下,流量計計量系統發揮了強大的優勢,收到了良好的效果,給企業帶來了收益。 RS-232C和RS-485: 計算機與計算機或計算機與終端之間的數據傳送可以採用串行通訊和並行通訊二種方式。
  • 串口伺服器工作原理?艾銻科普
    串口伺服器就使得基於TCP/IP的串口數據流傳輸成為了可能,它能將多個串口設備連接並能將串口數據流進行選擇和處理,把現有的RS 232接口的數據轉化成IP埠的數據,然後進行IP化的管理,IP化的數據存取,這樣就能將傳統的串行數據送上流行的IP通道,而無需過早淘汰原有的設備,從而提高了現有設備的利用率,節約了投資,還可在既有的網絡基礎上簡化布線複雜度。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    3、關於串口的種種眾所周知。我們現在的計算機上面有很多接口。如USB。網口。並口等。串口總線是其中的一個。串行接口簡稱串口,也稱串行通信接口或串行通訊接口(通常指COM接口),是採用串行通信方式的擴展接口。
  • 關於RS232 RS422 RS485三種異步通信
    RS-232、RS-422與RS-485標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。例如:視頻伺服器都帶有多個RS422串行通訊接口,每個接口均可通過RS422通訊線由外部計算機控制實現記錄與播放。
  • 【實例】如何用串口軟體調試變頻器?
    串口調試助手界面介紹 在通信之前我們要先設置變頻器的參數。串口調試軟體這邊的通信參數要設置成和變頻器一樣。 串口調試軟體通信參數設置 COM口,看你接的是電腦的哪個接口,自己到設備管理器裡面去看。
  • 串口通訊的起始、數據、停止位是怎麼分配的?
    串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。串口通信是指採用串行通信協議(serial communication)在一條信號線上將數據一個比特一個比特地逐位進行傳輸的通信模式。