国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于EIM總線傳輸?shù)臄?shù)據(jù)通信接口設計實現(xiàn)

2019-04-28 12:24:23喬霖李永紅岳鳳英
現(xiàn)代電子技術 2019年24期

喬霖 李永紅 岳鳳英

摘 要:以Freescale公司LMX6系列的ARM處理器及Xilinx公司的Kintex_7系列FPGA為核心的硬件平臺,介紹了一種通過EIM總線接口傳輸?shù)腁RM與FPGA之間的數(shù)據(jù)通信設計實現(xiàn)方法。文中簡單概述了EIM總線數(shù)據(jù)通信的功能特點及異步通信的基本原理,基于Linux嵌入式操作設計完成EIM總線接口驅(qū)動代碼開發(fā),通過VHDL硬件語言配置數(shù)據(jù)通信邏輯,結合測試代碼通過EIM接口對FPGA的相關寄存器進行讀寫測試,通過ChipScope設置信號觸發(fā),完成通信數(shù)據(jù)采集與驗證。通過該通信接口的研究設計,實現(xiàn)ARM系統(tǒng)與FPGA之間的高速數(shù)據(jù)互聯(lián)通信,實時性強,傳輸速率高。該技術已成功運用于某型多功能總線數(shù)據(jù)采集板卡設計。

關鍵詞:通信接口;EIM總線;異步通信;通信邏輯;讀寫測試;通信驗證

中圖分類號:TN913-34;TP274

文獻標識碼:A

文章編號:1004-373X( 2019) 24-0092-04

0 引言

隨著高速數(shù)字信號處理技術的發(fā)展,ARM嵌入式設備外設控制要求不斷增加,單一的ARM嵌入式處理設備應用開發(fā)越來越難以滿足日趨復雜產(chǎn)品的應用需求,而伴隨著可編程邏輯器件FPAG的廣泛拓展應用,為ARM嵌入式設備功能擴展研發(fā)提供了一種有效的解決辦法。作為嵌入式技術發(fā)展的重要方向,兩者之間數(shù)據(jù)交互通信,為復雜的高速數(shù)字信號處理業(yè)務提供了完善的硬件解決方案[1-3]。作為該平臺設計方案的核心,如何實現(xiàn)兩者之間的高速通信配置是該方案設計的技術難點。

I.MX6系列多媒體應用處理器是Freescale公司面向解決多媒體和顯示應用的最靈活設計開發(fā)平臺,具有多核可擴展和低功耗、性能和完備的集成度等優(yōu)勢?;贏RM9rM,ARM Cortex-A9等內(nèi)核處理器技術,為快速增長的消費電子、汽車和工業(yè)市場應用提供較好的需求解決方案[4]。EIM總線是Freescale公司I.MX6系列芯片的重要并行數(shù)據(jù)總線接口,主要用于同外設芯片或外部存儲器進行數(shù)據(jù)傳輸,實現(xiàn)異步訪問帶SRAM接口的外設器件或者同步訪問帶NOR FLASH或PSRAM等接口的外設器件[5]。本文采用Freescale公司的I.MX6Q處理器及Xilinx公司的Kintex_7系列FPGA為核心的硬件設計平臺,連接EIM總線接口設計實現(xiàn)ARM Cortex-A9處理器與FPGA之間的高速數(shù)據(jù)通信。該技術方法實現(xiàn)從Linux操作系統(tǒng)應用到FPGA的底層數(shù)據(jù)鏈路通信,可作為相關高速數(shù)字信號采集與處理的平臺設計研發(fā)關鍵性技術參考,有效地降低了相關項目開發(fā)難度,縮短了研發(fā)周期。

1 EIM總線概述

EIM總線是I.MX6Q處理器與外部片外和存儲器設備之間數(shù)據(jù)通信的重要并行總線接口,可為其提供片選、時鐘和讀、寫邏輯控制等功能。作為I.MX6Q與外設芯片之間重要的并行通信總線接口,EIM總線接口通信具有數(shù)據(jù)傳輸實時性強、誤碼率低、外設可擴展等優(yōu)點,它具有以下幾方面技術特點:

1)可同時支持多達4個片選信號,靈活的地址空間配置,每個片選分區(qū)空間可通過VIA端口自由分配;

2)支持自由選擇和定義分區(qū)尋址空間,最高可同時滿足6個尋址空間獨立定義和配置;默認每個獨立片區(qū)支持128 MB尋址空間;

3)每個獨立片選具備可選的寫保護引腳,支持16 bit/32 bit復用地址/數(shù)據(jù)模式;

4)支持X8,X16和X32的數(shù)據(jù)位大小配置,每個片選空間讀/寫通道具有獨立的等待狀態(tài)控制信號;

5)異步訪問模式支持可編程的控制信號保持和建立時序,可編程的自由或固定的讀、寫潛伏期時序配置,支持異步頁面訪問模式;

6)支持同步內(nèi)存突發(fā)讀/寫模式訪問NOR-FLASH和PSRAM等存儲設備;

7)支持大/小端點訪問操作模式,RDY-INT信號設置外部中斷功能和定義外部啟動信號等;

8)通過AXI總線協(xié)議進行數(shù)據(jù)通信,支持直接存儲訪問( Direct Memory Access,DMA)數(shù)據(jù)傳輸技術。

EIM總線通過配置控制寄存器MUM,SRD,SWR等模式控制位,支持異步訪問模式、異步頁面模式、多路復用地址數(shù)據(jù)模式、突發(fā)時鐘模式、低功耗模式及啟動模式等工作模式[6]。這些工作模式下,根據(jù)DSZ位可改變支持8 bit,16 bit或32 bit數(shù)據(jù)位大小。

2 系統(tǒng)設計

數(shù)據(jù)通信接口模塊設計通過EIM接口實現(xiàn)ARM與FPGA之間的數(shù)據(jù)鏈路通信,通信模塊連接結構如圖1所示。Freescale公司I.MX6Q系列處理器芯片支持擴展4個ARM Cortex_A9內(nèi)核,運行頻率最高可達1.2 GHz,支持USB 2.0,IEEE 1588以太網(wǎng),SD/MMC,SPI,MIPl-HIS等豐富的外設擴展端口[7-8]。處理器內(nèi)部特殊的哈佛指令和數(shù)據(jù)分離結構,即實現(xiàn)系統(tǒng)運行性能最優(yōu)化,又充分地利用了系統(tǒng)存儲資源空間。Kintex_7系列FPGA是Xilinx公司性價比最高的新型現(xiàn)場可編程門陣列器件,該系列FPGA芯片串行帶寬達800 Gb/s、478 KB邏輯處理單元、34 Mbit分布塊RAM,高性能選擇1/0技術支持最高1 866 Mb/s的DDR3接口,內(nèi)置DSP模塊25x18乘法器、48位累加器和高性能濾波預加器,峰值性能可達2 845 GMAC/s,高速串行收發(fā)器最高可支持到12.5 Gb/s的數(shù)據(jù)傳輸速率[9]。

3 EIM驅(qū)動開發(fā)

EIM總線驅(qū)動開發(fā)是完成從FPGA數(shù)據(jù)采集與ARM應用層數(shù)據(jù)通信的關鍵,為底層硬件與應用APP之間通信提供標準的Linux驅(qū)動接口[10-11]。EIM總線接口設計配置EIM_CSnGCR1控制寄存器支持如圖2所示的幾種地址/數(shù)據(jù)復用配置模式,本設計采用MUM=1和DSZ=O01復用16 bit地址/數(shù)據(jù)模式,地址線和數(shù)據(jù)線復用EIM_DA[15:0]引腳,節(jié)約引腳數(shù)量,減少對其他外設模塊影響,地址空間范圍為Ox08000000- Ox0800FFFF。由于EIM總線存在端口功能復用,根據(jù)配置要求修改端口MUX模式,修改Linux內(nèi)核board - mx6q_sabreauto.h文件。

EIM總線配置寄存器用于控制通信時序信息、數(shù)據(jù)/地址接口數(shù)據(jù)寬度、片選分區(qū)尋址空間設置等,通用寄存器配置完成EIM總線接口初始化,定義接口數(shù)據(jù)傳輸?shù)目刂菩詤?shù),EIM總線配置通信時序如圖3所示。根據(jù)硬件平臺設計要求CSnGCR1通用控制寄存器配置操作模式,MUM=1開啟地址/數(shù)字總線復用模式,SRD=SWR=1,配置數(shù)據(jù)讀、寫傳輸為異步模式,設置突發(fā)長度BL為4個數(shù)據(jù)字節(jié),設置數(shù)據(jù)為DS2[2:0]=001,DATA[15:0]對應16 bit數(shù)據(jù)位,設置EIM讀和寫配置寄存器CSORCRi和CSOWCRI定義BE,CS,WE,OD及ADV等控制信號建立和保持時鐘時序等信息。

void mx6q_setup_weimcs ( void )

{

unsigned int reg;

void _ iomem *eim_reg = oremap (WEIM_BASE_ADDR,Ox20) ;

void _ iomem *ccm_reg = ioremap (CCM_BASE_ADDR,Ox80) ;

if( !eim_reg) {printk ( "error iomem eim_reg\n" ) ; }

if( !ccm_reg) {printk( "error iomem ccm_reg\n" ) ; }

/* For CCM Serial Clock Multiplexer Register *l

/*CCM_CSCMRI : Divicer for aclk_eim_slow *l

reg = readl(ccm_reg + OxIC) ;

reg&=-(Ox60000000);

reg b Ox00380000;

writel(reg, ccm_reg+ OxlC);

/*For CCM Clock Gating Register 6*/

/*CLKCTL_CCGR6: Set emi_slow_clock to be on in allmodes*/

reg= readl( ccm_reg+ Ox80);

reg I= OxOOOOOCOO;

writel(reg, ccm_reg+ Ox80);

/*For EIM General Configuration registers.*/

writel( Ox07f13089, eim_reg);

writel( Ox00000001, eim_reg+ Ox00000004);

/* For EIM Read Configuration registers. CSORCRI,CSORCR2;e/

writel( Ox18022072, eim_reg+ Ox00000008);

writel( OxOOOOb068, eim_reg+ OxOOOOOOOC);

/* For EIM Write Configuration registers. CSOWCRl,CSOWCR2 */,

writel( Oxd863ffe6, eim_reg+ Ox00000010);

writel( Ox00000000, eim_reg+ Ox00000014):

printk(”WEIM init end. CSOGCRl_is%x\n”, readl( eim_reg));

iounmap( eim_reg);

iounmap( ccm_reg);

在系統(tǒng)內(nèi)核文件board-mx6q_sabreauto.c中,為完成EIM接口與FPGA之間通信,添加數(shù)據(jù)通信各類操作函數(shù),如:imx6_baseboard_init/exit函數(shù)提供EIM總線初始化配置和資源卸載;eim_request_irq配置FPGA數(shù)據(jù)中斷請求;eim_write/read_datl6提供基于CSO尋址空間的讀、寫數(shù)據(jù),地址接口映射等。通過修改imx6q-sabreau-to_gpmi-weim.dts文件中參數(shù),注冊使能weim-nor驅(qū)動程序,完成接口驅(qū)動加載配置[12]。

4 邏輯實現(xiàn)

為保證EIM總線通信數(shù)據(jù)傳輸?shù)恼_性,邏輯讀寫時序參數(shù)需與I.MX6Q驅(qū)動寄存器配置保持一致,邏輯設計采用VHDL硬件語言編寫,采用模塊化編碼思想,充分考慮代碼功能復用。邏輯程序按照功能可劃分為FIFO存儲單元、數(shù)據(jù)采集單元和讀/寫控制邏輯單元。讀操作周期中,數(shù)據(jù)采集單元將數(shù)據(jù)緩存至FIFO存儲器空間,等待EIM接口數(shù)據(jù)傳輸讀操作控制。將待讀寄存器地址寫入EIM地址總線Addr[15:0],通過EIM—LBA信號提示FPGA鎖存地址,對應邏輯預設FIFO存儲器地址,拉低片選CSO信號后,使能FPGA讀設備;拉低OE輸出使能,同時釋放地址線,將對應FIFO存儲器數(shù)據(jù)寫人EIM數(shù)據(jù)總線Data[15:0];經(jīng)過Tr時間拉高OE使能信號,讀取總線數(shù)據(jù),完成EIM總線讀操作周期。除OE,BE讀/寫控制信號外,讀寫操作邏輯程序基本類似,讀/寫邏輯數(shù)據(jù)控制流程如圖4所示。5測試

FPGA根據(jù)驅(qū)動時序編寫測試程序,初始化內(nèi)部寄存器值為Ox0000。通過ARM應用驅(qū)動讀寫函數(shù),對EIM總線數(shù)據(jù)接口模塊進行寄存器讀寫通信測試。寫入FPGA內(nèi)部定義地址寄存器OxOAOO-OxOAOF依次寫入數(shù)據(jù)位OxOOO01-OxOOOF,然后再通過EIM接口,讀對應位寫人數(shù)據(jù),結合FPGA軟件集成環(huán)境ChipScope設置信號LBA下降沿觸發(fā),捕捉數(shù)據(jù)波形,驗證通信數(shù)據(jù)采集正確性。采集測試讀寫操作時序如圖5、圖6所示,根據(jù)測試數(shù)據(jù)分析表明,通過EIM總線數(shù)據(jù)通信接口設計實現(xiàn)基本數(shù)據(jù)傳輸功能,滿足處理器之間數(shù)據(jù)通信功能要求。

6 結論

本文根據(jù)多功能數(shù)據(jù)總線采集與處理應用項目需求,基于Freescale公司I.MX6Q處理器及Xilinx公司Kin-tex_7系列FPGA為核心的硬件平臺,研究實現(xiàn)了一種通過EIM總線接口傳輸?shù)腁RM與FPGA之間的數(shù)據(jù)通信方法。通過系統(tǒng)地分析EIM接口通信特點,重點介紹了EIM接口設計軟件驅(qū)動程序開發(fā)和邏輯控制的具體實現(xiàn),通過系統(tǒng)互聯(lián)通信測試,驗證了接口數(shù)據(jù)通信的正確性,該設計滿足接口數(shù)據(jù)通信需求。結果表明,該技術方法適用于其他類似相關處理器平臺通信設備應用場合,具有一定的設計參考價值。

參考文獻

[1]張高健,楊剛,楊霖,等.基于ARM+FPGA的多路廣播音頻處理系統(tǒng)[J].電聲技術,2015( 12):68-70.

ZHANG Gaojian, YANG Gang, YANG Lin, et al.Multiplexbroadcasting audio processing system based on ARM and FP-GA [J]. Audio engineering, 2015( 12): 68-70.

[2]朱曉鵬,肖鐵軍,趙蕙.ARM+FPGA的實時數(shù)據(jù)采集系統(tǒng)設計[J].計算機T程與設計,2009,30( 13):3088-3090.

ZHU Xiaopeng, XIAO Tiejun. ZHAO Hui. System design ofreal-time data acquisition based on ARM and FPGA [J]. Com-puter engineering and design, 2009, 30( 13): 3088-3090.

[3]常秀清.基于Linux系統(tǒng)的EIM接口數(shù)據(jù)傳輸方法[J].無線電工程, 2016.46(6):18-22.

CHANG Xiuqing.A data transmission method for EIM inter-face based on Linux operation system[J].Radio engineering,2016, 46(6):18-22.

[4] NXP Semiconductor. Embedded solutions based on ARM tech-nology guide [M]. Austin: Freescale. 2014.

[5]陳崇森,基于i.MX6Q+FPGA平臺Android下EIM總線接口設計[J].現(xiàn)代計算機,2016( 13):60-65.

CHEN Chongsen. Design of EIM bus interface based on i.MX6Q+FPGA platform under Android [J]. Modern computer,2016(13):60-65.

[6] NXP Semiconductor. i.MX6Dual/6Quad applications processorreference manual [M]. Austin: Freescale, 2017.

[7] NXP Semiconductor.i. MX6 series of applications processors[M]. Austin: Freescale, 2017.

[8]杜培軍,閆帥,劉錦高.基于i.MX6車載音視頻系統(tǒng)的設計和實現(xiàn)[J].電子設計工程,2015,23( 20):185-188.

DU Peijun, YAN Shuai, LIU Jingao. Design and implementa-tion of vehicle audio and video system hased on i.MX6 [J].Electronic design engineering, 2015. 23(20): 185-188.

[9] Xilinx.7 Series FPGAs data sheet: overview[M]. San Jose:Xilinx. 2017.

[10]宋寶華.Linux設備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社.2010.

SONG Baohua. Embedded Linux device driver development[M]. Beijing: Ports&Telecom Press, 2010.

[11]韓少云,嵌入式Linux驅(qū)動程序?qū)崙?zhàn)開發(fā)[M].北京:北京航空航天大學出版社 , 2012.

HAN Shaoyun. Implementation of embedded Linux devicedriver development [M]. Beijing: Beijing University of Aero-nautics and Astronautics Press. 2012.

[12] NXP Semiconductor. i.MX reference manual [M]. Austin : Fre-escale. 2018.

作者簡介:喬霖(1993-),男,山西臨汾人,碩士,研究方向為動態(tài)測試與智能儀器。

李永紅(1967-),男,山西臨汾人,碩士生導師,教授,研究方向為衛(wèi)星/微慣性組合導航技術、飛行器彈載數(shù)據(jù)記錄儀、

常規(guī)彈藥制導與控制。

岳鳳英(1977-),女,山西忻州人,碩士生導師,副教授,研究方向為導航、制導與控制,檢測技術與自動化裝置。

屯昌县| 松原市| 渝北区| 上蔡县| 景洪市| 福鼎市| 斗六市| 卓尼县| 英德市| 玉门市| 宝山区| 星子县| 南城县| 毕节市| 前郭尔| 东港市| 启东市| 黄山市| 新野县| 安阳市| 濮阳市| 汶川县| 瑞金市| 叶城县| 正安县| 敦化市| 尉犁县| 三台县| 公主岭市| 西青区| 扶沟县| 花莲市| 平舆县| 镇康县| 长子县| 宝山区| 焦作市| 云浮市| 灵山县| 枣阳市| 文成县|