单片机实现(74)汉明码的编码毕业设计.doc
《单片机实现(74)汉明码的编码毕业设计.doc》由会员分享,可在线阅读,更多相关《单片机实现(74)汉明码的编码毕业设计.doc(36页珍藏版)》请在三一办公上搜索。
1、单片机实现(7,4)汉明码的编码摘 要在当今和未来的信息化社会中,数字通信已成为信息传输的重要手段,全球数字化已成为当今世界的主要潮流。但是,数字信号在传输过程中,加性噪声,码间串扰等都会产生误码,因此需要用信道编码来降低误码率,提高数字通信的可靠性。随着差错控制编码技术的蓬勃发展,作为信道传输过程抗干扰的有效手段,其中较为成熟的编码方法如汉明码、奇偶校验码、循环冗余码等编码技术,被广泛应用于计算机、电子通信、控制等领域。其中汉明码是一种能够纠正一位错误且编码效率较高的线性分组码。由于它的编译码在工程上较易实现,所以应用广泛。与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位
2、后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。软件实现下面给出基于最常用的MCS-51单片机汇编语言的汉明码测试程序。它的有效信息占到了总编码长度的70%,测试程序中自动生成11个字节的原始数据。原始数据块的长度、存放地址可根据实际情况由用户自己确
3、定,只要将本测试程序的汉明码编码、解码子程序嵌入用户应用程序中,就可直接使用。本课题就是研究利用C8051F系列单片机来实现(7,4)汉明码的编码。关键词:单片机;线性分组码;(7,4)汉明码C8051F series MCU(7,4)hamming code encodingABSTRACTIn todays and future information society, digital communication has become an important means of information transmission, the global digital has become
4、a major trend in todays world. However, the digital signal in the transmission process, the additive noise, intersymbol interference, and this will result in error, channel coding, therefore need to reduce the error rate and improve the reliability of digital communications. With the error control c
5、oding techniques flourished as the transmission channel interference and effective means by which the more mature coding methods, such as Hamming codes, parity bits, cyclic redundancy code and other coding techniques are widely used in computers, electronics communication, control and other fields.
6、Hamming code which is able to correct a mistake and the code more efficient linear block codes. Encoding and decoding in the project because of its easier to achieve, so widely used. With other similar error check code, Hamming code parity bit also use the concept, followed by an increase in the num
7、ber of bits of data bits, the validity of data can be verified. Use more than one parity bit, Hamming codes can not only verify the data is valid, but also in the case of data error location specified in the error. By error correction decoding in a receiver automatically correct the transmission err
8、ors to achieve error correction code, known as forward error correction FEC. There are a lot of data-link noise, FEC can increase data throughput. Transmission code in the column by adding redundant bits (also known as error correction bits) can be achieved FEC. However, this method than a simple re
9、transmission protocol to the high cost. Hamming code parity block mechanism reduces the use of forward error correction costs. Software are given below based on the most popular MCS-51 microcontroller Hamming code assembly language test program. It accounts for effective information length of 70% of
10、 the total coding and testing program automatically generates 11 bytes of raw data. The length of the original data block, or hold the actual situation according to the user to determine if the Hamming code of the test program encoding and decoding routines embedded in user applications, can be used
11、 directly. This topic is to study the use of C8051F MCU to achieve (7,4) hamming code encoding.Keywords:MCU; linear block codes; (7,4) hamming code目 录第1章 绪论1第2章 实验的软硬件环境22.1 VHDL语言的概述22.1.1 VHDL语言的发展历史22.1.2 VHDL语言的特点22.1.3 VHDL语言的开发流程42.1.4 VHDL的程序结构62.1.5 逻辑芯片的分类72.2 MAX+plus的使用10第3章 基于CPLD的PCM解码电
12、路的设计163.1 PCM的概述163.2 解调PCM码的基本原理173.2.1 位同步的实现183.2.2 帧同步的实现213.2.3 字同步及PCM码串并转换233.2.4 模块综合273.3 分析与总结30总结32致谢33参考文献34第1章 绪论在简要介绍汉明码编码原理的基础上,详细分析干扰对汉明码纠错的影响;通过对汉明码重新组织排列,在不增加代码冗余的前提下,提高汉明码抗突发干扰的能力,为汉明码在实际中的应用提供新的思路;给出基于单片机的汇编语言汉明码测试程序。纠错引言汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件。它属于线性分组码,由于线性码的编码和译码容易实现,至今仍
13、是应用最广泛的一类码。在实际应用中常常存在各种突发干扰,使连续多位数据发生差错。为了纠正3个以上的差错,就要加大码距,使代码冗余度大大增加,通信效率下降。本文所介绍的方法,就可以在不加大码距的同时,提高汉明码对突发干扰所产生差错的纠错能力,纠正多位连续的差错。用汉明码对连续多位差错纠正的实现要想在不加大码距的前提下,纠正连续多位差错,提高抵抗突发干扰的能力,可根据校验矩阵得出的汉明码重新进行组织排列。通信中,一般可分为异步、同步两种方式。在异步传输中起始位和停止位是由硬件电路产生的,如果干扰使起始位或停止位发生了改变,那么即使程序有跨字节纠错的能力也是无用的。对于同步方式则是可行的,因为在发送
14、接收双方取得同步后,数据块的每个字符间取消了起始位和停止位。常用的串口通信一般采用异步传输方式,能保证纠正连续1个字节的差错就可以了。我们也要看到,这样处理后提高了汉明码对突发干扰差错的纠错能力,却牺牲了对随机干扰纠错能力。因为这样对汉明码重新排序后,原来1个汉明码的各个位分布在不同位置的字节里,当有多个随机干扰出现时,可能使原来这个被拆开的1个汉明码多位出现差错。因此采用多少位的汉明码,如何对汉明码重新组织排列,要根据信道的特点来决定。软件实现下面给出基于最常用的MCS-51单片机汇编语言的汉明码测试程序。它的有效信息占到了总编码长度的70%,测试程序中自动生成11个字节的原始数据。原始数据
15、块的长度、存放地址可根据实际情况由用户自己确定,只要将本测试程序的汉明码编码、解码子程序嵌入用户应用程序中,就可直接使用。第2章 实验的软硬件环境2.1 Keil C51语言的概述2.1.1 8051开发工具 Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision3的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision3 IDE可为它们提供单一而灵活的开发环境。 C51 V7版本
16、是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三 方开发工具。因此,C51 V7版本无疑是8051开发用户的最佳选择。 2.1.2 uVision3集成开发环境一、项目管理 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的uVision3工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision3包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制
17、器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速(mathaccelerator)的特性。 uVision3可以为片外存储器产生必要的连接选项:确定起始地址和规模。 二、集成功能 uVision3的强大功能有助于用户按期完工。 1.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。 2.文件寻找功能:在特定文件中执行全局文件搜索。 3.工具菜单:允许在V2集成开发环境下启动用户功能。 4.可配置SVCS接口:提供对版本控制系统的入口。 5.PCLINT接口:对应用程序代码进行深层语法分析。
18、 6.Infineon的EasyCase接口:集成块集代码产生。 7.Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision32.1.3编辑器和调试器一、源代码编辑器 uVision3编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。 二、断点 uVision3允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置 为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执
19、行。 在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。 三、调试函数语言 uVision3中,你可以编写或使用类似C的数语言进行调试。 1.内部函数:如printf, memset, rand及其它功能的函数。 2.信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。 3.用户函数:扩展指令范围,合并重复动作。 四、变量和存储器 用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整: 1.当前函数的局部变
20、量 2.用户在两个不同watch窗口页面上的自定义变量 3.堆栈调用(call stack)页面上的调用记录(树)(call tree) 4.不同格式的四个存储区 2.1.4 C51编译器Keil C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。 一、存储器和特殊功能寄存器的存取 C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户
21、在原有64KROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。 二、中断功能 C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。 三、灵活的指针 C51提供了灵活高效的指针。 通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需12字节,因此,指针存取非常迅速。 2.1.5代码优化一、通用代码优化 1.常量
22、重叠(constant folding)6.寄存器间参数传递(parameter passing in register)2.通用子表达式删除(common subexpression elimination)7.循环(loop rotation)3.长度缩减速(reduction)8.死码删除(dead code elimination)4.控制流优化(control flow optimization)9.通用Tail Merging5.寄存器变量使用(register variable usage)10.通用子程序块打包(block subroutine packing)二、8051特殊
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实现 汉明码 编码 毕业设计
链接地址:https://www.31ppt.com/p-2881911.html