CAN总线是一种能有效支持分布式控制系统的串行通信网络,一方面,其通信方式灵活,可实现多主方式工作,还可实现点对点、点对多点等多种数据收发方式;另一方面,他能在相对较大的距离间进行较高位速率的数据通信,例如在3.3 km的距离内其传输速率可达20 kb/s。我们的系统是由上位机对多台并列的单电源控制系统进行控制管理,单电源的间距在100 m左右,且其必须置于较高的位置,系统之间要进行快速的数据传输,CAN总线能很好的满足该系统的要求。
1 系统总体结构
图1是该集散电源控制系统的结构示意图。
其中:CAN0节点是上位机。
本系统用的是C51单片机,外接CAN控制器SJA1000,他对下面多台下位机传送控制定值,并且在收集下位机送来数据后对其进行分析计算以改变定值。节点CAN1~CAN31(最多可有31台)为各单电源的控制部分,我们采用的是TI公司的TMS320LF2407芯片做主控,其上集成有CAN控制器模块。
2 LF2407及其集成CAN控制模块介绍
LF2407是TI公司推出的定点DSP处理器,他采用高性能静态CMOS技术,供电电压为3.3 V,指令周期可达25 ns,其上集成了包括CAN控制器在内的多个外围模块及存储器,适用于电机及逆变电路的控制。
CAN控制器模块是集成于LF2407中的一个16位外设模块。该模块具有以下特性:
(1)支持CAN2.0B协议,支持标准标识符(11位)及扩展标识符(29位),支持数据帧与远程帧。
(2)配置有6个邮箱,2个接收(0,1号),2个发送(4,5号),2个可配置(3,4号);每个邮箱数据长度为8 B。接收邮箱可进行标识符屏蔽。当标识符位被屏蔽时,在接收数据帧时无须对该位标识符进行校验。
(3)具有可编程的位定时器、中断服务和CAN总线唤醒功能。
(4)能自动回复远程请求,当发送错误或数据丢失时,有自动重发功能。 每个邮箱寄存器包含7个字的信息,与各功能模块控制寄存器相类似,LF2407为其分配了固定的数据存储器地址,例如邮箱0,其寄存器分配如下:
MBX0A~D(4个字的存储空间)地址:7204~7207其中:标识符(按29位设置)在MSGIDnH的后13位和MSGIDnL中。
3 硬件电路设计及调试
在设计LF2407的CAN通信电路时应注意一个问题,即2407的供电电压为3.3 V,其CAN控制模块输出的高电平也只有3.3 V,与CAN驱动器PCA80C250电平(5 V)不兼容,在设计电路时加隔离光耦时要加以注意。图2所示为下位机侧的CAN通信原理图。
由于TX的输出光耦采用的是射极输出方式,我们的输出光耦应采用6N136(137由于其结构原因不能满足要求),图3是我们进行数据发送时测试得到的R42两端的电压波形(输出10101010…)[page]
由我们对CAN通信控制器的位配置寄存器BCR1的设置可知,每一位数据所占的时间段中,我们的采样点在70%的时间点,在这一点的输出电压必须在额定高低电平的设定值范围内。我们选定R42=5 kΩ,得到以上波形,满足采样点处高电平≥3.5 V,低电平≤1.5 V。
4 通信协议及软件实现
在系统中,上位机给下位机发送运行定值以及起停信号,并且会定时查询各单机的运行状况以对其状态进行相应的调整。
具体通信过程分为2类:
(1)上位机向下位机传送操作命令及定值,上位机发送的是数据帧。
上位机发送完数据帧后,若下位机收到该数据帧则向上位机发送确认帧,该数据帧发送结束。若发送失败,上位机在等待一段时间后未接收到确认帧,则自动重发该数据帧。
(2)上位机对下位机的运行状态及各种记录定值进行查询,上位机发送的是远程帧。
远程帧中只包含有数据类型而没有数据内容,下位机接到远程帧后,根据上位机要求的数据类型向上位机传送数据。同时等待上位机的确认帧。若未接收到确认帧则定时重发。
在该系统中,以标准帧进行通信,即采用11位的标识符。其各位的定义如下:
ID0~ID4:节点标识,5位的节点标识可使网络能容纳32个节点。
ID5~ID7:数据类型,需要传送的数据种类比较多,上传的数据帧规定了7种类型(包括确认帧),与此对应下传的远程帧有6种类型,而下传的数据帧则有6种类型。需要至少3位标识符来确定数据类型。
ID8~ID10:帧计数,数据量最大的数据类型包含有17字的数据,而每帧最多能传4字,故该类型数据至少需要5帧才能传完。需对数据帧进行计数以对传送数据具体类型进行确定,故至少需要3位标识符来进行确定帧计数。
由于LF2407有专门的CAN模块中断,且在CAN控制模块中设计了专门的CAN中断标志及屏蔽寄存器,可以十分方便地采用中断的方式来启动CAN控制器进行数据的接收与发送。
在进行CAN控制器的设置时,需要先对改变数据请求位CCR进行使能,并在改变后进行复原。值得注意的是,TMS320LF2407中有很多寄存器位是需要通过写“1”来实现清“0”的,还有些位是只能读不能用程序直接改写的,例如:对邮箱中断(包括接收和发送)的标志位MIFn(0~5),在进入中断响应后应将其清除,但该位是只读位,用户程序只有写1到TCR寄存器的TAn位(对发送邮箱)和写1到RCR寄存器的RMPn位(对接受邮箱)才可达到清位目的。
5 实现的功能
通过该通信系统实现的功能包括:定值传送(从上位机传到下位机的数据帧):
(1)对时:具体到时分秒的数据。
(2)运行定值的传输:包括闪络参数(闪络系数KSP,给定火花率SPARK_NUM)、充电参数(给定峰值Up,上升率RISE-NUM,充电时限Ton-max)、放电参数(平均电压Vg,平均电流Ig,放电时间极限Toff-max)。
(3)保护定值:包括开路参数(电压,电流,延时)、短路参数(电压,电流,延时)、欠压电压、延时、过载电流、偏励磁、IGBT温度、油温等。
(4)通道参数:包括一次电流、输出电压电流、IGBT温度、油温、输入电流(三相)、直流电压。
运行定值查询(上位机发出远程帧):包括系统状态、故障记录、运行定值、保护定值、通道系数等。
6 结 语
本系统已经过调试,在我们初制成的单对单系统(上位机带1台控制系统)中,能抗除强干扰,在较大传输数据量的情况下正常工作。
上一篇:基于MCS-51单片机的定时报警器电路原理图
下一篇:51单片机软件抗干扰的技术误区
推荐阅读最新更新时间:2024-03-16 13:34
设计资源 培训 开发板 精华推荐
- Littelfuse 高效 • 可靠 • 精准的功率控制和电路保护方案在工业、交通、通讯、医疗及新能源中的应用
- 答题抽奖:Mentor Tessent Automotive相关测试解决方案(奖品池还剩不少奖品哟)
- Mouser 新用户大礼包再次来袭:晒单5折返E金币!
- 英特尔 SoC FPGA 开发者论坛 (ISDF) 预约报名享好礼!
- 有奖直播:安森美电感式位置传感器接口 NCS32100
- 您的电路保护有足够的空间吗?Littelfuse的881系列保险丝迎接这一挑战
- 看视频,了解泰克高性价比频谱分析仪,填卷赢好礼!
- TI MCU 常见问题(FAQ)大搜集
- 【抢楼有礼】TI TMS320F28377S 入门经验大搜集!