亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        摘? 要:針對傳統(tǒng)平臺(tái)傳輸信號(hào)慢、開發(fā)過程復(fù)雜的特點(diǎn),對信號(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)無法適應(yīng)多頻段、多模式的信號(hào)處理。軟件無線電技術(shù)的出現(xiàn)使對信號(hào)的靈活處理成為現(xiàn)實(shí),軟件無線電技術(shù)是一種基于軟件定義的無線電廣播通信技術(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)行安裝,安裝過程靈活,能夠更充分的利用硬件資源。

        該設(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)用程序,并通過控制程序?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通過AXI總線與ARM板處理器進(jìn)行數(shù)據(jù)通信,采用AXI-DMA方式對收集到的數(shù)字信號(hào)傳輸給內(nèi)存,處理器再將內(nèi)存中的數(shù)據(jù)讀取并顯示出來。

        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),允許無限制的數(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ù)有效指示,為高代表對應(yīng)的字節(jié)為有效字節(jié),否則表示發(fā)送的為空字節(jié)。(6)TLAST為主機(jī)最后一個(gè)字指示,下一clk數(shù)據(jù)將無效,TVALID將變低。

        AXI-Stream只能在PL中實(shí)現(xiàn),不能直接和PS相連,必須通過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)存訪問通道。該IP核在PL中使用,在PL中添加AXI DMA IP core,并利用AXI_HP接口完成高速的數(shù)據(jù)傳輸,當(dāng)PL的外設(shè)和存儲(chǔ)器之間需要高速傳輸時(shí),就可以選擇AXI DMA這種簡單DMA模式。在簡單DMA模式下,通過配置相應(yīng)的DMA控制寄存器進(jìn)行數(shù)據(jù)傳輸,如果數(shù)據(jù)傳輸完成,DMA控制器發(fā)出中斷信號(hào)。這種簡單的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é)通過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)換來的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)配置和針對特定應(yīng)用的PL開發(fā),經(jīng)過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作為Linux內(nèi)核的Bootloader程序,初始化CPU及外設(shè),拷貝Linux內(nèi)核映像到RAM中,再通過設(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)只有通過這個(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”);//申請DMA通道。

        axi_adc_dev[dev_index]->adc_virtaddr = of_iomap(node, 0);通過設(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);//對 IP核的寄存器基址向后偏移4的位置寫入了需要采集的ADC數(shù)據(jù)個(gè)數(shù)。

        writel(1,axi_adc_dev[minor]->adc_virtaddr);//對寄存器基地址寫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)來講,傳輸效率更高,占用資源更少。移植過Linux操作系統(tǒng)的arm嵌入式開發(fā)板更為后續(xù)的相關(guān)應(yīng)用開發(fā)提供了可能,對硬件的操作方式也更加的方便和靈活??蓮V泛應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)采集功能的掌上設(shè)備及其他嵌入式的系統(tǒng),如醫(yī)療儀器、通信設(shè)備等領(lǐng)域。

        參考文獻(xiàn):

        [1] 趙莉,李司.基于ZYNQ和AD9361的軟件無線電平臺(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)測及數(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.

        作者簡介:孫國萃(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簡單控制設(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è)備采購中節(jié)省成本
        原來他們都是可穿戴設(shè)備
        亚洲香蕉毛片久久网站老妇人| 中国女人内谢69xxxx免费视频| 国产欧美亚洲精品a| 亚洲AV无码未成人网站久久精品| 91青青草视频在线播放| 亚洲天堂成人av影院| 开心五月激情五月天天五月五月天| 白嫩丰满少妇av一区二区| 色吊丝中文字幕| 亚洲国产一区二区三区网| 亚洲精品在线观看一区二区 | 精品亚洲成a人片在线观看| 欧美日韩国产成人高清视| 美女扒开内裤露黑毛无遮挡| 久久本道久久综合一人| 青青青爽在线视频免费播放| 色老板美国在线观看| 亚洲av无码一区二区三区四区| 99精品欧美一区二区三区美图| 少妇深夜吞精一区二区| 免费人成小说在线观看网站| 最新国产乱人伦偷精品免费网站| 成年男人裸j照无遮挡无码| 亚洲精品一区二区三区在线观| 777精品出轨人妻国产| 美女扒开内裤让男生桶| 亚洲啊啊啊一区二区三区| av日韩高清一区二区| 日本免费a级毛一片| 久久精品国产自清天天线| 人妻系列无码专区久久五月天| 国产av丝袜熟女丰满一区二区| 亚洲国产成人av在线观看| 一区二区国产在线观看| 偷柏自拍亚洲综合在线| 日日碰日日摸日日澡视频播放| 国内精品伊人久久久久影院对白| 中文字幕久久精品波多野结百度| 美女与黑人巨大进入免费观看 | 欧美日韩亚洲成人| 久久深夜中文字幕高清中文|