一.串行通信与并行通信

       串行通信与并行通信的概念在微型计算机中,通信(数据交互)两种方式:串行通信和并行通信。

        (1)串行通信

                串行通信是指计算机与I/O设备之间的数据传输的各位是按顺序依次进行传送的。  通常数据在一根数据线或一对差分线上传输。

        (2)并行通信

                   并行通信是指计算机与I/O设备之间通过多条传输线交换数据,数据的各位同时进行传送。串行通信的传输速度慢,但使用的传输设备成本低,可利用现有的通信手段和通信设备,适合于计算机的远程通信;并行通信的速度快,但使用的传输设备成本高,适合于近距离的数据传送。需要注意的是对于一些差分串行通信总线,如RS485、RS422、USB等,它们的传输距离远,且抗干扰能力强,速度也比较快。

tips:因为并行通信成本高,只适合近距离数据传输,因此串行通信方式用的更多

二.同步和异步 串行通信

        我们用有无时钟同步信号来判断是同步还是异步通信。如果有时钟信号则为同步串行通信,反之则为异步串行通信。

        一.异步串行通信

        (1)异步串行方式的特点         

            异步通信是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为以下几点:

(1)以字符为单位传送信息。

(2)相邻两字符间的间隔是任意长。

(3)因为一个字符中的比特位长度有限,所以需要接收时钟和发送时钟只要相近就可以。(4)异步方式的特点简单地说就是字符间异步、字符内部各位同步。

        (2)异步串行方式的数据格式       

        异步串行通信的数据格式如图所示,每个字符(每帧信息)由4个部分组成。

(1)1位起始位,规定为低电平0。        (2)5~8位数据位,即要传送的有效信息。

(3)1位奇偶校验位。                   (4)1~2位停止位,规定为高电平1。

        

java中的串行和并行的区别_java中的串行和并行的区别


        二.同步串行通信

        (1)同步串行方式的特点              

        同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。同步串行通信的特点可以概括为以下几点:

                --(1)以数据块为单位传送信息。

                --(2)在一个数据块(信息帧)内,字符与字符间无间隔。

                --(3)因为一次传输的数据块中包含的数据较多,所以接收时钟与发送时钟严格同步,通常要有同步时钟。

        (2)同步串行方式的数据格式

        同步串行通信的数据格式如图所示,每个数据块(信息帧)由3个部分组成。

                --(1)2个同步字符作为一个数据块(信息帧)的起始标志。

                --(2)n个连续传送的数据。

                --(3)2字节循环冗余校验码(CRC)。

        

java中的串行和并行的区别_arm开发_02

网上找到一张图,我觉得看一眼就明了

java中的串行和并行的区别_嵌入式硬件_03


三.波特率,波特率因子与为周期

        波特率是指单位时间传输二进制数据的位数,其单位为位/秒(bit/s)或比特。它是一个用来衡量数据传送速率的量。一般串行异步通信的传输速度为50~19200bit/s,串行同步通信的传送速度可达500kbit/s。

波特率因子是指时钟脉冲频率与比特率的比。

位周期Td是指每个数据位传送所需要的时间,它与比特率的关系是:Td=1/比特率。它用来反映连续两次采样数据之间的间隔时间。

 四.串行通信涉及的常用术语

 (1)单工,半双工和全双工

         根据传输的特性,我们把传输分为三种模式。

--1.单工

                特点:仅能进行一个方向的数据传送

        --2.半双工

绝不能同时进行【双向但是不同时】

      --3.全双工

                特点:能够在两个方向上同时进行传送

(2)数据传输率

        每秒传输的二进制位数,单位位bps(bit per second)也称比特率,就是我们上面拿出来单独说的。   

 (3)硬件流控制

        如果打开串口流控制后,串口A只有在nCTS被(串口B的nRTS)激活后才能把数据发出去

       当串口A可以接收数据时,激活nRTS

java中的串行和并行的区别_java中的串行和并行的区别_04


五.uart,i2c,spi三种协议简单引入

串行通讯:

单线

  双线 uart  (全双工,异步)        

  双线 i2c (半双工 同步)

  三线spi (全双工,同步)

java中的串行和并行的区别_嵌入式硬件_05

如图:

第一个 uart

第二个 i2c

第三个 spi

 

并行通讯

多根数据线,地址线,如内存                 

 

                                                     

一、I2C总线协议简介

        I2C(Inter-IntegratedCircuit)总线(也称IIC或I2C)是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装形式小、通信速率较高等优点。        

I2C有着如下的特点:

(1)两条总线线路:一条串行数据线SDA,一条串行时钟线SCL。

(2)每个连接到总线的器件都可以通过唯一的地址联系主机,同时主机可以作为主机发送器或主机接收器。

(3)是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏。

(4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s

(5)连接到相同总线的I2C数量只受到总线的最大电容400pF限制。

I2C总线术语

发送器:发送数据到总线的器件。

接收器:从总线接收数据的器件。

主机:初始化发送产生的时钟信号和终止发送的器件。

从机:被主机寻址的器件。

多主机:同时有多于一个主机尝试控制总线但不破坏传输。

仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程。

同步:两个或多个器件同步时钟信号的过程。

二、SPI总线协议

        SPI是英文SerialPeripheralInterface的缩写,该协议是由美国摩托罗拉公司推出的一种同步串行传输规范,首先由摩托罗拉公司在其MC68HCXX系列处理器上定义,后主要应用在EEPROM、FLASH、实时时钟、A/D转换器,还有数字信号处理器和数字信号解码器中。

    SPI是一种高速的全双工、同步的通信总线,并且在芯片的引脚上只占用4根线,节约了芯片的引脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。        

SPI总线(内容)引脚定义

SPI有4个引脚:CS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SPICLK(同步串行时钟线)。

     SPI的通信原理:以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,这些脚的定义如下:

(1)SDO(MOSI)——主设备数据输出,从设备数据输入。

(2)SDI(MISO)——主设备数据输入,从设备数据输出。

(3)SPICLK——时钟信号,由主设备产生。

(4)CS——从设备使能信号,由主设备控制。


SPI总线物理连接

    SPI总线主设备和从设备的连接的四条线分别为: cs对应cs. CLK对应CLK、MOSI(主)MSρ(从): MISO (主)对应MOSI (从)。SPI总线可以同时并联多个外围设备,但一个时刻只能对主从设备通信,.主设备通过cs片选引脚发出信号去选择从设备。SPI总线物理连接如图所示。

java中的串行和并行的区别_arm_06

SPI总线信号类型

java中的串行和并行的区别_串行通信_07