采用TMS320F28335的多节点CAN总线通信设计

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

电子设计工程
Electronic Design Engineering
第29卷Vol.29第7期No.72021年4月Apr.2021
收稿日期:2020-04-23
稿件编号:202004200
作者简介:宋耀东(1982—),男,河南新乡人,硕士研究生。

研究方向:电子控制系统设计。

CAN 总线指的是控制器局域网(Controller Area
Network ,CAN )总线,是最先由德国博世公司提出的用于汽车控制的一种实时应用的串行通信协议总线网络,因其具有高性能、高可靠性、高实时性和配
置灵活等特点,已经成为世界上应用最多的现场总线之一[1-3]。

标准CAN 协议对物理层及数据链路层进行了定义,但在实际应用中还要对应用层进行协议明确[4-5]。

常见的应用层协议有DeviceNET 、J1939、CANOpen 等,这些协议偏重于通用性,其价格昂贵、结构复杂,不适用于具体应用。

因此,通常需要针对具体应用,根据标准CAN 协议设计相应的具体应用
总线协议[6]。

随着航天航空电子综合化技术的发展,航天航空器内部的系统功能复杂化和体量庞大化的同时,不同设备之间需要快速、可靠的通信。

只有采用实时、稳定、可靠的数据传输技术才能实现此种需求[7]。

目前,航天飞行器内部常用总线有1553B 总线、CAN 总线等。

1553B 总线采用双余度和指令/响应方式异步通信的可靠性设计,在提高可靠性的同时,其成本也居高不下;而CAN 总线拥有很高的性价比,采用CAN 总线能够降低飞行器的研制成本[8]。

为满足某航天项目多节点高可靠总线通信的需求,从高性能、高可靠性、低成本的角度设计了一种基于TMS320F28335的CAN 总线的硬件接口、通信协议与软件配置。

1CAN 总线系统硬件接口设计
CAN 总线是一种有效支持实时控制或分布式控
制的串行通信网络。

CAN 总线中的设备都可以通过其控制单元上的CAN 总线接口进行数据的接收和
采用TMS320F28335的多节点CAN 总线通信设计
宋耀东,于淼,杜雪,李军
(中国电子科技集团公司第二十七研究所,河南郑州450047)
摘要:根据CAN 总线通信规范和TMS320F28335处理器eCAN 外设特点,设计了CAN 总线多节点通信网络连接方式及接口电路;根据TMS320F28335处理器eCAN 模块的配置规则,设计了CAN 总线数据帧格式,并给出了设置示例,对该模块进行了软件配置,实现了CAN 总线多节点的收发通信。

关键词:TMS320F28335;CAN 总线;多节点网络;通信协议中图分类号:TP336
文献标识码:A
文章编号:1674-6236(2021)07-0171-05
DOI:10.14022/j.issn1674-6236.2021.07.037
Design of CAN bus communication based on TMS320F28335
SONG Yaodong ,YU Miao ,DU Xue ,LI Jun
(The 27th Research Institute of China Electronics Technology Group Corporation ,Zhengzhou 450047,
China )
Abstract:According to CAN bus communication specification and eCAN peripheral features of TMS320-F28335processor ,the connection mode and interface circuit of multi ⁃node communication network of CAN bus are designed.According to TMS320F28335processor ecan module setting rules ,CAN bus data
frame format is designed ,and an example setting is given ,the module is configured with software ,CAN bus multi⁃node communication is realized.
Keywords:TMS320F28335;CAN bus ;multi⁃node network ;communication protocol -
-171
《电子设计工程》2021年第7期
发送,它是一个多路传输系统,当某一单元出现故障时不会影响其他单元的工作。

CAN 总线中数据在串联总线上可以单个顺序传送,符合ISO11898标准。

最大传输距离和传输速率成反比,传输速率为1MB/s 时,最大传输距离为40m ;传输速率为5kB/s 时,最大传输距离为10km 。

在传输介质方面多采用双绞线、同轴电缆等形式。

在标准CAN 通信协议中,有远程帧、数据帧、超载帧和错误帧等4种不同的帧格式。

该文对应的CAN 总线协议中只使用数据帧进行通信,数据帧仲裁段采用CAN2.0B 扩展格式。

利用总线控制器的29位扩展标识符来定义协议中的重要信息(如发送、接收设备等),通讯速率设为500kbps ,因此,相对应的最大通信距离为130m 。

1.1CAN 总线多节点网络设计
文中设计的CAN 总线网络是手拉手形式,连接
示意图如图1
所示。

图1CAN 总线网络通信节点连接方式
每台设备的通信接口采用一入一出两个插座,并在设备内部将两个插座的对应接点一一联接,通过双绞电缆网把各接点一一对应联接。

终端电阻安置在电缆线的两端或者两端节点的内部。

每台设备使用两个9芯插座的标准连接器,这两个9芯插座的接点分配完全一致,两个连接器各对应点在设备内相互短接,一个用于连接输入,一个用于连接输出,以方便形成整体链路。

插座接点分配如表1所示。

表1
总线插座接点分配
接点号1、23、45、67、89
信号名称
CAN 总线A 正(A-CANH )CAN 总线B 正(B-CANH )CAN 总线A 负(A-CANL )CAN 总线B 负(B-CANL )
机壳地
点数22221
CAN 总线网络采用双冗余的总线型网络结构,
包括A 、B 两条CAN 总线,结构如图2
所示。

图2双冗余CAN 总线网络结构
1.2
TMS320F28335处理器功能简介
TMS320F28335数字信号处理器是德州仪器公
司出品的一款C2000系列的浮点DSP 控制器,主频
高达150MHz 。

该DSP 控制器拥有强大的实时处理能力,并将控制器需要的核心外设功能集于一身,具有实时控制能力强、外设丰富、功耗小等特点。

在CAN 通信方面,TMS320F28335集成了两个全功能CAN2.0B 模块——eCAN-A 和eCAN-B ,每个模块都具有32个完整的、可独立配置的邮箱和时间戳,因此其拥有强大而灵活的CAN 串行通信接口。

1.3
CAN 接口电路
CAN 总线接口芯片采用PHILIPS 公司的PCA82
C250,其管脚定义如表2所示。

表2
PCA82C250管脚说明
管脚号1
2345678
符号TXD GND VCC RXD VREF CANL CANH RS
功能
发送数据输入端
地电源电压接收数据输出端基准电压输出端
低电平CAN 电压输入/输出端高电平CAN 电压输入/输出端
斜率电阻输入端
TMS320F28335与PCA82C250的连接关系如
图3所示。

图中采用164245电平转换芯片实现3.3V 和5V
电平之间的相互转换。

图3CAN 接口电路设计
2CAN 总线通信协议设计
2.1
CAN 位速率计算
正常位时间划分为以下4个互不重叠的时间段:同步段(SYNC_SEG )、传播段(PROP_SEG )、相位缓冲段1(PHASE_SEG1)和相位缓冲段2(PHASE_SEG2)。

同步段总是等于1个时间单元(TIME QUANTUM,TQ )。

在TMS320F28335的eCAN
模块中,CAN 总线的位长度由TSEG1(组合了传播段
-
-172
和相位缓冲段1)、TSEG2(定义了相位缓冲段2)和BRP(通信速率预定标)3个参数决定。

位速率公式如下式所示[9]:
位速率=SYSCLKOUT/2
()
BRPreg+1×[()
TSEG1reg+1+()
TSEG2reg+1+1]其中,BRPreg、TSEG1reg和TSEG2reg分别由寄存器BTC的23-16位、6-3位和2-0位决定。

并且设置需要符合以下规则:
①TSEG1≥TSEG2;
②2TQ≤TSEG1≤16TQ;
③2TQ≤TSEG2≤8TQ;
④2TQ=3/BRP;
⑤如果设置了3次采样模式,BRP≥5。

如果系统频率为150MHz,设置BRPreg=9、TSEG1reg=10、TSEG2reg=2,那么CAN通信速率为500kHz。

2.2CAN扩展数据帧位序构成
文中采用的是CAN2.0B协议,是具有29位标识符的扩展帧。

其各个位的定义如表3所示。

表3CAN2.0B扩展帧位序表
位序1 2~12 13 14 15~32 33 34 35 36~39
40~103
104~118 119 120 121 122~128
信息名称
帧起始
11位基本标识符
SRR(远程请求)
IDE(扩展标识)
18位扩展标识符
RTR(远程标识)
r1(保留)
r0(保留)
DLC(数据长度)
8个字节的数据
15位CRC校验
CRC界定符
ACK Slot(回应)
ACK界定符
7位帧结束
所属段
帧起始
仲裁场
控制场
数据场
CRC场
ACK场
帧结束
数据帧电平
低电平
-
高电平
高电平
-
低电平
低电平
低电平
-
高位在前
高字节在前
MDL在前
MDH在后
-
-
低电平
-
高电平
需要注意的是,根据CAN总线协议规范,在构成一帧的帧起始、仲裁场、控制场和CRC序列均借助位填充规则进行编码,当CAN发送器在发送的位流中检测到5位连续的相同数值时,将自动地在实际发送的位流中插入一个补码位。

比如,连续位流000000B,在实际发送中变为0000010B。

而其余场
采用固定格式,不进行填充。

出错帧和超载帧也是固定格式,也不进行位填充。

另外,标识符最高7位(ID28-ID22)不能全是“隐性”电平,即ID28-ID22不能全为“1”[10]。

2.3CAN总线数据帧格式设计
将数据帧的29位标识符分成4部分,如表4所示[11-12]。

表4数据帧标识符组成
标识符
ID28~ID27
2bit
PRI
优先级
ID26~ID21
6bit
ADDR
站地址
ID20~ID18
3bit
TYPE
帧类型
ID17~ID0
18bit
保留优先级PRI分为00B(备用)、01B(主节点控制命令)、10B(状态查询、遥测查询)和11B(保留)4种。

站地址表示数据帧的目的地地址。

各通信节点根据站地址设置屏蔽字,只接收与本通信节点有关的数据[13]。

帧类型分为两部分,ID20-ID19定义为00B(主节点发送的数据)、01B(从节点发送的数据)、10B(保留)和11B(保留);ID18来定义单帧(0B)和多帧(1B)。

单帧数据场第一字节为有效数据长度(字节数),第二字节为数据包信息标识(包括数据类型和发送端地址),第三字节开始为有效数据,数据包结尾为和校验的低字节[14]。

多帧数据起始帧数据场长度为8字节,第一个字节为帧序0,第二个字节为数据包有效数据的长度(字节数),其他为数据[15];中继帧数据场长度为8字节,第一个字节为帧序,其他为数据;结束帧数据场长度必须小于8字节,第一个字节为帧序,其他为数据,结束帧有可能只包含一个字节的帧序号[16]。

信息数据包格式如表5所示。

表5信息数据包格式
序号
1
2

N
N+1
内容
信息数据包标识
有效数据
DATA1~DATA n
SUM,校验和
信息数据标识分为高3比特(数据类型同标识符的帧类型TYPE)和低5比特(发送端站地址)。

校验和是从序号0到N的数据累加和的低字节。

宋耀东,等采用TMS320F28335的多节点CAN总线通信设计
-
-173
《电子设计工程》2021年第7期
2.4CAN总线ID设置示例
根据上述规则设计以及TMS320F28335寄存器
设计,主节点控制ID、主节点查询ID、从节点控制
ID、从节点查询ID示例如表6所示。

表6节点ID设置示例
位31 30 29 28 27 26 25 24 23 22 21 20 19 18 0~17
内容
IDE
AME
AAM
PRI
ADDR
TYPE
保留
主节点
控制ID
1
1
1
1
主节点
查询ID
1
1
1
1
从节点
控制ID
1
1
1
1
1
1
从节点
查询ID
1
1
1
1
1
1
1
根据上表,主节点控制ID设置为0x89200000,主节点查询ID设置为0x91200000,从节点控制ID设置为0x89690000,从节点查询ID设置为0x916C0000。

3TMS320F28335的eCAN模块软件设计
TMS320F28335的eCAN配置、发送数据和接收数据的步骤为:
1)使能CAN模块的时钟;
2)设置CANTX和CANRX引脚到CAN功能;3)配置MC.SCB:0为普通模式;1为增强模式。

该文配置为1;
4)初始化消息控制寄存器。

MBOX0到MBOX31的MSGCTRL清零;
5)发送标志TA、接收标志RMP、中断标志GIF0、GIF1写1清零;
6)设置CCR=1,等到CCE=1,确认能够更改配置寄存器TC;
7)设置BRPreg=9、TSEG1reg=10、TSEG2reg=2;8)设置SAM=1,采样3次;
9)设置CCR=0,等到CCE=0,关闭配置寄存器TC通道;
10)将寄存器ME清零,以配置邮箱ID;11)分配邮箱ID,比如邮箱0的ID设置为0x89200000,邮箱1的ID设置为0x91200000,邮箱2的ID设置为0x89690000,邮箱3的ID设置为0x916 C0000;
12)设置邮箱方向,比如设置邮箱0和邮箱1为发送邮箱(MD=0);邮箱2和邮箱3为接受邮箱(MD=1);
13)使能邮箱,比如使能邮箱0,ME0=1;
14)设置邮箱数据区长度,比如邮箱0数据区长度为8,MBOX0.MSGCTRL.bit.DLC=8;
15)设置发送邮箱的数据区数据,比如MBOX0.M DL.all=0x55AA55BB,MBOX0.MDH.all=0x11223344;
16)设置发送邮箱发送标志位,比如TRS0=1;等到发送应答标志TA0=1;置位TA0=1,写1清零,清除发送应答位;
17)接收数据时,接收邮箱的消息挂起寄存器(RMP)中的相应位为1,比如邮箱16,判断RMP16=1,即表明邮箱接收到了数据;接收程序首先将RMP16写1清零,以便接收下一轮数据。

4CAN通信示例测试
利用两个CAN节点对文中硬件和软件设计进行测试,设置为扩展帧,速度为500kbps,CAN的ID 设置同2.4节保持一致,数据长度设置为8字节。

主CAN 控制命令测试数据设置为0x55AA55BB11223344、查询命令测试数据设置为0x55CC55DD66778899;从CAN控制回复测试数据设置为0x7EE7BBAA010 20304、查询回复测试数据设置为0x7EE7DDCC060 70809。

测试流程为:1)主CAN向从CAN发送控制命令,从CAN回复控制命令;2)主CAN向从CAN发送查询命令,从CAN回复查询命令。

通过CANtest软件监控CAN总线数据。

监控结果如图4
所示。

图4CANtest软件监控数据
图4中第一行数据对应主CAN向从CAN发送控制命令数据,第二行数据对应从CAN回复控制命令数据,第三行对应主CAN向从CAN发送查询命令数
--174
据,第四行对应从CAN 回复查询命令数据。

可以看出数据与设定值一致。

另外注意帧ID ,此图中帧ID 不完全等于所设定的帧ID ,是因为TMS320F28335设置的ID 格式中第31到29位不属于CAN 的ID 范围,而第28位到0位是CAN 扩展帧的29位ID 。

通过示波器观测CAN 数据的位时间,实测结果如图5所示。

可以看出,位时间为2μs ,与设置的500kbps
一致。

图5CAN 数据波形图
5结束语
1)根据CAN 总线通信规范,设计了CAN 总线多
节点通信网络;根据TMS320F28335处理器eCAN 外设特点,设计了CAN 总线接口电路;
2)介绍了CAN 位速率计算方法和CAN 扩展型数据帧的位序构成,设计了CAN 总线数据帧格式,并给出了ID 设置示例;
3)根据TMS320F28335处理器eCAN 模块的设置规则,对该模块进行了软件配置,最终实现了CAN 总线多节点的收发通信;
4)项目的后续多机CAN 通信需求可根据文中所设定的通信格式进行协议制定。

参考文献:
[1]王海明,胡剑生,王旭昊,等.基于F28335的旋转变
压器接口电路的应用设计[J].电子设计工程,
2014,22(14):152-155.
[2]余运俊,张燕飞,万晓凤,等.基于CAN 总线的分布
式光伏电力设备监测系统[J].电源技术,2016,40
(7):1450-1453.
[3]张胜高,张庆范,王思尧,等.基于TMS320F28335的恒流型馈能式电子负载的设计[J].电子设计工
程,2012,20(10):103-109.[4]冯志刚,邱猛,田丰.基于DSP 和MCU 的自确认气
动执行器CAN 总线通信系统[J].沈阳航空航天大
学学报,2015,32(4):57-66.[5]王鑫,刘岩.三相SPWM 波在TMS320F28335中的实现[J].电子设计工程,2013,21(2):176-178.
[6]徐伟.一种适用于分布式测量系统的CAN 总线协议[J].微计算机信息,2007,23(11):32-34.[7]王志刚,赵伊宁,杜以林,等.基于CAN 总线的遥测
数据处理模块软件设计[J].计算机测量与控制,
2015,23(3):1038-1044.
[8]冯志刚,邱猛,田丰.基于DSP 和MCU 的自确认气动执行器CAN 总线通信系统[J].沈阳航空航天大
学学报,2015,32(4):57-66.
[9]刘凌顺,高艳丽,张树团,等.TMS320F28335DSP 原
理与开发编程[M].北京:北京航空航天大学出版
社,2011.
[10]马俊杰.嵌入式DSP 的原理与应用-基于TMS320F28335[M].北京:北京航空航天大学出版社,
2016.
[11]白雪飞,顾春雷.基于F28335微网用锁相环性能分析[J].电测与仪表,2013,50(12):87-90.
[12]王泉,曹红松,赵捍东,等.基于TMS320F28335的ADC 模块电压基准校正[J].火炮发射与控制学报,2019,9(3):59-61.
[13]刘艳行,肖强,李文强.基于TMS320F28335的CAN
和以太网接口设计[J].现代电子技术,2013,36
(24):128-133.[14]刘明.基于TMS320F28335的小型导航计算机系统设计[J].测控技术,2009,28(12):36-39.
[15]吴益飞,王志宏,陈庆伟.基于TMS320F28335的轴
角测量系统设计与实现[J].计算机测量与控制,
2013,21(11):3113-3116.[16]王娜,姜见龙.一种基于FPGA 和TMS320F28335
的电机控制实现过程[J].航天制造技术,2017,6
(3):45-48.
宋耀东,等采用TMS320F28335的多节点CAN 总线通信设计
-
-175。

相关文档
最新文档