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。故Brokerqueue住本筆訊息至到Subscriber收到為止,。故其消息交換方式為差時模式,有時間差。
第三,在網路Publisher Subscriber失效時,Broker可扮演了資料暫存的機制至道網路連線恢復時,再重送至Subscriber的角色。









2016年8月29日 星期一

先進製程記憶體晶片潛在風險(Soft Error)

先進製程記憶體晶片潛在風險(Soft Error)
近年來,在討論功能安全(SIL)及電子設備可靠度時,有一個潛在的難題一直困擾電子設備製造商,那就是所謂的「軟錯誤」(Soft Error)是一種記憶體晶片幾個Bits Bytes短暫失效。有別於硬體損壞的「硬錯誤」(Hard Error),軟錯誤造成的主因,主要是構成地球低強度背景輻射的帶電粒子所引起,這些帶電粒子有可能來自宇宙射線,也有可能來自大多數材料中的微量放射性元素,這些都可能會干擾利用粒子工作的晶片以及電子設備,尤其是半導體元件。如果帶電粒子撞擊儲存單元導致位元翻轉,就會造成資料錯誤。

另外,由於半導體技術的持續發展,記憶體晶片的密度越來越高,而且為了追求更高的效能,也有更高的運作時脈,換言之,記憶體發生軟錯誤的機率隨著技術的發展而持續成長。根據IBM幾年前的實驗結果顯示,在海平面高度,記憶體因為宇宙射線而發生軟錯誤的錯誤率(SERSoft Error Rate)約在5000FITFailures In Time10億小時中發生錯誤的次數),但這是數年前的數據,現在的記憶體密度更高,問題可能更大。當然,我們將電腦藏在50呎以下的地底,就可以解決這樣的問題,但是這在現實中是幾乎不可能達成的。

2016年8月26日 星期五

Functional safety

Functional safety

淺談功能安全(Functional safety)

一、前言 2011 年3 月11 日在日本本州東北外海發生規模9.0 大地震,進而引發大海嘯, 造成東京電力公司福島一廠重大核子事故,緊急柴油發電機位於汽機廠房地下室, 海嘯來時慘遭淹沒,在電廠失去外來電源後,無法緊急起動提供安全停機所需電 源,導致反應器持續高溫高壓後發生爐心熔毀。 本篇引用這起事故來深入討論一下功能安全(Functional safety)的重要性。本篇陳 述的範圍參考國際電工法規 IEC61508 及筆者多年累積的經驗 從基本法規介紹,
, 以及如何計算安全失效分數(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. 第.四至七章節描述包括開發過程指導和示例,以資料性的內容為主。
詳細內容資料可參閱本人發表於新電子雜誌

MQTT More and Less

根據Spec的定義QoS 就是傳遞message的保證程度
QoS0: 訊息會根據底層的TCP/IP網路盡最大努力傳送並且沒有預期會有任何的response訊       息要嘛送到server一次要嘛什麼都沒送達。
QoS1: server會把PUBACK 當作Ack回傳client沒有在一個特定時間之內收到server發送Ack messageclient要重發message並且設定message headerDUP bit1
QoS 2:最高level的發送應用在當重複的message不被允許時的狀況例如金融資料
      先暫時有個概念後面在Message Delivery章節會再更詳細講

個人認為MQTT的靈魂之一就是QoS設計這個Protocol理念之一就是在不可靠的網路上有可靠的訊息傳輸機制之外,只有QoS 12會將message暫時儲存在Broker


Innovative thinking


創意的思路(Innovative thinking):

從認知(Awareness)->引導(Guide)->模仿(imitate) ->想像(imagination)->創造(Creative)












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

DDSMQTT
MQTT 全名是Message Queuing Telemetry TransportIBM1999年推出,是一个OASIS提出的标準。 MQTT是一種M2M通信協議,其置於不居形式的各式Sensor 網路, 在網域與網域間需一個Broker的角色來擴增其它的網域。

MQTT是一種適合有限互通訊息的通訊協定,是一項適合於物聯網而設計的消息傳遞技術,由 IBM開發,它是一種開放、精簡、輕量級和容易實現的協議。這些優點剛好適用於受限的環境,例如幅地很廣,有限的頻宽,不是绝對可靠的,或者有限的處理器或储器资源的等嵌入式設備上運行。

所以,MQTT 協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:

1)非常小的通信資料(最小的消息大小為 2 位元組);
2)支援各種常用的編輯語言(包括 CJavaRubyPython 等等)且易於使用的客戶端;
3)支援發佈 / 預定模型,簡化應用程序的開發;
4) 提供三種不同消息傳遞等級,讓消息能按序到達目的地,適應在不穩定工作的網絡傳輸需求。

MQTT是一個有限訊息传输的協議,故不適合用於大量資料交換的應用。據例來說明,例如大量的影像的Stream data。在此也許Data Distribution Service(DDS)是一種解決方案。

Data Distribution Service(DDS)其由Object Management GroupOMG)為了物聯網開發的通訊标準。
OMG DDS实现可擴展性,即时性,可靠性,高性能和publisher(發行者)與用户之間互相操作的数据交换。OMG DDS旨在解決的任務和關鍵業務和物聯網應用IIoT的需求,如空中交通控制,交通管理,醫療保健,能源和公用事業,軟件定義網絡和其他大數據應用。

OMG DDS是語言和操作系統(OS)的獨立。由OMG DDS標準中規定的API已經在各種不同的編程語言,包括Ada語言,CC++C#,JavaJavaScript中,CoffeeScriptScala,LuaRuby的實施。使用標準化的API有助於確保OMG DDS應用程序可以方便地在不同廠商的實現之間移植。


數據分發服務是一個開放的中間件標準,使可擴展性,實時,可靠,高性能和出版商與用戶之間互操作的數據交換。它是基於一個成熟的以數據為中心的模式,從國防和航空航天,但是這是目前在行業正在迅速採用等不同發電,大型SCADA,空中交通控制和管理,智能城市,智能電網,汽車,醫療湧現設備,建模與仿真,以及金融交易。

DDS使系統得益於數據中的頭等公民到鑰匙的廣泛支持,生命週期管理等DDSbrokerless並提供了一個虛擬的全球數據空間,一個無處不在的,普遍的和完全分佈式數據緩存的抽象。 DDS還提供了一個標準的API,以及一個可互操作線協議。

DDSMQTT有著一些共同的原則,如簡約與效率,時間去耦和匿名性,但每種技術都有一些獨特的功能,使其最適合於某些使用情況。

例如,MQTT是最適合零星消息和資源高度受限設備而DDS是最適合於那些需要的實時數據交換的應用- 其中數據具有固有的時間有效性,並且其中失效的數據不應該延遲新鮮意應用數據- 並在服務的質量嚴格控制。此外DDS支持對等網絡(基礎設施更少)通信,即派上用場的設備到設備通信的功能。

綜上所述,DDSMQTT是兩個非常好的技術來進行數據共享。最適當的解決方案的選擇應基於該架構和用於每個目標系統消息/數據共享的要求兩者的理解。 DDS為雙方提供設備到雲(設備到數據中心)通信支持,以及設備到設備。 MQTT提供設備到數據中心的溝通很好的支持。

2016年8月24日 星期三

從RS232 談起串連通訊的未來

RS232 談起串連通訊的未來( RS232 Serial communication )

從早期PC時代,有幾種界面,PS/2提供keyboard, joy sticker以及Mouse使用,其它週邊設備大部份使用RS-232標準通訊RS-232標準中定義了邏輯”1”和邏輯”0”電壓級數以及標準的傳輸速率和連結器類型訊號大小在正的和負的315v之間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
驅動器負載阻抗(Ω)
3K7K
100
54
擺率(最大值)
30V/μs
NA
NA
接收器輸入電壓範圍
+/-15V
-10V+10V
-7V+12V
接收器輸入門限
+/-3V
+/-200mV
+/-200mV
接收器輸入電阻(Ω)
3K7K
4K(最小)
≥12K
驅動器共模電壓
NA
-3V+3V
-1V+3V
接收器共模電壓
NA
-7V+7V
-7V+12V


RS-485需要2個終接電阻,其阻值要求等於傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸總線的兩端。因其依两地的地準位為參考點,也因此會有逆向電流順著地缐慣入Local 端。少則造成掉資料,嚴重是會造成電源及interface IC 毀損。當傳輸距離超過500m,就建議使用galvanic 設計,避免兩端電位差造成毁損。

精選文章

Active Cooler/Warner system with thermoelectric cooler

Cooler 系統包括了 DC/DC Converter, 與主機通界面 , 感测線路 , 風量葉片 ,DC Motor 等 , 控制器感测線路的回饋資料供 PID 運算出最佳控制模式。在系統軟件架構上主要包括四種類型的軟體規劃,分別是資料庫系統 (Database) 、 ...