基于DSP的串行通信在变频调速系统中的应用
摘要:介绍了基于专用DSP芯片ADMC328的异步电机调速系统中的主控部分与驱动部分之间的通信。详细介绍了通讯的硬件接口电路、通讯协议以及软件实现方法,实现了利用DSP的网步带口进行异步通讯的方法,并确保通讯准确可靠。实验结果证明了其可靠性。 关键词:数字信号处理器 串行异步通讯 交流调速系统 随着电力电子技术的不断发展和微处理技术尤其是数字信号处理器(DSP)的出现,基于数字控制的现代交流调速系统可以应用复杂的控制策略,实现高速动态响应功能。在以DSP为控制核心的异步电机驱动系统中,要实现观测驱动系统在运行中的数据变量,根据需要对程序进行控制,就需要应用DSP中的串口通讯接口与上位机——控制面板或者计算机系统进行通讯。本文针对一套基于DSP的异步电机变频调速驱动系统,设计了DSP与上位机系统通讯的硬件电路,编写了通讯的汇编程序,实现了DSP与上位机的异步通讯。在调试阶段,为了方便调试,在WINDOWS环境下,在PC机上利用VB编写了通讯控制程序,实现了DSP与上位PC机的通讯。通过多种条件下的运行调试,证明通讯可靠,运行稳定。 近年来交流调速领域中最活跃、发展最快的是变频调速技术,它是交流调速的基础和主干内容。变频调速对于提高电工作效率和工作质量以及节约能源等,都起着十分重要的作用。本文以AD公司的专用DSP芯片ADMC328为控制核心,实现异步电机的变频调速。javascript:window.open(this.src);" style="cursor:pointer;"/> ·调速系统的硬件电路分为四个主要模块:电源模块、控制器模块、功率模块以及通讯模块。 电源模块负责为其它模块提供相应的电源。它的输入是交流220V,由主控板或其它交流电源提供;输出是三个直流电源,为逆变器提供直流300V和直流15V,为控制器部分提供直流5V。 控制器模块的主要功能是实现空间矢量脉冲宽度调制(SVPWM),对直流300V母线进行电压和电流检测,与外界通讯。 功率模块的实质是一个10A/600V的三相逆变器,它受控于控制器输出的PWM信号,为异步电动机(IM)提供三相正弦电流。 通讯模块是变频驱动板与主控板以及UART设备通讯的通道。通讯模块是保证上位机与下位机准确快速联系的重要环节,是确保系统可靠运行的重要因素。 变频调速系统的控制框图如图1所示。 2 ADMCF328及其串口简介 ADMCF328芯片是美国AD(aspx">Analog Devices)公司生产的一种低价位、基于DSP的单片机控制器,适合于控制交流感应电机、永磁同步电机、无刷直流电机和开关磁阻电机。它包括一个20MIPS的定点DSP内核和一整套电机控制外设,适于开发快速有效的电机控制器[1]。 ADMCF328提供有共同步串行通讯口,支持多种串行通讯协议,并且可以在多处理器系统中直接互连各个处理器。每个串口包括五个引脚: SCLK(串行时钟), RFS(接收帧同步), TFS(发送帧同步), DR(串行数据接收), DT(串行数据发送)。 串口有独立的发送和接收部分,并且每个部分都有一个寄存器能把数据字从处理器移进或移出,双缓冲区技术为串口服务提供了附加时间。串口可以使用外部时钟或在内部生成时钟,频率范围宽,最小为0Hz,最大为6.144MHz。串口可以支持串行字长从3位到16位的数据传输。串口还可使用可以灵活控制的帧同步信号。接收和发送一个完整的数据字之后,可以产生一个中断。 发送数据时,由TX寄存器实现TFS信号,表明传送开始,写入TX寄存器的每个值都会被传送到内部发送移位寄存器中,然后从MSB开始发送各位,每一位都是在SCLK上升沿移出;接收数据时,接收到一个完整的字后,写入RX寄存器,同时产生接收中断。 串行通讯接口包括数据传输线DT和数据接收线DR。这样,可以通过对串口控制寄存器(Sport Control Register)的值进行修改,来控制数据接收帧同步只对串行通信中的第一个字节有效。也就是说,将DR和RFS连在一起之后,在进行数据传输的时候,在数据传输开始的时刻,就是第一个字节的起始位到达的时刻,RFS会对其进行判断,产生一个数据接收中断,从而达到异步通信的效果。 当需要把TTL(0V和+5V)电平转换为UART电平(-10V和+10V)时,比如说要和PC串口(RS/232)进行通讯时,就要添加一些硬件电路。如图2所示,使用了AD7306BR转换电平,由图中可以看出PC串口的3(TD)管脚即数据发送管理,经过AD7306BR之后,电平由-10V~+10V转换到0~+5V连接到DSP串口的数据接收(DR)管脚;同理DSP串口的数据发送(DT)管脚经过AD7306BR完成电平转换接到PC串口的2(RD)管脚即数据接收管脚上。在完成电平转换之后,还要使用HCPL2630将DSP与电平转换电路隔离。 4 通讯协议及软件设计 4.1 通讯协议 通讯协议采用异步串行通讯方式,波特率为2400bps,数据包括8位数据位、1个奇校验位、1个低电平起始位和1个高电平停止位;变频驱动板与主控板的通讯由3个字节组成:同步码0XFF、命令码和命令参数;主控板为主设备,变频驱动板为从设备,变频驱动板接到命令后立即应答,50ms无应答则重发命令,1s无应答则出错误报警。 通讯数据格式如表1所示。
4.2 由于ADMCF328只有一个同步串口,为了实现通讯协议的异步串行通讯,本文采用了一种使用同步串口作为异步通讯接口的方法。将串口的同步时钟频率设定为通讯协议波特率(2400)的三倍(7200),这样,命令字节中的第一位(bit)将读被取三次,取中间一次作为正确结果,用以保证消除上升、下降沿对通讯命令读取造成的误差;为了保证异步通讯,硬件上要求将数据接收线DR和RFS接在一起,以便产生异步中断。 由于是三倍频,所以每一位(bit)需要发送三次(接收时亦按三个字节接收),每一个命令字节共包括11位:一个起始位、八个数据位、一个奇偶校验位和一个停止位,所以共需33位,而串口传输数据的寄存器TX和RX只有32位,所以在接收数据的过程中,最后的停止位只接收2/3次,由于是三分频,只读取中间一部分的数据,所以不影响接收的正确性;在发送数据的时候,最后停止位只能发送2/3次,因此发送一个完整的命令字节后,补发一个0XFF来补齐停止位,以保证通讯完整,和上位机正常通讯。 发送和接收数据均采用中断方式。由于串口接收数据采用的是双缓冲的方式,由硬件实现数据的收发,因此不会受高级中断的影响而使通讯失败。只要在发数据的两条指令前屏蔽其它中断,一来可以保证通讯的准确性,二来又不会对PWM同步中断造成很大影响,从javascript:window.open(this.src);" style="cursor:pointer;"/>而保证对电机的控制。 4.3 软件流程 确定了通讯方式以后,即可根据通讯协议设计通讯程序,图3是串行异步通讯程序的流程图。 4.4 同步与异步串行通信比较 异步通信其它是依赖于同步性的,字符到达可以不同步,但每个字符的接收要通过起始位使之同步。事务上,异步和同步通信之间的基本差别只是程序不同,前者在每个字符中都需要同步位,而后者则经常需要一个精的时间控制时,连续位方式的同步传送要比异步传送优越。然而即使完全的同步化能够实现,系统仍然在许多方面产生故障,因为它需要的是不可中断的数据流,换句话说,传送字符串数据的技术没有办法将一个字符与另一个字符分离。所以,即使环境理想,如果字符不能按照指定时间到达接收方的应用系统。纯粹的同步是不能实现的[3],所以可靠准确的数据传输需要使用异步通信的方法,并且由于DSP速度大大提高,增加了起始位、停止位和奇偶校验位的异步通信方式并不对数据处理造成过多的影响。因此,本文工作中采用了串行异步通信的方式。 采用这种方法的特点和实际意义如下: (1)利用同步串口实现了异步通信,充分利用了DSP的资源,使DSP可以对异步电机的调速控制和与上位机的通讯同时处理,节约了成本。 (2)由于这套异步电机调速系统主要应用于家电中,因此功率不大,线路不长,本方法采用的设定三倍频率同步时钟以及合适的波特率,保证了通讯抗干扰能力,使得运行可靠。 本文提出的利用ADMCF328芯片的同步串口进行串行异步通讯的方法,通过对ADMCF328芯片的同步串口进行软件编程,实现异步通讯。由于采用了三分频的方法,读取数据准确,双工串行异步通讯效果良好。在驱动板与主控板连接调试之前,利用VB编写了通讯监控程序,通过硬件电平转换电路使DSP与PC机之间进行通讯,收发数据准确,通过良好,而且驱动板带动异步电机工作,运行正常。将主控板与驱动板连接整机调试,通讯正常,电机运行正常。 总之,从软件到硬件的实施方案,通过实验以及应用,证明了这个方法的可行性和可靠性。 摘要:介绍了基于专用DSP芯片ADMC328的异步电机调速系统中的主控部分与驱动部分之间的通信。详细介绍了通讯的硬件接口电路、通讯协议以及软件实现方法,实现了利用DSP的网步带口进行异步通讯的方法,并确保通讯准确可靠。实验结果证明了其可靠性。 关键词:数字信号处理器 串行异步通讯 交流调速系统 随着电力电子技术的不断发展和微处理技术尤其是数字信号处理器(DSP)的出现,基于数字控制的现代交流调速系统可以应用复杂的控制策略,实现高速动态响应功能。在以DSP为控制核心的异步电机驱动系统中,要实现观测驱动系统在运行中的数据变量,根据需要对程序进行控制,就需要应用DSP中的串口通讯接口与上位机——控制面板或者计算机系统进行通讯。本文针对一套基于DSP的异步电机变频调速驱动系统,设计了DSP与上位机系统通讯的硬件电路,编写了通讯的汇编程序,实现了DSP与上位机的异步通讯。在调试阶段,为了方便调试,在WINDOWS环境下,在PC机上利用VB编写了通讯控制程序,实现了DSP与上位PC机的通讯。通过多种条件下的运行调试,证明通讯可靠,运行稳定。 近年来交流调速领域中最活跃、发展最快的是变频调速技术,它是交流调速的基础和主干内容。变频调速对于提高电工作效率和工作质量以及节约能源等,都起着十分重要的作用。本文以AD公司的专用DSP芯片ADMC328为控制核心,实现异步电机的变频调速。javascript:window.open(this.src);" style="cursor:pointer;"/> ·调速系统的硬件电路分为四个主要模块:电源模块、控制器模块、功率模块以及通讯模块。 电源模块负责为其它模块提供相应的电源。它的输入是交流220V,由主控板或其它交流电源提供;输出是三个直流电源,为逆变器提供直流300V和直流15V,为控制器部分提供直流5V。 控制器模块的主要功能是实现空间矢量脉冲宽度调制(SVPWM),对直流300V母线进行电压和电流检测,与外界通讯。 功率模块的实质是一个10A/600V的三相逆变器,它受控于控制器输出的PWM信号,为异步电动机(IM)提供三相正弦电流。 通讯模块是变频驱动板与主控板以及UART设备通讯的通道。通讯模块是保证上位机与下位机准确快速联系的重要环节,是确保系统可靠运行的重要因素。 变频调速系统的控制框图如图1所示。 2 ADMCF328及其串口简介 ADMCF328芯片是美国AD(aspx">Analog Devices)公司生产的一种低价位、基于DSP的单片机控制器,适合于控制交流感应电机、永磁同步电机、无刷直流电机和开关磁阻电机。它包括一个20MIPS的定点DSP内核和一整套电机控制外设,适于开发快速有效的电机控制器[1]。 ADMCF328提供有共同步串行通讯口,支持多种串行通讯协议,并且可以在多处理器系统中直接互连各个处理器。每个串口包括五个引脚: SCLK(串行时钟), RFS(接收帧同步), TFS(发送帧同步), DR(串行数据接收), DT(串行数据发送)。 串口有独立的发送和接收部分,并且每个部分都有一个寄存器能把数据字从处理器移进或移出,双缓冲区技术为串口服务提供了附加时间。串口可以使用外部时钟或在内部生成时钟,频率范围宽,最小为0Hz,最大为6.144MHz。串口可以支持串行字长从3位到16位的数据传输。串口还可使用可以灵活控制的帧同步信号。接收和发送一个完整的数据字之后,可以产生一个中断。 发送数据时,由TX寄存器实现TFS信号,表明传送开始,写入TX寄存器的每个值都会被传送到内部发送移位寄存器中,然后从MSB开始发送各位,每一位都是在SCLK上升沿移出;接收数据时,接收到一个完整的字后,写入RX寄存器,同时产生接收中断。 串行通讯接口包括数据传输线DT和数据接收线DR。这样,可以通过对串口控制寄存器(Sport Control Register)的值进行修改,来控制数据接收帧同步只对串行通信中的第一个字节有效。也就是说,将DR和RFS连在一起之后,在进行数据传输的时候,在数据传输开始的时刻,就是第一个字节的起始位到达的时刻,RFS会对其进行判断,产生一个数据接收中断,从而达到异步通信的效果。 当需要把TTL(0V和+5V)电平转换为UART电平(-10V和+10V)时,比如说要和PC串口(RS/232)进行通讯时,就要添加一些硬件电路。如图2所示,使用了AD7306BR转换电平,由图中可以看出PC串口的3(TD)管脚即数据发送管理,经过AD7306BR之后,电平由-10V~+10V转换到0~+5V连接到DSP串口的数据接收(DR)管脚;同理DSP串口的数据发送(DT)管脚经过AD7306BR完成电平转换接到PC串口的2(RD)管脚即数据接收管脚上。在完成电平转换之后,还要使用HCPL2630将DSP与电平转换电路隔离。 4 通讯协议及软件设计 4.1 通讯协议 通讯协议采用异步串行通讯方式,波特率为2400bps,数据包括8位数据位、1个奇校验位、1个低电平起始位和1个高电平停止位;变频驱动板与主控板的通讯由3个字节组成:同步码0XFF、命令码和命令参数;主控板为主设备,变频驱动板为从设备,变频驱动板接到命令后立即应答,50ms无应答则重发命令,1s无应答则出错误报警。 通讯数据格式如表1所示。
4.2 由于ADMCF328只有一个同步串口,为了实现通讯协议的异步串行通讯,本文采用了一种使用同步串口作为异步通讯接口的方法。将串口的同步时钟频率设定为通讯协议波特率(2400)的三倍(7200),这样,命令字节中的第一位(bit)将读被取三次,取中间一次作为正确结果,用以保证消除上升、下降沿对通讯命令读取造成的误差;为了保证异步通讯,硬件上要求将数据接收线DR和RFS接在一起,以便产生异步中断。 由于是三倍频,所以每一位(bit)需要发送三次(接收时亦按三个字节接收),每一个命令字节共包括11位:一个起始位、八个数据位、一个奇偶校验位和一个停止位,所以共需33位,而串口传输数据的寄存器TX和RX只有32位,所以在接收数据的过程中,最后的停止位只接收2/3次,由于是三分频,只读取中间一部分的数据,所以不影响接收的正确性;在发送数据的时候,最后停止位只能发送2/3次,因此发送一个完整的命令字节后,补发一个0XFF来补齐停止位,以保证通讯完整,和上位机正常通讯。 发送和接收数据均采用中断方式。由于串口接收数据采用的是双缓冲的方式,由硬件实现数据的收发,因此不会受高级中断的影响而使通讯失败。只要在发数据的两条指令前屏蔽其它中断,一来可以保证通讯的准确性,二来又不会对PWM同步中断造成很大影响,从javascript:window.open(this.src);" style="cursor:pointer;"/>而保证对电机的控制。 4.3 软件流程 确定了通讯方式以后,即可根据通讯协议设计通讯程序,图3是串行异步通讯程序的流程图。 4.4 同步与异步串行通信比较 异步通信其它是依赖于同步性的,字符到达可以不同步,但每个字符的接收要通过起始位使之同步。事务上,异步和同步通信之间的基本差别只是程序不同,前者在每个字符中都需要同步位,而后者则经常需要一个精的时间控制时,连续位方式的同步传送要比异步传送优越。然而即使完全的同步化能够实现,系统仍然在许多方面产生故障,因为它需要的是不可中断的数据流,换句话说,传送字符串数据的技术没有办法将一个字符与另一个字符分离。所以,即使环境理想,如果字符不能按照指定时间到达接收方的应用系统。纯粹的同步是不能实现的[3],所以可靠准确的数据传输需要使用异步通信的方法,并且由于DSP速度大大提高,增加了起始位、停止位和奇偶校验位的异步通信方式并不对数据处理造成过多的影响。因此,本文工作中采用了串行异步通信的方式。 采用这种方法的特点和实际意义如下: (1)利用同步串口实现了异步通信,充分利用了DSP的资源,使DSP可以对异步电机的调速控制和与上位机的通讯同时处理,节约了成本。 (2)由于这套异步电机调速系统主要应用于家电中,因此功率不大,线路不长,本方法采用的设定三倍频率同步时钟以及合适的波特率,保证了通讯抗干扰能力,使得运行可靠。 本文提出的利用ADMCF328芯片的同步串口进行串行异步通讯的方法,通过对ADMCF328芯片的同步串口进行软件编程,实现异步通讯。由于采用了三分频的方法,读取数据准确,双工串行异步通讯效果良好。在驱动板与主控板连接调试之前,利用VB编写了通讯监控程序,通过硬件电平转换电路使DSP与PC机之间进行通讯,收发数据准确,通过良好,而且驱动板带动异步电机工作,运行正常。将主控板与驱动板连接整机调试,通讯正常,电机运行正常。 总之,从软件到硬件的实施方案,通过实验以及应用,证明了这个方法的可行性和可靠性。 |