lab08_异步串联通信收发实验项目
学生姓名:苏家铭 合作学生:莫益萌
实验地点:济世楼 330 实验时间:2023 年 10 月 18 日
【实验目的】
该实验的目的是让学生通过实际操作和实验,深入了解异步串口通信的工作原理和过程。在这个实验中,学生将学习如何配置和控制串口通信参数,从而实现通过串口接收数据。通过与硬件设备进行交互,他们将体验到使用异步串口通信进行设备间数据传输的实际场景。此外,学生还将学习如何处理异步串口通信中可能出现的错误和异常情况,提高他们的故障诊断和解决能力。通过这样的实践,学生将在实验中掌握不仅仅是理论知识,而是具备实际操作的能力,使学生更好地理解和应用计算机网络中的通信原理和技术。
【实验原理】
串口与并口
串口只能用一条线传输一位数据,每次传输一个字节的第一位。
PC 系统中串口的物理连接方式有 9 针和 25 针两种方式,通过额外的子卡挡板与电脑连接
随着 PC 技术的发展,25 针的串口逐渐被淘汰,目前串口都采用 9 针的连接方式直接集成在主板上。一般的 PC 主板都提供两个串口:COM1、COM2。
标准的能够达到最高 115Kbps 的数据传输速度,而一些增强型串口如 ESP(Enhanced Serial Port 增强型串口)、Super ESP(Super Enhanced Serial Port 超级增强型串口)等则能达到 460Kbps 的数据传输速率。
并口同时通过 8 或多条数据线传输信息,一次传输一个或多个字节。
并行口由于可以同时传输更多信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。
并行接口简称并口,也就是 LPT 接口,是采用并行通信协议的扩展接口。并口的数据传输速率比串口快 8 倍,标准并口的数据传输率位 1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。
计算机接口
鼠标键盘接口:鼠标键盘接口是用于连接计算机系统与鼠标和键盘的接口。常见的接口类型包括 PS/2 接口和 USB 接口。它们使用户能够通过输入设备与计算机进行交互和控制。
USB 端口:USB(Universal Serial Bus)端口是一种通用的计算机接口,用于连接各种外部设备,如打印机、摄像头、存储设备、音频设备等。USB 端口具有热插拔功能,方便用户在计算机运行时连接和断开设备。
并行端口:并行端口是一种用于高速数据传输的接口,常用于连接打印机和其他外部设备。其中,最常见的是传统的打印机端口(LPT 端口),它使用并行方式传输数据。
COM 端口:COM(Communication)端口是一种用于串行数据通信的接口。在过去,它经常用于连接调制解调器和外部设备。COM 端口通过串行方式发送和接收数据,其中 COM1 是最常见的端口。
VGA:VGA(Video Graphics Array)是一种图形显示接口,用于连接计算机与显示器。它是一种模拟视频接口,广泛用于连接显示器、投影仪和其他显示设备。
LAN:LAN(Local Area Network)是局域网的意思,是一种用于连接计算机和其他设备的接口。通常使用以太网(Ethernet)技术,使得多台计算机可以共享数据、打印机和其他资源。
Line In 和 Line Out:Line In 和 Line Out 是用于音频输入和输出的接口。Line In 接口用于将外部音频信号输入计算机系统,如麦克风信号。Line Out 接口用于从计算机输出音频信号,如连接扬声器或耳机。
串口特性
RS232 接口是 1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。 该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替 DB25 的 DB9 接口,现在都把 RS232 接口叫做 DB9。
其中 RS232 采用负逻辑电平:
- 15 - -3V 为逻辑 1
+15 - +3V 为逻辑 0
电压值通常在 7V 左右
RS232 接口
【实验设备】
两台 PC 机
友善串口助手软件
RS232 串口线
【实验步骤】
利用串口线将两台电脑连接,将固定螺丝拧紧。
打开串口助手软件,并与操作另一台电脑的同学确认设置相同的波特率、数据位、校验方式等相关参数。
测试传输文本数据、文件数据是否成功,并记录实现现象。
更改参数,重复上述步骤 2、3
【实验现象】
【分析讨论】
校验方式不同
串口通信中使用不同的校验方式是为了确保数据的完整性和准确性。不同的校验方式采用不同的算法来生成校验值,用于检测数据传输过程中的错误。当串口通信中的校验方式不同时,会影响数据的校验和验证方式,因此数据的传输和接收会受到不同的影响,以下是一些常见的串口校验方式:
奇偶校验
奇校验:发送端设置数据位的总数(包括校验位)为奇数,确保传输的数据中有奇数个高位。
偶校验:发送端设置数据位的总数为偶数,确保传输的数据中有偶数个高位。
原理:接收端接收数据后,会计算接收到的数据中高位的数量,然后与发送端设定的奇偶性进行比较。如果不符合奇偶性要求,就表示数据传输存在错误。
循环冗余检测(CRC):
原理:CRC 校验使用多项式运算,将数据和一个预定的多项式进行异或运算,然后将结果附加到数据中。接收端也会进行相同的运算,然后将结果与发送端附加的 CRC 进行比较。如果结果不一致,就表示数据传输存在错误。
如果发送端和接收端的校验方式不一致,通常会导致数据被错误地认为是损坏的,从而被丢弃或需要重新传输。因此,在串口通信中,确保发送端和接收端使用相同的校验方式非常重要,以避免数据传输错误。通过实验我们可以指导,当校验方式不同的时候,接收端是无法接收到发送端的数据的。
数据位不同
串口通信中的数据位指的是每个数据字节中用于传输数据的位数。常见的数据位数包括 5 位、6 位、7 位和 8 位。数据位数的选择决定了每个字节内能够传输的数据量。
当数据位数不同时,会影响数据传输的容量和精度。较低的数据位数意味着每个字节可以传输的数据范围较小,而较高的数据位数可以传输更多的数据。
在串口通信中,发送端和接收端必须使用相同的数据位数进行设置,以确保数据的正确传输。如果发送端和接收端的数据位数不匹配,通信可能会发生错误,因为接收端无法正确解析发送端传输的数据。
具体到通信内容,数据位数的不同会导致以下情况:
数据丢失:如果发送端发送的数据位数比接收端期望的数据位数少,接收端可能无法正确解析数据。这可能会导致数据丢失或数据错误。
数据精度降低:较低的数据位数意味着每个字节能够传输的数据范围较小。这可能导致数据精度下降,无法传输较大或较精确的数据。
数据解析错误:如果发送端和接收端的数据位数不匹配,接收端无法正确解析发送端传输的数据。这可能导致解析错误或乱码。
通过实验我们确实可以观察到,当数据位为8的时候,基本的字符都是可以正常传输的;当我们将数据为逐渐减少的时候,数字仍然可以正常传输,因为我们利用了 ASCII 码作为编码方案,数字的范围是从 48 到 57,因此当数据位为 6 的时候,也就是说有 26 的范围可以表示 ASCII 码,此时数字可以传输;但是对于字母 ASCII 较大(65-90/97-122),通过实验我们可以发现传输到接收端显示为乱码。
文件传输
通过实验发现,不同串口助手对文件的支持程度不同,实验中,我们将文本文件传输,其中一个串口助手只能读取文件名,但另外一个串口助手可以将文本内容传输。
不同的“串口助手”都可以进行数据的传输
这里涉及到分层的概念。不同的串口助手之间可以通过同一串口进行数据传输,这是因为串口通信遵循标准的硬件和通信协议,而不受特定软件工具的限制。
标准串口接口硬件:串口通信使用标准的串口接口硬件,如 RS-232、RS-485、UART 等。这些接口遵循通用的物理层和电气规范,包括线路电平、数据位、停止位、波特率等。因此,不同的串口助手都可以使用相同的物理串口连接到串口设备。
通用串口协议:串口通信的核心是数据的传输和接收,它们遵循通用的串口通信协议。协议规定了如何传输数据、数据帧的格式、校验和错误检测等。这些通用协议不受特定串口助手的限制,因此可以被不同的串口助手共享。
操作系统驱动支持:操作系统提供串口通信的驱动程序和接口,这些驱动程序允许不同的串口助手与串口硬件进行通信。不同的串口助手可以通过操作系统的串口接口来访问和控制串口。