完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > 串口通訊
串口通信(Serial Communication), 是指外設和計算機間,通過數據信號線 、地線、控制線等,按位進行傳輸數據的一種通訊方式。這種通信方式使用的數據線少,在遠距離通信中可以節約通信成本,但其傳輸速度比并行傳輸低。
串口通信(Serial Communication), 是指外設和計算機間,通過數據信號線 、地線、控制線等,按位進行傳輸數據的一種通訊方式。這種通信方式使用的數據線少,在遠距離通信中可以節約通信成本,但其傳輸速度比并行傳輸低。
隨著計算機系統的應用和微機網絡的發展,通信功能越來越顯得重要。這里所說的通信是指計算機與外界的信息交換。因此,通信既包括計算機與外部設備之間,也包括計算機和計算機之間的信息交換。由于串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,并且可以借助現成的電話網進行信息傳送,因此,特別適合于遠距離傳輸。對于那些與計算機相距不遠的人-機交換設備和串行存儲的外部設備如終端、打印機、邏輯分析儀、磁盤等,采用串行方式交換數據也很普遍。在實時控制和管理方面,采用多臺微機處理機組成分級分布控制系統中,各 CPU 之間的通信一般都是串行方式。所以串行接口是微機應用系統常用的接口。許多外設和計算機按串行方式進行通信,這里所說的串行方式,是指外設與接口電路之間的信息傳送方式,實際上,CPU 與接口之間仍按并行方式工作。
串口通信(Serial Communication), 是指外設和計算機間,通過數據信號線 、地線、控制線等,按位進行傳輸數據的一種通訊方式。這種通信方式使用的數據線少,在遠距離通信中可以節約通信成本,但其傳輸速度比并行傳輸低。
隨著計算機系統的應用和微機網絡的發展,通信功能越來越顯得重要。這里所說的通信是指計算機與外界的信息交換。因此,通信既包括計算機與外部設備之間,也包括計算機和計算機之間的信息交換。由于串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,并且可以借助現成的電話網進行信息傳送,因此,特別適合于遠距離傳輸。對于那些與計算機相距不遠的人-機交換設備和串行存儲的外部設備如終端、打印機、邏輯分析儀、磁盤等,采用串行方式交換數據也很普遍。在實時控制和管理方面,采用多臺微機處理機組成分級分布控制系統中,各 CPU 之間的通信一般都是串行方式。所以串行接口是微機應用系統常用的接口。許多外設和計算機按串行方式進行通信,這里所說的串行方式,是指外設與接口電路之間的信息傳送方式,實際上,CPU 與接口之間仍按并行方式工作。
工作方式
由于 CPU 與接口之間按并行方式傳輸,接口與外設之間按串行方式傳輸,因此,在串行接口中,必須要有 “ 接收移位寄存器 ” (串→并)和 “ 發送移位寄存器 ” (并→串)。 在數據輸入過程中,數據 1 位 1 位地從外設進入接口的 “ 接收移位寄存器 ”,當 “ 接收移位寄存器 ” 中已接收完 1 個字符的各位后,數據就從 “ 接收移位寄存器 ” 進入 “ 數據輸入寄存器 ” 。 CPU 從 “ 數據輸入寄存器 ” 中讀取接收到的字符。(并行讀取,即 D7~D0 同時被讀至累加器中)。 “ 接收移位寄存器 ” 的移位速度由 “ 接收時鐘 ” 確定。
在數據輸出過程中,CPU 把要輸出的字符(并行地)送入 “ 數據輸出寄存器 ”,“ 數據輸出寄存器 ” 的內容傳輸到 “ 發送移位寄存器 ”,然后由 “ 發送移位寄存器 ” 移位,把數據 1 位 1 位地送到外設。 “ 發送移位寄存器 ” 的移位速度由 “ 發送時鐘 ” 確定。
接口中的 “ 控制寄存器 ” 用來容納 CPU 送給此接口的各種控制信息,這些控制信息決定接口的工作方式。
“ 狀態寄存器 ” 的各位稱為 “ 狀態位 ”,每一個狀態位都可以用來指示數據傳輸過程中的狀態或某種錯誤。例如,用狀態寄存器的 D5 位為 “1” 表示 “ 數據輸出寄存器 ” 空,用 D0 位表示 “ 數據輸入寄存器滿 ”,用 D2 位表示 “ 奇偶檢驗錯 ” 等。
能夠完成上述 “ 串 《- -》 并 ” 轉換功能的電路,通常稱為 “ 通用異步收發器 ” (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550
接口標準
⑴實現數據格式化:因為來自CPU的是普通的并行數據,所以,接口電路應具有實現不同串行通信方式下的數據格式化的任務。在異步通信方式下,接口自動生成起止式的幀數據格式。在面向字符的同步方式下,接口要在待傳送的數據塊前加上同步字符。
⑵進行串-并轉換:串行傳送,數據是一位一位串行傳送的,而計算機處理數據是并行數據。所以當數據由計算機送至數據發送器時,首先把串行數據轉換為并行數才能送入計算機處理。因此串并轉換是串行接口電路的重要任務。
⑶控制數據傳輸速率:串行通信接口電路應具有對數據傳輸速率——波特率進行選擇和控制的能力。
⑷進行錯誤檢測:在發送時接口電路對傳送的字符數據自動生成奇偶校驗位或其他校驗碼。在接收時,接口電路檢查字符的奇偶校驗或其他校驗碼,確定是否發生傳送錯誤。
⑸進行TTL與EIA電平轉換:CPU和終端均采用TTL電平及正邏輯,它們與EIA采用的電平及負邏輯不兼容,需在接口電路中進行轉換。
⑹提供EIA-RS-232C接口標準所要求的信號線:遠距離通信采用MODEM時,需要9根信號線;近距離零MODEM方式,只需要3根信號線。這些信號線由接口電路提供,以便與MODEM或終端進行聯絡與控制。(理論性強)
串口通信的基本知識
本文介紹了串口通訊的基本概念、數據格式、通訊方式、典型的串口通訊標準等內容。
串口通訊,RS232,RS485,停止位,奇校驗,偶校驗
1 串口通訊
串口通訊(Serial Communication),是指外設和計算機間,通過數據信號線、地線等,按位進行傳輸數據的一種通訊方式。
串口是一種接口標準,它規定了接口的電氣標準,沒有規定接口插件電纜以及使用的協議。
2 串口通訊的數據格式
一個字符一個字符地傳輸,每個字符一位一位地傳輸,并且傳輸一個字符時,總是以“起始位”開始,以“停止位”結束,字符之間沒有固定的時間間隔要求。
每一個字符的前面都有一位起始位(低電平),字符本身由7位數據位組成,接著字符后面是一位校驗位(檢驗位可以是奇校驗、偶校驗或無校驗位),最后是一位或一位半或二位停止位,停止位后面是不定長的空閑位,停止位和空閑位都規定為高電平。實際傳輸時每一位的信號寬度與波特率有關,波特率越高,寬度越小,在進行傳輸之前,雙方一定要使用同一個波特率設置。
3 通訊方式
單工模式(Simplex Communication)的數據傳輸是單向的。通信雙方中,一方固定為發送端,一方則固定為接收端。信息只能沿一個方向傳輸,使用一根傳輸線。
半雙工模式(Half Duplex)通信使用同一根傳輸線,既可以發送數據又可以接收數據,但不能同時進行發送和接收。數據傳輸允許數據在兩個方向上傳輸,但是,在任何時刻只能由其中的一方發送數據,另一方接收數據。因此半雙工模式既可以使用一條數據線,也可以使用兩條數據線。半雙工通信中每端需有一個收發切換電子開關,通過切換來決定數據向哪個方向傳輸。因為有切換,所以會產生時間延遲,信息傳輸效率低些。
全雙工模式(Full Duplex)通信允許數據同時在兩個方向上傳輸。因此,全雙工通信是兩個單工通信方式的結合,它要求發送設備和接收設備都有獨立的接收和發送能力。在全雙工模式中,每一端都有發送器和接收器,有兩條傳輸線,信息傳輸效率高。
顯然,在其它參數都一樣的情況下,全雙工比半雙工傳輸速度要快,效率要高。
4 偶校驗與奇校驗
在標準ASCII碼中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。奇校驗規定:正確的代碼一個字節中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的代碼一個字節中1的個數必須是偶數,若非偶數,則在最高位b7添1。
5 停止位
停止位是按長度來算的。串行異步通信從計時開始,以單位時間為間隔(一個單位時間就是波特率的倒數),依次接受所規定的數據位和奇偶校驗位,并拼裝成一個字符的并行字節;此后應接收到規定長度的停止位“1”。所以說,停止位都是“1”,1.5是它的長度,即停止位的高電平保持1.5個單位時間長度。一般來講,停止位有1,1.5,2個單位時間三種長度。
6 波特率
波特率就是每秒鐘傳輸的數據位數。
波特率的單位是每秒比特數(bps),常用的單位還有:每秒千比特數Kbps,每秒兆比特數Mbps。串口典型的傳輸波特率600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps。
PLC/PC與稱重儀表通訊時,最常用的波特率是9600bps,19200bps。PLC/PC或儀表與大屏幕通訊時,最常用的波特率是600bps。
7 典型的串口通訊標準
EIA RS232(通常簡稱“RS232”): 1962年由美國電子工業協會(EIA)制定。
EIA RS485(通常簡稱“RS485”): 1983年由美國電子工業協會(EIA)制定。
8 RS232串口
RS232是計算機與通信工業應用中最廣泛一種串行接口。它以全雙工方式工作,需要地線、發送線和接收線三條線。RS232只能實現點對點的通信方式。
8.1 RS232串口缺點
●接口信號電平值較高,接口電路芯片容易損壞。
●傳輸速率低,最高波特率19200bps。
●抗干擾能力較差。
●傳輸距離有限,一般在15m以內。
●只能實現點對點的通訊方式。
8.2 RS232串口接口定義
RXD:接收數據,TXD:發送數據,GND/SG:信號地。
8.3 電腦DB9針接口定義
電腦DB9針接口是常見的RS232串口,其引腳定義如下:
2號腳:RXD(接收數據)
3號腳:TXD(發送數據)
5號腳:SG或GND(信號地)
其它腳:我們不用
電腦RS232串口與儀表串口連接圖:
9 RS485串口
9.1 RS485串口特點
●RS485采用平衡發送和差分接收,具有良好的抗干擾能力,信號能傳輸上千米。
●RS485有兩線制和四線制兩種接線。采用四線制時,只能實現點對多的通訊(即只能有一個主設備,其余為從設備)。四線制現在很少采用,現在多采用兩線制接線方式。
●兩線制RS485只能以半雙式方式工作,收發不能同時進行。
●RS485在同一總線上最多可以接32個結點,可實現真正的多點通訊,但一般采用的是主從通信方式,即一個主機帶多個從機。
●因RS485接口具有良好的抗干擾能力,長的傳輸距離和多站能力等優點使其成為首選的串行接口。
9.2 485抑制共模干擾示意圖
9.3 RS485串口接口定義
A或Data+(D+)或+:信號正;
B或Data-(D-)或-:信號負。
9.4 計算機與RS485儀表通訊
計算機自帶的串口只有RS232,沒有RS485,如果計算機要與RS485串口的儀表進行通訊,必須使用串口轉換器或裝上RS485串口轉換卡后才能進行通訊。
9.5 RS485串口的終端電阻
●一般情況下不需要增加終端電阻,只有在RS485通信距離超過100米的情況下,要在RS485通訊的開始端和結束端增加終端電阻,RS485典型終端電阻是120歐。
●終端電阻是為了消除在通信電纜中的信號反射在通信過程中,有兩種信號因導致信號反射:阻抗不連續和阻抗不匹配。
阻抗不連續,信號在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號在這個地方就會引起反射。消除這種反射的方法,就必須在電纜的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續。由于信號在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個同樣大小的終端電阻。
引起信號反射的另一原因是數據收發器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現在通訊線路處在空閑方式時,整個網絡數據混亂。要減弱反射信號對通訊線路的影響,通常采用噪聲抑制和加偏置電阻的方法。在實際應用中,對于比較小的反射信號,為簡單方便,經常采用加偏置電阻的方法。
10 串口通訊硬件常見的注意事項
●通訊電纜端子一定接牢,不可有任何松動,否則,可能會燒壞儀表或上位機的通訊板。
●不可帶電拔插通訊端子,否則,可能會燒壞儀表或上位機的通訊板,一定要關閉儀表電源后才能去拔插通訊端子或接通訊線。
●通訊用的屏蔽電纜最好選用雙層隔離型屏蔽電纜,其次選用單層屏蔽電纜,最好不要選用無屏蔽層的電纜,且電纜屏蔽層一定要能完全屏蔽,有些質量差的電纜,屏蔽層很松散,根本起不到屏蔽的作用。單層屏蔽的電纜屏蔽層應一端接地,雙層屏蔽的電纜屏蔽層其外層(含鎧裝)應兩端接地,內層屏蔽則應一端接地。
●儀表使用RS232通訊時,通訊電纜長度不得超過15米。
●一般RS485協議的接頭沒有固定的標準,可能根據廠家的不同引腳順序和管腳功能可能不盡相同,用戶可以查閱相關產品RS485的引腳圖。
●RS485通訊電纜最好選用阻阬匹配、低衰減的RS485專用通訊電纜(雙絞線),不要使用普通的雙絞電纜或質量較差的通訊電纜。因為普通電纜或質量差的通訊電纜,可能阻抗不匹配、衰減大、絞合度不夠、屏蔽層太松散,這樣會導致干擾將非常大,會造成通訊不暢,甚至通訊不上。
●儀表使用RS485通訊時,每臺儀表必須手牽手地串下去,不可以有星型連接或者分叉,如果有星型連接或者分叉,干擾將非常大,會造成通訊不暢,甚至通訊不上。
●485總線結構理論上傳輸距離達到1200米,一般是指通訊線材優質達標,波特率9600,只有一臺485設備才能使得通訊距離達到1200米,而且能通訊并不代表每次通訊都正常,所以通常485總線實際的穩定通訊距離遠遠達不到1200米。負載485設備多,線材阻抗不同時,通訊距離更短。
●儀表使用RS485通訊時,必要時,請接入終端電阻,以增強系統的抗干擾性,典型的終端電阻阻值是120歐。
11 串口通訊軟件設置要點
11.1 有關通訊的一些基本概念
●主機與從機:在通訊系統中起主要作用、發布主要命令的稱為主機,接受命令的稱為從機。
●連續方式:指主機不需要發布命令,從機就能自動地向主機發送數據。
●指令方式:指主機向從機發布命令,從機根據指令執行動作,并將結果“應答”給主機的模式。
●輸出數據類型:指在連續方式通訊時,從機輸出給主機的數據類型。
●通訊協議:指主機與從機通訊時,按哪一種編碼規則來通訊。
●波特率:主從機之間通訊的速度。
●數據位:每次傳輸數據時,數據由幾位組成。
●校驗位:數據傳輸錯誤檢測,可以是奇校驗、偶校驗或無校驗。
●地址:每一臺從機的編號。
11.2 主從機之間通訊設置要點
●要點一:主/從RS232/485硬件有無設置正確,通訊線有無接對。有些通訊板卡是RS422與RS485共用的,依靠板上跳線來實現的,有些儀表RS232/485也需要通訊跳線來實現。
●要點二:主機上的通訊端口有無設置正確;超時(一般設置為2s)、通訊延時(一般設置為5~20ms)、ACK信號延時(一般設置為0ms)有無設置正確。
●要點三:主/從機通訊協議有無選擇正確。
●要點四:主/從機波特率有無選擇正確。
●要點五:主/從機數據位有無選擇正確。數據位可以選擇7位,8位。
●要點六:主/從機校驗位有無選擇正確。校驗位一般可選擇偶校驗、奇校驗、無校驗。
●要點七:主/從機停止位有無選擇正確。停止位可以選擇1位、1.5位還是2位。
●要點八:從機地址有無選擇正確。
●要點九:主/從機的通訊方式有無選擇正確。
進行通訊測試的時候經常會進行線路測試,測試所用的串口線是否可用,方法有二如下:
1 把串口線接到不同的串口,用串口調試工具從一個串口發數據,另一個能正常收到說明串口線是OK的。
2 把串口線的一端短接(用金屬把2,3號腳連通),用萬用表測另一端的2,3號如果正常的話會有嘀嘀的短接報警聲。
快速判斷出485從站設備是否支持MODBUS RTU無線通訊
對于變頻器和儀表設備,都支持485串口通訊,那么怎么判斷從站設備支持那種協議呢?通常分為兩種方式去判斷:1.從設備參數參看2.從設備通訊報文查看。本次文...
FX20系列分布式I/O重磅發布兩款功能模塊,2通道高速計數模塊和2通道串口通訊模塊,基于高速背板總線并搭配多種耦合器,為控制系統提供更豐富的功能選擇,...
設備232、485和TTL都是串口通訊的常見接口類型的區別及如何選擇
設備232、485和TTL都是串口通訊的常見接口類型的區別及如何選擇 設備232、485和TTL都是串口通訊的常見接口類型,它們之間有以下區別: 232...
MG-LINK Mini是由巨微集成電路自主研發的低功耗、高可靠性、自帶PCB天線的BLE透傳模塊。巨微憑借其知名的芯片和協議棧設計能力,為芯片和模塊品...
首先需要選擇“Create new project”選項,然后在“Project name:”里輸入PTP;在“Path:”修改項目的存儲路徑為“C:”...
隨著科技的提升,許多廠家在生產測畝儀的同時,還會加入語音提示功能,這是為了便捷用戶在事實考察時,方便與機器實現交互功能,僅需一個按鍵便可播報當前測量的面...
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯網 | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發電 | UPS | AR | 智能電網 | 國民技術 | Microchip |
開關電源 | 步進電機 | 無線充電 | LabVIEW | EMC | PLC | OLED | 單片機 |
5G | m2m | DSP | MCU | ASIC | CPU | ROM | DRAM |
NB-IoT | LoRa | Zigbee | NFC | 藍牙 | RFID | Wi-Fi | SIGFOX |
Type-C | USB | 以太網 | 仿真器 | RISC | RAM | 寄存器 | GPU |
語音識別 | 萬用表 | CPLD | 耦合 | 電路仿真 | 電容濾波 | 保護電路 | 看門狗 |
CAN | CSI | DSI | DVI | Ethernet | HDMI | I2C | RS-485 |
SDI | nas | DMA | HomeKit | 閾值電壓 | UART | 機器學習 | TensorFlow |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |