MVB与CAN总线协议转换的研究与实现

18 MVB与CAN总线协议转换的研究与实现 MVB与CAN总线协议转换的研究与实现 谢 芳 同济大学电子与信息学院(200331) AbstraCt This paper introduces a protocol converter,which complete the protocol conversion between MVB Bus and CAN Bus,ad— 

ditionally including its functional principle。hardware block and software design The problem of the speed disaccord and the conversion of application layer S protocol is emphasised in this paper. Keywords:fieldBus,protocol converter,MVB,CAN gateway 摘 要 本文介绍了一种协议转换器,它主要完成MVB和CAN现场总线之间的协议转换。文中还包括了它的设计思路,硬件框 图和软件设计。对于速率不匹配的处理和应用层协议的转换上,作了重点的阐述。 关键词:现场总线,协议转换,MVB,CAN网关 

随着技术的进步和市场的需求变化,铁路机车车辆工业对 列车微机控制系统中的车载数据通信网提出了新的要求,期望 建立一个在机车车辆内部及列车和地面控制系统之间交换控制 命令、状态信息、故障诊断及旅客信息等的数据通信网络。为此, IEC制定的列车通信网路国际标准TCN(Train Communication Network)将成为一个标准的数据通信平台。 按照TCN标准,列车通信网分为两级,第一级绞线式列车 总线 B(Wired Train Bus)实现车辆间的数据通信,第二级 多功能车辆总线MVB(Multifunction Vehicle Bus)主要实现同 个车辆内各个功能控制单元之间的数据通信。CAN总线则主 要完成现场设备间的数据通信。而我们所要做的就是通过协议 转换在MVB总线和CAN总线之间建立可靠的数据连接。 1 CAN总线及MVB总线概述 CAN是一种多主方式的串行通讯总线,它的MAC(媒体访 问控制)是通过非破坏性按位仲裁技术实现的。 MVB是一种主从方式的串行通讯总线,是为快速的过程控 制优化的总线,能提供最佳的响应速度,适合用作车辆总线。它 的MAC(媒体访问方式)是通过总线主进行轮询实现的。MVB 总线中有一个重要的角色就是总线管理器,称为总线主,负责通 信的发起,总线主在每一个特征周期里通过发主帧的方式对进 程数据进行轮询,相应的从设备发送从帧进行真正的数据传输。 2总线之间的协议转换 MVB和CAN都属于现场总线范畴,既然是现场总线,分层 结构和要求较以太网就会有所不同。具体来讲,由于现场总线强 调的是实时性,以太网强调的是可靠性,所以用于以太网的OSI 的7层分层是不优化的。大多数现场总线的分层结构都是j.层: 物理层,数据链路层,应用层。当然也个别的,如LONWORKS、 因此在讨论总线之间协议转换的时候,我们一般不涉及网络层 除了数据链路层的协议转换以外,总线之间的协议转换还包括 了对应用层的协议转换工作。 我们知道应用层定义的针对用户应用的接口协议。在计算 机网络中,我们所涉及到的应用有很多普遍性,从而产生了一些 通用的标准应用层协议,如FTP、HTrP等。然而,在现场总线的 应用场合,存在着多样性,针对不同的应用场合,可以产生不同 的应用协议。但是有一点可以肯定,具体现场总线的应用层协议 肯定要比计算机网络的应用 协议简单的多,其主要也是为了 缩短数据包的长度,以体现实时性。 MVB有过程数据和消息数据之分,这是MVB协议的一大 特色。基于过程数据的网络分层是3层(物理层、数据链路层、应 用层),而基于消息数据的网络分层则有7层(OSI 7层),由于 消息数据的复杂性,和较少的应用场合,我们这里只讨论过程数 据,所以也可以将MVB视为一个三层协议的网络。 CAN的网络分层结构严格来说就只有两层,物理层和数据 链路层,但由于涉及到具体应用,必须需要定义应用层。De— viceNet就规范地定义了CAN总线的应用层,比如说它利用了 CAN的11位标示符,对每一位都作了详细的功能划分,和具体 的表示规范。但由于它涉及的面比较广,从而造成了也比较复 杂。在此,可以借鉴它其中一些适用于具体应用场合的一些定义 来构建自己的应用层协议,如第几位表示单帧或多帧等,甚至还 可以利用数据场的部分字节来做一些应用方面的定义。 为了实现MVB—CAN的协议转换,需要做以下工作: 1)帧格式的转换(主要是帧字节数大小的不同,帧的编码解 码部分由网卡硬件完成); 2)应用层的转换(通过一定的形式将MVB总线当中表示过 程数据的数据集与CAN的11位表示数据含义的标志符联系 起来,实现透明的传输); 3)数据传输速率的匹配。 3 MVB和CAN之间协议转换的实现 3.1帧长度处理及应用层的转换 CAN的数据帧中数据场的字节数是8个字节,而MVB从 帧中的数据长度为32字节(取其中一种)。从MVB侧传送到 CAN侧的数据就需要进行分帧处理,同样从CAN侧传到MVB 侧的数据也需要按照一定的规则组合成一个MVB帧。在这里可 以有两种方案来解决: 第一种我们可以采取建立一种规范(协议)的方式来预先定 义MVB的各种变量的含义(应用层的协议),所在端口的端口地 址,长度,以及在端口中数据集的偏移位置等等,而后将这些信 息按照一定的规则和CAN侧的帧的标志符等信息对应成一个 表格,这样在CAN侧的数据接收就可以借助这个表格来完成。 这样做的优点在于把一些必要的信息(位偏移、长度等)按照约 定的形式来实现共享,那么就不需要再在数据集中分出空间来 传输一些包括长度,和偏移等的信息了。缺点就是用户使用的时 候必须熟读这个表格,在发送端和接收端都要按照表格来编程 以完成数据的传输,且表格一旦生成,就不易产生很大的变动, 灵活性较差。这里的端口指的是一种既可以被总线又可以被应 用处理器访问的一种存储器,它在MVB中是用来寻址的,数据 

维普资讯 http://www.cqvip.com 《工业控制计算机))2004年17卷第2期 19 的发送是通过应用将数据放入端口,数据的接收则是从端13中 取数据放到应用中去。至于端口与端口间的数据拷贝则是通过 主轮询方式,当主节点轮询到需要发送数据的端口(源端口)时, 便产生了从源端口到宿端口(数据接收端口)的数据拷贝。数据集 在MVB中其实就是一般的纯数据,之所以称它为集是因为 MVB中一帧的数据较长,通常我们就把多个变量的信息放在一 个集中(一个帧中)来传输,这样做较为经济。 第二种我们可以利用MVB从帧中的部分字节来表示变量 含义,端口刷新标志等信息,而变量长度和偏移等其他信息则可 以放在表格中通过变量含义来查找获得。只是这里的表格由于 是基于查找方式的,而不是纯粹的规范,所以简单也灵活的多 端口刷新标志是用于标志是否该从宿端口取数据到缓冲区,借 用它我们可以知道宿端口中是不是有新数据。 我们采用的是第二种方式,上面所说的表格其实有两个,一 个是基于MVB过程变量含义来查找的,我们称为LIST1(其人 口参数为LIST1一INDEX),其由以下几个要素组成:MVB过程变 量的含义,MVB端口地址(宿端口),MVB过程变量在数据集中 的偏移地址,MVB过程变量长度,CAN帧的标志符。另一个表 格是基于CAN帧标志符来查找的,我们称为LIST2(其入口参 数为LIST2_INDEX),其由以下几个要素组成:CAN帧的标志 符,CAN帧的长度,CAN帧在MVB数据集中的偏移地址,MVB 端口地址(源端口),MVB过程变量含义。 3.2不同的数据传输速率 CAN总线的最大数据传输速率是1MbiVs,而MVB总线的 传输速率则是1.5 MbiVs。由于CAN的传输速率是与传输线长 度密切相关,1MbiVs的速率所支持的传输线长度太短,在实际 应用场合是很难实现的,在较为理想的情况下,传输线总长度仅 为100m的情况下只能支持500kbiVs的传输速率。而MVB的 数据传输速率则是定值。所以CAN总线与MVB总线的数据传 输速率差异是很大的。 传输速率的不一致必然造成数据的积压和丢失。这个问题 可以通过设立数据缓冲区加上一定的机制来解决。那么缓冲区 设多大才比较合适呢?如果设的太大,必然造成资源的浪费,提 升成本,如果设的太小,又容易造成数据的溢出。下面我给出一 个算法来说明缓冲器的大小取值(假定CAN侧速率为500kbit/ s,传输距离为10o米,MVB侧传输速率为1.5Mbit/s)。 MVB侧:MVB有主帧和从帧之分,所以说完成一个完整32 字节数据帧的传输需要一个报文(一个主帧加一个从帧),主帧的 帧头帧尾再加上从帧的帧头帧尾,还有主帧和从帧的帧间间隔, 加起来一个报文的传输需要2631J,s的时间(具体过程不做计 算),而在MVB的一个基本周期中(主帧进行轮训的基本单位, 假设为1ms)分配给过程数据传输的就只有6501xs,也就是说在 1ms当中,我最多可以完成两个32字节完整数据帧的传输,总 共为64字节。 CAN侧:CAN侧采用的媒体访问方式本质上是一种类似 于CSMA/CD的争用方式.只不过加上了一个优先级罢了。争 用期也就是发生了冲突导致无法正常传输有效数据的时段,我 们知道争用期的最大值是4T(T是端到端的传播延时): f=2(芯片延时+收发器接收延时+收发器发送延时+电缆造 成的延时):2(62.5+100+1o0+100 5.5):1625ns 其中的芯片延时和收发器延时都是固定的,电缆造成的延 时计算如下:电缆传播系数(这里为5.5ns/m)¥最大传输距离 (100米)。由上得出最大争用期为=4f=4¥1625=6.51xS.发送 个数据帧所需的时间=帧长度/数据传输速率=107biV500 kbiVs=2141xs(这里的帧长度是发送一个完整的数据帧所需的 所有bit,具体见CAN协议规范),也就是说完成一个8字节 CAN帧的发送所需时间214p,s+6 51xs=220.5 s。那么在1ms 当中,大约可以完成4个8字节的CAN帧(即使每帧都遇到最 长的争用期),总共为32个字节。 由此我们可以看出虽然在速率上MVB总线是CAN总线 的三倍,相差较大,但是从整个传输的有效bit数来看,MVB总 线则是CAN总线的两倍,也就是说当网关的MVB侧接收了64 字节数据的时候,同样时间内网关的CAN侧只成功地发送了这 64字节当中的32字节的数据,剩下的32个字节还未能发送出 去。因此我们把缓冲区的大小设为320个字节(32字节¥10个 基本周期),这样的大小能够保证在MVB的十个基本周期内,如 果每个基本周期都连续成功发送两个报文给网关节点,而且 CAN侧网关节点的优先级始终最高的话,不会产生数据丢失的 情况。当然MVB不一定每个基本周期都会发送两个报文这么多 的数据,也不一定全部发向网关节点,所以大小已经足够了。 缓冲区的软件实现采用数据结构中的循环队列结构来实现, 队列有着先进先出的特点,用与作数据缓冲区有其独到优势。而 这里的循环是为了防止假溢出现象而采用的更加优化的结构。 4协议转换器的原理结构 基于开发方便考虑,我们采用一块主控处理器(486DX),来 主持网关两边数据的收发,CAN侧我们采用一块宿CPU+CAN 控制器构成,MVB网络接口单元NIU中包含MVB控制器 (PLD),和一个CPU内核(ARM)。 CAN侧和主控CPU之间的数据交换采用双口RAM方式。 要实现主控CPU和CAN控制器之间的数据传送,就必须在主 控CPU与CAN侧的宿CPU之间建立起双向的数据交换通 道,双口RAM就是提供了两路完全独立的端口。其每个端口都 有完整的地址、数据和控制线,利用一些中断标志来解决双 CPU的争用问题,从而实现数据快速的交换。 而主控CPU与D113网卡之间的数据交换则采用UART 仿真方式。UART(通用异步收发器),是一种基于异步串行通信 机理的接收和发送装置,现在用的比较普遍的是16C450,我们 PC机串口采用的就是这个器件。为了便于与具有这种串口接口 的器件进行通讯(如PC等),同时也为了提高数据传输的速率, 所以在D113的PLD中模拟出了这个一个寄存器组(取的是 16C450寄存器组的一个子集),以便能和主控CPU进行速度 较快,且较为可靠的数据传输。 其硬件框图如图1所示。 

合集下载

CAN总线接口在单片机网络通信中的实现方法

CAN总线接口在单片机网络通信中的实现方法

CAN总线接口在单片机网络通信中的实现方法CAN(Controller Area Network)总线是一种广泛应用于汽车、工业控制和机器人等领域的串行通信协议。

它在单片机网络通信中具有重要的作用,可以实现高效可靠的数据传输。

本文将介绍CAN总线接口在单片机网络通信中的实现方法。

一、CAN总线的基本原理CAN总线是一种多主机、多从机的总线系统,其基本原理是基于广播方式进行通信。

CAN总线上的每个节点都可以发送和接收数据,它们通过共享线路传递信息。

在CAN总线中,每个节点都有一个唯一的标识符。

当某个节点发送一帧数据时,其他节点会接收到该帧数据并进行处理。

这种广播方式可以实现节点之间的高效通信。

二、CAN总线接口的硬件实现为了在单片机网络通信中实现CAN总线接口,我们需要使用一种具备CAN功能的单片机芯片,并连接相应的硬件电路。

1. CAN控制器:CAN控制器是实现CAN总线通信的核心部件,它负责发送和接收数据,并进行错误检测和纠正。

CAN控制器通常集成在专门的CAN芯片中,也可以作为单片机的一部分。

2. CAN收发器:CAN收发器是将CAN控制器产生的数字信号转换为物理信号,以便在CAN总线上进行传输。

它可以将接收到的差分信号转换为单端信号,并将发送的单端信号转换为差分信号。

3. 终端电阻:CAN总线上的终端电阻用于抵消传输线上的反射信号,并确保正确的信号传输。

终端电阻一般放置在CAN总线的两端。

4. 过滤器电路:过滤器电路用于过滤掉不需要的数据帧,只接收需要的数据帧。

它可以根据CAN帧的标识符进行过滤,提高系统的响应速度。

三、CAN总线接口的软件实现在硬件电路连接完成后,我们还需要编写相应的软件程序来实现CAN总线接口的效果。

1. 硬件驱动:首先,我们需要编写硬件驱动程序,通过设置单片机的寄存器配置CAN控制器和收发器。

这些寄存器包括CAN控制寄存器、接收缓冲区寄存器和发送数据寄存器等。

2. 初始化配置:在使用CAN总线前,我们需要进行初始化配置,包括设置波特率、模式选择、过滤器设置等。

CAN总线详细教程精心编制

CAN总线详细教程精心编制

CAN总线布置、构造和基本特点
考虑到信号旳反复率及产生出旳数据量,CAN总线系统分为 三个专门旳系统
• CAN驱动总线(高速),500Kbit/s,可基本满足实时要求。 • CAN舒适总线(低速),100 Kbit/s,用于对时间要求不高 旳情况。 • CAN“infotainment”总线(低速),100Kbit/s,用于对 时间要求不高旳情况。
Canbus旳收发器如图所示,使用一种电路进行控制,这么也就 是说控制单元在某一时间段只能进行发送或接受一项功能。 逻辑“1”:全部控制器旳开关断开;总线电平为5Vor3.5V; Canbus未通讯。 逻辑“0”:某一控制器闭合;总线电平为0伏; Canbus进行通
所以总线导线上就会出现两种状态: 状态1: 截止状态,晶体管截止(开关未接合) 无源: 总线电平=1,电阻高
◆ 基于CAN旳应用层协议应用较通用旳有两种:DeviceNet(适合于工厂底层自动 化) 和 CANopen(适合于机械控制旳嵌入式应用)。 ◆ 任何组织或个人都可以从DeviceNet供货商协会(ODVA)获得DeviceNet规范。 购买者将得到无限制旳、真正免费旳开发DeviceNet产品旳授权。 ◆ DeviceNet自2023年被确立为中国国家原则以来,已在冶金、电力、水处理、乳
汽车电子技术发展旳特点:
汽车电子控制技术从单一旳控制逐渐发展到 综合控制,如点火时刻、燃油喷射、怠速控 制、排气再循环。
电子技术从发动机控制扩展到汽车旳各个构 成部分,如制动防抱死系统、自动变速系统、 信息显示系统等。技术旳分类:
单独控制系统:由一种电子控制单元(ECU)控制 一种工作装置或系统旳电子控制系统,如发动机控 制系统、自动变速器等。

总之,使用汽车网络不但能够降低线束,而且 能够提升各控制系统旳运营可靠性,降低冗余 旳传感器及相应旳软硬件配置,实现各子系统 之间旳资源共享,便于集中实现各子系统旳在 线故障诊疗。

can芯片电平转换原理

can芯片电平转换原理

can芯片电平转换原理Can芯片电平转换原理一、引言Can芯片是一种常用于工业控制和汽车领域的通信协议,其具有高可靠性和抗干扰能力强的特点。

Can芯片电平转换是指将Can总线上的信号转换为与其他设备兼容的信号电平,以实现Can总线与其他设备的通信。

本文将介绍Can芯片电平转换的原理和实现方式。

二、Can芯片电平转换的原理Can总线上的信号电平通常为差分信号,即CAN_H和CAN_L两根线上的电平差为2.5V。

而其他设备常用的信号电平一般为0V和5V。

因此,需要将Can总线上的信号电平转换为0V和5V的信号电平,以便与其他设备进行通信。

Can芯片电平转换主要通过电平转换电路来实现。

电平转换电路通常由电平转换芯片和电阻网络组成。

电平转换芯片是一种专门用于电平转换的集成电路,其内部包含差分输入和单端输出的电平转换功能。

电阻网络用于调整电平转换芯片的电阻值,以适应不同设备之间的电平差异。

三、Can芯片电平转换的实现方式Can芯片电平转换的实现方式主要有以下两种:1. 使用外部电平转换芯片这种方式需要在Can芯片和其他设备之间添加一块外部电平转换芯片。

外部电平转换芯片通常具有多个差分输入和单端输出,可以同时转换多个Can总线信号。

将Can总线上的差分信号连接到外部电平转换芯片的差分输入端,将转换后的单端信号连接到其他设备的信号引脚上即可实现电平转换。

2. 使用内部电平转换功能一些高端的Can芯片内部已经集成了电平转换功能,可以直接将Can总线上的差分信号转换为其他设备兼容的单端信号。

这种方式省去了外部电平转换芯片的使用,简化了电路设计。

使用内部电平转换功能只需将Can芯片的单端输出连接到其他设备的信号引脚上即可。

四、Can芯片电平转换的注意事项在进行Can芯片电平转换时,需要注意以下几点:1. 电平转换芯片的选择要符合系统要求,包括转换的电平范围、转换速度和功耗等方面。

2. 电阻网络的设计要根据系统需求进行合理选择,以确保信号的稳定性和可靠性。

电机mcu can协议

电机mcu can协议

电机mcu can协议
电机MCU CAN协议是指电机控制单元(MCU)使用控制器局域网(CAN)总线进行通信的协议。

CAN总线是一种串行通信协议,广泛应用于汽车、工业控制和其他领域的实时控制系统中。

在电机控制系统中,MCU通过CAN总线与其他设备(如传感器、控制器等)进行数据交换和通信。

电机MCU CAN协议的实现通常涉及以下几个方面:
1. 数据帧格式,CAN总线使用数据帧进行通信,包括标准帧和扩展帧两种格式。

在电机控制系统中,需要定义数据帧的结构,包括标识符、数据域和控制字段等。

2. 通信协议,电机MCU需要遵循一定的通信协议来进行数据交换,包括数据传输的时序、错误处理、数据帧的优先级等。

3. 数据解析,接收到的CAN数据需要进行解析和处理,以便MCU能够理解和使用这些数据。

这涉及到数据格式的解析、数据校验和错误处理等。

另外,电机MCU CAN协议的实现还需要考虑以下几点:
1. 实时性要求,电机控制系统通常对实时性有较高的要求,因此CAN通信的时序和响应时间需要进行严格的控制。

2. 数据安全性,在CAN总线上进行通信时,需要考虑数据的安全性和保密性,防止数据被非法获取或篡改。

3. 网络管理,在多个设备共享同一条CAN总线的情况下,需要进行网络管理和冲突处理,以确保通信的稳定性和可靠性。

总的来说,电机MCU CAN协议的实现涉及到通信协议、数据帧格式、实时性要求、数据安全性和网络管理等多个方面,需要综合考虑系统的整体需求和特点,以确保通信的稳定性和可靠性。

CAN总线详细教程可修改全文

CAN总线详细教程可修改全文
状态0: 接通状态,晶体管导通(开关已接合) 有源: 总线电平=0,电阻低
功能
2个以上控制器所组成的Canbus系统 当用2个以上的控制器连接在Canbus总 线上(如图所示),用逻辑1来表示断开 和用逻辑0表示闭合。不考虑其他总线规 则情况下,总线会出现下图的情况: 1.任何开关闭合,总线上的电压为0伏 2.所有开关断开,总线上的电压为5伏
集中控制系统:由一个电子控制单元(ECU)同时 控制多个工作装置或系统的电子控制系统。如汽车 底盘控制系统。
控制器局域网络系统(CAN总线系统):由多个电 子控制单元(ECU)同时控制多个工作装置或系统, 各控制单元(ECU)的共用信息通过总线互相传递。
带有中央控制单元的车
带有三个中央控制单元的车
基于CAN总线的汽车电器网络结构
发动机 自动变 ABS/TCS 安全气 电控悬 巡航控 动力转 电机控 电池管
ECU 速器ECU ECU
囊ECU 架ECU 制ECU 向ECU 制ECU 理ECU
高速总线
E整EC整CU车U(车(控网控网制关制关器)器)
低速总线
故障诊断 ECU
灯光控 刮雨洗涤 电动座 门锁防 电动车 后视镜 气候控 警告信 仪表显 制ECU 控制ECU 椅ECU 盗ECU 窗ECU 喇叭ECU 制ECU 号ECU 示ECU
求Байду номын сангаас
总之,使用汽车网络不仅可以减少线束,而且 能够提高各控制系统的运行可靠性,减少冗余 的传感器及相应的软硬件配置,实现各子系统 之间的资源共享,便于集中实现各子系统的在 线故障诊断。
Canbus的发展历史
大众公司首次在97年PASSAT的舒适系统 上采用了传送速率为62.5Kbit/m的 Canbus。

can总线接法

can总线接法

can总线接法CAN总线是Controller Area Network的缩写,它是一种应用广泛的串行通信协议。

CAN总线通信技术可以用于自动控制领域,例如汽车、工业自动化以及航空航天等领域。

CAN总线网络的设计和接法对于系统的性能和可靠性非常重要。

下面将从CAN总线接法的基本原理和注意事项等方面进行相关参考内容的描述。

首先,对于CAN总线的接法设计,正确选择传输速率非常重要。

CAN总线有多种传输速率选项,常见的有10Kbps、100Kbps、500Kbps、1Mbps等。

传输速率的选择应该根据实际应用需求来确定。

通常情况下,数据量较小的系统可以选择较低的传输速率,而数据量较大或实时性要求较高的系统则需要选择较高的传输速率。

其次,对于CAN总线的接法设计,物理层的电缆选择也是关键。

CAN总线的物理层通常采用双绞线作为传输介质,而CAN总线使用的双绞线一般为屏蔽双绞线。

在实际应用中,应该选择合适的规格和质量的双绞线,以确保数据的可靠传输。

此外,在实际应用中,应该注意CAN总线的连接方式和拓扑结构。

常见的CAN总线连接方式有直接连接和通过网桥连接两种。

直接连接方式即将CAN节点通过CAN线连接在一起,形成一个总线网络。

而通过网桥连接方式则是将多组CAN节点通过网桥相互连接在一起,网桥可以实现CAN总线之间的数据传输。

在选择连接方式时,应该根据实际应用需求和网络拓扑结构的复杂程度来确定。

另外,还需要注意CAN总线节点的电气特性匹配和总线长度的限制。

在设计CAN总线接法时,各个节点的电气特性应该匹配,避免因电气特性不匹配而导致通信故障。

此外,CAN总线的长度也有限制,通常为几十到几百米不等,如果长度超过限制,则需要通过使用CAN总线中继器或增加电平转换器等手段来解决。

最后,为了确保CAN总线的可靠性和稳定性,需要在设计中考虑电磁兼容性与抗干扰性。

CAN总线通常存在与其他电子设备和电磁信号源的干扰,因此需要在设计中采取一定的抗干扰措施,例如对CAN总线进行屏蔽,合理布置CAN节点等,以减少外界干扰对CAN总线通信的影响。

CAN总线的原理及使用教程

CAN总线的原理及使用教程CAN总线的基本原理是基于广播通信和多主机通信机制。

多个节点可以同时发送和接收消息,消息被广播到所有其他节点,每个节点根据消息中包含的标识符来判断该消息是否与自己相关。

如果消息与节点相关,节点将处理该消息;如果消息与节点不相关,节点将忽略该消息。

这种机制使得多个节点可以在同一个总线上同时进行通信,大大提高了总线的利用率。

CAN总线的传输速率通常为1Mbps或以上,并且支持长距离传输。

它采用差分信号线进行传输,其中CAN_H和CAN_L线分别携带正向和负向信号,通过比较CAN_H和CAN_L之间的电压差来判断数值。

差分信号线的使用可以有效地抑制电磁干扰和噪声,提高传输的可靠性。

在CAN总线中,每个节点都有一个唯一的标识符用于区分不同的节点。

当节点需要发送消息时,它会将消息封装成一个帧,包括标识符、数据和一些控制字段。

帧被发送到总线上,其他节点可以接收到该帧并进行相应的处理。

节点还可以发送错误帧来检测和纠正总线上的错误。

为了保证多个节点之间的通信顺序和优先级,CAN总线采用了基于优先级的仲裁机制。

当多个节点同时发送消息时,节点根据自己的标识符计算一个仲裁值,仲裁值越小的节点具有较高的优先级,可以发送消息。

其他节点将立即停止发送,并等待仲裁完成后再发送。

这种仲裁机制保证了消息的有序发送,避免了冲突。

除了基本的消息传输外,CAN总线还支持远程帧和错误帧等功能。

远程帧用于请求其他节点发送指定标识符的消息,而错误帧用于报告总线上的错误情况。

这些功能使得CAN总线更加灵活和可靠。

在使用CAN总线时,首先需要选取合适的硬件设备和控制器。

接下来,需要进行总线的布线和连接,保证差分信号线的正确连接和屏蔽的使用。

然后,需要编写相应的软件程序来控制节点的行为,包括发送和接收消息、处理错误等。

最后,进行系统的调试和测试,确保CAN总线的正常工作。

总之,CAN总线是一种高性能的串行通信协议,具有多节点同时通信、高速传输、抗干扰能力强等优势。

CAN总线详细教程

CAN总线详细教程CAN总线是一种高速串行通信协议,广泛应用于自动化控制系统、汽车电子、工业设备等领域。

它具有高速传输、可靠性强和抗干扰能力强等优点。

本篇文章将介绍CAN总线的基本原理、通信方式、帧格式以及应用示例等内容。

一、CAN总线基本原理CAN(Controller Area Network)总线是一种多主机、多从机的通信系统,包括一个主控器和多个节点。

主控器负责决定总线上的通信速率和优先级,节点之间的通信通过总线上发送和接收的消息进行。

二、CAN总线通信方式1.基于广播的通信方式:主控器发送的消息会被总线上的所有节点接收。

节点根据消息的标识符判断是否需要对其进行处理。

2.基于点对点的通信方式:主控器发送的消息只会被消息的接收者节点接收。

消息的接收者是通过消息的标识符来确定的。

在实际应用中,一般会结合这两种通信方式来实现复杂的通信需求。

三、CAN总线帧格式1.数据帧:用于实际传输数据。

数据帧包括标识符、控制字段、数据字段和校验字段等。

2.远程帧:用于请求节点发送数据。

远程帧只包括标识符和控制字段。

标识符用于标识消息的类型和优先级,控制字段用于进行错误检测和数据传输的控制。

数据字段包含要传输的数据,校验字段用于检测数据传输过程中是否出现错误。

四、CAN总线应用示例以汽车电子控制系统为例,介绍CAN总线的应用。

在汽车上,CAN总线被广泛应用于发动机控制、刹车系统、空调系统等各种电子控制单元之间的通信。

通过CAN总线,这些电子控制单元可以实现信息的共享和协同工作。

例如,发动机控制单元可以将发动机的运行状态通过CAN总线发送给其他控制单元,供其他控制单元进行相应的控制。

刹车系统可以通过CAN总线获取发动机控制单元的信息,判断是否需要进行制动操作。

空调系统可以根据发动机控制单元的信息,调整空调的工作状态等。

总结:CAN总线是一种高速串行通信协议,具有高可靠性和抗干扰能力强的特点。

它采用差分传输技术,实现多主机、多从机的通信。

can总线轻松入门与实践

can总线轻松入门与实践CAN(Controller Area Network)总线是一种现代的数据通信协议,广泛应用于汽车、机器人、机械等领域。

CAN总线具有高速、可靠、安全等优点,成为现代工业控制领域的重要技术之一。

本文将介绍CAN总线的基本原理、应用场景及实践操作方法。

一、CAN总线的基本原理CAN总线是一种基于串行通信协议的网络,可将所有节点进行整体控制和调度。

其主要原理是:1. 线路结构CAN总线采用双绞线进行数据传输,其中一条线为CANH(高电平),另一条为CANL(低电平)。

CAN总线上可同时存在多个节点,每个节点通过一个终端电阻和CANH、CANL相连,形成一串联的线路结构。

2. 差分信号传输CAN总线上是采用差分信号进行传输的,即CANH/CANL之间的电位差。

由于CAN总线每个节点之间的距离都很近,相互之间干扰的电磁场也是相同的,因此CANH与CANL之间的信号差分截面可以抵消部分干扰产生的电磁波,从而保证数据传输的稳定性和可靠性。

3. 数据帧结构CAN总线的数据帧包括标识符、控制域、数据域和校验码等四个部分。

其中,标识符是CAN总线上唯一的识别符,每个节点通过标识符来区分不同的数据包。

控制域主要用于控制数据帧的传输和接收,数据域用于存储所传输或接收的数据,校验码用于验证数据传输过程中是否出现了错误。

二、CAN总线的应用场景CAN总线主要应用于多种机械设备和工业控制领域中,是当今控制领域的一个核心技术。

下面是一些常见的应用场景:1. 汽车领域CAN总线在汽车领域中广泛应用,可以实现汽车各种系统之间的数据传输和互联,包括发动机控制、转向控制、车身控制、底盘控制、安全控制、多媒体系统等。

2. 机器人领域CAN总线在机器人领域中也被广泛应用,可以实现机器人各个网络之间的数据传输和协作,如运动控制、外围设备和感知器件控制等。

3. 工业控制领域CAN总线被广泛应用于工业控制领域,在制造业、石油化工、能源、交通、医疗等行业中,可以实现智能化、自动化控制和管理等目的,提高生产效率和安全性。

基于Cortex-M3的串口与CAN转换模块的设计与实现

第42卷 第1期吉林大学学报(信息科学版)Vol.42 No.12024年1月Journal of Jilin University (Information Science Edition)Jan.2024文章编号:1671⁃5896(2024)01⁃0154⁃08基于Cortex⁃M3的串口与CAN 转换模块的设计与实现收稿日期:2022⁃10⁃23基金项目:船舵操舵仪设计优化及认证基金资助项目(F120001SC)作者简介:陈皆潞(1988 ),女,上海人,中船航海科技有限责任公司工程师,主要从事船舶导航自动化研究,(Tel)86⁃186****5768(E⁃mail)chen_jlmy@㊂陈皆潞,何国祥,杨子健,施超凡(中船航海科技有限责任公司生产制造部,上海200136)摘要:针对采用控制器局域网络(CAN:Controller Area Network)总线的自动操舵系统和采用串口通讯的航海导航设备之间通讯的不匹配问题,设计了一种基于Cortex⁃M3嵌入式平台的通信转换模块,实现了串口与CAN 总线数据的双向转换功能㊂同时对传统CAN 收发器CTM1050存在的信号稳定性不足㊁波特率精准度低等问题,提出并实现了一种硬件电路的替代方案,提高了数据通讯的时效性和稳定性㊂基于CAN2.0B 扩展帧,设计了自动操舵系统内部CAN 总线协议㊂该协议可根据报文信息优先级分配标识帧,保证了总线数据的有序传输㊂实验结果表明,该通讯模块功能使用正常且通讯效果良好,具有一定通用性,可在多种需要转换的设备系统上推广使用㊂关键词:Cortex⁃M3微控制单元;控制器局域网络;串口;自动操舵系统;标识符中图分类号:TP273文献标志码:ADesign and Implementation of Serial Port and CAN Conversion Interface Based on Cortex⁃M3CHEN Jielu,HE Guoxiang,YANG Zijian,SHI Chaofan(Process Department,CSSC Marine Technology Limited Liability Company,Shanghai 200136,China)Abstract :In order to solve the problem of communication mismatch between autopilot system using CAN (Controller Area Network)bus and navigation equipment using serial port communication,a communication conversion interface module based on Cortex⁃M3is designed and the function of data conversion between serial port and CAN bus is realized.Aiming at the problems of poor signal stability and low baud rate accuracy of traditional CAN transceiver circuit CTM1050,an alternative hardware scheme is proposed and implemented to improve the timeliness and stability of data communication.Based on the CAN2.0B extension frame,the internal CAN bus protocol of the autopilot system is designed to ensure the scalability and stability of the bus.The protocol can assign identity frames according to the priority of message information to ensure the orderly transmission of bus data.The actual test results indicate that the communication module is normal and the communication effect is good.The communication module has a certain universality and can be used in a variety of equipment systems.Key words :Cortex⁃M3microcontroller unit;controller area network(CAN);serial port;autopilot system;identifier 0 引 言船用自动操舵系统是在舵手输入目标航向或位置信息后自动操控舵机打舵使舰船到达准确的目标航向或地点,相当于舰船的大脑,实时发出指令至舵机㊂自动操舵系统与电子海图㊁罗经㊁计程仪㊁BNWAS(Bridge Navigational Watch &Alarm System)等航海导航设备组成智能航行系统,在操控过程中实时接收位置㊁航向㊁速度和舵角等航海导航信息进行算法处理后发出适时的操控指令,因此保证前端数据通讯的稳定性及实效性是保障操控精准的关键㊂随着计算机技术与现场总线技术的发展,船舶数据通信领域正在发生一场深刻的技术革命㊂相较于传统的串口通信模式,CAN(Controller Area Network)现场总线具有传输距离远㊁速度快㊁可靠性高㊁抗干扰能力强等特点,因此更多地应用于船舶通讯网络中[1]㊂作为舰船的核心控制装置,自动操舵系统采用CAN 总线[2]作为内部通讯是大势所趋[3]㊂然而按照国际海洋电子协会要求,与自动操舵系统连接组成智能航行系统的航海导航设备必须遵循NMEA(National Marine Electronics Association)0813串口协议通讯㊂针对两者间通讯网络不一致问题,笔者设计并实现了以Cortex⁃M3微控制器[4]作为控制核心的通讯转换模块,实现串口与CAN 总线之间数据转换功能,进而保障智能航行系统安全㊁高效运行㊂目前市面上普遍使用的串口转CAN 模块,大多存在网口通讯不稳定㊁软件协议无法修改㊁接口不可复用等问题㊂笔者采用高速通讯收发器匹配光耦隔离硬件,解决了通讯不稳定问题;采用M3硬件芯片集成通讯发送器设计,基于硬件进行软件协议编译,解决了协议无法修改问题;采用拨码开关电路实现外接设备标记,再增加通讯转换接口模块数量,通过拨码开关标记相应航海导航设备,同步调用相应软件程序块,从而增加接口复用率,降低了硬件成本㊂1 系统基本工作原理与结构1.1 智能航行系统通讯原理自动操舵系统与电子海图㊁GPS(Global Positioning System)㊁计程仪㊁电罗经和磁罗经等航海导航设备组成的智能航行系统如图1所示㊂图1 自动操舵系统的工作原理图Fig.1 Schematic diagram of the autopilot system 自动操舵系统由3个闭环回路构成:舵角㊁航向和航迹控制回路[5]㊂首先航迹控制回路中电子海图制定计划航线发送给航迹控制模块,航迹控制回路接收GPS 发送的当前位置信息㊁计程仪发出的速度信息并计算出当前计划航线,通过算法比较两者航线信息后修订偏差并计算出指令航向,然后传输给航向控制回路;航向控制回路接收到航迹控制模块发送的指令航向后与采集罗经发出的实际航向进行比较,通过算法修订航向偏差并计算出指令舵角信息,然后传输至舵角控制回路;舵角控制回路接收到指令舵角与采集舵角反馈器发出的实际舵角后进行比较,通过算法修正舵角偏差并计算出动舵指令直接控制到舵机打舵,最终控制船舶的航行㊂表1为通用航海导航设备与自动操舵系统的数据交互信息,可以看出两者之间联系紧密[6],因此实现通讯转换接口模块的串口与CAN 双向转换功能是自动操舵系统[7]发展的必经之路㊂表1 航海通信导航设备与自动操舵系统接口收发信息表Tab.1 Receiving and sending information sheet between navigation equipment and autopilot system 序号设备名发送→自动操舵系统自动操舵系统→发送1驾驶台航行值班报警系统BNWAS ⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃设备报警状态㊁确认状态2船载航行数据记录仪⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃报警列表㊁新报警信息3电子海图ECDIS:Electronic Chart Display and Information System 位置信息㊁航迹航线⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃4磁/电/光纤罗经实际航向㊁状态⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃5计程仪SDME:Speed and Distance Measuring Equipment 对地速度㊁对水速度⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃6舵角反馈实际舵角信息⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃7GPS 位置信息⁃⁃⁃⁃⁃⁃⁃⁃⁃⁃551第1期陈皆潞,等:基于Cortex⁃M3的串口与CAN 转换模块的设计与实现1.2 串口与CAN 通讯转换模块工作原理该设计实现的是串口与CAN 的双向转换功能,所涉及的自动操舵系统内部各单元均采用CAN 网通讯[8],外部航海导航设备均采用串口RS⁃485㊁RS232通讯㊂该模块遵循系统内部的CAN 总线协议,同时与航海通讯导航设备通讯遵循一致的串口协议[9]㊂通讯转换接口模块的工作示意图如图2所示㊂该模块设计灵活,可根据现场导航设备配置情况进行增加或减少㊂图2 串口与CAN 通讯转换模块的工作示意图Fig.2 Working diagram of the serial port and CAN communication conversion module 2 串口与CAN 通讯转换模块硬件设计2.1 主控芯片选择目前以微计算机(含单片机)为核心的数据监控系统不断成熟,其应用范围不断扩大,集成度不断提高[10]㊂ARM Cortex⁃M 系列的集成芯片常被用于低功耗㊁高可靠的嵌入式集成功能板开发㊂笔者采用M3系列的LPC1768作为主控芯片[11],基于32位RISC(Reduced Instruction Set Computer)内核,主频达到了100MHz 的高速传输速率,相较于同等级的微处理器,性能优势明显㊂另外通讯接口丰富,集成4路串口㊁2路CAN 控制器,并配备CAN 验收滤波器,可识别CAN2.0A(11位)和CAN2.0B(29位)扩展标识符,使报头ID(Identity Document)定义更加明确,大大降低了主控电路的运行功耗,有效节省了系统资源㊂以上这些特点完全符合串口与CAN 通讯转接板的功能及性能需求㊂2.2 通讯模块选择传统的CAN 总线收发器电路由PCA82C250芯片搭载6N137光耦隔离㊁电容稳压滤波电路组成㊂如图3所示,MCU(Microcontroller Unit)输出两路CAN 控制端,经6N137光电隔离后传输至PCA82C250收发器,转换为CAN 总线上的差分电平信号㊂图3 PCA82C250运行电路Fig.3 PCA82C250working circuit PCA82C250采用非固定斜率控制且无发送端显性超时保护,因而产生运行时功耗大㊁高波特率传输时对冲信号严重㊁波特率精准性低等问题,严重影响了数据通讯的时效性,进而出现丢帧㊁漏帧情况㊂651吉林大学学报(信息科学版)第42卷笔者使用TJA1050收发器芯片,该芯片采用固定斜率控制,具有发送端超时保护功能,大大降低了运行功耗㊂此外其差分电平做到1.5~3V,远小于82C250芯片的1~5V 的电平差,使电磁干扰降到最低㊂使用示波器监测两种芯片电路输出的信号波形分别如图4和图5所示㊂可以看出TJA1050的波形比PCA82C250更加平稳,过冲信号几乎为零,波特率精准度更高㊂ 图4 PCA82C250125kbps 波形图 图5 TJA1050125kbps 波形图 Fig.4 CA82C250125kbps waveform figure Fig.5 TJA1050125kbps waveform figure图6 CAN 收发器电路Fig.6 CAN transceiver circuitCAN 收发器电路如图6所示㊂由于CTM1050芯片是基于TJA1050内核搭载6N137光耦的全隔离器件,因此笔者采用CTM1050模块替代原PCA82C250光耦电路,电路更加精简,省去中间光耦㊁电平转换等器件产生的传输延时㊂2.3 电路整体方案图7为硬件电路整体方案,包含:LPC1768微处理器㊁2路CAN 收发器㊁4路485/232串口收发器㊁24VDC⁃5V 电源模块㊁5~3.3V 电源和JLINK 程序接口[12]模块㊂图7 通讯转换接口模块硬件电路Fig.7 Hardware circuit of communication conversion interface module 电源模块的转换设计实现系统稳定供电;外围串口和CAN 收发器电路实现通讯功能;JLNK 接口电路实现程序烧录功能;拨码开关电路实现外接设备标记功能㊂由于船舶配置设备的差异,部分船舶配置的航海导航设备数超过4个,此时需要增加通讯转换接口模块的数量,通过拨码开关标记相应航海导航设备,同步调用相应的软件程序块㊂3 串口与CAN 通讯转换模块软件设计软件设计主要由系统初始化㊁通讯接口的数据转换两部分组成㊂通讯转换接口模块属于自动操舵系统的一部分,遵循系统内部统一的CAN 总线协议[13]㊂3.1 CAN 总线协议通讯格式CAN 总线采用多主竞争式总线结构,逐位仲裁机制㊂多个节点向总线传输报文时,优先级较低的节点将停止发送,而优先级高的节点可不受影响继续传输㊂因此通过设定信息的标识符(ID)751第1期陈皆潞,等:基于Cortex⁃M3的串口与CAN 转换模块的设计与实现区分消息的优先级㊂CAN 有两种帧格式:CAN2.0A 标准帧和CAN2.0B 扩展帧格式,区别在于前者在仲裁场的标识符为11位,而后者扩展为29位㊂为了信息更加清晰方便滤波,笔者采用CAN2.0B 扩展帧格式协议[14],包括29位的标识符(ID28⁃ID0)和8字节的数据部分㊂具体的标志符定义如表2所示㊂表2 CAN 消息的29bit 标志符定义表Tab.2 29bit identifier define table of CAN messageID28⁃ID26ID25ID24ID23⁃ID16ID15⁃ID08ID07⁃ID00优先权(3bit)保留位(1bit)兼容位(1bit)信息主编号(8bit)信息辅编号(8bit)源地址(8bit) 由于系统内部CAN 总线上节点数不超过20个,可将优先权位设置为固定值0110,保留位㊁兼容位设置为0,信息主编号在240~255之间,信息辅编号在0~255之间;设备源地址分配在50~5F 之间㊂分别以计程仪和BNWAS 两类航海导航设备的标识位分配为例,计程仪设备通过串口将速度信息传输至通讯转换接口模块后转换为CAN 网信息,并供自动操舵系统的控制单元采集使用;同理自动操舵系统内部CAN 总线格式的报警信息需要通讯转换接口模块转换为BNWAS 协议对应的串口数据内容并传输至串口总线,具体格式如表3所示㊂数据域8位的定义为低字节在前,保留无定义字节为00(十六进制)㊂以计程仪数据信息为例,如表4所示㊂表3 标识符分配表Tab.3 Identifier distribution list序号模块名称信息主编号Dec Hex 信息辅编号Dec Hex 模块地址Hex 通信内容ID(Hex)1计程仪(对水速度)243F3110B 53对水速度信息18F30B532BNWAS 桥楼报警245F530355报警信息18F50355表4 CAN 总线的数据域定义Tab.4 Data format definition of CAN bus类别内容ID 数据域定义字节1字节2字节3字节4字节5字节6字节7字节8发送对水速度信息18F30B53合速度纵速度横速度船尾横速度接收ALR 语句需要的报警状态,由操舵仪发送给BNWAS 18F80355字节1字节2报警标识字节3字节4报警有效位(0无效㊁1有效)字节5字节6报警确认状态(0确认,1未确认)字节7字节800003.2 系统初始化系统初始化包括如下内容:芯片系统System 初始化[15];GPIO 引脚配置初始化;CAN 控制器初始化:配置CAN 控制引脚CANH 和CANL →复位控制器→设置收发频率→释放收发缓冲区→开启控制器电源;串口初始化:配置串口收发引脚TX㊁RX →设置收发波特率→释放收发缓冲区→开启串口控制器电源;计时器初始化㊂软件流程如图8所示㊂图8 系统初始化软件流程图Fig.8 Software flowchart of system initialization 851吉林大学学报(信息科学版)第42卷3.3 通讯接口数据转换1)串口转CAN㊂接口转换模块接收到航海导航设备发送的串口数据报文后,先判断报文类型再根据相应协议内容进行解析㊂如图9所示,如此时计程仪发送对水速度的串口信息至模块,其将根据校验码判断数据的有效性,然后按照协议解析数据内容㊂速度信息的解析,将十进制数的小数点后2位乘100再换算成十六进制数,按照表3㊁表4的标识符和数据格式装订,将数据信息传输至CAN 总线㊂转换流程如图9所示㊂图9 串口转换CAN 软件流程Fig.9 Software flowchart from serial port to CAN 2)CAN 转串口㊂接口转换模块接收到自动操舵系统内部CAN 总线上的有效信息后,根据标识位判断数据类型,按照对应接口设备的串口协议装订数据信息,并传输至该设备㊂以自动操舵系统发送给BNWAS 的ALR(Alarm Local Report,IEC61162中的本地报警状态串口语句)报警语句为例,接口转换模块接收到标识符为18F8035516,数据信息0401010000000000的CAN 总线语句,根据表4和ALR 协议解析出串口语句:$AGALR,260,A,V,Emergency Call*1D㊂转换流程如图10所示㊂图10 CAN 转换串口软件流程Fig.10 Software flowchart from CAN to serial port 951第1期陈皆潞,等:基于Cortex⁃M3的串口与CAN 转换模块的设计与实现4 实验测试验证4.1 实验准备实验分成硬件和软件环境的搭建㊂硬件实验环境主要由通讯接口转换模块㊁PC 机㊁USBCANII㊁USB 转串口UT⁃890A 组成㊂软件环境由CAN 网络和串口测试软件组成㊂串口测试软件 串口调试助手sscom32”可模拟导航设备向接口转换模块收发串口数据㊂CAN 总线测试软件基于CAN 总线协议编译,是具有模拟收发及数据显示一体的PC 端测试软件㊂4.2 实验流程打开上述两个测试软件,将UT⁃890A㊁USBCANII 的USB 端接入PC 机,另一端分别接入通讯接口转换模块的串口端和CAN 端㊂在测试软件上模拟数据信息发送给接口转换模块,经该模块解析后再次发送到相对应接口测试界面㊂1)CAN 转串口功能测试㊂以BNWAS 的ALR 语句为例,在CAN 测试软件上模拟操舵仪内部模块发送给转换模块:0401010000000000,依据协议填入对应ID㊂数据发送后, sscom32”测试软件显示数据符合协议内容㊂CAN 转换串口测试如图11所示㊂图11 CAN 转换串口测试图Fig.11 Test pattern from CAN to serial port 2)串口转CAN 功能测试㊂以计程仪发送的速度数据为例,按照计程仪串口协议在 sscom32”测试界面编辑串口数据,如: $VDVBW,9.920000,0.200000,A,9.920000,0.200000,A,1.010880,A,1.010880,A*4B”,同时设置相应的波特率㊁校验位和数据格式㊂数据发送后, sscom32”测试界面显示数据符合协议内容㊂串口转换CAN 测试如图12所示㊂图12 串口转换CAN 测试图Fig.12 Test pattern from serial port to CAN 5 结 语笔者设计的串口与CAN 通讯转换模块,解决了自动操舵系统与航海导航设备之间通讯的不匹配问题㊂基于Cortex⁃M3芯片设计的硬件电路,结构简单紧凑,可根据实际应用场景进行模块数量的增减,具有良好的通用性及扩展性㊂针对转换模块各项功能的实验结果表明,在大多数应用场景下,该模块能实时处理并转发数据㊂061吉林大学学报(信息科学版)第42卷该设计的局限性在于处理大吞吐量的场景时存在数据延时现象㊂在后续研究中,可以尝试通过改进帧结构㊁加入合适的冲突避让机制优化数据传输性能㊂参考文献:[1]余国虎.CAN 在机舱自动化系统中的应用[J].数字技术与应用,2021,39(4):34⁃36.YU G H.The Application of CAN in Engine Room Automation System [J].Digital Technology and Applications,2021,39(4):34⁃36.[2]牛忠俊,周荣轩.工程车辆安全CAN 总线软件研究与设计[J].吉林大学学报(信息科学版),2017,35(4):465⁃474.NIU Z J,ZHOU R X.Research and Design of Safety CAN Bus Software for Construction Vehicle [J].Journal of JilinUniversity (Information Science Edition),2017,35(4):465⁃474.[3]黄丞,王荣.基于CAN 总线的散货船机舱监测报警系统研究[J].江苏船舶,2016,33(5):26⁃29.HUANG C,WANG R.Research on Engine Room Monitoring and Alarm System of Bulk Cargo Ship Based on CAN Bus [J].Jiangsu Ship,2016,33(5):26⁃29.[4]何尚平.嵌入式系统原理与应用[M].重庆:重庆大学出版社,2019.HE S P.Embedded System Principle and Application [M].Chongqing:Chongqing University Press,2019.[5]潘进,张韶华,尹国龙,等.基于PC /104的航迹自动舵研究与设计[J].船舶,2013,24(1):70⁃72.PAN J,ZHANG S H,YIN G L,et al.Research and Design of Track Autopilot Based on PC /104[J].Shipping,2013,24(1):70⁃72.[6]陈皆潞.基于CAN 总线的自动操舵系统的研究与设计[D].上海:上海交通大学电子信息与电气工程学院,2020.CHEN J L.The Research and Design of Autopilot System Based on CAN Bus [D].Shanghai:School of Electronic Information and Electrical Engineering,Shanghai Jiaotong University,2020.[7]DONG⁃HEE NOH,DONG⁃SEONG KIM.Message Scheduling on CAN Bus for Large⁃Scaled Ship Engine Systems [J].IFACProceedings Volumes,2014,47(3):7911⁃7916.[8]ANDRZEJ PI TAK,MACIEJ MIKULSKI.On the Adaptation of CAN Bus Network for Use in the Ship Electronic Systems [J].Polish Maritime Research,2009,16(4):62⁃69.[9]于鹏.基于ARM Cortex⁃M3的数据采集系统的研究与实现[J].微型机与应用,2016,35(1):24⁃27.YU P.Research and Realization of the Data Acquisition System Based on ARM Cortex⁃M3[J].Microcomputers and Applications,2016,35(1):24⁃27.[10]张殉,叶海龙.基于CAN 总线的船舶数据通信系统[J].机电工程,2010,27(3):89⁃92.ZHANG X,YE H L.Ship Data Communication System Based on CAN Bus [J].Mechanical and Electrical Engineering,2010,27(3):89⁃92.[11]姚文祥.ARM Cortex⁃M3与Cortex⁃M4权威指南[M].北京:清华大学出版社,2015.YAO W X.The Definitive Guide for ARM Cortex⁃M3and Cortex⁃M4[M].Beijing:Tsinghua University Press,2015.[12]朱冠良.嵌入式技术船舶实时监控系统[J].舰船科学技术,2017(22):162⁃164.ZHU G L.Ship Real time Monitoring System Based on Embedded Technology [J].Ship Science and Technolog,2017(22):162⁃164.[13]苏虎平,沈三民,刘文怡,等.基于冗余CAN 总线的实时通信系统设计[J].自动化与仪表,2013(1):26⁃29.SU H P,SHEN S M,LIU W Y,et al.Real⁃Time Communication System Based on Redundancy CAN⁃Bus [J].Automation and Instrumentation,2013(1):26⁃29.[14]成郑,王平.基于CAN 总线的船舶导航通信系统的设计[J].现代工业经济和信息化,2022,12(2):74⁃75,78.CHENG Z,WANG P.Design of Ship Navigation Communication System Based on CAN Bus [J].Modern Industrial Economy and Information Technology,2022,12(2):74⁃75,78.[15]谢建华,刘海波,刘瑞芳.基于ARM Cortex⁃M3的动态心电图机设计[J].吉林大学学报(信息科学版),2012,30(3):245⁃249.XIE J H,LIU H B,LIU R F.Design of Dynamic Electrocardiogram Based on ARM Cortex⁃M3[J].Journal of Jilin University (Information Science Edition),2012,30(3):245⁃249.(责任编辑:张洁)161第1期陈皆潞,等:基于Cortex⁃M3的串口与CAN 转换模块的设计与实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档