码迷,mamicode.com
首页 > 其他好文 > 详细

串行通信学习(1)

时间:2014-07-16 17:21:46      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:串行通讯   单片机   

★基本通讯方式

●并行通讯方式

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

●串行通讯方式

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

●异步串行通信方式

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

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

●同步串行通讯方式

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

★串口通信的制式

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

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

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

★串口通信错误校验

●奇偶校验

奇校验时,数据中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中断允许寄存器

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

SCON串行口控制寄存器

bubuko.com,布布扣




串行通信学习(1),布布扣,bubuko.com

串行通信学习(1)

标签:串行通讯   单片机   

原文地址:http://blog.csdn.net/xgsilence/article/details/37817977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!