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

基于ZYNQ7000 Linux的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

2022-07-07 06:46:12孫國(guó)萃杜軍馮祥虎肖世偉楊美娜
現(xiàn)代信息科技 2022年4期
關(guān)鍵詞:嵌入式設(shè)備

孫國(guó)萃 杜軍 馮祥虎 肖世偉 楊美娜

摘? 要:針對(duì)傳統(tǒng)平臺(tái)傳輸信號(hào)慢、開發(fā)過(guò)程復(fù)雜的特點(diǎn),對(duì)信號(hào)的傳輸采集系統(tǒng)做了相關(guān)研究,設(shè)計(jì)了一種基于ZYNQ-7000和AD(AD9226)架構(gòu)的嵌入式數(shù)據(jù)采集的實(shí)現(xiàn)方案,以ZYNQ-7000為數(shù)字信號(hào)處理平臺(tái),搭配AD轉(zhuǎn)換芯片,在Linux操作系統(tǒng)下利用AXI-DMA方式實(shí)現(xiàn)信號(hào)的高速采集。該設(shè)計(jì)數(shù)據(jù)傳輸速率快,開發(fā)前景好,且具有小型化、高集成度的特點(diǎn),為后續(xù)進(jìn)一步的數(shù)據(jù)處理提供了前提。

關(guān)鍵詞:ZYNQ-7000;Linux操作系統(tǒng);AD轉(zhuǎn)換;AXI-DMA傳輸

中圖分類號(hào):TN919.5 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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? 引? 言

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

該設(shè)計(jì)采用ZYNQ-7000系列ZYBO板作為載波板,搭配AD9226芯片,結(jié)合Linux操作系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)一種高速AD數(shù)據(jù)采集系統(tǒng)。

1? 硬件模塊設(shè)計(jì)方案

1.1? ZYNQ-7000芯片

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

總硬件設(shè)計(jì)如圖1所示。

1.2? 模數(shù)轉(zhuǎn)換芯片AD9226

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

1.3? AXI4總線介紹

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

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

AXI-Stream只能在PL中實(shí)現(xiàn),不能直接和PS相連,必須通過(guò)AXI-Lite或AXI4轉(zhuǎn)接。AXI-DMA由Xilinx公司提供,負(fù)責(zé)從AXI到AXI-Stream的轉(zhuǎn)換。

1.4? AXI-DMA介紹

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

1.5? 硬件工程模塊設(shè)計(jì)

在Vivado工程中主要添加了ZYNQ-7000的IP核、AXI-DMA IP核和AD9226采集IP核,AXI-DMA IP核負(fù)責(zé)通過(guò)AXI接口從AD9226采集IP核中搬運(yùn)數(shù)據(jù),然后將數(shù)據(jù)流到內(nèi)存映射(S2MM)從機(jī)到AXI4寫主機(jī),S2MM通道提供了一個(gè)AXI Status流,用于從目標(biāo)IP接收用戶應(yīng)用程序數(shù)據(jù)。其中adc_data[11:0]用于接收AD芯片轉(zhuǎn)換來(lái)的12位數(shù)字信號(hào)。

AXI-DMA IP核與數(shù)據(jù)采集IP核如圖3、圖4所示。

2? 系統(tǒng)軟件方案

2.1嵌入式Linux移植和開發(fā)

嵌入式Linux系統(tǒng)移植主要由四大部分組成:

(1)搭建交叉開發(fā)環(huán)境。

(2)Bootloader的選擇和移植。

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

(4)根文件的制作。

首先需要在Vivado中完成PS的相關(guān)配置和針對(duì)特定應(yīng)用的PL開發(fā),經(jīng)過(guò)Vivado的編譯、綜合與實(shí)現(xiàn)、分配引腳,最后生成比特流,將比特流文件導(dǎo)入到SDK軟件中,SDK利用硬件配置文件實(shí)現(xiàn)FSBL文件的創(chuàng)建,生成FSBL.elf文件,然后編譯U-boot、Linux內(nèi)核并生成u-boot.elf和uImage文件,將FSBL.elf、比特流文件、u-boot.elf文件結(jié)合生成Boot.bin文件。利用SDK生成設(shè)備樹文件,再將設(shè)備樹放在Linux環(huán)境下編譯生成二進(jìn)制文件。最后將Boot.bin、設(shè)備樹、內(nèi)核鏡像、根文件一起放入SD卡FAT分區(qū),最后將SD卡放入開發(fā)板的卡槽中啟動(dòng)開發(fā)板。

系統(tǒng)上電后自動(dòng)執(zhí)行片內(nèi)Boot ROM中的代碼,BootRom會(huì)初始化CPU和一些外設(shè),并根據(jù)外部啟動(dòng)MIO引腳配置,在Bin文件中找到FSBL的位置,找到后拷貝到內(nèi)存中。FSBL根據(jù)硬件配置bit文件初始化PS部分,配置PL邏輯部分,并加載U-boot作為L(zhǎng)inux內(nèi)核的Bootloader程序,初始化CPU及外設(shè),拷貝Linux內(nèi)核映像到RAM中,再通過(guò)設(shè)備樹文件將硬件相關(guān)信息傳遞給Linux內(nèi)核,最后由Linux系統(tǒng)加載文件完成啟動(dòng),根據(jù)特定需求運(yùn)行相關(guān)驅(qū)動(dòng)及應(yīng)用程序。

2.2? 驅(qū)動(dòng)程序和應(yīng)用程序的開發(fā)

驅(qū)動(dòng)程序是一種讓計(jì)算機(jī)和設(shè)備通信的特殊程序,相當(dāng)于硬件的接口,操作系統(tǒng)只有通過(guò)這個(gè)接口,才能控制硬件設(shè)備的工作。Linux中有三大類驅(qū)動(dòng):字符設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)[5]。本次用到的AD9226屬于字符驅(qū)動(dòng)。Linux驅(qū)動(dòng)有兩種運(yùn)行方式,第一種就是將驅(qū)動(dòng)編譯進(jìn)Linux內(nèi)核中,這樣當(dāng)Linux內(nèi)核啟動(dòng)的時(shí)候就會(huì)自動(dòng)運(yùn)行驅(qū)動(dòng)程序。第二種就是將驅(qū)動(dòng)編譯成模塊,在Linux內(nèi)核啟動(dòng)以后使“insmod”命令加載驅(qū)動(dòng)模塊在調(diào)試驅(qū)動(dòng)的時(shí)候一般都選擇將其編譯為模塊,這樣修改驅(qū)動(dòng)以后只需要編譯一下驅(qū)動(dòng)代碼即可,不需要編譯整個(gè)Linux代碼。

2.2.1? AD轉(zhuǎn)換驅(qū)動(dòng)程序的部分函數(shù)

初始化DMA

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

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

axi_adc_dev[dev_index]->adc_virtaddr = of_iomap(node, 0);通過(guò)設(shè)備樹的設(shè)備結(jié)點(diǎn)直接進(jìn)行設(shè)備內(nèi)存區(qū)間的 映射

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);//對(duì) IP核的寄存器基址向后偏移4的位置寫入了需要采集的ADC數(shù)據(jù)個(gè)數(shù)。

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

DMA傳輸結(jié)束

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]);//釋放內(nèi)存

2.2.2? 應(yīng)用程序的部分函數(shù)

初始化axidma設(shè)備

DEV = axidma_init();

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

數(shù)據(jù)傳輸

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

printf(“%x “,*((unsigned short*)(an926DataBuf)+i));//將Buf中的每個(gè)數(shù)據(jù)進(jìn)行打印

結(jié)束傳輸并關(guān)閉設(shè)備

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

close(AN926FileDev);//關(guān)閉文件

驅(qū)動(dòng)的加載和文件的運(yùn)行

將AD9226的驅(qū)動(dòng)模塊進(jìn)行加載,在終端輸入insmod axi_adc_dma.ko,輸入mknod/dev axi_adc_dma c 200 0即可創(chuàng)建字符設(shè)備的節(jié)點(diǎn)。加載完驅(qū)動(dòng)后的終端輸出結(jié)果,如圖5所示。

然后執(zhí)行命令./axi_app/dev/axi_adc_dma即可。

實(shí)驗(yàn)結(jié)果如圖6所示。

3? 結(jié)? 論

帶有axi_dma驅(qū)動(dòng)的AD數(shù)據(jù)采集系統(tǒng)能傳輸高速數(shù)據(jù)流,相較于傳統(tǒng)數(shù)據(jù)采集系統(tǒng)來(lái)講,傳輸效率更高,占用資源更少。移植過(guò)Linux操作系統(tǒng)的arm嵌入式開發(fā)板更為后續(xù)的相關(guān)應(yīng)用開發(fā)提供了可能,對(duì)硬件的操作方式也更加的方便和靈活。可廣泛應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)采集功能的掌上設(shè)備及其他嵌入式的系統(tǒng),如醫(yī)療儀器、通信設(shè)備等領(lǐng)域。

參考文獻(xiàn):

[1] 趙莉,李司.基于ZYNQ和AD9361的軟件無(wú)線電平臺(tái)設(shè)計(jì)與實(shí)現(xiàn) [J].移動(dòng)通信,2018,42(12):63-67+73.

[2] 高寒.基于ZYBO開發(fā)平臺(tái)的智慧環(huán)保監(jiān)測(cè)及數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) [J].電子設(shè)計(jì)工程,2018,26(5):174-178+183.

[3] 張晨亮,蘇學(xué)軍,王成剛,等.基于AD9226的數(shù)據(jù)采集板設(shè)計(jì)與實(shí)現(xiàn) [J].實(shí)驗(yàn)技術(shù)與管理,2017,34(S1):63-65+69.

[4] 莊瓊.基于AXI總線的DMA高速通道及驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn) [D].成都,電子科技大學(xué),2020.

[5]段月驍,郭斌,胡曉峰,等.嵌入式Linux下ADS1256驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn) [J].化工自動(dòng)化及儀表,2015,42(12):1381-1385.

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

猜你喜歡
嵌入式設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺(tái)
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
如何在設(shè)備采購(gòu)中節(jié)省成本
原來(lái)他們都是可穿戴設(shè)備
主站蜘蛛池模板: 欧美亚洲欧美| 国模沟沟一区二区三区| 欧美伊人色综合久久天天| 国产精品视频观看裸模| 国产亚洲现在一区二区中文| 免费一级大毛片a一观看不卡| 亚洲经典在线中文字幕| 欧美国产日韩在线观看| 国产一区二区三区免费观看| 婷婷综合缴情亚洲五月伊| 国产第二十一页| 国产成a人片在线播放| 亚洲国产综合精品一区| 亚洲一道AV无码午夜福利| 中文字幕无码制服中字| 国产欧美高清| 久久这里只有精品23| 乱人伦中文视频在线观看免费| 欧美一区精品| 久久精品aⅴ无码中文字幕 | 免费国产好深啊好涨好硬视频| 日本成人福利视频| 久久人搡人人玩人妻精品| 久久亚洲国产最新网站| 全免费a级毛片免费看不卡| 欧美精品在线看| 欧美成人怡春院在线激情| 久久亚洲欧美综合| 国产91麻豆免费观看| 婷婷亚洲视频| 成人在线不卡视频| 久久人体视频| 在线国产欧美| 97免费在线观看视频| 成人一级黄色毛片| 亚洲天堂网站在线| 99re精彩视频| 91年精品国产福利线观看久久| 国产三级毛片| 免费一级大毛片a一观看不卡| 午夜精品国产自在| 97久久精品人人| 免费观看精品视频999| 成人免费视频一区二区三区| www.99精品视频在线播放| 91麻豆国产精品91久久久| 2020国产免费久久精品99| 亚洲人成网站日本片| 精品视频91| 国产精品中文免费福利| 亚洲视屏在线观看| 国产乱子伦无码精品小说| 无码免费视频| 国产99欧美精品久久精品久久| 亚洲最大综合网| 亚洲资源站av无码网址| 人妻无码一区二区视频| 无码精品国产VA在线观看DVD | 波多野结衣视频一区二区| 免费国产高清精品一区在线| 亚洲国产日韩欧美在线| 青青久在线视频免费观看| 亚洲视频色图| 不卡无码h在线观看| 色爽网免费视频| 国产永久在线观看| 97超级碰碰碰碰精品| 亚洲第七页| 欧美中文字幕在线播放| 国产成人精品一区二区不卡| 欧洲极品无码一区二区三区| 日韩天堂视频| 中文字幕伦视频| 一本大道香蕉高清久久| 久久狠狠色噜噜狠狠狠狠97视色| 亚洲欧美不卡中文字幕| 一本大道在线一本久道| 91人人妻人人做人人爽男同| 日韩福利视频导航| 色婷婷狠狠干| 欧美中文字幕在线二区| 国产一级在线播放|