一種自主仲裁的高速差分總線實現(xiàn)方法
【技術領域】
[0001] 本發(fā)明涉及一種自主仲裁的高速差分總線實現(xiàn)方法,適用于多業(yè)務集成嵌入式系 統(tǒng)中多個主從設備之間的高帶寬數(shù)據(jù)交換,屬于嵌入式系統(tǒng)高速背板總線技術領域。
【背景技術】
[0002] 目前,并行多處理技術正日益成為增加嵌入式系統(tǒng)處理能力的可行方法,隨著電 子技術和半導體工藝的發(fā)展,嵌入式處理器的性能得到了大幅提升,以往價格昂貴的多處 理技術系統(tǒng)級的成本也在下降。此外,多業(yè)務集成已經(jīng)成為當前智能電子設備(IED)主流 設計目標,通過將復雜業(yè)務劃分至不同智能業(yè)務子卡,可有效降低系統(tǒng)復雜度,容易實現(xiàn)基 于業(yè)務的故障隔離,進一步提高系統(tǒng)的健壯性和可維護性。
[0003] 多業(yè)務相對獨立運行也就意味著系統(tǒng)設計需要多個智能業(yè)務子卡,隨之而來是多 個智能業(yè)務子卡之間的需要更多的數(shù)據(jù)交換,但是,現(xiàn)有的多處理器總線技術限制了處理 器簇跨越長背板時的共享帶寬。
[0004] 為使多處理技術更加高效,同一系統(tǒng)中的多處理器必須能相互進行高帶寬、低延 遲的通信。目前,用于處理器與外設連接方式主要有以下幾種,(1)傳統(tǒng)單端總線信號,如 基于處理器自身的總線、ISA、PCI/PCI-X等;(2)各業(yè)務子板間采用以太網(wǎng)技術經(jīng)交換芯片 互聯(lián);(3)采用差分總線連接技術如PCI Express、RapidIO等;上述的幾種總線互聯(lián)方法均 存在不足之處,具體如下:
[0005] 對于(1),由于采用單端總線信號,信號在經(jīng)過背板連接到另一塊電路板時,降入 引入噪聲,導致信號惡化,而且總線帶寬受限于外設帶寬,總線速度很難提高;
[0006] 對于(2),雖然基于以太網(wǎng)的技術和設備相對成熟,但交換延遲比共享總線大,難 以實現(xiàn)精確組播,高速互聯(lián)時需要更高的軟件開銷(特別是使用TCP/IP協(xié)議棧時),系統(tǒng)還 需要額外的交換芯片;
[0007] 對于(3),雖然基于高速差分信號互聯(lián),但一般只能使用點對點互聯(lián),且由于采用 編碼/解碼技術導致額外的硬件開銷和帶寬損失,控制器側工作時鐘較高,時序設計和事 務處理壓力很大,數(shù)據(jù)延遲也比傳統(tǒng)總線模式大,且隨著互聯(lián)節(jié)點的增加,互聯(lián)線和交換端 點也會對應增加。
[0008] 綜上所述,以上幾種主流的總線技術,雖然也可以解決系統(tǒng)內(nèi)部數(shù)據(jù)互聯(lián)問題,但 是,(1)由于速率低、傳送距離短、EMI發(fā)射大、布線困難等原因不太適合長距離,且多業(yè)務 競爭總線時需要額外的總線仲裁器;而(2)和(3)都對應點對點的應用場合,需要端點交換 開關,協(xié)議復雜軟件或硬件開銷大,且采用高速串行總線會給布局布線和連接器帶來比較 大的壓力和額外的成本,上述的幾種方式,都無法實現(xiàn)真正意義上的無源背板,給系統(tǒng)升級 和運維帶來困難。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的是為了解決現(xiàn)有的嵌入式系統(tǒng)多處理器之間的連接總線,無法實現(xiàn) 真正意義上的無源背板,給系統(tǒng)升級和運維帶來困難的問題。本發(fā)明的自主仲裁的高速差 分總線實現(xiàn)方法,用于多業(yè)務智能電子設備的各業(yè)務子卡之間的通信,構建周邊節(jié)點互聯(lián) 總線(Peripheral Node interchange Bus,以下稱 PNB 總線),其物理層基于 TIA/EIA-899 實現(xiàn),采用源同步方式傳送數(shù)據(jù),通過非破壞性的自主仲裁方式來解決總線競爭,具備多主 多從的突發(fā)業(yè)務傳輸能力,具有良好的應用前景。
[0010] 為了達到上述目的,本發(fā)明所采用的技術方案是:
[0011] 一種自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:包括以下步驟,
[0012] 步驟(1),構建多個周邊節(jié)點互聯(lián)的PNB總線控制器,各PNB總線控制器連接在 PNB總線上,各PNB總線控制器包括MLVDS總線收發(fā)器、總線發(fā)送模塊、流量管理模塊、多個 發(fā)送優(yōu)先級隊列、多個接收優(yōu)先級隊列、接收地址識別及優(yōu)先級分離模塊、總線接收模塊、 中斷管理邏輯單元和MCU接口單元,所述MLVDS總線收發(fā)器與PNB總線相連接,所述MLVDS 總線收發(fā)器的接收數(shù)據(jù)輸出端依次通過總線接收模塊、接收地址識別及優(yōu)先級分離模塊與 多個接收優(yōu)先級隊列相連接,多個接收優(yōu)先級隊列與MCU接口單元的接收數(shù)據(jù)輸入端相連 接,所述MCU接口單元與嵌入式系統(tǒng)內(nèi)業(yè)務子卡的處理器相連接,所述MCU接口單元的發(fā) 送數(shù)據(jù)輸出端與多個發(fā)送優(yōu)先級隊列相連接,多個發(fā)送優(yōu)先級隊列均依次通過流量管理模 塊、總線發(fā)送模塊與MLVDS總線收發(fā)器發(fā)送數(shù)據(jù)輸入端相連接;
[0013] 所述總線發(fā)送模塊、總線接收模塊、接收地址識別及優(yōu)先級分離模塊還通過中斷 管理邏輯單元與MCU接口單元相連接;
[0014] 所述總線發(fā)送模塊包括總線仲裁邏輯單元和總線發(fā)送邏輯單元,負責發(fā)送數(shù)據(jù)隊 列查詢和總線仲裁及數(shù)據(jù)發(fā)送,所述總線接收模塊包括總線接收邏輯單元和數(shù)據(jù)流模式識 別管理單元;
[0015] 步驟(2),根據(jù)步驟⑴構建的PNB總線控制器,建立應用業(yè)務子卡后,將MLVDS總 線收發(fā)器通過高速連接器與背板的差分總線相連接,將MCU接口單元與對應的業(yè)務子卡的 處理器相連接,所述PNB總線控制器還通過背板連接系統(tǒng)級的總線參考時鐘信號、全局復 位信號及電源,構成多主多從的數(shù)據(jù)交換系統(tǒng);
[0016] 步驟(3),當業(yè)務子卡的處理器有數(shù)據(jù)需要發(fā)送時,創(chuàng)建數(shù)據(jù)發(fā)送分組,并根據(jù)數(shù) 據(jù)服務質量要求,將該分組寫入PNB總線控制器的多個發(fā)送優(yōu)先級隊列,并更新隊列寫指 針和對應的發(fā)送寄存器;
[0017] 步驟(4),PNB總線控制器在流量管理模塊的控制下檢查各發(fā)送優(yōu)先級隊列,一旦 識別出待發(fā)送的數(shù)據(jù)分組后,啟動總線發(fā)送模塊內(nèi)的總線仲裁邏輯單元申請占用總線;
[0018] 步驟(5),PNB總線控制器在申請占用總線成功后,啟動總線發(fā)送模塊內(nèi)的總線發(fā) 送邏輯單元,進行總線傳送優(yōu)先權裁決,發(fā)送當前最高優(yōu)先級的數(shù)據(jù)分組,在總線傳送結束 后發(fā)送控制邏輯更新發(fā)送隊列的讀指針,并根據(jù)需要觸發(fā)中斷管理邏輯單元產(chǎn)生總線發(fā)送 中斷;
[0019] 步驟(6),處于監(jiān)聽狀態(tài)的PNB總線控制器,在幀同步信號PNB_FS_IN的上升沿時, 啟動總線接收模塊,把通過接收地址識別及優(yōu)先級分離模塊進行地址識別的分組按優(yōu)先級 寫入不同的接收優(yōu)先級隊列,同時更新隊列寫指針,并根據(jù)需要觸發(fā)中斷管理邏輯單元產(chǎn) 生接收中斷;
[0020] 步驟(7),處于監(jiān)聽狀態(tài)的業(yè)務子卡的處理器通過查詢PNB總線控制器的接收狀 態(tài)或接收中斷,根據(jù)優(yōu)先級或中斷處理接收隊列內(nèi)的數(shù)據(jù),完成PNB總線上優(yōu)先級數(shù)據(jù)接 收。
[0021] 前述的自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:步驟(1)的PNB總線控制 器,在空閑階段,總線驅動器關閉,輸出弱〇 ;在仲裁階段,總線控制器利用其數(shù)據(jù)輸出信號 控制總線驅動器的輸出使能信號,對數(shù)據(jù)的有選擇性地輸出1或弱0 ;在數(shù)據(jù)輸出階段,獲 得總線使用權的PNB總線控制器將總線驅動器的輸出使能置高,由PNB總線控制器根據(jù)數(shù) 據(jù)內(nèi)容控制數(shù)據(jù)總線輸出為1或〇 ;仲裁失敗的由PNB總線控制器將關閉總線輸出使能,并 轉入PNB總線的監(jiān)聽狀態(tài)。
[0022] 前述的自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:步驟(2)通過背板為所 有PNB總線控制器提供系統(tǒng)級的總線參考時鐘信號、全局復位信號,各PNB總線控制器總線 側的工作時鐘則通過參考時鐘倍頻得到,而各PNB總線控制器利用總線上的源同步時鐘進 行接收數(shù)據(jù)鎖存,各PNB總線控制器的MCU接口單元采用業(yè)務子卡的處理器提供的獨立時 鐘業(yè)務子卡的處理器和對應的PNB總線控制器之間的跨時鐘域轉換,只是發(fā)生在MCU接口 單元上。
[0023] 前述的自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:步驟(3),當業(yè)務子卡的 處理器有數(shù)據(jù)需要發(fā)送時,創(chuàng)建數(shù)據(jù)發(fā)送分組,包括點到點的單播、廣播和精確多播,實現(xiàn) 過程為,
[0024] (1)、發(fā)送數(shù)據(jù)方的PNB總線控制器根據(jù)應用要求確定接收方,由此精確設定發(fā)送 分組的目標地址控制字PNB_DID,使與目標方的PNB總線控制器的地址AID相對應的位置 位,并提交分組;
[0025] (2)、總線接收方的PNB總線控制器通過判斷接收分組的目標地址控制字PNB_DID 中位序與自身地址AID相對應的位是否置位來決定接收與否,若該位為1則接收,否則拒 收。
[0026] 前述的自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:步驟(4)啟動總線發(fā)送 模塊內(nèi)的總線仲裁邏輯單元申請占用總線是通過差分信號PNB_BREQ來指示總線的空閑狀 態(tài)和初始階段總線仲裁,差分信號PNB_BREQ為0表示總線空閑,為1表示總線占用,最終獲 得總線使用權的PNB總線控制器在整個總線傳輸?shù)倪^程中保持差分信號PNB_BREQ為高,阻 止其他的PNB總線控制器對總線影響,而在隨后優(yōu)先權仲裁階段失敗的PNB總線控制器立 即將PNB_BREQ置0,以完成本次總線爭用且繼續(xù)監(jiān)聽總線狀態(tài)。
[0027] 前述的自主仲裁的高速差分總線實現(xiàn)方法,其特征在于:步驟(5),PNB總線控制 器在初始仲裁階段申請占用總線成功后,啟動總線發(fā)送模塊內(nèi)的總線發(fā)送邏輯單元,進行 總線傳送優(yōu)先權裁決,包括以下步驟,
[0028] (1),有數(shù)據(jù)分組待發(fā)送的PNB總線控制器控制器選擇當前最高優(yōu)先級分組,并讀 取發(fā)送描述符,提取數(shù)據(jù)分組的軟件優(yōu)先級pri和目標控制字PNB_DID ;
[0029] (2),檢查PNB總線控制器的輸入信號PNB_BREQ_IN,若為1表示總線忙轉⑴繼續(xù) 等待;否則,置PNB總線控制器的輸出信號PNB_BREQ_0UT和使能信號PNB_BREQ_0E為1后, 轉到(3)進行分組的軟件優(yōu)先權仲裁;
[0030] (3),PNB總線控制器根據(jù)數(shù)據(jù)分組的軟件優(yōu)級pri,按公式(1),計算軟件優(yōu)先權 控制字PNB_PRI,
[0031] PNB_PRI = l?pri (I)
[0032] 其中,〈〈表示向左移位;
[0033] (4),PNB總線控制器根據(jù)公式(2)、公式(3)向PNB總線提交按公式(1)計算出的 軟件優(yōu)先權控制字PNB_PRI,
[0034] PNB_data_out< = PNB_PRI (2)
[0035] PNB_data_oe< = PNB_PRI (3)
[0036] 其中,〈=表示信號賦值,PNB_data_out為PNB總線數(shù)據(jù)輸出、PNB_data_oe為PNB 總線輸出使能控制;
[0037] (5),PNB總線控制器讀取PNB總線的PNB總線數(shù)據(jù)輸入PNB_data_in的值,并檢查 回讀數(shù)據(jù),若PNB_data_in中某位被置1且其位序比發(fā)送分組的軟件優(yōu)先級pri高,則清零 輸出信號PNB_BREQ_0UT和使能信號PNB_BREQ_0E,撤銷PNB總線申請,轉到⑴繼續(xù)等待; 否則轉(6)進行設備優(yōu)先權仲裁;
[0038] (6),PNB總線控制器根據(jù)公式(4)、公式(5)、公式(6)向PNB總線提交設備優(yōu)先 權控制字PNB_PID,
[0039] PNB_data_out< = PNB_PID (4)
[0040] PNB_data_oe< = PNB_PID (5)
[0041] PNB_PID = 1?AID (6)
[0042] 其中,AID為開發(fā)者對PNB總線上的每個PNB總線控制器分配一個唯一的地址識 別碼,PNB_data_out為PNB總線數(shù)據(jù)輸出、PNB_data_oe為PNB總線輸出使能控制;
[0043] (