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