精华内容
下载资源
问答
  • 通信方式、通信接口、通信总线、通信协议的关系

    通信方式


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

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

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


    通信接口


    接口指的是输入输出的硬件接口,实现通信的接口就是通信接口。

    根据数据的传输方式有串行通信和并行通信两种通信方式。实现串行通信的接口就是串行接口,即串口。实现并行通信的接口就是并行接口,即并口。


    通信总线


    总线(Bus)是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由数据线、地址线、控制线等构成。

    从广义上说,计算机通信方式按传输特点可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。


    总线的分类:
    按功能分,总线可分为内部总线、系统总线和I/O总线。
    按时序控制方式分,总线可分为同步总线和异步总线。
    按传送的数据格式分,总线可分为串行总线和并行总线。


    接口和总线都有相互连接的含义,但前者强调的是两个部件之间的连接,而后者更注重于多个部件的互连;前者强调信号和数据形式的转换,后者更注重可扩展性、灵活性、规范化,许多总线都有相应的规范和标准。接口与总线有时也不加区分,合称为总线接口或接口总线等。


    通信协议


    协议就是传输数据的规则。 协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系,即要实现信号的传输,所有这些组成成员必须通力合作,各自满足协议要求的各种必要条件。



    接口、总线、协议之间的关系


    接口 - 规定硬件接口和电平标准
    总线 - 规定信号线、功能以及工作工程
    协议 - 规定接口、总线、和传输规则

    在这里插入图片描述

    总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又常常被称之为物理接口。
    协议就是传输数据的规则。协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系,即要实现信号的传输,所有这些组成成员必须通力合作,各自满足协议要求的各种必要条件。

    在这里插入图片描述

    微机系统采用总线结构。系统中主要部件通过系统总线互相连接、实现数据传输,并使危机系统具有组态灵活、易于扩展等诸多有点。
    广泛应用的总线都实现了标准化,便于互连各个部件时遵循共同的总线规范。接口的任一方只需要根据总线标准的要求来实现和完成接口的功能,而不需要了解对方的接口方式。总线接口也是一种通用的接口技术。


    通信总线往往指的是硬件。而通信协议则是跑在硬件上的软件。通信总线和通信协议通常是对应的,通信总线需要跟通信协议相匹配才能通信。

    每种总线能支持的最大速率(波特率)和抗干扰性等特点都是不一样的,所以在应用中首先要需要根据实际的环境来选择合适的通信总线,如CAN,SPI,SCI,I2C等,当选择完总线类型后就需要根据所要传输的数据大小或类型来定义相应的协议。所以不同的总线类型要搭配不同的协议,但是协议里数据的格式可以一样,只是外面的框架要按相应的总线类型来匹配。

    可以这么理解:总线是通过标准规定的,实际应用需要按照总线的相关标准去使用,而协议可以是我们自己定义的,协议里的内容可以根据需要自行定义,但是协议制定的前提是要符合所需要使用的总线规范。





    声明:[笔记整理] 内容整理自网络,如有错误欢迎指正,版权归原作者所有,若有侵权请联系删除。

    展开全文
  • 本文设计的CAN-RS485通信接口电路能够很好地解决这两种串行数据总线之间的相互转换问题,并已成功应用于某地区的智能交通控制系统。
  • 微机中总线一般有内部总线、系统总线和外部总线。 内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;...计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总...

    微机中总线一般有内部总线、系统总线和外部总线。

    内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;

    系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;

    外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。 

     

    计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。

    并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。

     

    一、内部总线

    1.I2C总线 

    2.SPI总线

    SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。

    3.SCI总线 

     

    二、系统总线

    1.ISA总线 

    2.EISA总线 

    3.VESA总线

    4.PCI总线

    5.Compact PCI 

     

    三、外部总线 

    1.RS-232-C总线

    2.RS-485总线 

    3.IEEE-488总线 

    4.USB总线 

    参考:

    1. 什么是总线接口 http://zhidao.baidu.com/link?url=zVaO9eVI-46TgUAjZCPb2XxCOASuX0XjxQMl_YeqH0iznx9hSmppZgGNgBkSmKBdwXI_H7LhJ8QCaN5PvJUNOK

    2. 常见接口电路介绍 http://wenku.baidu.com/link?url=rPXAWPV1DLttBOy6O2-8g4jq2VZBnv4v70bCixoCU6l2I6Yuc9reQ-I99_njImH1tVKolXSkpUCmL65Bx2-yeLMNzXTBNd-cjf2OV60mwBK

    展开全文
  • 绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。
  • 为实现CAN总线与计算机的通信,便于CAN总线系统调试,提出一种基于FPGA的CAN总线转换USB接口...这种方法数据传输速率高,设计灵活,可扩展成多路总线通信接口。目前已成功应用于空间相机下住机系统的地面检测设备中。
  • 绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。
  • CAN总线 通信 接口

    2009-12-03 10:52:06
    详细介绍了各种工业现场使用的总线,例如CAN,对工业设计的同学很有用,特别是现场与控制的通信
  • FPGA与ARM的GPMC总线通信接口设计
  • PLD与AVR总线通信接口VHDL设计与实现、电子技术,开发板制作交流
  • SPI总线协议及SPI时序图详解 : http://blog.163.com/sunshine_linting/blog/static/44893323201181482335951/ 浅谈SPI总线 ...SPI总线是Motorola公司推出的三线同步接口,用于 C...

    SPI总线协议及SPI时序图详解  : http://blog.163.com/sunshine_linting/blog/static/44893323201181482335951/

    浅谈SPI总线 http://www.51hei.com/mcu/4011.html

     

    SPI基础知识简介】

    1. 接线:

    SPI总线是Motorola公司推出的三线同步接口,用于 CPU与各种外围器件进行全双工、同步串行通讯。
    SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。一个master可以接一个或多个slave。
     
      (1)一主一从:常见用法是一个Master接一个slave,只需要4根线

       

     

      (2)一主多从

     

     

     

    SCLK:Serial Clock  (串行)时钟
    MISO:Master In   Slave Out,主设备输入,从设备输出
    MOSI:Master Out  Slave In,主设备输出,从设备输入
    /CS:          Slave Select,选中从设备,片选

     

     

    2. 通信特征
    SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
    而主从设备之间通过SPI进行通讯,首先要保证两者之间时钟SCLK要一致,互相要商量好了,要匹配,否则,就没法正常通讯了,即保证时序上的一致才可正常通讯
    SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和SPI3方式。

    CPOL和CPHA,分别都可以是0或时1,对应的四种组合就是:

    Mode 0        CPOL=0, CPHA=0
    Mode 1        CPOL=0, CPHA=1
    Mode 2        CPOL=1, CPHA=0
    Mode 3        CPOL=1, CPHA=1

     

    SPI的CPOL,表示当SCLK空闲idle的时候,其电平的值是低电平0还是高电平1:

     

    CPOL=0,时钟空闲idle时候的电平是低电平,所以当SCLK有效的时候,就是高电平,就是所谓的active-high;

     

    CPOL=1,时钟空闲idle时候的电平是高电平,所以当SCLK有效的时候,就是低电平,就是所谓的active-low;

     

     

    在一个SPI时钟周期内,会完成如下操作:

    1) Master通过MOSI线发送1位数据,同时Slave通过MOSI线读取这1位数据

    2) Slave通过MISO线发送1位数据,同时Master通过MISO线读取这1位数据

    Master和Slave各有一个移位寄存器,如图4所示,而且这两个移位寄存器连接成环状。依照SCK的变化,数据以 MSB first的方式依次移出Master寄存器和Slave寄存器,并且依次移入Slave寄存器和Master寄存器。当寄存器中的内容全部移出时,相当 于完成了两个寄存器内容的交换。


                                                                              

    3.应用
    SPI由于接口相对简单(只需要4根线,用途算是比较广泛,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。

     

    SPI分主设备和从设备,两者通过SPI协议通讯。

    而设置SPI的模式,是从设备的模式,决定了主设备的模式。

    所以要先去搞懂从设备的SPI是何种模式,然后再将主设备的SPI的模式,设置和从设备相同的模式,即可正常通讯。

       

    相关链接:

    1.SPI总线之CPOL CPHA(转) http://blog.sina.com.cn/s/blog_9cc7125c0100yk1s.html

    2.总线接口与计算机通信 http://www.cnblogs.com/mylinux/p/4678931.html

    3.SPI总线协议及SPI时序图详解 <http://blog.163.com/sunshine_linting/blog/static/44893323201181482335951/>

     

    转载于:https://www.cnblogs.com/mylinux/p/4683252.html

    展开全文
  • 浅谈总线通信机制---I2C总线接口

    千次阅读 2017-11-12 01:04:15
    上一篇文章,我们介绍了总线的基本概念以及通信相关的基础知识,还举了一个串口协议的例子作为文章的结尾。 因此,我们来回忆总结一下上篇博文的关键部分。 数据通信的种类有:串行通信、并行通信。不管是什么类型...

          上一篇文章,我们介绍了总线的基本概念以及通信相关的基础知识,还举了一个串口协议的例子作为文章的结尾。

           因此,我们来回忆总结一下上篇博文的关键部分。

           数据通信的种类有:串行通信、并行通信。不管是什么类型的通信,再怎么复杂的,也是在这两种上面衍生出来的。

           数据通信的传输方向又有:单工、半双工、全双工。它们之间各有什么样的特点,我举了车辆过道的实例,通俗易懂的跟大家讲明白了。

          数据通信的方式还可以分为:同步、异步。什么是同步?什么是异步?相信大家现在已经有个概念了吧?同步就是根据一定的时钟周期,做一定的事情,这里我举了广场舞的例子,那异步又是什么呢?异步就是随时都可以,但怎么来区分开始,动作和结束呢?这就需要一帧数据里面安插开始传输位、数据内容、结束位以作区分,然后还需要一定的传输频率,这样才能将数据发送出去。

        而串口协议又是什么东西呢?串口协议就是一种串行异步通信协议。有协议还不行,得有硬件接口嘛,具体是什么就不说了。然后双方都约定好,比如通信双方都设置波特率115200,一次发8bit数据,0个校验位,1个停止位。接下来就开始发数据,这时候就按照协议的规范,发送端开始发送一个起始位,通常是0,然后开始传输8bit数据,如果需要校验,那么就传输校验位,最后再传输1bit的停止位,这样一帧数据就发完了。

          这节,我们来说说I2C协议I2C协议是什么鬼?I2C(Inter-Integrated Circuit)的英文缩写,是Philips公司开发的一个通信协议,只有两根线是用来通信的。简单的来说,如下图:

       

        我先来说下上面这幅图具体是什么含义,然后接下来再来说说I2C是怎么操作数据的。I2C总线就是通过SDA总线(数据)SCL总线(时钟)来传输数据的,那为什么I2C总线上还要接两个上拉电阻呢?根据I2C规格设计上手册上了解到,由于I2C接口设计大多采用的是集电极开路或者是开漏输出的接口,当总线为空闲的时候,两根线均为高电平,由于I2CSDASCL都具有线与功能,什么是线与?线与就是有00,同11,这是数字电路逻辑相关的了。也就是说只要有一个节点对总线(SCL或者SDA)发送了低电平,那么这整根线就会呈现为低电平,你想想,协议都说了,空闲要高电平,你突然给它来个低电平,这不逗死人嘛?这还叫协议?这明显就是乱搞嘛,是不是?所以既然是协议,那I2C就肯定会有约束条件嘛,这个上拉电阻的其中一个作用就在这里了,给硬件电路的IO口提供一个确定的电平信号。

       说到这里,可能有人要问了,我是写代码的,硬件我不太熟悉或者根本就不懂啊?他们可能会提出这样的问题:什么是集电极开路输出?什么是开漏输出?什么是上拉电阻?上拉电阻取值要取什么值,这个电阻取大取小对I2C通信的时候有什么影响,应该取什么值最合适?既然有上拉电阻,那是不是有下拉电阻?为什么我看有些I2C的外设接在MCUIO口里,也没有看见接上拉电阻啊,那为什么通信也正常?

    下面咱们就来说说这些问题该怎么来解答,那什么问题好解释,我们先从硬件电路开始下手,一步一步的分析上面的这些问题。

       我们先来看一个简单的电路:



       想象一下,如果现在把B点上面那一部分去掉了,变成下面这样:


       学习数字电路后我们知道,电路的输出状态有三种:

       1、高电平  2、低电平  3、高阻态

       如图(5),这种无法确定电路状态到底是高电平还是低电平,就是高阻态。

       什么是高阻态?

       答:电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。它的极限状态可以认为悬空(开路)。也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与引脚的悬空几乎是一样的。 

       所以,我们可以认为,B点在开关断开的时候,相当于悬空引脚,没有办法确定它的状态,而一般情况下,为了给它确定一个电平,通常就会给IO口加一个上拉电阻,也就是图(4)看到的情况,也就是当按键没按下的时候,B点为高电平,MCU读取B点也为高电平。而当按键按下的时候,则情况相反,这就是上拉电阻的其中一个作用------确定电路的状态。那么下拉电阻也同样是这么一个功能,该怎么分析,就不用我说了,道理是一样的。

       那么,最前面我们在分析I2C为什么要接上拉电阻的问题,其中一个原因是因为集电极开路输出和漏极开路输出,先来搞明白第一个问题,什么是集电极开路输出?

       什么是集电极开路输出?集电极是什么指的什么东西?

       答:集电极是三极管的其中一个电极,这里我们形象的把它画出来:


       那么怎么解决这么不能确定c点到底输出多少的问题呢?上拉电阻闪亮登场!!!!确定电路状态,这无疑就是个宝贝,关键时刻可以用到了,我们来看看怎么改变它。

       

       由此可见,当集电极开路的时候,比如就上面说的,当三极管处于截止状态的时候。也就相当于bc之间没有形成通路的时候,那么c点的电平无法确定,也就是说,将一个无法确定电平的线路接在I2C总线的SDASCL上,当I2C为空闲的时候,能保证SDASCL输出高电平吗?不能?那不能的话,假设输出低电平,由于I2C总线的线与关系,那不就相当于违背了I2C协议所说的条件了吗?所以这就是上拉电阻存在的必要性了。集电极开路也被称为OC开路,OC,就是Open Collector的英文缩写。

       那么讲到这里,有人可能就要问了,那现在我输入1时,最终就要输出1,不要反向,我现在输入0的时候,我就要输出0,不要被反向,那如何来实现呢?

       很简单,我们接两个反向器不就得了?来看看怎么接:


      但通常在MCU中,不会这么接,但最终的效果是一样的,原理还是有所区别。于是经过改造就有了如图(10)所示的电路,由两只三极管共同控制,当电平不同的时候,总有一只三极管是导通的,当我把上拉电阻换成开关的时候,这个电路就称为推挽输出电路。



       那么什么又是漏极输出呢?漏极又是什么东西?漏极是场效应管中的一个极:如图(11)所示,场效应晶体管(Field Effect Transistor缩写(FET))简称场效应管。主要有两种类型(junction FET—JFET)和金属 - 氧化物半导体场效应管(metal-oxide semiconductor FET,简称MOS-FET)。由多数载流子参与导电,也称为单极型晶体管。它属于电压控制型半导体器件。具有输入电阻高(1071015Ω)、噪声小、功耗低、动态范围大、易于集成、没有二次击穿现象、安全工作区域宽等优点,现已成为双极型晶体管功率晶体管的强大竞争者。

       场效应管(FET)是利用控制输入回路的电场效应来控制输出回路电流的一种半导体器件,并以此命名。


       漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。对于漏极开路(OD)来说,必须在漏极输出端接上拉电阻,否则只能输出低电平。


       因此为什么I2C总线外要接两个上拉电阻的原因就在于此。这时候疑问就来了,为什么有些MCU不需要加上拉电阻也可以正常驱动I2C总线呢?

       答:有些MCU内部带了弱上拉电阻,这样也可以与I2C总线实现线与的功能,这样可以保证I2C在空闲的时候都为高电平。但考虑到驱动能力的问题,毕竟由芯片输出的驱动能力有限,所以在外部接上拉电阻可以增加驱动能力。

    至于电阻的大小取什么值,可以参考博客末尾的文章。

           关于协议部分,常用的参考以下博客即可,写得通俗易懂,也很好理解,以下这篇文章考虑的只是主-从模式,而多主机模式在这篇文章中并没有涉及,建议还是看I2C官方的User Spec来了解,毕竟官方的是最标准的。

           http://blog.csdn.net/w89436838/article/details/38660631

      接下来看一个分析协议的实例:以下是使用LA逻辑分析仪从一个I2C接口的设备抓取的时序图:


    一网友写的一个51单片机的程序,非常好理解,截取过来:




    本文参考文献:

    1I2C原理和上拉下拉电阻的介绍

    https://wenku.baidu.com/view/64a4bc3431b765ce04081407.html

    2、什么是高阻态

    https://baike.baidu.com/item/%E9%AB%98%E9%98%BB%E6%80%81/7062370?fr=aladdin

    3、集电极开路输出、开漏输出、推挽输出

    http://forum.eepw.com.cn/thread/242225/1

    4、场效应管

    https://baike.baidu.com/item/%E5%9C%BA%E6%95%88%E5%BA%94%E7%AE%A1/151400?fr=aladdin

    5、关于I2C上拉电阻取值的计算方法

    http://blog.csdn.net/zyboy2000/article/details/5789005

    6、I2C总线协议详解:

    http://blog.csdn.net/w89436838/article/details/38660631







     

    展开全文
  • SPI(Serial Peripheral Interface--串行外设接口总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。
  • 总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA方式*1)。 多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。 (2)消息的发送 在CAN...
  • 摘要:介绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。 关键词:CPLD ISA总线 并行通信 CPLD(Complex Programmable Logic Device)是一种...
  • 但是计算机没有CAN总线接口,为了进行CAN总线的调试,必须具有专用的适配卡才能实现与计算机的通信。目前常用的CAN转换器是基于单片机设计的,一般只适用于单路CAN总线的数据转换,可扩展性差。
  • 本文将采用单片机+Profibus通信ASIC来实现Profibus通信接口的设计。
  • 导读:为提高集成架构中车电总线通信速率,结合综合化处理系统项目要求,采用双总线结合的方式,利用CAN总线和FlexRay总线实现功能及搭配上的互补,提出一种基于现场可编程门阵列(FPGA)的总线接口单元设计方案。...
  • Pro-fibus-DP通信接口的开发有两种方案选择:单片机+软件;单片机+Profibus通信芯片ASIC。  方案2中Profibus-DP协议完全由Profibus通信ASIC来实现,单片机主要处理用户程序。因此方案2开发周期相对少很多,本文将...
  • 总线接口比较

    2020-09-01 19:34:10
    请说明总线接口UART、I2C、SPI、USB的异同点(串/并、速度、全/半双工、总线拓扑等) UART:通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART发送器、UART接收器组成,硬件上两线,一收一发; I...
  • USB是英文UniversalSerialBUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。 USB的电气特性 USB...
  • 本文设计和实现的微控制器与可编程逻辑器件之间总线读写方式通信比传统的串行通信更可靠、速度更快。下面是一些相关术语的说明。  总线:任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每...
  • 如果无法从CAN设备厂商取得CAN总线通信协议,如何破解CAN总线协议是必须要解决的课题。本文介绍一种CAN总线解码方法,供大家学习参考。 采用示波器侦测串口总线通信是比较常用的一种解码技术。以Pico示波器...
  •  提出了一种使用CPLD解决双端口RAM地址译码和PCI接口芯片局部总线仲裁的的硬件设计方案,并给出了PCI总线接口芯片寄存器配置实例,介绍了软件包WinDriver开发设备驱动程序的具体过程。  随着计算机技术的不断发展...
  •  主机接口HPI(Host Pott Interface)是C54x DSP系列定点芯片内部具有的一种并行接口部件,主要用于与其他总线或CPU之间进行通信,其接口框图如图l所示。主机是HPI口的主控者,HPI口作为一个外设与主机连接,使主机的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,066
精华内容 2,026
关键字:

总线接口通信接口