一文讲清嵌入式的串并转换与设备同步
Posted timerring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文讲清嵌入式的串并转换与设备同步相关的知识,希望对你有一定的参考价值。
并行通信与串行通信
通信:CPU与外设、计算机之间交换信息
通信方式:串行、并行
1. 并行通信
同一时刻数据的各位并行(同时)地传送,如按字节传送,一次同时传8位。
- 优点:处理速度快
- 缺点:占口线多,线路复杂,成本高,传输距离短,小于20M
2. 串行通信
数据一位一位地依次传送,只要少数几条线就可交换信息。
- 优点:线路简单(可利用电话线,降低成本),适用于远距离传输
- 缺点:速度比较慢
3. 串行通信的传输方式
有单工、半双工、双工之分
3.1 单工通信
只允许一个方向传输数据.
为控制线路换向,必须对两端设备协调,以便确定数据流方向,谁发送谁接收,何时发送等等。这种协调可以靠增加接口的附加控制线来实现,也可用软件约定来实现
3.2 半双工通信
双向交替通信又称为半双工通信,即通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。这种通信方式是一方发送另一方接收,过一段时间后再反过来。
3.3 双工通信
允许两个方向同时进行数据传输,A发B收,同时B发A收。显然两个传输方向上的资源必须完全独立,A与B有独立的接收器和发送器,从A到B和从B到A的数据通路也必须完全分开。
以上3种通信方式是在两个站之间进行的,称为点到点通信方式,还有一种主从多终端方式,A站可向多个终端(B、C、D等)发出信息,在A站允许的条件下,可以控制管理B、C、D等站在不同时间向A站发出信息,根据数据传输方向分为多终端半双工通信和多终端双工通信。
4. 参数规定
- 字符格式规定(一帧):
起始位(0),数据位(5、7、8位),校验位(可选,如奇偶校验位),和停止位(1)。 - 波特率(位/秒)对传送速率的规定
波特率是衡量数据传送速率的指标,它要求发送站与接收站要以相同的数据传送速率工作
例:要求每秒传送120个字符,每个字符帧为10位。字符间无空闲位,则传送的波特率为:
B=120字符/秒∗10位/字符
=1200位/秒=1200波特
可见传送二进制电平时,波特率就是每秒传送多少位,与每一位的传送时间成反比。
Td=1/1200位/秒=0.833ms/位
这种方式利用每个字符的起止信号来建立同步,其特点是:每个字符内部的各位均采用固定的时间间隔,而每个字符间的间隔可以改变,没有固定时间,完全靠每个字符附加的起始位和停止位来进行识别,所以称为“异步”
- 优点是:实现较简单,比较灵活
- 缺点是:每个字符都要建立一次同步,要额外附加码元,所以传送速率低
5. 串←→并转换与设备同步
两个通信设备在串行线路上成功地实现通信必须解决两个问题:
- 一是串←→并转换,即如何把要发送的并行数据串行化,把接收的串行数据并行化;
- 二是设备同步,即同步发送设备与接收设备的工作节拍,以确保发送数据在接收端被正确读出。
5.1 串并转换
- 发端:并串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。
- 收端:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。
设备同步对通信双方有两个共同要求:
- 一是通信双方必须采用统一的编码方法;
- 二是通信双方必须能产生相同的传送速率。
一般说来,通讯协议分为了电气协议和软件协议两个部分。
串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。
当向SBUF发“写”命令时(执行“MOV SBUF,A”指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。
在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发读SBUF命令时(执行“MOV A,SBUF”命令),便由接收缓冲器(SBUF)取出信息通过89C51内部总线送CPU。
以上是关于一文讲清嵌入式的串并转换与设备同步的主要内容,如果未能解决你的问题,请参考以下文章