2016年9月2日 星期五
2016年8月30日 星期二
MQTT 為何需要Broker?
物聯網為了符合小而美的網路,引用MQTT的通訊協議, MQTT是一種M2M通信協議,其置於不居形式的各式Sensor網路, 在網域與網域間需一個Broker的角色來擴增其網域。
為什麼需要Broker, 科技發展至今, 始终沒有十全十美的架構。為了便利於佈網也因Broker 限制了其頻寛。
首先,底層的Publisher的應用程序不必具有關於其他Subscriber 應用程序的位置資訊。它唯一需要的地址是Broker的網絡地址。Broker依據"queue name", "routing
key", "topic", "message properties" 等資訊送其Subscriber。
其次,訊息Publisher者將其訊息送至Broker即完成本交易。Broker稍後再將本訊息傳至Subscriber。故Broker會queue住本筆訊息至到Subscriber收到為止,。故其消息交換方式為差時模式,有時間差。
第三,在網路Publisher 或 Subscriber失效時,Broker可扮演了資料暫存的機制至道網路連線恢復時,再重送至Subscriber的角色。
2016年8月29日 星期一
先進製程記憶體晶片潛在風險(Soft Error)
先進製程記憶體晶片潛在風險(Soft Error)
近年來,在討論功能安全(SIL)及電子設備可靠度時,有一個潛在的難題一直困擾電子設備製造商,那就是所謂的「軟錯誤」(Soft Error)是一種記憶體晶片幾個Bits 或Bytes短暫失效。有別於硬體損壞的「硬錯誤」(Hard Error),軟錯誤造成的主因,主要是構成地球低強度背景輻射的帶電粒子所引起,這些帶電粒子有可能來自宇宙射線,也有可能來自大多數材料中的微量放射性元素,這些都可能會干擾利用粒子工作的晶片以及電子設備,尤其是半導體元件。如果帶電粒子撞擊儲存單元導致位元翻轉,就會造成資料錯誤。
另外,由於半導體技術的持續發展,記憶體晶片的密度越來越高,而且為了追求更高的效能,也有更高的運作時脈,換言之,記憶體發生軟錯誤的機率隨著技術的發展而持續成長。根據IBM幾年前的實驗結果顯示,在海平面高度,記憶體因為宇宙射線而發生軟錯誤的錯誤率(SER,Soft Error Rate)約在5000FIT(Failures In Time,10億小時中發生錯誤的次數),但這是數年前的數據,現在的記憶體密度更高,問題可能更大。當然,我們將電腦藏在50呎以下的地底,就可以解決這樣的問題,但是這在現實中是幾乎不可能達成的。
2016年8月26日 星期五
Functional safety
Functional safety
, 以及如何計算安全失效分數(Safe Failure Fraction )來評估系統是否符合安全完 整性等級。
二、法規簡介
IEC 61508 是一項用於工業領域的國際標準,其名稱是 《電氣/電子/可編程電子安 全相關系統的功能安全》 (Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems (E/E/ PE, or E/E/PES) 。 IEC 61508 標準起源於工業程序控制領域。該標準涵蓋了完整的安全生命週期, 當制定相關領域特定的功能安全標準時,需要進一步細化說明[1]。 IEC 61508 標準定義的安全生命週期包含 16 個階段,各階段所關注的均是系統安 全功能,粗略地可以分為三個階段: 1.1-5 階段描述了分析過程。 2.6-13 階段描述了實現過程。 3.14-16 階段描述了運作及維護過程。 IEC 61508 標準由 7 個部分組成: 1. 第一章節描述基本需求重點為: 避免系統失效及控制隨機失效 安全生命週期計劃(V-Model) 2. 第二章節描述硬體安全需求及如何符合安全設計: 3. 第三章節描述軟體安全需求及如何符合安全設計: 4. 第.四至七章節描述包括開發過程指導和示例,以資料性的內容為主。
詳細內容資料可參閱本人發表於新電子雜誌
淺談功能安全(Functional safety)
一、前言 2011 年3 月11 日在日本本州東北外海發生規模9.0 大地震,進而引發大海嘯, 造成東京電力公司福島一廠重大核子事故,緊急柴油發電機位於汽機廠房地下室, 海嘯來時慘遭淹沒,在電廠失去外來電源後,無法緊急起動提供安全停機所需電 源,導致反應器持續高溫高壓後發生爐心熔毀。 本篇引用這起事故來深入討論一下功能安全(Functional safety)的重要性。本篇陳 述的範圍參考國際電工法規 IEC61508 及筆者多年累積的經驗 從基本法規介紹,
一、前言 2011 年3 月11 日在日本本州東北外海發生規模9.0 大地震,進而引發大海嘯, 造成東京電力公司福島一廠重大核子事故,緊急柴油發電機位於汽機廠房地下室, 海嘯來時慘遭淹沒,在電廠失去外來電源後,無法緊急起動提供安全停機所需電 源,導致反應器持續高溫高壓後發生爐心熔毀。 本篇引用這起事故來深入討論一下功能安全(Functional safety)的重要性。本篇陳 述的範圍參考國際電工法規 IEC61508 及筆者多年累積的經驗 從基本法規介紹,
二、法規簡介
IEC 61508 是一項用於工業領域的國際標準,其名稱是 《電氣/電子/可編程電子安 全相關系統的功能安全》 (Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems (E/E/ PE, or E/E/PES) 。 IEC 61508 標準起源於工業程序控制領域。該標準涵蓋了完整的安全生命週期, 當制定相關領域特定的功能安全標準時,需要進一步細化說明[1]。 IEC 61508 標準定義的安全生命週期包含 16 個階段,各階段所關注的均是系統安 全功能,粗略地可以分為三個階段: 1.1-5 階段描述了分析過程。 2.6-13 階段描述了實現過程。 3.14-16 階段描述了運作及維護過程。 IEC 61508 標準由 7 個部分組成: 1. 第一章節描述基本需求重點為: 避免系統失效及控制隨機失效 安全生命週期計劃(V-Model) 2. 第二章節描述硬體安全需求及如何符合安全設計: 3. 第三章節描述軟體安全需求及如何符合安全設計: 4. 第.四至七章節描述包括開發過程指導和示例,以資料性的內容為主。
詳細內容資料可參閱本人發表於新電子雜誌
MQTT More and Less
根據Spec的定義,QoS 就是傳遞message的保證程度。
QoS0: 訊息會根據底層的TCP/IP網路盡最大努力傳送。並且沒有預期會有任何的response。訊 息要嘛送到server一次,要嘛什麼都沒送達。
QoS1: server會把PUBACK 當作Ack回傳。若client沒有在一個特定時間之內收到server發送Ack message,則client要重發message並且設定message
header的DUP bit為1。
QoS 2:最高level的發送,應用在當重複的message不被允許時的狀況,例如金融資料。
先暫時有個概念,後面在Message Delivery章節會再更詳細講。
個人認為MQTT的靈魂之一就是QoS,設計這個Protocol理念之一就是在不可靠的網路上,有可靠的訊息傳輸機制之外,只有QoS 1與2會將message暫時儲存在Broker上。
2016年8月25日 星期四
工業級的USB 通訊
Industrial USB Communication
有工程師問我,下一代的通訊除了無線5G
,有線的Ethernet 之外是否有替代RS-Serial Communication的方案,當然有了就是普羅大眾的USB. USB 從1.0 到3.0己獨佔了週邊設備20年。
為什麼是USB, 這道理很簡單,其Profile 及技術很成熟且價格很合理。只要透過升壓電路就可以增加其傳輸距離。
USB 的架構圖
USB is an interface for connecting peripheral devices while Ethernet is an interface for networkingUSB has a much shorter range than EthernetUSB provides power while Ethernet
透過升壓電路由DC5V提升到DC12V,可以將傳輸距離由5米延長至100米,是物聯網未端的Sensor 很容易即插即用的網路拓譜。
物聯網下的MQTT 和DDS
DDS和MQTT
MQTT 全名是Message Queuing
Telemetry Transport是IBM于1999年推出,是一个OASIS提出的标準。 MQTT是一種M2M通信協議,其置於不居形式的各式Sensor 網路, 在網域與網域間需一個Broker的角色來擴增其它的網域。
MQTT是一種適合有限互通訊息的通訊協定,是一項適合於物聯網而設計的消息傳遞技術,由 IBM開發,它是一種開放、精簡、輕量級和容易實現的協議。這些優點剛好適用於受限的環境,例如幅地很廣,有限的頻宽,不是绝對可靠的,或者有限的處理器或储器资源的等嵌入式設備上運行。
所以,MQTT 協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:
1)非常小的通信資料(最小的消息大小為 2 位元組);
2)支援各種常用的編輯語言(包括 C,Java,Ruby,Python 等等)且易於使用的客戶端;
3)支援發佈 / 預定模型,簡化應用程序的開發;
4) 提供三種不同消息傳遞等級,讓消息能按序到達目的地,適應在不穩定工作的網絡傳輸需求。
MQTT是一個有限訊息传输的協議,故不適合用於大量資料交換的應用。據例來說明,例如大量的影像的Stream data。在此也許Data Distribution Service(DDS)是一種解決方案。
Data Distribution Service(DDS)其由Object Management Group(OMG)為了物聯網開發的通訊标準。
OMG DDS实现可擴展性,即时性,可靠性,高性能和publisher(發行者)與用户之間互相操作的数据交换。OMG
DDS旨在解決的任務和關鍵業務和物聯網應用IIoT的需求,如空中交通控制,交通管理,醫療保健,能源和公用事業,軟件定義網絡和其他大數據應用。
OMG DDS是語言和操作系統(OS)的獨立。由OMG DDS標準中規定的API已經在各種不同的編程語言,包括Ada語言,C,C++,C#,Java和JavaScript中,CoffeeScript,Scala,Lua和Ruby的實施。使用標準化的API有助於確保OMG DDS應用程序可以方便地在不同廠商的實現之間移植。
數據分發服務是一個開放的中間件標準,使可擴展性,實時,可靠,高性能和出版商與用戶之間互操作的數據交換。它是基於一個成熟的以數據為中心的模式,從國防和航空航天,但是這是目前在行業正在迅速採用等不同發電,大型SCADA,空中交通控制和管理,智能城市,智能電網,汽車,醫療湧現設備,建模與仿真,以及金融交易。
DDS使系統得益於數據中的頭等公民到鑰匙的廣泛支持,生命週期管理等DDS是brokerless並提供了一個虛擬的全球數據空間,一個無處不在的,普遍的和完全分佈式數據緩存的抽象。 DDS還提供了一個標準的API,以及一個可互操作線協議。
DDS和MQTT有著一些共同的原則,如簡約與效率,時間去耦和匿名性,但每種技術都有一些獨特的功能,使其最適合於某些使用情況。
例如,MQTT是最適合零星消息和資源高度受限設備而DDS是最適合於那些需要的實時數據交換的應用- 其中數據具有固有的時間有效性,並且其中失效的數據不應該延遲新鮮意應用數據- 並在服務的質量嚴格控制。此外DDS支持對等網絡(基礎設施更少)通信,即派上用場的設備到設備通信的功能。
綜上所述,DDS和MQTT是兩個非常好的技術來進行數據共享。最適當的解決方案的選擇應基於該架構和用於每個目標系統消息/數據共享的要求兩者的理解。 DDS為雙方提供設備到雲(設備到數據中心)通信支持,以及設備到設備。 MQTT提供設備到數據中心的溝通很好的支持。
2016年8月24日 星期三
從RS232 談起串連通訊的未來
從RS232 談起串連通訊的未來( RS232 Serial communication )
從早期PC時代,有幾種界面,像PS/2提供keyboard, joy
sticker以及Mouse使用,其它週邊設備大部份使用RS-232標準通訊,RS-232標準中定義了邏輯”1”和邏輯”0”電壓級數,以及標準的傳輸速率和連結器類型。訊號大小在正的和負的3-15v之間。RS-232規定接近零的電位是無效的,邏輯”1”規定為負電位,有效負電位的訊號狀態稱為傳號marking,它的功能意義為OFF,邏輯”0”規定為正電位,有效正電位的訊號狀態稱為空號spacing,它的功能意義為ON。根據裝置供電電源的不同,±5、±10、±12和±15這樣的電壓都是可能的。
規格
|
RS232
|
RS422
|
RS485
|
工作方式
|
Single ended
|
Differential
|
Differential
|
Node
|
1 and 1
|
Multi-nodes
|
Multi-nodes
|
最大傳輸距離
|
15 m
|
1200 m
|
1200 m
|
最大傳輸速率
|
20Kb/S
|
10Mb/s
|
10Mb/s
|
最大驅動輸出電壓
|
+/-25V
|
-0.25V~+6V
|
-7V~+12V
|
驅動器輸出信號電平
(負載最小值) 負載
|
+/-5V~+/-15V
|
+/-2.0V
|
+/-1.5V
|
驅動器輸出信號電平
(空載最大值) 空載
|
+/-25V
|
+/-6V
|
+/-6V
|
驅動器負載阻抗(Ω)
|
3K~7K
|
100
|
54
|
擺率(最大值)
|
30V/μs
|
NA
|
NA
|
接收器輸入電壓範圍
|
+/-15V
|
-10V~+10V
|
-7V~+12V
|
接收器輸入門限
|
+/-3V
|
+/-200mV
|
+/-200mV
|
接收器輸入電阻(Ω)
|
3K~7K
|
4K(最小)
|
≥12K
|
驅動器共模電壓
|
NA
|
-3V~+3V
|
-1V~+3V
|
接收器共模電壓
|
NA
|
-7V~+7V
|
-7V~+12V
|
RS-485需要2個終接電阻,其阻值要求等於傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸總線的兩端。因其依两地的地準位為參考點,也因此會有逆向電流順著地缐慣入Local 端。少則造成掉資料,嚴重是會造成電源及interface
IC 毀損。當傳輸距離超過500m,就建議使用galvanic 設計,避免兩端電位差造成毁損。
訂閱:
文章 (Atom)
精選文章
Active Cooler/Warner system with thermoelectric cooler
Cooler 系統包括了 DC/DC Converter, 與主機通界面 , 感测線路 , 風量葉片 ,DC Motor 等 , 控制器感测線路的回饋資料供 PID 運算出最佳控制模式。在系統軟件架構上主要包括四種類型的軟體規劃,分別是資料庫系統 (Database) 、 ...
-
CPU 暫存器與記憶體的差異? 有同事問處理器內的暫存器及外面 RAM( 記憶體 ) 的差異 , 在此用一頁 篇幅 來 說明其差異 , 圖 1 是 CPU 內部的示意圖。一個 Process 是透過內部暫存器的狀態並透過 Pipe Line 架構從最近的 Code c...
-
先進製程記憶體晶片潛在風險 (Soft Error) 近年來,在討論功能安全 (SIL) 及電子設備可靠度時,有一個潛在的難題一直困擾電子設備製造商,那就是所謂的「軟錯誤」( Soft Error )是一種記憶體晶片幾個 Bits 或 Bytes 短暫失效。有別於硬體損壞...