精华内容
下载资源
问答
  • 什么是串行通信串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用...串行通信和并行通信的区别分析串行通信和并行通...

    什么是串行通信

    串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

    什么是并行通信

    在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。

    串行通信和并行通信的区别分析

    4d87c5d4d963c73aed0a46cba7c8b15c.png

    串行通信和并行通信的区别分析

    一、并行通信。

    并行通信端口,即LPT1,俗称打印口,因为它常接打印机,它是同时传送八路信号,一次并行传送完整的一个字节信息。

    二、串行通信。

    串行通信端口,即COM1、COM2,一般接鼠标,外置Modem或其他串口设备。它在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送。

    通讯

    两个设备之间的交流

    通信:并行通信和串行通信

    并行通信在同一时刻发送多位数据

    串行通信用一根线在不同的时刻发送8位数据

    并行通信

    优点发送速度快

    缺点传输距离短资源占用多

    串行通信

    优点传输距离远占用资源少

    缺点发送速度慢

    通信的方式

    1.单工通信只能接受或者发送收音机遥控器

    2.半双工通信在同一时刻只能发送或者接收对讲机

    3.全双工通信在同一时刻既能接收又能发送电话

    4.协议

    数据发送的格式

    Rs232协议:

    例如:发送8位数据0x12;

    发送数据之前先发送一个开始位

    开始位+数据位+奇偶校验位+停止位

    开始位1位低电平

    数据位5~8位用的最多的是8位

    奇偶校验位1位

    停止位1~2位1位1.5位2位

    奇偶校验奇校验通过查看数据中1的个数

    例如选择奇校验

    发送的数据为01011110

    1的个数为基数那么奇偶校验位为0

    如果发送的数据位10101010

    1的个数为偶数那么奇偶校验位为1

    发送方通过发送数据中1的个数,如果为奇数,那么奇偶校验位位0否则为1

    接收方当接收到数据,通过查看数据中1的个数+奇偶校验位1的个数

    如果为奇数,代表数据发送成功,否则失败

    停止位1位2位1.5位

    数字芯片时间通过时钟脉冲

    1位=1个脉冲

    2位=2个脉冲

    1.5位=1.5个脉冲

    3.串口的硬件连接

    4.51单片机中的硬件连接图

    1.ttl电平

    00v~1.5v

    12.5~5v

    展开全文
  • 串行和并行的区别,超详细!

    千次阅读 2021-02-05 22:28:27
    Stream中有两个函数parallel()sequential(),分别代表了并行和串行串行比较好理解,就是在主线程上按顺序执行逻辑代码,那么并行呢?那么我们要来说说什么是并行和并发,以前我们的CPU是单核的,多个任务是通过...

    串行执行

    **First😗*我们来说说Stream的并行和串行。Stream中有两个函数parallel()和sequential(),分别代表了并行和串行,串行比较好理解,就是在主线程上按顺序执行逻辑代码,那么并行呢?那么我们要来说说什么是并行和并发,以前我们的CPU是单核的,多个任务是通过划分时间片轮训来执行任务,这样的逻辑叫做并发。现代的CPU的多核的,有多少个核心就可以同一时间可以运行更多的任务,所以并行和并发大家就明白了。
    second:多个线程访问同一个类的synchronized方法时, 都是串行执行的 ! 就算有多个cpu也不例外 !
    synchronized方法使用了类java的内置锁, 即锁住的是方法所属对象本身. 同一个锁某个时刻只能被一个执行线程所获取,
    因此其他线程都得等待锁的释放. 因此就算你有多余的cpu可以执行, 但是你没有锁, 所以你还是不能进入synchronized方法执行, CPU因此而空闲.
    如果某个线程长期持有一个竞争激烈的锁, 那么将导致其他线程都因等待所的释放而被挂起,
    从而导致CPU无法得到利用, 系统吞吐量低下. 因此要尽量避免某个线程对锁的长期占有 !

    package Demo3;
    
    public class SyncMethod {
        public synchronized void syncMethod2() {
            try {
                System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 已经获取内置锁`SyncMethod.this`)");
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 即将释放内置锁`SyncMethod.this`)");
        }
    
        public synchronized void syncMethod1() {
            System.out.println("######################## (syncMethod1, 已经获取内置锁`SyncMethod.this`, 并即将退出)");
        }
      
    
    }
    
    ```java
    package Demo3;
    
    public class Thread1  extends Thread {
    
        SyncMethod syncMethod;
    
        public Thread1(SyncMethod syncMethod) {
            this.syncMethod = syncMethod;
        }
    
        @Override
        public void run() {
            syncMethod.syncMethod2();
        }
    }
    
    
    
    
    
    package Demo3;
    
    public class Thread2 extends Thread {
        SyncMethod syncMethod;
    
        public Thread2(SyncMethod syncMethod) {
            this.syncMethod = syncMethod;
        }
    
        @Override
        public void run() {
            System.out.println("Thread2 running ...");
            syncMethod.syncMethod1();
        }
    }
    
    
    package Demo3;
    
    public class Test2 {
        public static void main(String[] args) throws InterruptedException {
            SyncMethod syncMethod = new SyncMethod();
            Thread1 thread1 = new Thread1(syncMethod);
            Thread2 thread2 = new Thread2(syncMethod);      
            thread1.start();    //先执行, 以便抢占锁
            Thread1.sleep(500); //放弃cpu, 让thread1执行, 以便获的锁
            thread2.start(); //在syncMethod1()方法获得锁时, 看看syncMethod2()方法能否执行
    
    
    //        new Thread(()->{syncMethod.syncMethod2();}).start();
    //        new Thread(()->{syncMethod.syncMethod1();}).start();
    
        }
    }
    @@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 已经获取内置锁`SyncMethod.this`)
    Thread2 running ...
    @@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 即将释放内置锁`SyncMethod.this`)
    ######################## (syncMethod1, 已经获取内置锁`SyncMethod.this`, 并即将退出)
    

    多个线程访问同一个类的synchronized方法时, 都是串行执行的,很显然有长达5秒钟的时间空缺,另一个线程竟然没有加入,因此其他线程都得等待锁的释放.。因此就算你有多余的cpu可以执行, 但是你没有锁, 所以你还是不能进入synchronized方法执行, CPU因此而空闲。
    因此是串行执行。
    **

    并行执行

    **

    package Demo3;
    
    public class SyncMethod2 {
        private Object lock1 = new Object();
        private Object lock2 = new Object();
    
        public void syncMethod2() {
            synchronized (lock1) {
                try {
                    System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 已经获取内置锁`SyncMethod.this`)");
                    Thread.sleep(5000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 即将释放内置锁`SyncMethod.this`)");
            }
        }
    
        public void syncMethod1() {
            synchronized (lock2) {
                System.out.println("######################## (syncMethod1, 已经获取内置锁`SyncMethod.this`, 并即将退出)");
            }
        }
    }
    
    
    package Demo3;
    
    public class Thread21 extends Thread {
        SyncMethod2 syncMethod2;
    
        public Thread21(SyncMethod2 syncMethod2) {
            this.syncMethod2 = syncMethod2;
        }
    
        @Override
        public void run() {
            syncMethod2.syncMethod2();
        }
    }
    
    
    package Demo3;
    
    public class Thread22 extends Thread {
        SyncMethod2 syncMethod2;
    
        public Thread22(SyncMethod2 syncMethod2) {
            this.syncMethod2 = syncMethod2;
        }
    
        @Override
        public void run() {
            System.out.println("Thread22 running ...");
            this.syncMethod2.syncMethod1();
        }
    }
    
    
    package Demo3;
    
    public class Test22 {
        public static void main(String[] args) {
            SyncMethod2 syncMethod2 = new SyncMethod2();
            Thread21 thread21 = new Thread21(syncMethod2);
            Thread22 thread22 = new Thread22(syncMethod2);
            thread21.start();    //先执行, 以便抢占锁
            thread22.start(); //在syncMethod1()方法获得锁时, 看看syncMethod2()方法能否执行
        }
    }
    @@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 已经获取内置锁`SyncMethod.this`)
    Thread22 running ...
    ######################## (syncMethod1, 已经获取内置锁`SyncMethod.this`, 并即将退出)
    @@@@@@@@@@@@@@@@@@@@@@@@ (syncMethod2, 即将释放内置锁`SyncMethod.this`)
    
    

    显然是并行执行命令。

    1.Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”。

    情况1:同一个对象在两个线程中分别访问该对象的两个同步方法

    结果:会产生互斥。

    解释:因为锁针对的是对象,当对象调用一个synchronized方法时,其他同步方法需要等待其执行结束并释放锁后才能执行。

    情况2:不同对象在两个线程中调用同一个同步方法

    结果:不会产生互斥。

    解释:因为是两个对象,锁针对的是对象,并不是方法,所以可以并发执行,不会互斥。形象的来说就是因为我们每个线程在调用方法的时候都是new 一个对象,那么就会出现两个空间,两把钥匙,

    2.Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。

    情况1:用类直接在两个线程中调用两个不同的同步方法

    结果:会产生互斥。

    解释:因为对静态对象加锁实际上对类(.class)加锁,类对象只有一个,可以理解为任何时候都只有一个空间,里面有N个房间,一把锁,因此房间(同步方法)之间一定是互斥的。

    注:上述情况和用单例模式声明一个对象来调用非静态方法的情况是一样的,因为永远就只有这一个对象。所以访问同步方法之间一定是互斥的。

    情况2:用一个类的静态对象在两个线程中调用静态方法或非静态方法

    结果:会产生互斥。

    解释:因为是一个对象调用,同上。

    情况3:一个对象在两个线程中分别调用一个静态同步方法和一个非静态同步方法

    结果:不会产生互斥。

    解释:因为虽然是一个对象调用,但是两个方法的锁类型不同,调用的静态方法实际上是类对象在调用,即这两个方法产生的并不是同一个对象锁,因此不会互斥,会并发执行。

    展开全文
  • 数据通信的基本方式根据数据的传输方式可以分为串行通信与并行通信两种。 串行通信又根据数据的同步方式,分为异步传送同步传送两种方式。或者根据数据的传输方向与时间关系,分为单工通信、半双工通信及全双工...


    通信方式的分类

    通信方式是指通信双方之间的工作方式或信号传输方式。

    终端与其他设备(例如其他终端、计算机和外部设备)通过数据传输进行通信,根据数据的传输方式,有串行通信和并行通信。

    串行通信又称为点对点通信,对于点对点之间的通信,
    根据数据的同步方式,又分为异步传送和同步传送两种方式。
    根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。

    在这里插入图片描述


    通信方式的分类
    通信方式的分类

    该「通信方式的分类」图片引用CSDN博主「MR_普罗米修斯」的总结 https://blog.csdn.net/qq_44431690/article/details/104114594



    串行通信和并行通信

    数据通信的基本方式可以分为串行通信与并行通信两种。

    串行通信:
    定义:串行通信是指利用一条传输线将数据一位位地顺序传送。
    传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。
    特点:通信线路简单,利用电话或电报线就可以实现通信,降低成本,适用于远距离通信,但传输速度慢。


    并行通信:
    定义:并行通信是指利用多条传输线将一个数据的各位同时传送。
    传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。
    特点:传输速度块,适用于短距离通信。

    串行通信和并行通信

    串行通信


    同步通信和异步通信

    根据通讯的数据同步方式,又分为同步和异步两种。可以根据通讯过程中是否有使用到时钟信号进行简单的区分。


    异步通信:
    在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据。例如规定由起始位、数据位、奇偶校验位、停止位等。
    某些通讯中还需要双方约定数据的传输速率,以便更好地同步 。波特率(bps)是衡量数据传送速率的指标。

    在这里插入图片描述

    同步通信:
    在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。

    在这里插入图片描述

    在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。

    该「同步通信和异步通信」总结引用于博客园「孤情剑客」的《USART串口协议》https://www.cnblogs.com/The-explosion/p/11587930.html


    单工、半双工和双工


    串行通信又称为点对点通信,对于点对点之间的通信,根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。


    单工方式:
    只允许数据按照一个固定的方向传送,在任何时刻都只能进行一个方向的通信,一个设备固定为发送设备,一个设备固定为接收设备。


    半双工方式:
    两个设备之间可以收发数据,但是不能在同一时刻进行,每次只能有一个设备发送,另一个站接收。


    全双工方式:
    在同一时刻,两个设备之间可以同时进行发送和接收数据。

    单工、半双工、双工


    并行通信


    并行是指多比特数据同时通过并行线进行传送,数据的各个位同时传送,可以字或字节为单位并行进行,这样数据传送速度大大提高,通信速度快,但并行传送用的通信线多、成本高,线路长度受到限制,故不宜进行远距离通信。并且长度增加,干扰也会增加,数据也就容易出错。计算机或PLC各种内部总线就是以并行方式传送数据的。





    参考:
    「MR_普罗米修斯」的总结 https://blog.csdn.net/qq_44431690/article/details/104114594
    「孤情剑客」的《USART串口协议》https://www.cnblogs.com/The-explosion/p/11587930.html
    声明:[笔记整理] 内容整理自网络,如有错误欢迎指正,版权归原作者所有,若有侵权请联系删除。

    展开全文
  • 并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校验位。接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。并行方式主要...

    并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校验位。接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。并行方式主要用于近距离通信。计算机内部的总线结构就是并行通信的例子。这种方法的优点是传输速度快,处理简单。本文引用地址:http://www.eepw.com.cn/article/201709/364417.htm

    串行数据传输时,数据是一位一位的在通信线上传输的。先由具有几位总线的计算机内的发送设备,将几位并行数据经过并-串转换硬件转换成串行方式,再逐位经传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。串行数据传输的速度比并行传输慢得多,但对于覆盖面极为广泛的公用电话系统来说具有更大的现实意义。

    从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代IEEE 1284,SATA取代PATA,PCI Express取代PCI……,从原理上来看,并行传输方式是优于串行传输方式。通俗地讲,并行传输的通道犹如一条多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间小路。

    以古老而又典型的标准并行口(standard parallel port)和串行口(俗称COM口)为例,并行接口有8根数据线,数据传输率高;而串行接口只有1根数据线,数据传输速率低。在并行口可以传送一个字节。并行口完成单词“advanced”的传送任务时,串行口中仅传送了这个单词的首字母“a”。

    并行传输特点:

    1. 传输速度快:一次可传送与总线位数相同的位。

    2. 通信成本高:每位传输要求一个单独的信道支持;因此如果一个字符包含8个二进制位,则并行传输要求8个独立的信道的支持。

    3. 不支持长距离传输:由于信道之间的电容感应,远距离传输时,可靠性较低。

    串行传输特点:

    1. 传输速度较低,一次一位。

    2. 通信成本也较低,只需一个信道。

    3. 支持长距离传输,目前计算机网络中所用的传输方式均为串行传输。

    展开全文
  • 串行接口的定义串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输...
  • 很多朋友在制作网线时,对于网线RJ45是使用并行传输还是串行传输不是特别了解,想知道这个问题的正确答案是什么,为什么,网线RJ45是并行传输还是串行,下面就小编一起来看看吧!网线RJ45使用串行传输方式进行。...
  • http连接 使用http连接就是使用TCP连接+一些规则去安全可靠的传输信息 TCP就是为http传输提供...所以数据整个流程就是http--TCP--IP数据包,每个数据包经过这个流程都会增加tcp首部ip首部,ip首部包括源/目的ip地址
  • 通过对比预估的I/O与真实的I/O开销来判断SQL语句所存在问题,如缺少统计信息,SQL语句执行的次数,根据实际中间结果集的大小来选择合适的连接方式等。本文仅仅讲述display_cursor函数的使用。一、display_cursor函数...
  • 下面我们只从正确地选用打印机的目的简要介绍打印机的类型主要性能指标。按打印原理,打印机可分为击打式非击打式。击打式打印机是用机械方法,使打印针或字符锤击打色带,在打印纸上印出字符。典型的产品有针式...
  • 2021考研408计算机组成原理:串行加法器和并行加法器2020-01-14 20:05|考研集训营统考408中的计算机组成原理,在试卷中所占45分。因此,备考2021计算机考研学子们,一定要一丝不苟地认真复习该科目知识。下面,文都...
  • 又想进行联机通信,在距离不太远(比如不超过20米)的情况下,可考虑通过计算机的并行口或RS-232串行口直接对接两台机器,以此来实现通信、数据文件传输及软、硬件资源共享。采用端口连接双机进行数据传输,不...
  • 什么是计算机通信计算机通信基本原理并行串行通信方式异步通信同步通信 什么是计算机通信 计算机通信是指计算机个计算机之间或计算机与终端之间进行信息传递的方式。 通信中有并行和串行两种方式。在单片机系统...
  • 关于mysql多线程访问串行并行的问题InitConnection(4);//初始化连接池,放入4个mysql句柄for(inti=0;i<4;i++){mysql=GetConnection();//获取一个MYSQL句柄Insert(mysql,"insertchildrenvalues(6,'yantai',40)")...
  • 答案查看答案解析:【解析题】多媒体计算机获得图像的方法有______。【解析题】计算机的灵魂是( )。【解析题】依照计算机信息网络国际联网安全保护管理办法的相关内容,若有单位或个人...【解析题】一台计算机远程...
  • 什么是母头,只有了解了公头母头,才能更加有利于我们去理解深入剖析串口并口的知识。公头母头如上图左图所示,公头一般是指所有针式或者块式的接头,而母头则是泛指所有插槽式的接头,我们也可以把它当作提供...
  • 任务的串行并行执行

    2021-06-20 15:56:02
    //串行处理 public class SingleThreadWWebServer{ public static void main(String[] args){ ServerSocket socket = new ServerSocket(80); while(true){ Socket connection = socket.accept(); handleRequest...
  •     在程序中,往往有很多很耗时的工作,比如上传文件、下载文件、跟客户聊天需要长时间建立连接。这种时候,一个线程是服务不了多个用户的,会产生因为资源独占产生的等待问题。并发的实质是一个物理CPU(也可以...
  • 微型计算机CPU与外部设备及存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,后者被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路...
  • 串行通信的基本原理2003-04-30 电子工程师网站一、串口通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。 在接收数据时,串行的位...
  • 串行并行通信

    2021-10-18 12:41:26
    串行通信:将要传送的数据或信息按一定的格式编码,然后再单根线上按一位接一位的先后顺序进行传送。发完第一个字符后,在发送第二个。接收数据时,每次从单根线上一位接一位的接收信息,再把他们拼成一个字符,...
  • 串行通讯一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。... 串行通讯又分为异步通讯同步通讯两...
  • 按数据传输的顺序可以分为:并行通信(传输)和串行通信(传输); 按数据传输的同步方式可分为:同步传输异步传输。而同步异步同属于串行通信,是串行通信的两种基本形式!!! 按数据传输的流向时间关系...
  • 3种不同的GC方式

    2021-02-27 20:22:38
    在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程...
  • ★★★★并行计算(ParallelComputing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者...传统地,串行计算...
  • 连接和短链接

    2021-10-24 19:38:46
    连接和短链接 文章目录长连接和短链接定义区别长连接短连接长连接和短连接的选择总结 定义 一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上。所以,进程之间如何进行高效的...
  • 《嵌入式高速串行并行技术——基于FPGA实现与应用(张锋著)》 看了一下前言、目录、自序、以及他本书创作过程中的随笔 (小编就决定把这本书分享出来,也不知道这样做好不好。所以,在这里有个小请求,大家尽量...
  • 目录基本知识框架课堂笔记通讯数据传送方式:串行 / 并行串行通讯并行通讯串行通讯与并行通讯的特性数据通讯方向:单工 / 半双工 / 全双工单工通讯半双工通讯全双工通讯数据同步方式:同步 / 异步同步通讯异步通讯...
  • 连接Oracle Real Application Clusters所有的数据库节点可以访问数据库中所有的数据自动维持节点之间的数据一致性SQL的并行执行(Parallel Execution)可以自动并列化一个SQL的执行从Oracle客户端开始的连接串行处理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,465
精华内容 26,186
关键字:

串行连接和并行连接