总线通信与串口通信有什么区别

请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那我可以说:“它走can协议吗?”而常见的串口通信modbus, MPI , PPI等与总线通信有什么区别呢?

1、性质

总线通信:是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

串口通信:是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。

2、特点

总线通信:面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。

串口通信:使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

3、原理

总线通信:如果说主板是一座城市,那么总线就像是城市里的公共汽车,能按照固定行车路线,传输来回不停运作的比特,这些线路在同一时间内都仅能负责传输一个比特。

串口通信:串口按位发送和接收字节。尽管比按字节的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。

参考资料:百度百科-串口通信

参考资料:百度百科-总线

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-06

1、性质

总线通信:是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

串口通信:是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。

2、特点

总线通信:面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。

串口通信:使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

3、原理

总线通信:如果说主板是一座城市,那么总线就像是城市里的公共汽车,能按照固定行车路线,传输来回不停运作的比特,这些线路在同一时间内都仅能负责传输一个比特。

串口通信:串口按位发送和接收字节。尽管比按字节的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。

参考资料来源:百度百科-总线

参考资料来源:百度百科-串口通信

本回答被网友采纳
第2个回答  推荐于2017-09-04
modbus,profibus是以rs485为基础的通讯协议,devicenet以can为基础的通讯协议;
PPI MPI Profibus 通信协议详解2011-03-04 19:23:42| 分类: 工控PLC | 标签:无 |字号大

小 订阅
1、 MPI是Multi-Point Interface,适用于PLC 200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,MPI网络的通信速率为网络才支持12Mbit/s的通信速率。MPI网络最多可以连接32个接节点,最大通信距离为50m,但是可以通过中继器来扩展长度。
PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。PPI是一种主从协议,主站、从站在一个令牌网。在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。

MPI是主站之间的通信;PPI可以是多台主站与从站之间通信。

2、MPI协议:西门子内部协议,不公开;
PROFIBUS-DP协议:标准协议,公开。

3、MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。
常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。
在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。

3. PPI,MPI和PROFIBUS都是基于OSI(开放系统互联)的七层网络结构模型,符合欧洲标准EN50170所定义的PROFIBUS标准,基于令牌的的网络通信协议。这些协议是非同步的(串行的)基于字符的通信协议,字符格式包括一个起始位、8个数据位、一个偶校验位和一个停止位。其通信帧包括特定的起始和结束字符、源和目的站的地址、帧长度和数据校验和。
在波特率一致、各站地址不同的情况下,PPI,MPI和PROFIBUS可以同时在一个网络上运行,并且互不干扰。
这就是说如果一个网络上有S7-300、S7-200,S7-300之间可以通过MPI或PROFIBUS通信,而在同时在同一个网络上的TP170 如果在一个通信网络上存在其他主站(如TD 200,或者上位计算机等),同时需要进行Micro/WIN的编程、监控,这就是多主站网络编程。

使用西门子的下列设备可以实现Micro/WIN的多主站编程:
micro触摸屏可以与一个S7-200 CPU通信。
使用智能多主站电缆和Micro/WIN V3.2 SP4以上版本。新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。
如果使用CP卡,如CP5511/CP5512(笔记本电脑PCMCIA卡)、CP5611(台式机PCI卡),能够支持多主站编程通信。
如果通过CP卡编程时,选择了MPI协议,注意MPI主站不能访问作为PPI主站的CPU。
如果有第三方的产品要连接到多主站网络上,用户需要咨询第三方产品提供商以了解是否支持西门子的S7-200多主站网络。要进行多主站编程,不但编程计算机要支持,网上的其他设备也要有多主站通信能力。

早期的多主站连接依赖于计算机硬件和Windows操作系统。随着计算机技术的发展,多数情况下已经不能做到多主站编程通信。建议用户使用西门子的多主站编程电缆或者CP卡配合Micro/WIN实现多主站编程通信。
4 .MPI (Multipoint interface)是SIMATIC S7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量PLC之间近距离通信。

通过PROFIBUS电缆和接头,将控制器S7-300或S7-400的CPU自带的MPI编程口及S7-200CPU 自带的PPI通信口相互连接,以及与上位机网卡的编程口(MPI/DP 口)通过PROFIBUS或MPI电缆连接即可实现。网络中当然也可以不包括PC机而只包括PLC。

MPI的通信速率为19.2K~12Mbit/s ,但直接连接S7-200CPU通信口的MPI网,其最高速率通常为187.5Kbit/s (受S7-200CPU最高通信速率的限制)。

在MPI网络上最多可以有32个站,一个网段的最长通信距离为50米(通信波特率为187.5Kbit/s时),更长的通信距离可以通过RS-485中继器扩展。

MPI允许主-主通信和主-从通信,每个S7-200CPU通信口的连接数为4个。
MPI协议不能与一个作为PPI主站的S7-200CPU通信,即S7-300或S7-400与S7-200通信时必须保证这个S7-200 CPU不能再作PPI主站,Micro/WIN也不能通过MPI协议访问作为PPI主站的S7-200CPU。
S7-200CPU只能做MPI从站,即S7-200CPU之间不能通过MPI网络互相通信,只能通过PPI方式互相通信。STEP 7-Micro/WIN可以与S7-200CPU建立MPI主-从连接。硬件使用CP5611卡加上PROFIBUS或MPI电缆,S7-200 CPU通信口上要使用带编程口的网络连接器。S注:CP5613不能通过MPI方式与S7-200 CPU通信口进行编程通信。7-200CPU的通信口最低通信速率可设为19.2K,最高187.5K。
S7-300和S7-400 CPU可以作为MPI主站用XGET(SFC67)和XPUT(SFC68)指令读取S7-200数据,通信数据包最大为64个字节。S7200 CPU中不需要编写任何与通信有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可。
5. S7-200 通过以下方式支持 Modbus 通信协议:
S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。

如果想在S7-200 CPU之间、或者其他支持Modbus RTU的设备使用Modbus RTU协议通信,需要由有S7-200 CPU做Modbus主站。S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。
1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对 Port 0 和 Port 1 有效。该指令库将设置通信口工作在自由口模式下。
2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
3. Modbus RTU 主站库对CPU的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。本回答被提问者采纳
第3个回答  2019-09-19

怎么其他答案全是抄百科啊。。。哎

大家要支持原创回答啊!!!

举个例子吧:

串口只是MCU常用的一种1对1板端接口,就像SPI,IIC。非联网通讯的,属于数据原始接口。

而常用的RS485,现场布线更方便的POWERBUS这种现场总线,信号源都取自UART串口。

TTL接口电平常见的有3.3V和5V的。通过在0和TTL电平之间摆动,来传输数据。需要通讯双方“约定”好速率。也就是说,通过TTL电平传输的UART接口是一种不传输时钟的"异步通讯"方式。

一般通讯格式以一个字节为最小单位,有8位,和9位的常见格式。第九位有的人用于奇偶效验用。

如下图:

而RS485接口,简单说就是把TTL的“0-3.3V/5V之间摆动”的信号,转换为“5V压差颠倒反转的AB线信号”,并且扩流驱动电缆电容。简单说就是这样。

所以可以理解为,RS485是以TTL数据源的总线驱动芯片。

相似回答