5.5. 电信号的符号/码元编码,英文为symbol
(1)
符号(symbol)的定义
这里的符号,与信源编码提到的符号不是一个概念。信源编码的符号是
信息
的最小载体,如文字符号、图像符号、声音符号等。
这里的符号是底层的电子通信层面的一个概念,是一个具有一定时间长度的、一定形状的电信号就是符号,或者说具备某种特征量(幅度、频率、相位)的电信号就是符号,从示波器上看,就是电信号的波形,是
二进制比特数据的最小载体
或最小单位。
虽然,该概念,在I2C和SPI串口通信中没有很显现的作用,但这个概念非常非常的重要,在无线通信中会反复使用该概念。
(2)基本电信号波形的分类
而在电信号通信的系统中,常用两种基本的电信号波形承载数据。
符号可以是数字波形的矩形波,也可以是模拟波形的正弦波,也可以是基本模拟波形的复合体。
通过控制矩形波的电信号参数来承载数据。
常见的参数有:
a) 幅度
:通过控制电信号的幅度来承载信息,如
在正逻辑中
,如TTL电平中,采用的就是用高电平(如5V)表示二进制的“1”;用低电平(如<0.2V)表示二进制“0”。
I2C和SPI2串口通信采用的正是这种正逻辑。
当然,所有正逻辑,就要负逻辑,RS232通信就采用的是负逻辑。
b) 周期或频率:
通过控制电信号符号的发送周期或频率,来传送不同速率的数据。
这时候的电信的传输速率,称之为符号速率或波特率。
通过控制正弦波的电信号参数来承载数据。
常见的参数有:
幅度:通过控制正弦波的幅度来承载二进制数据,称为ASK.
相位:通过控制正弦波的相位来承载二进制数据,称为PSK.
频率:通过控制正弦波的频率来承载二进制数据,称为FSK.
在介绍无线通信案例时,再深入探讨这个主题。
(2)
码元(symbol)的定义
英文也是symbol,是符号在数字电子通信的别名,即如果电信号的符号是
数字电信号
时,给它取个别名:码元。
(3)码元编码
一个码元可以承载一个比特的二进制数据,也可以由多个码元承载1个二进制比特,也可以由多个码元承载多个二进制比特。
这就是码元编码:(1)采用什么样的码元信号,或码元符号表示逻辑的0或1;(2)采用多少码元,表示二进制的逻辑的0和1。
不同的通信方式,又不同的码元编码方式。
从码元
形状
与二进制比特的关系来看:
I2C和SPI串口通信采用的是:+5V表示二进制逻辑“1”; 低电平表示+5V表示二进制逻辑“0”
RS232串口通信采用的是:-3V~-15V表示二进制逻辑“1”; 低电平表示+3V~+15V表示二进制逻辑“0”;
从码元
数量
与二进制比特的比例关系来看:
I2C和SPI串口通信,均采用的是1:1的关系,即一个码元,代表一个比特的二进制数:0或1.
其他更加复杂的映射关系,在后续的其他通信方式中再进行深入的探讨。
(4)比特率、码片率、波特率、符号速率
在计算机通信中,经常会听到这三个代表数据传输速率的词。这三个词,既有关联,又有所不同,这跟底层的码元编码方式有很大的关系。下图展现了不同速率之间的层次关系:
-
比特率:表示每秒钟传送的二进制比特的个数。
-
码片率:表示每秒钟传送的二进制码元的个数。
-
波特率:表示每秒钟传送的数字符号的个数。
-
符号率:表示每秒钟传送的模拟符号的个数。
在I2C和SPI串口通信中个,二进制比特与电信号波形之间编码采用的是1对1的关系,因此这几个速率是完全等同的。
5.6. 信号的发送与接口
5.6.1 SPI信号发送的时序(FDD时序)
I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。
起始和结束信号总是由主设备产生。
在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;
而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态。
如图所示:
(2)I2C数据的传输
在了解起始条件和停止条件后,我们再来看看在这个过程中
数据的传输
是如何进行的?
数据传输以字节为单位。
主设备在SCL线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,
回传给主设备一个应答位
,此时才认为一个字节真正的被传输完成。
当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否定应答位。
数据传输
的过程如图所示:
(3)带地址信息的数据传输
I2C总线上的每一个设备都对应一个唯一的地址,
主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。
如图所示:
CPU的写数据:
CPU的读数据,
数据的上行与下行,是由协议预先协商好的,并且有方向位决定。
第6章 信道对信息的传输过程
I2C和SPI总线是芯片与芯片之间的通信总线,因此,传输信道实际上就是PCB板上的敷铜走线。
线路上传输的电信号与Master发送时的电信号是完全一致的
以SPI总线为例。
I2C总线也是类似的。
第7章. 信宿对信息的接收过程及其关键原理
信宿对信号的接收和解码过程与信源对信号的编码与发送正好是反向过程。
(1)信号的接收:Slave设备从线路上接收特定时序的电信号
(2)符号/码元解码:Slave设备把特定时序的电信号进行解码,转换成二进制的比特流
(3)L1信道解码:Slave设备从二进制的比特流,还原物理层的帧结构,并根据物理层帧的结构分离出帧中的各个域,包括帧前导、帧开始和物理层帧的净荷。
(4)L2-4网络解码:从物理层帧的净荷中,获取设备的地址、寄存器的地址和相应的数据信息。
(5)离散的数字数据:得到需要写入寄存器中的数据。
(6)信宿:Slave从设备
信源master,通过I2C和SPI总线,把需要发送给slave的二进制数据,经过层层编码,并转换成特定时序的电信号,通过PCB连线,发送到Slave。
信宿Slave,从线路上接收到特定时序的电信号,然后经过层层解码,获得master发送过来的二进制数据,最后把接收到的二进制数据写入到自己的内存中。
至此,我们通过Uart通信、I2C通信、SPI通信阐述了数字通信的基本过程与核心概念。
这三种通信方式的共同点,就是通过TTL数字电平信号传送0和1二进制数据。每个完整的数字电电平信号,代表一个二进制比特的0或1。且需要传输的物理层帧的二进制数据与线路上传送的信号电平之间是完全的1对1的映射关系。
后续,我们将进一步探讨以太网通信,在以太网通信中有两个显著的不同点:
(1)需要传输的物理层帧的二进制数据与线路上传送的信号电平之间是不再是1对1的映射关系。
(2)不需要专门的时钟信号线在两个通信的节点之间传递时钟,而是通过特定的物理层的编码技术,实现在传输数据的同时,也同时能够传递同步时钟。
- 阻塞与非阻塞
- 死锁、饥饿、活锁同步与异步同步:同步方法一旦被调用,必须等待方法返回后才能继续后续的行为。
异步:异步方法就像一个消息传递,被调用后方法会立即返回,调用者可以开始后续的行为。并发与并行并行:两个任务同时执行。
并发:一段时间内,多个任务在CPU交替执行,看似
将时间转成秒 java 时间转换java代码
Java时间类型转换详细代码示例一、时间类型转换代码示例二、时间标准简介1、UTC(世界标准时间)2、GMT(格林尼治平时)3、CST(北京时间)三、SimpleDateFormat 参数对照表 一、时间类型转换代码示例示例代码如下:package com.lyp;
import java.text.ParseException;
import java.text.SimpleDateForm