通信有并行通信和串行通信
并行通信
将数据字节的各位用多条数据线同时进行传送。
特点:控制简单,传输速度快。但传送线较多。成本高
串行通信
将数据字节分成一位一位的形式,在一条传输线上逐个传送。
特点:传输线少,长距离传送时成本低。且可以利用电话网等线程设备,但数据的传送控制比并行通信复杂
串行通信又可分为异步通信和同步通信。
-
异步通信
发送与接收设备,使用各自的时钟控制数据的发送和接收过程。未使双方收发协调,要求发送和接收设备的时钟尽可能一致。 -
- 异步通信以字符(构成的帧)为单位进行传输
字符与字符之间的间隙是任意的。但每个字符中各位是以固定的时间传送的。
- 异步通信以字符(构成的帧)为单位进行传输
-
同步通信
收发双方的时钟必须完全同步。
传输数据的位之间的距离均为位间隔格的整数倍。
传输的字符之间不留间距。
串行通信的传输方向
单工指数据传输仅能沿一个方向,不能实现反向传输。
半双工数据传输可以沿两个方向,但需要分时进行。
全双工指数据可以同时进行双向传输。
传输速率
比特率是指每秒钟传输二进制代码的位数,单位是位每秒(bps)。
如每秒钟传送240个字符,而每个字符格式包含10位(一个起始位,一个停止位,8个数据位)。这时的比特率为10位×240个每秒,等于2400bps。
串行通信常见错误校验
- 奇偶校验。
发送数据时,数据为尾随一位的奇偶校验位(0或1) - 代码和校验
代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。 - 循环冗余校验
这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。
RS232C
RS 232C 是EIA1969年修订的标准,规定使用25针的连接器,之后推出了9针的连接器
下图中括号中的指针为9脚
插针序号 | 信号名称 | 功能 | 信号方向 |
---|---|---|---|
1 | PGND | 保护接地 | |
2(3) | TXD | 发送数据(串行输出) | DTE—>DCE |
3(2) | RXD | 接受数据(串行输入) | DTE<—DCE |
4 (7) | RTS | 请求发送 | DTE—>DCE |
5(8) | CTS | 允许发送 | DTE<—DCE |
6(6) | DSR | DCE就绪(数据建立就绪) | DTE<—DCE |
7(5) | SGND | 信号接地 | |
8(1) | DCD | 载波检测 | DTE<—DCE |
20(4) | DTR | DTE就绪(数据终端准备就绪) | DTE—>DCE |
22(9) | RI | 振铃指示 | DTE<—DCE |
波特率
串行通信中,对收发双方的速率要有约定。
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。
- 方式0的波特率 = fosc/12
- 方式2的波特率 =(2SMOD/64)· fosc
- 方式1的波特率 =(2SMOD/32)·(T1溢出率)
- 方式3的波特率 =(2SMOD/32)·(T1溢出率)
串口如何使用?
- 串行口工作之前,应对其进行初始化,主要是设置产
生波特率的定时器1、串行口控制和中断控制。具体
步骤如下:
- 确定T1的工作方式(编程TMOD寄存器);
- 计算T1的初值,装载TH1、TL1;
- 启动T1(编程TCON中的TR1位);
- 确定串行口控制(编程SCON寄存器);
串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。