• 
    

    
    

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

      ?

      雙口RAM在航天伺服系統(tǒng)中的應(yīng)用

      2019-09-13 08:40:30胡翔宇曾凡銓
      導(dǎo)航定位與授時(shí) 2019年5期
      關(guān)鍵詞:雙口伺服系統(tǒng)控制算法

      于 戈,胡翔宇,曾凡銓,馮 偉

      (1.上海航天控制技術(shù)研究所,上海 201109; 2.上海市伺服系統(tǒng)工程技術(shù)研究中心,上海 201109)

      0 引言

      在運(yùn)載火箭系統(tǒng)中,發(fā)動(dòng)機(jī)噴管采用伺服機(jī)構(gòu)驅(qū)動(dòng)其搖擺,近年來(lái),大功率航天電動(dòng)伺服機(jī)構(gòu)技術(shù)在國(guó)內(nèi)外得到了深入研究,電動(dòng)伺服系統(tǒng)的綜合性能已逐步超越了液壓伺服系統(tǒng),得到了越來(lái)越多的應(yīng)用[1]。在電動(dòng)伺服系統(tǒng)中通常采用電機(jī)作為能量轉(zhuǎn)換元件,永磁同步電機(jī)因具有高功率密度、高效率和高可靠性等優(yōu)點(diǎn)得到了廣泛應(yīng)用。然而,作為一個(gè)強(qiáng)耦合、多變量的非線性系統(tǒng),永磁同步電機(jī)在控制過程中必須執(zhí)行復(fù)雜的解耦控制算法。

      伺服控制器作為驅(qū)動(dòng)單元的核心,要求具備很高的硬實(shí)時(shí)性和充分的可靠性。伺服控制過程通常需要反饋信號(hào)采集、伺服控制算法計(jì)算和通信等功能,整個(gè)任務(wù)的控制周期決定了伺服系統(tǒng)的采樣率,而高速的采樣率能明顯提升系統(tǒng)的動(dòng)、靜態(tài)性能。另一方面,隨著控制算法的復(fù)雜化和通信的高速化,考慮到軍用元器件使用的局限性,通常單中央處理器(Central Processing Unit, CPU)難以滿足功能需求。

      在航天伺服系統(tǒng)中通常具有單臺(tái)控制器驅(qū)動(dòng)多路伺服機(jī)構(gòu)的特點(diǎn),這給伺服控制計(jì)算單元提出了更高的要求。當(dāng)前在伺服控制系統(tǒng)中,基于CPU+FPGA的架構(gòu)已經(jīng)成為熱門方案[2],在CPU和現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array, FPGA)間多采用雙口隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)進(jìn)行數(shù)據(jù)傳輸實(shí)現(xiàn)數(shù)據(jù)的緩存和共享,高速可靠的數(shù)據(jù)傳輸成為系統(tǒng)的關(guān)鍵單點(diǎn)?,F(xiàn)有防止雙口RAM訪問沖突的方式各種各樣,有基于旗語(yǔ)邏輯的令牌仲裁方式[3-5]、中斷等待方式[6-7]、優(yōu)先級(jí)搶占方式[8-9]、循環(huán)緩沖方式[10-14]等。其中令牌仲裁方式和優(yōu)先級(jí)搶占方式類似,設(shè)計(jì)了雙口RAM數(shù)據(jù)訪問的優(yōu)先級(jí)機(jī)制,經(jīng)握手后確定訪問順序,優(yōu)先級(jí)低者需進(jìn)行等待或再次請(qǐng)求,一方面增加了握手等待時(shí)間,一方面需要進(jìn)行等待,占用了CPU利用率。中斷等待方式占用了CPU的高優(yōu)先級(jí)中斷資源;循環(huán)緩沖方式機(jī)制復(fù)雜,建立緩沖機(jī)制的開銷往往占用較長(zhǎng)的CPU時(shí)間,適用于大量數(shù)據(jù)傳輸?shù)南到y(tǒng)中。

      綜上可知,雙口RAM的防沖突機(jī)制都是為了不在同一時(shí)刻占用同側(cè)總線和同一存儲(chǔ)空間。本文直接從最根本的訪問時(shí)間出發(fā),基于DSP+FPGA架構(gòu),在FPGA內(nèi)部實(shí)現(xiàn)了一個(gè)雙口RAM,提出了一種分時(shí)訪問機(jī)制,減少了等待握手環(huán)節(jié)和CPU使用率,縮短了伺服控制周期,框架設(shè)計(jì)簡(jiǎn)單清晰,保證了數(shù)字信號(hào)處理器(Digital Signal Processor, DSP)和FPGA間數(shù)據(jù)高速無(wú)差錯(cuò)的傳輸。

      1 系統(tǒng)設(shè)計(jì)與需求分析

      1.1 伺服系統(tǒng)方案設(shè)計(jì)

      本文中伺服系統(tǒng)的架構(gòu)如圖1所示,主要由DSP、FPGA和雙口RAM組成,各個(gè)模塊的主要功能如下:DSP作為主處理器,主要實(shí)現(xiàn)讀取雙口RAM中的數(shù)據(jù)執(zhí)行伺服控制算法計(jì)算,并將遙測(cè)數(shù)據(jù)寫入雙口RAM中,同時(shí)在每次中斷執(zhí)行開始時(shí)刻發(fā)出同步信號(hào)給FPGA;FPGA作為協(xié)處理器,主要實(shí)現(xiàn)反饋數(shù)據(jù)的采樣和通信指令的解析,同時(shí)將伺服控制用的數(shù)據(jù)寫入雙口RAM,并從雙口RAM中讀取遙測(cè)和自檢數(shù)據(jù)并上傳;雙口RAM作為數(shù)據(jù)緩存的橋梁,實(shí)現(xiàn)DSP和FPGA之間的數(shù)據(jù)雙向傳輸。

      圖1 伺服系統(tǒng)架構(gòu)圖Fig.1 Servo system frame

      基于雙口RAM的數(shù)據(jù)傳輸分為上行數(shù)據(jù)傳輸和下行數(shù)據(jù)傳輸,上行數(shù)據(jù)傳輸指DSP將需要進(jìn)行遙測(cè)的數(shù)據(jù)寫入雙口RAM的A端,F(xiàn)PGA從雙口RAM的B端讀取遙測(cè)數(shù)據(jù);下行數(shù)據(jù)傳輸指FPGA將控制算法需要的反饋數(shù)據(jù)和指令信息寫入雙口RAM的B端,DSP從雙口RAM的A端讀取控制算法需要的數(shù)據(jù)。其中,下行傳輸?shù)臄?shù)據(jù)包括反饋采樣數(shù)據(jù)和通信指令數(shù)據(jù),反饋采樣數(shù)據(jù)分別來(lái)自ADC模塊和RDC模塊,通信指令數(shù)據(jù)包括兩路1553B總線通信的指令消息。上行和下行傳輸數(shù)據(jù)地址分配分別如表1和表2所示。在航天伺服系統(tǒng)中,指令和反饋數(shù)據(jù)對(duì)整個(gè)航天器的運(yùn)行至關(guān)重要,數(shù)據(jù)傳輸不允許出現(xiàn)錯(cuò)誤,遙測(cè)數(shù)據(jù)表明了當(dāng)前系統(tǒng)狀態(tài),數(shù)據(jù)出錯(cuò)會(huì)影響系統(tǒng)運(yùn)行狀態(tài)的判斷。

      表1 上行傳輸數(shù)據(jù)地址分配

      表2 下行傳輸數(shù)據(jù)地址分配

      1.2 雙口RAM中數(shù)據(jù)傳輸?shù)年P(guān)鍵問題分析

      在硬件雙口RAM器件中具有2套獨(dú)立的訪問控制總線,該2套總線共享數(shù)據(jù)存儲(chǔ)空間,當(dāng)兩側(cè)的總線在同一時(shí)刻對(duì)同一數(shù)據(jù)存儲(chǔ)空間進(jìn)行寫數(shù)據(jù),或一方總線對(duì)數(shù)據(jù)空間寫、另一方總線對(duì)該空間讀時(shí),該地址空間訪問數(shù)據(jù)產(chǎn)生競(jìng)爭(zhēng),此數(shù)據(jù)空間的數(shù)據(jù)會(huì)出現(xiàn)亂碼,應(yīng)當(dāng)避免這種情況的發(fā)生[15]。為了保證通信的可靠性,當(dāng)2套總線同時(shí)訪問雙口RAM的同一地址空間時(shí)需要進(jìn)行握手等待,這種握手機(jī)制會(huì)增加訪問雙口RAM的時(shí)間,當(dāng)數(shù)據(jù)傳輸量較少的情況下,握手機(jī)制將占用總訪問時(shí)間的一半以上,且握手機(jī)制會(huì)占用額外的中斷或者是查詢時(shí)間,增加CPU負(fù)擔(dān)。特別是在伺服系統(tǒng)中,伺服控制算法的運(yùn)算周期決定了其最終性能,因此要最大程度地減少數(shù)據(jù)傳輸時(shí)間和降低CPU任務(wù)負(fù)擔(dān)。

      由表2可以看出,本系統(tǒng)中由FPGA傳輸至DSP的下行傳輸數(shù)據(jù)來(lái)自多個(gè)FPGA的功能模塊,這些數(shù)據(jù)需要按照規(guī)定的地址編碼放入下行傳輸數(shù)據(jù)空間內(nèi)。當(dāng)多個(gè)模塊對(duì)雙口RAM單側(cè)進(jìn)行訪問時(shí),同樣需要設(shè)計(jì)合理的仲裁邏輯避免同時(shí)占用總線。類似于雙口RAM雙側(cè)訪問機(jī)制,設(shè)計(jì)合理的總線訪問機(jī)制有助于簡(jiǎn)化程序架構(gòu),提高FPGA對(duì)內(nèi)部雙口RAM的寫入和讀取時(shí)間,提高采樣率和通信速率。

      2 雙口RAM設(shè)計(jì)實(shí)現(xiàn)

      2.1 框架與接口設(shè)計(jì)

      按模塊化設(shè)計(jì)方法,本系統(tǒng)將雙口RAM設(shè)計(jì)為2個(gè)模塊,頂層模塊為Prior_DRAM,例化的子模塊為Dual_Port_Memory,頂層模塊完成雙口RAM與其訪問功能模塊的接口設(shè)計(jì)。如圖2所示,各個(gè)模塊對(duì)FPGA側(cè)總線的訪問均具備獨(dú)立的數(shù)據(jù)地址總線和控制信號(hào)。圖2中,左側(cè)信號(hào)位輸入信號(hào),右側(cè)信號(hào)位輸出信號(hào)。

      圖2 頂層模塊接口圖Fig.2 Top level module interface diagram

      子模塊負(fù)責(zé)上行和下行傳輸數(shù)據(jù)的存儲(chǔ),接口如圖3所示,具備2套獨(dú)立的數(shù)據(jù)地址總線和控制信號(hào),其中A端通過頂層模塊映射后與DSP相連,B端通過頂層模塊映射后與FPGA相連。

      圖3 子模塊接口圖Fig.3 Sub-module interface diagram

      2.2 存儲(chǔ)設(shè)計(jì)

      為了保證上下行傳輸過程中數(shù)據(jù)讀寫速度最快,數(shù)據(jù)存儲(chǔ)子模塊內(nèi)部不設(shè)優(yōu)先級(jí)訪問順序,保證在一個(gè)時(shí)鐘沿實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。為了進(jìn)一步提高數(shù)據(jù)空間存儲(chǔ)的可靠性,設(shè)計(jì)了上下行傳輸分段存儲(chǔ)防差錯(cuò)機(jī)制,單側(cè)讀取和寫入數(shù)據(jù)時(shí)訪問的空間為獨(dú)立的存儲(chǔ)地址,實(shí)現(xiàn)代碼如下:

      reg[15∶0]Down_RAM[127∶0];

      reg[15∶0]Up_RAM[63∶0];

      //下行數(shù)據(jù)傳輸:

      always@(posedge Clock) begin

      if(A_Port_RD&&A_Port_EN) begin

      A_Port_Data_Out<=Down_RAM[A_Port_Addr[6∶0]];

      //A Port Reading

      end

      end

      if(B_Port_WE) begin

      Down_RAM[B_Port_Addr[6∶0]]<=B_Port_Data_In;

      //B Port Writing

      end

      end

      //上行數(shù)據(jù)傳輸:

      always@(posedge Clock) begin

      if(A_Port_WE&&A_Port_EN) begin

      Up_RAM[A_Port_Addr[5∶0]]<=A_Port_Data_In;

      //A Port Writing

      end

      if(B_Port_RD) begin

      B_Port_Data_Out<=Up_RAM[B_Port_Addr[5∶0]];

      //B Port Reading

      end

      end

      由上可以看出,雙口RAM存儲(chǔ)設(shè)計(jì)未對(duì)雙口RAM數(shù)據(jù)共享空間進(jìn)行初始化,需要在頂層模塊設(shè)計(jì)初始化功能,將雙口RAM存儲(chǔ)空間初始化為0。

      2.3 同步分時(shí)防沖突設(shè)計(jì)

      伺服系統(tǒng)通常以固定周期進(jìn)行反饋數(shù)據(jù)采樣和給定指令的讀取、執(zhí)行控制算法并進(jìn)行輸出,因此,本系統(tǒng)中雙口RAM數(shù)據(jù)需要在此周期內(nèi)完成傳輸,且盡量減少數(shù)據(jù)傳輸占用CPU的處理時(shí)間。在本伺服系統(tǒng)中,控制周期為50μs,其中將雙口RAM數(shù)據(jù)傳輸?shù)倪^程劃分為6個(gè)事件進(jìn)行設(shè)計(jì),如表3所示。

      表3 雙口RAM數(shù)據(jù)傳輸事件

      得益于FPGA的硬件可編程邏輯特性,雙口RAM的B端口訪問按照固定邏輯時(shí)序進(jìn)行,6個(gè)事件分布在控制周期的固定時(shí)刻,在定時(shí)周期開始的零時(shí)刻,DSP輸出一個(gè)下降沿作為同步信號(hào)給到FPGA,F(xiàn)PGA將當(dāng)前時(shí)刻作為零時(shí)刻。雙方按照表3中的時(shí)刻對(duì)雙口RAM進(jìn)行訪問。在零時(shí)刻DSP啟動(dòng)事件①任務(wù),事件①任務(wù)完成后執(zhí)行事件②任務(wù),由于DSP處理的任務(wù)為順序執(zhí)行,因此A端口不會(huì)產(chǎn)生讀寫沖突,且設(shè)計(jì)任務(wù)用時(shí)少于20μs。在25μs時(shí)刻開始,F(xiàn)PGA啟動(dòng)后續(xù)任務(wù)③④⑤⑥,采用順序結(jié)構(gòu)保證B端口讀寫任務(wù)不會(huì)產(chǎn)生讀寫沖突,且設(shè)計(jì)任務(wù)用時(shí)少于20μs。

      在保證時(shí)序余量的前提下將任務(wù)按時(shí)間段進(jìn)行了分割,雙口RAM的A端口和B端口讀寫被分布到定時(shí)周期的上、下2個(gè)半?yún)^(qū),避免了在同一時(shí)刻對(duì)雙口RAM的同一地址空間進(jìn)行讀寫。

      3 功能仿真與測(cè)試

      FPGA內(nèi)部雙口RAM采用VerilogHDL完成設(shè)計(jì)編碼,在ISE下設(shè)計(jì)了仿真激勵(lì)文件,使用ModelSim進(jìn)行了功能仿真,仿真時(shí)序如圖4和圖5所示。

      圖4 雙口RAM A端口讀寫時(shí)序邏輯Fig.4 A-port sequential logic in dual port RAM

      圖5 雙口RAM B端口讀寫時(shí)序邏輯Fig.5 B-port sequential logic in dual port RAM

      由圖4可以看出,雙口RAM A端口數(shù)據(jù)讀寫最快不超過4μs;由圖5可以看出,雙口RAM B端口數(shù)據(jù)讀寫時(shí)間總占用不超過15μs。由于B端口數(shù)據(jù)寫入是由FPGA內(nèi)部多個(gè)功能模塊完成,在進(jìn)行總線切換時(shí)會(huì)增加數(shù)據(jù)讀寫時(shí)間,因此比A端口訪問時(shí)間更長(zhǎng)。

      為了驗(yàn)證雙口RAM在數(shù)據(jù)傳輸中的可靠性,采用1553B總線進(jìn)行了測(cè)試。使用PC機(jī)作為BC端,伺服系統(tǒng)為RT端,設(shè)計(jì)測(cè)試用例如下:

      1)BC發(fā)送指令消息至RT;

      2)FPGA將此消息解析為控制指令并寫入雙口RAM B端;

      3)DSP從雙口RAM A端讀取控制指令并將其第3個(gè)數(shù)據(jù)逐地址加1,形成遙測(cè)數(shù)據(jù)寫入雙口RAM A端;

      4)FPGA將遙測(cè)數(shù)據(jù)傳輸至BC;

      5)改變指令消息數(shù)據(jù),重復(fù)步驟1)~5)。

      圖6 測(cè)試過程與數(shù)據(jù)Fig.6 Test procedures and data

      測(cè)試過程與數(shù)據(jù)如圖6所示,經(jīng)過上百萬(wàn)次測(cè)試和數(shù)據(jù)對(duì)比分析,結(jié)果顯示雙口RAM數(shù)據(jù)傳輸誤碼率為0,上下行數(shù)據(jù)傳輸穩(wěn)定可靠。

      4 結(jié)論

      本文針對(duì)雙口RAM數(shù)據(jù)傳輸防差錯(cuò)問題,設(shè)計(jì)了一種同步分時(shí)訪問機(jī)制。仿真分析與實(shí)驗(yàn)結(jié)果表明:

      1)同步分時(shí)機(jī)制在小數(shù)據(jù)量傳輸過程中運(yùn)行穩(wěn)定且具有更快的訪問速度,占用更少的CPU資源和利用率;

      2)本文所提的同步分時(shí)機(jī)制適用于雙口RAM兩側(cè)CPU具有硬件同步機(jī)制的實(shí)時(shí)系統(tǒng)中,且需要CPU運(yùn)行時(shí)序穩(wěn)定可靠;

      3)本文中FPGA訪問雙口RAM時(shí)仍可設(shè)計(jì)分時(shí)機(jī)制,增加總線切換開關(guān),減少總線占用時(shí)間。

      猜你喜歡
      雙口伺服系統(tǒng)控制算法
      北京航空航天大學(xué)學(xué)報(bào)(2022年6期)2022-07-02 01:59:46
      雙口形式的戴維寧定理在電路分析中的應(yīng)用
      基于復(fù)合前饋模糊PID的位置伺服系統(tǒng)研究
      雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
      基于ARM+FPGA的模塊化同步控制算法研究
      基于自適應(yīng)反步的DGMSCMG框架伺服系統(tǒng)控制方法
      一種優(yōu)化的基于ARM Cortex-M3電池組均衡控制算法應(yīng)用
      消除彈道跟蹤數(shù)據(jù)中伺服系統(tǒng)的振顫干擾
      雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
      雙口RAM在無(wú)人機(jī)三余度飛控計(jì)算機(jī)數(shù)據(jù)交換中的應(yīng)用
      广宗县| 盘山县| 鹰潭市| 微山县| 乌拉特前旗| 太和县| 友谊县| 府谷县| 承德县| 龙山县| 北京市| 石门县| 调兵山市| 深州市| 崇信县| 毕节市| 德保县| 柳江县| 南乐县| 华池县| 淮滨县| 台北县| 星子县| 和田市| 遂川县| 德阳市| 贵港市| 家居| 衡东县| 南木林县| 禄劝| 抚远县| 三都| 汽车| 天台县| 蓬安县| 拉孜县| 怀安县| 林周县| 安阳县| 万州区|