基于DSP的CAN总线网络设计
2017-08-24白龙王淑玉付东辉陈玉强
白龙+王淑玉+付东辉+陈玉强
摘 要:文章利用TI公司的TMS320LF2407A内嵌的CAN控制器模块,构成了CAN总线通讯网络,给出了其硬件和软件设计的一般方法,从而为基于DSP的CAN总线监控系统的构建提供了一种模型化设计,设计具有较强的灵活性和通用性,可用于多种工业现场控制。
关键词:DSP;CAN总线网络;设计
中图分类号:TP332 文献标志码:A 文章编号:2095-2945(2017)22-0023-02
随着工业自动化的快速发展,传统的控制系统已经难于实现设备之间以及系统与外界的信息交换,成为了“信息孤岛”。而现场总线CAN(Controller Area Network)是众多现场总线中唯一具有国际标准的控制器局域网,CAN总线采用报文短帧结构,增强了系统的实时性,另外它还具有传输距离远、传输速率高、抗电磁干扰能力强、成本低等优点。现在已广泛应用于工业现场、控制智能大厦、小区安防、汽车行业、家用电器、医疗仪器及环境监控等众多领域。因此CAN总线已成为最有发展前途的现场总线之一[1]。
本文提出了一种较为通用的CAN总线网络系统的设计,利用TI公司的TMS320LF2407A的CAN控制器模块组成通讯网络,详细给出了其硬件电路和软件设计原理。
1 系统硬件设计
1.1 CAN总线网络的单个节点设计
美国德州仪器公司生产的TMS320LF2407A控制器内嵌CAN模块,支持最新的CAN2.0B通信协议,并利用内部邮箱实现数据的接收与发送,当总线的报文出现冲突和丢失数据时,启动非破坏性仲裁和自动重发送功能。通过DSP2407构成CAN节点其硬件设计简单,只要在外部增加CAN总线驱动即可,PCA82C250是飞利浦公司生产的支持CAN2.0B通信协议的驱动芯片[2]。DSP2407和PCA82C250构成的CAN接口硬件电路如下图1所示,DSP2407通过稳压芯片获得3.3V电源,PCA82C250则为5V电源,为了抑制总线回路中的回波反射,在总线终端接了阻值为120Ω的匹配电阻R4,由于CAN总线的电平与TTL电平不兼容,因此利用阻值为10kΩ的R1、阻值为3kΩ的R2、阻值为4kΩ的R3和快速回复二级管1N4007的D1构成电平转换电路。
1.2 单个节点的外围电路
为了使CAN总线网络中每个节点都能实现基本控制、参数修改、报警、存储、显示、监控、优化及控管一体化的综合自动化功能。我们以TI公司的TMS320LF2407A为控制核心设计了一种典型的单个节点的外围电路,如图2所示。
1.3 CAN总线网络设计
CAN总线网络是由多个CAN节点构成的现场总线网络,总线上可同时最多连接110個CAN节点。通讯介质可为双绞线、同轴电缆或光纤,当通讯速率为5kbps以下时,通讯的最大距离可以超过10km,而当通讯距离小于40m时,通讯的最大速度可以超过1Mbps[3]。当CAN总线网络中某个节点出现重大错误情况,该节点将自动关闭输出功能,从而使得总线网络中上其他CAN节点的功能不受影响。图3为CAN总线网络的结构框图。
2 系统软件设计
2.1 初始化CAN控制器
由于CAN通讯用到的两个引脚CANTX和CANRX均为复用I/O口,因此在初始化时一般先要正确配置这两个I/O口,初始化定时器主要是对BCR1和BCR2进行配置,BCR1和BCR2两个寄存器决定了CAN控制器的通讯波特率、同步跳转宽度、采样次数和重同步方式。在整个设置过程中需对MCR寄存器中的改变配置请求位CCR和GSR寄存器中的CCE位进行判断和适当的配置。
初始化邮箱主要是设置邮箱的标识符、确定发送的是远程帧还是数据帧,以及对发送的数据区赋初值。这个过程中需要对MDER寄存器中的邮箱使能位MEn(n=0~5)和MCR寄存器中数据域改变请求位CDR进行适当配置。
2.2 信息的发送
CAN控制器在发送过程中共有四个邮箱可以使用,其中邮箱4和邮箱5为专用的发送邮箱,而邮箱2和邮箱3需对MDER寄存器中的邮箱使能位MEn进行配置后,才具备发送功能。同样,在发送数据前,首先需要使能发送请求标志位TSRn,并将发送数据写入发送邮箱,这时数据就被送到了CAN总线网络上。
2.3 信息的接收
CAN控制器的接收邮箱有邮箱0和邮箱1,以及被配置为接收方式的邮箱2和邮箱3。接收时需要设置其标识符、标识符相关的局部屏蔽寄存器LAM和RCR寄存器中的接收信息悬挂位RMPn(n=0~3)。
2.4 应用层协议
应用层是由各种应用程序组成的,从而为网络用户提供各种服务,某些服务被普遍使用后,通过相关组织形成了标准化,而应用层协议就是这些标准派生而来。在实际应用中CAN总线网络的通信协议可以有两种选择,一种是采用国际组织公布的标准化协议,如CANopen和DeviceNet等,优点是互换性和互操作性强;另一种是开发者自己制定通信协议,优点是协议简单易用,目前在CAN总线通信网络中得到了广泛的应用。
2.5 CAN节点与PC的通讯程序
CAN节点通过RS232接口实现与PC机的通讯,而PC机的程序采用Visual Basic 6.0 进行程序编写,利用ActiveX控件MSComm实现与计算机串口的通讯程序[4]。并通过数据库软件SQL Serve 2000对总线网络系统中的数据进行管理,为后期的数据分析和处理做好充足的准备。
3 结束语
本文设计了一种基于DSP的CAN总线网路系统,本系统经调试,软硬件工作均正常,各节点之间通讯快速并准确,当波特率为100kbps,平均延迟时间大于1ms时,网络负载低于35%,总线网络具有较好的性能。DSP有着内嵌的CAN控制器模块,使得构建CAN节点网络的电路简单容易,随着DSP在控制领域应用的越来越多,基于DSP的CAN总线网络系统将在自动控制、数据采集和信号采集等方面得到更为广泛的应用。
参考文献:
[1]饶运涛,邹继军,王进宏,等.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.
[2]刘和平,王维俊,邓力,等.TMS320LF240xDSPC语言开发应用[M].北京:北京航空航天大学出版社,2002.
[3]刘和平,江渝,郑群英,等.DSP原理及电机控制应用[M].北京:北京航空航天大学出版社,2006.
[4]李江全,张丽,岑红蕾,等.Visual Basic串口通讯与测控[M].北京:人民邮电出版社,2007.