帶你認識物聯網基礎 Serial 通訊(ㄧ)

更新於 發佈於 閱讀時間約 6 分鐘

Let's talk about serial communication.

還記得之前我們在聊物聯網 Modbus 通訊協議的時候,有提到有機會要來說說 Serial 通訊。相較於 Modbus 是應用層級(與物理底層無關)的通訊協議, 這次的 Serial 通訊會談到更多實現物理層通訊的原理,不囉唆開始吧。

Serial 通訊的前世今生

Serial 通訊是 1960 發展起來的技術,是很古老了沒錯,不過在物聯網的世界裡 Serial 通訊仍是老當益壯、不可忽視的存在。

COM Port

聊到 Serial 通訊就一定會提到 COM (Component Object Mode) Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格。

關於 COM Port 的技術應用我自己也是等到從事系統整合工作才陸續接觸到,當時主要以 RS232/RS485 應用為主,因為整合工作有相當大部分時間要透過各種的 Serial 通訊界面來與儀器設備溝通。要學會應用 COM Port 所需的基礎知識不算太多,對一個使用者角色來說只要懂得設定好通訊參數,有能力確認(排除)發送跟接收端通訊就可以了,接著就是寫程式跟儀器或設備進行通訊,實現用軟體遙控各種機器設備的整合任務,Amazing!

後來隨著系統越做越大,要控制的設備越來越多,單靠主機上的兩個 COM Port 根本不夠用就必須使用專門介面卡來擴充,有些擴充卡只要一張可以給出 16 COM Port 來(通常都是 RS485)實在相當方便。後來有機會與更專業的同事深入請教 Serial 知識後才發現,原來過去熟知的 RS232/RS485 也就是眾多的 Serial 通訊實體的一兩種而已啊。

電腦主機板

電腦主機板

串列埠通訊

Serial 通訊又被稱為串列埠通訊,顧名思義就是電腦資料傳輸資料的方式是 1 個 bit 接著 1 個 bit ,例如,Ethernet, USB, SATA, SPI, .. 都是屬於 Serial 通訊範圍。最早的 Serial 通訊是設計給兩台電腦間通訊使用的,概念就像電話用專線把兩台電腦透過 COM Port 互相連接起來(RX/TX, CTS/RTS 要對接)。後來開始進入撥接網路的時代,連接電腦的 COM Port 就改連接到小烏龜 mod 上了。隨著通訊技術、晶片製程能力發展通訊速度也越來越快,Serial 通訊用途也開始突破不再被侷限在電腦對電腦或者單純外接硬體設備,例如打字機、鍵盤、滑鼠、印表機、隨身碟…。

COM Port to Modem

COM Port to Modem

訊號你從哪裡來?

既然最早的 Serial 通訊是要設計給電腦通訊使用,我們不妨理解成數據出發點就是電腦了。稍微換個角度往電腦內部看,就會發現裡面元件通訊是走匯流排模式,匯流排你可以把它先把他想成多個訊號通道集成在一起的通訊接口,匯流排每一個數據通道都能用來傳送或接收資料,而使用匯流排的通訊方式叫做 Parallel 模式,想當然耳 Parallel 通訊效率肯定遠比 Serial 通訊模式好「非常多」。

同樣要傳輸 1 byte (8 bit) 的資料的話,用 Serial 模式每次傳送 1 個 bit,1 byte 需要分 8 次傳輸,總共需要 8 個 clock 時間;如果是 Parallel 模式傳輸 1 byte 資料,用 8 個數據通道跟 1 個 clock 時間就可以搞定,效率瞬間提升 8 倍。不過,Parallel 模式缺點也很明顯,就是傳輸距離很短且成本很貴(要很多傳輸通道),主要還是電腦內部需要高速傳輸的元件使用,像是 CPU 或是 Memory,電腦外面的訊號傳輸還是以 Serial 通訊為主。

Serial Communication,  RS485, from CUI Devices

Serial Communication, RS485, from CUI Devices

UART,Parallel 轉 Serial 的秘密

我想借用上面 CUI Devices 網站找到的 RS485 的通訊示意圖(出處)(手繪感十足)來進一步說明資料轉換的部分,它包含了我們接下來要說的 UART(Universal Asynchronous Receiver/Transmitter),跟 EIA(Electronic Industries Alliance) Transceiver 兩個的重要訊號轉換元件,有這張圖就可以很好瞭解資料傳輸流程。不過開始前要先請你發揮想像力,先在這張圖的最左邊、最右邊都放一個 CPU 代表一台電腦,分別代表數據傳輸的起點與終點。

首先,Parallel 資料從最左邊 CPU 出發,資料會先進入 UART 元件的 Buffer (緩衝)區。UART 元件是負責把 CPU 存入 Buffer 區的資料從 Parallel 模式轉成 Serial 模式,過程跟概念很類似於數學的轉置 (Transpose,這部分以後有機會再來補充)。

先假設 UART 元件每次只處理一個 Byte 的數據量,只要 UART 發現 Buffer 區裡還有資料,就會持續從 Buffer 取出數據進行轉換,經過 UART 元件轉換的 Serial 訊號又叫做 TTL(Transistor-Transistor Logic) 訊號,要輸出的 TTL 訊號會從 TX 傳送出去,要接收的資料就從 RX 進來。

EIA Tranceiver,規格相容的關鍵

UART 轉出來的 TTL 訊號是可以直接拿來通訊,不過現實中有各種不同的 Serial 通訊實作因此轉出來的 TTL 還需要進一步訊號轉換。主要是不同的 Serial 通訊實作的工作電壓不同,例如 USB 是 5V, RS232 是 12V,如果直接把 RS232 的 12V 跟 TTL 3.3V 串在一起就很有可能直接 UART 元件燒掉。TTL 訊號經過不同規格的 EIA Tranceiver 可以從正式從發送電腦端離開了。

離開電腦的 Serial 訊號經過訊號線傳輸來到接收端電腦的門前,接收端電腦的 EIA Transceiver 偵測到訊號進來後就會開始工作,反向把輸入訊號電壓轉成 TTL(降電壓)後送進 UART 元件進行 Serial 訊號轉 Parallel 再放到 Buffer 區裡面,讓接收端的電腦來提取應用。

小結論

我覺得學習最有效方式是先掌握全貌由淺入深,也是這篇文章主要目的,接下來還會進一步​ UART 跟 EIA Tranceiver 的運作原理,敬請期待。

留言
avatar-img
留言分享你的想法!
avatar-img
Warren Lo的沙龍
22會員
70內容數
WarrenLo's 軟體設計武功祕笈
Warren Lo的沙龍的其他內容
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
你知道【樞紐分析表】只吃哪一種資料格式嗎 ? 猜猜看,是【結構化資料】? 還是【非結構化資料】? 利用此文章,帶你了解如何把這【不可能的任務】化為可能 !!
Thumbnail
你知道【樞紐分析表】只吃哪一種資料格式嗎 ? 猜猜看,是【結構化資料】? 還是【非結構化資料】? 利用此文章,帶你了解如何把這【不可能的任務】化為可能 !!
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
Thumbnail
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
Thumbnail
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
Thumbnail
以前當 RD 在開發系統產品的時候需要控制很多硬體設備,韌體工程師有說硬體控制可以走自定義的通訊格式,需要搭配一張指令對照表,按表組成命令下給終端設備,設備們接收到正確的指令後才會做出正確的回應(對於不認識的指令,設備會只會已讀不回!)
Thumbnail
Modbus 是一種定義在通訊應用層的協議,會根據資料跑在不同的實體介面上而有不同的「版本」,例如:應用在 RS232/RS485 串列埠介面的就是 Modbus RTU/ASCII,應用在 TCP/IP 的就是 Modbus TCP 也 SCADA 的主要應用協議。
Thumbnail
Modbus 是一種定義在通訊應用層的協議,會根據資料跑在不同的實體介面上而有不同的「版本」,例如:應用在 RS232/RS485 串列埠介面的就是 Modbus RTU/ASCII,應用在 TCP/IP 的就是 Modbus TCP 也 SCADA 的主要應用協議。
Thumbnail
上一篇題到半導體可以藉由通電改變電阻,進而做成開關,實現運算這個重要的事,這裡再來提其他半導體的妙用 記憶體 半導體做成的記憶體結構其實有很多種,像是六顆MOS組成的SRAM(Static random-access memory, 靜態隨機存取記憶體)、一個電容加上一顆MOS做成的DRAM(D
Thumbnail
上一篇題到半導體可以藉由通電改變電阻,進而做成開關,實現運算這個重要的事,這裡再來提其他半導體的妙用 記憶體 半導體做成的記憶體結構其實有很多種,像是六顆MOS組成的SRAM(Static random-access memory, 靜態隨機存取記憶體)、一個電容加上一顆MOS做成的DRAM(D
Thumbnail
要說半導體為什麼重要,以結論來說就是...手機裡面一堆重要的部分都是半導體做的阿,電腦也是半導體做的,還有一大堆~如果說鋼鐵是現代人做出任何東西骨架的材料,那半導體就是做出任何有智能的材料 好,不要這麼不負責任來細說,半導體可以很便宜的實現運算與記憶,或是說可以做電腦,人造的智能。所以說半導體做的
Thumbnail
要說半導體為什麼重要,以結論來說就是...手機裡面一堆重要的部分都是半導體做的阿,電腦也是半導體做的,還有一大堆~如果說鋼鐵是現代人做出任何東西骨架的材料,那半導體就是做出任何有智能的材料 好,不要這麼不負責任來細說,半導體可以很便宜的實現運算與記憶,或是說可以做電腦,人造的智能。所以說半導體做的
Thumbnail
簡介   I2C (Inter - Intertraed circuit)內部整合電路,顧名思義就是主要控制短距離的內部裝置,而不適用於長距離的傳輸,I2C有不同的速度模式通常都是雙向傳輸,如標準模式100 Kbit/s、低速模式 10 Kbit/s、快速模式400Kbit/s、高速模式3.4Mbi
Thumbnail
簡介   I2C (Inter - Intertraed circuit)內部整合電路,顧名思義就是主要控制短距離的內部裝置,而不適用於長距離的傳輸,I2C有不同的速度模式通常都是雙向傳輸,如標準模式100 Kbit/s、低速模式 10 Kbit/s、快速模式400Kbit/s、高速模式3.4Mbi
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News