产品展示

PRODUCTS

+
  • 图片1(1779937165001).png

免代码开发例程!基于XCP通信机制的SIMULINK环境下YXDSP电机控制免代码实时调测——让研发效率翻倍!

关键词:

所属分类:

嵌入式开发套件

产品展示

DSP实验箱


联系我们

产品描述

一、总体方案
想不想用SIMULINK直接生成DSP的电机控制程序?
想不想程序直接在SIMULINK环境下进行调试?
想不想用开发板来实现目前市面高端RCP的类似功能?
XCP通信机制提供了这样一种可能。
        下边方案为南京研旭通过PC端SIMULINK  Embedded Coder来生成YXDSP(研旭电机控制器实验箱或者研旭开发板)的电机控制端程序,其内嵌XCP协议栈的代码。该程序用YXDSP-XDS100V3隔离版仿真器在SIMULINK环境下一键下载,Simulink 作为 XCP主机,通过集成的外部模式 (External Mode) 功能发起通信与控制。XCP协议数据链路层选用 SCI 串口进行通信,通信波特率设为230400 bps。该协议物理接口通过USB线连接PC和实验箱,实现了简单可靠的嵌入式实时调试。具体实现机制如图1所示。

图1 基于XCP通信机制的YXDSP电机控制免代码实时调测方案图

        本方案实施中,首先进行SIMULINK电机控制离线仿真,然后将算法部分剥离,对应上相应的开发板外设接口,通过Embedded Coder生成的、内嵌XCP协议栈的代码,生成的DSP程序通过YXDSP-XDS100V3隔离版仿真器(研旭这款仿真器性价比极高)下载到研旭小功率电机带载控制实验箱(研旭可以提供小功率到大功率各类开放式稳定可靠的功率硬件评估系统,研旭200瓦小功率带载控制实验箱爆款低价,限时优惠,仅3000)进行调试,参数实时,相关数据回环控制通过XCP机制再返回SIMULINK,整个电机控制过程可以实现DSP实时免代码开发,研旭相关产品提供例程参考,详情可询研旭销售。

 

二、XCP 通信协议概述
       XCP(Universal Measurement and Calibration Protocol)意为通用测量与标定协议,它是一种应用层协议,决定了主从机之间的消息格式,建立于数据链路层之上,用于实现实时变量观测(Measurement)和在线参数修改(Calibration)功能。XCP通信支持多种传输模式,如CAN、Ethernet、USB、SCI等,常用于连接主机开发环境与嵌入式目标系统。
      XCP的通信模式有两种,分别是CTO(命令传输)和DTO(数据传输)。
      在CTO模式下,XCP Message的属性有CMD(命令)、RES(应答)、ERR(错误应答)、EV(从机向主机主动发送的事件)、SERV(请求主机执行服务)。其中,SERV (服务请求) 是由从机主动发起,用以请求主机执行特定服务(如请求下载数据块、通知主机自身状态等)的消息类型。
       在DTO模式下,数据由XCP从机的硬件自动上传,XCP Message包含两类:其一为DAQ (同步数据获取),用于将从机选定变量的值上传至主机;其二为STIM (同步数据激励),允许主机同步修改从机端变量,实现数据激励。


三、XCP与RCP比较
          在基于MBD的单电机 FOC 控制开发中,我们一般会使用 Simulink 搭建运动控制模型,再通过 Embedded Coder 生成代码并部署到单片机上。通用调试流程如下:研究人员在Simulink 中修改模型,点击Code Generation自动生成工程文件后,使用 CCS 编译、烧录、上电。每当需要观测变量时,就需要在程序中打断点、添加到 Watch Expression 窗口,或导出为数据表用绘图软件绘图。一次完整的“修改模型→生成代码→编译烧录→调试验证”循环效率较低。
         Simulink + XCP 方案通过 SCI 通信实现程序运行期间的实时变量读取、在线参数修改和多通道波形观测,可帮助研究人员缩短调试流程、节约开发时间。其缺点也是明显的,对于个人开发者而言,从底层搭建该通信方式学习成本高,而通过SIMULINK的External Mode集成XCP时,对连接线有一定的限制要求,不灵活。
        RCP(Rapid Control Prototyping,快速控制原型)则是另一种常用开发模式。它强调通过实时仿真器(如研旭YXSPACE-SP1000\SP2000\SP6000\SP8000控制器)构建控制原型,可以充分利用丰富的外设资源,并且控制器模型直接在高性能实时硬件上运行。研旭的研旭伏羲电控软件提供简单易用的人机接口与丰富的模板例程,用户可以更方便地评估电机。
       对于成本敏感的中小功率电机控制项目或者部分控制单板,Simulink + XCP 方案性价比极高。 


四、实验准备
1、MATLAB 版本 2024B
2、MATLAB工具包C2000 Microcontroller Blockset
3、研旭小功率电机带载控制实验箱
4、PMSM电机模型搭建


五、调试流程
5.1 搭建FOC控制模型
       首先配置三相电流采样、调零和转化触发信号,设置如下图所示:

图2 采样模块设置


图3 调零转化设置

图4采样通道选择
      

    接着配置eQEP模块测量电机角度,本实例中使用2500线编码器,选择四倍频采样。

图5 电机角度计算

图6 eQEP模块设置


    最后配置PWM闭环计算和输出使能,并通过开环运行寻找零位(略)。

图7 FOC主程序


图8 PWM使能逻辑

     配置Epwm1为10KHz,同时作为AD转化触发信号。Epwm2/3类似配置,不再附图。配置PWM使能端口GPIO59为输出模式,高电平有效。

图9

图10

图11

图12 PWM使能输出设置

 

5.2 Simulink模型设置
        Simulink中打开模型设置,进行下图设置,启用外部模式 + XCP通信工作。注意此处用的SCI模块需要和原理图对应,实验箱上使用的是SCI_C通道作为串口输出。

图13 SIMULINK + XCP设置

5.3 绘制Dashboard
       首先拖动下图红框模块,绘制自制的Dashboard。

图14 Dashboard库图

       我这里绘制的如下图所示,包含电机启停设置、速度文本设置、速度滑块设置、保护灯显示和速度显示。并将其放在Panel中,优点是可以双击缩小,浮动显示,只在需要时打开。


图15 Dashboard示意图


     接着双击这些图标,逐个链接到模型中的对应模块,这里以Dashboard中的速度设定滑块链接到速度设定Constant模块为例,设置图如下。


图16 Dashboard模块链接数据设置图


    最后将上一步链接的变量添加到sldd字典,设置为exported global格式,这样就可以在上位机中实时修改了。


5.4 调试结果
       连接开发板,上电,在Simulink - Hardware选项卡中,点击监控并调节。

图17 SIMULINK外部模式运行

       之后就可以在Dashboard上操作并观察现象,电机启动后PWM使能灯亮,拖动滑块调整电机转速,电机停止后PWM使能灯灭。


图18 调试结果图


5.5 XCP的DTO传输速率介绍

图19 开环计步信号


       最后,我们观察一下XCP的DTO数据包在SIMULINK中的数据传输率。上图为电机开环控制中使用的步数参考信号,该信号按照10KHz的频率累加,并被我们通过XCP传到了PC端。从图片下方红框中,能看到SIMULINK实时时间,作为一个离散信号,两次传输的间隔是0.0021s。那么这个时间间隔是受到我们设置的串口通信波特率决定的,比如例程中设置的波特率为230400 bps,研旭小功率电机带载控制实验箱上用的串口通信芯片CH340理论上可以支持更高的速率,如果认为该速率不够满足数据观察,可以相应的在模型设置中修改SCI通信速率,实现更高的数据分辨率。比如将SCI_C的传输速率调成 921600 bps,开环计步信号发送的时间间隔就会变为0.0005s。
时间间隔也会受到XCP数据打包模式的包大小限制(本例程中设置为默认的8),但是本例程中查看数据数量较少,因此影响不大。

 

六、总结
      XCP机制结合SIMULINK 代码生成可以实现DSP平台 0代码编写、实时调控机制。与RCP比较起来,XCP虽然编程,人机接口方面没有那么方便,数据刷新率也没有RCP快,但是性价比极高。研旭的DSP实验箱将提供相关例程,敬请咨询或者关注。