摘要:本文詳細介紹了在自動地址分配技術中一種高效的總線競爭調停機制,結合自動地址分配的算法可以高效地實現自動地址分配功能;谠摽偩調停機制可以有效地解決在自動地址分配時總線調停時間,從而降低分配地址耗時。本文詳細講解并實例解析自動地址分配技術中的總線調停機制,而且還通過實際工程案例解釋總線調停的必要性。 引言 自動地址分配技術是否成功有兩個方面的制約因素:一是自動地址分配的邏輯(或者算法)是否高效;另一因素是在總線發生競爭的情況下,是否有一套高效的調停機制。其中自動地址分配原理及邏輯已在前文《自動地址分配技術多聯機空調系統中的應用》中詳細闡述。本文在多聯機系統上對總線調停機制從原理、實例、實驗效果多方面詳細介紹。 1 總線調停機制的必要性 多聯機系統連接圖如圖1所示。此時室內機暫時未分配地址,地址處于未知狀態。當室外機發出地址復位指令時,所有的室內機幾乎同時收到室外機地址復位指令。所有室內機執行完復位當前地址相關操作,接著室內機向總線上傳地址申請數據。若沒有總線調停機制,所有數據在總線疊加導致總線波形畸變最終破壞正常通信。圖2所示為無調停機制下多設備發送數據與總線數據的實測波形。其中,通道1是某一室內機發送端測得的數據波形,通道2是在接收端接收到的總線的數據波形。從圖2可以直觀地發現,總線電平邏輯、數據波特率明顯發生錯亂。換而言之在沒有總線的調停機制下,總線數據疊加后直接結果就是破壞總線電平?梢娍偩調停是保證總線通信正常必不可少的環節,也是保證通信成功的關鍵方法。 2 總線調停機制的基本原理 調停機制簡單而言就是制定一個競爭規則。即在總線空閑時,為防止同時有多個設備發送數據,需要決定哪個設備獲得總線使用權的規則。該規則的執行結果是某一時刻只能有一個設備能發送數據,而其他競爭失敗的設備處于等待狀態。圖3示意兩設備總線競爭的調停機制,詳細規制如下。 規則1:所有設備開始發送數據前監聽總線的電平,如果總線電平為低電平,則不開始發送數據。根據規則1,應用中總線電平規則為:空閑時總線電平為高電平,任何數據發送時均以低電平為起始位?偩為低電平時定義為總線繁忙。該規則在物理電平上解決總線沖突。 規則2:通過判斷發送開始時主控芯片的通信狀態標志來對總線上的通信狀態進行確認。當通信狀態標志為真時,表示總線上已有通信數據,總線處于繁忙狀態不開始發送數據;反之,表示總線上無通信數據。 規則3:每接收完一個單位數據,計時器復位歸零。如果計時器未經過一單位數據時間,則存在接收下一個單位數據的可能,則不開始發送數據。為實際項目靈活處理,一個單位數據可以是位、字節等。 以上三規則滿足其中任意一條,則不能開始發送數據;只有都不滿足時,才能開始發送數據。3 總線調停實際應用與效果 基于上述的調停機制的原理,設計自動分配地址時總線監聽、數據處理、數據回傳的控制邏輯。如圖4所示,成功實現總線的調停,即在某一時刻有且僅有一個設備占用總線。 在圖4右側所示,設計室外機主機發送數據開始計時的10ms內是發送時間,之后是室內機的回傳數據時間。在定義室外機發送開始10ms之后計時開始,室內機開始向總線發送數據計時停止,之間的時間為總線調停時間。從圖4可以看出此次的總線調停時間為4.5ms(14.5 – 10ms)。圖5為實驗測試100次總線調停時間統計圖。因為忽略室內機接收總線數據時間、內機解碼編碼以及運算時間,因此實際調停時間略有減少。忽略測量誤差情況下,可以看出采用本方法總線調停時間最短約3ms,最長時間也不超過5ms。從測試數據分布可以得出,大多數的總線調停時間為4ms左右,滿足實際工程使用要求。 需要指出的是,如果需要進一步縮短整個分配地址時間,可以縮短定義的通信發送時間(如上文所述的10ms時間)?偩競爭的時間是由所有室內機競爭的實際時間而定,并隨著競爭的數量減少而減少。 4 結束語 本文從原理和實際工程應用詳細闡述了自動地址分配過程中的總線競爭調停機制。結合前文介紹的自動地址分配方法可以高效快速地實現自動地址分配。雖然是基于多聯機的應用場合,但是本技術不限于多聯機系統,其方法和原理可以推廣到其他相似的場合。從實際工程應用測試結果分析,基于本方法的總線調停機制是一個高效的調停機制,能高效的解決總線競爭問題。 參考文獻: [1] 劉運中,張天富.無極性通信在VRV空調系統中的應用[J]. 電子產品世界EEPW,2014,21(10):43-45. [2] [美] John G.Proakis,Dimitris G.Manolakis著,方艷梅,劉永清等譯. 數字信號處理——原理、算法與應用(第四版) [Digital Signal Processing,Fourth Edition ] [美][M],電子工業出版社,2014:120-246. [3] 瑞薩R5F系列芯片硬件參考手冊 r01uh0146ej0310_rl78g13. [4] 百度百科, 撥碼開關, http://baike.baidu.com/view/2519271.htm. [5] 百度百科, CAN總線協議, http://baike.baidu.com/view/1535722.htm. |