1、基于 CAN 总线嵌入式数字控制系统的设计针对 CAN 总线技术在数据传输中采用短帧结构和过滤机制,其具有突出的可靠性、实时性和灵活性等优点,并能方便地构成分布式系统和低成本地实现工程的实际要求。本文设计了直流电机调速控制板与 CAN 总线控制板的数据通信,以及 CAN 总线与上位机的通信等。0 引言目前国内生产的直流电机调速控制器大多都不带通信接口,即使有带通信接口也仅为RS232或 RS485串行总线。众所周知 RS232和 RS485有各自的优缺点,阻碍了多台电动机机组的进一步网络化发展和群控控制。本文分析和研究了多台直流电机 CAN 总线的通信协议以及软件数据的传输,对工业网络控制的实
2、现具有一定的指导意义。CAN 总线控制网络工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且 CAN 协议废除了站地址编码,采用对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得 CAN 总线构成的网络各节点之间的数据通信适时性强,并且容易构成冗余结构,提高系统的可靠性和灵活性。1 系统总体设计多台直流电动机 CAN 总线控制系统如图1所示,本系统由直流电机、直流电机调速控制器、CAN 总线通信控制板、上位机和 CAN 总线五部分构成。CAN 总线能完成网络的建立、网络信号的传递、总线控制以及与上位机之
3、间的数据通信;同时还完成对直流电机电压、电流数据的测试、传输以及直流电机转矩、转速的检测并进行闭环控制等。点击图片查看大图图1 多台电机 CAN 总线控制框图2 数据通信设计在直流电机调速系统结构中有一个通信接口模块,用来实现与 CAN 总线通信控制板之间的数据交换,首先用 DSP 实现 AD 采样电路对速度反馈、速度给定、电流反馈等数据处理。采样所得数据经再发送给 ARM 处理器,最终 ARM 处理器实现 CAN 总线通信。2.1 直流电机的 CAN 总线通信设计CAN 协议标准中规定了 CAN 总线支持的两种传输介质:双绞线和光纤。目前,绝大多数 CAN 总线系统采用的都是双绞线传输。光纤
4、一般应用于大容量、高速率的传输中,对于CAN 总线这种传输速率较低、数据量较小的现场总线通信,光纤传输的优势得不到完全发挥。所以,本文使用双绞线作为通信介质。每个直流电机都是网络中的一个节点,其在运行时的数据经 DSP 采集后发送到 CAN 总线通信控制板,然后传输到 CAN 总线上,再由 CAN 总线适配器传给上位机,实现对电机的实时监测。这样就可以实现上位机对电机的实时监控。其中 CAN 总线适配器实现上位机与CAN 总线的数据交换。CAN 总线适配器由 CAN 的微控制器完成与上位机通信的协调工作,根据需要可对 CAN适配器微控处理器中的寄存器进行读写操作,实现初始化及数据采集。CAN
5、总线适配器上电复位和初始化后,等待着命令和数据,当命令或数据送给 CAN 的寄存器并置位标志位,即完成一次通讯,然后取出数据做进一步处理。与 CAN 适配器间的通讯有查询和中断两种方式。2.2 CAN 总线网络通讯调试首先要测试 CAN 总线适配器与上位机能否实现通信,从前面的介绍可以知道它们是通过串口实现通讯的。打开串口调试工具,由适配器向串口发送数据,如果串口调试工具可以接收到数据,则说明它们之间的通讯正常。接着要对两个 CAN 节点的调试,我们采用双绞线作为通讯介质。总线传输速度与双绞线的长度成反比关系,所以可以根据对通讯速度的要求确定双绞线的长度,由于是简单通讯实验,因而对双绞线的长度
6、没有要求。设置一个节点为发送端,另一节点为接收端,取消报文滤波器,如果能够完成发送接收任务则它们已经能够实现简单的通讯。本设计设定传输运行状态与故障状态两种运行参数,其中运行状态包括直流电机的:给定速度、反馈速度、反馈电路、电枢电压。运行状态是由 DSP 自带的 AD 转换模块经采样所得。DSP 的 AD 采样器精度是12位的,所以 经模数转换后的数值是一个12位的二进制数,对其前端补零转换成16位数据经串口直接发送给 ARM 处理器。因为两者的传输距离很近,所以不需要经过电平转换就可直接发送。而电机的故障状态则由0、1表示,0代表没有故障,1代表电机出现故障。要实现 DSP 与 ARM 以
7、及 CAN 总线的通信,需要设置一个通信控制协议,协议设定每个要传输的参数一个控制地址。CAN 总线每次可以发送8个字节数据,每个字节8位,所以给定速度、反馈速度、反馈电流及电枢电压这四组运行参数需要占据两个字节,而故障状态只需占据一个字节。CAN 总线数据帧的第一个字节存放控制地址,第二、三个字节存放数据。其中,第二字节存高地址,第三字节存低地址。如果发送的是故障状态则只有第二个字节是传输数据。CAN 总线每次只发送一种运行参数,其中给定速度、反馈速度、反馈电路及电枢电压依次轮流发送。而故障状态在程序中设置为优先级最高,当有故障出现时则优先发送,正常状态下不发送。图2是整个系统的数据传输流程
8、图。点击图片查看大图图2 数据传输流程图3 实验图3为上位机数据显示界面,图中显示为调试某一时刻的传输数据。可以看出反馈速度与给定速度并不相等,由于 PI 控制算法的作用使反馈速度始终处于给定速度附近。反馈电流1.2A 是在电机空载时的测量值,随着负载的增加,反馈电流会逐渐增大。电枢电压是直流电机母线上的电压,由于电机在实际应用中主要工作在220V,所以调试时首先将电枢电压稳定在这一电压值,然后再对速度进行调节。在正常情况下,故障状态始终显示为“无” ,当有故障信号发出时,故障状态显示为“有”并发出报警信号。点击图片查看大图图3 上位机数据显示界面这样上位机就收到某台电机此时的各种运行参数,由此可以实现使用上位机监控整个厂房中所有电机的运行状况。在系统调试时,使用三米长的双绞线作为通信介质,上位机、直流电机、直流电机调速器等作为调试工具。实验证明,上位机能够顺利接受到直流电机发送的各种运行参数,说明系统已经实现了数据通信的要求。由于直流电机。测速机本身都是比较大的干扰源,在此情况下数据仍能顺利传输,这也一定程度上验证了 CAN 总线的抗干扰能力。4 结束语本文针对 CAN 总线在直流电机调速器与 CAN 总线控制器之间的数据交换以及 CAN 总线与上位机间的数据传输,最终实现 CAN 总线对直流电机的运行状态的监视。