一文讲清嵌入式的串并转换与设备同步

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。

以上是关于一文讲清嵌入式的串并转换与设备同步的主要内容,如果未能解决你的问题,请参考以下文章

C++编程,查找字符串子串并替换。

用FPGA串口发送一个16位的数据 怎么做?

FPGA设计的四种常用思想与技巧

一文讲清:数据分析与数据挖掘到底有什么区别?

串口的区别

一文讲清瀑布开发敏捷开发和DevOps