• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ZYNQ?7000的飛控計算機PC/104總線數傳鏈路設計

    2024-09-13 00:00:00晏鵬鵬張玉民盛蔚
    現代電子技術 2024年14期
    關鍵詞:控計算機中斷鏈路

    摘" 要: 針對飛控計算機面向多模塊、多種類接口資源方向發(fā)展引發(fā)的原有飛控計算機固有性能不足、可拓展性差的問題,提出一種基于ARM+FPGA的軟硬件協(xié)同工作、以PC/104作為多模塊間通信總線的飛控計算機框架。該框架中針對PC/104總線與系統(tǒng)主存?zhèn)鬏數膸挷黄ヅ鋯栴},設計了雙通道數據緩沖路徑,通過FPGA設計IP實現PC/104總線時序的控制,以DMA的方式實現總線與主存DDR之間的高速數據緩存。實驗結果表明,所設計的飛控數據鏈路可實現模塊間PC/104總線以40 Mb/s的速度進行數據傳輸,以及通過總線實現外設到系統(tǒng)主存之間微秒級別延遲的高速數據交換,保證了多模塊工作時的數據傳輸效率。

    關鍵詞: 飛控計算機; PC/104總線; ZYNQ?7000; FPGA; DMA數傳鏈路; 數據交換

    中圖分類號: TN791?34; TN919.1?34" " " " " " " " " "文獻標識碼: A" " " " " " " "文章編號: 1004?373X(2024)14?0015?05

    Design of ZYNQ?7000 based PC/104 bus data transmission link of flight control computer

    YAN Pengpeng, ZHANG Yumin, SHENG Wei

    (School of Instrumentation and Optoelectronic Engineering, Beihang University, Beijing 100191, China)

    Abstract: In allusion to the problem of insufficient inherent performance and poor scalability of the original flight control computer caused by the development of multi?module and multi?type interface resources, a flight control computer framework based on ARM + FPGA hardware and software cooperation and taking PC/104 as a multi?module communication bus is proposed. In this framework, a dual?channel data buffer path is designed to improve the bandwidth mismatch between PC/104 bus and system main memory transmission. The PC/104 bus control is realized by IP designed in FPGA, and the high?speed data cache between bus and main memory is realized by means of DMA. The experimental results show that the designed flight control computer data link can realize 40 Mb/s data transmission speed between PC/104 buse between modules, and realize high?speed data exchange with microsecond delay between peripherals and system main memory by the bus, which ensures the data transmission efficiency of multi?module operation.

    Keywords: flight control computer; PC/104 bus; ZYNQ?7000; FPGA; DMA data transmission link; data exchange

    0" "引" 言

    飛控計算機作為無人機飛行控制的指揮中心,擔任著實時的控制律解算、遙測數據的收發(fā)、飛行任務的執(zhí)行等功能[1?2]。近年來,隨著嵌入式處理器的更新迭代,無人機所要執(zhí)行的飛行任務也逐漸加重,無人機所需外設資源越來越多,傳統(tǒng)以DSP+FPGA為架構的導航計算機[3]過于復雜,較難進行冗余備份,而以MPC555處理核心為代表的多模塊方案[4]也難以滿足現在無人機的實時任務需求。PC/104在嵌入式領域具有廣泛應用,ZYNQ的獨特異構設計給用戶設計帶來了較大的想象空間。本文以PC/104為模塊間通信總線,以ZYNQ處理器作為主控,實現DMA雙通路的數據緩存鏈路設計,保證飛控在復雜條件下實時收發(fā)總線數據。

    1" 系統(tǒng)總體設計

    PC/104是一種工業(yè)計算機總線標準,有8位和16位兩個版本,分別與PC和PC/AT相對應,在嵌入式的設計中具有廣泛的應用[5]。由于業(yè)內無專用的PC/104總線接口芯片,也沒有集成PC/104總線外設接口的處理芯片,因此用軟件實現相應功能,雖然具有一定的靈活性,但是對于實時性較強的系統(tǒng)而言,顯然不能達到要求。對于實時性要求較高的飛控計算機,需要專門接口邏輯滿足復雜的任務需求。

    ZYNQ?7000系列是賽靈思產品平臺基礎,它基于ARM處理器的片上系統(tǒng)(System on Chip, SoC),可滿足復雜嵌入式系統(tǒng)的高性能、低功耗和多核處理能力要求,同時保持了與7系列FPGA的一致性,便利了功能板塊的可擴展性[6]。ZYNQ?7000基于ARM處理器的結構,在單片內集成了雙核ARM Crotex?A9處理器核心(Processing System, PS)以及可編程邏輯(Programmable Logic, PL)[7],兩者之間通過AXI(Advancede Xtensible Interface)總線互聯(lián)。自1996年由ARM公司發(fā)布AMBA總線以來,到最新版本的AMBA4.0的AXI總線[8],AXI總線協(xié)議的物理接口包括AXI?GP、AXI?HP、AXI?ACP,接口帶寬為600 Mb/s~1.2 Gb/s,可分別應用于不同需求的場景。ZYNQ主機AXI?GP接口具有發(fā)起讀寫的權限,然而在飛控計算機傳輸多來源、多類型的數據時,為充分發(fā)揮PS與PL間高性能接口的作用,需要著重解決數據緩存與收發(fā)邏輯的問題,該問題的解決會提高飛控計算機的實時性。

    針對上述問題,本文設計以ZYNQ為平臺的處理器方案,利用PL設計實現PC/104控制器接口的邏輯,PS負責做任務調度管理,DMA控制器做總線數據緩存。該方案中,PL中的數據收發(fā)不同階段通過中斷事件同步到PS端,PS控制PC/104總線控制器接收、發(fā)送與整合數據。為了減少CPU任務調度,充分發(fā)揮ZYNQ的AXI?HP接口ARM與FPGA高速數據流接口的性能[6],通過DMA可實現總線數據在FIFO與主存的交互。同時,自定義數據握手接口,可實現數據在DMA與PC/104控制器之間通過橋接FIFO做異步緩存??傮w設計思想和系統(tǒng)硬件框架如圖1所示。系統(tǒng)設計包含PC/104總線控制器設計、DMA緩存鏈路設計以及PS軟件控制設計三個部分。

    2" FPGA邏輯設計與優(yōu)化

    2.1" PC/104控制器設計

    本文采用16位數據總線的PC/104總線架構,對其部分線束進行了裁剪,保留了16位的數據總線、24位地址線的低20位,以及I/O、存儲設備所必需的16位控制線。PC/104總線時序根據數據總線的寬度、讀或寫操作、是否選擇插入等待周期、讀寫設備類型的不同,有著不同的操作時序,總線上地址以及數據的傳輸按照時鐘進行,圖2所示為本文采用16位I/O設備的讀寫操作時序。

    根據狀態(tài)機的設計方法[9],將PC/104的傳輸時序劃分為:空閑、地址TS_1、地址TS_2、數據TC1_1~2、數據TC2_1~2、等待1WAIT_1、等待2WAIT_2共9個狀態(tài)周期。具體設計邏輯如下。

    1) 系統(tǒng)上電或者復位之后,PC/104處于空閑狀態(tài),此時等待ARM端的指令到來。

    2) 收到指令之后,即刻進入地址狀態(tài)TS_1內。TS_1進行一拍的緩沖,在TS_2狀態(tài)內生成BALE地址鎖存使能的信號,將要訪問的設備地址鎖存在地址總線SA:19~0上。此時系統(tǒng)默認為寫總線周期,將來自PS的數據放到數據總線SD:15~0上,進入數據TC1狀態(tài)。

    3) 在數據狀態(tài)TC1內,根據PS的指令使能讀或寫控制信號,如果M16#信號有效,此時監(jiān)測NOWS#信號判斷是否需要提前結束當前周期,否則進入狀態(tài)TC2。

    4) 如果是總線讀操作且IOCHRDY有效,在TC2狀態(tài)內即可讀取數據總線上的數據到指定的寄存器內;如果是總線寫操作,主設備端無需進行操作,等待從設備將數據讀走即可完成一次訪問周期。

    5) 在TC1_2、TC2_2和WAIT_2均有后續(xù)任務邏輯判斷,有任務則執(zhí)行任務,否則轉入PC/104處于空閑狀態(tài),即1)狀態(tài)。

    2.2" DMA數據鏈路設計

    DMA是指外部設備不通過CPU,直接與系統(tǒng)內存交換數據的接口技術[10?11]。本文DMA數據鏈路設計的主要目的在于解決PC/104模塊與ARM通信帶寬不匹配問題,從而提高批量數據傳送的效率與速度。對于ARM來說,與FPGA對接的主要任務是搬運大量來自PC/104總線上的數據。一般情況下,將外設數據讀入內存或將內存?zhèn)魉偷酵庠O,都要通過CPU控制完成,如采用查詢或中斷方式。雖然中斷方式可以提高CPU的利用率,但對于批量傳送數據的情況,如圖3所示,若采用DMA方式,CPU只需要提供地址和突發(fā)傳輸數據的長度給DMA,DMA即可接管總線、訪問內存,從而可以有效地提高數據傳送的效率與速度。

    實際應用中,配置PL的DMA帶寬可達1.6 Gb/s,遠遠高于PC/104的帶寬16 Mb/s。FIFO常用于異步時鐘域之間的數據交換,其數據接口一般是AXIS(Advanced Extensible Interface?Stream)流式數據接口。AXIS是最簡化的AXI數據接口,其基本的邏輯是兩端握手交換信息,基于TVALID、TREADY兩個信號的握手信號[12]邏輯如圖4所示。當發(fā)送數據端準備好數據之后置TVALID為有效,接收數據端監(jiān)測TVALID有效后,接收總線上的數據并置TREADY有效,此時一次數據握手收發(fā)結束。

    FIFO作為數據在DMA和PC/104之間的緩沖,與DMA處于同一時鐘域下,二者數據交換能夠以滿速的帶寬進行。而PC/104控制器與FIFO交換數據時,需要減緩握手交換數據的速度。以總線發(fā)送數據為例,設計中延遲PC/104控制器的TREADY信號的使能時間,僅在PC/104狀態(tài)機處于總線空閑狀態(tài)時生成一次TREADY信號脈沖,此時來自AXI FIFO的TVALID信號已經有效,則一次數據交換完成。綜上可知,本文設計的DMA數據鏈路解決了數據通信中的帶寬不匹配問題,有效地提高了數據傳送的效率與速度。

    3" 驅動邏輯設計與實現

    本文設計中,通過硬件描述語言Verilog實現上述的各項邏輯功能,在Xilinx的ZYNQ開發(fā)設計平臺Vivado中進行仿真驗證。開發(fā)平臺可以對所設計語句進行RTL邏輯門級驗證、綜合驗證、布局布線驗證,用戶可根據驗證結果修改優(yōu)化結構。驗證通過即可生成Bit流文件,而后在Vivado的軟件開發(fā)平臺加載Bit流文件,進行PS端驅動邏輯的開發(fā)。

    通過Vivado平臺設計PC/104控制器接口IP核,接口示意圖如圖5所示。PC/104控制器接口IP和DMA通過上下傳FIFO緩存數據。PC/104控制器接口的IP封裝為AXI?Lite格式,PS端通過AXI?Lite接口可以配置PC/104控制器接口IP,進而能夠實現上層軟件對該IP的控制。AXI?Lite控制IP的核心在于配置接口寄存器,封裝IP時將寄存器的位映射到不同的IP功能,用戶只需讀寫相關寄存器即可控制FPGA進行邏輯操作。

    ARM軟件通過中斷協(xié)調系統(tǒng)各個流程的推進,本文設計了三級中斷配置邏輯,如圖6所示,三級中斷表示內容如下。

    1) 中斷Ⅰ:來自外界設備,用于向CPU發(fā)出數據讀取開始及發(fā)送數據完成請求。

    2) 中斷Ⅱ:來自PC/104控制器,用于向CPU發(fā)出請求啟動或者復位PC/104總線。

    3) 中斷Ⅲ:來自DMA控制器IP,用于向CPU發(fā)出請求表示與DDR的交換數據已完成或請求交換數據。

    以一次總線數據傳輸為例:當前CPU模塊需要通過PC/104總線寫數據到I/O1模塊,地址為A,數據量為20 B,具體的配置流程如下。

    1) 系統(tǒng)復位,DMA初始化。

    2) 中斷接口配置,中斷函數匹配;配置中斷觸發(fā)方式以及優(yōu)先級,綁定回調函數與中斷ID。

    3) 進入用戶寫數據函數,配置I/O1板卡的地址A的中斷調用參數句柄,啟用各中斷。

    4) 啟用DMA,將20 B數據傳到DMA緩沖通道。

    5) 進入DMA完成中斷:根據步驟3)的參數句柄配置PC/104接口,突發(fā)傳輸數量并且啟動總線傳輸。

    6) PC/104發(fā)送完成發(fā)起中斷,中斷函數中復位PC/104控制寄存器,一次總線任務結束。

    至此,完整地實現了飛控計算機多模塊數據傳輸系統(tǒng)設計與驅動開發(fā)。

    4" 仿真及實驗驗證

    本文在Vivado提供的仿真驗證平臺上,對基于狀態(tài)機設計的PC/104控制器接口IP核進行仿真驗證。

    圖7為16位I/O設備的總線讀操作仿真波形??偩€工作在BCLK時鐘下,IOWC#、IORC#分別映射到PC/104控制器IP的控制寄存器上。PS端通過寄存器操作實現指令發(fā)送,PC/104狀態(tài)機開始工作。在總線TS周期的后半段拉高BALE信號,將地址鎖存到總線上,同時將來自FIFO的數據放到數據總線上。設計中使用標準的I/O讀寫周期,PC/104信號NOWS#以及IOCHRDY信號描述了可以提前結束或延長總線周期的情況[13]。

    圖8為DMA與FIFO之間AXIS數據流仿真波形。在總線寫操作中,DMA將數據臨時存儲在FIFO中,通過AXIS接口交換數據。DMA需要發(fā)送數據時,將其AXIS接口的TVALID信號置為有效態(tài),兩端自動同步完成數據流的傳輸,即圖示0x5678~0x2A2B。

    FIFO通過AXIS協(xié)議收發(fā)PC/104總線上的數據。由于PC/104控制器一個標準的I/O設備操作需要6個時鐘周期,因此取數據通過延遲PC/104控制器AXIS接口的VALID信號實現。在PC/104總線完成一個總線周期時,生成一個VALID信號脈沖,即可更新一次PC/104總線數據。FIFO和PC/104控制器AXIS數據流實驗波形如圖9所示。圖中,在進行總線讀操作時FIFO的READY信號長期有效,控制VALID脈沖信號的生成,即可將總線接收的數據存儲在FIFO中。

    基于以上描述,模擬無人機飛控系統(tǒng)中的常用外設,如IMU的數據接收情況,實驗中進行了多串口情況下總線數據接收測試。測試中,PC/104通信主模塊CPU工作在667 MHz的主頻下,數據生成模塊以200 Hz生成數據,以115 200、 512 000的波特率通過串口,以8 B幀長向PC/104通信從模塊發(fā)送數據,PC/104通信主模塊對接收的數據進行時間監(jiān)測。實驗測試中,根據隊列輪詢的方法確保CPU給多個端口分配的響應級別相同,以保證各個端口能夠同等占有總線資源。實驗中,對掛載1~4個COM口時的總線有負載的時間段進行檢測。某時刻起始的總線有負載數據的時間線對比結果如圖10所示。

    根據圖10結果,總線能夠滿足當前狀況下的負載響應,且具有足夠的裕量。對實時性要求高的系統(tǒng)中,還需考慮數據在鏈路上的延時,本文采用如圖10的測試條件對數據從數據模塊到主控模塊主存的延時進行分析,結果如圖11所示。

    串口工具以4~20 B的幀長發(fā)送數據,PC/104接收模塊組幀完成后發(fā)起請求到PC/104主機模塊,接收完數據之間耗時為一次鏈路延時。在4 B的幀長情況下,總線鏈路延時為2.5 μs,當幀長增加到8 B、20 B時,鏈路延時同比例地增加到3.8 μs、7.4 μs。除去軟件的時間消耗,鏈路延時呈倍數增長,與控制器的設計理論相符。PC/104總線的鏈路設計在預設的實驗條件下,能夠保證多個通道同時響應時數據不阻塞,保持鏈路的延時在μs級別。

    5" 結" 論

    本文基于ZYNQ架構模塊化飛控計算機的設計,利用ZYNQ的可編程邏輯資源設計了PC/104控制器接口,并且封裝了規(guī)范化的AXI控制接口以及流式數據傳輸接口。驅動設計中,PS通過三級中斷的設計協(xié)調PL端邏輯的運行。考慮到處理器處理任務的實時性,在不占用CPU資源的情況下,設計了DMA數據收發(fā)鏈路。數據傳輸時,通過緩沖FIFO以及自定義流式數據接口,實現兩端不等帶寬情況下的數據收發(fā)。本文設計思想在工程應用中具有較大的借鑒意義,尤其對于大量任務需求的情況,該方法能夠實現較好的效果。

    參考文獻

    [1] 喻少林.基于DSP+FPGA的微小型無人機飛控計算機研究[D].杭州:浙江大學,2011.

    [2] 吳軍鋒,韓冰,張志君,等.面向飛控計算機的新型總線體系架構研究[J].電子測試,2022,36(8):5?8.

    [3] YAN J, XU X. Design and experiment of SINS/GPS integrated navigation system [J]. Journal of computer, 2013, 8(8): 1973?1978.

    [4] 陳云.CAN總線飛控計算機設計與開發(fā)[D].南京:南京航空航天大學,2016.

    [5] 楊文強.基于FPGA與PC/104的導航計算機系統(tǒng)設計[D].南京:東南大學,2020.

    [6] 李朗,張索非,楊浩.基于Zynq?7000的視頻處理系統(tǒng)框架設計[J].計算機技術與發(fā)展,2017,27(5):192?195.

    [7] Xilinx. Zynq?7000 all programmable SoC technical reference manual [EB/OL]. [2023?06?30]. https://docs.xilinx.com/r/en?US/ug585?zynq?7000?SoC?TRM.

    [8] 林云,張祥,黃躍,等.基于Zynq?7000的毫米波雷達數據采集系統(tǒng)設計[J].電子測量技術,2021,44(19):134?138.

    [9] 夏宇聞.VERILOG數字系統(tǒng)設計教程[M].2版.北京:北京航空航天大學出版社,2008.

    [10] 張兵,陳欣,欣欣竑.基于CAN總線的分布式無人機實時仿真設備研究[J].系統(tǒng)仿真學報,2009,21(6):1587?1590.

    [11] 蘇鋒.基于ZYNQ共享內存的數據交互系統(tǒng)設計方法[J].現代信息科技,2022,23(6):82?85.

    [12] 鄭建立,漆榮輝,張璐.基于AXI4?Stream總線的數字視頻接口IP核設計[J].電子科技,2016,29(9):161?165.

    [13] TOM S, DON A. ISA system architecture [M]. Massachusetts, USA: Addison?Wesley Publishing Company, 1995.

    猜你喜歡
    控計算機中斷鏈路
    家紡“全鏈路”升級
    天空地一體化網絡多中繼鏈路自適應調度技術
    移動通信(2021年5期)2021-10-25 11:41:48
    某型飛控計算機與地面檢測設備無法連接故障分析
    跟蹤導練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    無人機容錯飛行控制計算機體系結構研究
    基于3G的VPDN技術在高速公路備份鏈路中的應用
    高速光纖鏈路通信HSSL的設計與實現
    飛控計算機環(huán)境試驗/外場維護測試軟件的實現
    AT89C51與中斷有關的寄存器功能表解
    井研县| 成都市| 象州县| 上蔡县| 辽源市| 海盐县| 海南省| 吴堡县| 新郑市| 长治县| 同德县| 湘潭市| 香格里拉县| 贵阳市| 屏山县| 五莲县| 宁晋县| 鸡东县| 建湖县| 乌拉特中旗| 孙吴县| 浙江省| 集安市| 西安市| 罗田县| 宝应县| 射洪县| 德兴市| 文成县| 紫金县| 屯昌县| 鹤壁市| 五指山市| 图木舒克市| 措美县| 观塘区| 涟水县| 莆田市| 阿克苏市| 济阳县| 留坝县|