智能家居主控模塊的設(shè)計(jì)與實(shí)現(xiàn)
2 主控模塊和子系統(tǒng)的CAN總線通信
主控模塊的處理能力有限,多個(gè)子系統(tǒng)和主控模塊由現(xiàn)場(chǎng)總線組網(wǎng)構(gòu)成一個(gè)分布式控制系統(tǒng)。各個(gè)子系統(tǒng)在主控模塊的控制下協(xié)同工作。主控模塊和子系統(tǒng)之間主要傳輸信息流和控制流。主控模塊到子系統(tǒng)傳輸?shù)闹饕强刂屏?,這些控制流完成子系統(tǒng)的配置或者命令子系統(tǒng)完成特定的任務(wù)。子系統(tǒng)到主機(jī)傳輸?shù)闹饕菙?shù)據(jù)流,數(shù)據(jù)流主要包含子系統(tǒng)中各設(shè)備的運(yùn)行狀態(tài)或傳感器數(shù)據(jù)等。主控模塊和子系統(tǒng)的通信可以采用有線方式或無(wú)線方式。鑒于有線方式速度快、可靠性高、成本低、技術(shù)成熟等優(yōu)點(diǎn),本系統(tǒng)采用CAN總線完成主控模塊和子系統(tǒng)的聯(lián)網(wǎng)。系統(tǒng)的聯(lián)網(wǎng)結(jié)構(gòu)如圖3所示。本文引用地址:http://butianyuan.cn/article/163429.htm
CAN協(xié)議是最流行的現(xiàn)場(chǎng)總線協(xié)議。為保證協(xié)議的靈活性,該協(xié)議只定義了數(shù)據(jù)鏈路層和物理層,一般CAN控制器會(huì)實(shí)現(xiàn)這兩層協(xié)議,針對(duì)具體應(yīng)用需要開(kāi)發(fā)應(yīng)用層協(xié)議。CAN應(yīng)用層協(xié)議標(biāo)準(zhǔn)有DeviceNet和CANOpen。這兩種協(xié)議是面向大型系統(tǒng),針對(duì)工廠自動(dòng)化控制和汽車電子開(kāi)發(fā)的,所以智能家居需要使用自定義的CAN應(yīng)用層協(xié)議。智能家居中子系統(tǒng)和主控模塊采用點(diǎn)對(duì)點(diǎn)的通信方式。自定義應(yīng)用層協(xié)議基于非對(duì)稱型主從式網(wǎng)絡(luò)結(jié)構(gòu)。應(yīng)用層幀結(jié)構(gòu)定義如圖4所示。Dir(1 bit):數(shù)據(jù)傳輸?shù)姆较颍?表示主控模塊到子系統(tǒng);1表示子系統(tǒng)到主控模塊。
Address(7 bit):CAN總線網(wǎng)絡(luò)中設(shè)備的地址編號(hào)。
Type(3 bit):幀類型,分為:廣播單幀,廣播多幀開(kāi)始,廣播多幀結(jié)束,普通單幀,普通多幀開(kāi)始,普通多幀結(jié)束。
Index(2 bit):索引號(hào),指示多幀時(shí),某幀的索引編號(hào),多幀最長(zhǎng)4幀。
Count(3 bit):幀包含的字節(jié)數(shù)。
Data(8 byte):幀中的數(shù)據(jù)負(fù)載。
為了防止由于數(shù)據(jù)交換錯(cuò)誤而影響整個(gè)系統(tǒng)安全,有兩種策略可以考慮:提高系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃?;軟件處理中增加必要的容錯(cuò)處理。CAN協(xié)議采用數(shù)據(jù)塊編碼的方式通信,CAN總線在40 m以下具有高速(1 Mbit/s)數(shù)據(jù)傳輸能力。CAN協(xié)議非常適合主控模塊和其他子系統(tǒng)之間的通信和控制。
評(píng)論