串口線的交叉直連之痛

串口是嵌入式設備調試開發必備的硬件模塊,嵌入式設備最常用的串口協議是RS232,標準九針串口,這是由RS232標準協議文檔定義的。
串口採用插針方式連接,接口兩端一個是插針,一個是插槽,也就是我們常說的公頭(插針)和母頭(插槽),只能說這個比喻真是太邪惡了。。。
PC機都會有1-2個串口,一般是使用公頭,設備號是COM1 COM2。
但嵌入式設備在硬件設計時並不會規定必須使用哪個,有的是公頭,有的是母頭,這就導致了串口線直連和交叉之分,使用直連串口線 還是交叉串口線,確實有點亂。
要說清楚這個問題,首先從公母頭的定義說起。從網上找到的引腳定義圖如下:
這裏寫圖片描述

這裏寫圖片描述
公頭串口引腳定義是從左邊開始計數,母頭串口引腳定義是從右邊開始計數。

首先我感覺要明確一點的是2臺設備串口相連最基本的原則:
保證2臺設備串口的收發引腳交叉相連,即設備的發送引腳與另一臺設備的接收引腳相連,RX與TX交叉相連,其餘引腳還是一一對應。

作爲嵌入式設備的調試串口,波特率一般爲115200,距離也就是1米左右,這樣的數據壓力並不需要流控制。九針全功能串口中只需要保證RX TX GND連接正確即可,其餘引腳都是用作流控。
大部分嵌入式設備不會引出串口插座,爲了節省空間僅僅給出RX TX GND 3個引腳。我們需要用線與PC串口線的TX RX GND相連即可。

細心的同學根據公母頭引腳定義和連接原則可能看出一點問題來了,根據這個引腳定義,公母頭對接,明顯的是RX接RX,TX接TX啊,跟連接原則不一致啊。
這裏只能說公頭跟母頭定義方向不一致了,公頭定義是自己的引腳定義,而母頭定義,特別是RX TX引腳定義是以公頭方向來定義的引腳,比如母頭的數據輸入引腳,含義是該引腳連接公頭的數據輸入引腳,該引腳其實是母頭的數據輸出引腳,也就是說在這方面公母頭引腳定義都是以公頭爲參考方向的。
這樣的引腳定義保證了公頭與母頭相接,串口就能正常通訊。

因此如果設備使用母頭串口,我們只需要直連串口線(其實就是相當於延長線)連接即可,保證了RX與TX交叉相連。

但是如果設備使用公頭串口,我們就需要交叉串口線了。
因爲兩端都是公頭,如果使用直連串口線,可以想象插一起,2接4,3接3,肯定不行。
如何解決這個問題呢?
這就需要交叉串口線來幫忙了,它是在串口線內部將2,3引腳交叉,其餘不變。
使用雙母頭交叉串口線連接兩端的公頭串口,這樣公頭引腳2,3與串口線母頭的2,3相連,內部一轉,變成3,2。另一端串口線母頭引腳3,2與設備公頭的3,2相連。
最終就是將公頭的2,3與母頭的3,2相連!

如何區分串口線是直連還是交叉?
萬用表測量串口線一端的引腳2與另一端的引腳2是否短接,是則是直連串口線,否則是交叉串口線。

所以一句話總結:
串口異性相接(公母頭),使用直連串口線。同性相接(公公 母母),使用交叉串口線。

最後說明一點,在這裏討論都是標準的九針串口,也就是按照圖引腳定義來佈線連接,特定線序的串口,如公頭插座但是按照母頭引線,不在我們的討論範圍。

發佈了128 篇原創文章 · 獲贊 243 · 訪問量 182萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章