课程设计报告 样板.docx

上传人:b****5 文档编号:14559365 上传时间:2023-06-24 格式:DOCX 页数:28 大小:345.69KB
下载 相关 举报
课程设计报告 样板.docx_第1页
第1页 / 共28页
课程设计报告 样板.docx_第2页
第2页 / 共28页
课程设计报告 样板.docx_第3页
第3页 / 共28页
课程设计报告 样板.docx_第4页
第4页 / 共28页
课程设计报告 样板.docx_第5页
第5页 / 共28页
课程设计报告 样板.docx_第6页
第6页 / 共28页
课程设计报告 样板.docx_第7页
第7页 / 共28页
课程设计报告 样板.docx_第8页
第8页 / 共28页
课程设计报告 样板.docx_第9页
第9页 / 共28页
课程设计报告 样板.docx_第10页
第10页 / 共28页
课程设计报告 样板.docx_第11页
第11页 / 共28页
课程设计报告 样板.docx_第12页
第12页 / 共28页
课程设计报告 样板.docx_第13页
第13页 / 共28页
课程设计报告 样板.docx_第14页
第14页 / 共28页
课程设计报告 样板.docx_第15页
第15页 / 共28页
课程设计报告 样板.docx_第16页
第16页 / 共28页
课程设计报告 样板.docx_第17页
第17页 / 共28页
课程设计报告 样板.docx_第18页
第18页 / 共28页
课程设计报告 样板.docx_第19页
第19页 / 共28页
课程设计报告 样板.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

课程设计报告 样板.docx

《课程设计报告 样板.docx》由会员分享,可在线阅读,更多相关《课程设计报告 样板.docx(28页珍藏版)》请在冰点文库上搜索。

课程设计报告 样板.docx

课程设计报告样板

(此文档为word格式,下载后您可任意编辑修改!

西安电子科技大学

电子工程学院

课程设计(报告)任务书

学生姓名指导教师余柏生职称高工

学生学号020X1122专业电子信息工程

题目远程巡回检测中的数据检错纠错电路设计

任务与要求

任务:

对基于单片机的汉明码检错、纠错算法进行研究,并设计电路验证汉明码的编码和译码及其纠错性能。

具体要求如下:

1.详细分析了汉明码的纠错原理;

2.完成(12,8)汉明码的编码和译码硬件电路设计及调试;

3.完成基于STC89C51芯片的(12,8)汉明码的编码和译码及其纠错程序的设计;

4.完成上述任务的软硬件及算法设计和课程设计论文一篇。

 

开始日期2010年12月15日完成日期2011年1月30日

课程设计所在单位电子工程学院

2010年12月15日

课程设计报告

设计题目:

远程巡回检测中的数据检错纠错电路设计

学院:

电子工程学院

专业:

电子信息工程

班级:

学号:

学生姓名:

电子邮件:

时间:

2010年10月

成绩:

指导教师:

余柏生

摘要

本论文介绍了基于汉明码的数据检错纠错系统,详细分析了汉明码的纠错原理,给出了基于STC89C51单片机(12,8)编解码的实现方案。

数字信号在传输过程中需要用信道编码来降低误码率,提高数字通信的可靠性,汉明码正是一种编码效率高且具有前向纠错能力的信道编码。

单片机稳定的体系结构、极低的功耗、极快的运算速度等特点,使其广泛应用于数据的实时处理、工业控制、网络通信等方面。

本课题中使用STC89C51单片机实现了(12,8)汉明码的编码和译码。

关键词:

汉明码单片机编码译码

Abstract

ThispaperpresentsthedataerrorcorrectionsystembasedonHammingcode,givingadetailedanalysisoftheFECHammingprinciple,andtherealizationoftheprogrambasedontheSTC89C51SCM(12,8)code.

Digitalsignalsinthetransmissionneedschannelcodetoreducetheerrorrateandtoimprovethereliabilityofdigitalcommunication.ItisprovedthatHammingcodeisaefficientchannelcodingwiththeFEC'sability.SCM,stableinarchitecture,lowpowerinconsumptionandfastincomputingspeed,isthewidelyusedinreal-timedataprocessing,industrialcontrol,networkcommunications,andsoon.TheissueusingofSTC89C51handlesHamming(12,8)encodinganddecoding.

Keywords:

HammingCodeSCMEncodingDecoding

第一章绪论

1.1本课题研究的目的及意义2

1.2本文所研究的主要内容及所做工作2

第二章汉明码校验原理

2.1汉明码冗余位和监督关系式的构造方法3

2.1.1汉明码的特点3

2.1.2构造汉明码冗余位和监督关系式的方法4

2.1.3构造校正因子和监督关系式时应遵循的原则5

2.1.4错码与S0S1S2S3的对应关系5

2.2汉明码校验方法的实现6

2.2.1汉明编码6

2.2.2汉明解码与纠错7

第三章汉明码编解码系统

3.1系统整体功能9

3.2系统硬件设计10

3.2.1系统整体硬件方案10

3.2.2系统具体硬件设计11

3.3系统软件设计13

3.3.1单片机结构介绍13

3.3.2软件中用到的单片机资源介绍15

3.3.3系统软件具体设计22

第四章实验及数据分析

4.1测试平台建立24

4.2测试结果24

4.3小结24

结束语……………………………………………………………………..25

参考文献…………………………………………………………………26

第一章绪论

1.1本课题研究的目的及意义

在当今和未来的信息化社会中,数字通信已成为信息传输的重要手段,全球数字化已成为当今社会的主要潮流。

但是,数字信号在传输过程中,假性噪声、码间串扰等都会产生误码,因此需要用信道编码来降低误码率,提高数字通信的可靠性,汉明码正是一种编码效率高且具有前向纠错能力的信道编码。

常用的检错码有奇偶校验、校验和、汉明码、CRC循环冗余校检码等。

其中,奇偶校验只能检查出传输过程中的奇数个错误,不能发现偶数个错误,难以满足传输中对误码率的要求;校验和算法虽然简单,但不能检测出序列的错误,而且冗余码较多,降低了系统的性能;CRC循环码可以检测突发错误,但用软件编码、译码比较复杂,占用CPU时间较长,在对实时性要求很高的工程应用中实现起来较为困难。

汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。

它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。

汉明码的抗干扰能力较强,可以纠正1个错误发现2个错误。

汉明码是码距的线性分组码,它不仅性能好,而且编码、译码简单,易于工程实现,因而在实际差错控制系统中得到了广泛应用。

1.2本文所研究的主要内容及所做工作

本文对基于单片机的汉明码检错、纠错算法进行了研究,并采用电路验证了汉明码的编码和译码。

内容主要包括:

1、详细分析了汉明码的纠错原理;

2、完成(12,8)汉明码的编码和译码硬件电路设计及调试;

3、完成基于STC89C51芯片的(12,8)汉明码的编码和译码程序设汁。

第二章汉明码校验原理

2.1汉明码冗余位和监督关系式的构造方法

2.1.1汉明码的特点

海明码是R.Hamming提出的,一种可以纠正一位错的差错控制编码。

汉明码是一种高码率的纠正单个错误的线性分组码。

它是在原编码的基础上附加一部分代码,使其满足纠错码的条件。

它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。

汉明码是一个码距为的线性码,它可以检查出两位错误,纠正一位错误,它有以下特点:

码长:

信息码位:

最小码距:

纠错能力:

其中,为监督位,是不小于2的整数,给定后,可构造出汉明码。

当时,可构造出分组码;时,可构造出分组码。

设原代码的码长为比特,附加纠错编码部分为比特,则合成后的纠错码为比特。

如果这种纠错码的纠错能力为纠正1个差错,则应满足如下基本条件:

(2-1)

当上式取等号时则称汉明码(HammingCode)。

干扰不仅使原代码的每一位(比特)可能出错,而且附加纠错位(比特)也可能出错,故“一个差错”的情况共有种,加上“正常”状态共有种状态,而比特的附加纠错位要能分辨这种状态。

2.1.2构造汉明码冗余位和监督关系式的方法

一个简单奇偶校验码的设计思路为:

若信息位为位,表示为,加上一位偶校验位(冗余位),构成一个位的码字,在接收端校验时,可按以下关系式来计算:

(2-2)

若,则无错;若,则有错。

上式(2-2)可称为监督关系式,称为校正因子。

在奇偶校验情况下,只有一个监督关系式和一个校正因子,其取值只有两种(0或1),分别代表了无错和有错的情况,而不能指出差错所在的位置。

若增加冗余位,也相应地增加监督关系式和校正因子,就能区分更多的情况。

对于时汉明码冗余位和监督关系式的具体构造过程和方法如下:

因为且,所以,即至少需要4位冗余码,对应产生4个校正因子和4个监督关系式,形成种不同取值,用其中11种分别表示无错和中一位错的情况。

构造表如下表2.1所示。

表2.1冗余和监督关系式的构造表

由表2.1可知冗余码为:

(2-3)

(2-4)

(2-5)

(2-6)

监督关系式为:

(2-7)

(2-8)

(2-9)

(2-10)

2.1.3构造校正因子和监督关系式时应遵循的原则

汉明码是线性分组码,线性分组码的编码设计就是在满足给定条件(如码距)下,如何从已知的个信息元中求出个校验元。

要计算出校验元,就要先求出汉明码校验矩阵。

在上表2.1中,构造4个校正因子和4个监督关系式的过程中,必须应遵守的原则是:

表2.1中共有11列,每一列应保证各不相同,即的16种组合中,取组合表示无错,剩下15种中取其中11种用来表示中某一位出错的情况。

2.1.4错码与S0S1S2S3的对应关系

表2.2错码与校正因子的对应关系表

因为每一个校正因子都是由一个冗余码和构成该冗余码的表达式构成,如:

,且正好是由两个相等的两部分构成的,所以在所接收的码字是正确的情况下,每一个校正因子都应该是“0”,当然的16种组合中,“0000”组合表示无错,而当一位出错时,如出错时,因为同时出现在(2-8)、(2-9)、(2-10)三个表达式中,所以同时都受到影响,都由“0”变成了“1”,而没变,仍是“0”,在接收方,正是通过重新计算,根据,可知是错。

值得注意的是,由于是采用偶性测试的办法。

所以接收方如果同时出现了偶数个错误,那么将不能正确地被检出,但是出现这种情况概率很小。

2.2汉明码校验方法的实现

2.2.1汉明编码

设要传输的汉明码为,

其中

为已知有效数据;

为检验码。

检验规则矩阵为:

因为

(2-11)

则:

(2-12)

因为(),这里的加法运算等价于逻辑异或。

故:

(2-13)

这样用式(2-13)计算出四位汉明检错位,就完成了八位数据的汉明编码。

2.2.2汉明解码与纠错

已知发送端送出的汉明码为,假设接收端收到的信息为,且,其中:

为收到的八位信息;

为收到的检验码。

设信道中的干扰向量为。

;有错位,否则;。

(2-14)

(2-15)

根据汉明编码规则,取为伴随向量

(2-16)

所以,伴随向量仅与干扰向量的变化有关。

这样根据的变化,就可以得出伴随向量对应于错误向量的一位错误代码表。

表2.3列出伴随向量对应的一位错误向量的关系。

因为,为接收到的信息,这样用式(2-15)就可直接计算出伴随向量。

(2-17)

这样在软件中,用伴随向量查表2.3找到错误向量E,就可用式(2-14)在接收端纠错得到正确的发送信息。

由于有效信息仅为八位。

所以在接收端只存贮对应于向量表,就能完成了八位有效数据的纠错.

当信息在传输出中出现两位以上的错误时,在接收端则丢掉该数据。

表2.3伴随向量对应的一位错误向量表

注:

存储该表时,以为地址,存储八位即可对接收到的有效信息纠错。

第三章汉明码编解码系统

这一章主要介绍远程巡回检中的数据检错纠错电路设计,给出基于STC89C51单片机(12,8)汉明码编解码的实现方案。

3.1系统整体功能

整个系统的基本功能如下:

(1)演示汉明码的编码、解码过程。

(2)演示加入1位随机错码的纠错效果。

其系统结构如图3.1所示:

图3.1汉明码编解码系统结构

发送方的单片机上电时随机产生一个8位信息码,通过信息码产生按键,每按一次按键,单片机都将随机产生一个8位信息码,并将8位信息码通过发光二极管指示出来,灯亮表示对应数据位为“1”,灯不亮表示对应数据位为“0”。

发送方单片机对产生的8位信息码进行汉明编码,编码后产生12位全码,若误码产生按键被按下,则单片机发送12位全码前将随机模拟将其中某一位设成错误值,之后经过传输信道发送到接收方。

编码后的12位全码也全部通过发光二极管指示出来,并将对应出错的位以快闪的方式显示。

接收方对接收到的12位全码进行解码,通过发光二极管将接收到的数据指示出来,若解码时发现接收到的数据某一位有错误,经纠错解码后将对应出错的位以快闪的方式显示,并将解码后产生的8位信息码结果在发光二极管上指示。

灯亮表示对应数据位为“1”,灯不亮表示对应数据位为“0”。

如果发送方和接收方发光二极管指示灯显示一致,则表示汉明编解码后得到了正确的原始信息。

系统运行后根据所按键触发相应的事件,从而达到发送方产生信息码错误码,接收方接收数据并进行解码显示,达到最终的模拟演示效果。

3.2系统硬件设计

3.2.1系统整体硬件方案

根据功能分析,设计系统硬件方案如下:

图3.2系统硬件结构

整个系统由发送方和接收方组成,发送方以51内核的单片机为控制中心,通过随机数据产生按键产生8位的随机数据,并将8位随机数据通过8个LED显示出来,同时发送方还有一位随机错码产生按键,可以对编码后的12位数据随机产生一位的错码数据位,这样具有一位错码的12位数据将按照一定的通信协议通过串口发送出去,光纤模块则将串口数据转化位光信号发送至光纤通信链路。

接收方同样为51内核单片机,它按照一定的通信协议将接收具有一位错码的12位编码序列,进行汉明纠错,将解码后的8位数据通过8个LED显示出来,同时也将12位全码通过12个LED显示出来。

3.2.2系统具体硬件设计

图3.3发送方硬件设计

发送方以STC89C51为控制核心,STC89C51是台湾宏晶公司生产的51内核芯片,该芯片具有EEPROM、看门狗、上电监控、串口等内部资源。

随机数据产生和错码产生按键分别接到单片机的中断引脚上,单片机的P0、P1、P2口分别驱动LED作为显示用;串口则负责将编码后的数据通过一定的通信协议发送到接收方单片机。

图3.4接收方硬件设计

接收方同样也采用上面的电路结构只不过去掉了按键输入单元。

3.3系统软件设计

3.3.1单片机结构介绍

3.3.1.1概述

8051系列微处理器基于简化的嵌入式控制系统结构,被广泛应用于从军事到自动控制再到PC机上的键盘上的各种应用系统上,很多制造商都可提供8051系列单片机,像IntelPhilipsSiemens等。

这些制造商给51系列单片机加入了大量的性能和外部功能,像I2C总线接口模拟量到数字量的转换、看门狗、PWM输出等,不少芯片的工作频率达到40M,工作电压下降到1.5V。

基于一个内核的这些功能使得8051单片机很适合作为厂家产品的基本构架,它能够运行各种程序,而且开发者只需要学习这一个平台。

8051系列的基本结构如下:

1、一个8位算术逻辑单元

2、32个IO口(4组8位端口)可单独寻址

3、两个16位定时计数器

4、全双工串行通信

5、6个中断源两个中断优先级

6、128字节内置RAM

7、独立的64K字节可寻址数据和代码区

每个8051处理周期包括12个振荡周期,每12个振荡周期用来完成一项操作,计算指令执行时间可把时钟频率除以12,取倒数,然后指令执行所须的周期数,因此,如果系统时钟是11.059MHz,除以12后就得到了每秒执行的指令个数为921583条指令,取倒数将得到每条指令所须的时间(1.085ms)。

3.3.1.2存储区结构

8051结构提供给用户3个不同的存储空间,每个存储空间包括从0到最大存储范围的连续的字节地址空间.通过利用特定地址的寻址指令,决了地址重叠的问题。

3.3.1.3CODE区

第一个存储空间是代码段,用来存放可执行代码。

被16位寻址,空间可达64K。

代码段是只读的,当要对外接存储器件如EPROM进行寻址时处理器会产生一个信号,但这并不意味着代码区一定要用一个EPROM,目前一般使用EEPROM作为外接存储器可以被外围器件或8051进行改写这使系统更新更加容易新的软件可以下载到EEPROM中,而不用拆开它然后装入一个新的EEPROM。

另外,带电池的SRAM也可用来代替EPROM,他可以像EEPROM一样进行程序的更新,并且没有像EEPROM那样读写周期的限制。

但是,当电源耗尽时,存储在SRAM中的程序也随之丢失。

使用SRAM来代替EPROM时,允许快速下载新程序到目标系统中,这避免了编程调试擦写这样一个循环过程,不再需要使用昂贵的在线仿真器。

除了可执行代码,还可在代码段中存储查寻表,为达此目的8051提供了通过数据指针DPTR或程序计数器加上由累加器提供的偏移量进行寻址的指令,这样就可以把表头地址装入DPTR中,把表中要寻址的元素的偏移量装入累加器中,8051在执行指令时的过程中把这两者相加,由此可节省不少指令周期。

在以后的例子中我们会看到这点。

3.3.1.4DATA区

第二个存储区是8051内128字节的内部RAM或8052的前128字节内部RAM.这部分主要是作为数据段称为DATA区.指令用一个或两个周期来访问数据段.访问DATA区比访问XDATA区要快,因为它采用直接寻址方式,而访问XDATA须采用间接寻址,必须先初始化DPTR.通常我们把使用比较频繁的变量或局部变量存储在DATA段中,但是必须节省使用DATA段,因为它的空间毕竟有限.

在数据段中也可通过R0和R1采用间接寻址,R0和R1被作为数据区的指针,将要恢复或改变字节的地址放入R0或R1中,根据源操作数和目的操作数的不同,执行指令需要一个或两个周期。

数据段中有两个小段,第一个子段包含四组寄存器组,每组寄存器组包含八个寄存器共32个寄存器,可在任何时候通过修改PSW寄存器的RS1和RS0这两位来选择四组寄存器的任意一组作为工作寄存器组,8051也可默认任意一组作为工作寄存器组。

工作寄存器组的快速切换不仅使参数传递更为方便,而且可在8051中进行快速任务转换。

另外一个子段叫做位寻址段(BDATA),包括16个字节,共128位,每一位都可单独寻址。

8051有好几条位操作指令,这使得程序控制非常方便,并且可帮助软件代替外部组合逻辑,这样就减少了系统中的模块数。

位寻址段的这16个字节也可像数据段中其它字节一样进行字节寻址。

3.3.1.5IDATA区

8051系列的一些单片机如8052有附加的128字节的内部RAM,位于从80H开始的地址空间中,被称为IDATA。

因为IDATA区的地址和SFR的地址是重叠的,通过区分所访问的存储区来解决地址重叠问题,因为IDATA区只能通过间接寻址来访问。

3.3.1.6XDATA区

8051的最后一个存储空间为64K,和CODE区一样,采用16位地址寻址,称作外部数据区,简称XDATA区。

这个区通常包括一些RAM(如SRAM)或一些需要通过总线接口的外围器件。

对XDATA的读写操作需要至少两个处理周期,使用DPTR,R0或DPTR,R1。

对DPTR来说,至少需要两个处理周期来装入地址,而读写又需要两个处理周期。

同样,对于R0或R1装入需要一个以上的处理周期,而读写又需两个周期,由此可见处理XDATA中的数据至少要花3个指令周期,因此使用频繁的数据应尽量保存在DATA区中。

如果不需要和外部器件进行IO操作或者希望在和外部器件进行IO操作时开关RAM,则XDATA可全部使用64KRAM。

3.3.2软件中用到的单片机资源介绍

3.3.2.1单片机的中断系统

1)中断系统

基本的8051支持6个中断源,两个外部中断、两个定时计数器中断、一个串行口输入输出中断,中断,发生后处理器转到将五个中断入口处之一执行中断处理程序。

中断向量位于代码段的最低地址处(串行口输入,输出中断共用一个中断向量)。

中断服务程序必须在中断入口处或通过跳转,分支转移到别处。

80518052的中断向量表如下表3.1所示:

表3.180518052的中断向量表

中断源

中断向量

上电复位

0000H

外部中断0

0003H

定时器0溢出

000BH

外部中断1

0013H

定时器1溢出

001BH

串行口中断

0023H

定时器2溢出

002BH

8051支持两个中断优先级,有标准的中断机制,低优先级的中断只能被高优先级的中断所中断,而高优先级的中断不能被中断。

2)中断优先级寄存器

每个中断源都可通过设置中断优先级寄存器IP来单独设置中断优先级。

如果每个中断源的相应位被置位,则该中断源的优先级为高。

如果相应的位被复位,则该中断源的优先级为低,IP寄存器的各位此寄存器可位寻址。

IP寄存器(可位寻址)

---

---

PT2

PS

PT1

PX1

PT0

PX0

---保留

---保留

PT2:

定时器2中断优先级

PS:

串行通信中断优先级

PT1:

定时器1中断优先级

PX1:

外部中断1优先级

PT0:

定时器0中断优先级

PX0:

外部中断0优先级

3)中断使能寄存器

通过设置中断使能寄存器IE的EA位,使能所有中断。

每个中断源都有单独的使能位,可通过软件设置IE中相应的使能位在任何时候使能或禁能中断。

中断使能寄存器IE的各位如下所示。

中断使能寄存器IE(可位寻址)

EA

---

ET2

ES

ET1

EX1

ET0

EX0

EA:

使能标志位置位则所有中断使能复位则禁止所有中断

---:

保留

ET2:

定时器2中断使能

ES:

串行通信中断使能

ET1:

定时器1中断使能

EX1:

外部中断1使能

ET0:

定时器0中断使能

EX0:

外部中断0使能

4)中断延迟

8051在每个处理周期查询中断标志,确定是否有中断请求。

当发生中断时,置位相应的标志,处理器将在下个周期查询到中断标志位,这样,从发生中断到确认中断之间有一个指令周期的延时。

这时,处理器将用两个周期的时间来调用中断服务程序,总共要花3个时钟周期。

在理想情况下,处理器将在3个指令周期内响应中断,这使得用户能很快响应系统事件。

不可避免地系统有可能在3个处理周期能不能响应中断请求,特别是当有同级或更高级的中断服务程序正在执行的时候。

因此,中断的延迟主要取决于正在执行的程序。

另外一种大于3个周期的中断延迟是,程序正在执行一条多周期指令,要等到当前的指令执行完后,处理器才会处理中断事件,这将在原来的基础上至少增加一个周期的延时(假设在执行完多周期指令的第一个周期后发现中断)。

除被其它中断所阻的情况,中断不被响应的最长延时为6个处理周期(3个周期的多周期指令执行时间,3个周期的指令响应时间4)。

3.3.2.2单片机的定时器系统

1)定时器的相应寄存器

标准的8051有两个定时计数器,每个定时器有16位。

定时计数器既可用来作为定时器(对机器周期计数),也可用来对相应I0口(T0、T1)上从高到低的跳变脉冲计数。

当用作计数器时,脉冲频率不应高于指令的执行频率的12,因为每周期检测一次引脚电平,而判断一次脉冲跳变需要两个指令周期。

如果需要的话,当脉冲计数溢出时,可以产生一个中断。

TCON

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2