2023/12/04

TSN (Time-Sensitive Networking)

時效性網路(Time-sensitive Networking, TSN)是電機電子工程師協會(IEEE)定義的專用於使乙太網路更具確定性的一種網路拓展。TSN 是區域網路(LAN)解決方案,只有在TSN LAN內部才能保證其即時性。

為解決乙太網路低延遲與時間同步的問題,Industrial Ethernet 的 Protocol

  • EtherCAT
  • EtherNet/IP
  • PROFINET
  • Powerlink
  • Modbus-TCP
  • SERCOS Ⅲ

在應用上來說Industrial Ethernet是與Standard Ethernet不相容的。TSN 解決了這些問題

  1.  TSN相容於Standards Ethernet IEEE802.1規範,可以與非TSN乙太網路一起使用的區域網路,TSN支援更高頻寬的傳輸速度 (Gbit/s以上)
  2.  TSN工作在Layer 2 technology of OSI model
  3.  在Standards Ethernet的區域網路中可以做到:
     高頻寬、低延遲、保障頻寬(Priority)、時間同步等功能
  4. 透過IEEE 802.1AS (協議簡稱精確時鐘協議Precision Timing Protocol - PTP) 實現TSN裝置之間共享時間戳記 (Time Stamping) 的設備。

TSN 並未取代 Layer 2 以上層級的協定,也未定義軟體介面或硬體配置與特點,因此可相容於多種應用程式開發介面 (API)

TSN主要功能是時間同步 (Time Sync)、優先權 (Priority)、可靠性 (Reliability)、資源管理 (Resource Management)。時間同步 (Time Sync) 是透過802.1AS標準,在傳送跟接收的封包上加上時間戳記 (Time Stamping),在區域網路之中可以將設備之間的訊號同步在微秒 (us) 範圍

優先權 (Priority) 是透過802.1Qbu & 802.1Qbv標準,允許將正在傳輸的資料中斷讓優先等級較高的資料進行傳送,等優先等級較高的資料傳送完成後再回到先前被中斷的資料繼續傳輸,確保優先等級較高的資料有最大的傳輸頻寬跟最低的傳輸延遲時間。

可靠性 (Reliability) 是透過802.1CB標準,將原本要傳送的封包複製成多個不同封包,每一個不同的封包會透過不同的路徑來做傳送,最後在接收端會自動消除其它的冗餘 (Redundancy) 封包,使其接收端只會收到一筆封包資料,即使在傳輸路經之中出現了單點的故障情況 (如設備損壞或是電纜線斷開等),都可以確保目的端可以接收到正確且完整的資料。

資源管理(Resource Management) 是透過802.1Qcc標準,將TSN配置分成三種模式:

  1. 完全分散模式(Fully Distributed Model)
  2. 完全集中模式(Fully Centralized Model)
  3. 集中&分散混合模式(Centralized & Distributed Model)

一些關鍵的 IEEE 802.1 TSN 子標準包括:

  • IEEE 802.1 AS – 時序與同步
  • IEEE 802.1Qbv – 時間感知塑形器
  • IEEE 802.3Qbr – 散佈快速流量
  • IEEE 802.1Qbu – 訊框搶佔
  • IEEE 802.1Qca – 路徑控制與保留
  • IEEE 802.1CB – 備援
  • IEEE 802.1 Qcc – 串流保留的增強與改善
  • IEEE 802.1 Qch – 迴圈佇列與轉送
  • IEEE 802.1Qci – 逐一串流過濾與監管
  • IEEE 802.1CM – 前傳網路的時效性網路

TSN的應用

影音設備

電影院、音樂廳控制系統,聲音從表演者經過傳輸到聽眾接收,中間如果有延遲,是很難被接受的

汽車控制

汽車控制系統裡面有四個主流的匯流排構成 LIN、CAN、FlexRay & MOST,不同系統採用不同的匯流排且涉及到相當複雜的佈線,汽車上的設計以及感知器會日趨複雜,連接的設備也愈來愈多,TSN的技術可以區分時間敏感度以及優先層級的資料,降低延遲以及時間同步等優點,系統就能輕易且正確傳送從感測器到到影音串流各種不同類型的資料,進而提供可靠性以及可預測性的高速網路系統。

工業應用

感測器連接的節點愈多,想要每個感測器跟控制器的無縫連接就愈困難,工業自動化中,精準的時間是關鍵要素,傳統的乙太網路並無法保證網路延遲範圍,透過TSN的網路環境,在傳統乙太網路上加入了即時性的控管,對網路流量進行優先排序,提供保證延遲範圍,以便對時間較敏感的資料可以在正確的時間傳到正確的目標端。

References

一讀就懂的TSN (Time-Sensitive Networking) 應用與架構 | Macnica Galaxy

時間敏感網路(TSN)中央控制器簡介 - 科技新知 - 產業學習網

## TSN 讓工業物聯網和工業 4.0 發揮更大效用 — 您不可不知的 5 件事

TSN技術說明與Avnu認證流程 | 百佳泰 Allion Labs

# 如何實作時效性網路以確保確定性通訊

保障時遲性/高傳輸速率 時效性網路掀工業自動化革命 | 新通訊

2023/11/27

Doppler Radar

都卜勒效應 波源和觀察者有相對運動時,觀察者接受到波的頻率與波源發出的頻率並不相同的現象。這一現象最初由奧地利物理學家都卜勒於1842年發現。

物體的相對運動會引起頻率的增大或減小。當物體和波源相背離時時,波長會增大,頻率會降低,稱為都卜勒紅移,當物體和波源相向運動時,波長減小,頻率增大,稱為都卜勒藍移,根據探測到的都卜勒頻移 f′ 可以計算出物體的速度。

在馬路上,最常遇到的是消防車與救護車的警報,我們通常會發現,當車子往我們的方向靠近跟遠離時,我們聽到的警報聲音是不一樣的,而且一直在改變。

都卜勒雷達 Doppler radar 是利用都卜勒效應測量物體在雷達波束方向上的路徑運動速度的一種雷達。常用於氣象觀測。

為了檢查心臟、血管的運動狀態,了解血液流動速度,可以通過發射超聲來實現。超聲振盪器產生一種高頻的等幅超聲信號,激勵發射換能器探頭,產生連續不斷的超音波,向人體心血管器官發射,當超音波束遇到運動的臟器和血管時,便產生都卜勒效應,就可以根據反射波與發射的頻率差異求出血流速度,根據反射波以頻率是增大還是減小判定血流方向。

交通警察取締超速行車所使用的雷達槍也是都卜勒雷達的一種。交通警察向行進中的車輛發射頻率已知的超音波同時測量反射波的頻率,根據反射波的頻率變化的多少就能知道車輛的速度。裝有都卜勒測速儀的監視器有時就裝在路的上方,在測速的同時把車輛牌號拍攝下來,並把測得的速度自動列印在照片上。

References

都卜勒雷達 - 維基百科,自由的百科全書

杜卜勒超音波(Doppler ultrasound) - 小小整理網站 Smallcollation

多普勒效應 Doppler Effect

2023/11/20

抽象洩漏定律 (The Law of Leaky Abstractions)

Joel Spolsky 於 2002 年提出 Leaky Abstractions 抽象洩漏定律

All non-trivial abstractions, to some degree, are leaky. 所有難以理解複雜的抽象機制,在某種程度上,都是有漏洞的。

因為軟體的開發與運作環境複雜,開發人員不可能自造所有的輪子,而必須依靠各種抽象化的機制(大部分是 API 函式庫)進行開發,在隱藏細節的環境下,進行開發。經過一個開發人員的實作與開發後,某個程度下,又多了一層抽象封裝。但這些抽象封裝機制,不可避免都會洩漏出底層的一些問題,洩漏出無法封裝的問題。

在使用者使用抽象化後的介面後,在遇到不可預期的問題時,就必須要去了解底層的細節,才能知道發生的原因,也才能解決問題與除錯。雖然抽象封裝節省了開發的時間,但踩雷與除錯所耗費的時間也不少。因此我們才會在很多 QA 網站中,找到一些其他人的踩雷經驗與技巧。有經驗的開發人員,也會因為這些經驗的累積,避開可能會遇到的問題。

以下是一些抽象洩漏的例子

  • TCP 是現今網路的基礎,大部分的網路溝通,都需要利用 TCP 的可靠傳輸協定傳送資料,但不可避免的是 TCP 的流量控制機制本身就是有缺陷的協定,網路無法在一個穩定的流量通道上進行傳送,延遲跟 throughput 的波動對於 TCP 來說,都是正常的現象。但一般來說,沒有經驗的開發人員是無法預知到這些問題。

  • SQL 查詢語言是關聯式資料庫的查詢語法,但某些 SQL 查詢語法卻是有性能差異的,例如 select * from table 就會比 select column1, column2 from table 速度來得慢。另外因為 AP Server 跟 DB 是分屬不同機器的狀況下,查詢時把整個資料表的所有欄位都取出來,也會造成網路頻寬的耗費而影像整體效能。

當我們遇到了一項新技術,宣稱因為良好的封裝,可以加速開發時。這時候最好是停下來想想看,這樣的封裝是不是真的有帶來實際的效益,還是會因為採用了這樣的抽象化封裝,而帶來一些無法預期的問題。

我們曾經使用過可以在 ios 與 android 同時運作的開發工具,但最終因為封裝後的函式庫本身的限制,無法微調,且函式庫無法跟隨作業系統的更新就馬上更新,最終只能放棄而採用原生的方式開發。但這不代表這種工具是不好的,對於畫面簡單的應用程式來說,使用者種方式開發,確實會帶來一些好處,但要有心理準備,可能會遇到一些根本且無法解決的問題。

References

The Law of Leaky Abstractions – Joel on Software

抽象泄漏_百度百科

為什麼任何系統都會存在Bug?什麼是抽象漏洞定律? - 每日頭條

抽象漏洞定律The Law of Leaky Abstractions

抽象泄漏定律 | 张吉的博客

抽象泄漏 - Wikiwand