ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:345.69KB ,
资源ID:14559365      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14559365.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计报告 样板.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

课程设计报告 样板.docx

1、课程设计报告 样板(此文档为word格式,下载后您可任意编辑修改!)西 安 电 子 科 技 大 学电 子 工 程 学 院课 程 设 计(报告)任 务 书学生姓名 指导教师 余柏生 职称 高工 学生学号 020X1122 专业 电子信息工程 题目 远程巡回检测中的数据检错纠错电路设计 任务与要求任务: 对基于单片机的汉明码检错、纠错算法进行研究,并设计电路验证汉明码的编码和译码及其纠错性能。具体要求如下:1.详细分析了汉明码的纠错原理;2.完成(12,8)汉明码的编码和译码硬件电路设计及调试;3.完成基于STC89C51芯片的(12,8)汉明码的编码和译码及其纠错程序的设计;4. 完成上述任务的

2、软硬件及算法设计和课程设计论文一篇。开始日期 2010 年12 月15日 完成日期 2011年1月30日 课程设计所在单位 电子工程学院2010 年 12月 15 日课程设计报告设计题目:远程巡回检测中的数据检错纠错电路设计 学 院: 电 子 工 程 学 院 专 业: 电 子 信 息 工 程 班 级: 学号: 学生姓名: 电子邮件: 时 间: 2010 年 10月 成 绩: 指导教师: 余 柏 生 摘 要本论文介绍了基于汉明码的数据检错纠错系统,详细分析了汉明码的纠错原理,给出了基于STC89C51单片机(12,8)编解码的实现方案。数字信号在传输过程中需要用信道编码来降低误码率,提高数字通信

3、的可靠性,汉明码正是一种编码效率高且具有前向纠错能力的信道编码。单片机稳定的体系结构、极低的功耗、极快的运算速度等特点,使其广泛应用于数据的实时处理、工业控制、网络通信等方面。本课题中使用STC89C51单片机实现了(12,8)汉明码的编码和译码。关键词:汉明码 单片机 编码 译码AbstractThis paper presents the data error correction system based on Hamming code, giving a detailed analysis of the FEC Hamming principle, and the realizatio

4、n of the program based on the STC89C51 SCM (12, 8) code.Digital signals in the transmission needs channel code to reduce the error rate and to improve the reliability of digital communication. It is proved that Hamming code is a efficient channel coding with the FECs ability. SCM, stable in architec

5、ture, low power in consumption and fast in computing speed, is the widely used in real-time data processing, industrial control, network communications, and so on. The issue using of STC89C51 handles Hamming (12, 8) encoding and decoding.Keywords: Hamming Code SCM Encoding Decoding第一章 绪 论 1.1 本课题研究的

6、目的及意义 21.2 本文所研究的主要内容及所做工作 2第二章 汉明码校验原理 2.1 汉明码冗余位和监督关系式的构造方法 32.1.1 汉明码的特点 32.1.2 构造汉明码冗余位和监督关系式的方法 42.1.3 构造校正因子和监督关系式时应遵循的原则 52.1.4 错码与S0S1S2S3的对应关系 52.2汉明码校验方法的实现 62.2.1 汉明编码 62.2.2 汉明解码与纠错 7第三章 汉明码编解码系统 3.1 系统整体功能 93.2 系统硬件设计 103.2.1 系统整体硬件方案 103.2.2 系统具体硬件设计 113.3 系统软件设计 133.3.1 单片机结构介绍 133.3.

7、2 软件中用到的单片机资源介绍 153.3.3 系统软件具体设计 22第四章 实验及数据分析 4.1 测试平台建立 244.2 测试结果 244.3 小结 24结束语 .25参考文献 26第一章 绪 论1.1 本课题研究的目的及意义在当今和未来的信息化社会中,数字通信已成为信息传输的重要手段,全球数字化已成为当今社会的主要潮流。但是,数字信号在传输过程中,假性噪声、码间串扰等都会产生误码,因此需要用信道编码来降低误码率,提高数字通信的可靠性,汉明码正是一种编码效率高且具有前向纠错能力的信道编码。常用的检错码有奇偶校验、校验和、汉明码、CRC循环冗余校检码等。其中,奇偶校验只能检查出传输过程中的

8、奇数个错误,不能发现偶数个错误,难以满足传输中对误码率的要求;校验和算法虽然简单,但不能检测出序列的错误,而且冗余码较多,降低了系统的性能;CRC循环码可以检测突发错误,但用软件编码、译码比较复杂,占用CPU时间较长,在对实时性要求很高的工程应用中实现起来较为困难。汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。汉明码的抗干扰能力较强,可以纠正1个错误发现2个错误。汉明码是码距的线性分组码,它不仅性能好,而且编码、译码简单,易于工程实现,因而在实际差错控制系统中得到了广泛应用。1.2 本文所研究的主要内

9、容及所做工作本文对基于单片机的汉明码检错、纠错算法进行了研究,并采用电路验证了汉明码的编码和译码。内容主要包括:1、 详细分析了汉明码的纠错原理;2、 完成(12,8)汉明码的编码和译码硬件电路设计及调试;3、 完成基于STC89C51芯片的(12,8)汉明码的编码和译码程序设汁。 第二章 汉明码校验原理2.1 汉明码冗余位和监督关系式的构造方法2.1.1 汉明码的特点海明码是R. Hamming提出的, 一种可以纠正一位错的差错控制编码。汉明码是一种高码率的纠正单个错误的线性分组码。它是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属于线性分组码,由于线性码的编码和译码容易实现,至

10、今仍是应用最广泛的一类码。汉明码是一个码距为的线性码,它可以检查出两位错误,纠正一位错误,它有以下特点:码长:;信息码位:;最小码距:;纠错能力:。其中,为监督位,是不小于2的整数,给定后,可构造出汉明码。当时,可构造出分组码;时,可构造出分组码。设原代码的码长为比特,附加纠错编码部分为比特,则合成后的纠错码为比特。如果这种纠错码的纠错能力为纠正1个差错,则应满足如下基本条件: (2-1)当上式取等号时则称汉明码(Hamming Code)。干扰不仅使原代码的每一位(比特)可能出错,而且附加纠错位(比特)也可能出错,故“一个差错”的情况共有种,加上“正常”状态共有种状态,而比特的附加纠错位要能

11、分辨这种状态。2.1.2 构造汉明码冗余位和监督关系式的方法一个简单奇偶校验码的设计思路为:若信息位为位,表示为,加上一位偶校验位(冗余位),构成一个位的码字,在接收端校验时,可按以下关系式来计算: (2-2)若,则无错;若,则有错。上式(2-2)可称为监督关系式,称为校正因子。在奇偶校验情况下,只有一个监督关系式和一个校正因子,其取值只有两种(0或1),分别代表了无错和有错的情况,而不能指出差错所在的位置。若增加冗余位,也相应地增加监督关系式和校正因子,就能区分更多的情况。对于时汉明码冗余位和监督关系式的具体构造过程和方法如下:因为且,所以,即至少需要4位冗余码,对应产生4个校正因子和4个监

12、督关系式,形成种不同取值,用其中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种组合中

13、, 取组合表示无错,剩下15种中取其中11种用来表示中某一位出错的情况。2.1.4 错码与S0S1S2S3的对应关系表2.2 错码与校正因子的对应关系表因为每一个校正因子都是由一个冗余码和构成该冗余码的表达式构成,如:,且正好是由两个相等的两部分构成的,所以在所接收的码字是正确的情况下,每一个校正因子都应该是“0”,当然的16种组合中,“0000”组合表示无错,而当一位出错时,如出错时, 因为同时出现在(2-8) 、(2-9)、(2-10) 三个表达式中,所以同时都受到影响,都由“0”变成了“1”,而没变,仍是“0”,在接收方,正是通过重新计算,根据,可知是错。值得注意的是,由于是采用偶性测试

14、的办法。所以接收方如果同时出现了偶数个错误,那么将不能正确地被检出,但是出现这种情况概率很小。2.2汉明码校验方法的实现2.2.1 汉明编码 设要传输的汉明码为, 其中为已知有效数据;为检验码。检验规则矩阵为: 因为 (2-11) 则: (2-12)因为(),这里的加法运算等价于逻辑异或。故: (2-13)这样用式(2-13)计算出四位汉明检错位,就完成了八位数据的汉明编码。2.2.2 汉明解码与纠错已知发送端送出的汉明码为,假设接收端收到的信息为,且,其中:为收到的八位信息;为收到的检验码。设信道中的干扰向量为。且;有错位,否则;。则 (2-14) (2-15)根据汉明编码规则,取为伴随向量

15、则 (2-16)所以,伴随向量仅与干扰向量的变化有关。这样根据的变化,就可以得出伴随向量对应于错误向量的一位错误代码表。表2.3列出伴随向量对应的一位错误向量的关系。因为,为接收到的信息,这样用式(2-15)就可直接计算出伴随向量。 (2-17)这样在软件中,用伴随向量查表2.3找到错误向量E,就可用式(2-14)在接收端纠错得到正确的发送信息。由于有效信息仅为八位。所以在接收端只存贮对应于向量表,就能完成了八位有效数据的纠错当信息在传输出中出现两位以上的错误时,在接收端则丢掉该数据。表2.3 伴随向量对应的一位错误向量表注:存储该表时,以为地址,存储八位即可对接收到的有效信息纠错。第三章 汉

16、明码编解码系统这一章主要介绍远程巡回检中的数据检错纠错电路设计,给出基于STC89C51单片机(12,8)汉明码编解码的实现方案。3.1 系统整体功能整个系统的基本功能如下:(1) 演示汉明码的编码、解码过程。(2) 演示加入1位随机错码的纠错效果。其系统结构如图3.1所示:图3.1 汉明码编解码系统结构发送方的单片机上电时随机产生一个8位信息码,通过信息码产生按键,每按一次按键,单片机都将随机产生一个8位信息码,并将8位信息码通过发光二极管指示出来,灯亮表示对应数据位为“1”, 灯不亮表示对应数据位为“0”。发送方单片机对产生的8位信息码进行汉明编码,编码后产生12位全码,若误码产生按键被按

17、下,则单片机发送12位全码前将随机模拟将其中某一位设成错误值,之后经过传输信道发送到接收方。编码后的12位全码也全部通过发光二极管指示出来,并将对应出错的位以快闪的方式显示。接收方对接收到的12位全码进行解码,通过发光二极管将接收到的数据指示出来,若解码时发现接收到的数据某一位有错误,经纠错解码后将对应出错的位以快闪的方式显示,并将解码后产生的8位信息码结果在发光二极管上指示。灯亮表示对应数据位为“1”, 灯不亮表示对应数据位为“0”。如果发送方和接收方发光二极管指示灯显示一致,则表示汉明编解码后得到了正确的原始信息。系统运行后根据所按键触发相应的事件,从而达到发送方产生信息码错误码,接收方接

18、收数据并进行解码显示,达到最终的模拟演示效果。3.2 系统硬件设计3.2.1 系统整体硬件方案根据功能分析,设计系统硬件方案如下:图3.2 系统硬件结构整个系统由发送方和接收方组成,发送方以51内核的单片机为控制中心,通过随机数据产生按键产生8位的随机数据,并将8位随机数据通过8个LED显示出来,同时发送方还有一位随机错码产生按键,可以对编码后的12位数据随机产生一位的错码数据位,这样具有一位错码的12位数据将按照一定的通信协议通过串口发送出去,光纤模块则将串口数据转化位光信号发送至光纤通信链路。接收方同样为51内核单片机,它按照一定的通信协议将接收具有一位错码的12位编码序列,进行汉明纠错,

19、将解码后的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 概述80

20、51系列微处理器基于简化的嵌入式控制系统结构,被广泛应用于从军事到自动控制再到PC 机上的键盘上的各种应用系统上,很多制造商都可提供8051系列单片机,像Intel Philips Siemens等。这些制造商给51系列单片机加入了大量的性能和外部功能,像I2C总线接口模拟量到数字量的转换、看门狗、PWM 输出等,不少芯片的工作频率达到40M,工作电压下降到1.5V。基于一个内核的这些功能使得8051单片机很适合作为厂家产品的基本构架,它能够运行各种程序,而且开发者只需要学习这一个平台。8051系列的基本结构如下:1、一个8 位算术逻辑单元2、32个IO口(4 组8位端口)可单独寻址3、两个1

21、6 位定时计数器4、全双工串行通信5、6个中断源两个中断优先级6、128 字节内置RAM7、独立的64K 字节可寻址数据和代码区每个8051处理周期包括12个振荡周期,每12 个振荡周期用来完成一项操作,计算指令执行时间可把时钟频率除以12,取倒数,然后指令执行所须的周期数,因此,如果系统时钟是11.059MHz, 除以12 后就得到了每秒执行的指令个数为921583条指令,取倒数将得到每条指令所须的时间(1.085ms)。3.3.1.2 存储区结构8051结构提供给用户3个不同的存储空间,每个存储空间包括从0到最大存储范围的连续的字节地址空间.通过利用特定地址的寻址指令,决了地址重叠的问题。

22、3.3.1.3 CODE区第一个存储空间是代码段,用来存放可执行代码。被16位寻址,空间可达64K。代码段是只读的,当要对外接存储器件如EPROM 进行寻址时处理器会产生一个信号,但这并不意味着代码区一定要用一个EPROM,目前一般使用EEPROM 作为外接存储器可以被外围器件或8051进行改写这使系统更新更加容易新的软件可以下载到EEPROM 中,而不用拆开它然后装入一个新的EEPROM。另外,带电池的SRAM也可用来代替EPROM,他可以像EEPROM一样进行程序的更新,并且没有像EEPROM那样读写周期的限制。但是,当电源耗尽时,存储在SRAM中的程序也随之丢失。使用SRAM来代替EPR

23、OM 时,允许快速下载新程序到目标系统中,这避免了编程调试擦写这样一个循环过程,不再需要使用昂贵的在线仿真器。除了可执行代码,还可在代码段中存储查寻表,为达此目的8051 提供了通过数据指针DPTR或程序计数器加上由累加器提供的偏移量进行寻址的指令,这样就可以把表头地址装入DPTR 中,把表中要寻址的元素的偏移量装入累加器中,8051在执行指令时的过程中把这两者相加,由此可节省不少指令周期。在以后的例子中我们会看到这点。3.3.1.4 DATA区第二个存储区是8051内128 字节的内部RAM或8052的前128 字节内部RAM.这部分主要是作为数据段称为DATA区.指令用一个或两个周期来访问

24、数据段.访问DATA区比访问XDATA区要快,因为它采用直接寻址方式,而访问XDATA 须采用间接寻址,必须先初始化DPTR .通常我们把使用比较频繁的变量或局部变量存储在DATA 段中,但是必须节省使用DATA 段,因为它的空间毕竟有限.在数据段中也可通过R0 和R1 采用间接寻址,R0 和R1 被作为数据区的指针,将要恢复或改变字节的地址放入R0 或R1 中,根据源操作数和目的操作数的不同,执行指令需要一个或两个周期。数据段中有两个小段,第一个子段包含四组寄存器组,每组寄存器组包含八个寄存器共32 个寄存器,可在任何时候通过修改PSW寄存器的RS1和RS0 这两位来选择四组寄存器的任意一组

25、作为工作寄存器组,8051 也可默认任意一组作为工作寄存器组。工作寄存器组的快速切换不仅使参数传递更为方便,而且可在8051 中进行快速任务转换。另外一个子段叫做位寻址段(BDATA),包括16个字节,共128 位,每一位都可单独寻址。8051有好几条位操作指令,这使得程序控制非常方便,并且可帮助软件代替外部组合逻辑,这样就减少了系统中的模块数。位寻址段的这16 个字节也可像数据段中其它字节一样进行字节寻址。3.3.1.5 IDATA区8051系列的一些单片机如8052有附加的128字节的内部RAM,位于从80H 开始的地址空间中,被称为IDATA。 因为IDATA区的地址和SFR的地址是重叠

26、的,通过区分所访问的存储区来解决地址重叠问题,因为IDATA 区只能通过间接寻址来访问。3.3.1.6 XDATA区8051的最后一个存储空间为64K,和CODE 区一样,采用16位地址寻址,称作外部数据区,简称XDATA 区。这个区通常包括一些RAM( 如SRAM)或一些需要通过总线接口的外围器件。对XDATA 的读写操作需要至少两个处理周期,使用DPTR,R0或DPTR,R1。对DPTR来说,至少需要两个处理周期来装入地址,而读写又需要两个处理周期。同样,对于R0或R1 装入需要一个以上的处理周期,而读写又需两个周期,由此可见处理XDATA 中的数据至少要花3 个指令周期,因此使用频繁的数

27、据应尽量保存在DATA 区中。如果不需要和外部器件进行IO 操作或者希望在和外部器件进行IO操作时开关RAM,则XDATA 可全部使用64K RAM。3.3.2 软件中用到的单片机资源介绍3.3.2.1单片机的中断系统1)中断系统基本的8051支持6个中断源,两个外部中断、两个定时计数器中断、一个串行口输入输出中断,中断,发生后处理器转到将五个中断入口处之一执行中断处理程序。中断向量位于代码段的最低地址处(串行口输入,输出中断共用一个中断向量)。中断服务程序必须在中断入口处或通过跳转,分支转移到别处。80518052的中断向量表如下表3.1所示:表3.1 80518052的中断向量表中断源中断

28、向量上电复位0000H外部中断00003H定时器0溢出000BH外部中断10013H定时器1溢出001BH串行口中断0023H定时器2 溢出002BH8051支持两个中断优先级,有标准的中断机制,低优先级的中断只能被高优先级的中断所中断,而高优先级的中断不能被中断。2)中断优先级寄存器每个中断源都可通过设置中断优先级寄存器IP来单独设置中断优先级。如果每个中断源的相应位被置位,则该中断源的优先级为高。如果相应的位被复位,则该中断源的优先级为低,IP寄存器的各位此寄存器可位寻址。IP 寄存器(可位寻址)-PT2PSPT1PX1PT0PX0- 保留- 保留PT2:定时器2中断优先级PS:串行通信中

29、断优先级PT1:定时器1中断优先级PX1:外部中断1优先级PT0:定时器0中断优先级PX0:外部中断0优先级3) 中断使能寄存器通过设置中断使能寄存器IE的EA位,使能所有中断。每个中断源都有单独的使能位,可通过软件设置IE中相应的使能位在任何时候使能或禁能中断。中断使能寄存器IE的各位如下所示。中断使能寄存器IE(可位寻址)EA-ET2ESET1EX1ET0EX0EA:使能标志位置位则所有中断使能复位则禁止所有中断-:保留ET2:定时器2 中断使能ES:串行通信中断使能ET1:定时器1 中断使能EX1:外部中断1 使能ET0:定时器0 中断使能EX0:外部中断0 使能4) 中断延迟8051在

30、每个处理周期查询中断标志,确定是否有中断请求。当发生中断时,置位相应的标志,处理器将在下个周期查询到中断标志位,这样,从发生中断到确认中断之间有一个指令周期的延时。这时,处理器将用两个周期的时间来调用中断服务程序,总共要花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