新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 电机控制的数字平台设计

电机控制的数字平台设计

作者:时间:2012-10-30来源:网络收藏

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

本系统设计时综合了各种情况最后选用了硬件方案。这是因为使用中断方案软件编写复杂,频繁中断跳转在算法和控制都较复杂的情况下,对于软件的可靠性和稳定性是不利的;采用旗语方案则控制相对复杂一些;硬件方案具有简单可靠的特点,存储空间的争用完全由硬件解决,即当发生存储空间争用的时候,决定先行稳定的端口优先进行访问,另一端口则插入等待周期。由于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,片选等控制信号由译码电路产生。

图3 接口电路实现

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

表1 地址空间分配表   起始地址 终止地址

LF2407A 0X8000H 0X9FFFH

VC33 010000H 011FFFH

4 软件功能实现

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

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

图4 读/写存储空间分开

其次,冲突可能发生在一读一写同一存储单元的情况下。以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所示。

(a)LF2407A流程图



评论


相关推荐

技术专区

关闭