串行通信学习

来源:互联网 发布:windows web压力测试 编辑:程序博客网 时间:2024/06/05 19:07

★基本通讯方式

●并行通讯方式

通常是指数据字节中的各位上的数据通过多条数据线同时进行传送,每一位数据都需要一条数据线。这种方式的特点:传输速度相对较快,但是如果进行长距离的数据传送,成本会很高。

●串行通讯方式

串行通信就是将数据分成一位一位的,在一条数据线上逐个的进行传输。因此对于一个字节的数据至少需要分八次传输,相比并行通信,传输速度慢。串行通讯又分为:同步串行通信和异步串行通讯。

●异步串行通信方式

异步串行通讯是指:发送方和接收方各自有各自的时钟控制数据的发送和接收。异步通信是以帧为单位进行传输,帧与帧之间的间隙可以是任意的。一帧字符信息由四部分组成:

起始位、数据位、奇偶校验位、停止位。它的特点:不要求双方时钟一样,每帧之间要加上起始位、校验位、停止位,并且各帧之间有间隔,传输效率不高。

●同步串行通讯方式

同步通信是要建立发送方时钟对接收方时钟直接控制,使时钟同步。

★串口通信的制式

●单工:数据 传输只能沿一个方向传输,不能反过来传输

●半双工:可以双向进行传输,但是不能同时进行双向传输

●全双工:数据可以同时进行双向传输

★串口通信错误校验

●奇偶校验

奇校验时,数据中1的个数与校验位1的个数之和为奇数;偶校验时,数据中1的个数与校验位1的个数之和应为偶数。

●代码和校验

代码和是发送方将所发数据求和产生一个字节的校验帧,与接收方对所接收的数据所求得和进行比较,如果相符则说明没有差错;否则认为传输过程中出现差错。

●循环冗余校验

通过某种数学运算实现有效信息与校验位之间的循环校验。纠错能力比较强。

★波特率

波特率是用来表示串口通信时的速率的。每秒传送二进制代码的位数。1波特 = 1位/秒。

●波特率的计算

串行口共有四种工作方式,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是根据T1的溢出率决定的。

波特率计算定时器初值的方法:

一般情况下,都是通过确定波特率的值B来确定定时器的初始值。一般的计算方法(51单片机串口方式1):

如果使用的晶振是11.0592MHZ,那么我们可以知道时钟周期是1/11.0592MHZ;因为一个机器周期等于12个时钟周期,因此完成一个机器周期所用的时间就是12/11.0592MHZ。因为定时器每计数一次就花费1个机器周期,假设定时器所计的数为M,那么定时器溢出一次所用的时间就是T = M*(12/11.0592MHZ);溢出率就是T的倒数。因此可以根据公式B = (2^SMOD/32)*(1/T),然后就可以求得M,同时就知道了定时器的初始值256-M。

★与串行口相关的寄存器

IE中断允许寄存器


TMOD定时器/计数器工作方式寄存器


TCON定时器/计数器控制寄存器


SCON串行口控制寄存器





0 0
原创粉丝点击