双DSP电机控制数字平台设计
电路结构,它允许双CPU通过端口直接进行通信。CY7C025最高位的存储单元1FFF作为右边端口的中断信箱,次高位存储单元1FFE作为左边端口的中断信箱。各CPU可以读取双方的中断信箱,但只能写对方的中断信箱。当一端写入对方的中断信箱时,对方就会产生一个中断信号;读自己的中断信箱则清除自己的中断信号,读对方的中断信箱不会清除中断信号。
旗语通信逻辑可以使双口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单片机,则不能采用此种方法。
——中断方案需要硬件和软件的同时支持。将双口RAM的左右中断信号输出引脚和CPU的外部中断输入引脚相连,并编写相应的中断子程序。
——旗语方案同样需要硬件和软件的同时支持,我们也称之为软件仲裁。其步骤为申请独占区域、判断申请是否成功、释放独占区域。由于两边不同时使用同一地址,所以也可以避免争用的发生。
本系统设计时综合了各种情况最后选用了硬件方案。这是因为使用中断方案软件编写复杂,频繁中断跳转在算法和控制都较复杂的情况下,对于软件的可靠性和稳定性是不利的;采用旗语方案则控制相对复杂一些;硬件方案具有简单可靠的特点,存储空间的争用完全由硬件解决,即当发生存储空间争用的时候,决定先行稳定的端口优先进行访问,另一端口则插入等待周期。由于DSP的快速性,不同于以往的单片机将产生很长的等待周期。针对本系统考虑,即使是最坏的情况:每个控制周期内传递数据8个,LF2407A一次读/写周期50ns记,共需要0.4μs。当然这完全由硬件来实现,若考虑软件上共同配合,则可以更有效地减少等待时间。而且0.4μs和20μs的控制周期相比,所占的比重非常小,并不会给系统性能带来显著影响,系统可靠性和稳定性也能够得到保证。这也正是本系统的特点所在。
3TMS320C2407A/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左右。如果辅以软件配合,则可以有效地减少等待产生的情况。
首先,冲突可能发生在同时写同一个存储单元。在数据写的时候采用如下措施可以避免这种情况的发生:如图4所示,将读/写的存储空间独立开来,显然LF2407A和VC33在写的时候就不可能产生冲突,避免了等待的发生。
其次,冲突可能发生在一读一写同一存储单元的情况下。以LF2407A写数据,VC33读数据为例,上面分析的产生0.4μs等待时间的情况是基于如下假设:将8个数据依顺序存储于同一地址单元。即LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,此后LF2407A将第二个数据覆盖前一个数据存储,依次类推得出的结果就是8×50ns=400ns。
事实是我们有足够的地址空间用来存储每批 《双DSP电机控制数字平台设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/173499.html
旗语通信逻辑可以使双口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单片机,则不能采用此种方法。
——中断方案需要硬件和软件的同时支持。将双口RAM的左右中断信号输出引脚和CPU的外部中断输入引脚相连,并编写相应的中断子程序。
——旗语方案同样需要硬件和软件的同时支持,我们也称之为软件仲裁。其步骤为申请独占区域、判断申请是否成功、释放独占区域。由于两边不同时使用同一地址,所以也可以避免争用的发生。
本系统设计时综合了各种情况最后选用了硬件方案。这是因为使用中断方案软件编写复杂,频繁中断跳转在算法和控制都较复杂的情况下,对于软件的可靠性和稳定性是不利的;采用旗语方案则控制相对复杂一些;硬件方案具有简单可靠的特点,存储空间的争用完全由硬件解决,即当发生存储空间争用的时候,决定先行稳定的端口优先进行访问,另一端口则插入等待周期。由于DSP的快速性,不同于以往的单片机将产生很长的等待周期。针对本系统考虑,即使是最坏的情况:每个控制周期内传递数据8个,LF2407A一次读/写周期50ns记,共需要0.4μs。当然这完全由硬件来实现,若考虑软件上共同配合,则可以更有效地减少等待时间。而且0.4μs和20μs的控制周期相比,所占的比重非常小,并不会给系统性能带来显著影响,系统可靠性和稳定性也能够得到保证。这也正是本系统的特点所在。
3TMS320C2407A/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左右。如果辅以软件配合,则可以有效地减少等待产生的情况。
首先,冲突可能发生在同时写同一个存储单元。在数据写的时候采用如下措施可以避免这种情况的发生:如图4所示,将读/写的存储空间独立开来,显然LF2407A和VC33在写的时候就不可能产生冲突,避免了等待的发生。
其次,冲突可能发生在一读一写同一存储单元的情况下。以LF2407A写数据,VC33读数据为例,上面分析的产生0.4μs等待时间的情况是基于如下假设:将8个数据依顺序存储于同一地址单元。即LF2407A存第一个数据时发生冲突,VC33产生等待时间50ns,等待结束VC33读数据,此后LF2407A将第二个数据覆盖前一个数据存储,依次类推得出的结果就是8×50ns=400ns。
事实是我们有足够的地址空间用来存储每批 《双DSP电机控制数字平台设计(第2页)》