Digital-electronics 简明教程
Digital Electronics - Binary Codes
Binary codes 是数字电子学中的一个重要概念。二进制码是一种由两位数字 0 和 1 组成的数字码。二进制码在任何数字计算系统中充当主语言。二进制码可以表示不同类型的信息,例如数字、字母、图像、视频等。
在本章中,我们将解释二进制码的基础知识、工作原理、优势、局限性和应用。
What are Binary Codes?
Binary codes 用于以 0 和 1(即二进制数字)的形式表示文本、数字、图像或其他类型的信息。二进制码形成了数字计算系统(如计算机)的主语言。
所有数字系统只能理解和处理以二进制语言表示的信息。在二进制码情况下,每个数字被称为 binary digit 或 bit 。
二进制码使用 0 和 1 表示信息。在数字系统中,二进制码组织成 bits 或 bytes 等片段。一位要么是二进制 0,要么是 1。当 8 位组合在一起时,则称为一个字节。每个字节代表数字系统中的一小部分信息。
Types of Binary Codes
二进制码可分类为以下主要类型:
-
Weighted Binary Codes
-
Non-weighted Binary Codes
-
Alphanumeric Code
-
Binary Coded Decimal (BCD)
-
Error Detecting Code
-
Error Correction Code
让我们详细讨论每种类型的代码。
Weighted Binary Codes
加权二进制码是一种二进制码,其中每个位位置都有一个与其位置值相关的特定权重。
在加权二进制码中,位置权重按 2 的幂定义。每个位的权重取决于其在二进制码中的位置。因此,在给定的加权二进制码中,最右边的位具有最低的权重,最左边的位具有最高的权重。
一般而言,加权二进制码中第 n 位的权重由以下公式给出:
第 n 位 = 2n
例如,让我们将一个 4 位加权二进制码 1011。该码的值为:
1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
1 × 8 + 0 × 4 + 1 × 2 + 1 × 1
8 + 0 + 2 + 1 = 11
很明显,最右边的位的位置权重为 20 = 1,而最左边的位的位置权重为 23 = 8。
加权二进制码的示例为 8421 BCD 码、5211 码、2421 码等。
Non-Weighted Binary Codes
在数字电子学中,每一位位置都没有与其相关联的特定权重的数字或二进制码类型称为非加权二进制码。
在非加权二进制码中,位的数值不取决于数字中的位置。每一位位置具有相等的位置值。
非加权二进制码的示例包括补码 3 和格雷码。
Alphanumeric Codes
一个二进制数字或二进制位只能表示两种状态“0”或“1”。但这对于两台计算机之间的通信而言是不够的,因为我们需要更多的符号进行通信。这些符号必需用来表示带有大小写字母的 26 个字母、0 到 9 的数字、标点符号和其他符号。
字母数字代码是表示数字和字母字符的代码。大多数此类代码也表示其他字符,例如符号和传达信息所需的各种指令。
字母数字代码是使用同时表示数字和字母字符的字符编码方案的二进制代码。字母数字代码主要用于涉及字符表示和信息交换的应用中。
字母数字代码的一些常见示例是 ASCII(信息交换美国标准代码)、扩展 ASCII、EBCDIC(扩展二进制编码十进制交换代码)、Unicode 等。
字母数字代码至少应表示 10 位数字和 26 个字母,即共 36 个项目。以下三个字母数字代码非常适用于数据表示 -
-
信息交换美国标准代码 (ASCII)
-
扩展二进制编码十进制交换代码 (EBCDIC)
-
Five bit Baudot Code
ASCII 码是 7 位码,而 EBCDIC 是 8 位码。ASCII 码更常用,而 EBCDIC 主要用于大型 IBM 计算机中。
Binary Coded Decimal (BCD)
二进制编码十进制或 BCD 是用于以其数字格式表示十进制数字的二进制码。此代码中,每个十进制数字由一个 4 位二进制数字表示。BCD 是一种用二进制码表示每个十进制数字的方法。在 BCD 中,每个十进制数字由二进制位的唯一组合表示。
BCD 主要用于需要执行十进制算术运算的数字系统,如在计算机、计算器、显示设备、数字传感器等。
在 BCD 中,使用 4 位可以表示 16 个数字(0000——1111),但 BCD 代码仅使用前 10 个(0000——1001)。其余六个代码组合(1010——1111)在 BCD 中无效。
Error Detecting Codes
错误检测代码是一种特殊类型的二进制代码,用于识别数字通信和数据存储中的错误。错误检测代码会为数据添加冗余,从而允许接收器识别是否存在错误。错误检测代码的常见示例包括奇偶校验位、校验和、汉明码等。
错误检测代码对于确保数据传输和存储的完整性非常重要。它们有助于提高系统的可靠性。
Error Correcting Codes
错误校正码是二进制代码,旨在校正数据传输或存储期间数字系统中出现的错误。错误校正码会为要传输或存储的数据添加一些附加信息。
错误校正码部署与错误检测代码相同的策略,但另外,此类代码还检测损坏位的准确位置。这允许接收器即使某些位已损坏,也能重新获取原始数据。
在错误校正码中,奇偶校验拥有一个简单的错误检测方法,以及一个确定损坏位位置的复杂机制。一旦找到损坏位,其值就会被还原(从 0 到 1 或从 1 到 0)以获取原始消息。
与错误检测代码一样,错误校正代码对于维护数字通信和数据存储应用中的数据完整性非常重要。
根据通信信道类型、错误模式、错误校正程度等,不同数字系统中使用不同类型的错误校正代码。错误校正代码的一些常见示例包括汉明码、里德-所罗门码、低密度奇偶校验码、BCH 码等。
How to Detect and Correct Errors?
为了检测和校正错误,在传输时会向数据位添加附加位。
-
附加位被称为 parity bits 。它们允许检测或校正错误。
-
数据位和奇偶校验位共同构成 code word 。
Parity Checking of Error Detection
这是检测和纠正错误的最简单技术。8 位单词的 MSB 用作奇偶校验位,剩余的 7 位用作数据或消息位。8 位已传输单词的奇偶校验可以是偶校验或奇校验。
Even Parity −偶校验表示给定单词(包括奇偶校验位)中 1 的数量应为偶数(2、4、6、……)。
Odd Parity −奇校验表示给定单词(包括奇偶校验位)中 1 的数量应为奇数(1、3、5、……)。
Use of Parity Bit
根据所需的奇偶校验类型,可以将奇偶校验位设置为“0”或“1”。
对于偶校验,此位设置为 1 或 0,以使整个单词中的“1 位”数量为偶数。参见图 (a)。
对于奇校验,此位设置为 1 或 0,以使整个单词中的“1 位”数量为奇数。参见图 (b)。
How Does Error Detection Take Place?
如果接收器信号的奇偶校验与预期奇偶校验不同,接收器的奇偶校验检查可以检测到错误的存在。这意味着,如果已知传输信号的奇偶校验始终为“偶数”,而接收信号为奇校验,则接收器可以得出结论,即接收信号不正确。
如果检测到错误,则接收器会忽略接收的字节,并向发送器请求重新传输该字节。
Advantages of Binary Codes
二进制码在数字电子领域具有多个优势。以下是使用二进制码的主要好处−
-
Simplicity −二进制码仅使用两个数字,即 0 和 1,来表示信息。它简化了电子电路设计和实现。
-
Ease in Implementation −二进制码仅使用两种状态,即开和关。因此,它们的实现非常简单。
-
Ease of Storage −二进制码很容易存储在数字存储设备中,如硬盘、CD、DVD、U 盘等。它们以更高的效率要求紧凑存储。
-
Easy and Fast Processing −二进制码可以使用具有算术和逻辑单元的数字系统高效处理。它们允许快速且无差错的计算。
-
Easy Communication −二进制码提供了一种以非常高的速度传输信息的高效方法。可以对二进制码应用各种错误检测和纠正技术,从而使数字通信更加高效。
-
Easy Scalability −二进制码提供数字系统的可轻松扩展性。我们只需在代码中添加更多位即可增加数字系统的范围。
-
Compatibility −二进制码与各种数字设备和系统兼容。
-
Reliability −二进制码对噪声和干扰有很高的免疫力,从而提高了数字系统的可靠性。
Disadvantages of Binary Codes
如上所述,二进制码有几个优点。但是,它们也有一些缺点和局限性。
以下是二进制码的一些主要缺点−
-
二进制代码并不友好。对于人类来说,阅读和理解二进制代码可能是一项复杂的任务。
-
在某些情况下,二进制代码必须转换为其他进制,这会给系统增加额外的计算开销。
-
二进制代码在通信信道中需要更高的传输带宽。
-
在二进制代码中,要识别出错误是相当困难的。如果遇到较长的二进制序列,这将变成一项更大的挑战。
Applications of Binary Codes
二进制代码由于其信息表示的高效率而在数字电子学的各个领域得到广泛应用。
以下是二进制代码的一些关键应用——
-
Digital Computers − 二进制代码主要用于数字计算机中来表示信息和指令。
-
Digital Communication − 二进制代码还用于通过数字信道来传输数据和信息。
-
Digital Displays − 二进制代码还用于在数字系统中显示数字和字母。
-
Barcode Systems − 二进制代码还用于条形码系统,用于产品识别和库存管理。在此系统中,不同宽度和间隔的条形代表可由扫描仪解释的二进制位。
-
Data Storage − 二进制代码用于存储数字设备(例如计算机内存)中的信息。
-
Digital Control Systems − 二进制代码用于对数字控制系统进行编程。在数字控制系统中,二进制代码用于表示用于自动化的不同类型的控制信号和指令。
-
Computer Graphics − 二进制代码还用于计算机图形中来表示颜色、形状、像素值和其他信息。