-
通信与网络中的ADSL的技术特点及应用发展
2020-12-08 22:21:501 ADSL的主要技术特点 ADSL(Asymmetric Digital Subscriber Line),称为非对称数字用户线路。当在电话线两端分别放置ADSL Modem时,在这段电话线上便产生了3个信息通道:一个速率为1.5-9Mb/s的高速下行通道,... -
串行异步通信_什么是并行传输、串行传输、异步传输?
2021-01-13 06:35:08串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息...串行通讯
一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。
串行通讯中,两个设备之间通过一对信号线进行通讯,其中一根为信号线,另外一根为信号地线,信号电流通过信号线到达目标设备,再经过信号地线返回,构成一个信号回路。
初级读者会产生疑问:为何不让信号电流从电源地线返回?答案:公共地线上存在各种杂乱的电流,可以轻而易举地把信号淹没。因此所有的信号线都使用信号地线而不是电源地线,以避免干扰。
这一对信号线每次只传送1bit(比特)的信号,比如1Byte(字节)的信号需要8次才能发完。传输的信号可以是数据、指令或者控制信号,这取决于采用的是何种通讯协议以及传输状态。串行信号本身也可以带有时钟信息,并且可以通过算法校正时钟。因此不需要额外的时钟信号进行控制。
并行通讯中,基本原理与串行通讯没有区别。只不过使用了成倍的信号线路,从而一次可以传送更多bit的信号。
并行通讯通常可以一次传送8bit、16bit、32bit甚至更高的位数,相应地就需要8根、16根、32根信号线,同时需要加入更多的信号地线。比如传统的PATA线路有40根线,其中有16根信号线和7根信号地线,其他为各种控制线,一次可以传送2Byte的数据。并行通讯中,数据信号中无法携带时钟信息,为了保证各对信号线上的信号时序一致,并行设备需要严格同步时钟信号,或者采用额外的时钟信号线。
通过串行通讯与并行通讯的对比,可以看出:串行通讯很简单,但是相对速度低;并行通讯比较复杂,但是相对速度高。更重要的是,串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上;而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差,因此对通讯距离有非常严格的限制。
历史
最早的计算机设备之间全部采用串行接口,比如硬盘接口、打印机接口、通讯端口等等。那时候都是分立元件的电路设计,如果采用并行接口,元件的数量和占用的空间将成倍增长。比如一个8bit并行线路的接口元件数量将是串行线路的8倍(你得为每根信号线配置一套接收电路)。这个时期的数据通讯只能是非常简单而低速的。
但是集成电路技术的出现带来了一个转变,当大量元件可以集成到一个小小的芯片上时,并行通讯变得廉价而方便了。不论是8bit、16bit还是更高位数的并行线路,只需要一个并行接口芯片就可以处理,这比一个处理串行通讯的芯片成本高不到哪里去。与串行通讯相比,并行通讯在同样的工作频率下,通讯速度就可以整倍提高。因此适应了当时计算机设备发展的需要,硬盘、打印机等速度较快的设备开始使用并行通讯,PATA、SCSI、Parallel Port成为最为流行的并行通讯接口,被大众所熟知。不过并行线路固有的一些缺点仍然限制了并行通讯的应用范围,至于超高速通讯和长距离通讯方面,由于线路成本比接口成本要重要得多,因此一直都是串行通讯的应用领域。
除了并行通讯具有速度优势以外,串行通讯自身也有一个问题。在计算机内部,数据往往都是并行方式传送的,当采用串行方式与外界通讯时必须经过串/并转换处理。在早期集成电路规模较小的时代,串/并转换电路的处理能力十分有限,因此串行通讯的速度无法提高。随着如今集成技术的发展,逻辑电路的集成能力大大提高,甚至超过了IO连接单元的集成水平,从而逐步解决了串/并转换速度的限制。另一方面,现在集成逻辑处理电路的成本也比IO连接单元更便宜,因此串行通讯再次显示出它的优势。如果说集成电路技术一度帮助并行通讯流行起来,那么现在的高度集成水平则帮助串行通讯重返主流应用领域。
-
【第一部分】数字通信的基本知识
2019-08-30 13:28:28什么是数字通信数字通信原理数字通信特点2.数字通信方式传送方式并行通信:串行通信:串行通信---同步传送串行通信---异步传送传送方向单工通信半双工通信全双工通信通信协议三要素1.什么是通信协议2.通信接口标准3....数字通信(digicom,digital communication)
1.什么是数字通信
数字通信是指用数字信号(二进制脉冲信号)作为载体来传输信息,或者用数字信号对载波进行数字调制后再传输的通信方式。
数字通信原理
在模拟通信中,原始信号(如话音的音频信号、电视的视频信号)直接用来对载波信号进行调制。在数字通信中,发信端原始信号必须先经过模拟-数字转换器(简称数字化器),转换成数字信号(通常以“1”和“0”形式)序列后代替原始信号,再对载波信号进行调制。在收信端,对接收到的载波信号经解调后,得到的仍是数字信号序列。但数字信号序列还必须经过数字-模拟转换器才能恢复原始模拟信号。对模拟信号进行数字化有多种方法,最基本的方法是脉码调制,还有各种类型的增量调制,后者在电路实现上更为简单。为了减少传输话音所必需的脉码率,声码器正逐步得到推广应用。声码器也是最可靠的数字电话保密终端。声码技术中较有发展前途的是线性预测编码。如何以更高的精度、更低的脉码率使信号数字化,仍然是数字通信技术的主要研究课题。用数字信号代替模拟信号后,模拟通信中的载频供给系统亦应相应改变,将被时钟所代替。为了正确判别收发两端数字码元,收发时钟之间必须同步,这要靠码元同步和帧同步技术达到;如果数字通信设备连成通信网,还必须用网同步技术(见同步技术)。数字通信还有一系列特有的技术。为使各种传输信道适应数字信号的传输,避免各种频率成分的振幅和时延特性上的不均匀性,避免码间干扰,需要采用均衡技术。为了便于在收信端提取同步信号,通常采用双极性码、高密度双极性码(HDB3码)、四比三进码(4B3T码)和部分响应码等。为了发现和自动纠正传输中出现的误码,需要采用差错控制技术。差错控制已发展成为一种独立的技术。
数字通信特点
-
抗干扰能力强、无噪声积累:模拟信号在传输过程中与叠加的噪声很难分离,噪声会随着信号被传输、放大,严重影响通信质量。数字通信中的信息是包含在脉冲的有无之中的,只要噪声绝对值不超过某一门限值,接收端便可判别脉冲的有无,以保证通信的可靠性。
-
远距离传输仍能保证质量:因为数字通信采用再生中继方式,能够消除噪音,再生的数字信号和原来的数字信号一样,可继续传输下去,这样通信质量便不受距离的影响,可高质量地进行远距离通信。
-
能适应各种通信业务要求(如电话、电报、图像、数据等),便于实现统一的综合业务数字网。
-
便于采用大规模集成电路,便于实现加密处理,便于实现通信网的计算机管理等。
-
便于存储、处理和交换。
-
占用信道频带较宽:一路模拟电话的频带为4kHz带宽,而一路数字电话约占64kHz带宽。
2.数字通信方式
按传送方式分类:并行,串行
按传送方向分类:单工,半双工,全双工
按是否进行调制分类:基带,频带
按通信介质分类:双绞线,同轴电缆,光纤传送方式
并行通信:
并行通信按字或字节作为单位整体进行传送,n位就必须要n根线。
特点:传送速度快,通信线多,成本高。
用途:用于计算机活PLC内部总线,PLC和扩展模块、智能模块之间的通信。串行通信:
串行通信是以二进制的位(bit)为单位的数据传输方式,每次只传送一个bit位,串行通信需要的信号线少,适于距离较远的场合。
工业上控制一般使用串行通信。
同步:串行通信中接收方和发送方的速率应相同。分为同步传送和异步传送。串行通信—同步传送
同步传送以字节为单位,每次传送1-2个同步字符、若干个数据字节(数据包)和校验字符。
同步传送传输效率高,但是对于硬件的要求较高,一般用于高速通信。串行通信—异步传送
在数据传送过程中,发送方可以随时传送字符,两个字符之间的时间间隔是不固定的。接收方必须随时准备好接收数据。但是在传送一个字符(一帧),所有bit位是连续发送的。
传输速率低,通信方式简单可靠,成本低,易实现。但是其附加的非有效信息较多,传输效率较低,一般用于低速通信。
这种通信方式广泛的应用在工业通信控制系统中。例如:
传送数据 01001001 10000111
同步通信
字符间是没有间隔的。01001001发完紧接着发10000111。异步通信
两个字符之间是可以有间隔的。传送方向
单工通信
半双工通信
全双工通信
通信协议三要素
- 通信接口标准
- 通信格式
- 通信数据格式
1.什么是通信协议
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
2.通信接口标准
通信的硬件协议,提供机械的,电气的,功能性的特性和规程。同时,定义了传输介质与网络接口的连接方式以及数据发送与接收方式。
在串行数据接口标准中,最常用的是RS232、RS422和RS485串行接口标准。3.通信格式
在异步通信中,双方必须就通信数据传送方式,传送的数据长度,校验方法 和 传输速率 进行统一设置,这样才能保证双方通信的正确。这种双方设置统一的参数,称为通信格式。
4.通信的数据格式(报文格式)
通信协议必须对信息的传输内容作出规定。如: 传输的数据信息帧的结构,设备的地址,功能代码,所发送的数据校验方式,错误检测,信息传输中字符的制式等。这些数据信息规定称为通信的数据格式。
-
-
串口通信协议之SPI通信协议
2020-07-01 23:14:23支持全双工通信 通信简单 数据传输速率块 缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 特点 ①:高速、同步、全双工、非差分、总线式 ②...串口通信协议之SPI通信协议
SPI通信协议
什么是SPI?
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一
种同步串行接口技术,是一种高速的,全双工,同步的通信总线。
SPI优点
支持全双工通信
通信简单
数据传输速率块
缺点
没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据
可靠性上有一定的缺陷。
特点
①:高速、同步、全双工、非差分、总线式
②:主从机通信模式
SPI通信协议的应用
SPI 主要应用在 EEPROM, Flash, 实时时钟(RTC), 数模转换器(ADC), 数字信号处理器(DSP) 以及数字信号解码器之间. 它在芯片中只占用四根管脚 (Pin) 用来控制以及数据传输, 节约了芯片的 pin 数目, 同时为 PCB 在布局上节省了空间. 正是出于这种简单易用的特性, 现在越来越多的芯片上都集成了 SPI技术.
SPI通信协议内容
工作原理
上图只是对 SPI 设备间通信的一个简单的描述, 下面就来解释一下图中所示的几个组件(Module):
①SSPBUF, 是Synchronous Serial Port Buffer的缩写, 泛指 SPI 设备里面的内部缓冲区, 一般在物理上是以 FIFO 的形式, 保存传输过程中的临时数据;
②SSPSR, 是Synchronous Serial Port Register的缩写, 泛指 SPI 设备里面的移位寄存器(Shift Regitser), 它的作用是根据设置好的数据位宽(bit-width) 把数据移入或者移出 SSPBUF;
③Controller, 泛指 SPI 设备里面的控制寄存器, 可以通过配置它们来设置 SPI 总线的传输模式.
④SCK, 是Serial Clock的缩写, 主要的作用是 Master 设备往 Slave 设备传输时钟信号, 控制数据交换的时机以及速率;
⑤SS/CS, 是Slave Select/Chip Select的缩写, 用于 Master 设备片选 Slave 设备, 使被选中的 Slave 设备能够被 Master 设备所访问;
⑥SDO/MOSI, 是Serial Data Output/Master Out Slave In的缩写, 在 Master 上面也被称为 Tx-Channel, 作为数据的出口, 主要用于 SPI 设备发送数据;
⑦SDI/MISO, 是Serial Data Input/Master In Slave Out的缩写, 在 Master 上面也被称为 Rx-Channel, 作为数据的入口, 主要用于SPI 设备接收数据;
注:
①SPI 设备在进行通信的过程中, Master 设备和 Slave 设备之间会产生一个数据链路回环(Data Loop), 就像上图所画的那样, 通过 SDO 和 SDI 管脚, SSPSR 控制数据移入移出 SSPBUF, Controller 确定 SPI 总线的通信模式, SCK 传输时钟信号;
②通常情况下, 我们只需要对上图所描述的四个管脚(pin) 进行编程即可控制整个 SPI 设备之间的数据通信。
重点:时钟timer控制着 SPI 协议的工作机制
首先, 在这里解释一下两个概念:
① CPOL: 时钟极性, 表示 SPI 在空闲时, 时钟信号是高电平还是低电平. 若 CPOL 被设为 1, 那么该设备在空闲时 SCK 管脚下的时钟信号为高电平. 当 CPOL 被设为 0 时则正好相反.
CPOL = 0: SCK引脚空闲时处于低电平;
CPOL = 1: SCK引脚空闲时处于高电平。
② CPHA: 时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样. 若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据. 当 CPHA 被设为 0 时也正好相反.
CPHA = 0: 时钟脉冲下降沿触发主从设备数据交换
CPHA = 1: 时钟脉冲上升沿触发主从设备数据交换
时钟脉冲图说明了本例所使用的 SPI 数据传输模式被设置成 CPOL = 1, CPHA = 1. 这样, 在一个 Clock 周期内, 每个单独的 SPI 设备都能以全双工(Full-Duplex) 的方式, 同时发送和接收 1 bit 数据, 即相当于交换了 1 bit 大小的数据. 如果 SPI 总线的 Channel-Width 被设置成 Byte, 表示 SPI 总线上每次数据传输的最小单位为 Byte, 那么挂载在该 SPI 总线的设备每次数据传输的过程至少需要 8 个 Clock 周期(忽略设备的物理延迟). 因此, SPI 总线的频率越快, Clock 周期越短, 则 SPI 设备间数据交换的速率就越快.
重点:SSPSR移位寄存器
SSPSR 是 SPI 设备内部的移位寄存器(Shift Register). 它的主要作用是根据 SPI 时钟信号状态, 往 SSPBUF 里移入或者移出数据, 每次移动的数据大小由 Bus-Width 以及 Channel-Width 所决定.
注:
Bus-Width 的作用是指定地址总线到 Master 设备之间数据传输的单位.
例如, 我们想要往 Master 设备里面的 SSPBUF 写入 16 Byte 大小的数据: 首先, 给 Master 设备的配置寄存器设置 Bus-Width 为 Byte; 然后往 Master 设备的 Tx-Data 移位寄存器在地址总线的入口写入数据, 每次写入 1 Byte 大小的数据(使用 writeb 函数); 写完 1 Byte 数据之后, Master 设备里面的 Tx-Data 移位寄存器会自动把从地址总线传来的1 Byte 数据移入 SSPBUF 里; 上述动作一共需要重复执行 16 次。
Channel-Width 的作用是指定 Master 设备与 Slave 设备之间数据传输的单位. 与 Bus-Width 相似, Master 设备内部的移位寄存器会依据 Channel-Width 自动地把数据从 Master-SSPBUF 里通过 Master-SDO 管脚搬运到 Slave 设备里的 Slave-SDI 引脚, Slave-SSPSR 再把每次接收的数据移入 Slave-SSPBUF里。
通常情况下, Bus-Width 总是会大于或等于 Channel-Width, 这样能保证不会出现因 Master 与 Slave 之间数据交换的频率比地址总线与 Master 之间的数据交换频率要快, 导致 SSPBUF 里面存放的数据为无效数据这样的情况.
重点:数据缓冲器——数据暂时寄存器
我们知道, 在每个时钟周期内, Master 与 Slave 之间交换的数据其实都是 SPI 内部移位寄存器从 SSPBUF 里面拷贝的. 我们可以通过往 SSPBUF 对应的寄存器 (Tx-Data / Rx-Data register) 里读写数据, 间接地操控 SPI 设备内部的 SSPBUF.
重点:数据缓冲器SSPBUF与移位寄存器SSPSR协同工作实现数据的读入输出
在发送数据之前, 我们应该先往 Master 的 Tx-Data 寄存器写入将要发送出去的数据, 这些数据会被 Master-SSPSR 移位寄存器根据 Bus-Width 自动移入 Master-SSPBUF 里, 然后这些数据又会被 Master-SSPSR 根据 Channel-Width 从 Master-SSPBUF 中移出, 通过 Master-SDO 管脚传给 Slave-SDI 管脚, Slave-SSPSR 则把从 Slave-SDI 接收到的数据移入 Slave-SSPBUF 里. 与此同时, Slave-SSPBUF 里面的数据根据每次接收数据的大小(Channel-Width), 通过 Slave-SDO 发往 Master-SDI, Master-SSPSR 再把从 Master-SDI 接收的数据移入 Master-SSPBUF.在单次数据传输完成之后, 用户程序可以通过从 Master 设备的 Rx-Data 寄存器读取 Master 设备数据交换得到的数据。
重点:控制寄存器controller实现特定主从设备之间的数据交换
Master 设备里面的 Controller 主要通过时钟信号(Clock Signal)以及片选信号(Slave Select Signal)来控制 Slave 设备. Slave 设备会一直等待, 直到接收到 Master 设备发过来的片选信号, 然后根据时钟信号来工作.
Master 设备的片选操作必须由程序所实现. 例如: 假设“SS/CS引脚为低电平时,master设备开始于slave设备交换数据;SS/CS引脚为高电平时,master设备不于slave设备交换数据”。由程序把 SS/CS 管脚的时钟信号拉低电平, 完成 SPI 设备数据通信的前期工作; 当程序想让 SPI 设备结束数据通信时, 再把 SS/CS 管脚上的时钟信号拉高电平。
工作特点
1. 采用主-从模式(Master-Slave) 的控制方式
SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能工作,因此,clock就相当于一个选通脉冲。
2. 采用同步方式(Synchronous)传输数据
Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的.
3. 数据交换(Data Exchanges)
SPI 设备间的数据传输之所以又被称为数据交换, 是因为 SPI 协议规定一个 SPI 设备在数据通信过程中充当"发送者(Transmitter)" 和 "接收者(Receiver)". 在每个 Clock 周期内, SPI 设备都会发送并接收一个 bit 大小的数据, 相当于该设备有一个 bit 大小的数据被交换了.
但是前提是slave设备在此时已经被master设备的clock触发可以与master设备进行数据交换。一个 Slave 设备要想能够接收到 Master 发过来的控制信号, 必须在此之前能够被 Master 设备进行访问 (Access). 所以, Master 设备必须首先通过 SS/CS pin 对 Slave 设备进行片选, 把想要访问的 Slave 设备选上.
4. 数据存储必须是等时间间隔的不相互冲突的
在数据传输的过程中, 每次接收到的数据必须在下一次数据传输之前被采样. 如果之前接收到的数据没有被读取, 那么这些已经接收完成的数据将有可能会被丢弃, 导致 SPI 物理模块最终失效. 因此, 在程序中一般都会在 SPI 传输完数据后, 去读取 SPI 设备里的数据, 即使这些数据(Dummy Data)在我们的程序里是无用的.
什么是波特率?
简单解释
波特率通常单位是bit/s,也就是 二进制位/秒。所以:9600的波特率的信道,理论上每秒可以传输9200 bits的数据。
正规解释
波特率是什么意思
1、波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示;
2、在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标;
什么是奇偶校验?
理论介绍
奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代du码的数位中"1"的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中"1"的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验"1"的个数是否为奇数,从而确定传输代码的正确性。
奇偶校验需要一位校验位,即使用串口通信的方式2或方式3(8位数据位+1位校验位)。奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。以发送字符:10101010为例
偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。还是以发送字符:10101010为例
数据和校验位发送给接受方后,接收方再次对数据中1的个数进行计算,如果为奇数则校验通过,表示此次传输过程未发生错误。如果不是奇数,则表示有错误发生,此时接收方可以向发送方发送请求,要求重新发送一遍数据。
优缺点
①奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了╮(╯﹏╰)╭
②奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大。
③奇偶校验只能发现错误,但不能纠正错误,也就是说它只能告诉你出错了,但不能告诉你怎么出错了,一旦发现错误,只好重发。
④虽然奇偶校验有很多缺点,但因为其使用起来十分简单,故目前仍被广泛使用。
简介:为什么说增加一位奇偶矫正位会影响通信网络中数据传输速度?
传递信息必须要占用一定的带宽,而且通信信道最大传输速率与信道带宽之间存在着明确的反比关系。因此当我们增大数据传输量的同时最大传输速度也被限制了,因此高传输速度与大容量传输是不可兼得的。
应用
如何用编程确定一个字节中“1”个数的奇偶性?我们可以利用二进制数相加的特点:
0+0=0、1+0=1、1+1=0,从中可以看出,如果我们将一个字节的所有位相加,其中结果为:有奇数个“1”的字节的和为1;有偶数个“1”的字节的和为0。
由此即可通过编程完成判断。实际应用中,实现方法很多,但这是相对简单的一种,这里不再赘述。
单工、半双工及全双工之间的区别
1、单工数据传输只支持数据在一个方向上传输;在同一时间只有一方能接受或发送信息,不能实现双向通信,举例:电视,广播。
2、半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;在同一时间只可以有一方接受或发送信息,可以实现双向通信。举例:对讲机。
3.全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力;在同一时间可以同时接受和发送信息,实现双向通信,举例:电话通信。
-
SPI通信协议
2019-05-26 10:22:431、什么是SPI?...支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):高速、同...1、什么是SPI?
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一
种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI优点
支持全双工通信
通信简单
数据传输速率块3、缺点
没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据
可靠性上有一定的缺陷。4、特点
1):高速、同步、全双工、非差分、总线式
2):主从机通信模式5、协议通信时序详解
1):SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多
个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共
有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
(1)SDO/MOSI – 主设备数据输出,从设备数据输入;
(2)SDI/MISO – 主设备数据输入,从设备数据输出;
(3)SCLK – 时钟信号,由主设备产生;
(4)CS/SS – 从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设
备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需
要将从设备对应的片选引脚电平拉低或者是拉高。
2):需要说明的是,我们SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配
置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们
可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来
控制我们主设备的通信模式,具体如下:
Mode0:CPOL=0,CPHA=0
Mode1:CPOL=0,CPHA=1
Mode2:CPOL=1,CPHA=0
Mode3:CPOL=1,CPHA=1
时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA
是用来配置数据采样是在第几个边沿:
CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时
CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿
例如:
CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是
SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是
SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是
SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是
需要注意的是:我们的主设备能够控制时钟,因为我们的SPI通信并不像UART或者IIC通信 那样有专门的通信周期,有专门的通信起始信号,有专门的通信结束信号;所以我们的 SPI协议能够通过控制时钟信号线,当没有数据交流的时候我们的时钟线要么是 保持高电平要么是保持低电平。
SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。
6、内部工作机制
SSPSR 是 SPI 设备内部的移位寄存器(Shift Register). 它的主要作用是根据 SPI
时钟信号状态, 往 SSPBUF 里移入或者移出数据, 每次移动的数据大小由 Bus-Width 以
及 Channel-Width 所决定.7.3线SPI的用法
有些外设只有三根 SPI 总线,一根 CS,一根 CLK,一根 MOSI/MISO,就是数据的输入和输出是同一个数据线。这样的外设如何使用普通的MCU内置的SPI来驱动呢?其实很简单,改一下电路就OK。即在MCU的 SPI_MOSI(数据输出口) 上接 4.7K 的电阻,SPI_MISO(数据输入口)接 1K 的电阻,然后两个电阻的另一端连到一起,再与外设的数据口相连。软件中设置成读写分离就可以了。
8.内部结构
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。
SPI接口没有指定的流控制,没有应答机制确认是否接收到数据。9.总结发送或接收数据的位操作
// Send------------(Lsb-Msb)
SDIO = data & 0X01;
data >>= 1;//------------(Msb-Lsb)
SDIO = data >> 7;
data <<= 1;// Recv ------------(Lsb Msb)
data1 = SDIO;
data = (data >> 1) | (data1 << 7);// ------------(Msb Lsb)
data <<= 1; //data初值为0
data |= SDIO; -
浅谈总线通信机制---I2C总线接口
2017-11-12 01:04:15上一篇文章,我们介绍了总线的基本概念以及通信相关的基础知识,还举了一个串口协议的例子... 数据通信的传输方向又有:单工、半双工、全双工。它们之间各有什么样的特点,我举了车辆过道的实例,通俗易懂的跟大家讲 -
SPI协议通信时序详解
2020-08-30 20:04:11支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):高速、同步、全双工、非差分、总线式 2... -
SPI通信协议详解
2019-05-07 09:49:181、什么是SPI?...支持全双工通信、通信简单、数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。 4、特点 1)... -
通信(二) SPI
2019-12-24 15:55:481、什么是SPI?...支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):... -
粗略了解 WebSocket 是什么
2020-02-20 21:58:40WebSocket 是什么? WebSocket是一种网络通信协议。RFC6455定义了它的通信标准。 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 为什么需要 WebSocket ? 这里有一个疑问,既然... -
SPI通信协议(SPI总线)
2020-09-16 18:21:51支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):高速、同步、全双工、非差分、总线式 2)... -
通信方式(二)——SPI
2019-08-26 16:26:021、什么是SPI SPI是串行外设接口(Serial Peripheral Interface)的缩写。...它的优点是支持全双工通信、通信简单、数据传输速率块、协议支持字长不限于8bits,可根据应用特点灵活选择消息字长;缺点... -
SPI通信协议(SPI总线)解析
2021-01-05 16:40:47支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):高速、同步、全双工、非差分、总线式 2... -
SPI通信协议(SPI总线)学习
2019-08-19 16:31:091、什么是SPI? SPI是串行外设接口...支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1... -
【转】SPI通信协议(SPI总线)学习
2020-11-13 13:08:07支持全双工通信 通信简单 数据传输速率块 3、缺点 没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据 可靠性上有一定的缺陷。 4、特点 1):高速、同步、全双工、非差分、总线式 2... -
TCP协议-TCP服务特点和头部结构
2017-02-20 02:22:13TCP的面向连接是什么意思?通信双方都必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。 同时,TCP连接是全双工的,就是说,双方数据的读写,... -
-
进程间通信(管道)
2015-04-12 09:05:56管道有什么样的特点呢? 1,管道传递数据是单向性的,又称之为半双工管道。就是要么只能读,要么只能写。要想全双工通信,就需要建立两个管道。 2,管道只能用于具有亲缘关系的进程间通信,无亲缘关系的进程能否用... -
移动通信系统第一章复习(概念整理和问题解析)
2021-01-06 10:29:562.移动通信的主要特点和工作方式? 3.移动通信系统的组成和常用的移动通信系统? 4.移动通信的多址方式和常用技术? 5.移动通信是如何发展的? 6.代表性的标准化组织?二、概念整理: 1、移动通信:通信双方至少有... -
linux学习-系统编程之进程间通信
2019-09-03 21:00:41进程间通信简称IPC(interprocess ...具有固定的读写端、是一种单双工的通信模式 只能用于有亲缘关系的进程(父进程和子进程) 只存在内核当中 命名管道: 可以在无关的进程之间进行通信 以一种特殊... -
Xilinx-Verilog-学习笔记(17):异步并口通信
2020-11-08 16:41:40SPI是串行外设接口(Serial Peripheral Interface),是一种高速的、全双工、同步的通信总线。 由于没有应答机制确认是否接收到数据,因此SPI总线与IIC总线相比,在数据可靠性上有一定的缺陷。 2、时序特点 ... -
进程间通信---共享内存
2018-08-21 17:34:321.什么是共享内存 在物理空间申请一块内存,这块内存通过页表映射到对个进程的共享存储映射区,一进城可通过页表向这个内存里写数据,一进城可通过...(1)共享内存是双向通信(全双工)。 (2)共享内存是IPC... -
SpringBoot + WebSocket实现简单消息推送
2018-04-19 11:20:59WebSocket是一种双工通信的网络协议,所谓双工就是浏览器可以给服务器发送消息,服务器也可以向浏览器发送消息,那么,有了HTTP协议,为什么还要使用它呢?假设我们需要每天定时需要服务器给客户端推送消息,那么... -
Pxxx-本地套接字通信
2021-03-28 12:34:30UNIX Domain Socket的特点 1.UNIX Domain Socket为什么比TCP/IP在本地上通信更加快 因为UNIX Domain Socket不经过网络协议栈 / 不需要打包拆包 / 计算校验和 / 维护序号和应答,只是将应用层数据从一个进程拷贝到另...