基于FPGA的汉明码扩频串行通信的实现
- 格式:pdf
- 大小:1.00 MB
- 文档页数:3


2017年11月
基于FPGA的串口通信设计与实现
王闽,张静(南京熊猫汉达科技有限公司,210014)
【摘要】此次研究重点分析FPGA的串口通信设计和实现的过程,在分析相关问题的过程中,充分的了解FPGA实现RS232串行数据通信的
具体方案,明确这种方案的实行对UART模块化设计的影响,从根本上避免UART芯片的复杂性,同时克服移植性较差产生的弊端。
【关键词】FPGA;UART;通信设计;实现方案
【中图分类号】TN791【文献标识码】A【文章编号】1006-4222(2017)22-0052-01
因为串行接口的应用相对宽泛袁所以为了更好的体现出
相应的通信功能袁多是采用专用的串行接口芯片袁这样的目的
就是为实现相关的功能提供保障袁但是此类接口芯片还是存
有较多的问题袁如体积较大尧接口复杂尧成本较高等袁导致某些
硬件在具体设计的过程中更加复杂袁因此结构及功能已经保
持固定袁难以依照实际的需要展开设计袁更无法实现对其逻辑
控制的灵活修改遥1串口通信协议的基本概述
设备处理器主要是对串行通信的数据进行接收并发送袁
整个过程离不开主要的器件袁这种器件必须要完成对串行数
据的转换袁同时还应该对并行的数据展开处理袁UART通用异
步收发器的使用是关键遥UART可以及时的将计算机内部的
并行数据转换为需要输出的串行数据流袁同时也可以将计算
机外部收集的相关串行数据信息转换为具体的字节袁保证计
算机内部更好的运用相关信息袁也可满足并行数据器件的使
用需求[1]遥2UART模块设计
2.1内核模块
UART内核模块属于串口通信设计的核心内容袁面对数
据接收的过程袁应该重视内核模块发挥出的实用价值袁其主要
是负责着波特率发生器的控制过程袁同时也关系到移位寄存
器同步的接收功能袁对于相关串行数据的保存有着非常重要
的作用[2]遥在对相关的数据信息进行发送的时候袁内核模块还
是应该明确相对完整的发送序列袁确保控制移位寄存器能够
更好的完成加载任务袁控制好波特率发生器的驱动过程袁让其
《基于FPGA的串口通信电路设计与实现》
摘要:信息时代的到来,给计算机等终端带来了挑战,文章以串口通信电路为研究对象,以FPGA的应用为切入点,对电路设计要点进行了归纳,例如,协议设计、串口发送等,希望能够给人以积极影响,使FPGA所拥有效能,在该领域得到应有发挥。
关键词:串口通信;FPGA;电路设计
前言:首先应当明确一点,连接计算机和相关设备的通信电路,通常为串口通信电路,这是因为该电路拥有良好的可靠性,近几年,不断发展的科技,使人们对通信电路提出了更加严格的要求,通过优化电路的方式,对系统速度进行提高,成为大势所趋,这也是FPGA被用于电路设计的背景,本文所研究课题的价值不言而喻。
1协议设计
通信协议指的是发生在通信双方间的约定,所约定内容主要有字符定义、数据格式及传输速度,需要通信双方严格遵守。现有通信协议均为分层结构,高层协议被用来对校验方式、数据包格式进行定义,底层协议所强调重点为UART。
1.1高层协议
FPGA向上位机所发送数据,即为上行数据,反之,上位机向FPGA所发送数据,通常被称为下行数据。上行数据包拥有固定的数据长度,下行数据包往往以参数地址为研究重点,这是因为一旦有断电情况出现,无法保存的FPGA数据极易出现丢失情况,只有在EEPROM对数据进行保存,才能避免数据丢失,导致更加严重的后果出现[1]。
1.2底层协议
研究表明,UART能否发挥作用,通常取决于起始位、停止位与波特率的设置。目前,社会各界所认可的参数设置为:起始位对应低电平;停止位对应高电平;数据位为8bit,且不存在校验位。而该协议的功能,可被概括如下:对数据进行发送时,用串行数据流对电路所传递并行数据进行代替,在加设停止位、起始位的基础上,以通信协议所确定波特率为依据,完成发送数据流的操作。若要对数据进行接收,则应第一时间将停止位、起始位去掉,用字节对数据流进行代替,并向电路进行传递。
第 1 页 Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的简洁性可以介于简洁的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。
Verilog HDL语言具有下述描述力气:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生气制。全部这些都使用同一种建模语言。此外,Verilog HDL语言供应了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的详细把握和运行。
Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清楚的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog HDL供应了扩展的建模力气,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集特殊易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最简洁的芯片到完整的电子系统进行描述。
Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog HDL作为一种便于使用且有用的语言慢慢为众多设计者所接受。在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog进展的国际性组织。1992年,OVI准备致力于推广Verilog OVI标准成为IEEE标准。这一努力最终获得成功,Verilog 语言于1995年成为IEEE标准,称为IEEE Std 1364-1995。完整的标准在Verilog硬件描述语言参考手册中有详细描述[1]。下面列出的是Verilog HDL硬件描述语言的主要力气:
(8,4)扩展汉明译码器的设计与实现
引言:纠错码是一门新的擦错操纵技术,目前已普遍应用于各类通信系统和运算机系统中。提高信息传输的有效性和靠得住性,始终是通信工作所追求的目标。纠错码是提高信息传输靠得住性的一种重要手腕。
这次课程设计所设计的是(8,4)扩展汉明译码器。依照纠错码的相关知识(8,4)扩展汉明码是由(7,4)汉明码加一名全校验位取得的。它的码字(c7,c6,c5,c4,c3,c2,c1,c0)中的前七位码元(c7,c6,c5,c4,c3,c2,c1)是汉明码的一个码字,c0是全校验位。扩展汉明码的码长是8 的整数倍,专门适用于运算机或微机组成的数据处置或数据传输系统。
扩展汉明吗能纠正一个错误同时发觉两个错误,尽管它不是循环码,但它编译电路的要紧部份与循环汉明码的译码器相同。
本次实验利用Quartus II软件和相应的FPGA开发板完成。
一、实验目的
1.学会熟练利用Quartus II软件,通过软件的利用,进一步了解数电元器件的功能,和VHDL程序的编译,和小模块电路和程序的封装。
2.通过对(8,4)汉明译码器的设计,简单了解纠错码译码的大体实现原理。
3.进一步了解FPGA的利用,为以后的FPGA的开发打好基础。
二、(8,4)汉明译码的原理及其框图,结果图
第一将已做好的(8,4)汉明码编码器封装
(8,4)汉明码编码器
封装以后
突发噪声产生模块
突发噪声+汉明编码
输入的M序列
输入的汉明编码
噪声
加噪的汉明编码
汉明码译码模块
汉明译码
将接收到的汉明串码转换成并行码,以后进行译码。
汉明译码器的模块图 将并行码转换成串行码:
module ym_ipo11(pi_hm,clk,cb_out);
input clk;
input pi_hm;
output [7:0] cb_out;
reg [7:0] cb_out;
reg [7:0] temp;