999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Zynq的高速數據記錄儀的設計與實時性分析

2020-02-27 12:34:14杜金艷
計算機測量與控制 2020年1期
關鍵詞:系統設計

杜金艷

(天津津航計算技術研究所, 天津 300308)

0 引言

目前,在一些高性能、高可靠性的電子設備上,為了分析系統參數,查看產品的工作過程狀態等原因,在大系統上通常都安裝了數據記錄儀。而作為無人機載數據記錄儀,則是在無人機飛行過程中,實時監測并記錄飛行數據及設備的狀態信息[1],分析系統參數不可缺少的設備。

根據某型無人機系統的總體要求,在該無人機載系統的初期研制階段,為了監測無人機的各設備的性能指標,在實際飛行試驗過程中都要裝有數據記錄儀,然而對于無人機載系統,又由于結構復雜,各種器部件較多,各個系統又由于功能不同,所采用的通訊方式也不盡相同,使得各硬件接口通訊速率不一致,最終導致每個設備接口的數據量有所差別[2]。因此,開展了高速率、多接口、大容量并行結構的數據記錄儀設計和研究,對加快無人機的研制進程、縮短研制周期、提高武器性能,具有十分重要的意義[3]。

1 系統架構及原理

實時性指標是作為數據記錄儀的最重要的性能之一,即作為記錄儀,要完整記錄所有設備接口接收到的數據,且不允許記錄時丟幀[4]。通常,在實際的設計系統中,系統的硬件平臺設計和軟件優化這兩個方面則是影響系統實時性指標的主要因素。在工程設計階段,有很多實際因素要需要考慮,其中包括設備的研制成本、研發周期及可靠性等諸多方面,所以,一般硬件平臺的設計要選擇成熟度高、設計簡單的方案,而當硬件平臺設計完成后,硬件接口通訊的處理方式、軟件優化程度都會對系統實時性的提高起著決定性作用[5]。下面首先對硬件平臺進行分析。

1.1 系統架構

Xilinx公司的Zynq芯片XC7Z045,集成了ARM Cortex A9 雙核( PS,processing system)、以及可達最多相當于500多萬個邏輯門可編程邏輯( PL,Programmable Logic)單元,它能夠簡單靈活地用于各種目的的應用[6]。Zynq-7000芯片系列的架構為用戶提供了一個開放式的設計環境,在可編程邏輯中,豐富的接口便于雙核Cortex-A9MPCore、及并行加速功能的開發,從而加速了產品開發進度。

本系統的數據處理部分設計采用了ARM + FPGA架構的Zynq-7000芯片,該設計是以ARM Cortex A9處理器為核心,FPGA可編程邏輯部分作為擴展子系統,實現各種硬件接口的通訊協議,兩者之間使用高效的AXI( advanced extensible interface) 總線互接[10],DDR3作為接收數據存儲的中間站,最終要通過SRIO高速通道轉存至數據存儲板,網絡接口作為記錄數據的回放通道;電源管理部分產生各器件所需的電壓種類,并進行電源管理。這樣,通過一起進行軟硬件協同來實現系統各個接口數據的高速采集、傳輸,同時為縮短產品的研制周期,系統中的數據存儲模塊則采用成熟的技術,貨架模塊產品,在此不做過多描述。

圖1 系統結構框圖

1.2 系統原理

在圖1的系統架構中,Zynq-7000芯片中的PS(ARM)端作為數據處理模塊的主控制器,它負責管理和控制各個硬件接口數據的接收和轉存工作,同時DDR3內存顆粒用來做接收數據的大容量緩存。數據處理模塊的工作流程如下:Zynq-7000芯片中的PL(FPGA)實現與各個硬件外部接口通訊的功能,還要實現SRIO高速接口與數據存儲板通訊,它與PS是通過AXI總線互聯,AXI總線協議是基于沖突傳輸的,提供了單一的接口定義,地址通道攜帶了控制消息,用于描述被傳輸的數據屬性,數據傳輸里實現“主”到“從”的傳輸是通過寫通道,寫響應通道來完成一次“從”使用寫傳輸;讀通道用來實現數據從“從”到“主”的傳輸,它可以很方便的實現幾種典型的系統架構拓撲。PS(ARM)則根據接收數據的數據量和數據速度要進行分別處理,同時PS(ARM)端還要及時將PL(FPGA)緩存的接收數據搬移到DDR3中,避免緩存數據被覆蓋;與此同時,PS(ARM)還要找到并利用接收數據的空閑時間,調度SRIO模塊接口,及時的將數據轉移到數據存儲模塊中,避免異常情況下的數據丟失。

2 設計需求分析

根據Zynq-7000芯片的強大的處理能力,在搭建的系統硬件平臺上,如果采用ARM處理器配合FPGA按接口順序完成數據采集,會由于硬件接口接收的數據量和傳輸速度不相同,導致系統接收丟失數據,從而實時性得不到保證。在此要求下,就要發揮FPGA并行處理的能力,對各個硬件接口并行處理數據,來實現對數據處理的提速。因此,這個系統設計對Zynq-7000芯片的PL并行設計和PS軟件的數據處理設計均提出了較高的要求[7],同時要發揮軟硬件協同的優勢。

2.1 需求分析

在進行Zynq-7000芯片的PL設計時,首先要分析各個對外硬件接口的時序需求,才能保證設計實現能夠滿足系統的實時性要求。首先,對于接收數據的PCM同步串口,它的傳輸數據量中等,每幀64個字節,傳輸時鐘為2.56 MHz,雖然傳輸速度不太高,但在產品加電期間一直會有數據傳輸,數據存儲總量還是很可觀的,因此,FPGA要對接收數據幀進行多包緩存,緩解ARM頻繁讀取該數據緩存,這樣就不會過多占用ARM的處理時間;其次,對于同步串口傳輸的數據,傳輸的數據量大,每幀數據量4 K字節,8 Mbps的波特率,數據的傳輸周期為10 ms,同樣在產品加電期間也一直進行數據傳輸,作為FPGA無法緩存太多的接收數據,因此,需要ARM及時將數據取走,避免丟失數據幀;最后,對于Cameralink圖像傳輸接口,需要接收的圖像數據量巨大,每幅圖像數據為6 600*4 401*2字節,大小約為60 MB,數據傳輸周期為3 s,其中只有1 s有有效數據傳輸,其余2 s無數據傳輸,是空閑時間,在產品加電期間,圖像數據傳輸時間約為200 s,因此Cameralink圖像接口的數據是實時性要求最高的,系統要優先處理;對于SRIO高速接口要及時將數據傳輸到存儲板,更要盡量少占用ARM的處理時間;對于1553等其他接口速度和數據處理實時性要求不高,軟件正常處理即可。

2.2 時間剖面

通過以上對各個硬件接口需求進行分析,可以得到幾個關鍵硬件接口傳輸數據時間維度,如圖2,以時間為橫軸,各個時間段的數據傳輸密度是不同的,通過圖可以更清晰的看到在圖像數據1 s的傳輸時間里,數據量達到最大。因此,要充分利用接口數據傳輸的各個空閑時段,關鍵是在圖像傳輸的空閑2 s時間段,要把同步串口和PCM硬件接口的數據接收完成,如果有可能還要完成數據存儲。在實際產品的工作過程中,由于同步串口數據的傳輸速度,在其接收和存儲過程中會被圖像數據流多次打斷,這個情況從上圖也可以看到。因此,最關鍵的是在保證圖像數據優先接收的同時,要保證同步串口數據和PCM接口數據不丟失。

圖2 接口傳輸數據時間框圖

3 硬件設計

按照硬件接口數據傳輸的速度及實時性的要求,要進行數據處理優先級排隊,根據上述分析,軟硬件要優先處理接收的圖像數據,當PS接收到完整的一幀圖像數據時,SRIO高速接口要及時將數據傳輸到存儲板;同時,PS要利用圖像數據接收的空閑時間處理同步串口數據和PCM接口數據,最后,如果系統有需要,再利用空閑時間偶爾處理一下其他接口的數據。

3.1 圖像數據

對于Cameralink接口傳輸的圖像數據,由于一幅圖像數據量太大,FPGA的內部緩存不能存儲完整的一幀圖像數據,因此,就要將一幀圖像數據按照二維的“行”和“列”進行分解,FPGA設計按照圖像的“行”來進行存儲,每行數據為6 600*2個字節,因此,在FPGA內部開設8 K*16 bit的RAM空間作為一行數據緩存,同時還要防止丟失數據,設置A/B緩存來乒乓緩沖,當FPGA接收到一行圖像數據時,放到A緩存,及時產生“行”中斷信號通知ARM,ARM接收到“行”中斷信號后,啟動DMA把數據從緩存搬移到DDR3中,在這個過程如果再來圖像數據,要放到B緩存;同時,PL還要記錄圖像數據的“行”和幀的各種狀態,包括圖像數據的行數、列數等參數供ARM來查詢。

涉及到進行高速數據傳輸時,主要是應用DMA功能。DMA主要采用的是PL側的AXI CDMA核,ARM設置傳輸的源地址和目的地址、以及傳輸的數據長度,ARM通過AXI-lite接口(AXI-GP)向AXI CDMA發送指令,AXI CDMA則是通過Zynq的AXI-HP通路和DDR3交換數據,PL側是通過AXI-S來讀寫DMA的數據。

由于傳輸的圖像數據是16 bit,而ARM的總線寬度是32 bit[9],如果FPGA對圖像數據不進行任何處理,這樣在進行DMA傳輸時,傳輸總線的有效傳輸效率只有50%,浪費了一半的帶寬,因此,FPGA還要將圖像數據組合成32 bit,提高總線的DMA傳輸效率。具體實現框圖如下。

圖3 PL接收圖像數據框圖

3.2 串口數據

對于同步串口數據和PCM硬件接口的數據,經過上述需求分析,也需要對接收數據進行A/B乒乓緩存處理,ARM應用查詢方式處理。PL側同步串口數據及PCM接口接收數據框圖如圖4,兩個接口的處理方法類似。

圖4 FPGA接收串口數據框圖

當串口電路工作在接收模式時,串行數據和串行時鐘同時進入到串并轉換器,FPGA自動檢測幀起始標志,并判斷幀頭格式。當接收到正確的幀頭后,控制CRC校驗使能有效,并根據接收到的數據幀長度對數據進行接收,將接收數據緩存到FPGA內部RAM,同步串口和PCM接口開設的緩存大小均為4KB。數據接收完成后,進行CRC校驗并記錄相應硬件狀態來供PS查詢,當PS在空閑時間查詢到接收數據完成標志后,把PL內部緩存數據搬移到DDR3中。發送模塊工作原理也相似,當ARM想發送數據時,先把發送數據填充到發送緩沖區,然后啟動發送命令,FPGA按照發送格式自動發送幀頭和數據,發送完成進行CRC校驗,置發送完成標志。

在實際系統工作時,同步串口數據在搬移到DDR3的過程中,在同步串口的10 ms周期里,可以計算得出,大約會傳輸圖像數據約45行。因此,同步串口數據搬移過程會被圖像數據流頻繁打斷,當該過程被接收圖像數據打斷后,PS主流程會先處理圖像數據,當搬移完一行的圖像數據后,再回來繼續處理同步串口數據。因為同步串口是A/B乒乓緩存,若46行圖像數據處理的時間小于同步串口一幀的數據傳輸周期,同步串口數據就不會丟失。

這個同步接口未采用FPGA內的DMA方式進行傳輸,主要是考慮到:如果同步接口的DMA和圖像的DMA同時傳輸時,都會占用DDR3的總線,都會占用ARM的AXI-GP端口,這樣不能保證圖像數據存儲的優先性,因此該接口未采用DMA。后續可以對此進行驗證。

3.3 SRIO高速接口

SRIO互聯技術是面向嵌入式系統開發的,它提出了高性能、同時基于包交換的新一代高速互聯技術,它的數據傳輸過程是基于請求和響應機制的。SRIO傳輸能夠在某種模式下扮演主模塊的角色,即能夠直接向處理器推送數據,而不需要產生中斷。這樣有一個好處,就是可以減少來中斷數量,減少與中斷的握手時間,并將DMA釋放給執行其他任務。

在FPGA的SRIO模塊設計過程中,由于ARM時序緊張,所以要盡量利用PL來完成SRIO的傳輸操作,不過多占用ARM的時間。在FPGA設計中采用AXI DataMover IP核設計來完成PL側的DMA功能,DataMover IP核用來實現流接口(AXI4 STREAM)和存儲器接口(AXI4 Memory Maped)的轉換,是一個數據傳輸通道;DataMover的狀態接口主要用來描述DMA的工作狀態等信息;配置寄存器模塊主要用來對AXI_DataMover IP核進行初始化的配置,以使其能正常的工作。PL側的SRIO模塊會根據系統的需要來主動發起不同的事務類型,設置一定的數據長度進行數據傳輸,從而不需要PS的參與,節省了ARM的時間開銷。

在SRIO模塊中,PS設置命令參數,SRIO模塊會根據不同的參數,執行不同的事務類型,組織相關的請求事務的數據包。SRIO模塊主要采用SRIO的IP核進行設計,SRIO的IP核實現了SRIO的鏈路層,在這個基礎上FPGA進行了數據的打包和拆包功能,并解析SRIO的事務類型,經過SRIO的物理鏈路把數據包發送到目標端口,要是帶有響應的事務,還要查詢相應的響應端口,接收處理響應數據。圖5是SRIO模塊進行數據傳輸的示意圖。

圖5 SRIO模塊傳輸示意圖

4 軟件設計

PS中的ARM軟件處理和PL遵循同樣的優先級處理原則,實現系統實時接收的目標。ARM軟件的處理流程為:ARM軟件初始化并設置中斷使能,在主程序中處理各種數據及流程,當接收到圖像數據中斷后,ARM軟件要立即響應,啟動DMA搬移圖像數據到DDR3中,在此過程中ARM不響應任何其他的操作,當接收到完整的一行數據后,ARM可以繼續執行被打斷的任務,直到下次中斷的到來;當接收到完整的一幀圖像數據后,通知SRIO模塊,SRIO模塊啟動PL中的DMA功能,設置事務類型,將數據轉存到存儲板;ARM軟件在接收圖像數據的空閑時間要查詢同步串口和PCM接口的數據的標志,當查詢到串口的接收數據滿后,ARM將數據陸續搬移到DDR3中,而在此過程中,要實時響應圖像數據的中斷并進行數據處理,當中斷處理完成后,ARM再繼續搬移串口數據,由于各個接口之間的速度差異性,并不會導致同步串口及PCM接口丟失數據。ARM利用空閑時間啟動SRIO及時將數據轉存到存儲板。流程圖如圖6所示。

圖6 軟件流程框圖

5 實驗結果與分析

完成系統設計后,要對系統的指標進行測試,驗證系統是否滿足設計需求。首先進行各個硬件接口數據采集時間和轉存時間進行測試,測試各時間指標時發現,同步串口和PCM接口的ARM處理時間開銷太大,而圖像數據處理的時間是足夠的。經分析,原因為2個串口的數據都是8 bit,ARM軟件在處理數據時,采用FOR循環語句進行字節讀取,這樣處理的效率非常低,因此更改為采用memcpy內存拷貝函數指令,而memcpy指令是4字節對齊的,因此,要在PL中將串口數據都拼接為32 bit,這樣memcpy函數指令的源地址和目的地址都為4字節對齊,就可以通過雙字賦值的方式來完成數據拷貝的,這樣提高了總線傳輸效率。ARM軟件按照上述更改完成后,同步串口和PCM接口數據的處理時間都得到了很大的提升。系統模擬實際的工作狀態并對其進行性能測試,PCM接口是40包數據緩存,測試的時間指標如表1。

5.1 時間指標測試

表1 數據記錄儀接收數據詳情

5.2 軟件系統測試

產品設計完成后,應用測試設備對產品進行測試,開發了測試程序,測試環境框圖如圖7。

圖7 系統結構原理框圖

在對產品測試的過程中發現,由于圖像數據的DMA搬移過程是在ARM軟件的主流程中進行的,圖像數據還是受到了同步串口和PCM接口數據流的影響,當其串口搬移時間過長(超過220 μs*2)時,就會導致接收的圖像丟失了某行數據。最后經過分析,將ARM軟件的處理改為:在中斷程序中搬移每行圖像數據,這樣會占用ARM的中斷時間90 μs,90 μs時間對同步串口和PCM接口的數據影響不大,因為串口是10 ms一幀的周期,PCM接口每幀傳輸是200 μs,且40包緩存,所以串口不會丟幀。經過更改后,測試結果正常,數據記錄儀工作可靠,實時性高,已滿足實際應用要求。

6 結束語

針對ZYNQ芯片的異構處理器結構特征,通過對外部接口設備的時序分析,設計并實現了一種基于ZYNQ芯片的數據記錄儀方案,仔細研究了實時性的關鍵因素,并詳細介紹了PL可編程部分及PS軟件的實現過程及軟硬件協同處理方法,最后并對其進行了優化。最后實驗結果表明,此設計滿足系統要求。此方案提高了數據記錄的可靠性和實時性,同時也提高了系統擴展的靈活性。

猜你喜歡
系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 99re精彩视频| 日韩人妻无码制服丝袜视频| 青青热久免费精品视频6| 高清无码不卡视频| 天堂亚洲网| 国产成人亚洲毛片| 亚洲欧美一级一级a| 免费全部高H视频无码无遮掩| 日韩久久精品无码aV| 国产亚洲高清在线精品99| 亚洲三级色| 91麻豆精品国产91久久久久| 国产欧美日韩在线在线不卡视频| 亚洲天堂免费| 性视频一区| 欧美日韩高清在线| 精品一区二区三区波多野结衣| 亚洲综合日韩精品| 精品夜恋影院亚洲欧洲| 日韩精品无码一级毛片免费| 国产精品九九视频| 欧美人与动牲交a欧美精品| 欧美色综合久久| 国产成人凹凸视频在线| 欧美成人二区| yjizz国产在线视频网| 国产jizzjizz视频| 天天色天天综合| 久热精品免费| 黄色三级网站免费| 亚洲精选无码久久久| 99久久成人国产精品免费| 毛片网站免费在线观看| 成人毛片免费观看| 日韩精品一区二区三区中文无码| 色综合天天操| 国产中文在线亚洲精品官网| 免费看a毛片| 一级毛片免费的| 国产欧美成人不卡视频| 就去色综合| 毛片视频网址| 国产成人在线无码免费视频| 黄色福利在线| 无码精品一区二区久久久| 五月天福利视频| 亚洲熟女偷拍| 奇米影视狠狠精品7777| 亚洲美女AV免费一区| 毛片在线播放a| 中国成人在线视频| 精品国产免费观看| 精品视频一区在线观看| 国产一级精品毛片基地| 国产综合无码一区二区色蜜蜜| 欧美成人看片一区二区三区| 成人福利视频网| 日韩A级毛片一区二区三区| 国产91麻豆免费观看| 国产精鲁鲁网在线视频| 日本国产在线| 啊嗯不日本网站| 亚洲精品国产精品乱码不卞| 国产福利在线免费| 国产成人福利在线| 色偷偷综合网| 亚洲va视频| 久久精品国产亚洲AV忘忧草18| 国产亚洲精久久久久久久91| 国产成人综合久久精品尤物| 米奇精品一区二区三区| 久热中文字幕在线观看| 性欧美在线| 日韩高清一区 | 国产亚洲精品yxsp| 精品在线免费播放| 真实国产精品vr专区| 黄色一级视频欧美| 欧美成人精品高清在线下载| 2021亚洲精品不卡a| 无码视频国产精品一区二区 | 毛片最新网址|