
發(fā)布
注冊
/
登錄串口通信
關注創(chuàng)建者:匿名 創(chuàng)建時間:2021-11-05

串口通信的實例教程
什么是串口通信
串口通信,就是傳數(shù)據(jù)只有一根線傳輸,一次只能傳一個位,要傳一個字節(jié)就需要傳8次。串口通信就是把數(shù)據(jù)串在一根線上傳輸,所以就叫串口吧。
在對速率要求不高的情況,使用一根線發(fā)送數(shù)據(jù)是帶來大大的方便和實用價值的。
為了能正常發(fā)送和接收正確的數(shù)據(jù),那異步串口通信就需要如下圖的格式。
在串口的通信參數(shù)上,就有了波特率、起始位、數(shù)據(jù)位、校驗位、停止位這幾個參數(shù)。
232\485\422的區(qū)別
串口通信主要為分232、485、422三種通信方式,這三種有什么區(qū)別呢?
01
232通信
232通信主要是由RX、TX、GND三根線組成。RX接TX,TX接RX,GND接GND。這里發(fā)送和接收分別是由不同的線處理的,也就是能同時發(fā)送數(shù)據(jù)和接收數(shù)據(jù),這就是所謂的全雙工通信。
在這里擴展一下,串口通信還有一個功能叫做全功能串口通信,也叫標準串口。因為在兩個設備間進行數(shù)據(jù)傳輸,有些設備處理速度比較快,有些數(shù)據(jù)比較慢。為了保證數(shù)據(jù)能正常傳輸,在RX、TX的基礎上,還增加了幾個控制引腳,最后成了9個引腳,也就是常見的DB9這個東西,如下圖所示。
但是,如今很多控制器、人機界面、PLC等使用串口通信中一般不使用標準串口,而是直接使用RX、TX、GND三根線來通信的。
02
485通信
485的出現(xiàn),是為了解決232通信距離受限的問題。
展開 一、什么是串口通訊?
串行通訊是指僅用一根接收線和一根發(fā)送線就能將數(shù)據(jù)以位進行傳輸?shù)囊环N通訊方式。盡管串行通訊的比按字節(jié)傳輸?shù)牟⑿?em>通信慢,但是串口可以在僅僅使用兩根線的情況下就能實現(xiàn)數(shù)據(jù)的傳輸。
典型的串口通信使用3根線完成,分別是地線、發(fā)送、接收。由于串口通信是異步的,所以端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶的校驗。對于兩個需要進行串口通信的端口,這些參數(shù)必須匹配,這也是能夠實現(xiàn)串口通訊的前提。
圖1:串行通訊示數(shù)據(jù)傳輸意圖
二、串口通訊的通訊協(xié)議?
最初數(shù)據(jù)是模擬信號輸出簡單過程量,后來儀表接口出現(xiàn)了RS232接口,這種接口可以實現(xiàn)點對點的通信方式,但這種方式不能實現(xiàn)聯(lián)網(wǎng)功能,這就促生了RS485。
我們知道串口通信的數(shù)據(jù)傳輸都是0和1,在單總線、I2C、UART中都是通過一根線的高低電平來判斷邏輯1或者邏輯0,但這種信號線的GND再與其他設備形成共地模式的通信,這種共地模式傳輸容易產生干擾,并且抗干擾性能也比較弱。所以差分通信、支持多機通信、抗干擾強的RS485就被廣泛的使用了。
RS485通信最大特點就是傳輸速度可以達到10Mb/s以上,傳輸距離可以達到3000米左右。大家需要注意的是雖然485最大速度和最大傳輸距離都很大,但是傳輸?shù)乃俣仁菚S距離的增加而變慢的,所以兩者是不可以兼得的。
三、串口通訊的物理層
串口通訊的物理層有很多標準,例如上面提到的,我們主要講解RS-232標準,RS-232標準主要規(guī)定了信號的用途、通訊接口以及信號的電平標準。
在上面的通訊方式中,兩個通訊設備的"DB9接口"之間通過串口信號線建立起連接,串口信號線中使用"RS-232標準"傳輸數(shù)據(jù)信號。
展開 串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。
串口通信是指采用串行通信協(xié)議(serial communication)在一條信號線上將數(shù)據(jù)一個比特一個比特地逐位進行傳輸?shù)?em>通信模式。
串口按電氣標準及協(xié)議來劃分,包括RS-232-C、RS-422、RS485等。
1.串行通信
在串行通信中,數(shù)據(jù)在1位寬的單條線路上進行傳輸,一個字節(jié)的數(shù)據(jù)要分為8次,由低位到高位按順序一位一位的進行傳送。
串行通信的數(shù)據(jù)是逐位傳輸?shù)模l(fā)送方發(fā)送的每一位都具有固定的時間間隔,這就要求接收方也要按照發(fā)送方同樣的時間間隔來接收每一位。不僅如此,接收方還必須能夠確定一個信息組的開始和結束。
常用的兩種基本串行通信方式包括同步通信和異步通信。
1.1串行同步通信
同步通信(SYNC:synchronous data communication)是指在約定的通信速率下,發(fā)送端和接收端的時鐘信號頻率和相位始終保持一致(同步),這樣就保證了通信雙方在發(fā)送和接收數(shù)據(jù)時具有完全一致的定時關系。
同步通信把許多字符組成一個信息組(信息幀),每幀的開始用同步字符來指示,一次通信只傳送一幀信息。在傳輸數(shù)據(jù)的同時還需要傳輸時鐘信號,以便接收方可以用時針信號來確定每個信息位。
同步通信的優(yōu)點是傳送信息的位數(shù)幾乎不受限制,一次通信傳輸?shù)臄?shù)據(jù)有幾十到幾千個字節(jié),通信效率較高。
展開 PLC串口通信原理
PLC各型主機均內建2個通信接口的標準配置,即一個RS232和一個RS485通信接口,其RS232接口主要用于上下載程序或用來與上位機、觸摸屏通信,而RS485接口主要用于組建使用RS485協(xié)議的網(wǎng)絡,實現(xiàn)通信控制。
1.RS232接口
RS232-C接口連接器一般使用型號為DB-9的9芯插頭座,只需3條接口線,即"發(fā)送數(shù)據(jù)"、"接收數(shù)據(jù)"和"信號地"即可傳輸數(shù)據(jù),其9個引腳的定義如圖11-3所示。
圖11-3 RS232-C接口連接器定義
在RS232的規(guī)范中,電壓值在+3V~+15V(一般使用+6V)稱為"0"或"ON"。電壓在-3V~-15V(一般使用-6V)稱為"1"或"OFF";計算機上的RS232"高電位"約為9V,而"低電位"則約為-9V。
RS232為全雙工工作模式,其信號的電壓是參考地線而得到的,可以同時進行數(shù)據(jù)的傳送和接收。在實際應用中采用RS232接口,信號的傳輸距離可以達到15m。不過RS232只具有單站功能,即一對一通信。
2.RS485接口
RS485采用正負兩根信號線作為傳輸線路。兩線間的電壓差為+2V~6V表示邏輯"1":兩線間的電壓差為-2V~6V表示邏輯"0"。
RS485為半雙工工作模式,其信號由正負兩條線路信號準位相減而得,是差分輸入方式,抗共模干擾能力強,即抗噪聲干擾性好;實際應用中其傳輸距離可達1200米。RS485具有多站能力,即一對多的主從通信。
在串行通信中,數(shù)據(jù)通常是在兩個站之間傳送,按照數(shù)據(jù)在通信線路上的傳送方向可分為3種基本的傳送方式:單工、半雙工和全雙工,如圖11-4所示。
圖11-4 單工、半雙工和全雙工通信
單工通信使用一根導線,信號的傳送方和接收方有明確的方向性。也就是說,通信只在一個方向上進行。
展開 51單片機可以用串口來調試,STM32可以用串口來調試,Linux開發(fā)板也是使用串口來調試。
當你學會串口通信時,你可以開始玩WIFI模塊、GSM模塊、藍牙模塊、GPS模塊、以及各種使用串口通信的傳感器等等。有能力你還可以編寫上位機軟件通過串口通信來控制設備。
串口通信需要什么
如果你只有STM32核心板,那么你還需要一個串口轉USB模塊和一個串口數(shù)據(jù)接收軟件還有幾根杜邦線就可以了。
如果你的是比較完整的一款開發(fā)板的話,一般都已經(jīng)帶有串口轉USB模塊,這樣使用起來就更簡單了。聰明的你是不是發(fā)現(xiàn)還缺少了點什么,對。沒錯因為還缺少了最重要的程序。想要使用串口通信當然還需要寫串口通信的程序。
下文就教你如何去用,而不是寫。
串口實驗
關于串口的實驗,之前錄過一個基于HAL庫來實現(xiàn)的視頻,可以點擊查看。
??STM32打印數(shù)據(jù)到串口助手
而下文中的實驗基于標準庫實現(xiàn)的,與HAL相比思路是一樣的。
在做一個實驗時,最好把這個實驗分割成幾個關鍵的步驟,這樣做的好處就是可以清晰的知道自己需要做什么,以及做完了哪些。還有哪些還沒做。
下面把串口實驗分成幾個關鍵的步驟:
1)串口通信使用到的GPIO引腳配置
STM32F103系列的芯片一般都有三個串口以上,用來調試使用的串口一般都是使用USART1。其他的串口配置都是一樣的。
展開 
串口通信的最新內容
(2)串口:設備和計算機通過USB連接,通過識別串口連接,通信方法與TCP類似。
一般我們購買采集器的時候,廠家都會提供通信指令,這個不復雜。比如東華測試的采集器,我們用的比較多,也比較穩(wěn)定。
3 閥門生產線控制系統(tǒng)的程序設計
該系統(tǒng)的軟件部分使用GX Developer 8.0編程軟件進行編寫,編譯后的程序可通過通信串口直接下載到PLC中,為程序的模擬運行和在線調試提供了諸多便利。PLC控制程序各部分的組成和設計內容如下:
(1)初始化。用戶自定義電機的初始參數(shù),包括最高、最低速度,原始位置、加速度等[6]。
通用DSP與單片機的比較
單片機只有單總線,且片外地址、數(shù)據(jù)線復用;
而DSP片內有多總線,片外的地址、 數(shù)據(jù)總線分開,還有比異步串口(DART)速度高得多的同步串口或通信口,因此,數(shù)據(jù) 輸入/輸出能力很強。
DSP數(shù)據(jù)位寬,乘加器位寬也比單片機大,進行數(shù)字信號處理時速度快、精度高。
DSP有大容量的片內存儲器。
單板機時代
上世紀 70 年代初期,嵌入式系統(tǒng)是由分離部件如:CPU、ROM、RAM、I/O 緩存、串口和其他通信與控制接口組成的控制板。
這一時期除法律外,幾乎沒有保護措施來防止侵入者復制單板機上 ROM 區(qū)的數(shù)據(jù)。
同時,串口通信協(xié)議也可以用于獲取遠程采集設備的數(shù)據(jù)。
串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信要慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠實現(xiàn)遠距離通信。
西門子PLC支持很多種通信協(xié)議,主要分為兩種,一種是串口通信,一種是以太網(wǎng)通信,同時也可以通過OPC實現(xiàn)數(shù)據(jù)通信。
串口通信
西門子PLC支持串口通信,在S7-200和S7-200Smart中,都直接集成了串口,但是從S7-1200到S7-1500,慢慢都取消掉了,如果需要,可以通過擴展模塊的方式來增加,出現(xiàn)這種現(xiàn)象的原因,其實也是工業(yè)發(fā)展的必然結果。
二、RS485串口通訊
第三方設備大部分支持,西門子S7 PLC可以通過選擇自由口通信模式控制串口通信。最簡單的情況是只用發(fā)送指令(XMT)向打印機或者變頻器等第三方設備發(fā)送信息。不管任何情況,都必須通過S7 PLC編寫程序實現(xiàn)。
當選擇了自由口模式,用戶可以通過發(fā)送指令(XMT)、接收指令(RCV)、發(fā)送中斷、接收中斷來控制通信口的操作。
我們都知道RS485雙半雙工通信,其CPU內部的根源是串口通信,串口通信是區(qū)分發(fā)送TX和接收RX的,在同一對差分信號線上同時傳輸TX、RX,就是進行方向的控制,方向的控制時機不對,數(shù)據(jù)傳送是要出問題的。
什么是串口通信
串口通信,就是傳數(shù)據(jù)只有一根線傳輸,一次只能傳一個位,要傳一個字節(jié)就需要傳8次。串口通信就是把數(shù)據(jù)串在一根線上傳輸,所以就叫串口吧。
在對速率要求不高的情況,使用一根線發(fā)送數(shù)據(jù)是帶來大大的方便和實用價值的。
0
2
RS485串口通訊
第三方設備大部分支持,西門子S7 PLC可以通過選擇自由口通信模式控制串口通信。最簡單的情況是只用發(fā)送指令(XMT)向打印機或者變頻器等第三方設備發(fā)送信息。