事件管理控制电路设计与实现

时间:2022-04-07 03:31:26

事件管理控制电路设计与实现

摘要:事件管理控制电路广泛应用于运动控制、电机控制等工业控制领域,为使用者提供了强大的控制功能。在深入解读、分析事件管理控制电路工作机理的基础上,提出了一种事件管理控制电路的设计与实现方案,详细阐述了电路的功能设计、实现及验证。该电路功能稳定可靠,自动化程度高,可移植性强,具有较高的成熟度,可以满足运动控制和电机控制系统的应用需求,已成功应用于一款SoC电路的设计中。

关键词:事件管理;脉冲宽度调制(PWM);死区;正交编码

TI公司的DSP(数字信号处理器)中的事件管理功能以其控制简单、稳定性好、可靠性高等优点广泛应用于自动化领域中的运动控制和电机控制[1-2],但随着高性能和小型化应用需求的不断提升,仅仅使用TMS320x281x家族的处理器越来越无法满足要求[3]。为了满足不断增加的高性能和小型化应用需求,需要在板级或者芯片级集成更高性能的处理器和事件管理控制电路,而这种实现方式的关键本身又取决于事件管理控制电路的实现。本文介绍的事件管理控制电路的设计与实现技术有效满足了运动控制和电机控制系统的高性能和小型化的应用实现要求。

1事件管理控制电路的功能设计

根据对TI公司的DSP数字信号处理器中的事件管理功能的研究和分析[4],结合逻辑电路设计过程中模块划分的一般原则,事件管理控制电路的功能主要由AHB(高级高性能总线)总线接口电路、配置及控制电路、通用定时器电路、计时比较电路、正交编码及捕获电路、PWM产生及死区控制电路、AD(模数转换)控制电路以及输入输出控制电路等模块构成。事件管理控制电路的功能框图如图1所示。1.1AHB总线接口电路。事件管理控制电路需要与处理器交互,才能实现其功能,这种交互一般通过总线接口来实现。设计中为了便于实现片上集成,提高性能,选用AMBA(高级微控制器总线结构)总线规范中的AHB总线作为事件管理控制电路总线接口。处理器通过该接口实现对事件管理控制电路的控制。1.2配置及控制电路。配置及控制电路的主要功能是实现对事件管理控制电路中寄存器的配置以及在工作过程中根据事件管理控制电路的状态实行控制。配置及控制的机理主要是通过将AHB总线接口时序转换为内部的简单的存储器总线时序。1.3通用定时器电路。通用定时器电路由计时器组1和计时器组2构成。计时器组1主要用于计时比较、捕获功能和PWM产生;计时器组2主要用于捕获功能和正交脉冲计数操作。每一组计时器包括一个可选择使用外部引脚控制加减使能的16位定时寄存器、一个16位的比较寄存器、一个16位的定时周期寄存器和一个16位的计时控制寄存器。通用定时器电路能够选择可编程分频的内部或外部输入的定时时钟,计时器组1和计时器组2可以独立操作,也可以互相同步。每个计时器组中的定时寄存器能够工作在连续加、直接加减和连续加减三种操作模式。每一个计时器组的比较寄存器与计时比较电路中的一个比较功能单元以及PWM产生及死区控制电路协同工作,可以产生需要的PWM波形。定时周期寄存器和比较寄存器具有双缓冲,可以实现PWM周期以及比较或PWM脉冲宽度的编程。1.4计时比较电路。计时比较电路中设计了三个比较单元,这些比较单元使用计时器组1中的定时寄存器作为时基,通过PWM产生及死区控制电路产生6个比较输出或具有可编程死区的PWM输出。6个输出中的每一个输出状态可独立配置,比较单元中的比较寄存器为双缓存,可实现比较或PWM脉冲宽度的可编程。1.5正交编码及捕获电路。正交编码及捕获电路主要用来检测正交编码脉冲或者捕获外部输入引脚的转换状态,设计中的3个外部捕获输入引脚中的2个可以复用为正交编码脉冲电路的输入。通过将2个复用的捕获引脚同步,然后输入到正交编码脉冲电路中,能够检测方向或正交的脉冲序列。计时器组2中的计数寄存器根据正交编码脉冲电路的检测结果增加或减少。捕获电路提供了对不同事件和变化记录的功能,主要由1个16位的捕获控制寄存器、1个16位的捕获状态寄存器和3个16位的两级深度FIFO(先进先出)构成。当3个外部捕获输入引脚中的任意1个状态发生变化时,它将所选择的计时器组1或者计时器组2的计数寄存器的值保存到该引脚所对应的一个2级16位的FIFO中。外部捕获输入引脚经过时钟同步后进行捕获采样,为了捕获到状态转换,引脚的状态至少要维持两个同步时钟周期,捕获状态变化可编程为上升沿、下降沿以及上升下降沿。1.6PWM产生及死区控制电路。事件管理控制电路同时可以产生8个PWM波形,其中6个可构成3对带死区的PWM由计时比较电路产生,2个不带死区的PWM由计时器组1和计时器组2中的比较寄存器产生。死区控制电路包括3个4位的计数器和一个16位的比较寄存器。为了适应不同的应用需求,PWM产生及死区控制电路具有可编程功能,包括3对带死区PWM的输出死区宽度范围可编程,死区使能或禁止可编程,PWM的占空比和周期可编程等[5]。1.7AD控制电路。事件管理器支持外部ADC的启动功能,该功能可以编程为禁止或允许。当允许时,会产生一个32周期的低脉冲输出,启动ADC转换;禁止时,输出为高阻抗状态。1.8输入输出控制电路。为了方便不同实现目标之间的移植,在设计中将输入和输出控制电路与功能电路分开,作为一个单独的模块设计。在进行设计复用时,只需替换输入输出控制电路,而不用对功能电路修改,这种方法既提高了设计效率也避免功能出错的可能性。

2事件管理控制电路功能实现及验证

事件管理控制电路实现及验证主要包括Verilog(硬件描述语言)代码设计、代码检查、仿真验证等。2.1事件管理控制电路的Verilog代码设计。按照事件管理控制电路的功能设计以及模块划分,Verilog代码设计时先进行各功能模块的设计,然后再通过顶层模块的设计,将各功能模块互连。事件管理控制电路的代码层次结构框图如图2所示,其中E-•vent.v为顶层模块,AHBint.v为AHB总线接口模块,CfgCtl.v为配置及控制模块,TimerCmp.v为计时比较模块,Gptimer.v为通用定时器模块,QEP_Cap.v为正交编码及捕获模块,PWM_DeadB.v为PWM产生及死区控制模块,ADCtl.v为AD控制模块,IOCtl.v为输入输出控制模块。本电路在Verilog代码设计过程中遵循了良好的编码风格,采用了顶层模块无胶连逻辑、各个模块的输出采用寄存器输出、不同时钟域的信号进行跨时钟域处理等方法,使事件管理控制电路在满足功能的同时,有效提高了电路的综合效率、可靠性和可移植性。2.2事件管理控制电路的Verilog代码检查。代码检查的目的是为了保证代码的可读性、功能正确性以及电路鲁棒性和可综合性。虽然在代码设计过程中已经遵循了良好的代码设计风格、采用了多种技术保证代码的功能正确、电路可靠和可综合性,但整个设计代码是否具有高的可读性,功能实现和鲁棒性是否存在隐患,单靠人工检查是无法保证的,需要依赖于专用的工具。专业的代码检查工具主要有Cadence公司的HAL和Synopsys公司的SpyGlass,SpyGlass工具相比HAL工具功能更强大,属于行业内广泛使用的代码检查EDA工具。本设计中使用SpyGlass工具对事件管理控制电路的Verilog代码进行了检查,检查的内容主要包括:代码风格、可综合性、仿真与实际电路的功能一致性、CDC以及可测性。并对检查报告中的内容进行了逐条确认,对存在的问题作了修改。2.3事件管理控制电路仿真验证。事件管理控制电路设计完成后,需要通过仿真验证来确认其逻辑功能的正确性。虚拟仿真验证一般先进行模块级验证,然后进行顶层互连后的整体功能的验证。由于本设计各个功能模块的规模相对较小,在验证过程中,不进行模块级验证,而直接进行整体功能的验证。在验证过程中,首先根据电路的功能设计虚拟验证的仿真平台,然后开发测试用例,最后使用Candence公司的NCsim仿真器进行验证。验证平台主要由Tb和被测顶层模块Event以及相关功能模型构成。Tb的主要功能是通过一个与Event的AHB从接口互连的AHB主模型,根据事件管理控制电路的功能,发起AHB总线操作,控制事件管理控制电路工作,实现各种功能的验证。验证的主要功能包括:AHB总线接口、带死区和不带死区的PWM、正交编码及捕获等功能。经验证,该电路的功能正确,满足设计要求。PWM的仿真波形如图3所示。

3结束语

本文通过对TI公司的DSP数字信号处理器中的事件管理功能的研究和分析,提出了一种基于事件管理的控制电路设计与实现方案,经验证,该方案电路功能、性能、符合设计要求,并已成功应用于一款SoC(系统级芯片)电路的设计中。该电路具有很好的移植性,可用于SoC和FPGA(现场可编程逻辑门阵列)的设计实现,从而满足运动控制和电机控制系统的高性能和小型化的应用实现要求。

参考文献:

[1]岳夕彪,杨润生,陈仁伟.基于DSP的无刷直流电动机控制电路设计[J].四川兵工学报,2010,32(2):90-93.

[2]薛一哲,马子飞.基于DSP产生SPWM波形的软件设计研究[J].航空计算技术,2019,49(1):112-114.

[3]张卫宁.TMS320C28X系列DSP的CPU与外设[M].北京:清华大学出版社,2005.

[4]苏奎峰,吕强,耿庆峰.TMS320F2812原理与开发[M].北京:电子工业出版社,2005.

[5]张崇巍,张兴.PWM整流器及其控制[M].北京:机械工业出版社,2012.

作者:赵强 田泽 廖寅龙 淮治华 单位:1.航空工业西安航空计算技术研究所 2.集成电路与微系统设计航空科技重点实验室 3.西安翔腾微电子科技有限公司