DSP+FPGA的并行通信在PWM中的应用
2019-10-30左兆文
左兆文
摘要:目前电力电子系统中,利用DSP完成电力电力开关管的占空比的计算,而FPGA完成PWM移相任务逐渐成为趋势。本文介绍了DSP和FPGA的并行通信方式。并行方法利用DSP的外部数据总线(XINTF)与FPGA连接。文中给出了并行通信软件实现的流程图,并对FPGA通信程序进行了仿真。通过仿真以及实验,验证了并行通信方法的优势。
关键词:外部数据总线;FPGA;并行通信
在电力电子领域中,采用DSP芯片作为主处理器,可以实现数模转换,时基任务等,充分发挥了DSP在数字信号处理方面的优势[1]。而利用FPGA作为从控制芯片,接收来自DSP的发送的调制波信号,主要实现了产生多路PWM的功能,从而解决了DSP功能引脚数量不足的劣势[2][3]。目前大多数文献都没有对DSP和FPGA的通信给出在电力电子领域应用的具体方法。
针对上述问题,本文使用TMS320F2812芯片,实现其与FPGA之间的并行通信。由于控制精度的要求,DSP每次发送的数据都为16位二进制数。在并行通信中,利用外部数据总线,将16位数据同时发送,并等待1usFPGA读数据。最后,通过仿真以及实验验证了并行通信方法的正确性以及准确性,并总结并行方法的优势[4-5]。
一、并行通信的硬件和软件设计
(一)硬件设计
TMS320F2812DSP芯片有16位XINTF数据总线XD[0~15],通常用于扩展SRAM、Flash、ADC模块等。XINTF是F2812与外部设备通信的重要接口。外部設备不能控制F2812的外部接口信号线,只能读取、判断信号线的状态,来进行相应的操作。在系统的控制芯片中,将外扩数据总线与FPGA的用户自定义I/O管脚连接,用于实现数据的并行发送。同时选择DSP的与FPGA相连接的GPIO引脚,作为FPGA接收数据的控制信号发送口。DSP的外扩XD[0~15]作为并行数据发送的引脚;由于FPGA需要握手信号作为接收数据的使能位,所以选定GPIOA6作为控制信号引脚。
(二)软件实现
由DSP2812的外扩接口结构可知,XINTF接口被映射到5个固定的存储空间。在软件设计中,选定Zone6区域,故直接定义外部起始地址为0x100000。与串行通信类似,并行通信亦需要定时器提供时基。使用CPU定时器,并开定时器中断,在中断子程序中完成数据的传输。CPU 定时器在初始化阶段设计为每隔1us产生一个中断发给CPU,使其访问中断子程序。在进入中断程序后,首先GPIOA6输出高电平送至FPGA,表示准备发送数据,FPGA做好接收读取数据的准备;然后,DSP并行16位发送数据。在一个数据发送结束之后,进入下一个1us中断,GPIOA6输出低电平,等待FPGA读取数据,同时DSP更新下一个即将发送的数据。
FPGA在接收来自DSP的控制信号与数据信号之后,FPGA开始工作。FPGA中调制波信息与三角载波信息直接比较产生PWM波形。由于DSP计算出的占空比为16位定点型数据,且其大小范围为[0,1],故而将其乘以104转换为整型后,以二进制数据类型发送。然后将转换后的整型占空比数据的每一位和1做与逻辑运算,求出每一位的值,并将其赋值给DSP的GPIO口。同时DSP输出一位高电平的握手信号,表示已经开始传出数据,FPGA接收到该I/O口的高电平后,开始接收数据。
当FPGA收到握手信号开始接收DSP传输的占空比更新的值以后,需要计算出调制波的值。将DSP传输的二进制数转换为10进制数以后,复原其原有的占空比,乘以三角载波最大值,即为调制波的值。将调制波与三角载波比较,即可输出控制功率开关管的PWM波,FPGA运行产生PWM的工作流程图如图1所示。
二、仿真以及实验结果
图2中显示的是FPGA的仿真波形,CLKIN位FPGA的晶振频率,CLK0为FPGA的时钟信号,TZB为调制波,输出Y为PWM波形。为了进一步验证本文中软件设计的正确性,又进行了PWM和SPWM的实验。图3中为FPGA输出的PWM和SPWM。
图3与FPGA仿真波形对比可发现,实验波形是正确的,说明软件通信的是有效的。图3(b)中通道1位双极性SPWM波形,通道2位一阶滤波后的正弦波形。由此说明本文中设计的并行通信方法的合理性和有效性。
三、结论
本文主要研究了DSP+FPGA的并行通信方法。并行通信采用DSP外扩数据总线实现,通过实验产生PWM和SPWM波形验证了本文提出并行通信方法的正确性和有效性。
参考文献:
[1]严刚峰,方红,杨维等.采用FPGA实现同步串行数据的并行采集[J].自动化仪表,2014,35(9):84-86.
[2]聂华,刘开华,孙春光等.DSP和FPGA之间串口通信研究[J].电子测量技术,2006,29(6):112-114.
[3]姜楠,马迎建,冯翔等.DSP和FPGA并行通信方法研究[J].电子测量技术,2008,31(10):146-148.
[4]王会锦.基于DSP-FPGA的电力机车辅助逆变器控制系统研究及实现[D].北京交通大学,2012.
[5]郭伟峰.基于DSP-FPGA全数字控制的并联有源电力滤波器[J].电工技术学报,2007,22(5):123-127.