电子信息工程专业毕业论文模板 1Word格式.docx

上传人:b****6 文档编号:16975632 上传时间:2022-11-27 格式:DOCX 页数:20 大小:194.74KB
下载 相关 举报
电子信息工程专业毕业论文模板 1Word格式.docx_第1页
第1页 / 共20页
电子信息工程专业毕业论文模板 1Word格式.docx_第2页
第2页 / 共20页
电子信息工程专业毕业论文模板 1Word格式.docx_第3页
第3页 / 共20页
电子信息工程专业毕业论文模板 1Word格式.docx_第4页
第4页 / 共20页
电子信息工程专业毕业论文模板 1Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

电子信息工程专业毕业论文模板 1Word格式.docx

《电子信息工程专业毕业论文模板 1Word格式.docx》由会员分享,可在线阅读,更多相关《电子信息工程专业毕业论文模板 1Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

电子信息工程专业毕业论文模板 1Word格式.docx

关键词循环冗余校验;

信道编码;

Verilog语言

空一行

DesignofCRC 

encoderbasedonFPGA

ZHAOPeng

TimesNewRomans,小四,姓所有字母大写,名连在一起首字母大写,居中

(DepartmentofElectronicandInformationEngineering,AnkangUniversity,Ankang,725000)

TimesNewRomans,五号,居中

AbstractIndatacommunicationinordertoreducetheerrorrateofcommunication,needtoadopthighefficienterrorcontrolmethod,cyclicredundancycheckCRC(CyclicRedundancyCheck),becausethecodeissimpleandeffective,anti-jammingperformance,iswidelyappliedinthefieldsofcommunicationandcontrol.Channelcodingisakindofthemostcommonlyusedmethod.

IntroducestheprincipleofCRCalgorithm.Takingasanexample,andtheAlteraEDAdevelopmenttoolQuartusIIasacompiler,simulationplatform,throughtheVeriloglanguagetoachievetheCRCcodesimulation.

TimesNewRomans,小四,首行缩进2字符

Abstract和KeyWords四号加粗,左齐

KeyWordsMonitoringsystem;

Smarthouse;

Embedded;

Boaserver

三号黑体居中加粗

章标题宋体小四加粗,节标题宋体五号不加粗

第一章绪论

1.1引言

CRC是一种非常适于检错的信道编码。

由于其检错能力强,它对随机错误和突发错误都能以较低冗余度进行严格检验,且编码和译码检错电路的实现都相当简单,故在数据通信和移动通信中都得到了广泛的应用。

在数字信号传输过程中,由于受到干扰的影响,码元波形将变坏,接收端有可能产生误码。

而误码率是衡量数字通信系统的一个重要指标,它关系到通信系统的通信质量。

因此,如何降低误码率是通信系统设计所必须考虑的问题。

通信过程中产生的误码原因主要是由于传输过程中信道的变化及噪声加入的结果。

因此可以在信号传输前进行信道编码,增加信号的冗余度。

在接收端进行纠错检错减少噪声的影响,从而尽可能的恢复原始信号,达到减少误码的目的。

循环冗余校验码(CRC)就是具有这种强检错功能的技术,由于它的高效率、高性能,实现起来相对简单,因此研究CRC码的实现具有实际意义。

1.2课题研究背景

由于CRC校验电路实现简单,检错能力强,被广泛应用在各种数据校验中。

为了解决CRC应用中的延时问题,而提出的无延时CRC算法可以应用于不同长度的CRC码计算,实现了数据信息与CRC校验码的无缝连接。

随着网络数据业务的快速发展,人们急迫地想改善现有的传输技术条件,其中循环冗余校验码(CRC)作为一种有效的措施而倍受欢迎,应用广泛。

CRC编码是通过增加校验元使得信息的内部结构具有更强的规律性和相互关系性,从而提高码字的抗干扰能力。

校验元的作用是监督该码字在传输过程中是否发生了错误,并指出是哪位或是那些码元发生了错误。

明显地,随机错误发生频繁的网络会忙于重发相同的信息,CRC码应用于此种网络,会大大地减少信道上的传输压力,从整体上降低网络瘫痪的可能性。

目前比较成熟的CRC编码实现方法有串行电路法和查表法。

前者简单但是编码效率极其低,如果发送的数据较长或系统对时间要求高,这种方法不太适合;

查表法配合汇编或者C语言一起使用很有效率,但是要求待编码的信息比较短,否则很多电路都无法提供足够的存储单元来放置庞大的软件表。

并且,这两种方法都不能突出当前行业内主流技术的显著优点。

目前,循环冗余校验(CRC)算法广泛应用于通信领域以提高数据传输的可靠性。

针对通信过程中常用的CRC校验,并在此基础上提出了基于FPGA的CRC并行处理算法。

采用Verilog语言对算法完成建模与实现,并以Altera公司开发的EDA工具QuartusII作为编译、仿真平台进行了仿真验证。

电路的综合结果表明,该方法具有更少的资源占用量和更高的工作效率。

1.2.1CRC的研究现状

CRC基本原理简单,实现硬件电路简单,且效果较好,目前得到广泛的运用,目前国内外主要对以下表一五种CRC做了更深的研究,也是常见的标准CRC。

名称

生成多项式

简记式

应用举例

CRC-4

CRC-12

CRC-16

CRC-CCITT

CRC-32

CRC-32c

1.2研究目的及意义

在数字农业中,计算机在数据通信中的应用越来越广泛。

但由于农作物生长环境、数据传输距离等诸多因素的影响,计算机与采集设备之间的通讯数据往往会发生无法预测的错误。

传输数据的检错方法一般包括奇偶码、汉明码和循环码,其中循环码的检错效果最好。

而循环冗余校验CRC码编码比较简单且容易实现,其在数据传输、信系统的设计、通信协议的分析及软件保护等方面常被用于实现差错控制。

在数字通信系统中可靠与快速往往是一对矛盾。

若要求快速,则必然使得每个数据码元所占地时间缩短、波形变窄、能量减少,从而在受到干扰后产生错误地可能性增加,传送信息地可靠性下降。

若是要求可靠,则使得传送消息地速率变慢。

因此,如何合理地解决可靠性也速度这一对矛盾,是正确设计一个通信系统地关键问题之一。

数据在传输过程中,由于通道传输特性不理想,并且受到噪声或干扰的影响,传输到接收端后可能发生错误判决,并且有时由于受到突发的脉冲干扰,错码会成串出现,因此为了降低通信中的误码率,提高数字通信的可靠性,通常采用信道编码来检错和纠错。

总之,CRC编码更有效地降低信号传送过程中的误码率,提高通信系统信号质量,并且有效率高,性能好,简单等优点。

第二章crc的编码原理及算法

2.1crc编码原理

CRC采用多项式编码方法,被处理的数据块可以看作一个n阶二进制多项式,由

来表示,例如:

一个8位二进制数10100101对应

多项式乘除法运算过程与普通代数多项式的乘除法相同;

多项式的加减法运算以2为模,加减时不进、错位,与逻辑异或运算一致,即以2为模的加法和减法是等价的。

CRC校验的基本思想是:

利用线性编码理论,在发送方根据要传送的

位二进制序列,以一定的规则产生

位校验用的监督码。

即CRC码,并附在信息后边,构成一个新的二进制代码序列共

最后发送出去,CRC码格式如图1.1

图1.1CRC码格式

2.2crc编码算法

采用CRC校验时,发送方和接收方使用同一个生成多项式

(生成多项式是标准化的,可以根据具体需要自行选择)将最后的余数作为CRC校验码,其实现步骤如下:

(1)设待发送的数据块是

位的二进制多项式

,生成多项式为

阶的

在数据块的末尾添加

个0,数据块的长度增加到

位,对应的二进制多项式为

(2)用生成多项式

去除

,求得余数为

阶的二进制多项式

,此二进制多项式

就是

经过生成多项式

的CRC校验码多项式。

(3)用

以模2的方式加上

,则对应的二进制序列就是包含了CRC校验码的待发送字符串。

用表达式表示:

其中

是商多项式,

是余数的多项式,则有

即是所要发送的CRC码。

(4)接收方校验时,以计算的校正结果是否为0为原则,判断资料是否出错,从CRC的编码规则可以看出CRC编码实际上是将待发送的位二进制多项式

转换成了可以被

除尽的

位二进制多项式。

第三章设计方案

3.1采用标准

根据CRC应用环境与习惯的不同,CRC又可分为以下几种标准:

1、CRC-12码;

2、CRC-16码;

3、CRC-CCITT码;

4、CRC-32码;

它们都是较为常用的CRC码,生成多项式分别为:

CRC-CCITT:

CRC-16:

CRC-12:

CRC-3:

标准的CRC码是CRC-CCITT和CRC-16,其中CRC-CCITT的应用最广泛,在蓝牙、X25和PPP协议中等都有应用。

故本实验使用CRC-CCITT标准进行仿真,其生成多项式为:

3.2用FPGA实现CRC编码

设待发送

为8位的二进制数据10110110;

生成的多项式为

对应序列为10001000000100001,输入的8bit序列data左移16位后得到stemp={data,16‘b0000000000000000},每次异步复位信号rst_n复位时将crc的值清零并把线性变量stemp的值打入寄存器temp中,然后对应的序列与生成多项式对应序列进行多次按位异或,最终得到一个小于生成序列的temp后,temp[15:

0]的值即CRC校验序列,并把它赋给输出crc。

3.2.1Verilog实现CRC编码的流程描述

CRC编码的关键技术之一在于如何从k位信息中简便地得到r位校验码。

其实际上是一个循环移位的模2运算,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值去掉最高位就是我们所需要的余数。

图1.2所示为实现CRC-CCITT编码的流程图。

图1.2CRC-CCITT编码流程图

第四章软件平台

4.1开发工具

4.1.1QuarusII及开发语言

QuartusII是Altera公司的综合性开发软件,支持原理图、VHDL、Verilog以及AHDL(AlteraHardwareDescriptionLanguage)等多种语言及设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

4.1.2QuarusII的仿真

仿真分为功能仿真和时序仿真。

通常,功能仿真用于验证电路的功能是否正确。

本次设计主要是在QuarusII软件中进行功能仿真验证。

仿真的一般步骤如下:

◆新建波形编辑;

◆设置仿真时间区域;

◆保存文件;

◆导入欲观察的信号节点;

◆编辑激励信号;

◆设置数据格式;

◆启动仿真和观察仿真结果。

4.2FPGA原理介绍

FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。

这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。

在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

FPGA的基本特点主要有:

1、采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

2、FPGA可做其它全定制或半定制ASIC电路的中试样片。

3、FPGA内部有丰富的触发器和I/O引脚。

4、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。

用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。

掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。

FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。

当需要修改FPGA功能时,只需换一片EPROM即可。

这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。

因此,FPGA的使用非常灵活。

FPGA提供了一种“自顶向下"

的全新的设计方法。

这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,在图表级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统级进行验证。

然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。

由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利予早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。

4.3QuarusII下的FPGA设计

QuartusII为硬件电路的设计提供了很大的方便。

FPGA之所以能够广泛应用于电路设计中,就是因为它们有使用相当方便的开发软件工具包,通过编程工具和软件的配合使用,对器件芯片可以进行流畅的开发、校验。

FPGA特别适用于正向设计,即从电路原理图或各种硬件描述语言到芯片成品的设计,在这些设计流程中,设计人员对特别底层的硬件知识并不需要特别的了解和掌握,完全可以从功能应用出发,根据任务需求,自顶向下地进行电路设计。

第五章仿真实验和分析

5.1CRC编码器程序代码

本次设计的CRC编码器,利用QuarusII软平台,根据CRC编码原理,采用Verilog语言,具体程序代码如下:

程序代码:

modulecrc(clk,data,rst_n,crc1);

input[7:

0]data;

inputclk;

inputrst_n;

outputreg[15:

0]crc1;

wire[23:

0]stemp;

reg[23:

0]temp;

parameterpolynomial=17'

b1_0001_0000_0010_0001;

assignstemp={data,16'

b0000000000000000};

always@(posedgeclkornegedgerst_n)

begin

if(!

rst_n)

begin

crc1<

=0;

temp<

=stemp;

end

else

if(temp[23])temp[23:

7]<

=temp[23:

7]^polynomial;

elseif(temp[22])temp[22:

6]<

=temp[22:

6]^polynomial;

elseif(temp[21])temp[21:

5]<

=temp[21:

5]^polynomial;

elseif(temp[20])temp[20:

4]<

=temp[20:

4]^polynomial;

elseif(temp[19])temp[19:

3]<

=temp[19:

3]^polynomial;

elseif(temp[18])temp[18:

2]<

=temp[18:

2]^polynomial;

elseif(temp[17])temp[17:

1]<

=temp[17:

1]^polynomial;

elseif(temp[16])temp[16:

0]<

=temp[16:

0]^polynomial;

elsecrc1<

=temp[15:

0];

end

endmodule

测试代码:

`timescale1ns/1ps

moduletestbench;

//Inputs

regclk;

reg[7:

regrst_n;

//Outputs

wire[15:

0]crc1;

//InstantiatetheUnitUnderTest(UUT)

initialbegin

//InitializeInputs

clk=0;

data=0;

rst_n=0;

#100

data=8'

b10110110;

rst_n=1;

//Wait100nsforglobalresettofinish

#50;

rst_n=0;

#50

rst_n=1;

#1000

b01001100;

#1000

b10110011;

b10010110;

b10100101;

//Addstimulushere

end

always#10clk=~clk;

crccrc(

.clk(clk),

.data(data),

.rst_n(rst_n),

.crc1(crc1)

);

endmodule

方案一:

采用MCS-51单片机作为主控单元。

QuartusII

方案二:

采用凌阳16位单片机作为主控单元。

方案三:

采用凌阳的S3C2440作为指控单元。

方案论证:

方案一采用MCS-51系列单片机虽然技术上比较成熟,但是功能局限性较大,如果需要实现其它模块功能还需要增加很多外围电路,使用复杂度升高;

方案二虽然比起MCS-51单片机功能上比较完善,但是如果使用在智能家居方面,数据的处理能力还是比较欠缺,以及在以后的功能扩展上有很大的局限性;

方案三使用凌阳的S3C2440作为主控单元,相比较前两个方案,方案三不仅在外设功能上囊括了上述单片机的大部分功能(除了凌阳16位单片机的语音部分),在数据处理上也远远超出上述方案中的处理能力,更为主要的是为以后功能的增加和模块的扩展提供了便利。

2.1.2操控显示部分

使用凌阳S3C2440自带的LCD作为显示控制端

使用PC的液晶显示器作为显示控制终端

在凌阳S3C2440开发板中会自带一个4.3寸的LCD频,使用自带的LCD作为显示的终端,虽然在集合度上和综合利用上显得的更加的合理,但是就作为整个智能家居系统而言,清新自然的图形界面是非常重要的,PC机的液晶显示器是其他任何显示终端都无法比拟和超越的,所以选择使用PC机的液晶显示器作为显示控制终端是最明智和合适的选择。

2.1.3服务器的选择

采用TCP/UDP服务器

采用Boa服务器

方案一虽然可行而且搭建容易,但是执行过程繁琐且移植性比较差,但是Boa和普通的Web一样,能够很容易的接收完成客户端的数据请求以及分析请求、响应请求和向客户端返回请求的结果。

2.2系统总体设计

2.2.1系统设计分析

在整个系统的设计过程中确定系统方案是整个系统设计过程中非常重要的一个环节,整个系统的整体性能和实施细节都依赖在系统方案上。

本设计属于嵌入式应用设计,系统设计的大致方法如下:

首先根据系统的整体要求确定系统类型,在确定系统方案的时候就必须考虑系统器件选型,器件的选择在整个系统方案设计过程中至关重要,合理的器件选型直接关乎到设置参数精确度和系统性能的稳定性。

在整个参数的设置过程中还需要考虑到以下几点:

I/O口是串行操作还是并行操作;

各个模块间数据交互的传输方式;

速率以及整个系统信息的提示方式等。

2.2.2系统框图

本系统主要使用S3C2440作为主控器件,辅助以LED、GPRS、温湿度传感器、人体红外感应以及USB摄像头等来模拟智能家居系统,在整体器件选型和参数设置上充分考虑了整体系统的低功耗、高精度、易控制和可扩展性。

本设计系统框图如下图2.1所示。

图2.1系统框图

图题:

宋体,五号,居中,图下方,注意图编号在文中要引用

2.3本章小结

本章重点进行了系统论证,其中包括对在主控器件在低功耗、高数据交互能力和数据处理能力,以及整个系统未来的可扩展性上和其它具有代表性的器件进行了比较论证,还对整个系统中主要模块的选择做出了比对论证。

第三章硬件设计与搭建

3.1芯片介绍

3.1.1S3C2440介绍

S3C2440是韩国三星公司生产的,基于ARM920T的16/32位RISC嵌入式处理器,是目前市场上应用非常广泛的嵌入式处理器。

该处理器是一个多用途的通用芯片,它内部集成了微处理器和常用外围组件,具有较高的性价比。

(1)主要结构

S3C2440的频率是400M

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1