• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于中標(biāo)麒麟操作系統(tǒng)的SRIO路由設(shè)計與實現(xiàn)

      2021-06-16 02:40:34趙潤卓王春燕湯新廣
      無線電工程 2021年6期
      關(guān)鍵詞:板卡麒麟路由

      呂 鵬,趙潤卓,王春燕,湯新廣

      (1.河北省電磁頻譜認(rèn)知與管控重點實驗室,河北 石家莊 050000; 2.中國電子科技集團公司第五十四研究所,河北 石家莊 050081; 3.南開大學(xué) 物理科學(xué)學(xué)院,天津 300071; 4.河北軌道運輸職業(yè)技術(shù)學(xué)院 機電系,河北 石家莊 050000)

      0 引言

      面對瞬息萬變的國際形式,國家正在全力推行利用國產(chǎn)化操作系統(tǒng)替換國外的操作系統(tǒng),并完成關(guān)鍵技術(shù)的研制,這已經(jīng)成為目前的主要任務(wù)。而高速數(shù)據(jù)的傳輸又是所有技術(shù)發(fā)展的一個關(guān)鍵的技術(shù)基礎(chǔ)。

      現(xiàn)在高速數(shù)據(jù)傳輸技術(shù)已經(jīng)在圖像處理、數(shù)字信號處理等多個領(lǐng)域的應(yīng)用變得越來越復(fù)雜,速率要求越來越高。為了提升數(shù)據(jù)高速傳輸、解析的能力,需要使用一種更加靈活、快捷的傳輸方式。當(dāng)前主流的高速數(shù)據(jù)傳輸技術(shù)主要包括PCIE(PCI Express)、SRIO(Serial RapidIO)、萬兆網(wǎng)等,其中SRIO串行傳輸技術(shù)主要是面向嵌入式系統(tǒng)開發(fā)的高可靠、高性能,基于包交換的新一代高速互聯(lián)技術(shù)[1]。該技術(shù)利用串行背板、FPGA、DSP和相關(guān)串行數(shù)據(jù)平面,通過SRIO路由配置構(gòu)建一個星型或網(wǎng)狀的拓?fù)浣Y(jié)構(gòu),實現(xiàn)系統(tǒng)內(nèi)所有節(jié)點任意、高速的數(shù)據(jù)傳輸[2]。

      傳統(tǒng)的SRIO路由配置方式為PPC或DSP 為主的架構(gòu),該方式主要實現(xiàn)PPC或DSP對具有SRIO功能的設(shè)備芯片進行初始化、狀態(tài)查詢、路由配置等功能。這種架構(gòu)不僅對主配芯片功能壓力較大,需要考慮各種芯片的工作時序、運行狀態(tài)等多種影響因素,而且對嵌入式操作系統(tǒng)在程序調(diào)試、后期維護上也極不方便。

      本文在VPX結(jié)構(gòu)的板卡上采用國產(chǎn)中標(biāo)麒麟操作系統(tǒng)。該系統(tǒng)有著高安全性,其功能、穩(wěn)定性、效率方面都達到國外同類產(chǎn)品水平,部分指標(biāo)還要優(yōu)于國外同類水平,并且具有編程容易、調(diào)試方便、應(yīng)用廣泛的優(yōu)點,實現(xiàn)對SRIO的快速配置[3],極大地減少了板卡啟動時間,功能劃分更加簡單、清晰明了。

      1 系統(tǒng)設(shè)計

      1.1 總體設(shè)計

      利用SRIO串行總線傳輸效率高、拓?fù)潇`活、高可靠性、高實時性的特點,保證對多種不同來源數(shù)據(jù)連續(xù)性傳輸?shù)囊?,研制了如圖1所示的板卡。

      圖1 板卡連接框圖Fig.1 Board connection block diagram

      該板卡主要由中標(biāo)麒麟操作系統(tǒng)、橋芯片TSI721、交換芯片CPS1848、單片機和FPGA五部分組成。其中麒麟操作系統(tǒng)運行在X86架構(gòu)的Intel E2680 CPU上,該CPU為8核,2.8 GHz主頻,并自帶集成GPU,運算處理能力突出。單片機型號為C8051F041,該芯片不僅性價比高,而且體積小、集成度高,便于簡單程序的開發(fā)和應(yīng)用。橋芯片TSI721解決了X86架構(gòu)下PCIE總線和SRIO總線互聯(lián)的問題。交換芯片CPS1848可以實現(xiàn)同時向不同節(jié)點傳輸多路數(shù)據(jù)的目的,極大提升程序的開發(fā)效率和拓寬課題的復(fù)雜應(yīng)用。FPGA選用Xlinx公司的K7 325T,主要用于信號處理等功能。

      1.2 SRIO總線路由配置原理

      SRIO總線作為一種串行高速總線,因其傳輸速率高、低功耗、低延遲特性,已經(jīng)在越來越多的方面得到應(yīng)用[4]。其主要通過嵌入式系統(tǒng)內(nèi)部互聯(lián)和嵌入式設(shè)備與背板的連接,實現(xiàn)各芯片間的數(shù)據(jù)傳輸[5]。不同的SRIO總線終端器件以器件 ID 區(qū)分,作為數(shù)據(jù)包的源節(jié)點或目的節(jié)點,器件 ID分為8位和16位2種,最多可容納 256 或 65 536個終端器件[6]。

      SRIO總線分為維護包和數(shù)據(jù)包2種,數(shù)據(jù)傳輸速率高達6.25 Gb/s,維護包可以訪問DSP、FPGA、TSI721和CPS1848等具有SRIO總線接口的芯片。通過對芯片的配置,實現(xiàn)所有芯片的互聯(lián),利用維護包還可以實現(xiàn)對指定芯片的SRIO維護,具體包括端口狀態(tài)獲取、端口維護、路由配置、路由修復(fù)、ID修改、速率更改等功能。由于維護包和數(shù)據(jù)包可以同時使用,因此可以在數(shù)據(jù)傳輸過程中,通過實時檢測所有芯片路由狀態(tài),及時做出相應(yīng)處理。

      數(shù)據(jù)傳輸?shù)哪J绞峭ㄟ^配置路由方式實現(xiàn)的,路由不僅可以決定任意數(shù)據(jù)是直接傳輸?shù)侥康墓?jié)點還是“繞道”傳輸?shù)侥康墓?jié)點,還能決定數(shù)據(jù)同時發(fā)送給指定的幾個目的節(jié)點。合理有效的路由配置,能夠極大地提升后期數(shù)據(jù)處理能力和數(shù)據(jù)的傳輸帶寬,最終達到提升整個系統(tǒng)處理能力的目的。

      SRIO路由配置已經(jīng)成為數(shù)據(jù)高速傳輸?shù)囊粋€必要環(huán)節(jié)。本文通過單片機+麒麟操作系統(tǒng)的方式,同時利用橋芯片TSI721和交換芯片CPS1848,在VPX機箱上開發(fā)出一套高速、靈活的數(shù)據(jù)處理板卡。其中單片機主要負(fù)責(zé)交換芯片上電初始化功能,麒麟操作系統(tǒng)主要負(fù)責(zé)后期的路由配置、數(shù)據(jù)傳輸和算法處理等。

      1.3 橋芯片TSI721工作原理

      TSI721是IDT公司推出的一款橋芯片,支持1路PCIE 2.1 X1/X2/X4及1路SRIO X1/X2/X4接口,實現(xiàn)PCIE與SRIO總線間協(xié)議無縫轉(zhuǎn)換[7],保證數(shù)據(jù)傳輸在轉(zhuǎn)換過程中的高效性和可靠性[8]。本板卡如圖1所示,TSI721一端通過1,利用PCIE總線與麒麟操作系統(tǒng)相連,另一端的2則是SRIO總線連接到CPS1848交換芯片上。這樣麒麟操作系統(tǒng)不僅可以獲取TSI721的VEN、DEV、SRIO ID、端口狀態(tài)、SRIO速率等信息,同時通過路由程序可以訪問交換芯片CPS1848,進而訪問FPGA和其余板卡的SRIO芯片,最終實現(xiàn)數(shù)據(jù)通信的目的[9]。

      1.4 CPS1848的交換原理

      CPS1848與TIS721一樣,都是由IDT 公司研發(fā)的,具有SRIO 2.1標(biāo)準(zhǔn)。主要實現(xiàn)芯片間多端口數(shù)據(jù)互聯(lián)功能[10]。該芯片有48個雙向數(shù)據(jù)差分對(lane),具有 1x、2x和4x三種端口模式,3種模式下的端口個數(shù)配置方式為48/端口模式,比如4x的端口個數(shù)為12個(48/4),每個lane支持1.25,2.5,3.125,5或6.25 Gb/s四種傳輸速率[11]。

      本文使用SRIO為X4模式,一共12個端口,具體連接方式如圖1所示。其中1個SRIO X4通過2與1個TSI721相連,板卡總共使用了2個TSI721,則連接了2個SRIO X4,達到增加SRIO傳輸帶寬的目的。同時與FPGA通過標(biāo)號4的一個SRIO X4相連,6號則表示CPS1848與背板連接的剩余9對SRIO,實現(xiàn)與其余板卡通信的目的。通過對CPS1848寄存器的訪問,可以實現(xiàn)對整個板卡甚至分機的路由維護和更新,主要寄存器功能如表1所示[12]。

      表1 CPS1848寄存器功能介紹Tab.1 Introduction to CPS1848 register function

      1.5 實現(xiàn)步驟

      具體實現(xiàn)過程為:

      ① 系統(tǒng)上電后,單片機首先設(shè)置SRIO速率并通過FPGA對交換芯片CPS1848進行復(fù)位操作,當(dāng)?shù)却粨Q芯片復(fù)位后,對所有端口進行讀寫使能操作;

      ② 麒麟操作系統(tǒng)通過PCIE總線確定橋芯片TSI721端口鏈接狀態(tài),并利用SRIO總線維護包對TSI721進行ID修改和路由配置;

      ③ 利用SRIO維護包對橋芯片TSI721與交換芯片CPS1848間的路由進行配置;

      ④ 配置交換芯片CPS1848的ID及路由信息;

      ⑤ 判斷FPGA的端口連接狀態(tài),配置FPGA與CPS1848間的路由,并通過維護包修改FPGA的節(jié)點ID及更新路由信息;

      ⑥ 如果分機內(nèi)部插有其余板卡,則CPS1848對外的9個端口中的一個或幾個與其相連,通過背板的連線關(guān)系,利用SRIO維護包可以訪問到其余板卡上的交換芯片或者節(jié)點芯片(FPGA/DSP等),并對其進行ID修改和路由配置。

      通過以上6步配置,可以實現(xiàn)對板卡SRIO的數(shù)據(jù)操作。

      如果需要將一種數(shù)據(jù),同時發(fā)送給多個設(shè)備節(jié)點,可以利用廣播路由的方式加以實現(xiàn)。而當(dāng)整個路由系統(tǒng)中有一個設(shè)備節(jié)點,比如FPGA,在不斷電情況下程序進行了更新,SRIO狀態(tài)被還原,可以通過路由維護的方式,將該節(jié)點維護到之前的路由系統(tǒng)中,保證系統(tǒng)運行的完整性。

      1.6 單片機工作流程

      單片機主要使用I2C總線,該總線是一種“二線”結(jié)構(gòu),分別使用串行數(shù)據(jù)傳輸線SDA和串行時鐘控制線SCL實現(xiàn)數(shù)據(jù)傳輸[13]。該總線具有自動找尋從器件地址,使較高速率設(shè)備與較低速率設(shè)備間實現(xiàn)同步傳輸和優(yōu)化挑選需要的從器件進行高性能數(shù)據(jù)傳送的特點[14]。因此采用單片機對板卡上SRIO鏈路和交換芯片進行初始化操作,具體流程如下:

      ① 通過板卡原理圖,查找單片機與CPS1848的連接管腳,如圖2所示。

      ② C8051與CPS1848管腳連接圖如圖3所示,通過專用軟件Configuration Wizard 2對指定管腳按照原理圖的連接關(guān)系進行定義后生成如下代碼:

      P3MDOUT = 0x18;

      XBR0 = 0x01;

      XBR2 = 0x40;

      ③ 編寫單片機程序,利用單片機的I2C總線配置交換芯片CPS1848的速率,控制FPGA對CPS1848上電復(fù)位,使能交換芯片所有數(shù)據(jù)傳輸端口,具體程序如下所示:

      CPS1848_REG_Write(96,CPS1848_PORT_X_CTL_1_CSR(nPort),value | 0x00800000);

      CPS1848_REG_Write(96,CPS1848_PLL_X_CTL_1(nPortNum),1);

      CPS1848_REG_Write(96,CPS1848_LANE_X_CTL(nPortNum*4),0x00001e0a);

      CPS1848_REG_Write(96,CPS1848_LANE_X_CTL(nPortNum*4 + 1),0x00001e0a);

      CPS1848_REG_Write(96,CPS1848_LANE_X_CTL(nPortNum*4 + 2),0x00001e0a);

      CPS1848_REG_Write(96,CPS1848_LANE_X_CTL(nPortNum*4 + 3),0x00001e0a);

      CPS1848_REG_Write(96,CPS1848_DEVICE_RESET_CTL,0x80040000 | (1<

      for(i = 0;i<12;i++)

      {

      CPS1848_REG_Write(96,CPS1848_PORT_X_CTL_1_CSR(i),0xD0600001);∥enable input and output*/

      }

      圖2 C8051與CPS1848管腳連接Fig.2 CPS1848 and CPS1848 pin connector

      CPS1848_REG_Write的第一個參數(shù)為dev_address,表示CPS1848 I2C的設(shè)備地址。通過圖4的連接關(guān)系可知,圖中ID0~ID9 十個管腳上ID5和ID6接上拉電阻值為1,其余值為0,則該函數(shù)第一個參數(shù)值為96。

      圖3 C8051與CPS1848管腳連接圖Fig.3 C8051 and CPS1848 pin connector

      圖4 CPS1848 dev_address連接關(guān)系Fig.4 CPS1848 dev_address connection relationship

      1.7 麒麟操作系統(tǒng)工作原理

      中標(biāo)麒麟操作系統(tǒng)為國內(nèi)首款自主、高安全等級的可信操作系統(tǒng)。該系統(tǒng)是我國“核高基”項目的重要研究成果,具有重要意義。麒麟系統(tǒng)兼容主流的軟硬件和自主CPU平臺,能夠完全滿足項目應(yīng)用開發(fā)和系統(tǒng)定制的需求[15]。

      由于麒麟操作系統(tǒng)通過PCIE總線與TSI721相連,并利用TSI721的SRIO連接到CPS1848上。因此,如果想利用麒麟操作系統(tǒng)配置整個板卡甚至整個分機的路由,則需要同時使用PCIE總線和SRIO總線。具體使用方式為:

      ① 打開板卡。由于本板卡連接2個TSI721,因此需要分別設(shè)置打開的板卡號為0和1;

      ② 利用PCIE總線查詢麒麟操作系統(tǒng)與TSI721的連接狀態(tài)和TSI721的原始ID信息;

      ③ 利用SRIO總線維護包進行路由配置,數(shù)據(jù)包進行數(shù)據(jù)收發(fā)。

      在配置數(shù)據(jù)包的時候需要創(chuàng)建發(fā)送窗和接收窗(發(fā)送窗 8個,接收窗 4個)、SRIO總線的基地址、讀寫傳輸模式(NWRITE、NREAD)、模式使能及訪問的窗口大小等參數(shù)[16]。同時為了適應(yīng)不同系統(tǒng)規(guī)模的需求,設(shè)備ID分為大端模式和小端模式2種,其中小端模式為8 bit,大端模式ID為16 bit[17]。

      通過2.6節(jié)單片機操作后,板卡上所有SRIO鏈路狀態(tài)均為正常,同時編寫C++程序,實現(xiàn)板卡路由配置和數(shù)據(jù)通信。具體功能實現(xiàn)代碼如下所示:

      status =

      Config_Route_Init(myTsi721,&srio_route,masterSlot);

      if(status = OK)

      {

      Config_Route_Master(myTsi721,&srio_route);

      Config_Route_Slave(myTsi721,&srio_route,masterSlot);

      Scan_ConfigRoute_DifSlots(myTsi721,&srio_route);

      }

      if(!myTsi721->IbwinFree(0))

      {

      printf("free is wrong ");

      }

      if(!myTsi721->IbwinCreate(0,0,0,1024*1024))

      {

      printf("create is wrong ");

      }

      dmaCtrl.bits.Iof = 0;

      dmaCtrl.bits.Crf = 0;

      dmaCtrl.bits.Prio= 0;

      dmaCtrl.bits.Rtype = LAST_NWRITE_R;

      dmaCtrl.bits.XAddr = 0;

      partnDestId = 0x68;

      dwDataSize = 4;

      data = 0x01215643;

      dwErr=TSI721SrioWrite(myTsi721->m_hDev,partnDestId,0,0x01000000,&data,&dwDataSize,dmaCtrl);

      partnDestId = 0x68;

      dmaCtrl.bits.Prio = 1;

      dwDataSize = 4;

      dwErr=TSI721SrioRead(myTsi721->m_hDev,partnDestId,0,0x01000000,&dataret,&dwDataSize,dmaCtrl)

      2 實驗與測試

      為了進行數(shù)據(jù)測試,將該板塊插到了一個8槽的VPX分機內(nèi),分機中除了本板卡外還有一塊帶有SRIO總線的DSP設(shè)備,利用麒麟操作系統(tǒng)進行SRIO路由配置,并對2個板卡狀態(tài)、分機內(nèi)部各節(jié)點(麒麟操作系統(tǒng)、FPGA、DSP)進行測試,驗證上節(jié)的配置過程、板卡工作狀態(tài)和SRIO數(shù)據(jù)通信的正確性,并測試傳輸速率。其中數(shù)據(jù)傳輸采用DMA方式,數(shù)據(jù)包大小為1 MB,傳輸方式為NWRITE和NREAD雙向傳輸。具體測試過程如下:

      ① 分別通過PCIE總線設(shè)置TSI721的SRIO速率及利用SRIO維護包設(shè)置CPS1848的端口速率,如果速率設(shè)置的不一致,則訪問不到對方的設(shè)置信息。

      ② 利用PCIE總線讀取麒麟操作系統(tǒng)與TSI721鏈接狀態(tài),并利用SRIO維護包分別讀取CPS1848與TSI721、FPGA、DSP板卡的鏈接狀態(tài)信息,如果鏈接狀態(tài)為0xc0000002或0xe0000002,則SRIO鏈接狀態(tài)正確;如果為0xc0000001或0xe0000001,則表示沒有鏈接成功,其余值則表示鏈接狀態(tài)信息有誤,通過復(fù)位本方或者對方端口的方式,修復(fù)鏈接狀態(tài)。對應(yīng)的寄存器偏移量為0x158+n×0x20(n為端口號),具體信息如圖5所示。

      ③ 通過SRIO維護包訪問CPS1848。如果訪問成功,則說明單片機對CPS1848上電復(fù)位操作正確。

      圖5 端口狀態(tài)寄存器信息Fig.5 Port status register information

      ④ 通過配置麒麟操作系統(tǒng)與2個TSI721的自環(huán)方式,測試CPS1848與2個TSI72通信是否正確;同樣測試麒麟操作系統(tǒng)與FPGA的數(shù)據(jù)收發(fā)可以測試CPS1848與FPGA的端口通信是否正確;測試CPS1848的對外的端口,則需要DSP板卡分別插到不同的槽位上,測試麒麟操作系統(tǒng)與DSP的通信是否正確來驗證CPS1848的對應(yīng)端口通信是否正確。

      ⑤ 通過④ 的不同配置方式,測試了不同節(jié)點的通信正確性的同時,可以測試不同節(jié)點之間的數(shù)據(jù)傳輸速率,具體測試結(jié)果如表2所示。

      表2 板卡功能測試統(tǒng)計Tab.2 Function test statistics of board card

      最后在調(diào)試過程中需要注意以下幾點:

      ① 分機上電后要優(yōu)先進行單片機的所有操作,并確保所有狀態(tài)正常。

      ② 利用麒麟操作系統(tǒng)給分機內(nèi)交換芯片及DSP節(jié)點分配ID,要求ID必須唯一。

      ③ 麒麟操作數(shù)據(jù)傳輸開始需要創(chuàng)建窗申請資源,最后需要釋放窗資源。

      ④ 數(shù)據(jù)傳輸盡量不要在一個通道上進行多種數(shù)據(jù)傳輸,會影響傳輸效率。

      ⑤ 麒麟操作系統(tǒng)數(shù)據(jù)傳輸?shù)臅r候最好使用門鈴的方式,這樣傳輸?shù)男矢摺?/p>

      3 結(jié)束語

      通過單片機和X86架構(gòu)下麒麟操作系統(tǒng)配置SRIO路由的設(shè)計方法不僅充分發(fā)揮單片機和操作系統(tǒng)易于開發(fā)和維護的優(yōu)點,同時將SRIO高速串行總線與橋芯片TSI721和交換芯片CPS1848配合使用。既實現(xiàn)了數(shù)據(jù)的高速傳輸,保證數(shù)據(jù)的實時性,又達到了數(shù)據(jù)可以任意節(jié)點互聯(lián)傳輸?shù)哪康?。該技術(shù)的實現(xiàn)為后續(xù)算法的調(diào)試提供堅實的基礎(chǔ)。

      猜你喜歡
      板卡麒麟路由
      麒麟“破冰”
      金橋(2022年8期)2022-08-24 01:34:18
      對麒麟
      寶藏(2021年1期)2021-03-10 11:06:12
      它就是麒麟
      基于PCI9054的多總線通信板卡的研制
      基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
      探究路由與環(huán)路的問題
      一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
      Research on the Low—Carbon Life of Student
      PRIME和G3-PLC路由機制對比
      一種通用模擬量及開關(guān)量信號采集板卡的設(shè)計
      南涧| 广安市| 区。| 长垣县| 固始县| 尼玛县| 永顺县| 米林县| SHOW| 眉山市| 玉田县| 肇源县| 定南县| 洞口县| 西宁市| 金昌市| 红原县| 阳朔县| 临武县| 永福县| 秭归县| 海门市| 沁水县| 崇左市| 韶关市| 拉萨市| 新蔡县| 稻城县| 宁明县| 克什克腾旗| 山阴县| 乌鲁木齐市| 永州市| 逊克县| 信宜市| 汉沽区| 高密市| 山阴县| 贡觉县| 滨海县| 图们市|