您好,欢迎来到爱学范文!

当前位置:爱学范文网>>实用资料>>双口RAM实现DSP与单片机高速数据通信的方法

双口RAM实现DSP与单片机高速数据通信的方法

标签:时间:

关键词:DSP;双口RAM;接口电路;数据通信

直流无刷电机实际属于永磁同步电机,一般转子为永磁材料,随定子磁场同步转动。这种电机结构简单,而且由于移去了物理电刷,使得电磁性能可靠,维护简单,从而被广泛应用于办公自动化、家电等领域。直流无刷电机运行过程要进行两种控制,一种是转速控制,也即控制提供给定子线圈的电流;另一种是换相控制,在转子到达指定位置改变定子导通相,实现定子磁场改变,这种控制实际上实现了物理电刷的机制。因此这种电机需要有位置反馈机制,比如霍尔元件、光电码盘,或者利用梯形反电动势特点进行反电动势过零检测等。利用光电编码器的系统在软件实现上更方便。电机速度控制也是根据位置反馈信号,计算出转子速度,再利用PI或PID等控制方法,实时调整PWM占空比等来实现定子电流调节。因此,控制芯片要进行较多的计算过程。当然也有专门的直流无刷电机控制芯片;但一般来说,在大多数应用中,除了电机控制,总还需要做一些其他的控制和通信等事情,所以,选用带PWM,同时又有较强数学运算功能的芯片也是一种很好的选择。Motorola的数字信号处理器DSP568xx系列整合了通用数字信号处理器快速运算功能和单片机外围丰富的特点,使得该系列特别适合于那些要求有较强的数据处理能力,同时又要有较多控制功能的应用中,对直流无刷电机的控制就是这一系列DSP的典型应用之一。

直流无刷电机结构和连接

三相直流无刷电机采用二二导通、三相六状态PWM调制方式。电机定子绕组轴向示意图如图1所示。

当电流从A到B时,定子绕组产生的磁场为图1中A-B方向,如果电机顺时针运行,此时,永磁转子磁场应位于III区,产生的扭矩最大。当转子转过III区和IV区的交界,到达IV区时,定子绕组电流应相应改变成为从A到C,即产生的磁场成为图1中A-C方向。

这样,定子磁场总超前转子磁场约90°,使转子不断的向前跟进。实现这个过程的关键是取得转子位置,积分编码器就起这个作用,如它的三路输出:PHASEA、PHASEB、PHASEC,在转子分别位于图1中的I到VI各区时,输出信号相应为:011、001、101、100、110、010。这样,通过捕捉积分编码器任一路输出上的跳变沿,读取跳变沿后的积分编码器输出状态,就可以确定转子的新位置,实现定子绕组电流换向。同时,利用定时器检测两次换向之间的时间间隔,计算出电机运行的速度,再通过调整PWM信号的占空比,调整定子电流,实现调速。

DSP568xx中使用到的主要模块

在Motorola的DSP568xx系列数字信号处理器的软件开发包中,给出了一个利用上述思路对直流无刷电机控制的应用程序:bldc_sensors。主要用到了DSP的脉宽调制PWM模块、定时器模块、相位检测器DECODER模块。

PWM模块共有六路输出,分别用来控制三相的顶底共六个功率管。

模块可以被配置成互补通道模式,即PWM0与PWM1为一对互

补对,共三对互补对,如图2所示。互补对内的两个信号可以在芯片内部被互相交换,如图2中C相所示;也可以同时被屏蔽,使得输出全为0,该相就关断,如图2中A相所示。

定时器模块是最普通的外设,在这个应用中,使用了5个定时器模块,它们分别是A0、A1、A2、A3和D0。前3个分别接积分编码器的一路输出,利用它们的输入捕捉功能,产生中断,在中断子程序内检测新的积分编码器输出状态,实现换相。A3接的也是积分编码器的一路输出,它用来测量某路霍尔信号两个跳变沿间的时间间隔,计算转子速度。D0用来产生20ms间隔的节拍,周期性的对系统状态进行转换和检测。

相位检测器DECODER模块对于电机控制非常有用,它不仅能用于本文所说的六状态积分编码器,还能用于转子每转一圈产生相当多数目脉冲的积分编码器。该模块框图如图3所示。

但在本应用中,只用到了它的干扰信号滤波器,即使用了积分编码器的三路输出经过滤波后的值。六状态积分编码器的三个输出PHASEA、PHASEB、PHASEC分别接到相位检测器的PHASEA、PHASEB、INDEX三个输入端上。

 控制算法

对于无刷直流电机的控制,软件上的内容是主体。

程序是一种前后台结构,前台是一个死循环,死循环内作两个工作,一个是程序状态转换ApplicationStateMachine(),另一个是20ms时钟节拍触发的LED控制、直流电压数字值读取和速度控制等服务性工作ServiceLedISR()。程序中有一个全局变量ApplicationMode,取值可以是Init、Stopped、Running和Fault,用来指示系统的状态。main()函数一开始在初始化函数Initialize()中先把系统状态设置为Init,然后在程序状态机ApplicationStateMachine()里实现如图4所示的转换。

状态之间转换的各种条件均标在图4的各个箭头上。硬件上的其他事件:定时器A0、A1、A2的输入捕捉,A3的输入捕捉和溢出,D0的输出比较以及加减速按键都是通过中断的方式打入。所以整个软件的结构如图5所示。

系统一加电,程序进入初始化函数Initialize(),在这个函数中,做了以下工作:

◆启动直流电压ADC;

◆初始化Led,开始20ms的周期时钟中断D0;

◆开关状态初始化;

◆PWM参数初始化;

◆捕捉积分编码器跳变沿的定时器A0、A1、A2初始化;

◆相位检测器初始化;

◆ApplicationMode=Init;

◆取得转子位置,设好初始的导通相;

◆PI控制器初始化;

◆用于测量转速的定时器A3的初始化。

从Initialize()返回后,立刻进入前台死循环。

在转子运行过程中,定时器A0、A1、A2输入捕捉的发生,标志着转子运行到了一个需要换相的位置。输入捕捉事件触发中断ISRQTimer(),在这个中断服务程序中,完成以下的工作:

◆从相位检测器取得当前积分编码器的三路输出状态;

◆根据当前积分编码器输出状态,判断转子运转方向;

◆并调整PWM模块的交换和屏蔽,即定子电流换相。

所以说,定子电流的换相,是在紧随着积分编码器输出跳变沿的中断服务子程序中完成的。在判断转子运转方向的时候,使用了一个常数组:DIRECTION_TABLE={0,5,3,1,6,4,2,0}。这个数组元素的下标和元素的值对应转子在顺时针运转情况下,当前编码器状态和下一个编码器状态(见图1)。比如,当前编码器输出011,转子磁场位于I区,那么顺时针运转时,下一个编码器状态应为001,这正好对应于上述数组中,下标为011的元素值为001。这样,通过比较以编码器上一个状态作为下标的数组元素值与当前状态是否相同,就可以判断转子运转方向。在实现定子电流换相时,也以当前状态为下标,从专门数组中取得PWM模块通道交换与屏蔽所需的参数。在本应用中,将三对PWM互补通道对的参数设成一致,通过屏蔽某一相,交换另外一相,实现定子绕组电流状态的控制,如在图2中,A相被屏蔽,B相顶功率管开关占空比为70%,而将C相两个PWM通道交换,C相的底功率管开关占空比就由原来的30%成为70%,从而使电流由B相流入定子绕组而从C相流出,确定定子绕组B-C的电流状态。

积分编码器的某一路输出,比如PHASEC的跳变,还触发了定时器A3的输入捕捉中断。在输入捕捉中断中,取得各个跳变沿之间的时间间隔,用来计算转子速度。定时器A3的溢出中断,也是为取得各个跳变沿之间的时间间隔服务。

在Initialize()函数中调用的LedInit()函数内部已经将定时器D0进行了初始化,所以从那时开始,定时器D0开始运行,每20ms产生一个中断,触发中断服务子程序LedISR()的运行。在LedISR()中,只是设了一个标志位bLedISROccurred为真。但这会使得死循环内ServiceLedISR()函数的具体内容被执行,而不是直接返回。ServiceLedISR()函数的具体代码完成以下工作:

◆Led闪烁周期计算和控制;

◆UpButton、DownButton按键延时控制;

◆从ADC读取直流电压值并重启ADC;

◆取得一路积分编码器的跳变沿间隔并计算速度,进行速度控制。

所以,转子运转的速度控制是在几乎每20ms周期的ServiceLedISR()内完成。

加减速按键也触发中断,在中断服务子程序内,调用相应函数,实现系统设定速度的改变。

 结束语

Motorola的数字信号处理器DSP568xx系列凭借着较强的数据处理能力和强大丰富的外围,尤其是相位检测器、脉宽调制等模块,非常适用于直流无刷电机控制这样的实时应用中。前后台方式的控制算法,反应速度快,代码量少,在直流无刷电机等控制过程不很复杂,但对于实时性要求较高的场合,有比较好的特性。

推荐阅读:

    想了解更多实用资料的资讯,请访问:实用资料
    下载文档

    看过《双口RAM实现DSP与单片机高速数据通信的方法》的人还看了以下文章

    延伸阅读

    暑假里,我在家看了一本杨红樱老师写的《偷梦的影子》,这是一本讲述杜歌飞和小人精的故事的书。   书中的杜歌飞表面上看是一个似乎很迷糊的小男孩,但实际上他是迷糊中透露着聪明与善良,而且喜欢不断发现

    山西机场员工入职军训心得体会当我们经过反思,有了新的启发时,不如来好好地做个总结,写一篇心得体会,这样就可以总结出具体的经验和想法。那么心得体会怎么写才恰当呢?下面是小编为大家整理的山西机场员工入职军

    近年来,随着房地产市场的快速发展,房产经济已经成为我国国民经济结构的重要组成部分,与居民居住条件的改善以及城市经济的稳定发展息息相关。下面是爱学范文网小编为大家整理的房地产经济论文,供大家参考。

    人生因有梦想而精彩,因实现梦想而伟大。以下是本站为大家整理的关于新时代好少年演讲稿12篇范文,一起开看看吧!新时代好少年演讲稿篇1  敬爱的老师们、亲爱的同学们:大家好!今天,我演讲的题目是《争做时代

    教师英语求职信(通用15篇)时间流逝得如此之快,找工作对于我们说已越来越近,这时候需要开始写求职信了哦。你知道求职信要如何写吗?下面是小编为大家整理的教师英语求职信,希望能够帮助到大家。教师英语求职信1G

    【推荐】护士年终个人工作总结范文5篇总结是在某一时期、某一项目或某些工作告一段落或者全部完成后进行回顾检查、分析评价,从而得出教训和一些规律性认识的一种书面材料,它可以使我们更有效率,因此我们需要回头

    电子工程师个人工作总结范文(28篇)电子工程师个人工作总结范文篇1自20xx年参加工作,到现在已经有四年半了,在过去的日子里,本人主要负责核心技术领域,信息中心机房扩展设计与建设维护,报业信息系统

    编辑计划(精选6篇)编辑计划篇11.配合市场拍摄各种活动(包括看房团)达近百场2.拍摄孝感各地区的沙盘讲解近30个3.策划了视频版《楚楚淘房》,写稿并拍摄了孝感、汉川共计五期,与此同时,《小编探店》也

    学校工作总结怎么写7篇我们要做好回顾,写好总结,它可以明确下一步的工作方向,时间飞快,一段时间的工作已经结束了,下面是小编为大家精心整理的学校工作总结怎么写,希望对大家有所帮助。学校工作总结怎么写篇1

    英语一分钟故事小演讲(10篇)英语一分钟故事小演讲篇1youthisnotatimeoflife,itisastateofmind;itisnotrosycheeks,redlipsandsupp