CN114896183A - 一种基于zynq的串口数据发送方法 - Google Patents
一种基于zynq的串口数据发送方法 Download PDFInfo
- Publication number
- CN114896183A CN114896183A CN202210577228.1A CN202210577228A CN114896183A CN 114896183 A CN114896183 A CN 114896183A CN 202210577228 A CN202210577228 A CN 202210577228A CN 114896183 A CN114896183 A CN 114896183A
- Authority
- CN
- China
- Prior art keywords
- data
- serial port
- read
- zynq
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于ZYNQ的串口数据发送方法,上电后,初始化PL端的串口模块;PS端ARM将待发送数据写入存储器DDR3;PS端ARM通过总线AXI lite向PL端AXI DMA核发送读数据指令;PL端AXI DMA核接收到该读数据指令后,通过总线AXIStream的读数据通道读取存储器DDR3中存储的待发送数据,并写入PL端缓存器FIFO中;PL端通过缓存器FIFO的空信号控制FIFO读使能;PL端将缓存器FIFO中的待发送数据通过串口模块的输出端输出,完成串口数据发送。基于本发明,CPU无需耗费大量时间在数据传输上,满足了与外部设备通信数据量大、数据实时性要求高的要求。
Description
技术领域
本发明涉及串口数据发送技术领域,尤其是一种基于ZYNQ的串口数据发送方法。
背景技术
ZYNQ是赛灵思公司推出的新一代全可编程片上系统,全可编程指的是硬件和软件都可以编程。ZYNQ的本质特征是组合了一个双核ARM Cortex-A9处理器和一个传统的现场可编程门阵列FPGA逻辑部件,它将处理器的软件可编程性与FPGA的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。ZYNQ的PS端对应处理系统,即CPU部分,PL端对应可编程逻辑,即FPGA部分。
ZYNQ的PS端串口模块是一个全双工的异步接收/发送器,该串口模块处理数据传输需占用大量CPU时间,同时传输的最大波特率受到限制。因此,基于ZYNQ的串口通信无法满足大批量数据通信的实时性需求。
发明内容
针对基于ZYNQ的串口通信存在的技术问题,本发明提供了一种基于ZYNQ的串口数据发送方法,能够通过PS端串口模块实时发送大批量数据。
一种基于ZYNQ的串口数据发送方法,包括以下步骤:
步骤1,上电后,初始化PL端的串口模块;
步骤2,PS端ARM将待发送数据写入存储器DDR3;
步骤3,PS端ARM通过总线AXI lite向PL端AXI DMA核发送读数据指令;
步骤4,PL端AXI DMA核接收到该读数据指令后,通过总线AXI Stream的读数据通道读取存储器DDR3中存储的待发送数据,并写入PL端缓存器FIFO中;
步骤5,PL端通过缓存器FIFO的空信号控制FIFO读使能;
步骤6,PL端将缓存器FIFO中的待发送数据通过串口模块的输出端输出,完成串口数据发送。
进一步的,所述步骤1中,初始化串口模块的具体操作为:PS端ARM通过总线AXIlite向PL端串口模块写入32位寄存器值,PL端FPGA接收到该32位寄存器值,完成串口模块的初始化;该32位寄存器值配置串口的波特率、校验位、数据位及停止位。
进一步的,所述步骤2中,PS端ARM将待发送数据写入存储器DDR3的串口发送存储区,该串口发送存储区包括用于读写乒乓操作的第一存储区、第二存储区两部分。
进一步的,所述步骤4中,当PL端AXI DMA核完成待发送数据的读取和写入后,向PS端发送读完成/写完成中断请求,PS端接收到PL端AXI DMA核的中断请求,判断第一存储区或第二存储区的数据是否已全部发送至缓存器FIFO中。
本发明有益效果:CPU仅需一次处理,即可将大批量数据通过DMA传输到PL端缓存器FIFO中,PL端控制读FIFO,将数据通过串口模块的输出端输出,完成串口数据发送,使得CPU无需耗费大量时间在数据传输上,满足了与外部设备通信数据量大、数据实时性要求高的要求。
附图说明
图1为基于ZYNQ的串口数据发送方法流程图;
图2为利用ZYNQ进行串口数据发送时的ZYNQ内部信号流转图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
一种基于ZYNQ的串口数据发送方法,如图1所示,包括以下步骤:
1、上电后,初始化PL端的串口模块,具体操作为:PS端ARM通过总线AXI lite向PL端串口模块写入32位寄存器值,PL端FPGA接收到该32位寄存器值,完成串口模块的初始化。
总线AXI lite是轻量级地址映射单次传输总线,PS端ARM通过总线AXI4-Lite向PL端单次传输一个32位寄存器值,进行串口配置;该32位寄存器值对应的串口配置寄存器位设置为:
UART_R[3:0]的第0~3位确定串口波特率,其中,
0000:代表波特率115200;
0001:代表波特率230400;
0010:代表波特率460800;
0011:代表波特率921600;
0100:代表波特率1228800;
UART_R[7:4]的第4~7位确定串口校验位,其中,
0000:代表校验位为无校验;
0001:代表校验位为奇校验;
0010:代表校验位为偶校验;
0011:代表校验位为固定值1;
0100:代表校验位为固定值0;
UART_R[11:8]的第8~11位确定串口数据位,其中,
0000:代表数据位为5;
0001:代表数据位为6;
0010:代表数据位为7;
0011:代表数据位为8;
UART_R[15:12]的第12~15位确定串口停止位,其中,
0000:代表停止位为1;
0001:代表停止位为1.5;
0010:代表停止位为2;
UART_R[31:16]的第16~31位默认取值为0。
例如,若串口配置寄存器设置为0X0000_0301,则代表该串口波特率为230400、无校验、数据位8位、停止位为1位。
2、PS端ARM将待发送数据写入存储器DDR3,存储器DDR3中划分出串口发送存储区,为了实现读写乒乓操作,串口发送存储区进一步划分为第一存储区和第二存储区。
例如,配置串口发送存储区的第一存储区,首地址为0X2300_0000,长度为8M;配置第二个存储区,首地址为0X2380_0000,长度为8M。
读写乒乓操作需结合后续步骤理解,具体含义为:当ARM将待发送数据写入第一存储器时,AXI DMA核可以读取第二存储区;当ARM将待发送数据写入到第二存储器时,AXIDMA核可以读取第一存储区。读写乒乓操作使得读写互不影响,提升了串口数据发送的处理效率。
当ARM将待发送数据存储到首地址0X2300_0000,AXI DMA核通过总线AXI Stream的读数据通道读取首地址0X2380_0000的数据。
当ARM将待发送数据存储到首地址0X2380_0000,AXI DMA核通过总线AXI Stream的读数据通道读取首地址0X2300_0000的数据。
3、PS端ARM通过总线AXI lite向PL端AXI DMA核发送读数据指令,PL端AXI DMA核接收到该读数据指令后,通过总线AXI Stream的读数据通道读取存储器DDR3中存储的待发送数据,并写入PL端缓存器FIFO中。
AXI DMA核工作独立于CPU,读写均是对存储器DDR3的直接操作,仅受PS端ARM的监控与管理。总线AXI Stream是面向高速流数据传输总线,允许无限制地数据突发传输。
FIFO是PL端的FIFO核,该FIFO的数据深度和宽度均可达到1024,支持不同输入输出数据位宽以及不同输入输出时钟,对应图2中的FIFO_TX。图2为利用ZYNQ进行串口数据发送时的ZYNQ内部信号流转图。
4、PL端通过缓存器FIFO的空信号控制FIFO读使能,当AXI DMA核将从存储器DDR3读取的数据写入缓存器FIFO后,FIFO空信号线(empty线)由有效信号(高电平)变成无效信号(低电平),当empty线为无效状态,触发FIFO读使能,并将读取到的数据发送到串口模块的输出端。
5、PL端将缓存器FIFO中的待发送数据通过串口模块的输出端输出,完成串口数据发送。
AXI DMA核使能FIFO数据读通道,读数据位宽设置为64位,数据深度设置为512;AXI DMA核时钟为100MHz。
FIFO_TX数据写深度512,宽度64位,数据写时钟与AXI DMA核时钟一致;FIFO_TX数据读深度4096,宽度8位,数据读时钟是0.1倍串口波特率。
AXI DMA核将从存储器DDR3读取到的待发送数据写入缓存器FIFO中时,由于AXIDMA核的数据读通道位宽为64位、数据深度512,因此FIFO_TX数据写宽度应也设置为64位,数据深度为512。
PL端读取FIFO_TX数据发送到串口模块的输出端,因此,FIFO_TX读数据位宽与串口数据一致,为8位。
以串口配置寄存器设置为0X0000_0301为例,PL端读取缓存器FIFO的数据,每次读取一个8位数据,并将该数据通过串口模块,按照串口波特率230400、无校验、数据位8位、停止位为1位,发送到串口模块的输出端。当完成一个数据输出后,再次读取缓存器FIFO中的一个8位数据,并通过串口模块输出,直至缓存器FIFO为空。8位数据加上起始位和停止位共计10位,因此FIFO数据读时钟设置为0.1串口波特率。
当AXI DMA核数据读完,向PS端发送读完成中断,当AXI DMA核数据写完,向PS端发送写完成中断请求。PS端接收到AXI DMA核的中断请求,PS端ARM进入中断函数,并置标志位DMA_W_FINISH为1。PS端程序通过标志位DMA_W_FINISH判断,存储器DDR3的第一/第二存储区中的数据是否已全部发送到缓存器FIFO中,判断完成后清标志位DMA_W_FINISH为0,以保证数据传输的循环进行。
ZYNQ拥有ARM+FPGA的架构设计,PL端拥有丰富的核,其中包括AXI DMA核,AXI DMA核通过硬件实现存储器与存储器之间直接的高速数据传输。当DMA控制器进行数据传输时,CPU可以执行其它操作,数据传输操作完成后,DMA以中断方式通知CPU即可。因此,CPU仅需一次处理,即可将大批量数据通过DMA传输到PL端缓存器FIFO中,PL端控制读FIFO,将数据通过串口模块的输出端输出,完成串口数据发送,使得CPU无需耗费大量时间在数据传输上,满足了与外部设备通信数据量大、数据实时性要求高的要求。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
Claims (5)
1.一种基于ZYNQ的串口数据发送方法,其特征在于,包括以下步骤:
步骤1,上电后,初始化PL端的串口模块;
步骤2,PS端ARM将待发送数据写入存储器DDR3;
步骤3,PS端ARM通过总线AXI lite向PL端AXIDMA核发送读数据指令;
步骤4,PL端AXIDMA核接收到该读数据指令后,通过总线AXI Stream的读数据通道读取存储器DDR3中存储的待发送数据,并写入PL端缓存器FIFO中;
步骤5,PL端通过缓存器FIFO的空信号控制FIFO读使能;
步骤6,PL端将缓存器FIFO中的待发送数据通过串口模块的输出端输出,完成串口数据发送。
2.根据权利要求1所述的基于ZYNQ的串口数据发送方法,其特征在于,所述步骤1中,初始化串口模块的具体操作为:PS端ARM通过总线AXI lite向PL端串口模块写入32位寄存器值,PL端FPGA接收到该32位寄存器值,完成串口模块的初始化。
3.根据权利要求2所述的基于ZYNQ的串口数据发送方法,其特征在于,该32位寄存器值配置串口的波特率、校验位、数据位及停止位。
4.根据权利要求1所述的基于ZYNQ的串口数据发送方法,其特征在于,所述步骤2中,PS端ARM将待发送数据写入存储器DDR3的串口发送存储区,该串口发送存储区包括用于读写乒乓操作的第一存储区、第二存储区两部分。
5.根据权利要求1所述的基于ZYNQ的串口数据发送方法,其特征在于,所述步骤4中,当PL端AXIDMA核完成待发送数据的读取和写入后,向PS端发送读完成/写完成中断请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577228.1A CN114896183B (zh) | 2022-05-25 | 2022-05-25 | 一种基于zynq的串口数据发送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210577228.1A CN114896183B (zh) | 2022-05-25 | 2022-05-25 | 一种基于zynq的串口数据发送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114896183A true CN114896183A (zh) | 2022-08-12 |
CN114896183B CN114896183B (zh) | 2023-08-08 |
Family
ID=82725785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210577228.1A Active CN114896183B (zh) | 2022-05-25 | 2022-05-25 | 一种基于zynq的串口数据发送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896183B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992543A (zh) * | 2019-04-02 | 2019-07-09 | 山东超越数控电子股份有限公司 | 一种基于zyzq-7000的pci-e数据高效传输方法 |
CN110069442A (zh) * | 2019-04-24 | 2019-07-30 | 北京计算机技术及应用研究所 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
CN110417780A (zh) * | 2019-07-30 | 2019-11-05 | 哈尔滨工业大学 | 定制化数据传输协议的多通道高速数据接口转化模块 |
CN111506249A (zh) * | 2020-04-23 | 2020-08-07 | 珠海华网科技有限责任公司 | 一种基于zynq平台的数据交互系统及方法 |
CN215679358U (zh) * | 2021-05-26 | 2022-01-28 | 南京邮电大学 | 基于zynq芯片的超高速信息采集与存储设备 |
CN114338837A (zh) * | 2021-12-17 | 2022-04-12 | 北京航天动力研究所 | 一种基于zynq的hdlc通讯转换控制器 |
-
2022
- 2022-05-25 CN CN202210577228.1A patent/CN114896183B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992543A (zh) * | 2019-04-02 | 2019-07-09 | 山东超越数控电子股份有限公司 | 一种基于zyzq-7000的pci-e数据高效传输方法 |
CN110069442A (zh) * | 2019-04-24 | 2019-07-30 | 北京计算机技术及应用研究所 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
CN110417780A (zh) * | 2019-07-30 | 2019-11-05 | 哈尔滨工业大学 | 定制化数据传输协议的多通道高速数据接口转化模块 |
CN111506249A (zh) * | 2020-04-23 | 2020-08-07 | 珠海华网科技有限责任公司 | 一种基于zynq平台的数据交互系统及方法 |
CN215679358U (zh) * | 2021-05-26 | 2022-01-28 | 南京邮电大学 | 基于zynq芯片的超高速信息采集与存储设备 |
CN114338837A (zh) * | 2021-12-17 | 2022-04-12 | 北京航天动力研究所 | 一种基于zynq的hdlc通讯转换控制器 |
Non-Patent Citations (2)
Title |
---|
YIDI ZHU ETC.: ""A Real-time Communication and Processing System for Radar Testing Based on ZYNQ"", 《2018 EIGHTH INTERNATIONAL CONFERENCE ON INSTRUMENTATION AND MEASUREMENT, COMPUTER, COMMUNICATION AND CONTROL》, pages 1 - 4 * |
吴亚军: ""基于FPGA 的PCIe 转光纤数据注入式仿真装置"", 《指挥控制与仿真》, vol. 42, no. 6, pages 1 * |
Also Published As
Publication number | Publication date |
---|---|
CN114896183B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7363396B2 (en) | Supercharge message exchanger | |
CN109471824B (zh) | 基于axi总线的数据传输系统及方法 | |
US7251188B2 (en) | Memory access interface for a micro-controller system with address/data multiplexing bus | |
US20050060479A1 (en) | High speed and flexible control for bridge controllers | |
CN114490460B (zh) | 一种用于asic的flash控制器及其控制方法 | |
CN109189716A (zh) | 一种基于fpga的数据传输系统及传输方法 | |
CN109902042B (zh) | 一种实现dsp与zynq之间高速数据传输的方法及系统 | |
EP2207101A1 (en) | Method and device for parallel interfacing | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
KR100919159B1 (ko) | 멀티미디어 카드 인터페이스 방법, 컴퓨터 프로그램 생성물및 장치 | |
CN109840233B (zh) | 基于fpga的60x总线桥接系统、方法及介质 | |
US5898889A (en) | Qualified burst cache for transfer of data between disparate clock domains | |
KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
CN109522251A (zh) | 一种基于PXIe总线的高速同步串口卡及其工作方法 | |
CN113760792A (zh) | 基于fpga的图像存取的axi4总线控制电路及其数据传输方法 | |
US6473818B1 (en) | Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values | |
US6370607B1 (en) | Automatic disabling of interrupts upon entry into interrupt service routine | |
CN110008162B (zh) | 一种缓冲接口电路及基于该电路传输数据的方法和应用 | |
CN114896183A (zh) | 一种基于zynq的串口数据发送方法 | |
US6766383B1 (en) | Packet-based direct memory access | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
CN115934614A (zh) | 基于apb总线带有fifo缓存功能的uart通讯接口 | |
US20070131767A1 (en) | System and method for media card communication | |
US11789884B2 (en) | Bus system and method for operating a bus system | |
US7577560B2 (en) | Microcomputer logic development device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |