文章目录
- 一、上位机通信
- 1、什么是串行通信?
- 2、什么是RS-232?
- 3、什么是RS-422?
- 4、什么是RS-485?
- 5、什么是Modbus?
- 6、Modbus是干什么用的?
- 7、什么是十六进制?
- 8、什么是ASCII?
- 9、数据如何存储在标准 Modbus 中?
- 10、什么是从站ID?
- 11、什么是功能码?
- 12、什么是CRC?
- 13、什么是字节和字节序?
- 14、什么是 Modbus 映射?
- 15、如何使用2字节的从站地址?
- 16、什么是 Modbus TCP/IP 协议?
- 17、Modbus TCP/IP 在哪里使用?
- 18、可以在 Internet 上使用 Modbus TCP/IP 吗?
- 19、现有的 Modbus 设备能否通过 Modbus TCP/IP 进行通信?
- 20、解释 Modbus协议?
- 21、什么是主从网络?
- 22、设备之间可以相距多远?
- 23、什么是Modbus线圈?
- 24、什么是Modbus寄存器?
- 25、为什么地址会偏移一位?
- 26、通信超时错误并且无法通信? 可能有什么问题?
- 27、为什么读取的MODBUS 数据与设备不匹配?
- 28、Modbus RTU 消息中的实数(浮点数)和 32 位数据如何编码?
- 29、什么是通信延迟?
- 30、协议的重要内容是什么?
- 31、通信协议是什么意思?
- 32、什么是半双工和全双工通信?
- 33、什么是Profibus DP?
- 34、什么是 OPC?
- 35、什么是 OPC UA?
- 36、什么是OPC Classic?
- 37、什么是 OPC 客户端?
- 38、什么是 OPC 服务器?
- 39、OPC 客户端可以连接到多少 OPC 服务器?
- 40、OPC 客户可以与其他 OPC 客户直接通信吗?
- 41、使用 COM 的 OPC DA 性能与使用 Web 服务的 OPC UA 相比如何?
- 42、基于C#的TCP开发流程
- 43、什么是通信中的保活机制
- 44、如何理解Socket与TCP/IP
- 45、什么是SYN攻击
- 46、如何避免SYN攻击
- 47、如何理解Socket编程中Listen方法中的backlog参数
- 48、谈谈对大端字节序和小端字节序的认识
- 49、如何理解CAN总线
- 50、描述CAN总线的特点
一、上位机通信
1、什么是串行通信?
串行通信的概念很简单。串行端口一次发送和接收一位字节的信息。这比并行通信慢,并行通信允许一次传输整个字节;但是,它更简单,可以在更长的距离上使用。
重要的串行特性是波特率、数据位、停止位和奇偶校验。对于要通信的两个端口,这些参数必须匹配:
- 波特率:
波特率是用于通信的速度测量。它表示每秒的位传输数。
- 数据位
数据位是对传输中实际数据位的测量。
当计算机发送信息包时,实际数据量可能不是完整的8位。
数据包的标准值为5、7和8位。
例如,标准ASCII的值从0到127(7位)。扩展ASCII使用0到255(8位)。
如果传输的数据是简单文本(标准ASCII),则每个数据包发送7位数据就足以进行通信。
数据包指单字节传输,包括开始/停止位、数据位和奇偶校验。
- 停止位
停止位用于表示单个数据包的通信结束。
典型值为1、1.5和2位。由于数据是跨线路计时的,并且每个设备都有自己的时钟,因此两个设备可能会稍微不同步。
因此,停止位不仅表示传输结束,而且给计算机一些时钟速度错误的空间。
停止位的位越多,同步不同时钟的灵活性越大,但数据传输速率越慢。
- 校验位
奇偶校验是串行通信中使用的一种简单的错误检查形式。
奇偶校验有四种类型:偶数、奇数、标记和间隔。也可以选择不使用奇偶校验。
对于奇偶校验,串行端口将奇偶校验位(数据位之后的最后一位)设置为一个值,以确保传输具有偶数或奇数个逻辑高位。
例如,如果数据为011,则对于偶数奇偶校验,奇偶校验位将为0,以保持逻辑高位的数量为偶数。如果奇偶校验为奇数,则奇偶校验位将为1,从而产生3个逻辑高位。
2、什么是RS-232?
RS-232(ANSI/EIA-232标准)是IBM兼容PC上历史上发现的串行连接。它用于多种用途,如连接鼠标、打印机或调制解调器,以及工业仪器。
RS-232仅限于PC串行端口和设备之间的点对点连接。RS-232硬件可用于长达50英尺的串行通信。
3、什么是RS-422?
RS-422(EIA RS-422-A标准)是苹果Macintosh计算机上历史上使用的串行连接。RS-422使用差分电信号,而不是使用RS-232参考接地的不平衡信号。差分传输使用两条线路分别传输和接收信号,与RS-232相比,具有更高的抗噪性和更长的距离。这些优点使RS-422更适合于工业应用。
4、什么是RS-485?
RS-485(EIA-485标准)是对RS-422的改进,因为它将设备数量从10个增加到32个,并定义了在最大负载下确保足够信号电压所需的电气特性。抗噪性和多点功能使RS-485成为工业应用中的首选串行连接,需要许多分布式设备与PC或其他控制器联网,以进行数据采集、HMI或其他操作。RS-485是RS-422的超集;因此,所有RS-422设备可由RS-485控制。RS-485硬件可用于多达4000英尺电缆的串行通信。
5、什么是Modbus?
Modbus 是由 Modicon 开发的串行通信协议,由 Modicon® 于 1979 年发布,用于其可编程逻辑控制器 (PLC)。
简单来说,它是一种用于在电子设备之间通过串行线路传输信息的方法。
请求信息的设备称为 Modbus 主设备,提供信息的设备称为 Modbus 从设备。
在标准的 Modbus 网络中,有一个 Master 和最多 247 个 Slave,每个 Slave Address 有一个从 1 到 247 的唯一 Slave Address。Master 也可以向 Slaves 写入信息。
Modbus 是工业制造中常用的开放式通信协议,允许设备之间进行通信。
使用 Modbus,可以将来自不同制造商的设备集成到同一个设备管理系统中。
6、Modbus是干什么用的?
Modbus 用于从许多不同设备收集数据,以便同时观察、配置或数据存档。
Modbus 是一种开放协议,这意味着制造商可以免费将其内置到他们的设备中,而无需支付版税。 它已成为工业中的标准通信协议,现在是连接工业电子设备最常用的方式。 它被许多行业的许多制造商广泛使用。
Modbus 通常用于将来自仪表和控制设备的信号传输回主控制器或数据收集系统,例如测量温度和湿度并将结果传送到计算机的系统。
Modbus 通常用于将监控计算机与监控和数据采集 (SCADA) 系统中的远程终端单元 (RTU) 连接起来。 存在用于串行线路(Modbus RTU 和 Modbus ASCII)和以太网(Modbus TCP)的 Modbus 协议版本。
7、什么是十六进制?
在对问题进行故障排除时,查看正在传输的实际原始数据会很有帮助。
长串的 1 和 0 难以阅读,因此这些位被组合起来并以十六进制显示。 每个 4 位块由 0 到 F 的 16 个字符之一表示。
每个 8 位块(称为一个字节)由从 00 到 FF 的 256 个字符对之一表示。
8、什么是ASCII?
ASCII 代表美国信息交换标准代码。
与每 4 位可以用 0 到 F 的 16 个十六进制字符之一组合表示一样,每 8 位(每个字节)可以用 256 个 ASCII 字符之一组合表示,包括常见的键盘字符。
例如,一些 ASCII 字符的值是
9、数据如何存储在标准 Modbus 中?
信息以四个不同的表存储在从设备中。
两个表存储开/关离散值(线圈)和两个存储数值(寄存器)。
线圈和寄存器各有一个只读表和读写表。
每个表有 9999 个值。
每个线圈或触点为 1 位,并分配了一个介于 0000 和 270E 之间的数据地址。
每个寄存器为 1 个字 = 16 位 = 2 个字节,并且数据地址在 0000 到 270E 之间。
10、什么是从站ID?
网络中的每个从站都分配有一个从 1 到 247 的唯一单元地址。
当主机请求数据时,它发送的第一个字节是从机地址。 这样每个从机在第一个字节之后就知道是否忽略该消息。
11、什么是功能码?
主机发送的第二个字节是功能码。
这个数字告诉从站访问哪个表以及是读取还是写入该表。
12、什么是CRC?
CRC 代表循环冗余校验。 它是添加到每个 modbusRTU 消息末尾的两个字节,用于错误检测。 消息中的每个字节都用于计算 CRC。
接收设备还会计算 CRC 并将其与来自发送设备的 CRC 进行比较。 即使消息中的一位被错误接收,CRC 也会不同并导致错误。
13、什么是字节和字节序?
Modbus 规范并未准确定义数据在寄存器中的存储方式。
因此,一些制造商在他们的设备中实现了 modbus,先存储和传输高字节,然后是低字节。或者,其他人先存储和传输低字节
同样,当寄存器组合表示 32 位数据类型时,一些设备将高 16 位(高位字)存储在第一个寄存器中,将剩余的低位字存储在第二个(5652 之前的 AE41),而其他设备则相反
字节或字的发送顺序无关紧要,只要接收设备知道期望它的方式。
例如,如果将数字 2,923,517,522 作为 32 位无符号整数发送,则可以按这四种方式中的任何一种进行排列。 例子
AE41 5652 高字节先 高字先 “大端”
5652 AE41 高字节在前 低字在前
41AE 5256 低字节在前 高字在前
5256 41AE 低字节先 低字先 “小端
14、什么是 Modbus 映射?
modbus 映射只是定义了从设备的列表
- 数据是什么(例如压力或温度读数)
- 数据存储在哪里(哪些表和数据地址)
- 数据的存储方式(数据类型、字节和字顺序)
15、如何使用2字节的从站地址?
由于通常使用单个字节来定义从站地址,并且网络上的每个从站都需要唯一的地址,因此网络上的从站数量限制为 256。 modbus 规范中定义的限制甚至更低,为 247。 为了超越这个限制,可以对协议进行修改以使用两个字节作为地址。 主站和从站都需要支持这种修改。 两字节寻址将网络中从站数量的限制扩展到 65535。 默认情况下,Simply Modbus 软件使用 1 字节寻址。 当输入大于 255 的地址时,软件会自动切换到 2 字节寻址,并对所有地址保持此模式,直到手动关闭 2 字节寻址。
16、什么是 Modbus TCP/IP 协议?
TCP/IP 是 Internet 的通用传输协议,实际上是一组分层协议,提供机器之间可靠的数据传输机制。
Ethernet 已成为企业系统的事实标准,因此它也成为工厂网络的事实标准也就不足为奇了。 以太网并不是一项新技术。 它已经成熟到实施该网络解决方案的成本已经下降到其成本与当今现场总线的成本相当的程度。
在工厂中使用以太网 TCP/IP 可以与支持工厂的企业内部网和 MES 系统真正集成。1999 年制定了开放的 Modbus TCP/IP 规范。协议规范和实施指南可供下载 (www.modbus.org/specs).
Modbus 将多功能、可扩展且无处不在的物理网络 (以太网) 与通用网络标准 (TCP/IP) 和供应商中立的数据表示相结合,为过程数据交换提供了一个真正开放、可访问的网络。 对于任何支持 TCP/IP 套接字的设备来说,实现起来都很简单。
17、Modbus TCP/IP 在哪里使用?
Modbus TCP/IP 因其开放性、简单性、低成本开发以及支持它所需的最少硬件而变得无处不在。
市场上有数百种 Modbus TCP/IP 设备——每年都在开发更多。 它用于在设备之间交换信息、监视和编程它们。 它还用于管理分布式 I/O,是此类设备制造商的首选协议
18、可以在 Internet 上使用 Modbus TCP/IP 吗?
Modbus TCP/IP 是一种互联网协议。 TCP/IP 自动成为 Internet 的传输协议这一事实意味着 Modbus TCP/IP 可以在 Internet 上使用。
实际上,这意味着安装在网络中的 Modbus TCP/IP 设备可以从世界任何地方通过 Internet 进行寻址。 对设备供应商或最终用户的影响是无穷无尽的。
使用 PC 和浏览器对远程设备进行维护和维修可降低支持成本并改善客户服务。
在家中登录工厂的控制系统可以让维护工程师最大限度地延长工厂的正常运行时间并减少现场时间。使用商用互联网/内联网技术管理地理分布的系统变得容易。
19、现有的 Modbus 设备能否通过 Modbus TCP/IP 进行通信?
由于 Modbus TCP/IP 只是带有 TCP 包装器的 Modbus 协议,因此现有 Modbus 设备通过 Modbus TCP/IP 进行通信非常简单。 需要网关设备将当前物理层(RS232、RS485 或其他)转换为以太网,并将 Modbus 协议转换为 Modbus TCP/IP。 这种网关设备可以使用 PC 来实现。 可以从几个不同的制造商处获得用于执行此操作的商业产品。 Modbus 设备数据库可以帮助您识别网关和其他 Modbus 设备。
20、解释 Modbus协议?
Modbus 协议是 Modicon 于 1979 年开发的一种消息结构,用于在智能设备之间建立主-从/客户端-服务器通信。 它是工业制造环境中一个事实标准、真正开放且使用最广泛的网络协议。 它已被数百家供应商在数千种不同的设备上实施,以在控制设备之间传输离散/模拟 I/O 和寄存器数据。 这是不同制造商之间的通用语言或共同点。 一份报告称其为“多供应商集成的事实上的标准”。 行业分析师报告仅在北美和欧洲就有超过 700 万个 Modbus 节点。
21、什么是主从网络?
主从技术是一种只有一个设备(主设备)可以发起事务(查询)的技术。 其他设备(从设备)通过向主设备提供请求的数据或采取查询中请求的操作来响应。 典型的主设备包括触摸屏或运行 Wonderware、Intellution 或 LabVIEW 的 PC,而从设备包括 PLC 和智能设备,如 PID 控制器或仪表。
22、设备之间可以相距多远?
- 对于 RS-232 连接,最大距离为 15 米。
- 对于 RS-422 和 RS485 连接,最大距离为 4000 米。
- 可以使用中继器来增加距离。
23、什么是Modbus线圈?
这是指示 ON (1) 或 OFF (0) 状态的单个信息位。 线圈的类型包括阀门状态、警报/警告和状态。
24、什么是Modbus寄存器?
这是一个 16 位的数据字段。 数据可以是二进制(十进制)、十六进制或 BCD 格式。 寄存器数据的类型包括温度、压力、时间和 PID 变量。
25、为什么地址会偏移一位?
某些 Modbus 主设备以不同方式计算寄存器位置,因此实际地址可能会移位 1。 这通常称为“添加偏移量”。
26、通信超时错误并且无法通信? 可能有什么问题?
- 通常可以通过观察 Modbus 组件上的发送和接收指示灯来验证发送和接收信号。
- 设备上的通讯参数设置不正确。 检查从地址、波特率、停止位和奇偶校验的设置是否匹配。
- 确保主机软件具有相同的配置
- 传输线和接收线交叉。 尝试切换电线,因为它不会造成任何损坏。
- 检查每根电线的导电性是否有松动的连接或断线。
- 高功率线路或不正确的接地会在系统中引起噪音。 通讯电缆是否屏蔽,屏蔽层是否一端接地。
27、为什么读取的MODBUS 数据与设备不匹配?
- 寄存器地址是否正确,是否偏移一位处理
- 慢速通信可能会延迟 MODBUS 数据的更新。
- 主机软件未配置为持续轮询新读数。
- 数据格式可能设置不正确。
- 通常,数据采用二进制/十进制格式。 在某些情况下,数据可能是十六进制的。
- 有些数据隐含了小数位,因此 432.1 的值在 MODBUS 中将是 4321。
- 一些大数字可能需要两个地址。 这称为双字。 低地址(字)将包含前四位,而较高地址(字)将包含高四位。 为了快速转换,取(高字 X 10000)+ 低字。
- 有时需要缩放才能导出正确的数字。 比例在 MODBUS 表中显示,其中给出了实际数据,然后是比例值。 例如,如果实际读数是从 0 到 4095,而标度是从 0 到 100,那么实际值必须除以 40.95 才能获得正确的标度。
28、Modbus RTU 消息中的实数(浮点数)和 32 位数据如何编码?
Modbus RTU 协议本身是基于具有 16 位寄存器长度的设备设计的。 因此,在实现 32 位数据元素时需要特别考虑。此实现决定使用两个连续的 16 位寄存器来表示 32 位数据或基本上 4 个字节的数据。
29、什么是通信延迟?
一次通信结束与另一次通信开始之间的延迟时间。在此期间,与通信相关的进程被挂起,无法继续。延迟必须是最小的。
30、协议的重要内容是什么?
以下是协议的三个最重要的要素:
- **语法:**它是数据的格式。这是显示数据的订单。
- **语义:**它描述了每个部分的位的含义。
- **时间:**数据的发送时间以及发送速度。
31、通信协议是什么意思?
协议是一套规则,如果两个或两个以上的设备要相互通信,必须遵循这些规则。网络协议定义了如何安排和编码数据以用于网络上的传输。
32、什么是半双工和全双工通信?
半双工系统提供双向通信,但一次只能提供一个方向。用于主从通信。
全双工通信传输允许同时向两个方向传输数据,可用于点对点通信
33、什么是Profibus DP?
Profibus DP 是一个开放的国际现场通信标准,支持模拟和离散信号。物理介质通过 RS-485 或光纤传输技术进行定义。
34、什么是 OPC?
OPC 是世界上最流行的基于标准的数据连接方法。 它用于解决自动化行业中,如何在设备、控制器和/或应用程序之间进行通信,而不会陷入通常的基于自定义驱动程序的连接问题。
OPC 是工业自动化和企业中安全可靠信息交换的互操作性标准。 最初的 OPC 规范是在 1990 年代中期由一群自动化行业供应商开发的,用于标准化软件应用程序和工业自动化硬件设备之间的数据交换。
OPC 规范定义了客户端和服务器之间以及服务器到服务器之间的接口,因此 PLC、HMI 和任何 OPC 感知设备等系统组件可以共享数据,而无需开发自定义软件设备接口应用程序。
35、什么是 OPC UA?
作为新一代 OPC 技术,OPC UA(统一架构)是安全、可靠和平台独立互操作性的重大飞跃。 OPC UA 旨在将数据和信息从一级工厂和过程控制设备传输到企业信息系统。
OPC UA 规范于 2008 年首次发布,将现有 OPC Classic 规范的所有功能集成到一个面向服务的架构中。 它增加了基本的新功能,例如平台独立性、诊断、发现、复杂信息模型的呈现、安全性和可靠性。 此外,OPC UA 于 2011 年 10 月作为 IEC 标准 IEC 62541 发布。
36、什么是OPC Classic?
OPC Classic 规范基于 Microsoft Windows 技术,使用 COM/DCOM(分布式组件对象模型)在分布式客户端-服务器网络中的软件组件之间进行通信。 OPC Classic 规范为交换过程数据、报警和历史数据提供了单独的规范。
最初的 OPC Classic 规范是 OPC DA(数据访问),它定义了客户端和服务器应用程序之间的接口,用于交换过程和制造数据。 其他重要的 OPC Classic 规范包括 OPC 警报和事件 (OPC AE) 和 OPC 历史数据访问 (OPC HDA)。
OPC Classic 仍然是 OPC 技术组合的一个组成部分。 2010 年,OPC Classic 使用 OPC .NET 4.0 规范进行了增强,以适应 Microsoft 平台的新技术创新,提供更好的连接性、可靠性、安全性和互操作性。
37、什么是 OPC 客户端?
OPC 客户端是为与 OPC 连接器通信而编写的软件。 它使用由特定 OPC Foundation 规范定义的消息传递。
38、什么是 OPC 服务器?
OPC 服务器是一种软件应用程序,一种“标准化”驱动程序,专门为符合一个或多个 OPC 规范而编写。
“OPC 服务器”不是指正在使用的计算机类型,而是反映其与 OPC 对应物 OPC 客户端的关系。
39、OPC 客户端可以连接到多少 OPC 服务器?
简短的回答是——尽可能多。 在 OPC 框架内,对于 OPC 客户端可以连接的 OPC 服务器数量没有理论上的限制。
40、OPC 客户可以与其他 OPC 客户直接通信吗?
否。OPC 客户端到 OPC 客户端的通信未在 OPC 中定义。 仅支持 OPC 客户端/OPC 服务器架构。
但是,如果希望应用程序向其他客户端提供 OPC 数据,则它需要拥有自己的 OPC 服务器。 此 OPC 服务器随后将允许来自其他应用程序的 OPC 客户端将此应用程序用作 OPC 数据源。
41、使用 COM 的 OPC DA 性能与使用 Web 服务的 OPC UA 相比如何?
对 OPC UA 二进制数据传输的初步测试表明,Classic OPC(基于 DCOM)对于小消息更快,而 OPC UA 对于大消息更快。
然而,传输内容是最重要的。 Classic OPC 和 OPC UA 都可以每秒传输数万个值,而这个传输速率完全可以满足大多数控制系统。
42、基于C#的TCP开发流程
服务端:
- 服务端初始化 Socket,得到文件描述符
- 服务端调用 Bind,将绑定在 IP 地址和端口
- 服务端调用 Listen,进行监听
- 服务端调用 Accept,建立客户端连接
- 通过Send向客户端发送消息
- 通过Receive接收客户端消息
客户端:
- 客户端初始化 Socket,得到文件描述符
- 客户端调用Connect,连接服务器
- 连接成功调用Send向客户端发送消息
- 通过Receive接收客户端消息
43、什么是通信中的保活机制
最准确的方式,是可以给定一个时间段,在这个时间段内,如果没有任何通信相关的活动,保活机制开始作用,即发送一个心跳请求报文,一般心跳报文包含的数据非常少,对方在接收到心跳报文后,及时做出响应,如果连续几个心跳报文都没有得到响应,则认为当前的通信已经断线,启动断线重连动作或者报出异常。
44、如何理解Socket与TCP/IP
TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如Win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。
所以,Socket跟TCP/IP并没有必然的联系,Socket编程接口在设计的时候,就希望能适应其他的网络协议。Socket的出现只是可以更方便的使用TCP/IP协议栈而已,其对TCP/IP进行了抽象,形成了一些最基本的函数接口,比如Send,Listen等。
45、什么是SYN攻击
我们都知道 TCP 连接建立是需要三次握手,假设攻击者短时间伪造不同 IP 地址的 SYN 报文,服务端每接收到一个SVN 报文,就进入SYN_RCVD 状态,但服务端发送出去的 ACK + SYN 报文,无法得到未知IP 主机的 ACK 应答,久而久之就会占满服务端的 SYN 接收队列(未连接队列),使得服务器不能为正常用户服务。
46、如何避免SYN攻击
两个方案:
- 通过修改内核参数,控制队列大小,并确定好当队列满之后应该如何处理,比如队列满之后,对新的SYN直接回复RST,丢弃连接。
- 当SYN队列满了之后,后续收到的SYN,不直接进入SYN队列,而是先计算Cookie值,再发送,后续可以验证ACK包的合法性
47、如何理解Socket编程中Listen方法中的backlog参数
- accept()函数不参与三次握手,而只负责从已建立连接队列中取出一个连接和sockfd进行绑定;
- backlog参数决定了未完成队列和已完成队列中连接数目之和的最大值;
- accept()函数调用,会从已连接队列中取出一个“连接”(可以是一个描述连接的数据结构,未完成队列和已完成队列中连接数目 之和将减少1;即accept将监听套接字对应的sock的接收队列中的已建立连接的sk_buff取下
- 监听套接字的已完成队列中的元素个数大于0,那么该套接字是可读的。
- 当程序调用accept的时候(设置阻塞参数),那么判定该套接字是否可读,不可读则进入睡眠,直至已完成队列中的元素个数大于0(监听套接字可读)而唤起监听进程。
48、谈谈对大端字节序和小端字节序的认识
程序中的数据最终需要保存在内存中,或在通信过程中以字节进行传输,当数据大于1个字节的表示范围时,出现了多个字节的排列顺序问题,即数据存储大小端
大端:数据的低位存放内存地址(或报文字节序)的高地址
小端:数据的低位存放内存地址(或报文字节序)的低地址
49、如何理解CAN总线
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议由德国的 Robert Bosch公司开发,用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。
CAN总线是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电子干扰性,并且能够检测出产生的任何错误。CAN总线可以应用于汽车电控制系统、电梯控制系统、安全监测系统、医疗仪器、纺织机械、船舶运输等领域。
50、描述CAN总线的特点
(1)具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
(2)采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
(3)具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;
(4)可根据报文的ID决定接收或屏蔽该报文;
(5)可靠的错误处理和检错机制;
(6)发送的信息遭到破坏后,可自动重发;
(7)节点在错误严重的情况下具有自动退出总线的功能;
(8)报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
。
CAN总线是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电子干扰性,并且能够检测出产生的任何错误。CAN总线可以应用于汽车电控制系统、电梯控制系统、安全监测系统、医疗仪器、纺织机械、船舶运输等领域。