帶你認識物聯網基礎 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 的運作原理,敬請期待。

14會員
61內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
Modbus 是比 Ethernet 更簡單的通訊架構,走的是 Master-Slave 模式。協議規定 Slave 裝置們都不可以主動回應,所以 Slave 們在通訊過程中遇到看不懂的、壞掉的資料封包,能做的處理方式就是直接丟掉,從外面看 Slave 裝置的行為就跟「已讀不回」一樣毫無反應
當 Modbus 通訊模式可以選 RTU 或 ASCII 這兩種傳輸模式,不過因為兩者的運作機制不一樣,所以通訊時只能選擇其中一種來使用且傳輸端與接收端都必須使用相同的傳輸模式,才不會發生數據解讀錯誤變成一堆亂碼、兩邊雞同鴨講的狀況。關於這兩種傳輸模式的差異之處,主要有三點
我們在上一篇文章聊到了測試左移所需的 8 大能力中的前面 4 個,包含學習研究、反應回饋、作戰計畫、追溯管理的能力,這四個能力也是我們平常工作與生活上遇到困難時的解決問題的核心能力,建議還沒看過第一篇的朋友,可以先回第一篇了解一下。那麼接下來我們要就繼續聊聊測試左移的另外四個能力。
當我們有往左邊看並且嘗試為每一個開發階段設置一個檢查站來把關的想法時,就有了思考方向。原則上所有設計階段的驗證都要通過才能進入量產,因此只要中間有卡關,就不能放行進入下一個階段。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
相隔三年《怪奇物語》的第五季終於要在2015年上映了,今天就來幫大家複習一下劇中的龐大的主角們有誰,還有這些飾演他們的角色的近況吧。
Thumbnail
無聊的時候,除了看看緯來日本台有什麼新玩意兒,我也會打開劇串流平台,看看有沒有什麼有趣的。上週百般無聊,其實也不能說無聊,應該說:是覺得事情都很無趣,因為事情還挺多,只是都不想做,能推的通通不二話,直接往後推。
Thumbnail
{簡單的事情重複做,你就是專家;重複的事情認真做,你就是贏家} 每當去五金百貨大賣場買東西的時候,會不會好奇裡面的員工都在做什麼?大致上來做個這樣的簡易介紹,由於細節內容實在太多,待後續再慢慢拆解,本篇我們先來了解輪廓。
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
相隔三年《怪奇物語》的第五季終於要在2015年上映了,今天就來幫大家複習一下劇中的龐大的主角們有誰,還有這些飾演他們的角色的近況吧。
Thumbnail
無聊的時候,除了看看緯來日本台有什麼新玩意兒,我也會打開劇串流平台,看看有沒有什麼有趣的。上週百般無聊,其實也不能說無聊,應該說:是覺得事情都很無趣,因為事情還挺多,只是都不想做,能推的通通不二話,直接往後推。
Thumbnail
{簡單的事情重複做,你就是專家;重複的事情認真做,你就是贏家} 每當去五金百貨大賣場買東西的時候,會不會好奇裡面的員工都在做什麼?大致上來做個這樣的簡易介紹,由於細節內容實在太多,待後續再慢慢拆解,本篇我們先來了解輪廓。
Thumbnail
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Thumbnail
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
Thumbnail
感謝謐時光心理諮商所及張力尤臨床心理師的邀請,至桃園市向各位心理師夥伴分享我在醫學中心從事失智症照護工作的相關經驗。
Thumbnail
Figma是一個主要用來設計網頁的矢量設計軟件,與Wordpress,Shopify, Webflow等不同,Figma做出來的並不是實際的網站,而是一個雛型(Prototype)。 那你或許會想:“為什麼不直接使用類似Wordpress的工具呢?’’ 試想想以下這一個情況: 你用Wordpress
Thumbnail
近期台灣各地區,可以看見夾娃娃機台再度如雨後春筍般出現。只是,這次除了不同於店面的完整度外,還有機台的內容物:是零食而不再是娃娃!
Thumbnail
從短篇文中教你認識會計之四大財務報表 在會計學當中,有固定之四大正式報表,分別為「資產負債表」、「綜合損益表」、「權益變動表」以及「現金流量表」,今天帶大家簡單認識會計當中的四大財務報表分別要帶給大家何種資訊價值。 資產負債表,又稱財務狀況表,從名字就可得知,其主要表達的資訊即一家公司在「某一時點」