😘欢迎关注:👍点赞🙌收藏✍️留言
🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!
一、课程设计目的
巩固对计算机中数据表示方法的理解,要求能设计汉字国标码与区位码之间的转换电路,能批量获取汉字机内码并用点阵形式进行显示。通过设计 16 位数据的海明编解码电路,16 位数据的 CRC 并行编解码电路,理解校验码传输过程。通过校验码流水传输实验提前建立流水线的基本概念。
二、课程设计内容
- 汉字国标码转区位码实验
- 实验目的
- 理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
- 了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 编码的点阵显示。
- 汉字机内码获取实验
- 实验目的
- 理解汉字机内码、区位码,最终能利用相关工具批量获取一段文字的 GB2312 机内码,并利用简单电路实现 GB2312 编码与区位码的转换;
- 了解字形码显示的基本原理,能在实验环境中实现汉字 GB2312 编码的点阵显示。
- 偶校验编码设计
- 实验目的
掌握奇偶校验基本原理和特性,能在 Logisim 中实现偶校验编码电路,检错电路,理解校验码传输的原理。
- 偶校验解码电路设计
- 实验目的
掌握奇偶校验基本原理和特性,能在 Logisim 中实现偶校验编码电路,检错电路,理解校验码传输的原理。
- 16位海明编码电路设计
- 实验目的
掌握海明码设计原理与检错纠错性能,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编解码电路。
- 16位海明解码电路设计
- 实验目的
掌握海明码设计原理与检错纠错性能,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编解码电路。
- 海明编码流水传输实验
- 实验目的
掌握 CRC 循环冗余校验码的基本原理,能看懂串行 CRC 编解码电路,并利用所学数字逻辑知识设计实现 GB2312 编码16位数据的并行 CRC 编解码电路。
- CRC编码流水传输实验
- 实验目的
熟悉流水数据传输机制,流水暂停原理,为最终的流水 CPU 设计做好技术储备,最终能对实验环境提供的五段流水编码传输电路进行简单修改,实现数据编码在不可靠网络中的可靠传输。
三、课程设计步骤
- 汉字国标码转区位码实验
- 原理
国标码=区位码(十六进制)+2020H
区位码=国标码(十六进制)2020H
= (需要使用加法器所以需要转换为补码的形式) 国标码(十六进制)+ (FFFF-2020H+0001H) 取反加1=国标码(十六进制)+ dfe0H
- 接线图
- 汉字机内码获取实验
- 原理
运行下面程序获得目的汉字机内码并将其内容复制到存储器中。
#include<stdio.h> #include<string.h> int main() { unsigned char temp[]="12345ABCDEFGabcdefg轻轻的我走了,正如我轻轻的来;我轻轻的招手,作别西天的云彩。那河畔的金柳,是夕阳中的新娘;波光里的艳影,在我的心头荡漾。"; for (int i=0;i<strlen((const char *)temp);i++) { printf("%x",temp[i]); if (i%2) printf(" "); } }
- 接线图
- 偶校验编码设计
- 原理
奇校验:编码中有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误
偶校验:编码中有偶数个1
奇偶校验:只能检测1位错,无法检查出偶数个错误,并且无法纠错
假设计算机规定好的是奇校验,发送方发送的编码是01101 0,而接收方收到的是11111 0,但是奇数个1,符合奇校验,但有两个0变成了1,所以奇偶校验只能检测出1位错误,且没法纠错。
- 接线图
- 偶校验解码电路设计
- 原理
就是把偶校验位,送去与数据位的数据去做异或运算,如果检错位为奇数,说明有错误发生;如果检错位为偶数,说明数据是正确的。
- 接线图
- 16位海明编码电路设计
- 原理
16位海明编码是一种应用于16位数据的错误检测和纠正技术。它基于海明编码的原理,并在16位数据中添加了相应数量的冗余位。以下是16位海明编码的原理:
1.原始数据:16位海明编码将原始数据分为数据位和校验位。数据位是要传输或存储的实际数据,而校验位用于检测和纠正错误。
2.冗余位:16位海明编码需要添加4个冗余位,用于检测和纠正1位错误。这4个冗余位分别位于第1、2、4和8位位置。
3. 编码规则:对于每个冗余位,它的值被设置为使得数据位和冗余位的总和(包括该冗余位)为偶数或奇数。具体规则如下:
- 第1位冗余位:计算数据位1、3、5、7、9、11、13、15的奇偶性。
- 第2位冗余位:计算数据位2、3、6、7、10、11、14、15的奇偶性。
- 第4位冗余位:计算数据位4、5、6、7、12、13、14、15的奇偶性。
- 第8位冗余位:计算数据位8~15的奇偶性。
- 错误检测:接收端在接收到16位数据后,会重新计算校验位的值。如果接收到的数据和计算出来的校验位不一致,则说明至少发生了1位错误。
- 错误纠正:如果错误检测到位错误,接收端可以使用冗余位来纠正错误。通过比较接收到的数据和计算出来的校验位,可以确定出错的位,并进行纠正。
- 接线图
- 16位海明解码电路设计
- 原理
16位海明解码是用于纠正错误的一种技术,它基于16位海明编码的原理。以下是16位海明解码的原理:
- 接收数据:接收端接收到经过16位海明编码的数据。
- 计算校验位:接收端重新计算校验位的值,按照与发送端相同的规则计算冗余位的奇偶性。
- 检测错误:接收端将计算得到的校验位与接收到的校验位进行比较。如果两者不一致,则说明至少发生了1位错误。
- 定位错误位:通过对比接收到的校验位和计算得到的校验位,可以确定出错的位数和位置。
- 纠正错误:根据定位的错误位,接收端可以将错误的位进行纠正,恢复正确的数据。
- 接线图
- 海明编码流水传输实验
- 接线图
- 16位CRC并行编解码电路设计
- 原理
16位CRC(Cyclic Redundancy Check)并行编解码电路是一种用于数据通信中的错误检测和纠正技术。它通过使用专门设计的电路来计算和验证校验位,以确保数据的完整性。
编码原理:
- 数据输入:将需要进行CRC编码的16位数据输入到编码电路中。
- 寄存器操作:编码电路中包含一个16位寄存器,用于存储待编码数据和中间计算结果。
- 生成多项式:选择适当的生成多项式作为CRC编码的标准,如CRC-16标准。
- 除法运算:编码电路将输入数据与生成多项式进行除法运算,得到余数。
- 校验位生成:余数作为校验位添加到原始数据后面,形成带有CRC校验位的输出数据。
解码原理: - 数据输入:将带有CRC校验位的16位数据输入到解码电路中。
- 寄存器操作:解码电路中同样包含一个16位寄存器,用于存储接收到的数据和中间计算结果。
- 除法运算:解码电路将输入数据与相同的生成多项式进行除法运算,得到余数。
- 错误检测:如果余数为0,则说明数据没有发生错误。如果余数不为0,则说明数据可能发生了错误。
5.错误纠正:通过比较接收到的CRC校验位和解码电路计算出的余数,可以确定出错的位。
- 接线图
- CRC编码流水传输实验
- 接线图
四、课程设计总结
本次课程设计旨在巩固对计算机中数据表示方法的理解,通过设计汉字国标码与区位码之间的转换电路、批量获取汉字机内码并用点阵形式进行显示,以及设计海明编解码电路、CRC并行编解码电路等,以加深对数据表示方法及校验码传输过程的理解。
在实验内容方面,涉及了汉字国标码转区位码、汉字机内码获取、偶校验编码设计、偶校验解码电路设计、16位海明编码电路设计、16位海明解码电路设计、海明编码流水传输实验、16位CRC并行编解码电路设计以及CRC编码流水传输实验等内容。
在实验步骤中,需要理解各种编码原理和特性,并通过实验环境中的接线图来实现相应的电路设计。比如,在进行16位海明编码电路设计时,需要掌握海明码的设计原理与检错纠错性能,并在实验环境中利用硬件电路实现对应的编解码电路。
通过这些实验,将能够加深对数据表示方法、校验码传输过程以及流水数据传输机制等概念的理解,为他们今后的学习和研究打下坚实的基础。