用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

双DSP电机控制数字平台设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:24:57
旗语通信逻辑可以使双口RAM暂时指定一块存储区,只供一端的CPU使用,称之为独占模式。CY7C025配置了独立于RAM阵列的8个旗语锁存器,用于标志双口RAM是否处于独占模式。独占模式也可以用来避免地址仲裁问题,因为,它是一种使两边不同时使用同一地址的方法,通常也叫做软件仲裁。

控制平台结构框图如图2所示。

电机由IPM来驱动,霍尔元件检测相关物理量,通过信号调理电路给A/D转换器,转换结果由LF2407A存储于双口RAM中,并由VC33读取用于计算。调理的同时保护电路也进行相应的检测,在意外状况发生时随时切断触发信号。VC33将获取的数据进行分析和计算,所有的数据处理都由VC33完成,只将计算结果反馈给LF2407A,并由此产生相应的控制信号,通过接口电路来控制IPM工作。同时预留了D/A及串口输出等相关外围电路,用于实现显示、检测、与其它系统通信等各项功能。LF2407A和VC33优势互补,并行工作,控制周期的长短主要取决于算法实现时间。原有的控制软件(以C32为控制平台)需要100μs左右,在采用了新的控制平台后,整个控制周期减小到20μs左右。

2 双端口RAM存储争用解决方案

在双机的数据交流过程中,存在存储空间争用问题,常见的解决方案有如下几种。

——硬件方案最简单的方法就是上面提到的使用双口RAM内部的仲裁逻辑,要求两边的CPU都具有RDY引脚,从而插入相应的等待周期。对于8098单片机,DSP都具有这样的资源,而且只需要硬件支持,相对简单。如果不具备RDY引脚,如8031单片机,则不能采用此种方法。javascript:window.open(this.src);" style="cursor:pointer;"/>

——中断方案需要硬件和软件的同时支持。将双口RAM的左右中断信号输出引脚和CPU的外部中断输入引脚相连,并编写相应的中断子程序。

——旗语方案同样需要硬件和软件的同时支持,我们也称之为软件仲裁。其步骤为申请独占区域、判断申请是否成功、释放独占区域。由于两边不同时使用同一地址,所以也可以避免争用的发生。

本系统设计时综合了各种情况最后选用了硬件方案。这是因为使用中断方案软件编写复杂,频繁中断跳转在算法和控制都较复杂的情况下,对于软件的可靠性和稳定性是不利的;采用旗语方案则控制相对复杂一些;硬件方案具有简单可靠的特点,存储空间的争用完全由硬件解决,即当发生存储空间争用的时候,决定先行稳定的端口优先进行访问,另一端口则插入等待周期。由于DSP的快速性,不同于以往的单片机将产生很长的等待周期。针对本系统考虑,即使是最坏的情况:每个控制周期内传递数据8个,LF2407A一次读/写周期50ns记,共需要0.4μs。当然这完全由硬件来实现,若考虑软件上共同配合,则可以更有效地减少等待时间。而且0.4μs和20μs的控制周期相比,所占的比重非常小,并不会给系统性能带来显著影响,系统可靠性和稳定性也能够得到保证。这也正是本系统的特点所在。

3 TMS320C2407A/TMS320VC33与

CY7C025之间通信的实现

LF2407A的数据总线宽度和地址总线宽度都是16位,单片CY7C025就足够了。VC33的数据总线宽度是32位,可以采用两片CY7C025以主从模式进行宽度扩展(见图3),这样每次VC33读取数据时就能一次读入两个LF2407A的采样数据。也可以采用单片CY7C025,虽然没有完全利用VC33的数据宽度,但是,从电路设计上来讲相对简洁。由于本系统双口RAM的作用主要是起到数据传递的作用,不需要保存大量的中间结果以及已经使用过的数据,因此,需要的存储空间不是很大,单片双口RAM就已经足够。具体的接口电路见图3,片选等控制信号由译码电路产生。

地址空间分配综合了不同DSP的空间资源分配要求,具体见表1。

表1 地址空间分配表

 

起始地址

终止地址

LF2407A

0X8000H

0X9FFFH

VC33

010000H

011FFFH

4 软件功能实现

双DSP协同工作的关键是相互通信和数据交流上的密切配合,可通过硬件仲裁电路来完成这一任务。但是如果仅仅用硬件完成,如上分析,毕竟等待时间还要0.4μs左右。如果辅以软件配合,则可以有效地减少等待产生的情况。javascript:window.open(this.src);" style="cursor:pointer;"/>

首先,冲突可能发生在同时写同一个存储单元。在数据写的时候采用如下措施可以避免这种情况的发生:如图4所示,将读/写的存储空间独立开来,显然LF2407A和VC33在写的时候就不可能产生冲突,避免了等待的发生。

其次,冲突可能发生在一读一写同一存储单元的情况下。以LF2407A写数据,VC33读数据为例,上面分析的产生0.4μs等待时间的情况是基于如下假设:将8个数据依顺序存储于同一地址单元。即LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,此后LF2407A将第二个数据覆盖前一个数据存储,依次类推得出的结果就是8×50ns=400ns。

事实是我们有足够的地址空间用来存储每批数据,将8个数据按顺序存放在不同的地址空间,此时的情况如下:LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,与此同时LF2407A也开始写第二个数据于下一个存储单元中。两者同时进行,我们只要保证VC33读完的时候,LF2407A第二个数据已经写完,则不会有冲突发生。针对本例,由于两者时间不同(LF2407A为50ns,VC33为13.3ns),VC33读得较快,只要在软件编写上增加40ns左右的循环,就能保证如上的要求。当读/写反过来的时候,则不存在这样的情况而能顺利配合。这样,最终的结果是只增加50ns的等待周期,对于本系统完全可以接受。

由于两个DSP并不同步工作,所以,LF2407A可以采样尽可能多的数据并保存,VC33只选用最新的数据用于计算,这样就能保证数据的冗余。程序流程如图5所示。

5 结语

双DSP控制系统综合利用了TMS320LF2407A和TMS320VC33芯片的优势和特长,两者在控制和计算上分工明确,并行工作。利用双口RAM实现数据和信息的交流的时候,针对电机控制系统采样数据相对较少的特点,从硬件和软件上相互配合,在解决存储空间争用的同时,很好地解决了等待时间等资源的浪费,也避免了数据交换时利用中断造成的软件不稳定。实现了两者之间的协调工作,大大缩短了控制周期,提高了控制平台的性能。对于低电感同步电机直接转矩控制时,由于控制周期过长而引起电流上升过大的问题能很好地加以解决,同时也使转矩脉动明显减小。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:17,156.25000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号