一、串口通信
1.1、计算机通信的基础
计算机通信:是将计算机技术与通信技术相结合,完成计算机与外部设备或计算机与计算机之间的信息交换,可分为两大类:并行通信与串行通信。
多微机系统的广泛应用与计算机网络技术的普及。
计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。
通信有两种方式:并行通信、串行通信。
在多微机系统以及现代测控系统中信息的交换多采用串行通信。
1.2、并行通信
将数据字节的各位用多条数据线同时进行传送。同时传送8个字节(下图 )
串行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收困难。
1.3、串行通信
将数据字节分成一位一位的形式存,在一条传输线逐个传输。
特点:传输线少,长距离传送时成本低,且可以利用电话线等现成设备,但数据的传输控制比并行通信复杂。
先传输低位,在传输高位
串行通信可分为同步通信和异步通信
1.3.1、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制(两个时钟完全同步),使双方达到完全同步,此时,传输数据的为之间的距离均为“为间隔”的整数倍,同时传送的字符间不留间歇,即保持同步关系,也保持字符同步关系,发送方对接收方的同步可以通过两种方法实现。
1.3.2、异步通信
异步通信是指通信的发送和接收设备使用各自的时钟(即:两个设备的时钟是相互独立的)控制数据的发送和接收的过程,为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间歇是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一个字符内的各位之间的距离均为“位间隔”整数倍。
异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符都要附加2~3位用于起止位,各帧之间
还有间隔,因此传输效率不高。
1.3.3、串行通信的传输方向
单工:数据传输仅沿一个方向,不能实现反向传输。
半双工:数据传输可以沿两个方向,但需分时进行。
全双工:数据可以同时进行双向传输。
1.3.4串行通信中常见的错误校验
奇偶校验
发送数据时,数据为尾随1位奇偶检验位(0或1)。
奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数。
偶校验时,数据中“1”的个数与检验位“1”的个数之和应为偶数。
接收字符时,对“1”的个数进行检验,若发现不一致,则说明传输数据过程中出现了差错。
代码和校验
发送将所发数据块求和(或个字节异或),产生一个字节的校验字节(校验和)附加到数据块末尾,
接收方接收数据同时对数据块(除校验字节外)求和(或个字节异或),
将所得的结果与发送方的"检验和"进行比较,相符则无差错,否则即认为传送过程中出现了差错。
循环冗余校验
通过某种数学运算实现有效信息与校验位之间的循环校验,常用与对磁盘信息的传输、存储区的完整性校验。
这种检验方法纠错能力强,广泛应用于同步通信中。
1.3.5、传输速率
比特率(也叫波特率):每秒钟传输二进制代码的位数
单位:位/秒(bps)
例子:每秒传输240个字符,每个字符包含10位(一个起始位、一个停止位、八个数据位),这时的比特率为:
10位 X 240个/秒 = 2400 bps
1.3.6、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关,
当传输线每使用0.3M(约为1英尺)有50PF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增大而减小。
当比特率超过1000bps时,最大传输距离迅速下降,如9600bps时最大距离下降到只有76M(约为250英尺)
1.4、串行通信的接口标准
1.4.1、RS-232C接口
EIA(美国电子工业协会)1969年修订RS -232C标准。
RS-232C定义了数据终端设备(DTE) 与数据通信设备(DCE)之间的物理接口标准。
机械特性:RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头)
过程特性:规定了信号之间的时序关系,以便正确地接收和发送数据。
1.4.2、RS-232存在的问题
1.5、RS-422A接口
RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻辑“1”状态,另外一条线就为逻辑“0”,比采用单端不平衡驱动对电压的放大倍数大一倍,差分电路能从地线干扰中拾取有效信号,差分接收器可以分辨200mv以上电位差。若传输过程中混入了干扰和噪声,由于差分放大器的作用,可使干扰和噪声相互低消。因此可以避免或大大减弱地线干扰和电磁干扰的影响。RS-422A传输速率
(90Kbps)时,传输距离可达到1200米
1.6、RS---485接口
1.7、89C51串行口的结构
1.8、80C51串行的控制寄存器
SCON是一个特殊功能寄存器,用以设定串行口的工作接收/发送控制以及设置状态标志;
S
SM0和SM1为工作方式选择位,可选择四种工作方式;
二、单片机与单片机的通信
三、串口通信编程
#include "reg52.h"
typedef unsigned int u16; // 定义数据格式
// #define 宏定义关键字
typedef unsigned char u8;
void statsInit()
{
TMOD = 0x20;
TH1 = 0xF3;
TL1= 0xF3;
PCON=0x80;
TR1=1; // 打开定时器
SCON = 0x50;
ES=1;
EA=0;
}
void main()
{
statsInit();
while(1);
}
void Ustart() interrupt 4
{
u8 receiveDate; // 将数据从缓冲器中读出
receiveDate =SBUF;
RI=0; //软件清零
SBUF = receiveDate;
while(!TI);
TI=0;
}
上一篇:89C51之EEPROM-IIC 实验 ---- 自学笔记
下一篇:STC89C52之中断终结篇 ---- 自学笔记
推荐阅读最新更新时间:2024-11-08 14:33
设计资源 培训 开发板 精华推荐
- REP008: 工作在通用85MHz低IF,用于CDMA、PCS和AMPS的双频前端IC
- LT3758MSE 演示板,反激式,输入电压:18V 至 75V,输出电压:3.3V/3A,(3x3 QFN)
- E8300-001-GEVB:Ezairo 8300:用于无线助听器和耳戴式设备的高端音频 DSP
- Blip:带有传感器和调试器的 Nordic nRF52840 开发板(原理图、PCB、源码等)
- 使用 Richtek Technology Corporation 的 RT9014A 的参考设计
- 无刷电机的驱动器vesc6.4
- 【郑州工商学院】迷宫小车+创新小分队
- SC441 4串150mA LED高效集成驱动器的典型应用
- 过流监控器最高可运行26V
- LPC55S16-EVK: LPCXpresso55S16开发板