《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 针对DSP运动控制器的CAN总线软硬件设计
针对DSP运动控制器的CAN总线软硬件设计
来源:微型机与应用2013年第17期
赵锦芝,杨 威
(中原工学院 机电学院,河南 郑州 450007)
摘要: 介绍了CAN总线的优良性能,给出了针对DSP运动控制器的CAN总线系统结构框图。主要完成了对TMS320LF2407A运动控制器上CAN总线硬件接口电路的设计和软件的实现。实现了对TMS320LF2407A的CAN总线通信软件的模块化设计,并用实验验证其正确性。在此基础上,CAN总线通信的实现只需要修改相应的几个寄存器即可,大大降低了软件设计的周期,也为DSP的CAN总线硬件电路的设计提供了参考。
关键词: DSP CAN总线 VC++ 6.0 C语言
Abstract:
Key words :

摘  要: 介绍了CAN总线的优良性能,给出了针对DSP运动控制器的CAN总线系统结构框图。主要完成了对TMS320LF2407A运动控制器上CAN总线硬件接口电路的设计和软件的实现。实现了对TMS320LF2407A的CAN总线通信软件的模块化设计,并用实验验证其正确性。在此基础上,CAN总线通信的实现只需要修改相应的几个寄存器即可,大大降低了软件设计的周期,也为DSP的CAN总线硬件电路的设计提供了参考。
关键词: DSP;CAN总线;VC++ 6.0;C语言

 随着电工电子技术和信息技术的快速发展,各种科技产品功能变得越来越强大,设备也变得更加复杂。在自动控制领域,如电力电器控制、深空作业、自动驾驶、机器人控制等,TMS320LF2407A扮演着重要角色。当工控机所要控制的电机较多,或需要传输的数据量较大,实时性要求较高时,DSP运动控制器与上位机之间的通信将是设计人员必须考虑的问题。针对以上问题,本文提出了使用CAN(Controller Area Network)总线进行通信。CAN总线是目前唯一有国际标准的现场总线,它不仅价格低廉,结构灵活,尤其在强干扰的恶劣环境下仍具有很高的可靠性。CAN总线的通信速率最高可达1 Mb/s,此时的传输距离为40 m。如果传输距离比较远,可适当地降低通信速率以增大传输距离[1]。CAN总线以上这些特性使其应用越来越广泛。并且CAN总线是实现分布式控制的一种方式,比起集中式控制,分布式控制使控制系统变得简单、安全可靠。因此,研究TMS320LF2407A的CAN总线通信的硬件接口电路的设计和其软件的实现,将有很大的实际应用价值。CAN总线系统结构框图如图1所示,DSP运动控制器可以直接挂在用于CAN总线通信的两根线上,最多可实现110个DSP运动控制器与上位机的通信。
1 硬件接口电路的设计
 完整的CAN总线硬件接口电路如图2所示,其主要由3部分组成,分别为CAN驱动器TJA1050、电气隔离器(即双通道数字式磁隔离器ADUM1201BRZ)以及未画出的CAN控制器(即DSP控制芯片)。

 如图2所示,ADUM1201BRZ芯片的第2个引脚CANRX接TMS320LF2407A DSP的第70个引脚,ADUM1201BRZ芯片的第3个引脚CANTX接TMS320LF2407A DSP的第72个引脚。也可以接在其他DSP芯片CAN接口上或独立的控制器SJA1000CAN上,使该电路具有很高的移植性和参考价值。
1.1 CAN驱动器的设计
 CAN驱动器是CAN控制器与物理总线之间的接口,具有CAN总线的差动发送和接收功能。现在市场上多用PCA82C250作为CAN总线驱动器,但是本文提出了使用TJA1050总线驱动器替代PCA82C250。因为TJA1050除了具有PCA82C250的主要特性以外,在某些方面的性能还作了很大的改善,如优化了输出信号CANH和CANL之间的耦合,大大降低了信号的电磁辐射(EMI);在DSP运动控制器未上电时,该节点不会干扰总线(对于未上电节点的性能作了优化)等。最重要的是,TJA1050和PCA82C250的封装、引脚功能和芯片外围电路基本相同,在大多情况下前者可以替换后者,使用户在不改变PCB板的情况下就可以享受TJA1050所带来的优势[2-3]。
 在数据传输时,当一个位从隐性切换为显性时,需要额外的电流来驱动总线,由于受限于电压调节器的调节速度,这时就需要一个旁路电容来稳定CAN电压(+5 V),否则CAN电压将会有一定的偏离。电压不断地偏离,就会产生震荡电压(恶性电压),震荡电压会产生电磁辐射,进而影响通信。因此,如图2所示添加旁路电容(C45)将非常重要,电容的大小由电压调节器的性能而定,性能好的可适当小些,但至少要大于0.1 μF。如图2所示,电阻(R08)是作为CAN总线通信的终点电阻,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠行。当CAN总线上只有一个DSP运动控制器时,DSP运动控制器上就必须有这个电阻,否则,不能正常地通信。当有两个或两个以上DSP运动控制器,其中一块板上有这个电阻就可以完成通信。至于图2中电阻R09大小的选择可参照TJA1050数据手册。
1.2 CAN电气隔离器的设计
 虽然CAN总线接口采用差分传输,使其具有一定的抗共模干扰能力,但是在复杂的应用场合下,各个节点之间可能存在很高的共模电压。当共模电压达到一定值时就会使CAN驱动器无法正常工作。因此,为了使DSP运动控制器能够适应强干扰环境,或是在高性能要求下工作,就必须对CAN总线各个节点进行电气隔离,即在CAN总线进入DSP运动控制器CAN_H、CAN_L的通信通道之前添加具有电气隔离的芯片。以往大都使用6N137高速光电隔离芯片(最高速率为10 Mb/s),一个6N137芯片只能隔离一路通信通道,且6N137为8个引脚,再加上6N137芯片外围的限流电阻,使得DSP板的CAN通信电路变得比较复杂,进而降低了电路的可靠性。本设计采用ADI公司推出的双通道数字隔离器ADUM1201,它与6N137相比有更高的通信速率,最高可达到25 Mb/s;减少了CAN总线有效回路信号的传输延迟时间;具有更高的额定隔离电压,是6N137的两倍。ADUM1201还有体积小、性价比高、应用灵活、功耗低的特点[4-5]。ADUM1201的使用使得CAN总线接口电路更加简单可靠。ADUM1201BRZ两侧电源和参考地之间需要接入0.01 μF~0.1 μF电容,以滤除高频干扰,防止电磁辐射。在PCB布局时,电容与ADUM1201BRZ之间的距离最好在20 mm以内,以便达到更好的滤波效果。
 双通道数字式磁隔离器ADUM1201在CAN总线通信中的应用,不但提高了系统的性能,简化了系统的结构,增加了系统的稳定性,而且还降低了系统的功耗,为CAN总线隔离的实现提供了一种相当好的解决方案。
1.3 CAN总线电源的电路设计
 电气隔离器件两侧所用电源VCC(+5 V)与CAN(+5 V)必须完全隔离,否则,电气隔离将失去应有的作用。本文采用100 μH的电感进行隔离。电源地与信号地也要分开,原因是:电源地上大的电流会在信号地上产生一个电压差(可以解释为:虽然导线阻值很小,但如果所流过的电流较大时,也会在此导线上产生电位差,这也叫共阻抗干扰),使信号地的真实电位高于0 V,如果信号地的电位较大时,有可能会使信号本来是高电平的,却误判为低电平,进而影响数据传输的准确性。CAN总线电源硬件电路如图3所示。

2 CAN总线软件的实现
2.1 CAN初始化

 在使用CAN通信之前,必须对DSP的一些寄存器进行设置,包括对位定时器的设置和邮箱初始化的设置。配置位定时器流程图如图4所示,初始化邮箱流程图如图5所示。

 

 

 CAN总线通信程序的初始化比较简单,一般只需要修改两处即可实现程序的移植。一处是BSR1、BCR2寄存器,以确定CAN总线通信的波特率,波特率的设置必须与上位机程序中波特率的设置大小一致,否则,通信的数据不对。另一处是修改MSGID2H寄存器,它是用来设置整个DSP运动控制器的ID号。如:MSGID2H=0x0004时,ID=1,每个DSP运动控制器的ID号不能重复,因为CAN适配器是靠ID号来识别通信的。
2.2 CAN数据的中断、接收和发送
 CAN数据的接收是通过中断来实现的,至于数据的发送可以采用定时器定时发送,也可以在接收到数据后再发送。当DSP运动控制器向上位机发送数据时,只需把要发送的数据赋给MAX4n邮箱即可;当DSP运动控制器接收上位机的数据时,上位机只需把所要发送的数据通过CAN适配器赋给MAX2n邮箱即可[6],这样就实现了上位机与多个DSP运动控制器的通信。
3 实验
 根据图1中的CAN总线适配器,试验中采用武汉吉阳光电科技有限公司生产的GY8507 USB转CAN总线接口适配器。图6所示为上位机中用VC++ 6.0编写的CAN通信人机界面[7],该界面能够实现两组数据的发送和接收。用户在发送数据之前首先点击“CAN初始化”按钮,待CAN初始化成功之后,再发送所需的数据。
CAN总线接口电路是CAN总线通信中的重要环节,其通信的可靠性与准确性直接影响功能的实现。本文设计的CAN总线接口电路简单、安全可靠,为DSP运动控制器功能的实现提供了保障。更是实现了CAN总线通信软件的模块化设计,并用实验验证了其正确性,从而降低了开发难度,大大缩减了CAN总线通信程序实现的周期。

参考文献
[1] 夏继强.现场总线工业控制网络技术[M].北京.北京航空航天大学出版社,2005.
[2] NXP Semiconductors. Datasheet TJA1050, high speed CAN transceiver[Z], 2000.
[3] NXP Semiconductors. Data sheet PCA82C250, CAN controller[Z]. 2000.
[4] ISOCOM. Datasheet 6N137, high CMR, very high speed optically coupled isolator logic gate output[Z]. 2005.
[5] ADI公司.Datasheet ADUM1201, dual-channel digital isolatorst[Z]. 2004.
[6] 刘和平.TMS320LF240x DSP C语言开发应用[M].北京:北京航空航天大学出版社,2003.
[7] 夏崇镨,任海军.Visual C++课程设计案例精编[M].北京:清华大学出版社,2008.

此内容为AET网站原创,未经授权禁止转载。