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

基于ZYNQ7000 Linux的數據采集系統設計和實現

2022-07-07 06:46:12孫國萃杜軍馮祥虎肖世偉楊美娜
現代信息科技 2022年4期
關鍵詞:嵌入式設備

孫國萃 杜軍 馮祥虎 肖世偉 楊美娜

摘? 要:針對傳統平臺傳輸信號慢、開發過程復雜的特點,對信號的傳輸采集系統做了相關研究,設計了一種基于ZYNQ-7000和AD(AD9226)架構的嵌入式數據采集的實現方案,以ZYNQ-7000為數字信號處理平臺,搭配AD轉換芯片,在Linux操作系統下利用AXI-DMA方式實現信號的高速采集。該設計數據傳輸速率快,開發前景好,且具有小型化、高集成度的特點,為后續進一步的數據處理提供了前提。

關鍵詞:ZYNQ-7000;Linux操作系統;AD轉換;AXI-DMA傳輸

中圖分類號:TN919.5 ? ? ? ?文獻標識碼:A文章編號:2096-4706(2022)04-0085-04

Design and Implementation of Data Acquisition System Based on ZYNQ7000 Linux

SUN Guocui, DU Jun, FENG Xianghu, XIAO Shiwei, YANG Meina

(School of Computer Science and Information Engineering, Harbin Normal University, Harbin? 150025, China)

Abstract: In view of the characteristics of slow signal transmission and complex development process of traditional platform, the signal transmission and acquisition system is studied, and an implementation scheme of embedded data acquisition based on ZYNQ-7000 and AD (AD9226) architecture is designed. Taking ZYNQ-7000 as the digital signal processing platform, combined with AD conversion chip, the high-speed signal acquisition is realized in AXI-DMA ways under Linux operating system. The design has the characteristics of fast data transmission rate, good development prospect, miniaturization and high integration, which provides a premise for further data processing.

Keywords: ZYNQ-7000; Linux operating system; AD conversion; AXI-DMA transmission

0? 引? 言

數據的發射采集和處理在通信工程領域中起到至關重要的作用,隨著科學技術的發展,傳統的硬件平臺已經無法適應多頻段、多模式的信號處理。軟件無線電技術的出現使對信號的靈活處理成為現實,軟件無線電技術是一種基于軟件定義的無線電廣播通信技術,除了最基本的射頻收發器、放大器和頻器以外,信號的處理部分基本都由軟件進行實現。這樣,不僅提高了系統的靈活性,還節約了時間成本。而Linux操作系統具有超強的靈活性,用戶可以根據自己的需求去剪裁定制系統。Linux能有效利用系統資源,可在特定的硬件要求下進行安裝,安裝過程靈活,能夠更充分的利用硬件資源。

該設計采用ZYNQ-7000系列ZYBO板作為載波板,搭配AD9226芯片,結合Linux操作系統設計并實現一種高速AD數據采集系統。

1? 硬件模塊設計方案

1.1? ZYNQ-7000芯片

ZYNQ-7000芯片包含一個基于雙核ARM Cortex-A9的處理子系統(PS)和可編程邏輯(PL)[1]。設計思路采用以ARM處理器為核心,以可編程邏輯電路作為擴展。用戶可在ARM核中移植操作系統并開發相應的應用程序,并通過控制程序對硬件資源進行控制。PS除了核心外還包括片上存儲器、外部存儲器接口以及大量外設連接接口。ARM與FPGA之間的數據交互使用AXI總線,滿足實時控制和高速數據交互的需求。該設計應用的開發板是由Digilent開發的低成本ZYNQ開發板ZYBO,硬件資源包括一個Xilinx XC7Z010-CLG400芯片,兩片Micron的512 MB bytes的MT41J128M16JT-125 DDR3內存,10/100/1 000M自適應以太網、USBOTG、USB轉ART調試串口、micro SD卡和用以開發板擴展的Digilent Pmod接口連接器[2]。

總硬件設計如圖1所示。

1.2? 模數轉換芯片AD9226

AD9226是一款12位、單芯片、單電源供電、65MSPS模數轉換器,且具有475 MW功耗和70 dB的信躁比[3]。AD9226通過AXI總線與ARM板處理器進行數據通信,采用AXI-DMA方式對收集到的數字信號傳輸給內存,處理器再將內存中的數據讀取并顯示出來。

1.3? AXI4總線介紹

ZYNQ7000的性能不僅依賴于PS和PL兩大部分,系統的整體性非常重要,AXI總線負責維系PS與PL兩端之間的通信。AXI是一種總線協議,是面向高性能、高帶寬、低延遲的片內總線。AXI4總線有AXI4、AXI4-Lite、AXI-Stream三種總線類型[4],本次主要用到的是AXI-Stream總線,它支持面向高速數據流的傳輸,去掉了地址項,允許無限制的數據突發傳輸規模,減少了延時。

比較重要的信號線有:(1)Aclk為時鐘線,所有信號都在Aclk上升沿被采集。(2)ARESETn為復位線,低電平有效。(3)TVALID為主機數據同步線,為高表示主機準備好發送數據;TREADY為從機數據同步線,為高表示從機準備好接收數據。這兩根線完成了主機與從機的握手信號,一旦二者都變高有效,數據傳輸開始。(4)TDATA為數據線,主機發送,從機接收。(5)TKEEP為主機數據有效指示,為高代表對應的字節為有效字節,否則表示發送的為空字節。(6)TLAST為主機最后一個字指示,下一clk數據將無效,TVALID將變低。

AXI-Stream只能在PL中實現,不能直接和PS相連,必須通過AXI-Lite或AXI4轉接。AXI-DMA由Xilinx公司提供,負責從AXI到AXI-Stream的轉換。

1.4? AXI-DMA介紹

AXI DMA IP核相比于AXI內存映射,它提供了更高帶寬的直接內存訪問通道。該IP核在PL中使用,在PL中添加AXI DMA IP core,并利用AXI_HP接口完成高速的數據傳輸,當PL的外設和存儲器之間需要高速傳輸時,就可以選擇AXI DMA這種簡單DMA模式。在簡單DMA模式下,通過配置相應的DMA控制寄存器進行數據傳輸,如果數據傳輸完成,DMA控制器發出中斷信號。這種簡單的DMA數據傳輸方式,占用了較少的FPGA資源,節省硬件的開銷。DMA工作流程如圖2所示。

1.5? 硬件工程模塊設計

在Vivado工程中主要添加了ZYNQ-7000的IP核、AXI-DMA IP核和AD9226采集IP核,AXI-DMA IP核負責通過AXI接口從AD9226采集IP核中搬運數據,然后將數據流到內存映射(S2MM)從機到AXI4寫主機,S2MM通道提供了一個AXI Status流,用于從目標IP接收用戶應用程序數據。其中adc_data[11:0]用于接收AD芯片轉換來的12位數字信號。

AXI-DMA IP核與數據采集IP核如圖3、圖4所示。

2? 系統軟件方案

2.1嵌入式Linux移植和開發

嵌入式Linux系統移植主要由四大部分組成:

(1)搭建交叉開發環境。

(2)Bootloader的選擇和移植。

(3)Kernel的配置、編譯、和移植。

(4)根文件的制作。

首先需要在Vivado中完成PS的相關配置和針對特定應用的PL開發,經過Vivado的編譯、綜合與實現、分配引腳,最后生成比特流,將比特流文件導入到SDK軟件中,SDK利用硬件配置文件實現FSBL文件的創建,生成FSBL.elf文件,然后編譯U-boot、Linux內核并生成u-boot.elf和uImage文件,將FSBL.elf、比特流文件、u-boot.elf文件結合生成Boot.bin文件。利用SDK生成設備樹文件,再將設備樹放在Linux環境下編譯生成二進制文件。最后將Boot.bin、設備樹、內核鏡像、根文件一起放入SD卡FAT分區,最后將SD卡放入開發板的卡槽中啟動開發板。

系統上電后自動執行片內Boot ROM中的代碼,BootRom會初始化CPU和一些外設,并根據外部啟動MIO引腳配置,在Bin文件中找到FSBL的位置,找到后拷貝到內存中。FSBL根據硬件配置bit文件初始化PS部分,配置PL邏輯部分,并加載U-boot作為Linux內核的Bootloader程序,初始化CPU及外設,拷貝Linux內核映像到RAM中,再通過設備樹文件將硬件相關信息傳遞給Linux內核,最后由Linux系統加載文件完成啟動,根據特定需求運行相關驅動及應用程序。

2.2? 驅動程序和應用程序的開發

驅動程序是一種讓計算機和設備通信的特殊程序,相當于硬件的接口,操作系統只有通過這個接口,才能控制硬件設備的工作。Linux中有三大類驅動:字符設備驅動、塊設備驅動和網絡設備驅動[5]。本次用到的AD9226屬于字符驅動。Linux驅動有兩種運行方式,第一種就是將驅動編譯進Linux內核中,這樣當Linux內核啟動的時候就會自動運行驅動程序。第二種就是將驅動編譯成模塊,在Linux內核啟動以后使“insmod”命令加載驅動模塊在調試驅動的時候一般都選擇將其編譯為模塊,這樣修改驅動以后只需要編譯一下驅動代碼即可,不需要編譯整個Linux代碼。

2.2.1? AD轉換驅動程序的部分函數

初始化DMA

memset(axi_adc_dev[dev_index], 0, sizeof(struct axi_adc_dev));//給設備的內存空間全部設置為0。

axi_adc_dev[dev_index]->rx_chan = dma_request_slave_channel(&pdev->dev, “axidma1”);//申請DMA通道。

axi_adc_dev[dev_index]->adc_virtaddr = of_iomap(node, 0);通過設備樹的設備結點直接進行設備內存區間的 映射

DMA傳輸

dma_async_issue_pending(axi_adc_dev[minor]->rx_chan);//開始DMA傳輸

writel(axi_adc_dev[minor]->adc_sample_num,axi_adc_dev[minor]->adc_virtaddr+4);//對 IP核的寄存器基址向后偏移4的位置寫入了需要采集的ADC數據個數。

writel(1,axi_adc_dev[minor]->adc_virtaddr);//對寄存器基地址寫1,開始數據傳輸

DMA傳輸結束

iounmap(axi_adc_dev[dev_index]->adc_virtaddr);//取消映射的虛擬地址空間首地址

dma_release_channel(axi_adc_dev[dev_index]->rx_chan);//釋放dma通道

kfree(axi_adc_dev[dev_index]);//釋放內存

2.2.2? 應用程序的部分函數

初始化axidma設備

DEV = axidma_init();

AN926RegBase=mmap(NULL,4096,PROT_READ|PROT_WRITE,MAP_SHARED,AN926FileDev,AN926_REGBASE);//將AD9226采集IP核寄存器基地址映射到內存上。

數據傳輸

axidma_oneway_transfer(Dev,g_apRxChannels->data[0],AN926DataBuf,AN926_SAMPLENUM*2,false);//將數據傳遞給Buf

printf(“%x “,*((unsigned short*)(an926DataBuf)+i));//將Buf中的每個數據進行打印

結束傳輸并關閉設備

axidma_stop_transfer(Dev,RxChannels->data[0]);//結束傳輸

close(AN926FileDev);//關閉文件

驅動的加載和文件的運行

將AD9226的驅動模塊進行加載,在終端輸入insmod axi_adc_dma.ko,輸入mknod/dev axi_adc_dma c 200 0即可創建字符設備的節點。加載完驅動后的終端輸出結果,如圖5所示。

然后執行命令./axi_app/dev/axi_adc_dma即可。

實驗結果如圖6所示。

3? 結? 論

帶有axi_dma驅動的AD數據采集系統能傳輸高速數據流,相較于傳統數據采集系統來講,傳輸效率更高,占用資源更少。移植過Linux操作系統的arm嵌入式開發板更為后續的相關應用開發提供了可能,對硬件的操作方式也更加的方便和靈活。可廣泛應用于實現數據采集功能的掌上設備及其他嵌入式的系統,如醫療儀器、通信設備等領域。

參考文獻:

[1] 趙莉,李司.基于ZYNQ和AD9361的軟件無線電平臺設計與實現 [J].移動通信,2018,42(12):63-67+73.

[2] 高寒.基于ZYBO開發平臺的智慧環保監測及數據采集系統設計 [J].電子設計工程,2018,26(5):174-178+183.

[3] 張晨亮,蘇學軍,王成剛,等.基于AD9226的數據采集板設計與實現 [J].實驗技術與管理,2017,34(S1):63-65+69.

[4] 莊瓊.基于AXI總線的DMA高速通道及驅動的設計與實現 [D].成都,電子科技大學,2020.

[5]段月驍,郭斌,胡曉峰,等.嵌入式Linux下ADS1256驅動程序的設計與實現 [J].化工自動化及儀表,2015,42(12):1381-1385.

作者簡介:孫國萃(1997—),女,漢族,山東德州人,研究生在讀,研究方向:嵌入式技術。

猜你喜歡
嵌入式設備
諧響應分析在設備減振中的應用
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于VB6.0+Access2010開發的設備管理信息系統
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 亚洲第一区在线| 日本黄色不卡视频| 国产真实乱人视频| 国产无码网站在线观看| 亚洲丝袜第一页| 国产男人天堂| 国产亚洲精品资源在线26u| 黄色网站不卡无码| 国产99精品久久| 国产日韩精品一区在线不卡| 成人国产精品2021| 日韩在线视频网站| 国产免费自拍视频| 在线国产你懂的| 午夜a级毛片| 国产日产欧美精品| 欧美日韩中文字幕在线| 中文字幕无线码一区| 午夜电影在线观看国产1区| 性激烈欧美三级在线播放| 中文字幕色在线| 久久美女精品| 精品国产自在现线看久久| 免费AV在线播放观看18禁强制| 国产欧美视频在线观看| 又黄又爽视频好爽视频| 3p叠罗汉国产精品久久| 国产视频久久久久| 熟妇丰满人妻av无码区| 国产中文一区a级毛片视频| 99视频精品全国免费品| 国产国产人成免费视频77777| www精品久久| 国产精品手机在线播放| 成年人视频一区二区| 国模粉嫩小泬视频在线观看| 亚洲综合二区| 国产精品尤物在线| 99re热精品视频国产免费| 幺女国产一级毛片| 巨熟乳波霸若妻中文观看免费 | 亚洲午夜18| 精品久久高清| 国产在线观看一区精品| 亚洲中字无码AV电影在线观看| 制服无码网站| 国产1区2区在线观看| 欧美 亚洲 日韩 国产| 亚洲水蜜桃久久综合网站| 午夜日韩久久影院| 国产精品私拍99pans大尺度| 国产精品亚欧美一区二区| 亚洲av日韩综合一区尤物| 色哟哟精品无码网站在线播放视频| 亚洲精品动漫| 久久精品国产免费观看频道| 国产在线观看精品| av在线5g无码天天| 国模沟沟一区二区三区| 99re视频在线| 亚洲欧美不卡中文字幕| 亚洲不卡av中文在线| 激情综合激情| 亚洲精品日产精品乱码不卡| 亚洲色图欧美| 91久久青青草原精品国产| 国产欧美成人不卡视频| 国产成人亚洲毛片| 亚洲色图欧美视频| 国产肉感大码AV无码| 国产大片喷水在线在线视频| 亚洲第一中文字幕| 国产成人综合亚洲欧洲色就色| 国产99欧美精品久久精品久久| 亚洲综合精品第一页| 欧美精品高清| 欧美日韩国产在线人成app| 日韩国产 在线| 亚洲天堂在线免费| 性视频久久| av天堂最新版在线| 91www在线观看|