基于fpga的串口通信

合集下载

浅谈一种基于FPGA的双冗余422串口通信方法及实现

浅谈一种基于FPGA的双冗余422串口通信方法及实现

浅谈一种基于FPGA的双冗余422串口通信方法及实现作者:孙广海来源:《科学与信息化》2020年第27期摘要对于任何设备而言,无不重视对外交互接口的时效性和正确性。

如何在有限的资源条件下保证通信的实时性和正确性成了通信设计的关注重点。

本文介绍了一种基于FPGA实现双冗余422串口通信方法。

关键词 FPGA;双冗余;实时性;正确性1 技术领域本方法涉及电子对抗领域,尤其是电子对抗中与外部接口通信处理,具体而言涉及一种基于FPGA的双冗余422串口通信方法设计。

本方法提供一种基于FPGA的双冗余RS422通信方法及实现,该方法采用FPGA实现了双路RS422串口通信的冗余备份,同时解决了每路RS422串口通信的主/从应答机制,提高了通信的实时性,同时降低了应用层任务处理资源的消耗[1]。

2 背景技术在现代电子对抗中,无论对于哪种系统设备而言,与外部接口通信都是关键环节。

接收外部命令消息,上报自身设备信息都必须依赖于外部接口,所以外部接口通信尤其要保证稳定、高效。

随着近年来电子技术的发展,雷达体制和信号形式变得越来越复杂而多样,战场空间电磁密度不断提升。

各型设备上报的信息越来越复杂,数据量越来越大,对外部接口设计的实时性要求越来越高。

而由于受限与平台总线形式和外部接口通信协议,通信方法设计难度随之提升,且重要性不言而喻。

下面介绍某型平台上某型设备对外通信方法设计。

该型直升机机上配置的是RS422总线,机上综合任务系统与某型设备系统(以下简称设备系统)通过两路RS422实现通信,两路RS422为双冗余关系。

为实现每路RS422通信的可靠性,定义通信协议为点对点的主/从应答式全双工422通信(传输周期50ms),综合任务系统为主端,设备系统为从端。

主端主动发送通信消息,从端在接收到主端发送的消息时,按照消息块号判断主端发送报文的正确性,正确则发送自身需上报的消息,主端接收到从端发送的消息报文时,根据从端发送的消息块号判断从端发送报文的正确性,正确则发送下一包报文,否则,重新发送当前报文。

FPGA与PC串口通信设计与实现

FPGA与PC串口通信设计与实现

京 航 空航 天 大 学 出版 社 ,0 8 20.
f1 2周润景J 】 C 【) 字系统设计 实例阿 北 FG P J 数 1 京: 电子 工 业 出版 社 。0 1 20, lI 旭 东 ̄ A L B及 其在 F G 中的应 硐【 . 3王 TA PA M1 北京: 国防 工业 出版社 。0 8 20.
协 内■蘸
I J‘ .
m ) 的系统设计中 , y 芯片 程序软件仿 真验证通 过 不会发生误_ 。 麴 将数据存储于 8 I 位的移位寄存器 后 , 要 下载 到 芯 片 需 当中。 存储 8 位数据 以后就完成了一 有效数据 吟 能。可 以使用 P C向 P GA通过 串口发送数据并 的提取 , F 发送端置高等待下次起始位 的到来。 将处理后的数据返 回计算 机分析是否满足设 计 A CI S I码转换模块 : 由于发送端发的是数据 要求 。 完成串口通信可 以选用专用的串行外设接 的 AS I码 , CI 8位数据代表一 0或者 1 3 H代 — 。0 口芯 片如 15 0 N 14 0或者控制单 片机接收 表 0 3 H代表 1 65 ,S65 ,1 ,所以在 T D将数据传送给数 X 图 1 系统 总体 框 图 数据 。而采用模块化设计方法 , 通过硬件描述语 据处理单元 之前先要完成 A C S H码的转换 , 将转 、 单元。RX D的工作流程是 言编程可 以将外部芯片的功能集成到 F G 换 后的 0 1发给下 ~I P A内 囊I I I l l l l _ _ - l 麓 l 部 实现 , 这种 设计方法 可移植性强 , 又能避免不 接收端 一直检测 P C的发送数据是否 为起始位 皇缒 , 因为有 必要 的资源浪费 。本文采 IE 1.软件 开发平 0 一旦检测到就进行有效数据位 的接收, S 01 图 2 异步 串行通信格式 台 ,选 用 Xl x公 司 的 s a a.3 系 列 F G 效数据为 8位 , 以要判断接收的位数 , in i pn r E 一 PA 所 每结束 完 成了与 P C的通信功能。 个 比特计数 加一 ,当计到 8 时判定接收完毕 , 将接收的数据进行 A CI SI 码转换 , 然后传送给数 l系统的总体设 计 系统 的总体设计 思想是 : 发送 数据 , 据处理模块进行处理。 C P 由 由于数据处理部分在不同 本文不再赘述 。 MA 3 X2 2完成 R - 3 S 2 2电平到 1- 电平 的转换 , 系统中完成的工作各不相同 , Il lJ FG P A内部的 R D模块负责转换后 串行数据的 X 22FF . IO模 块 接收 , 数据处理单元 对接收数据进行处理 , 处理 I  ̄( i n itou) FF 1rtI Fr t是 一种先进先出的 es s 完成以后将数据暂存于 F F IO中 ,D T X读取暂存 数据缓存器 , 即读取数据h 僦 读取最早存人的 敬 据按通 信协 议把数 据发 给 MA 2 2反 馈给 数据。本 系统调用的 IE 带的 F O I , X3 S I F P核 保 图 3 R D模块仿真 图 X C 分析数据是否符 合要求 , 而验证整个系统 证 了速度与功耗的最优 , P, 从 并节省 了开发周期。使 设 计 的 合理性 。系 统框 图如 图 I 示 。 所 用 FF IO需要设 置~ 参数 。 些 数据宽度设置为 1 , R D单 元每接 收完 一 X 个数据 即向数据 处 即存储的数据宽度是 1 。 位 数据深度是指存储器 理单元发送—个 a e 电平有效信 号, v 高 告之其 可以存储数据的个数 , 此时的数据是需要处理的 , 数据处理单元接收到 代码 长耋 , 如果要测试 10 0 0个发送数据 的编码 那么编码后产生了 2 0 个数据 , 00 深度 ale ci 有效后采集 dt,这样可以避免数据采集 是否正确, v a a 0 8 留有一定富裕度 。 读写使能信 的错 误。 不同的系统所要完成的数据处理功能也 可以设置为 2 4 , 图 4 FF 存 储 器仿 真模 块 IO 不相同, 本实验中完成 的是对接 收信号进行 2 3 号 由分 别 由 T D和数据 处理单 元给 出。每 次 1 X 当完成 8 位数据的接收 I F 卷积编码功能 。 如果其他系统需要采集 多个数据 F O时钟的上升沿到来时,如果读写使能为高 存 储—个数据到最高位 。 将 . r x 1 转换后 数据处理单元每次处理 时 , 其转换为 0或 1如图 , d为 3 H, 后再处理一次,可以在接收端也添加一个 FF 就进行相应的读写操作。 IO oe , cv 高电平通 i 缓存数据。 个数据后就 向 FF IO发送 一个写使 能信号 , 告 的数据 cd 是 1 同时发送—个 at e 知数据处理单元进行接收并处理 。 2F G P A主要 功 能 模 块设 计 之存 储一个数据 ,X T D的操作类似。 32FF . IO存储器模块 21 B D模块 . X 2 T D模 块 . X 3 如 图4 所示 ,i d n是数据的输入端 , 依次输入 T D模块 负责把 处理后 的放据从 FF X IO中 R XD主要包括分频模块 , 数据采样存储模 个不同数 据, 【朋 为写使能端 , w- 在时钟上升沿 块 , S H码转换模块。为了更好的理解 R D工 读出, AC X 将其传送给 MAX 3 2 2完成电平转换 , 回 8 返 读时钟一直允许置高 , 可以看 出 d . tt _ 渎 给P C分析通过验证 处理 的 的数据是 否符合 前置位 , 作流程 , 下面先介绍一下 符 IO的工 输格式 每发~ 帧数据包 含—位起始位 、 一 8位数 设 计要求 来证 明收发 系统 的合理 性 。T D给 数据端按顺序输出写入 的数据 , 合 FF X 据位 、 一 位奇偶校验位和_位 停止位 。当发送端 FF — I O提供读使能信号 r e , d n 当数据处理单元完 作原理。 _ 4结 沧 这之 处 于空闲状态时, 一直发送高电平。每次开始发 成 一个数的编码后存 赭器中就存入有效值, Fea芯 片越 来越广泛 的应 用于电子设计 l 送新数据前首先发送一位低 电平的起始位 , 这样 后 T D就可以置 r_ ̄为高提 取存储器数据 。 X de 它与 P c的通信完成设计的调试 起蕾 要 检测端检测到低电平 就能判 断有效数据 已开始 存储器中数据是一位的 0或 l ,发送给 P C接收 当中, P A与 P 的串 口通信 系 C 发送 , 准备接收数据。 之后接 收 8 位有效数据, 由 的数据需要符合异步串行通信 的格式 例如发送 作用 。本 艾实现 了 F G 统, 通过软件仿真和下载测试验证了设计的合理 低位到高位存储。根据收发方约定 , 可以采用无 个 0应先发 一位起始位 0 ,再发送 0的 A G SH 性, 系统可移植性 强 , 于其他场合只需改变 内 对 0 0 0, 1 奇偶校验位方式 , 发送数据率为 9 O 6 O波特。 其发 码 0 0 10 最 后 发 送终 止 位 l 部处理单元的功能 即可使用。 送格式如图 2 分频模块 :P 。 F GA系统的主时钟为 3 F GA主要模块的仿真分析 P 参考文献 5 M, 0 而采样频率为 9 9 " h , 6 0 4 z为了提供采样时 3】 R D模 块仿真 - X 1 l Vr g i I 京: I 北 北 钟 可以将主时钟进行 10 分频。 32 分频可由计数 如图3 所示 ,X R D单元 的接收串行信 号为 【夏字 ̄.eh 数字 系统设计教程f

正点原子fpga串口多字节-概述说明以及解释

正点原子fpga串口多字节-概述说明以及解释

正点原子fpga串口多字节-概述说明以及解释1. 引言1.1 概述概述正点原子FPGA(现场可编程门阵列)串口多字节是一种用于串口通信的技术,借助正点原子FPGA芯片的特性,实现了在传输数据时可以同时发送多个字节的功能。

传统的串口通信只能逐个字节地发送和接收数据,效率较低。

而正点原子FPGA串口多字节技术的出现,极大地提高了串口通信的速度与效率。

本文将介绍正点原子FPGA串口多字节技术的基本原理、实现方法以及其在实际应用中的优点和应用场景。

通过深入分析和论述,读者将能够更好地理解正点原子FPGA串口多字节技术的工作原理和优势,为其在实际项目中的应用提供指导和参考。

在接下来的章节中,我们将会详细讨论正点原子FPGA串口多字节技术的具体内容。

首先,在第一个要点中,我们将介绍其基本概念和原理,并阐述其如何在FPGA芯片中实现。

其次,在第二个要点中,我们将深入探讨正点原子FPGA串口多字节技术在实际应用中的优势和应用场景,包括其在数据传输、通信系统和嵌入式系统中的应用。

通过本文的阐述,我们希望读者能够全面了解正点原子FPGA串口多字节技术,并能够在实际项目中运用此技术,提高串口通信的效率和性能。

在结论部分,我们将对正点原子FPGA串口多字节技术进行总结,并展望其在未来的发展前景。

1.2 文章结构文章结构部分的内容:本文共分为三个部分,分别是引言、正文和结论。

引言部分主要对本文进行概述,介绍文章的目的和结构。

第一个要点是正文的第一个部分,将详细介绍正点原子FPGA串口多字节的原理和应用。

我们将从FPGA的基本概念出发,通过对正点原子FPGA的介绍和分析,深入探讨其串口多字节的实现原理和相关技术。

第二个要点是正文的第二个部分,将进一步展开对正点原子FPGA串口多字节的设计和实现进行详细阐述。

我们将从硬件设计和软件编程两个方面入手,介绍如何在FPGA上进行串口多字节的设计和开发,并给出相应的实例和实验结果。

结论部分将对本文的内容进行总结,并展望正点原子FPGA串口多字节在未来的应用前景。

基于FPGA的千兆以太网端口通信的设计

基于FPGA的千兆以太网端口通信的设计

设计思路
设计需求:本次演示旨在设计一个具有十个端口的千兆以太网接口,以满足 高数据传输速率和多任务处理的需求。
设计原理:基于FPGA的十端口千兆以太网接口的设计原理是利用FPGA的并行 处理能力,将十个千兆以太网物理层(PHY)芯片与FPGA集成在一起,实现高速 数据传输。
逻辑实现:通过FPGA编程语言(如VHDL或Verilog)实现逻辑设计,完成十 个端口的千兆以太网接口的配置和管理。
另外,我们还需要定义一个以太网帧的发送模块。该模块包括一个外部存储 器接口、一个封装模块和一个曼彻斯特编码器。当需要发送一个数据帧时,外部 存储器接口会从存储器中读取数据并将其传递给封装模块。封装模块会将数据封 装成一个以太网
帧,然后将其传递给曼彻斯特编码器。曼彻斯特编码器会将数字信号转换为 模拟信号,以便在物理层上进行传输。
结论
基于FPGA的十端口千兆以太网接口的设计与实现具有重要的应用价值和优势。 在硬件设计中,通过选用高性能的PHY芯片和优化信号完整性分析等措施,提高 了数据传输的稳定性和可靠性。在软件设计中,实现了以太网协议栈和TCP/IP协 议,
并添加了异常处理机制。经过严格的测试和验证,设计的接口具有高性能、 高稳定性、高可靠性等特点,适用于各种需要多端口千兆以太网连接的应用场景。
我们将FPGA中的数据通过SGMII接口传输到以太网控制器中,或者将从以太 网控制器中接收到的数据传递给FPGA处理。
五、SPI接口设计
SPI接口用于在FPGA和外部存储器之间进行数据传输。在设计中,我们使用 了一种同步串行通信协议来实现数据传输。该协议使用一根时钟线和多根数据线 来传输数据,具有简单、高速和可靠等优点。我们将需要保存的数据通过SPI接 口存储到一个外部存储

基于FPGA的串口通信设计与实现

基于FPGA的串口通信设计与实现

置和输人数据计算出响应
的奇偶校验位,它是通过
纯组合逻辑来实现的。
2.6总线选择模块
总线选择模块用于
选择奇偶校验器的输入是
数据发送总线还是数据接
收总线。
2.7计数器模块
计数器模块的功能
是记录串行数据发送或者
接收的数日,在计数到某
数值时通知UART内核模
块。 3 UART程序设计 UART完整的工作流程可以分为接收过程
关键词:FPGA:UART:RS232
引言 串行接口的应用非常广泛,为实现串口通 信功能一般使用专用串行接口芯片,但是这种 接口芯片存在体积较大、接口复杂以及成本较 高的缺点,使得硬件设计更加复杂,并且结构与 功能相对固定,无法根据设计的需要对其逻辑 控制进行灵活的修改。介绍了一种采用FPGA 实现串口通信的方法。 1串口通信协议 对一个设备的处理器来说,要接收和发送 串行通信的数据,需要一个器件将串行的数据 转换为并行的数据以便于处理器进行处理,这 种器件就是UART(Universal Asynchronous Re— ceiver/Transmitter)通用异步收发器。作为接iSl的 一部分,UART提供以下功能: 1.1将由计算机内部传送过来的并行数据 转换为输出的串行数据流; 1.2将计算机外部来的串行数据转换为字 节,供计算机内部使用并行数据的器件使用; 1.3在输出的串行数据流中加入奇偶校验 位,并对从外部接收的数据流进行奇偶校验: 1.4在输出数据流中加入启停标记,并从 接收数据流中删除启停标记。 2 UART模块设计 UART主要由UART内核、信号检测器、移 位寄存器、波特率发生器、计数器、总线选择器 和奇偶校验器7个模块组成。(见图1) 2.1 UART内核模块 UART内核模块是整个设计的核心。在数 据接收时,UART内核模块负责控制波特率发 生器和移位寄存器同步的接收并且保存 RS一232接收端口上的串行数据。在数据发送 时,UART内核模块首先产生完整的发送序列, 之后控制移位寄存器将序列加载到移位寄存器 的内部寄存器里,最后再控制波特率发生器驱 动移位寄存器将数据串行输出。 2_2信号检测模块 信号检测器用于对RS一232的输入信号进 行实时检测,一旦发现新的数据则立即通知 UART内核。需要注意的是,这里所说的 RS一232输入输出信号都指经过电平转换后的 逻辑信号,而不是RS一232总线上的电平信号。 2_3移位寄存器模块 移位寄存器的作用是存储输入或者输出 的数据。 2.4波特率发生器模块 由于RS一232传输必定是工作在某种波特 率下,比如9600,为了便于和RS一232总线进行 同步,需要产生符合RS一232传输波特率的时 钟。 2.5奇偶校验器模块 奇偶校验器的功能是根据奇偶校验的设

基于FPGA和W5500的串口数据切换系统研究与设计

基于FPGA和W5500的串口数据切换系统研究与设计

基于FPGA和W5500的串口数据切换系统研究与设计基于FPGA和W5500的串口数据切换系统研究与设计摘要:串口作为一种常见的通信接口,在嵌入式系统中广泛应用。

本文基于FPGA(Field Programmable Gate Array)和W5500芯片,设计了一种串口数据切换系统。

该系统能够实现多个串口的数据交换和切换操作,并具备高速传输和稳定性。

关键词:FPGA,W5500,串口,数据切换1. 引言串口是一种用于在设备之间进行数据传输的通信接口,在各种嵌入式系统中得到广泛应用。

然而,常见的串口接口数量有限,无法满足复杂系统对多串口的需求。

为了解决这一问题,本文提出了一种基于FPGA和W5500芯片的串口数据切换系统。

2. FPGA和W5500芯片简介2.1 FPGAFPGA是一种可编程逻辑器件,可以根据需求进行编程,实现不同的电路功能。

其灵活性和高度可定制性使得FPGA成为嵌入式系统设计的重要工具。

2.2 W5500芯片W5500是一种以太网控制器,其集成了MAC(Media Access Control)和PHY(Physical Layer)功能。

该芯片能够实现高速数据传输,并支持TCP/IP协议栈。

3. 系统设计3.1 硬件设计本系统使用FPGA作为核心控制器,通过FPGA与多个串口通信。

为了实现数据切换,本文引入W5500芯片,利用其高速传输和稳定性,实现串口数据的交换和切换。

具体的硬件设计包括FPGA和W5500的连接,以及串口与W5500的连接。

3.2 软件设计本系统的软件设计主要包括FPGA的逻辑设计和W5500的驱动程序设计。

FPGA的逻辑设计根据具体需求,编写程序实现串口数据的交换和切换。

W5500的驱动程序设计则包括数据的接收和发送等功能。

4. 系统性能测试为了验证本系统的性能,对其进行了多方面的测试。

首先,测试系统能够稳定运行并实现串口数据的交换和切换。

其次,测试系统的数据传输速度和实时性,确保系统能够满足实际应用的需求。

基于FPGA的串口通讯与VGA显示

基于FPGA的串口通讯与VGA显示

功 能 。 此设 计具 有 较 强的 通 用 性 和 推 广 价值 。
关 键 词 :串 口接 收 ; P A;数据 的存 储 ; G 显 示 FG V A 中 图分 类号 : N 8 T 9 文 献标 识 码 : A 文 章 编 号 :1 7 — 2 6 2 1 ) 7 0 4 — 3 6 4 6 3 (0 1 1 — 1 6 0
串 行 通 信 的 数 据 流 是 由 若 干 个 l i 的 数 据 符 号 的 串 1 t bs
联 . 个数据符号包括 1 i 每 t b s的起 始 位 、 i 8bt s的数 据 位 、 i 1bt
i lme tt n .B n l zn h e in, e d sg o l e p ti t h e d l s o e b n o a h e e te e t re mp e na i s y a ay i g t e d sg t e in c u d b u n o t r e mo u e n y o e t c iv , s h e o h h
S ra o e i lc mm u i a i i a d VGA s l y ba e o n c tO l n dip a s d n FPGA
YAO ha — u S n x e .W ANG iqin Da- a g ’
( . oe eo c neo G i o n e i , uyn 50 5 C i ; 1C lg l fS i c u huU i rt G iag5 0 2 , hn e f z v sy a 2 Po l s m d . ep e e’Ar
te et r e mo u e , n n t i b ss o a h e e te t r emo u e o k tg t e o lt ef n t n o es se T i h s h e d ls a d o s a i t c iv h e d l sw r o e rt c mp ee t u ci ft y tm. h s h h h o h o h d sg a t n e s t i n o u a z t n e inh sa s o gv ra i t a dp p lr ai . r ly i o Ke r s u r r c ie;F GA;f o;V y wo d : a t e ev P f i GA i和 微 机 网络 的发 展 , 通信 功能 显

基于FPGA实现CRC校验功能的通用异步串口通信

基于FPGA实现CRC校验功能的通用异步串口通信
b sd o a e n FPGA
T ONG a .o g.S Xio r n HENG h n . io Z o g ba ( o eeo te t sa dIfr t nS i c ,We a ec es iesy We a 10 0 hn ) C l g f l Mahma c n nomai ce e i o n i nT ah r vri , i n74 0 ,C ia n Un t n
Ab t a t U T i u e d l st e i tr c fRS 2 2,t ba n a c r t e a o sr c : AR s s d wie y a h e a e o - 3 n f o o ti c u ae s r lc mmu i ain o i nc t f o dt aa,asmp e a d p a t a c e o i l n r ci l h me frUAR e in a d x aia in w sp t o w r .C ci e u d n y c s T d s n e l t a u r a d y l r d n a c g ; z o f c
Tas t r 一种应 用 广 泛 的于 短距 离 串行 传 输 rnmie)是 t 接 口, 常用 于 短 距 离 、 速 、 成 本 通 信 中 , 于 常 低 低 基
FG P A实现起来简单, 方便_ 。为保证传输 的可靠 1 ] 性, 就需要对通信过程进行差错控制 , R C C循环冗 余校验模块是一种查错能力强 , 高效, 可靠的方法 , 在
论分析一致 ,达到 了 预期设计的 目 标。提高了通信的速度 、可靠性和效率。 关键 词 :F G C C检验 ; 用异 步收 发器 ; 靠性 P A; R 通 可
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的串口通信设计学号:姓名:班级:指导教师:电子与控制工程学院一、串行通信系统1.1概述在计算机系统和微机网络的快速发展领域里串行通信在数据通信及控制系统中得到广泛的应用。

UART 即Universal AsynchronousReceiver Transmitter 通用异步收发器 协议是数据通信及控制系统中广泛使用的一种全双工串行数据传输协议 在实际工业生产中有时并不使用UART的全部功能。

只需将其核心功能集成即可。

波特率发生器、接收器和发送器是UART的三个核心功能模块 利用Verilog-HDL语言对这三个功能模块进行描述并加以整合UART是广泛使用的串行数据传输协议。

UART允许在串行链路上进行全双工的通信。

串行外设用到RS232-C异步串行接口 一般采用专用的集成电路即UART实现。

如8250、8251、NS16450等芯片都是常见的UART器件 这类芯片已经相当复杂有的含有许多辅助的模块 如FIFO有时我们不需要使用完整UART的功能和这些辅助功能。

或者设计上用到了FPGA/CPLD器件那么我们就可以将所需要的UART功能集成到FPGA内部。

使用VHDL或Veriolog -HDL将UART的核心功能集成从而使整个设计更加紧凑、稳定且可靠。

本文应用EDA技术 基于FPGA/CPLD器件设计与实现UART。

通信指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递从广义上指需要信息的双方或多方在不违背各自意愿的情况下无论采用何种方法使用何种媒质 将信息从某方准确安全传送到另方。

通信在不同的环境下有不同的解释在出现电波传递通信后通信(Communication)被单一解释为信息的传递是指由一地向另一地进行信息的传输与交换其目的是传输消息。

然而通信是在人类实践过程中随着社会生产力的发展对传递消息的要求不断提升使得人类文明不断进步。

在各种各样的通信方式中利用“电”来传递消息的通信方法称为电信(Telecommunication) 这种通信具有迅速、准确、可靠等特点且几乎不受时间、地点、空间、距离的限制 因而得到了飞速发展和广泛应用。

1.2串行通信简介计算机与计算机,计算机与外部设备进行数据交换也称为通信,一般有两种方式并行通信和串行通信。

信息的各位数据被同时传送的通信方法是并行通信并行通信依靠I/O接口来实现。

并行通信中数据有多少位就需要多少条信号传输线。

这种通信方式快,但由于传输线较多,所以成本较高,仅适合近距离通信通常传送距离小于30米。

当距离大于30米时则多采用串行通信方式串行通信是指外部设备和计算机间使用一根数据线另外需要地线可能还需要控制线进行数据传输的方式。

数据在一根数据线上一位一位进行传输每一位数据都占据一个固定的时间长度。

与并行通信方式相比有以下优点:1、传输距离长 可达数千公里。

2、长距离内串行数据传送速率会比并行数据传送速率快 串行通信的通信时钟频率比并行通信更容易提高。

3、抗干扰力强 串行通信信号间的相互干扰完全可以忽略。

4、通信成本低。

5、传输线既传输数据 又传输联络信息。

因此串行通信得到广泛的应用。

目前的串行通信常用UART实现数据的串/并转换或并/串转换。

UART(通用异步收发器)是一种串行通信协议,主要用于短距离,低速率,低成本的数据的计算机和外设之间的交流。

是电脑硬件的一部分,具体实物表现为一块并行输入成为串行输出的模块化芯片。

8250、8251、NS16450等芯片都是常见的UART器件。

UART主要功能实现通信中的数据串并转换,且能奇偶检验。

将计算机内部传送过来的并行数据转换为串行数据流加入奇偶校验位后输出。

或者将计算机外部来的串行数据奇偶校验后转换为字节,供计算机内部使用并行数据的器件使用。

它的异步模式使芯片适应性强,对时钟精度要求低(成本低)。

随着FPGA的广泛应用,经常需要FPGA与其他数字系统进行串行通信,专用的UART集成电路如8250,8251等是比较复杂的,因为专用的UART集成电路既要考虑异步的收发功能,又要兼容RS232接口设计,在实际应用中,往往只需要用到UART的基本功能,使用专用芯片会造成资源浪费和成本提高。

如果设计上用到FPGA /CPLD器件,可以将所需要的UART功能集成到FPGA内部,实现FPGA 与其他数字系统的直接通信,从而简化了整个系统电路,提高了可靠性、稳定性和灵活性。

二、 UART理论基础2.1 接口技术简介接口是CPU 与外界的连接部件,是CPU 与外界交换信息的中转站。

一个接口的基本功能是在系统总线和I/O 设备之间传输信号,提供缓冲作用,以满足接口两边的时序要求。

如图1,图1 接口功能主要的计算机接口技术有两种:并行接口和串行接口。

串行通信是把要传输数据中的各个二进制码置于同一条传输线上,从低位到高位、逐位地、顺序地进行传送。

所用传输线少,一个方向只需一条传输线,成本低。

串行通信分为两种类型:同步通信和异步通信。

串行异步是计算机通信最常用的数据信息传输方式,接收和发送双方不使用共同的参考时钟,以字符为单位进行传输,字符之间的传输间隔任意,而每个字符的前后都要用一些位数来作为分隔位。

2.2 UART 基本结构UART 主要由UART 内核、信号检测器、移位寄存器、波特率发生器和计数器组成,如图2所示。

图2 UART 功能模块 CPU 接口电路I/O 设备UART 内核后续数据处理模块信号检测器移位寄存器计数器波特率发生器数据发送缓冲器控制信号握手信号接收数据发送数据控制信号控制信号控制信号控制信号发送数据指示信号波特率时钟接收数据接收数据接收数据发送数据RXD TXD从异步接收输入信号RXD 接收到的异步信号通过接收器完成串行/并行的转换,形成异步数据帧;发送器将CPU 发出的8位数据进行并行/串行转换,从TXD 发送出去。

2.3 UART 数据帧格式基本的UART 通信只需要两条信号线(RXD,TXD )就可以完成数据的相互通信,接收与发送是全双工形式,其中TXD 是UART 发送端,RXD 是UART 接收端。

UART 基本特点是:在信号线上有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。

在发送器空闲时,数据线应保持在逻辑高电平状态。

发送器是通过发送起始比特而开始一个字符传送,起始比特使数据线处于逻辑0状态,提示接收器数据传输即将开始。

数据位一般为8位一个字节的数(也有6位7位的情况),低位(LSB )在前,高位(MSB )在后。

校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。

停止位在最后,用以标志UART 一个字符传送的结束,它对应于逻辑1状态,UART 数据帧格式如图3所示。

图3 UART 数据帧格式一帧异步通信传输经历的步骤为:无传输:发送器处于空闲状态,数据线保持“1”状态。

起始传输:发送器发出一个 “0”表示传输字符开始。

而同时,接收方收到空号后,开始与发送方同步,并期望收到随后的数据。

数据传输:传输8位数据D0-D7。

低位到高位传输。

奇偶传输:在使用中,校验位常常取消。

停止传输:一个字符数据的结束标志。

可以是1位、1.5位、2位的高电平“1”。

三、开发平台1、软件平台 起始位0 DO D1 D2 D3 D4 D5 D6 D7 奇偶位 停止位1一个字符单位数据位空号1空号1软件设计工具采用Quartus II。

Quartus II是Altera公司推出的CPLD/FPGA 集成化开发软件,可以完成设计输入、逻辑综合、布局与布线、仿真、时序分析、硬件配置完整的PLD设计流程。

QuartusⅡ提供了多种设计输入方式、快速的编译和直接易懂的器件编程。

具有友好的用户界面,快速的综合速度和更优化的综合和适配功能。

Quartus II自带宏功能模块库,大大减轻了用户的工作量,加快设计速度。

Quartus II 内置仿真器可以在工程中仿真任何设计。

可进行功能仿真、时序仿真来检验设计的逻辑功能和计算设计的内部定时是否符合设计。

仿真器可以仿真整个设计,或仿真设计的任何部分。

支持可编程系统(SOPC)和大规模FPGA设计开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

该软件支持Altera公司的Stratix Ⅱ、Stratix GX、Stratix、MAX3000A、MAX 7000B、MAX 7000AE、MAX Ⅱ、FLEX6000、FLEX10K系列、Cyclone、Cyclone Ⅱ、APEX Ⅱ、APEX20K和ACEX1K系列。

2、硬件平台FPGA设计方法有“自顶向下”和“自下而上”,一般FPGA设计常选择前者。

所谓“自顶向下”的设计方法,就是把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。

具体步骤为:按照“自顶向下”的设计方法进行系统划分,用硬件描述语言,将设计产品的功能描述出来,将设计输入编译成标准文件;利用综合器对源代码进行综合优化处理得到EDA工业标准文件;把设计好的逻辑安放到PLD/FPGA内(布局布线);用仿真软件验证电路的时序;无误后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA中。

目标芯片为黑金CycloneIV开发板。

四、设计与实现该实验要实现的功能是 CPLD 实时监测 RS232_RX 信号是否有数据,若接收到数据,则把接收到的数据通过 RS232_TX 发回给对方。

上位机用的是串口调试助手。

在代码设计中,发送数据的波特率是可选的,可以是 9600bps,19200bps, 38400bps,57600bps 或 115200bps。

这部分在模块 speed_select 里,用户可以根据需要进行配置。

发送的数据帧格式为:1bit 起始位(保持一个传输位周期的低电平),8bit 数据,无校验位,1bit 停止位。

该设计分为 4 个模块实现如图四所示,4个模块的划分主要是依据数据流的方向。

my_uart_rx模块主要是完成数据的接收,speed_select(speed_rx)模块主要响应my_uart_rx 模块发出的使能信号进行波特率计数,并且回送一个数据采样使能信号。

my_uart_tx 模块在 my_uart_rx 模块接收好一个完整的数据。

图4 整体设计框图4.1数据接收模块接收模块的作用是把收到的串行数据转换成并行数据进行输出,并判断收到的数据是否有错。

接收模块的引脚如图5所示,图5 数据接收模块设计中接收器的工作频率由前面的速度选择器决定,频率是9600bps的16倍,由输入端输入,在接收器工作时,接收端一直以16背得波特率的速率读取线路状态,检测线路上出现低电平的时刻。

相关文档
最新文档