logo

基于DSP和CAN总线在直流电机测试系统中的应用

   文章来源:Internet  发布时间:2009-09-30  访问量:1548

  我们设计了一种基于DSP控制器TMS320F2810的新型直流电机自动测试系统。该系统给电机提供各种占空比的PWM控制信号,通过DSP采样电机的电流信号和输出脉冲信号,计算出电机的电流和转速,并送到显示屏上显示,同时还通过CAN总线把数据送到上位机保存和分析,并能通过上位机给各个控制接点发送指令和数据。此系统可同时测试多个电机,在一个测试点上一次接线就能完成所有占空比下的电流和转速的测试,大大提高了测试效率。
  1.系统网络结构和TMS320F2810简介
  系统结网络构如图1所示。该系统主要由上位计算机及监控软件、基于PCI总线的CAN智能网络通信适配器及与其相配套的设备驱动程序(WDM)、现场控制节点单元和基于CAN现场总线其他功能模块组成。

   
  图1系统网络结构图
  TMS320F2810是TI公司的高集成高性能DSP,采用高性能静态CMOS技术,工作频率150MHz,低功耗和3.3V闪存编程电压,支持边界JTAG扫描,高性能32位CPU能进行16x16和32x32 MAC运算,16x16双MAC。片内存储器有多达128Kx16闪存,128Kx16 ROM,1Kx16 OTP ROM,L0和L1为2个4Kx16区块,每个为单存取RAM(SARAM),H0为8x16 SARAM区块,M0和M1为1Kx16 2个区块,每个是SARAM,引导ROM为4Kx16外接接口能连接高达1M总存储器和可编等待状态,有看门狗计时器模块,三个外接中断和三个32位CPU计时器, 最高采样率为12.5MSPS,自动排序器可以提供高达16路的通道自动切换,也可以分成两个独立的8通道自动切换。F2810最多可提供16路PWM波形输出,支持SCI、SPI、MCBSP、eCAN 等多种通信方式。多达56个单独编程的复接GPIO输出引脚,有先进的仿真和调试特性,工作温度从-40℃到85℃和从-40℃到125℃, F2810可用于要求严格的控制系统中[1][4]。
  2.系统控制节点硬件组成
  系统的控制节点硬件结构如图2所示,可以同时测试四个电机。硬件部分主要包括:电机的电流和输出脉冲(OP)信号采集和信号调理电路、PWM输出电路、复位上电电路、组合逻辑电路CPLD,CAN通信和键盘显示接口等部分。其中DSP采用的是TI公司的高集成高性能DSP芯片TMS320F2810。CAN通信部分采用了PHILIPHIS公司的集成CAN控制芯片SJA1000(CAN总线控制器)和PCA82C250(CAN总线收发器),系统中设置CAN总线的最大传输量为500Kb/s,且晶振频率定为16MHZ,CAN总线系统任意两个节点之间的最大距离为130M,此时总线定时BTR0值为00H,BTR1值定为1CH。当IMP708复位上电时, F2810控制器通过通用I/O(GPIO)口给电机加电,同时通过F2810片内的PWM模块输出占空比可调的矩形波信号控制电机的转速。电机的电流信号和输出脉冲信号经过信号调理芯片MAX472进入到F2810的片内A/D转换器,转换成数字信号供DSP处理。DSP计算出来的电流和转速值显示在液晶显示器上,同时通过CAN总线传送到上位PC机。各个节点通过键盘可以输入测试参数,包括PWM信号的占空比、转速和电流的上下限参数等,也可以通过CAN总线由上位PC机设置。

   
  图2 测试节点硬件结构图
  2.1 电机电流和输出脉冲信号的采集调理电路
  由于所检测的电机的电流会因型号不同而差别很大,范围在几十毫安到二、三安培。本系统中,采用了美国MAXIM公司的双向精密电流传感放大器MAX471[2]。MAX471内置35mΩ的精密传感电阻,可测量的电流范围是±3A,在工作温度范围内,其精度为2%,其响应时间、速度和漂移等指标均很理想,可以适应3A以内的各种规格直流电机的电流测量。电流信号通过RS+和RS-输入到MAX471的采样电阻RSENSE上,MAX471通过一个2kΩ的输出电阻将电流转换成0~3V的电压信号,直接送到DSP的A/D转换器中。 输出脉冲信号是从电机的I/O端直接输出的一串方波信号,其频率和电机的转速成正比,用于检测电机的转速。输出脉冲信号是电压信号,经电阻分压转换到0~3V内,然后经过一个电压跟随器传送到F2810的A/D输入端。
  2.2 PWM输出信号驱动电路
  F2810片内的事件管理器模块可以提供多达16路的PWM输出信号,最小的死区时间宽度是一个CPU时钟周期,最小的PWM脉冲宽度和脉宽的增减量为一个CPU时钟周期,可以很方便地用来控制直流电机[5]。由于电机要求的PWM控制信号的幅值是5~10V,因此从DSP输出的PWM信号还需经过一个高速开关管反向器升压后送至电机的PWM控制端。
  2.3 复位电路
  系统的复位电路采用IMP708芯片,该芯片有上电复位、看门狗和电源监控功能。在系统的程序由于外部干扰导致“跑飞”时,IMP708的看门狗在一可选择的时间间隔内产生复位信号热启动系统。IMP708具有电源监控功能,通过IMP708和DS1556的双重监控能够保证使系统可靠运行。
  2.4 键盘和液晶显示电路(LCD)
  键盘采用标准的PS/2口的小数字键盘,用来输入设置参数。键盘和DSP之间采用复杂可编程逻辑器件(CPLD)作译码电路,将键盘的扫描码映射到DSP的I/O扩展地址0x8001。当有键按下时,CPLD发送一个中断信号到DSP,然后DSP从I/O扩展地址0x8001读取扫描码。液晶显示模块(LCD)和DSP之间通过CPLD译码,将命令控制I/O映射到地址0x8001,将数据控制I/O地址映射到0x8003和0x8004[6]。因为LCD是5V器件,所以其8位数据线不能和3.3V的DSP直接相连,需要在数据线上加电平隔离和转换芯片74LS245。
  3.CAN通信协议设计
  CAN遵从OSI层模型,按照OSI标准模型,CAN结构划分为两层:数据链路层和物理层,它们由CAN控制器的硬件实现电平变换和帧的封装。CAN网络中包括4种不同类型的帧。其中,数据帧将数据由发送器传至接收器;远程帧由节点发送以请求具有相同ID标志符的数据帧;出错帧可由任何节点发送,以控制总线错误;而超载帧用于提供先前和后续数据帧或远程帧之间的附加延时。另外,数据帧和远程帧以帧空间同先前帧隔开。在实际应用中,还需要建立自己的上层协议。在本系统设计中,采用简单实用的“命令项加数据项”结构[3],其完整数据帧结构如图5所示。考虑到工在业控制中,功能一般不多,因此命令项的长度设定为1B(可描述128种命令)。而在本控制系统中,命令所需参数一般不会大于7B,故数据项长度直接设为7B。

   
  图3 数据帧结构
  4.软件设计
  系统的CAN应用节点部分采用的是BasicCAN程序,它包含初始化子程序、发送子程序、接收子程序三个部分。DSP软件编写采用的是TI公司的DSP集成开发环境CCS2000,它支持汇编语言和C语言编程。为了保证程序运行效率,核心算法FFT程序和中断向量表程序采用汇编语言编写,而其它程序都采用C语言编写,使本系统软件具有模块化、结构化、可移植性好和调试方便的特点。系统的软件执行过程是:首先是系统初始化工作,即设置寄存器、配置GPIO、定时器、A/D转换器和外部中断、启动A/D转换。然后检测GPIO有没有启动信号,检测到启动信号后,从另一个GPIO发出控制信号给直流电机加电。从A/D转换器里读取电流信号数据,再通过求平均值得到电机的电流值;对输出脉冲信号的数据进行FFT变换,求出基波的频率,再根据电机的具体型号乘以一个系数得到电机的转速。最后把测试电流和转速送给LCD显示,启动CAN总线传输,把测试结果传输到上位PC机,以对数据进行保存和分析。软件流程如图4所示。

   
  图4 软件流程图
  5.结束语
  本系统采用了以CAN总线构建了自动化小型直流电机测试系统,设计中以DSP芯片F2810为核心的自动测试单元能利用DSP的多路模拟量输入通道和多路PWM输出通道以及高速计算能力,同时实现对多个电机的准确、高效率的测试。该系统在测试速度、性价比和可维护性等方面均有明显的优势。

品牌价值、美誉度稳居行业第一
公司规模、技术实力稳居行业第一
行业顶尖工程师稳居行业第一
项目交接率、交接数量稳居行业第一

个人与10万元以下项目客户
中小型企业客户
政府/医疗/军事机构/科研机构
大中型企业/集团公司/上市公司
VIP客户/欧美客户/定制型客户