專利名稱:智能電器串行總線的主機的工作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種智能電器串行總線的主機的工作方法。
背景技術(shù):
現(xiàn)有技術(shù)中,將智能電器與主機相連,具有多種方式。例如,采用USB 接口。該方式的不足在于,USB接口的數(shù)據(jù)傳輸距離為1-2米,無法滿足實 際應(yīng)用的需求。同時,USB接口所可插接的USB設(shè)備個數(shù)往往只有幾個,這 影響了用戶的使用。
中國專利文獻公開號CN2566355公開了 一種應(yīng)用于串行總線集群式網(wǎng) 絡(luò)管理系統(tǒng)中的串行管理總線接口模塊,它包括有一標(biāo)準(zhǔn)485芯片,在所 述標(biāo)準(zhǔn)485芯片的驅(qū)動端串接有兩個保護電阻。使用其串行管理總線接口 模塊,無論網(wǎng)絡(luò)最終端的負載類型如何、負載數(shù)目在不大于8的范圍內(nèi)變 化的情況下,都可以保證系統(tǒng)設(shè)備間的通訊穩(wěn)定、可靠。
所述現(xiàn)有技術(shù)未解決主、智能電器之間通過RS-485的接口規(guī)范進行 數(shù)據(jù)通信功能的技術(shù)難題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種通過RS-485接口在主、智能電 器之間實現(xiàn)串行總線通訊的智能電器串行總線的主機的工作方法。
為解決上述技術(shù)問題,本發(fā)明提供了 一種智能電器串行總線的主機的 工作方法,主機通過RS-485總線連接有至少1個智能電器;1個智能電器 構(gòu)成一個端點;主機包括主模塊、用于對各端點進行巡回查看的巡呼模 塊、用于完成主機與智能電器之間的數(shù)據(jù)交換功能的包處理模塊、用于發(fā) 送數(shù)據(jù)的包發(fā)送模塊、用于接收數(shù)據(jù)的包接收模塊、字節(jié)發(fā)送模塊和字節(jié) 接收模塊;主模塊用于初始化主機的通訊端口、初始化總線、巡呼各個端 點、繪制網(wǎng)絡(luò)拓樸圖并顯示參數(shù);巡呼模塊用于對各從端點進行巡回查看; 包處理模塊用于完成主機與各端點之間的數(shù)據(jù)交換,其數(shù)據(jù)交換時處理的數(shù)據(jù)包包括參數(shù)包、配置包、控制包、令牌包、通路撤消包;包發(fā)送模 塊用于發(fā)送131個字節(jié)的數(shù)據(jù),發(fā)送完畢后,等待接收端點的握手信號, 不確認時,主機將重發(fā)數(shù)據(jù);包接收模塊用于接收131個字節(jié)數(shù)據(jù),接收 完畢后進行CRC校驗,不正確時發(fā)送不確認握手信號,要求端點重發(fā)數(shù)據(jù), 主機重新接收;字節(jié)發(fā)送模塊和字節(jié)接收模塊中包括超時判斷,超時時設(shè) 置標(biāo)志并返回。
所迷主機中包括一個設(shè)備連接表,該設(shè)備連接表與所述各端點號相對 應(yīng);所述巡呼模塊對各從端點進行巡回查看的過程是首先確定一個端點 號,然后調(diào)用包處理模塊,發(fā)送令牌包,有確認握手包時,則相應(yīng)端點上 有一個智能電器;然后,主機核對該端點的設(shè)備連接表,若對應(yīng)的設(shè)備連 接表為空時,則判斷其為新連接到總線上的智能電器;主機發(fā)送數(shù)據(jù)包, 要求該智能電器傳送其配置信息;當(dāng)主機接收到來自該智能電器的有效數(shù) 據(jù)后,填寫端點所述設(shè)備連接表;若對應(yīng)的i殳備連接表不為空,則判斷該 端點上連接的設(shè)備種類已知,并由該端點上的智能電器傳送本身狀態(tài)、電 路參數(shù),或發(fā)送控制參數(shù);若主機發(fā)送令牌包后無應(yīng)答,或是接收到的參 數(shù)無效,均認為該端點無設(shè)備,清空端點設(shè)備連接表。
該智能電器串行總線通訊系統(tǒng)包括主機和至少1個智能電器;主機 與智能電器之間通過RS-485總線相連;主機和各智能電器都具有唯一的端 點號,主機搜索到一個智能電器后,與其建立一數(shù)據(jù)通信通道;然后,主 機與智能電器相互發(fā)送數(shù)據(jù)包,當(dāng)智能電器接收到正確數(shù)據(jù)時,智能電器 向主機發(fā)送確認握手包;當(dāng)智能電器接收到錯誤數(shù)據(jù)時,智能電器向主機 發(fā)送不確認握手包,主機向該智能電器重新發(fā)送上一數(shù)據(jù)包;當(dāng)主機接收 到正確數(shù)據(jù)時,主機向智能電器發(fā)送確認握手包;當(dāng)主機接收到錯誤數(shù)據(jù) 時,主機向智能電器發(fā)送不確認握手包,該智能電器向主機重新發(fā)送上一 數(shù)據(jù)包;當(dāng)主機向智能電器發(fā)送一通路撤銷包時,主機與智能電器之間的 所述數(shù)據(jù)通信通道撤銷。
所述主機搜索智能電器時,主機先通過RS-485總線發(fā)送令牌包;連接 在RS-485總線上的智能電器接收該令牌包,然后通過RS-485總線發(fā)回確 認握手包至主機,從而使主機與智能電器之間建立一數(shù)據(jù)通信通道。
所述數(shù)據(jù)包包括循環(huán)冗余校驗字段;主機和智能電器根據(jù)該循環(huán)冗 余校驗字段來判斷接收到的所述數(shù)據(jù)包為錯誤數(shù)據(jù)或正確數(shù)據(jù)。
本發(fā)明具有積極的效果(1 )本發(fā)明的智能電器串行總線IASB
(Intellect Apparatus Serial Bus )是為智能電器數(shù)據(jù)傳輸設(shè)計的一種 低成本的數(shù)據(jù)總線,本發(fā)明的智能電器串行總線通訊系統(tǒng)中,主機和智能 電器的工作方法適于實現(xiàn)主機和智能電器之間通過RS-485的接口規(guī)范進行 數(shù)據(jù)通信。智能電器串行總線通訊系統(tǒng)采用RS-485總線,其接口為通用接 口, 一個接口適用于不同型號的電器。不需要為不同的電器準(zhǔn)備不同的接 口和協(xié)議。其次,其具有自動識別與配置功能。當(dāng)用戶將電器連接到智能 電器串行總線,如果計算機處于運行狀態(tài)時,計算機能夠自動識別接入電 器的類型,并裝載相應(yīng)的驅(qū)動程序,實現(xiàn)數(shù)據(jù)通信功能。RS-485規(guī)范采用 雙絞線可以方便連接。不需要在打開計算機機箱,為每個外設(shè)增加擴展卡。 再次,其支持熱插撥。可以在任何時候連接和斷開電器,而不管計算機系 統(tǒng)是否開機,都不會損壞計算機和外接的電器。當(dāng)電器接入后,計算機系 統(tǒng)會檢測接入的電器。其傳輸速度達到100Kb/s,與RS-232相比數(shù)據(jù)傳輸 速度快,能滿足一般配電系統(tǒng)數(shù)據(jù)通信速度的要求。(2)本發(fā)明的智能電 器串行總線通訊系統(tǒng)中,直接采用公用電話線作為信號線,可大量節(jié)省人 力、物力和財力,且安裝使用方便。
圖1為本發(fā)明的智能電器串行總線通訊系統(tǒng)的結(jié)構(gòu)示意圖。
圖2為本發(fā)明的智能電器串行總線通訊系統(tǒng)的物理接口的電路示意圖。
圖3為本發(fā)明的智能電器串行總線通訊系統(tǒng)的結(jié)構(gòu)的另一變形。
圖4為智能電器串行總線通訊系統(tǒng)的智能電器的調(diào)用示意圖。
圖5為上述智能電器的主程序框圖。
圖6為上迷智能電器的數(shù)據(jù)4妄收模塊的程序框圖。
圖7為上述智能電器的數(shù)據(jù)包處理才莫塊的程序框圖。
圖8為上述智能電器的數(shù)據(jù)包發(fā)送模塊的程序框圖。
圖9為上述智能電器的字節(jié)發(fā)送才莫塊的程序框圖。
圖10為智能電器串行總線通訊系統(tǒng)的主機的調(diào)用示意圖。
圖11為上述主^/L的主程序框圖。
圖12為上述主機的巡呼程序框圖。
圖13為上述主機的包處理程序框圖。
圖14為上述主機的數(shù)據(jù)包發(fā)送模塊程序框圖。
圖15為上述主機的數(shù)據(jù)包接收模塊程序框圖。圖16為上述主機的字節(jié)發(fā)送模塊程序框圖。 圖17為上述主機的字節(jié)接收模塊程序框圖。
具體實施方式
(實施例1 )
見圖l,本實施例的智能電器串行總線通訊系統(tǒng)包括主機l(即計算 機,)和3個(其他實施例中可以是1-30個中的任意值)智能電器3;主機 1與智能電器3之間通過RS-485總線2相連。主機l與智能電器3之間的 間距小于1200米。所述主機l和智能電器3包括中央處理器和與該中央 處理器相連的RS-485接口 。主機1和智能電器3可以是計算機,也可以是 多功能打復(fù)印機、通訊設(shè)備等具有單片機或嵌入式處理器的智能設(shè)備。
見圖3,為延長通訊距離,主機1與智能電器3之間設(shè)有中繼器4。為 增加RS-485總線2上連接的智能電器3的數(shù)量,智能電器3通過RS-485 總線2與集線器5相連,集線器5通過RS-485總線2與主機1相連。集線 器5與主機1之間設(shè)有中繼器4。智能電器3與集線器5之間設(shè)有中繼器4。
見圖2,智能電器串行總線的物理接口包括平衡驅(qū)動器10和差分接 收器30;平衡驅(qū)動器10具有一對輸出端,差分接收器30具有一對輸入端, 平衡驅(qū)動器10的一對輸出端與差分接收器30的一對輸入端之間分別通過 信號線2Q相連。
所述平衡驅(qū)動器10具有數(shù)據(jù)輸入端。所述差分接收器30具有數(shù)據(jù)輸 出端。平衡驅(qū)動器10將來自數(shù)據(jù)輸入端的邏輯電平信號變換成電位差信號, 由與平衡驅(qū)動器10的一對輸出端相連的一對信號線20進行信號傳送;差 分接收器30將其一對輸入端所接收的電位差信號變換為邏輯電平信號,并 從其數(shù)據(jù)輸出端輸出,從而實現(xiàn)數(shù)據(jù)的傳送與接收。
當(dāng)表示邏輯'T,時, 一條信號線輸出正高電平,另一條信號線輸出負 高電平;當(dāng)表示邏輯"0"時,這兩條信號線的狀態(tài)相反。接收器判斷這兩 條信號線的電位差,來確定邏輯"1"和邏輯"0"。差分"t妻收器30可以分 辨的最小電壓為±20(^「。這種發(fā)送和接受方式被稱為平衡驅(qū)動差分接收。
所述平衡驅(qū)動器10和差分接收器30具有彼此相連的電平參考端。
相對于電平參考端,平衡驅(qū)動器10的輸出分別為+^、 _&,則差分 接收器30的輸入端^的電壓(-&) = 2Kr
平衡驅(qū)動器10的一對輸出端不共地,可以削弱干擾的影響,又可以獲 得更長的傳輸距離,允許更大的信號衰減。
本實施例的智能電器串行總線的物理接口的傳輸速率最大可以達到 10Mb/s,傳輸速率為10Mb/s時,傳輸距離為12m;傳輸速率為IMb/s時,
傳輸距離為120m;傳輸速率為100Kb/s時,傳輸距離可達1200m。
平衡驅(qū)動器10能驅(qū)動32個負載設(shè)備。負栽設(shè)備可以是被動的平衡驅(qū)
動器或差分接收器。
其他實施例中,所述信號線20為公用電話線,且公用電話線的兩根導(dǎo)
線之間設(shè)有終端電阻R。直接采用公用電話線作為信號線,可大量節(jié)省人力、
物力和財力,且安裝使用方便。
智能電器3上包括用于設(shè)置其端點號的DIP開關(guān),主機1和各智能電 器3都具有唯一的端點號,主機1搜索到一個智能電器3后,與其建立一 數(shù)據(jù)通信通道;然后,主機1與智能電器3相互發(fā)送數(shù)據(jù)包,當(dāng)智能電器3 接收到正確數(shù)據(jù)時,智能電器3向主機1發(fā)送確認握手包;當(dāng)智能電器3 接收到錯誤數(shù)據(jù)時,智能電器3向主機1發(fā)送不確認握手包,主機1向該 智能電器3重新發(fā)送上一數(shù)據(jù)包;當(dāng)主機1接收到正確數(shù)據(jù)時,主機1向 智能電器3發(fā)送確認握手包;當(dāng)主機1接收到錯誤數(shù)據(jù)時,主機1向智能 電器3發(fā)送不確認握手包,該智能電器3向主機1重新發(fā)送上一數(shù)據(jù)包; 當(dāng)主機1向智能電器3發(fā)送一通路撤銷包時,主機1與智能電器3之間的 所述數(shù)據(jù)通信通道撤銷。
所述主機1搜索智能電器3時,主機1先通過RS-485總線2發(fā)送令牌 包;連接在RS-485總線2上的智能電器3接收該令牌包,然后通過RS-485 總線2發(fā)回確認握手包至主機1,從而使主機1與智能電器3之間建立一數(shù) 據(jù)通信通道。
所述數(shù)據(jù)包包括包標(biāo)識字段、地址字段、128個字節(jié)的數(shù)據(jù)區(qū)和循環(huán) 冗余校驗字段;主機1和智能電器3根據(jù)該循環(huán)冗余校驗字段來判斷接收 到的所述數(shù)據(jù)包為錯誤數(shù)據(jù)或正確數(shù)據(jù)。
所述主機1中包括一個設(shè)備連接表,該設(shè)備連接表與各端點號對應(yīng); 主機l向一端點號發(fā)送令牌包,若在預(yù)設(shè)時間內(nèi)未收到相應(yīng)的確認握手包, 則主機1確認該端點號上不存在智能電器3,即為空端點,該設(shè)備連接表上 相應(yīng)的記錄為空;若在預(yù)設(shè)時間內(nèi)收到相應(yīng)的確認握手包,則主機1確認 該端點號上存在智能電器3,即為非空端點,該i殳備連4姿表上作相應(yīng)的記錄, 然后讀取其產(chǎn)品標(biāo)志,以識別生產(chǎn)廠商以及產(chǎn)品種類,填寫設(shè)備連接表, 并安裝相應(yīng)的驅(qū)動程序。
主機1對非空端點發(fā)送令牌包,并得到確認握手包時后,再發(fā)出數(shù)據(jù) 包來確定數(shù)據(jù)傳送的方向;當(dāng)所述數(shù)據(jù)包為輸入數(shù)據(jù)包時,智能電器3發(fā) 出確認握手包后,開始接收數(shù)據(jù);當(dāng)所述數(shù)據(jù)包為輸出數(shù)據(jù)包時,智能電 器3發(fā)出確認握手包后,開始發(fā)送數(shù)據(jù)。
主機1對非空端點發(fā)送令牌包后,在預(yù)設(shè)時間內(nèi)未得到確認握手包, 主機1確認該端點號上的智能電器3斷開,此時主機1將所述設(shè)備連接表
上相應(yīng)的記錄清空;當(dāng)主機1向一端點號發(fā)送數(shù)據(jù)包后,若在預(yù)設(shè)時間內(nèi) 未得到確認握手包,主機l確認該端點號上的智能電器3斷開,此時主機l 將所述設(shè)備連接表上相應(yīng)的記錄清空;當(dāng)主機1正在接受來自一端點號上 的智能電器3的數(shù)據(jù)包時,在預(yù)設(shè)時間內(nèi)收不到下一個字節(jié),主機l確認 該智能電器3斷開,此時主機1將所述設(shè)備連接表上相應(yīng)的記錄清空。
主機1在完成與一端點號上的智能電器3的數(shù)據(jù)通信后,主機1發(fā)送 通路撤消包至該智能電器3,并斷開與其的數(shù)據(jù)通信通道。
所述主機l和智能電器3都包括中央處理器、RS-485接口和通信程序, RS-485接口包括數(shù)據(jù)緩沖器。
見圖4,智能電器3的通信程序包括主模通訊塊ll、中斷方式的數(shù) 據(jù)接收模塊12、數(shù)據(jù)包處理模塊13、數(shù)據(jù)包發(fā)送模塊14和字節(jié)發(fā)送模塊 15;主模通訊塊11、數(shù)據(jù)包處理模塊13、數(shù)據(jù)包發(fā)送模塊14和按位方式 向智能電器串行總線發(fā)送數(shù)據(jù)的字節(jié)發(fā)送模塊15依次構(gòu)成調(diào)用關(guān)系;主模 通訊塊11與數(shù)據(jù)接收模塊12之間為中斷調(diào)用關(guān)系,數(shù)據(jù)接收模塊12與數(shù) 據(jù)包處理模塊13之間為調(diào)用關(guān)系;字節(jié)發(fā)送模塊15在發(fā)送數(shù)據(jù)前,判斷 所述數(shù)據(jù)緩沖器是否為空,若為空,則發(fā)送,否則等待。
見圖5,智能電器3中的中央處理器上電后,首先屏蔽通信接口,始化 其所有端口、存儲區(qū)、定時器和中斷服務(wù)程序。之后,允許通信接口工作。 這個過程確保了中央處理器正確響應(yīng)數(shù)據(jù)通信產(chǎn)生的中斷。
見圖6,數(shù)據(jù)接收采用中斷方式,該程序為中斷服務(wù)程序。
樣么處理器帶有串行接口 ,通過對接口初始化,可以設(shè)置接口的工作方 式。 一種工作方式是,當(dāng)接收到的數(shù)據(jù)后面一位(第9位)為1時才產(chǎn)生 中斷;另一種工作方式是,不論第9位是0或1,只要有數(shù)據(jù)都產(chǎn)生中斷。
令牌包正是利用這個特點。首先設(shè)置接口,使得發(fā)送數(shù)據(jù)后面一位(第 9位)為1時,才產(chǎn)生中斷的工作方式。令牌包的第9位設(shè)置為1,當(dāng)發(fā)送 令牌包時,所有端點上連接的微處理器均產(chǎn)生中斷。只有和自己地址相同 的端點改變接口的工作方式,形成不論第9位是0或1,只要有數(shù)據(jù)都產(chǎn)生 中斷功能,稱之為數(shù)據(jù)接口狀態(tài)。其它端點的工作方式不變。這樣以后主 機l發(fā)送信息的第9位非1,因此,只有該端點可以接收。其它端點不響應(yīng)。 這樣主機1與端點(即一端點號上的智能電器3)之間形成了一條數(shù)據(jù)管道。
當(dāng)主機1與端點之間的數(shù)據(jù)通信完成后,主機1發(fā)送通路撤消包,該
端點上的微處理器改變接口的工作方式,撤消數(shù)據(jù)管道。
當(dāng)接口接收到信息時產(chǎn)生中斷,微處理器通過判斷接口的狀態(tài),就可 以斷定是數(shù)據(jù),還是包是令牌包,或是其它類型的包。如果是令牌包并與 端點地址相同,就將接口改變成為數(shù)據(jù)接口。如果本端點是數(shù)據(jù)接收接口, 通過判定接收包的第一個字節(jié),就可以斷定包的類型——確認包、不確認 包、通路撤消包、數(shù)據(jù)包。
對不同的數(shù)據(jù)包有不同的處理方法,確認包、不確認包設(shè)置相應(yīng)的標(biāo)
志;當(dāng)接收到通路撤消包時,微處理器改變接口狀態(tài),成為非數(shù)據(jù)接口; 收到數(shù)據(jù)包時,當(dāng)接收到131個字節(jié)時,設(shè)置收到數(shù)據(jù)包標(biāo)志,和包處理 標(biāo)志,主程序4企測到包處理標(biāo)志時,調(diào)用包處理程序。
見圖7,該程序主要實現(xiàn)接收到主機l發(fā)送信息的處理程序。端點從主 機1接收到的包共有三大類
1) 數(shù)據(jù)包類
數(shù)據(jù)包又分為8種格式,每種格式中各個字節(jié)有明確的定義(具體的 定義見IASB總線的數(shù)據(jù)規(guī)約)。接收到數(shù)據(jù)包后,首先進行CRC校驗,不 正確時,發(fā)送不確認包,請求主機1重新發(fā)送;正確時,發(fā)送確認包,并 根據(jù)輸入、輸出的數(shù)據(jù)類型進行數(shù)據(jù)包的拆分,或是組包發(fā)送。
2) 握手包類
握手包分為確認握手包和不確認握手包。當(dāng)端點向主機1發(fā)送數(shù)據(jù)包 后,主機1才向端點發(fā)送該種類型的包。確認握手包,說明端點發(fā)送的數(shù) 據(jù)已被主機1正確接收。確認握手包已在數(shù)據(jù)接收程序中處理;不確認握 手包,說明端點發(fā)送的數(shù)據(jù)主機1接收不正確,此時,端點應(yīng)當(dāng)重新發(fā)送 數(shù)據(jù)。為了避免反復(fù)發(fā)送數(shù)據(jù),造成智能電器3微處理器死機現(xiàn)象,在這 里設(shè)置了重發(fā)計數(shù)器,當(dāng)重發(fā)次數(shù)超過某一極限時,端點停止重發(fā)操作。
3) 通路撤消包
通路撤消包是,主機1與端點通信結(jié)束后,主機1撤消通信數(shù)據(jù)管道 的包。通路撤消包已在數(shù)據(jù)接收程序中處理。
見圖8,信息發(fā)送程序分為兩個層次,包發(fā)送程序和字節(jié)發(fā)送程序。前 者實現(xiàn)的是面向包的發(fā)送功能;后者實現(xiàn)的是將包按字節(jié)發(fā)送功能。
調(diào)用包發(fā)送程后,首先判別要發(fā)送的信息包的類型。信息包的類型決 定了要發(fā)送的字節(jié)數(shù)。根據(jù)IASB的通信協(xié)議,握手包為l個字節(jié),數(shù)據(jù)包 為131個字節(jié)。此時,按照順序逐個發(fā)送即可。
有許多情況會產(chǎn)生端點發(fā)送超時的錯誤。為了簡化處理方法,當(dāng)出現(xiàn) 超時錯誤時,端點將改變通信端口的數(shù)據(jù)接收狀態(tài),斷開與主機l的連接。 如果是一般的錯誤,主機1再次呼叫端點時,連接將再次建立。不會帶來 嚴重的后果。
見圖9,字節(jié)發(fā)送程序,主要實現(xiàn)安照位方式向IASB總線發(fā)送數(shù)據(jù)的 功能。在發(fā)送數(shù)據(jù)前,判斷串行接口中發(fā)送緩沖器是否為空,為空則發(fā)送, 否則等待。
為了避免出錯造成死機現(xiàn)象,本程序中加入了等待超時判斷。實現(xiàn)的 方法是,每判斷一次發(fā)送緩沖器,給計時計數(shù)單元加l。當(dāng)該單元數(shù)值超出 一定極限時,認為是超時出錯。
超時的原因很多,其中之一是因為端點與總線斷開,致使發(fā)送緩沖器 中無字符,若不處理,會造成智能電器3的微處理器死機。為避免該現(xiàn)象 的產(chǎn)生,采用了端點主動與主機1斷開通路的方法。如果不是因為總線故 障,而是偶然原因造成的超時,這樣處理方法會造成主機1認為端點為空 的結(jié)果。但是,主機1下一次尋呼端點時,即可以恢復(fù)連接,不會造成嚴 重后果。
見圖10,主機l的通訊程序包括主模塊21、用于對各端點進行巡回 查看的巡呼模塊22、用于完成主機1與智能電器3之間的數(shù)據(jù)交換功能的 包處理模塊23、用于發(fā)送數(shù)據(jù)的包發(fā)送模塊24、用于接收數(shù)據(jù)的包接收模 塊25、字節(jié)發(fā)送模塊26和字節(jié)接收模塊27;主模塊21、巡呼模塊22和包 處理模塊23依次構(gòu)成調(diào)用關(guān)系,包處理模塊23分別與包發(fā)送模塊24、包 接收模塊25、字節(jié)發(fā)送模塊26和字節(jié)接收模塊27構(gòu)成調(diào)用關(guān)系,包發(fā)送 模塊24分別與字節(jié)發(fā)送模塊26和字節(jié)接收模塊27構(gòu)成調(diào)用關(guān)系,包接收
模塊25分別與字節(jié)發(fā)送模塊26和字節(jié)接收模塊27構(gòu)成調(diào)用關(guān)系。
見圖ll,主模塊21的功能包括,初始化通訊端口、初始化總線、巡呼 各個端點、繪制網(wǎng)絡(luò)拓樸圖、顯示參數(shù)等功能。
見圖12,巡呼模塊22的功能是從端點1到30進行巡回查看。具體 過程是首先確定了一個端點號,然后調(diào)用包處理程序,發(fā)送令牌包,有 確認時說明端點上有一個智能電器3。此時,核對端點設(shè)備連接表,該表為 空時,則說明是新連接到總線上的智能電器3。主機l發(fā)送數(shù)據(jù)包,要求端 點設(shè)備即智能電器3傳送其配置信息。當(dāng)主機1接收到來自該智能電器3 的有效數(shù)據(jù)后,填寫端點所述設(shè)備連接表。設(shè)備連接表不空,說明端點上
連接的設(shè)備種類已知,按照要求讓端點傳送本身狀態(tài)、電路參數(shù),或發(fā)送 控制參數(shù)。發(fā)送令牌包后無應(yīng)答,或是接收到的參數(shù)無效,均認為該端點 無設(shè)備,清空端點設(shè)備連接表。
見圖13,包處理模塊23主要完成主機1與各端點即智能電器3之間的數(shù) 據(jù)交換功能。它處理的包有參數(shù)包、配置包、控制包、令牌包、通路撤 消包。
參數(shù)包、配置包、控制包都是數(shù)據(jù)包,但是,端點對這三種包的處理 方法不同。參數(shù)包和配置包對端點來說是輸出包,要求端點返回一定數(shù)量 的數(shù)據(jù),對主機l來說是有數(shù)據(jù)返回的數(shù)據(jù)包。因此,在向端點發(fā)出數(shù)據(jù)包 后,應(yīng)等待接收返回數(shù)據(jù)包。而控制包就不同了,控制包對端點來說是輸 入包,不需要端點返回數(shù)據(jù)包。
主機l發(fā)送令牌包后,當(dāng)接收到確認信號后,主機1認為端點上連接
著設(shè)備。通路撤消包用于取消主機1與端點之間的數(shù)據(jù)管道。
見圖14-15,包發(fā)送模塊24用于發(fā)送131個字節(jié)的數(shù)據(jù),發(fā)送完畢后, 等待接收端點的握手信號,不確認時,主機l將重發(fā)數(shù)據(jù)。包接收模塊25用 于接收131個字節(jié)數(shù)據(jù),接收完畢后進行CRC?!€,不正確時發(fā)送不確認握 手信號,要求端點重發(fā)數(shù)據(jù),主機l重新接收。不論是接收還是發(fā)送,程序 中均加入了超時判斷,出現(xiàn)超時時設(shè)置接收、發(fā)送錯誤標(biāo)志并返回。
見圖16-17,字節(jié)發(fā)送模塊26和字節(jié)接收模塊27中加入了超時判斷,
超時時設(shè)置標(biāo)志并返回。
權(quán)利要求
1、一種智能電器串行總線的主機的工作方法,其特征在于主機(1)通過RS-485總線(2)連接有至少1個智能電器(3);1個智能電器(3)構(gòu)成一個端點;主機(1)包括主模塊(21)、巡呼模塊(22)、包處理模塊(23)、包發(fā)送模塊(24)和包接收模塊(25);工作時,主模塊(21)先初始化主機(1)的通訊端口、初始化總線、巡呼各個端點、繪制網(wǎng)絡(luò)拓撲圖并顯示參數(shù);然后,巡呼模塊(22)對各從端點進行巡回查看;然后,由包處理模塊(23)完成主機(1)與各端點之間的數(shù)據(jù)交換,其數(shù)據(jù)交換時處理的數(shù)據(jù)包包括參數(shù)包、配置包、控制包、令牌包、通路撤消包;然后,由包發(fā)送模塊(24)發(fā)送131個字節(jié)的數(shù)據(jù),發(fā)送完畢后,等待接收端點的握手信號,不確認時,主機(1)將重發(fā)數(shù)據(jù);或,由包接收模塊(25)接收131個字節(jié)數(shù)據(jù),接收完畢后進行CRC校驗,不正確時發(fā)送不確認握手信號,要求端點重發(fā)數(shù)據(jù),主機(1)重新接收。
2、 根據(jù)權(quán)利要求1所述的智能電器串行總線的主機的工作方法,其特 征在于所述主機(l)中包括一個設(shè)備連接表,該設(shè)備連接表與所述各端 點號相對應(yīng);所述巡呼模塊(22)對各從端點進行巡回查看的過程是 首先確定一個端點號,然后調(diào)用包處理模塊(23),發(fā)送令牌包,有 確i人握手包時,則相應(yīng)端點上有一個智能電器(3);然后,主機(1)核對該端點的設(shè)備連接表,若對應(yīng)的設(shè)備連接表為空 時,則判斷其為新連接到總線上的智能電器(3);主機(1)發(fā)送數(shù)據(jù)包, 要求該智能電器(3 )傳送其配置信息;當(dāng)主機(1 )接收到來自該智能電 器(3)的有效數(shù)據(jù)后,填寫端點所述設(shè)備連接表;若對應(yīng)的設(shè)備連接表不 為空,則判斷該端點上連接的設(shè)備種類已知,并由該端點上的智能電器(3) 傳送本身狀態(tài)、電路參數(shù),或發(fā)送控制參數(shù);若主機(1)發(fā)送令牌包后無 應(yīng)答,或是接收到的參數(shù)無效,均認為該端點無設(shè)備,清空端點設(shè)備連接 表。
3、 根據(jù)權(quán)利要求l所述的智能電器串行總線的主機的工作方法,其特征在于主機(1)和各智能電器(3 )都具有唯一的端點號,主機(1)搜索到一個智能電器(3)后,與其建立一數(shù)據(jù)通信通道;然后,主機(l) 與智能電器(3 )相互發(fā)送數(shù)據(jù)包,當(dāng)智能電器(3 )接收到正確數(shù)據(jù)時, 智能電器(3)向主機(1)發(fā)送確認握手包;當(dāng)智能電器(3)接收到錯誤數(shù)據(jù)時,智能電器(3 )向主機(1)發(fā)送不確認握手包,主機(1 )向該智能電器(3 )重新發(fā)送上一數(shù)據(jù)包;當(dāng)主機(1 )接收到正確數(shù)據(jù)時,主機 (1)向智能電器(3 )發(fā)送確認握手包;當(dāng)主機(1 )接收到錯誤數(shù)據(jù)時, 主機(l)向智能電器(3)發(fā)送不確認握手包,該智能電器(3)向主機(l) 重新發(fā)送上一數(shù)據(jù)包;當(dāng)主機(1 )向智能電器(3 )發(fā)送一通路撤銷包時,主機(1)與智能 電器(3)之間的所述數(shù)據(jù)通信通道撤銷。
4、根據(jù)權(quán)利要求l所述的智能電器串行總線的主機的工作方法,其特征在于所述主機(1 )搜索智能電器(3 )時,主機(1 )先通過RS-485 總線(2)發(fā)送令牌包;連接在RS-485總線(2)上的智能電器(3)接收該令牌包,然后通過RS-485總線(2)發(fā)回確認握手包至主機(1), /人而使主機(1 )與智能電器U)之間建立一數(shù)據(jù)通信通道。
5 、根據(jù)權(quán)利要求4所述的智能電器串行總線的主機的工作方法,其特征在于所述數(shù)據(jù)包包括循環(huán)冗余校驗字段;主機(1)和智能電器(3 ) 根據(jù)該循環(huán)冗余校驗字段來判斷接收到的所述數(shù)據(jù)包為錯誤數(shù)據(jù)或正確數(shù)據(jù)。
6 、根據(jù)權(quán)利要求1-5之一所述的智能電器串行總線的主機的工作方法, 其特征在于所述主機(l)中包括一個設(shè)備連接表,該設(shè)備連接表與所述 各端點號相對應(yīng);主機(1)向一端點號發(fā)送令牌包,若在預(yù)設(shè)時間內(nèi)未收到相應(yīng)的確認握手包,則主機(1)確認該端點號上不存在智能電器(3),即為空端點, 該設(shè)備連接表上相應(yīng)的記錄為空;若在預(yù)設(shè)時間內(nèi)收到相應(yīng)的確認握手包, 則主機(1)確認該端點號上存在智能電器(3),即為非空端點,該設(shè)備連接表上作相應(yīng)的記錄,然后讀取其產(chǎn)品標(biāo)志,以識別生產(chǎn)廠商以及產(chǎn)品種類,填寫設(shè)備連接表,并安裝相應(yīng)的驅(qū)動程序。
7、根據(jù)權(quán)利要求6所述的智能電器串行總線的主機的工作方法,其特征在于主機(1)對非空端點發(fā)送令牌包,并得到確認握手包時后,再發(fā) 出數(shù)據(jù)包來確定數(shù)據(jù)傳送的方向;當(dāng)所述數(shù)據(jù)包為輸入數(shù)據(jù)包時,智能電 器(3)發(fā)出確認握手包后,開始接收數(shù)據(jù);當(dāng)所述數(shù)據(jù)包為輸出數(shù)據(jù)包時, 智能電器(3)發(fā)出確認握手包后,開始發(fā)送數(shù)據(jù)。
8、 根據(jù)權(quán)利要求7所述的智能電器串行總線的主機的工作方法,其特 征在于主機(1)對非空端點發(fā)送令牌包后,在預(yù)設(shè)時間內(nèi)未得到確認握 手包,主機(1 )確認該端點號上的智能電器(3 )斷開,此時主機(1)將 所述設(shè)備連接表上相應(yīng)的記錄清空;當(dāng)主機(1)向一端點號發(fā)送數(shù)據(jù)包后,若在預(yù)設(shè)時間內(nèi)未得到確認握 手包,主機(1)確認該端點號上的智能電器(3 )斷開,此時主機(1)將 所述設(shè)備連接表上相應(yīng)的記錄清空;當(dāng)主機(1)正在接受來自一端點號上的智能電器(3)的數(shù)據(jù)包時, 在預(yù)設(shè)時間內(nèi)收不到下一個字節(jié),主機(1)確認該智能電器(3)斷開, 此時主機(1)將所述設(shè)備連接表上相應(yīng)的記錄清空。
9、 根據(jù)權(quán)利要求8所述的智能電器串行總線的主機的工作方法,其特 征在于所述主機(1)在完成與一端點號上的智能電器(3 )的數(shù)據(jù)通信 后,主機(1)發(fā)送通路撤消包至該智能電器(3),并斷開與其的數(shù)據(jù)通信通道。
10、 根據(jù)權(quán)利要求9所述的智能電器串行總線的主機的工作方法,其 特征在于所述主機(l)包括通訊程序,其包括主模塊(21)、用于對 各端點進行巡回查看的巡呼模塊(22)、用于完成主、智能電器(1和3) 之間的數(shù)據(jù)交換功能的包處理模塊(23 )、用于發(fā)送數(shù)據(jù)的包發(fā)送模塊(24 )、 用于接收數(shù)據(jù)的包接收模塊(25 )、字節(jié)發(fā)送模塊(26 )和字節(jié)接收模塊(27 ); 主模塊(21 )、巡呼模塊(22 )和包處理模塊(23 )依次構(gòu)成調(diào)用關(guān)系,包 處理模塊(23)分別與包發(fā)送模塊(24)、包接收模塊(25)、字節(jié)發(fā)送模 塊(26 )和字節(jié)接收模塊(27 )構(gòu)成調(diào)用關(guān)系,包發(fā)送模塊(24 )分別與 字節(jié)發(fā)送模塊(26 )和字節(jié)接收模塊(27 )構(gòu)成調(diào)用關(guān)系,包接收模塊(25 ) 分別與字節(jié)發(fā)送模塊(26)和字節(jié)接收模塊(27)構(gòu)成調(diào)用關(guān)系。
全文摘要
本發(fā)明涉及一種智能電器串行總線的主機的工作方法。該系統(tǒng)包括主機通過RS-485總線連接有至少1個智能電器;主機包括主模塊、巡呼模塊、包處理模塊、包發(fā)送模塊、包接收模塊、字節(jié)發(fā)送模塊和字節(jié)接收模塊;主模塊用于初始化主機的通訊端口、初始化總線、巡呼各個端點、繪制網(wǎng)絡(luò)拓撲圖并顯示參數(shù);巡呼模塊用于對各從端點進行巡回查看;包處理模塊用于完成主機與各端點之間的數(shù)據(jù)交換;包發(fā)送模塊用于發(fā)送131個字節(jié)的數(shù)據(jù);包接收模塊用于接收131個字節(jié)數(shù)據(jù),接收完畢后進行CRC校驗,不正確時發(fā)送不確認握手信號,要求端點重發(fā)數(shù)據(jù),主機重新接收。
文檔編號H04L1/16GK101345681SQ20081012012
公開日2009年1月14日 申請日期2008年7月29日 優(yōu)先權(quán)日2008年7月29日
發(fā)明者陳雙龍, 陳彥明 申請人:人民電器集團有限公司