一種利用pci主模式實(shí)現(xiàn)板卡間數(shù)據(jù)交互的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明是一種利用PCI主模式實(shí)現(xiàn)同一 PCI總線上不同測試板卡間數(shù)據(jù)交互的方 法,涉及通信及測控領(lǐng)域。
【背景技術(shù)】
[0002] 在許多航天產(chǎn)品測試后期,需要模擬實(shí)際環(huán)境進(jìn)行試驗(yàn)。微波暗室可以提供純凈 的電磁環(huán)境與轉(zhuǎn)臺(tái),既滿足產(chǎn)品全方位測試要求,同時(shí)通過其屏蔽作用可減少微波對(duì)人體 傷害。但有些產(chǎn)品測試時(shí)要求數(shù)據(jù)交互實(shí)時(shí)性好,數(shù)據(jù)間延時(shí)小,例如可能需要將產(chǎn)品測 試數(shù)據(jù)與轉(zhuǎn)臺(tái)信息同步組幀等。研究一種數(shù)據(jù)交互實(shí)時(shí)性好、性能穩(wěn)定的硬件測試方案具 有重要意義。
[0003] 測試過程中的各設(shè)備間連接關(guān)系如圖1 (微波雷達(dá)暗室測試模型)所示:
[0004] 如圖1所示,整個(gè)微波雷達(dá)產(chǎn)品暗室測試過程中硬件設(shè)備包括:測試系統(tǒng)(包含異 步RS-422板卡及光纖卡2)、測試產(chǎn)品(置于暗室轉(zhuǎn)臺(tái)上)、暗室轉(zhuǎn)臺(tái)(包含光纖卡1)。測 試過程中,測試系統(tǒng)中422板卡與測試產(chǎn)品一直進(jìn)行定時(shí)通信,通信數(shù)據(jù)中包含微波雷達(dá) 測得的距離、方位、俯仰及角速度信息;光纖卡1與光纖卡2構(gòu)成反射內(nèi)存網(wǎng)絡(luò),二者通過光 纖傳輸數(shù)據(jù),幾乎無時(shí)延,暗室轉(zhuǎn)臺(tái)實(shí)時(shí)將自身的角度信息更新至光纖卡1,光纖卡1再實(shí) 時(shí)共享給光纖卡2,也就是說測試系統(tǒng)的光纖卡2中存儲(chǔ)的是實(shí)時(shí)更新的轉(zhuǎn)臺(tái)角度信息?,F(xiàn) 在希望能夠在每次異步422定時(shí)通信時(shí),準(zhǔn)確獲取當(dāng)前轉(zhuǎn)臺(tái)信息,即光纖卡2內(nèi)的數(shù)據(jù)。422 板卡和光纖卡2插于同一 PCI機(jī)箱內(nèi),即共用一組PCI總線,兩板卡數(shù)據(jù)源不同,數(shù)據(jù)收發(fā) 機(jī)制也不同。前期測試中,通過PC機(jī)內(nèi)軟件分別對(duì)兩板卡數(shù)據(jù)進(jìn)行讀取,通過軟件內(nèi)部機(jī) 制進(jìn)行數(shù)據(jù)同步(軟件同步:軟件內(nèi)每次獲取一幀異步422數(shù)據(jù)后,讀取轉(zhuǎn)臺(tái)數(shù)據(jù)),效果 不理想,無法保證每次通信的422數(shù)據(jù)與當(dāng)時(shí)的轉(zhuǎn)臺(tái)角度信息對(duì)應(yīng),二者之間有一定誤差。 因此,思考能否在硬件上將兩組數(shù)據(jù)同步,即盡量減小二者之間的數(shù)據(jù)延時(shí),保證測試準(zhǔn)確 性。綜合考慮各項(xiàng)因素后,決定利用PCI主模式實(shí)現(xiàn)數(shù)據(jù)同步組幀的過程。
[0005] 目前,PCI總線雖然廣泛應(yīng)用于現(xiàn)代電子測試測量領(lǐng)域,然而當(dāng)前基于PCI總線的 測試設(shè)備主要為應(yīng)用PCI從模式的設(shè)備,這很大程度限制了測試設(shè)備的性能。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是提供一種利用PCI主模式實(shí)現(xiàn)板卡間數(shù)據(jù)交互的方法,通過PCI 主模式減小同一 PCI總線上不同板卡間數(shù)據(jù)交互或訪問延遲,解決因上位機(jī)軟件同步或 組幀而造成的數(shù)據(jù)延時(shí)大,不穩(wěn)定等問題。
[0007] 本發(fā)明為解決上述技術(shù)問題采取的技術(shù)方案是:
[0008] -種利用PCI主模式實(shí)現(xiàn)板卡間數(shù)據(jù)交互的方法,所述PCI主模式,是指PCI總線 橋接芯片PCI9054作為PCI總線端數(shù)據(jù)傳輸?shù)陌l(fā)起者,可主動(dòng)申請(qǐng)總線使用及控制權(quán);
[0009] 所述方法的實(shí)現(xiàn)需要涉及兩塊板卡,即主模式板卡和從模式板卡;將主動(dòng)發(fā)起數(shù) 據(jù)傳輸?shù)陌蹇ǚQ為主模式板卡,被動(dòng)配合完成數(shù)據(jù)傳輸?shù)陌蹇ǚQ為從模式板卡;基于PCI 橋接芯片設(shè)計(jì)的主模式板卡通過硬件板卡內(nèi)部程序或者邏輯控制橋接芯片完成PCI主模 式數(shù)據(jù)傳輸,實(shí)現(xiàn)對(duì)PCI總線上板卡的訪問;
[0010] 所述方法的實(shí)現(xiàn)過程為:
[0011] 步驟一、主模式板卡硬件設(shè)計(jì)
[0012] 主模式板卡硬件包括主控芯片F(xiàn)PGA、橋接芯片PCI9054、緩存模塊SRAM/SDRAM及 各功能模塊硬件電路(各功能模塊的電路設(shè)計(jì)根據(jù)板卡具體功能而定),主控芯片F(xiàn)PGA用 于完成對(duì)橋接芯片PCI9054的控制進(jìn)而實(shí)現(xiàn)主、從模式數(shù)據(jù)傳輸,同時(shí)主控芯片F(xiàn)PGA內(nèi)部 包含各功能模塊相關(guān)控制程序或邏輯;橋接芯片PCI9054是本地總線端及PCI總線端硬件 連接的橋梁,是PCI總線協(xié)議實(shí)現(xiàn)的主要芯片;緩存模塊SRAM/SDRAM用于大數(shù)據(jù)量傳輸時(shí) 作為板載內(nèi)存使用;各功能模塊可為數(shù)據(jù)收發(fā)、采集、存儲(chǔ)模塊;
[0013] 主模式板卡在設(shè)計(jì)中應(yīng)將主控芯片F(xiàn)PGA與橋接芯片PCI9054的ADS#、BLAST#及 地址線LA這些信號(hào)相連的引腳分配為雙向引腳,滿足主、從模式下的不同方向要求;
[0014] 對(duì)于從模式板卡,用于實(shí)現(xiàn)PCI訪問,能夠判斷橋接芯片信號(hào)狀態(tài)并完成對(duì)主模 式訪問時(shí)的地址進(jìn)行譯碼,配合實(shí)現(xiàn)本地總線端數(shù)據(jù)讀寫;
[0015] 從模式板卡硬件上應(yīng)包含主控芯片、橋接芯片(或IP核)及相關(guān)功能電路;并且, 其硬件程序或者邏輯能夠判斷橋接芯片信號(hào)狀態(tài)并完成對(duì)主模式訪問時(shí)的地址進(jìn)行譯碼, 配合實(shí)現(xiàn)本地總線端數(shù)據(jù)讀寫。從模式板卡采用現(xiàn)有技術(shù)中的板卡即可實(shí)現(xiàn)相應(yīng)功能。
[0016] 步驟二、主模式板卡FPGA內(nèi)部邏輯設(shè)計(jì)
[0017] 主模式板卡的FPGA包括PCI從模式模塊、PCI主模式模塊、總線仲裁模塊、主模式 配置模塊和數(shù)據(jù)緩存模塊;PCI從模式模塊用于與PCI9054的數(shù)據(jù)交互,對(duì)輸入地址進(jìn)行譯 碼,傳輸特定數(shù)據(jù)信息;PCI主模式模塊也可用于實(shí)現(xiàn)與PCI9054的數(shù)據(jù)交互,此時(shí)本地總 線端發(fā)起數(shù)據(jù)傳輸;總線仲裁模塊用于對(duì)主模式模塊與從模式模塊申請(qǐng)本地總線占用權(quán)時(shí) 進(jìn)行仲裁,使得同一時(shí)刻只能有一個(gè)本地主板卡;主模式配置模塊用于設(shè)置主模式數(shù)據(jù)傳 輸時(shí)本地總線端地址(基地址+偏移地址)、讀寫數(shù)據(jù)量,并給出主模式觸發(fā)脈沖信號(hào);數(shù) 據(jù)緩存模塊用于存儲(chǔ)主模式待發(fā)送數(shù)據(jù)或已獲取數(shù)據(jù);上述模塊的過程如下:當(dāng)主模式配 置模塊接收到主模式使能信號(hào)后,輸出相應(yīng)主模式起始信號(hào)至PCI主模式模塊;PCI主模式 模塊相應(yīng)起始信號(hào)后,輸出本地總線請(qǐng)求信號(hào)至本地總線仲裁模塊,若此時(shí)從模式模塊并 沒有申請(qǐng)使用本地總線,總線仲裁模塊則返回主模式本地總線占用允許信號(hào);此時(shí),PCI主 模式模塊讀取本地總線端地址及待讀取數(shù)據(jù)量后,拉低PCI9054的ADS#信號(hào),發(fā)起數(shù)據(jù)傳 輸;在PCI總線端,PCI9054輸出REQ#信號(hào),請(qǐng)求占用PCI總線;當(dāng)其獲得PCI總線控制權(quán) 后,主模式板卡讀取從模式板卡指定偏移地址開始的固定個(gè)數(shù)的數(shù)據(jù),并將其寫入數(shù)據(jù)緩 存模塊中;數(shù)據(jù)讀取完成后,釋放本地總線使用權(quán)。
[0018] 基于步驟一和二的設(shè)計(jì)的主模式板卡,數(shù)據(jù)傳輸過程為:
[0019] 數(shù)據(jù)傳輸由本地總線端發(fā)起,本地總線端輸出ADS#信號(hào),啟動(dòng)一次數(shù)據(jù)傳輸,并 將本地總線端地址放于本地端地址線上;
[0020] PCI9054收到啟動(dòng)信號(hào)后,發(fā)出總線占用請(qǐng)求信號(hào)REQ#,請(qǐng)求得到允許后,返回 GNT#,PCI9054占用PCI總線,拉低FRAME#信號(hào),表示總線傳輸?shù)拈_始;同時(shí),在AD[31:0] 線上放置被訪問設(shè)備的地址,該地址與本地總線端地址是一一映射的關(guān)系;
[0021] 在主模式啟動(dòng)前,通過軟件或者初始化操作,將用于主模式數(shù)據(jù)傳輸?shù)谋镜乜偩€ 端基地址及被訪問設(shè)備在PCI總線端(系統(tǒng)自動(dòng)分配)的基地址寫入到相應(yīng)配置寄存器 中,數(shù)據(jù)讀寫時(shí)才能對(duì)應(yīng);PCI總線上所有板卡對(duì)AD [31:0]上地址進(jìn)行譯碼,當(dāng)發(fā)現(xiàn)該地址 與其自身地址一致時(shí)輸出DEVICE#,表明自己被選中;
[0022] PCI9054輸出IRDY#表明準(zhǔn)備進(jìn)行數(shù)據(jù)讀或?qū)懖僮鳎辉L問設(shè)備回傳 TRDY#后,在 IRDY#與TRDY#同時(shí)有效期間,實(shí)現(xiàn)數(shù)據(jù)讀寫;此時(shí),本地總線端可檢測到READY#信號(hào),在 其有效期間完成數(shù)據(jù)讀寫;
[0023] 當(dāng)數(shù)據(jù)傳輸只剩最后一個(gè)數(shù)據(jù)時(shí),本地總線端給出BLAST#信號(hào),PCI總線端將 F