精华内容
下载资源
问答
  • 电信设备-一种支持热插拔的并行总线接口通信方法.zip
  • 本文设计的CAN-RS485通信接口电路能够很好地解决这两种串行数据总线之间的相互转换问题,并已成功应用于某地区的智能交通控制系统。
  • 通信方式、通信接口、通信总线、通信协议的关系

    通信方式


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

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

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


    通信接口


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

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


    通信总线


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

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


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


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


    通信协议


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



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


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

    在这里插入图片描述

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

    在这里插入图片描述

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


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

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

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





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

    展开全文
  • 绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。
  • CAN总线 通信 接口

    2009-12-03 10:52:06
    详细介绍了各种工业现场使用的总线,例如CAN,对工业设计的同学很有用,特别是现场与控制的通信
  • FPGA与ARM的GPMC总线通信接口设计
  • 但是计算机没有CAN总线接口,为了进行CAN总线的调试,必须具有专用的适配卡才能实现与计算机的通信。目前常用的CAN转换器是基于单片机设计的,一般只适用于单路CAN总线的数据转换,可扩展性差。
  • 绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。
  • 本文将采用单片机+Profibus通信ASIC来实现Profibus通信接口的设计。
  • 网络游戏-在网络中通过总线接口进行通信的方法和系统.zip
  • 如果无法从CAN设备厂商取得CAN总线通信协议,如何破解CAN总线协议是必须要解决的课题。本文介绍一种CAN总线解码方法,供大家学习参考。 采用示波器侦测串口总线通信是比较常用的一种解码技术。以Pico示波器...
  • 用CPLD实现单片机与ISA总线接口的并行通信.doc
  • PLD与AVR总线通信接口VHDL设计与实现、电子技术,开发板制作交流
  • SPI(Serial Peripheral Interface--串行外设接口总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。
  • 电信设备-基于可编程逻辑控制器的CAN总线接口隔离通信模块.zip
  •  提出了一种使用CPLD解决双端口RAM地址译码和PCI接口芯片局部总线仲裁的的硬件设计方案,并给出了PCI总线接口芯片寄存器配置实例,介绍了软件包WinDriver开发设备驱动程序的具体过程。  随着计算机技术的不断发展...
  •  现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一 ,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制...
  • 基于ARM9与LINUX的RS485总线通信接口设计.pdf
  • 电信设备-有SPI接口的串行接口总线通信控制器.zip
  • 导读:为提高集成架构中车电总线通信速率,结合综合化处理系统项目要求,采用双总线结合的方式,利用CAN总线和FlexRay总线实现功能及搭配上的互补,提出一种基于现场可编程门阵列(FPGA)的总线接口单元设计方案。...
  • 总线通信中,总线设备中的MCU需要连接一个总线收发器接入到总线网络中,如果MCU的供电电压与收发器电压不匹配时,会出现什么情况?本文将以CAN总线为例从接口电平的角度为你解析电平匹配的重要性。  CMOS电平 ...
  •  主机接口HPI(Host Pott Interface)是C54x DSP系列定点芯片内部具有的一种并行接口部件,主要用于与其他总线或CPU之间进行通信,其接口框图如图l所示。主机是HPI口的主控者,HPI口作为一个外设与主机连接,使主机的...
  • FPGA与ARM的GPMC总线通信接口设计.pdf
  • 基于FPGA的CAN总线通信接口的设计.pdf
  • 介绍了PCI总线接口的一般设计方法,描述了亚稳态的产生机理并给出了降低亚稳态传播的方法,确定了本地总线接口单元的总体设计方案,用Verilog HDL语言在FPGA中编码实现。该方案工作稳定,数据传输准确,实现了与PCI...
  • 浅谈总线通信机制---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







     

    展开全文
  • 但是计算机没有CAN总线接口,为了进行CAN总线的调试,必须具有专用的适配卡才能实现与计算机的通信。目前常用的CAN转换器是基于单片机设计的,一般只适用于单路CAN总线的数据转换,可扩展性差。
  • 总线接口将数据通信的引脚数目减少到最少,只需1个数据线便可以进行通信而无须时钟同步线。目前,已有多种器件选用了单总线结构,例如A/D转换器、D/A转换器、温度传感器等。   使用单总线结构大大简化了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 81,729
精华内容 32,691
关键字:

区别总线接口通信接口