一種基于串行總線結構的接口電路及通信協議的制作方法
【專利摘要】本發明公開了一種基于串行總線結構的總線接口電路及其總線通信協議,總線接口電路利用發送數據線、發送控制線和競爭控制線的邏輯組合,實現對總線電平的強上拉、弱上拉和強下拉驅動輸出,結合對總線邏輯電平的回讀功能,支持總線節點以非破壞性仲裁和自動退避的方式競爭總線控制權的總線通信協議。節點通過對總線狀態的監聽,判斷總線空閑,通過對總線電平的“預置”和基于節點地址位的“賦值”,使參與競爭的節點在總線控制權競爭過程中,具有最小地址值的節點向總線發送的信息不會遭到破壞,直至其應用數據發送完畢,總線控制權才會重新被節點競爭,從而實現基于串行總線結構的節點多主通信,保證總線通信的實時性和可靠性。
【專利說明】
-種基于串行總線結構的接口電路及通信協議
技術領域
[0001] 本發明設及一種基于串行總線結構的總線接口電路及其非破壞性總線通信協議, 屬于信息網絡通信技術領域。
【背景技術】
[0002] 電子信息、通信與計算機技術的發展,使整個社會發生了巨大的變化;同時由于工 業技術的擴大和發展,電子信息、通信與計算機技術在工廠、樓宇和農業領域中的應用也越 來越廣泛和深入。其中智能化儀器儀表、控制器、執行機構等設備的之間的數字通信W及與 上層控制系統之間的通信是首要的問題,現場總線就是解決運一問題的核屯、技術。
[0003] 現場總線為各種儀器設備提供基礎的信息傳輸與組網通信支持,是實現物聯網中 各節點功能部件協調高效工作的重要保障。目前,國外已經有一些非常成功的現場總線技 術,如EIB、LonWorks等,它們被廣泛應用于家庭和大型樓宇電氣監控系統中,但由于節點對 總線的驅動能力小,如果不使用中繼器,單總線可掛載的節點數一般不超過100個,如果需 要組成大網絡,則需要多條總線。工業上常用的485XAN總線等,單總線節點數量一般略多 于100個,在監控點過多時依然要使用多條總線構成網絡。
[0004] 使用"推挽"式輸出結構作為總線驅動電路可W有效提高總線節點對總線的驅動 能力,增加總線可掛載的節點數量。運種方式帶來的問題是,若同一時刻一條總線上有多個 總線節點傳輸數據,在高低電平之間出現低阻通路的可能性很高,運種情況會導致總線上 邏輯錯誤甚至短路燒毀。解決運一問題的常用的方法是在總線節點處使用"推挽"式輸出結 構的=態口接入總線,通過微控制器輪詢的方式控制總線節點傳輸數據,運種方法可W確 保總線上每個時刻只有一個=態口處于工作狀態,而其他的=態口均為高阻態,但是當總 線節點數量很大時,使用輪詢方式的通信過程就變得很慢,不符合現場總線對實時性的要 求,并且運種方法需要額外的控制總線W控制=態口的工作狀態與高阻態。
【發明內容】
[0005] 本發明是為避免上述現有技術所存在的不足之處,提供一種基于串行總線結構的 總線接口電路及其總線通信協議,W期能實現基于串行總線結構的節點多主通信,使總線 節點采用競爭的方式獲取總線控制權,從而能有效提高串行總線的負載能力、保證總線通 信的實時性和可靠性。
[0006] 本發明為解決技術問題采用如下技術方案:
[0007] 本發明一種基于串行總線結構的總線接口電路,所述串行總線結構是在總線上并 聯設置有n個節點,記為G= {Gi,G2,...,Gi,...,Gn} ;Gi表示第i個節點;所述第i個節點Gi包 括:第i個微控制器和第i個總線接口電路;所述第i個微控制器和第i個總線接口電路之間 通過第i組信號線相連;所述第i個總線接口電路通過第i個數據線化tai與所述總線相連;1 《i《n;其特點是:
[000引所述第i組信號線包括:第i個發送信號線TXi、第i個接收信號線RXi、第i個發送控 制信號線HIi和第i個競爭控制信號線CIi;
[0009] 所述第i個總線接口電路接入有第i個正電源、第i個負電源和地線;
[0010] 所述第i個總線接口電路包括:第i個上拉電路、第i個下拉電路、第i個回讀電路、 第i個數據發送控制電路和第i個競爭控制電路;
[0011] 所述第i個下拉電路與所述第i個正電源相連,并通過第i個一號二極管Di,1接入所 述第i個數據線化化i;
[0012] 所述第i個下拉電路與所述第i個數據發送控制電路相連;
[0013] 所述第i個回讀電路通過第i個八號電阻Ri,8和所述第i個數據線化化1相連;
[0014] 所述第i個回讀電路通過第i個接收信號線RXi與所述第i個微控制器相連;
[0015] 所述第i個數據發送控制電路與所述地線相連,并通過第i個=號二極管Di,3接入 所述第i個回讀電路與所述第i個八號電阻Ri,8之間;
[0016] 所述第i個數據發送控制電路分別通過第i個發送信號線TXi和第i個發送控制信 號線HIi與所述第i個微控制器相連;
[0017] 所述第i個上拉電路與所述第i個負電源相連,并通過第i個二號二極管Di,2接入所 述第i個數據線化化i;
[001引所述第i個上拉電路外部接入有第i個五號電阻Ri,日;所述第i個五號電阻Ri,日的一 端接入所述第i個二號二極管化,2的負極,另一端接入第i個負電源;
[0019] 所述第i個上拉電路與所述第i個競爭控制電路相連;
[0020] 所述第i個競爭控制電路通過第i個四號二極管化,4接入所述第i個回讀電路與所 述第i個八號電阻Ri,8之間;
[0021] 所述第i個競爭控制電路通過所述第i個競爭控制信號線CIi、第i個發送信號線TXi 和第i個發送控制信號線HIi與所述第i個微控制器相連。
[0022] 本發明所述的基于串行總線結構的總線接口電路的特點也在于:所述第i個競爭 控制電路包括:第i個與非口化、第i個十二號電阻Ri,12和第i個五號PNPS極管化,5;
[0023] 所述第i個五號PNPS極管化,5的發射極接入第i個正電源、集電極分別與第i個四 號二極管Di,4的正極和所述第i個上拉電路相連、基極與所述第i個十二號電阻Ri,12的一端 相連;所述第i個十二號電阻Ri,12的另一端與第i個與非口化的輸出端相連;所述第i個與非 口化的輸入端分別與所述第i個競爭控制信號線化、第i個發送信號線TXi和第i個發送控制 信號線HIi相連。
[0024] 本發明一種基于總線接口電路的總線通信協議的特點是應用于由n個節點并聯設 置在總線上所組成的串行總線結構中,第i個節點包括:第i個微控制器和第i個總線接口電 路;所述第i個微控制器和第i個總線接口電路之間通過第i組信號線相連;所述第i組信號 線包括:第i個發送信號線TXi、第i個接收信號線RXi、第i個發送控制信號線HIi和第i個競爭 控制信號線CIi;所述第i個總線接口電路通過第i個數據線化tai與所述總線相連;
[0025] 所述總線通信協議是按如下步驟進行:
[0026] 步驟1、定義變量j和k;假設W所述第i個節點作為發送節點并向所述總線發送一 帖二進制數據數據,定義所述一帖二進制數據的位數為M = m+z+l;m>2且為偶數,m表示所 述一帖二進制數據中數據位的個數;Z = I表示所述一帖二進制數據中起始位的個數為1;1 =1表示所述一帖二進制數據中停止位的個數為1;
[0027] 則將第i個節點的地址IDi中的m個地址位中的高!位封裝為第I帖二進制數據、低 f位封裝為第2帖二進制數據;
[0028] 所述第1帖二進制數據和第2帖二進制數據中的數據位分別是在每個地址位之前 的高位上插入二進制碼"r構成;即,
[0029] 所述第 1 帖二進制數據的數據位:1,IDm-I,1,IDm-2,1,. . .,1,IDm/2 ;
[0030] 所述第2帖二進制數據的數據位:I,IDm/2-1,I,IDm/2-2,I,. . .,I,IDo ;
[0031] 步驟2、所述第i個節點中的微控制器將所述第i個發送控制信號線HIi置為低電 平,表示所述第i個總線接口電路處于"弱上拉"輸出;
[0032] 步驟3、初始化j = l;
[0033] 步驟4、所述第i個節點中的微控制器在第j個監聽周期Tj下,通過第i個接收信號 線RXi采集所述總線的邏輯值門并進行判斷,
[0034] 當Fj = I時,將j + 1賦值給j,并判斷j>M是否成立,若成立,則表示所述總線處于 "空閑"狀態,并執行步驟5,否則重復步驟4執行;
[0035] 當Fj = 0時,則表示所述總線處于"占用"狀態;并返回步驟3執行;
[0036] 步驟5、初始化k = l;
[0037] 步驟6、初始化j = 0;在第j個發送周期L的起始時刻,所述第i個節點中的微控制 器將所述第i個發送控制信號線HIi置為高電平、并將第i個競爭控制信號線CIi和第i個發送 信號線TXi置為低電平后,等待第j個發送周期L的結束時刻;從而完成所述第k帖二進制數 據中的起始位的發送,并令j = 1;
[0038] 步驟7、在第j個發送周期L的起始時刻,所述第i個節點中的微控制器分別將所述 第i個發送控制信號線HIi、第i個競爭控制信號線CIi和第i個發送信號線TX遺為高電平,從 而使得所述第i個總線接口電路處于"強上拉"輸出;并在第j個發送周期L的中間時刻,將 第i個競爭控制信號線CI遺為低電平,從而使得所述第i個總線接日電路處于"弱上拉"輸 出,完成總線電平狀態的預置;
[0039] 步驟8、在第j+1個發送周期Tw的起始時刻,所述第i個節點中的微控制器將所述 第k帖二進制數據的數據位中的第m-j-1位的數據通過所述第i個發送信號線TXi發送到所 述總線上;若所述第i個發送信號線TXi為高電平,則表示所述第i個總線接口電路維持"弱 上拉"輸出;若所述第i個發送信號線TXi為低電平,則表示所述第i個總線接口電路處于"強 下拉"輸出;
[0040] 并在第j+1個發送周期Tw的中間時刻,所述第i個節點中的微控制器通過第i個接 收信號線RXi讀取所述總線的邏輯值Fw并進行判斷,
[0041] 當總線的邏輯值Fw與第k帖二進制數據的數據位中的第m-j-1位的數據相同時, 等待第j+1個發送周期Tw的結束時刻,再將j+2賦值給j,并判斷j>m-l是否成立;若成立, 則在第j個發送周期L的起始時刻,所述第i個節點中的微控制器分別將所述第i個發送控 制信號線HIi、第i個競爭控制信號線CIi和第i個發送信號線TXi置為高電平后,等待第j個發 送周期L的結束時刻;從而完成所述第k帖二進制數據中的停止位的發送,再執行步驟9;否 貝IJ,返回步驟7執行;
[0042] 當總線的邏輯值門+1與第k帖二進制數據的數據位中的第m-j-1位的數據不相同 時,則表示存在高于所述第i個節點優先級的其他節點,所述第i個節點中的微控制器將所 述第i個發送控制信號線HIi置為低電平,表示所述第i個總線接口電路處于"弱上拉"輸出; 并返回步驟3執行;
[0043] 步驟9、將k+1賦值給k,并判斷k>2是否成立,若成立,則表示所述第i個節點中的 微控制器獲得向所述總線發送數據的控制權并通過第i個數據線化tai完成自身的數據發 送;并返回步驟2執行;否則,返回步驟6執行。
[0044] 與已有技術相比,本發明有益效果體現在:
[0045] 1、本發明設計一種基于串行總線結構的總線接口電路,利用對發送數據線、發送 控制信號線和競爭控制信號線的組合設置,實現了對總線電平的強上拉、弱上拉和強下拉 驅動輸出。其效果是:對總線電平的強上拉和強下拉驅動,構成對總線的"推挽"式輸出功 能,顯著提高了接口電路對總線的輸出驅動能力,增加了總線上可同時并聯掛載節點的數 量。同時,結合對總線電平的弱下拉和對總線邏輯電平的回讀功能,所提出的總線接口電路 為實現節點競爭總線控制權的非破壞性總線通信協議,提供了硬件支持。
[0046] 2、本發明的總線接口電路主要由上拉電路、下拉電路、弱下拉電阻、發送控制電 路、競爭控制電路和總線電平回讀電路構成,并通過數據線和地線接入串行總線。當有數據 需要向總線發送時,節點通過回讀總線邏輯電平,對總線狀態進行監聽,如果連續出現高電 平邏輯位的數量超過一帖數據的位數,則判斷總線空閑,否則判斷總線被占用。當總線空閑 時,節點通過接口電路將自身的地址ID按照先高位后低位的次序發送出去。但在發送每一 位地址之前,先利用接口電路的強上拉能力,向總線發送一位邏輯1,然后控制接口電路進 入弱上拉狀態,從而完成總線電平的"預置",在接下來的一位時間里,判斷要發送的地址位 的邏輯值,如果為1,則保持接口的弱上拉輸出;如果為0,則控制接口電路強下拉,向總線發 送一位邏輯0,從而完成總線電平的"賦值"。其效果是:在"預置"階段,總線電平被快速上拉 至邏輯1,然后根據參與競爭節點的地址位,通過高電平保持或強下拉驅動,實現了總線電 平的快速"賦值",從而實現了強驅動"推挽"輸出的"線與"功能。
[0047] 3、本發明對接口電路輸出的"線與"結果產生的總線邏輯電平,節點通過其總線接 口的回讀電路進行回讀,判斷回讀結果與當前節點發送的地址位是否一致,如果一致則繼 續下一位的競爭,否則,節點暫時退出總線競爭而轉入對總線狀態的監聽。其效果是:只要 總線上各節點的地址ID具有唯一性,那么當某節點的地址位全部發送出去,則該節點就獲 得了總線的控制權,可W繼續向總線發送應用數據。參與競爭的節點在總線控制權競爭和 仲裁的整個過程中,具有最小地址ID值的節點向總線發送的信息不會遭到任何破壞,直至 其應用數據發送完畢,總線控制權才會重新被競爭和仲裁,從而實現了基于串行總線結構 的節點多主通信,有效提高了串行總線通信的實時性和可靠性。
【附圖說明】
[0048] 圖1為本發明中串行總線結構示意圖;
[0049] 圖2為本發明中總線接口電路原理圖;
[0050] 圖3為本發明中總線通信接口數據信道編碼脈沖示意圖;
[0051 ]圖4為本發明中節點發送數據及一帖二進制數據的構成圖;
[0052]圖5為本發明中通信協議流程圖;
[0053] 圖6為本發明中非破壞性總線仲裁實施實例圖。
【具體實施方式】
[0054] 本實施例中,總線接口電路利用發送數據線、發送控制線和競爭控制線的邏輯組 合,實現對總線電平的強上拉、弱上拉和強下拉驅動輸出,結合對總線邏輯電平的回讀功 能,支持總線節點W非破壞性仲裁和自動退避的方式競爭總線控制權的總線通信協議。節 點通過對總線狀態的監聽,判斷總線空閑,通過對總線電平的"預置"和基于節點地址位的 "賦值",使參與競爭的節點在總線控制權競爭過程中,具有最小地址值的節點向總線發送 的信息不會遭到破壞,直至其應用數據發送完畢,總線控制權才會重新被節點競爭,從而實 現了基于串行總線結構的節點多主通信,保證了總線通信的實時性和可靠性。
[0055] 具體的說,一種基于串行總線結構的總線接口電路,其結構如圖1所示。串行總線 結構是在總線上并聯設置有n個節點,記為G= {Gi,G2, ...,Gi,...,GnhGi表示第i個節點;第 i個節點Gi包括:第i個微控制器和第i個總線接口電路;第i個微控制器和第i個總線接口電 路之間通過第i組信號線相連;第i個總線接口電路通過第i個數據線化化1與總線相連,第i 個微控制器利用第i組信號線控制第i個總線接口電路,從而向總線發送數據或從總線接收 數據;
[0056] 第i組信號線包括:第i個發送信號線TXi、第i個接收信號線RXi、第i個發送控制信 號線HIi和第i個競爭控制信號線CIi;
[0057] 第i個總線接口電路接入有第i個正電源+U、第i個負電源-U和地線;
[005引參見圖2;第i個總線接口電路包括:第i個上拉電路、第i個下拉電路、第i個回讀電 路、第i個數據發送控制電路和第i個競爭控制電路;
[0059] 第i個下拉電路與第i個正電源相連,并通過第i個一號二極管Di,1接入第i個數據 線D曰t曰i ;
[0060] 第i個下拉電路與第i個數據發送控制電路相連;
[0061] 第i個回讀電路通過第i個八號電阻Ri,8和第i個數據線化化1相連;
[0062] 第i個回讀電路通過第i個接收信號線RXi與第i個微控制器相連;
[0063] 第i個數據發送控制電路與地線相連,并通過第i個=號二極管化,3接入第i個回讀 電路與第i個八號電阻Ri,8之間;
[0064] 第i個數據發送控制電路分別通過第i個發送信號線TXi和第i個發送控制信號線 HIi與第i個微控制器相連;
[0065] 第i個上拉電路與第i個負電源相連,并通過第i個二號二極管Di,2接入第i個數據 線化tai;第i個下拉電路和第i個上拉電路共同構成了第i個"推挽"式輸出電路;當第i個下 拉電路中的第i個一號NPN立極管Qi,1導通并且第i個上拉電路中的第i個二號NPN立極管化,2 截止,第i個總線接口電路被置為"強下拉"輸出;當第i個下拉電路中的第i個一號NPNS極 管Qi,1截止并且第i個上拉電路中的第i個二號NPN立極管化,2導通,則第i個總線接口電路輸 出被置為"強上拉"輸出。
[0066] 第i個一號二極管化,1和第i個二號二極管化,2共同工作,其功能一是避免了因誤將 第i個正電源+U和第i個負電源-U接反而損毀第i個總線接口電路和總線;二是分別對第i個 下拉電路和第i個上拉電路限幅,避免了由于正電源+U或第i個負電源-U輸出電壓不穩定而 損毀第i個總線接口電路。
[0067]第i個上拉電路外部接入有第i個五號電阻Ri,5;第i個五號電阻Ri,5的一端接入第i 個二號二極管Di,2的負極,另一端接入第i個負電源;第i個五號電阻Ri,5的電阻值很大;當第 i個上拉電路中的第i個二號NPNS極管Qi,2和第i個下拉電路中的第i個一號NPNS極管化,1 均截止,第i個負電源-U可W通過第i個五號電阻Ri,5將第i個總線接口電路輸出置為"弱上 拉"輸出;此時,若總線上第x(l《x《n且X聲i)個節點Gx中第X個下拉電路里的第X個五號 NPNS極管Qx,5處于導通狀態,第i個五號電阻Ri,5可W將第X個正電源+U和第i個負電源-U之 間通路中的電流限制在微安級別,避免在第X個正電源+U和第i個負電源-U之間形成低阻通 路。
[006引定義:"強上掙'狀態和"弱上掙'狀態并稱為"上掙'狀態;
[0069] 當總線電平狀態被置為"強下拉"狀態時,第i個回讀電路中的第六號NPNS極管 Qi,詔通,第i個接收信號線RXi被置為低電平;當總線的電平狀態被置為"上拉"狀態時,第i 個回讀電路中的第六號NPNS極管化,6截止,第i個接收信號線RXi被置為高電平;若第i個微 控制器檢測到第i個接收信號線RXi為低電平,則讀取到總線處于"強下掙'狀態;若第i個微 控制器檢測到第i個接收信號線RXi為高電平,則讀取到總線處于"上拉"狀態。
[0070] 第i個上拉電路與第i個競爭控制電路相連;
[0071] 第i個競爭控制電路通過第i個四號二極管Di,4接入第i個回讀電路與第i個八號電 阻Ri,8之間;第i個=號二極管Di,3和第i個四號二極管化,4共同工作,其功能與第i個一號二 極管化,1和第i個二號二極管化,2共同工作的功能相同。
[0072] 第i個競爭控制電路通過第i個競爭控制信號線CIi、第i個發送信號線TXi和第i個 發送控制信號線HIi與第i個微控制器相連。
[0073] 具體的,第i個競爭控制電路包括:第i個與非口化、第i個十二號電阻Ri,12和第i個 五號PNPS極管Qi, 5;
[0074] 第i個五號PNPS極管化,5的發射極接入第i個正電源、集電極分別與第i個四號二 極管Di,4的正極和第i個上拉電路相連、基極與第i個十二號電阻Ri,12的一端相連;第i個十 二號電阻Ri,12的另一端與第i個與非口化的輸出端相連;第i個與非口化的輸入端分別與第i 個競爭控制信號線CIi、第i個發送信號線TXi和第i個發送控制信號線HIi相連。
[0075] 第i個微控制器利用第i組信號線控制第i個總線接口電路,基于第i個總線接口電 路的原理,可W得到第i個微控制器對第i個總線接口電路的控制方式,如表1所示。
[0076] 表1第i個微控制器對第i個總線接口電路的控制方式
[0077]
[007引由表1可知,第i個發送控制信號線HIi為控制發送數據的信號線;當第i個發送控 審IJ信號線HI功低電平時,第i個總線接日電路始終保持"弱上掙'狀態,不隨第i個發送信號 線TXi和第i個競爭控制信號線CIi中信號的改變而變化。當第i個發送控制信號線HIi為高電 平時,第i個發送信號線TXi和第i個競爭控制信號線CIi中的信號共同決定第i個總線接口電 路的輸出狀態。
[0079] 當第i個發送控制信號線HIi為高電平時,第i個發送信號線TXi中的信號決定第i個 總線接口電路處于"上拉"輸出或"強下拉"輸出。
[0080] 當第i個發送控制信號線HIi為高電平且第i個發送信號線TXi為高電平時,第i個競 爭控制信號線CIi中的信號決定第i個總線接口電路處于"弱上拉"輸出或"強上拉"輸出。
[0081] 由第i個總線接口電路的原理可知:當總線上第曰(曰=1,2,...,11)個總線接口電路 為"弱上拉"狀態時,則總線也為"弱上拉"狀態,;當總線上有b個總線接口電路為"弱上拉" 輸出,且有C個總線接口電路為"強下拉"輸出,b+c = n,則總線為"強下掙'狀態。
[0082] 本實施例中,一種基于總線接口電路的總線通信協議,是應用于由n個節點并聯設 置在總線上所組成的串行總線結構中,第i個節點包括:第i個微控制器和第i個總線接口電 路;第i個微控制器和第i個總線接口電路之間通過第i組信號線相連;第i組信號線包括:第 i個發送信號線TXi、第i個接收信號線RXi、第i個發送控制信號線HIi和第i個競爭控制信號 線CIi;第i個總線接口電路通過第i個數據線化化i與總線相連;
[0083] 如圖3所示,總線通信協議規定:總線的信道編碼方式采用雙極脈沖不歸零負邏輯 編碼,總線具有兩種邏輯值,即邏輯"r,對應總線"上拉"狀態和高電平;邏輯"0",對應總線 "強下拉"狀態和低電平;
[0084] 定義希望獲得向總線發送數據控制權的節點為參與競爭的節點;不希望獲得向總 線發送數據控制權的節點為未參與競爭的節點。
[0085] 如圖5所示,總線通信協議是按如下步驟進行:
[0086] 步驟1、定義變量j和k;假設W第i個節點作為發送節點并向總線發送一帖二進制 數據,定義一帖二進制數據的位數為M = m+z+l;m>2且為偶數,m表示一帖二進制數據中數 據位的個數;Z = 1表示一帖二進制數據中起始位的個數為1,起始位為"0" ; 1 = 1表示一帖二 進制數據中停止位的個數為1,停止位為"r;如圖4所示,第i個節點向總線發送的數據由若 干帖二進制數據構成,二進制數據的帖數可變,但至少為二帖;每帖二進制數據之間設有帖 間隔時間,帖間隔時間小于每個二進制數據位的發送周期,數據的第一帖二進制數據是第1 帖二進制數據,第二帖二進制數據是第2帖二進制數據;
[0087] 定義總線中的第i個節點的地址ID功二進制數據,IDi共有m個地址位;又有第Z個 節點的地址化,l《z《n,z聲i,則必須滿足IDi聲IDz;此時若IDi<IDz,則第i個節點比第Z個 節點的優先級高;在一次競爭中,有且只有一個節點獲得向總線發送數據的控制權,該節點 的優先級必然比所有參與競爭的其他節點都高。
[0088] 則將第1個節點的地址101中的111個地址位中的高^位封裝為第1帖二進制數據、低 f位封裝為第2帖二進制數據;
[0089] 第1帖二進制數據和第2帖二進制數據中的數據位分別是在每個地址位之前的高 位上插入二進制碼"r構成;即,
[0090] 第I 帖二進制數據的數據位:I,IDm-I,I,IDm-2,I,. . .,I,IDm/2 ;
[0091] 第2帖二進制數據的數據位:I,IDm/2-1,I,IDm/2-2,I,. . .,I,IDo ;
[0092] 第i個節點通過第i個發送信號線TXi發送數據位,定義發送數據位為"r時,第i個 發送信號線TX功高電平;發送數據位為"0"時,第i個發送信號線TX功低電平;
[0093] 若僅有第i個節點和第Z個節點是參與競爭的節點,在競爭向總線發送數據的控制 權時,第i個節點依次向總線發送第i個節點的第1帖二進制數據和第2帖二進制數據,第Z個 節點依次向總線發送第Z個節點的第1帖二進制數據和第2帖二進制數據;若IDi<IDz,則第i 個節點比第Z個節點的優先級高,故通過將第i個節點的地址IDi與第Z個節點地址IDz中的對 應地址位逐位比較,最終優先級高的第i個節點勝出,即第i個節點獲得向總線發送數據的 控制權。
[0094] 步驟2、第i個節點中的微控制器將第i個發送控制信號線HIi置為低電平,表示第i 個總線接口電路處于"弱上拉"輸出,即表1中的1號方式;
[0095] 步驟3、初始化j = l;
[0096] 步驟4、第i個節點中的微控制器在第j個監聽周期L下,通過第i個接收信號線RXi 采集總線的邏輯值門并進行判斷,由于未向總線發送數據的節點輸出均處"弱上拉"狀態, 則若總線上的所有節點都未向總線發送數據,此時總線的邏輯值為"r;參見圖4,又由于一 帖二進制數據的起始位為邏輯"0",且帖間隔時間小于一個二進制數據位的發送周期,若在 一帖二進制數據發送周期中,第i個節點采集總線的邏輯值門始終為"r,則表示在一帖二 進制數據的發送周期中沒有節點正在向總線發送數據,定義此時總線處于"空閑"狀態;否 則總線處于"占用'狀態。
[0097] 當門=1時,將j+1賦值給j,并判斷j>M是否成立,若成立,即在一帖二進制數據發 送周期中,第i個節點采集總線的邏輯值F疏終為"r,則表示總線處于"空卸'狀態,并執行 步驟5;否則重復步驟4執行;
[009引當Fj = 0時,則表示總線處于"占用"狀態;并返回步驟3執行;
[0099] 步驟5、初始化k = l;
[0100] 步驟6、初始化j = 0;在第j個發送周期L的起始時刻,第i個節點中的微控制器將 第i個發送控制信號線HIi置為高電平、并將第i個競爭控制信號線CIi和第i個發送信號線 TX遺為低電平后,此時第i個總線接日電路處于"強下拉"輸出,第i個節點處于表1中的3號 方式,等待第j個發送周期T非勺結束時刻;從而完成第k帖二進制數據中的起始位"0"的發 送,并令j = l;
[0101] 步驟7、在第j個發送周期Tj的起始時刻,第i個節點中的微控制器分別將第i個發 送控制信號線HIi、第i個競爭控制信號線CIi和第i個發送信號線TXi置為高電平,即第i個節 點中的微控制器將第k帖二進制數據的數據位中的第m-j-1位的數據通過第i個發送信號線 TXi發送到總線上,從而使得總線處于"強上拉"狀態,此時第i個節點處于表1中的4號方式; 并在第j個發送周期T撕結束時刻,將第i個競爭控制信號線CI遺為低電平,從而使得第i個 總線接日電路處于"弱上拉"狀態,完成總線電平狀態"預置",此時第i個節點處于表1中的2 號方式;
[0102] 步驟7等價于先使第i個一號NPN立極管Qi,1截止且第i個上拉電路中第i個二號NPN S極管化,2導通,將第i個數據線化tai的電平狀態通過第i個上拉電路中第i個二號NPN立極 管化,2從+U拉到-u,并使S極管截止,通過第i個五號電阻Ri,5維持第i個數據線化tai的電平 狀態。步驟7中也可W使第i個總線接口電路從"強下拉"狀態直接轉變到"弱上拉"狀態,即 跳過"強上拉"狀態,此時等價于將第i個數據線化化1的電平狀態通過第i個五號電阻Ri,5從 +U拉到-U。
[010引步驟8、在第j+1個發送周期Tw的起始時刻,第i個節點中的微控制器將第k帖二進 制數據的數據位中的第m-j-1位的數據,即地址位
里過第i個發送信號線TXi發送到 總線上;若第i個發送信號線TXi為高電平,則表示第i個總線接口電路維持"弱上拉"輸出, 此時第i個節點處于表1中的2號節點方式;若第i個發送信號線TXi為低電平,則表示第i個 總線接日電路處于"強下掙'輸出,此時第i個節點處于表1中的3號節點方式,并且第i個總 線接口電路也將總線置為"強下拉"狀態;此時若總線上第Z個節點也是參與競爭的節點,且 第Z個節點的第Z個發送信號線TXz為高電平,即第Z個總線接口電路處于"弱上拉"狀態,第Z 個節點處于表1中的2號節點方式,第i個正電源和第Z個負電源之間形成通路,但電流被限 制在微安級別,也不會產生總線邏輯值錯誤;
[0104] 并在第j+1個發送周期Tw的中間時刻,第i個節點中的微控制器通過第i個接收信 號線RXi讀取總線的邏輯值Fw并進行判斷,
[0105] 當總線的邏輯值Fw與第k帖二進制數據的數據位中的第m-j-1位的數據相同時, 等待第j+1個發送周期Tw的結束時刻,再將j+2賦值給j,并判斷j>m-l是否成立;若成立, 表明第i個節點的第k帖二進制數據的數據位已經全部發送完成,則在第j個發送周期Tj的 起始時刻,第i個節點中的微控制器分別將第i個發送控制信號線HIi、第i個競爭控制信號 線CIi和第i個發送信號線TXi置為高電平后,等待第j個發送周期L的結束時刻;從而完成第 k帖二進制數據中的停止位的發送,再執行步驟9;否則,表示第i個節點無法通過第i個節點 的地址IDi地址位W"' I'' I判斷自己是否具有高優先級,則返回步驟7執行; k 2
[0106] 當總線的邏輯值門+1與第k帖二進制數據的數據位中的第m-j-l位的數據不相同 時,則表示存在高于第i個節點優先級的其他節點,第i個節點中的微控制器將第i個發送控 審IJ信號線HI遺為低電平,表示第i個總線接口電路處于"弱上拉"輸出,此時第i個節點已退 出本次競爭,保留其希望向總線發送的數據,完成一次非破壞性總線仲裁;并返回步驟3執 行,重新對總線進行監聽,準備參與下一次競爭;
[0107] 步驟9、將k+1賦值給k,并判斷k>2是否成立,若成立,表明第i個節點在所有參與 競爭的節點中具有最高優先級,則表示第i個節點中的微控制器獲得向總線發送數據的控 制權并通過第i個數據線化tai完成自身的數據發送;并返回步驟2執行;否則,返回步驟6執 行。
[0108] 舉例說明:在圖6所示的總線競爭實施例中,一帖二進制數據中數據位的個數m = 8, 一帖二進制數據的位數M= 10。地址IDi為01001001 (49H)的第1個節點和地址ID2為 01000011(43?的第2個節點同時監聽到總線處于"空閑"狀態,并同時依次向總線發送其各 自的第1帖二進制數據和第2帖二進制數據,即開始一次競爭。第1個節點和第2個節點在發 送各自的第1帖二進制數據和第2帖二進制數據的過程中,對發送的每一個地址位,都進行 回讀和比較。當發送第2帖二進制數據中數據位的第6位,即地址ID的第3位時,節點1發送的 是"r,即發送邏輯"r,第1個總線接口電路處于"弱上拉"狀態;而第2個節點發送的是%", 即發送邏輯"0",第I個總線接日電路處于"強下掙'狀態;總線處于"強下拉"狀態,此時第I 個節點和第2個節點從總線讀取的邏輯值為"0",于是就產生了總線訪問沖突。因為第1個節 點從總線讀取的邏輯值"0"與自己發送的邏輯值"r不同,便會終止對總線的數據發送,第1 個總線接口電路維持"弱上拉"狀態,轉而對總線進行監聽或數據接收;而第2個節點會獲得 向總線發送數據的控制權,通過第2個數據線化化1完成自身的數據發送,數據發送完成后, 第2個總線接口電路被置于"弱上拉"狀態,轉而對總線進行監聽或數據接收。
【主權項】
1. 一種基于串行總線結構的總線接口電路,所述串行總線結構是在總線上并聯設置有 η個節點,記為G={Gi,G2, . . .,Gi, . . .,Gn} ;Gi表示第i個節點;所述第i個節點Gi包括:第i個 微控制器和第i個總線接口電路;所述第i個微控制器和第i個總線接口電路之間通過第i組 信號線相連;所述第i個總線接口電路通過第i個數據線Dat ai與所述總線相連;1彡i<n;其 特征是: 所述第i組信號線包括:第i個發送信號線TXi、第i個接收信號線RXi、第i個發送控制信 號線HL·和第i個競爭控制信號線CL·; 所述第i個總線接口電路接入有第i個正電源、第i個負電源和地線; 所述第i個總線接口電路包括:第i個上拉電路、第i個下拉電路、第i個回讀電路、第i個 數據發送控制電路和第i個競爭控制電路; 所述第i個下拉電路與所述第i個正電源相連,并通過第i個一號二極管D1;1接入所述第 i個數據線Datai; 所述第i個下拉電路與所述第i個數據發送控制電路相連; 所述第i個回讀電路通過第i個八號電阻R1>8和所述第i個數據線Datm相連; 所述第i個回讀電路通過第i個接收信號線1?1與所述第i個微控制器相連; 所述第i個數據發送控制電路與所述地線相連,并通過第i個三號二極管D1>3接入所述 第i個回讀電路與所述第i個八號電阻R1>8之間; 所述第i個數據發送控制電路分別通過第i個發送信號線TXi和第i個發送控制信號線 Hli與所述第i個微控制器相連; 所述第i個上拉電路與所述第i個負電源相連,并通過第i個二號二極管D1>2接入所述第 i個數據線Datai; 所述第i個上拉電路外部接入有第i個五號電阻R1>5;所述第i個五號電阻R1>5的一端接 入所述第i個二號二極管D1>2的負極,另一端接入第i個負電源; 所述第i個上拉電路與所述第i個競爭控制電路相連; 所述第i個競爭控制電路通過第i個四號二極管D1>4接入所述第i個回讀電路與所述第i 個八號電阻Ri,8之間; 所述第i個競爭控制電路通過所述第i個競爭控制信號線CL·、第i個發送信號線1&和第 i個發送控制信號線HL·與所述第i個微控制器相連。2. 根據權利要求1所述的基于串行總線結構的總線接口電路,其特征是:所述第i個競 爭控制電路包括:第i個與非門Ui、第i個十二號電阻Ri, 12和第i個五號PNP三極管Qi,5; 所述第i個五號PNP三極管Q1>5的發射極接入第i個正電源、集電極分別與第i個四號二 極管D1>4的正極和所述第i個上拉電路相連、基極與所述第i個十二號電阻R1>12的一端相連; 所述第i個十二號電阻R 1>12的另一端與第i個與非門仏的輸出端相連;所述第i個與非門仏的 輸入端分別與所述第i個競爭控制信號線CL·、第i個發送信號線Tt和第i個發送控制信號線 Hli相連。3. -種基于總線接口電路的總線通信協議,其特征是應用于由η個節點并聯設置在總 線上所組成的串行總線結構中,第i個節點包括:第i個微控制器和第i個總線接口電路;所 述第i個微控制器和第i個總線接口電路之間通過第i組信號線相連;所述第i組信號線包 括:第i個發送信號線TXi、第i個接收信號線RXi、第i個發送控制信號線HL·和第i個競爭控制 信號線CI1;所述第i個總線接□電路通過第i個數據線Datm與所述總線相連; 所述總線通信協議是按如下步驟進行: 步驟1、定義變量j和k;假設以所述第i個節點作為發送節點并向所述總線發送一幀二 進制數據數據,定義所述一幀二進制數據的位數為M=m+z+l;m多2且為偶數,m表示所述一 幀二進制數據中數據位的個數;z = 1表示所述一幀二進制數據中起始位的個數為1; 1 = 1表 示所述一幀二進制數據中停止位的個數為1; v-t/i 則將第i個節點的地址IDi中的m個地址位中的高y位封裝為第1幀二進制數據、低y位 封裝為第2幀二進制數據; 所述第1幀二進制數據和第2幀二進制數據中的數據位分別是在每個地址位之前的高 位上插入二進制碼"Γ構成;即, 所述第1幀二進制數據的數據位:1,IDh,1,IDm-2,1,…,1,IDm/ 2; 所述第2幀二進制數據的數據位:1,IDm/2-i,1,IDm/ 2-2,1,…,1,IDo; 步驟2、所述第i個節點中的微控制器將所述第i個發送控制信號線HL·置為低電平,表示 所述第i個總線接口電路處于"弱上拉"輸出; 步驟3、初始化j = l; 步驟4、所述第i個節點中的微控制器在第j個監聽周期L下,通過第i個接收信號線RXi 采集所述總線的邏輯值h并進行判斷, 當Fj = l時,將j+Ι賦值給j,并判斷j>M是否成立,若成立,則表示所述總線處于"空閑" 狀態,并執行步驟5,否則重復步驟4執行; 當h = 0時,則表示所述總線處于"占用"狀態;并返回步驟3執行; 步驟5、初始化k=l; 步驟6、初始化j = 0;在第j個發送周期L的起始時刻,所述第i個節點中的微控制器將所 述第i個發送控制信號線HL·置為高電平、并將第i個競爭控制信號線CL·和第i個發送信號線 TXi置為低電平后,等待第j個發送周期L的結束時刻;從而完成所述第k幀二進制數據中的 起始位的發送,并令j = l; 步驟7、在第j個發送周期L的起始時刻,所述第i個節點中的微控制器分別將所述第i個 發送控制信號線HL·、第i個競爭控制信號線CL·和第i個發送信號線TXi置為高電平,從而使 得所述第i個總線接口電路處于"強上拉"輸出;并在第j個發送周期L的中間時刻,將第i個 競爭控制信號線CL·置為低電平,從而使得所述第i個總線接口電路處于"弱上拉"輸出,完 成總線電平狀態的預置; 步驟8、在第j+Ι個發送周期Tj+1的起始時刻,所述第i個節點中的微控制器將所述第k幀 二進制數據的數據位中的第m-j-1位的數據通過所述第i個發送信號線送到所述總線 上;若所述第i個發送信號線TXiS高電平,則表示所述第i個總線接口電路維持"弱上拉"輸 出;若所述第i個發送信號線TXiS低電平,則表示所述第i個總線接口電路處于"強下拉"輸 出; 并在第j+Ι個發送周期Tj+1的中間時刻,所述第i個節點中的微控制器通過第i個接收信 號線Rta取所述總線的邏輯值Fw并進行判斷, 當總線的邏輯值Fj+1與第k幀二進制數據的數據位中的第m-j-1位的數據相同時,等待 第j+1個發送周期Tj+1的結束時刻,再將j+2賦值給j,并判斷j>m-l是否成立;若成立,則在 第j個發送周期L的起始時刻,所述第i個節點中的微控制器分別將所述第i個發送控制信 號線HL·、第i個競爭控制信號線CL·和第i個發送信號線Tt置為高電平后,等待第j個發送周 期L的結束時刻;從而完成所述第k幀二進制數據中的停止位的發送,再執行步驟9;否則, 返回步驟7執行; 當總線的邏輯值Fj+1與第k幀二進制數據的數據位中的第m-j-1位的數據不相同時,則 表示存在高于所述第i個節點優先級的其他節點,所述第i個節點中的微控制器將所述第i 個發送控制信號線HL·置為低電平,表示所述第i個總線接口電路處于"弱上拉"輸出;并返 回步驟3執行; 步驟9、將k+Ι賦值給k,并判斷k> 2是否成立,若成立,貝lj表示所述第i個節點中的微控 制器獲得向所述總線發送數據的控制權并通過第i個數據線〇&丨&1完成自身的數據發送;并 返回步驟2執行;否則,返回步驟6執行。
【文檔編號】G06F13/42GK105955905SQ201610247642
【公開日】2016年9月21日
【申請日】2016年4月18日
【發明人】易茂祥, 梁華國
【申請人】合肥工業大學