智能家居主控模塊的設計與實現
2 主控模塊和子系統的CAN總線通信
主控模塊的處理能力有限,多個子系統和主控模塊由現場總線組網構成一個分布式控制系統。各個子系統在主控模塊的控制下協同工作。主控模塊和子系統之間主要傳輸信息流和控制流。主控模塊到子系統傳輸的主要是控制流,這些控制流完成子系統的配置或者命令子系統完成特定的任務。子系統到主機傳輸的主要是數據流,數據流主要包含子系統中各設備的運行狀態或傳感器數據等。主控模塊和子系統的通信可以采用有線方式或無線方式。鑒于有線方式速度快、可靠性高、成本低、技術成熟等優點,本系統采用CAN總線完成主控模塊和子系統的聯網。系統的聯網結構如圖3所示。本文引用地址:http://www.104case.com/article/163429.htm
CAN協議是最流行的現場總線協議。為保證協議的靈活性,該協議只定義了數據鏈路層和物理層,一般CAN控制器會實現這兩層協議,針對具體應用需要開發應用層協議。CAN應用層協議標準有DeviceNet和CANOpen。這兩種協議是面向大型系統,針對工廠自動化控制和汽車電子開發的,所以智能家居需要使用自定義的CAN應用層協議。智能家居中子系統和主控模塊采用點對點的通信方式。自定義應用層協議基于非對稱型主從式網絡結構。應用層幀結構定義如圖4所示。Dir(1 bit):數據傳輸的方向,0表示主控模塊到子系統;1表示子系統到主控模塊。
Address(7 bit):CAN總線網絡中設備的地址編號。
Type(3 bit):幀類型,分為:廣播單幀,廣播多幀開始,廣播多幀結束,普通單幀,普通多幀開始,普通多幀結束。
Index(2 bit):索引號,指示多幀時,某幀的索引編號,多幀最長4幀。
Count(3 bit):幀包含的字節數。
Data(8 byte):幀中的數據負載。
為了防止由于數據交換錯誤而影響整個系統安全,有兩種策略可以考慮:提高系統數據傳輸的可靠性;軟件處理中增加必要的容錯處理。CAN協議采用數據塊編碼的方式通信,CAN總線在40 m以下具有高速(1 Mbit/s)數據傳輸能力。CAN協議非常適合主控模塊和其他子系統之間的通信和控制。
評論