首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA四大设计要点解析及应用方案集锦(3)

FPGA四大设计要点解析及应用方案集锦(3)

多轴电机控制
   传统上,工业电机控制应用使用微控制器或DSP来运行电机控制所需的复杂算法,在大多数传统的工业驱动中,FPGA与微控制器或DSP一起使用,用于数 据采集和快速作用保护。除了数据采集、PWM生成和保护逻辑,FPGA传统上并未在实现电机控制算法方面发挥主要作用。
  使用微控制器或DSP实现电机控制算法的方法并不容易扩展到多个以独立速度运行的电机(多轴电机控制),美高森美SmartFusion2 SoC FPGA可以使用单一器件来实现集成且完整的多轴电机驱动控制(图2)。

  


  图2:美高森美SmartFusion2 SoC FPGA使用单一器件来实现完整的多轴电机驱动控制。


   控制方面可以分为两个部分。一个部分用于运行磁场定向控制(FOC)算法、速度控制、电流控制、速度估计、位置估计和PWM生成;另一个部分则包括速度 曲线、负载特性、过程控制和保护(故障和报警)。执行FOC算法属于时间关键型,需要在极高的采样速率下进行(在微秒范围),特别是针对具有低定子电感的 高速电机。这使得在FPGA中实现FOC算法变得更优越。过程控制、速度曲线和其他保护无需快速更新,因而能够以较低的采样速率执行(在毫秒范围),并且 能够在内置Cortex-M3子系统中进行编程。
  晶体管开关周期在驱动中发挥着重要的作用,如果FOC回路执行时间比开关周期短得多,硬件模块可以重用于计算第二个电机的电压。这意味着器件可以在相同的成本下提供更高的性能。

  


  图3:永磁同步电机的磁场定向控制(FOC)框图。


  (1)电机控制IP模块。图3为无传感器磁场定向控制算法,这一部分将会讨论这些模块,它们作为IP核提供。
   ● PI控制器。比例积分(PI)控制器是用于控制系统参数的反馈机制,它具有两个用于控制控制器动态响应的可调增益参数-比例和积分增益常数。PI控制器的 比例分量是比例增益常数和误差输入的乘积,而积分分量是累积误差和积分增益常数的乘积。这两个分量被加在了一起。PI控制器的积分阶段可能在系统中引起不 稳定,因为数据值不受控制地增加。这种不受控制的数据上升称作积分饱卷,所有的PI控制器实现方案都包括一个抗饱卷机制,用于确保控制器输出是有限的。美 高森美的PI控制器IP模块使用hold-on-saturation(保持饱和)算法用于抗饱卷。这个模块还提供附加特性以设置最初的输出值。
   ● 磁场定向控制(FOC)。FOC是通过独立地确定和控制转矩和磁化电流分量来为电机提供最优电流的算法。在永磁同步电机(PMSM)中,转子已经磁化。因 此,为电机提供的电流只用于转矩。FOC是计算密集型算法,但是美高森美电机控制参考设计已经针对器件资源的最优使用而构建。FOC算法包括 Clarke、Park、逆Clarke和逆Park变换。
  ● 角度估计。FOC的一个输入是转子角度。精确确定转子角度对于确保低功耗是必不可少的。增添确定位置和速度的物理传感器会增加系统的成本并降低可靠性。无 传感器算法有助于消除传感器,但是增加了计算复杂性。美高森美针对无传感器控制提供了两个角度计算算法IP模块-一个基于Luenberger观测器,另 一个基于直接反电动势计算。该公司还提供基于霍尔传感器和编码器的单独参考设计。
  ● PLL.PLL用于同步信号,在多个应用中有用,例如逆变器的角度估计和电网同步。
  ● 速率限制器。速率限制器模块可以实现系统变量或输入的平滑改变。例如,在电机控制系统中,如果电机所需的速度突然改变,系统可能变得不稳定。为了避免此类情形,速率限制器模块用于从初始速度转变到所需的速度。速率限制器模块可以进行配置以控制改变的速率。
  ● 空间矢量调制。空间矢量调制模块改善了直流总线利用率,并消除了晶体管开关的短脉冲。因为晶体管开启/关断时间比脉冲持续时间长,短脉冲会导致不正确的开关行为。
   ● 三相PWM生成。在所有计算的最后,可以得到三相电机电压。这些电压用于生成逆变器中晶体管的开关信号。PWM模块为六个(三个高侧和三个低侧)晶体管产 生开关信号,并且具有死区时间和延迟时间插入等先进特性。可编程的死区时间插入特性有助于避免逆变器引脚上的灾难性短路情况。可编程的延迟时间插入特性使 ADC测量与PWM信号生成能够同步。该模块可以配置成与仅由N-MOSFET组成的逆变器或同时包括N-MOSFET和P-MOSFET的逆变器一起工 作。
  (2)在SoC中调试FPGA设计。通常,在微控制器上调试设计比在FPGA上进行调试相对简单一些。在SoC中,可以利用 FPGA的高性能,同时保持在微控制器中更快速调试的优势。美高森美SmartFusion2 SoC FPGA中的微控制器子系统和FPGA架构可以通过AMBA APB或AXI总线彼此进行通信。这样可以把测试数据注入FPGA架构中,或者从FPGA架构中记录调试数据,从而帮助实现运行时间的内部数据可视化,用 于实时调试。固件代码可以单步运行,在代码中可以设置断点来分析FPGA寄存器数据。
  基于SmartFusion2 SoC FPGA的多轴电机控制解决方案通过USB连接至主机PC,并与图形用户界面(GUI)通信,进行启动/停止电机,设置电机速度值和其他系统参数,描绘多达四个系统变量,例如电机速度、电机电流和转子角度(图4)。

  


  图4:GUI的屏幕截图-绘制内部参数:转子角度(绿色)、Valpha(红色)、Vbeta(黑色)、电机速度(蓝色)。


   (3)生态系统。美高森美提供一组丰富的IP库,包括前面讨论过的数种电机控制功能。这些模块可以轻易定制,并可以在美高森美器件中移植。使用 Libero SoC软件的Smart Design工具,这些模块可以采用图形方式配置和连接在一起。借助于这些IP模块,设计人员能够显着减少在FPGA中实现电机控制算法所需的时间。
  这些IP模块已在以高达30,000r/min转速和200kHz开关频率运行的电机上进行了测试。
  工业通信协议
   工业网络的发展趋势是通过使用更快的网络通信替代点至点通信。实现此类高速通信需要支持更高的带宽,这对于同时处理电机控制算法的微控制器或DSP来说 并不容易。在大多数情况下,会使用一个附加的微控制器或FPGA来处理与每个电机控制器的通信。通常使用的基于以太网的协议有PROFINET、 EtherNet/IP和EtherCAT标准,这些标准仍然在演进。其他的协议包括了CAN和Modbus.在这种情况下使用SoC的优势,是在单一 FPGA平台上支持多种工业以太网协议标准。
  根据终端系统目标,可以通过重用IP和协议栈(用于通信)来优化系统的成本,或者通过仔细地在硬件(FPGA)和软件(ARMCortex-M3子系统)中划分功能来优化性能。
  美高森美的SmartFusion2 FPGA具有内置CAN、高速USB和千兆以太网模块作为微控制器子系统的一部分。高速SERDES模块用于实现涉及串行数据传送的协议。
  安全性
   SmartFusion2 SoC FPGA器件具有数项设计和数据安全特性。DPA认证反篡改保护和加密特性等设计安全特性能够帮助保护客户的知识产权。SoC FPGA器件还包括数据安全特性,例如ECC硬件加速器、AES-128/256和SHA-256服务。对于数据安全性,可以使用EnforcIT IP Suite和CodeSEAL软件安全构件,EnforcIT IP包括一套可定制内核(作为网表),有效地将安全层移到硬件中。CodeSEAL将对策注入到固件中,可以独立地使用,或者用作EnforcIT的提 升。
  实现协议的灵活性可让设计人员使用多个安全层来认证从中央监控控制器进入的信息。
  可靠性
  在多个市场中安全标准的增长推动了高可靠性的需求,SmartFusion2经设计满足高可用性、安全关键型和任务关键型系统的需求,以下是SmartFusion2 SoC FPGA提供的某些可靠性特性。
   (1)单粒子翻转(SEU)免疫零FIT率配置。高可靠性运作需要SEU免疫零FIT率FPGA配置,SmartFusion2架构具有不受α或中子辐 射的免疫能力,因为它使用闪存来配置路由矩阵和逻辑模块中使用的晶体管。基于SRAM的FPGA在海平面上的FIT(时间失效)率可能为1k~4k,在高 于海平面5,000英尺的位置会高得多。高可靠性应用可接受的FIT率低于20,这使得SmartFusion2最适合这些应用。
  (2)EDAC保护。SmartFusion2器件具有错误检测与校正(EDAC)控制器,可防止在微控制器子系统(MSS)存储器中发生的单粒子翻转错误。
   (3)无外部配置器件。在具有大量FPGA的复杂系统中,使用外部配置器件会降低可靠性。在上电时,FPGA需花费时间来进行配置,这在使用多个 FPGA器件的应用中带来了设计复杂性。SmartFusion2 SoC FPGA在器件内部包含了配置存储器,它提供了在器件一上电时就开启的附加优势。
  (4)军用温度级器件。SmartFusion2 SoC FPGA器件针对军用温度条件进行了全面测试。军用级器件具有10k和150k逻辑单元,并具有允许访问密码加速器的安全特性和数据安全特性。
  总结
   美高森美SmartFusion2 SoC FPGA使用经过高度优化的电机控制IP模块和经过验证的参考设计,提供了数种降低工业设计TCO的特性。从微控制器迁移的客户将能够重用某些旧代码,而 FPGA设计人员将能够利用FPGA架构和ARM Cortex-M3子系统来创建一个高效的架构,允许电机控制模块和通信模块同时驻留在单一器件中。ARM Cortex-M3微控制器子系统的存在,可以实现灵活的设计和智能分区,而针对性能和成本做优化。微控制器子系统还可以在运行时间中注入和记录数据,加 速调试FPGA设计。SmartFusion2平台还提供了实现工业通信协议的广泛选项。它同时提供用于设计和数据安全的多项安全特性,还提供了满足高可 靠性需求的特性。SmartFusion2系列器件备有强大的生态系统支持,能够帮助客户以最低TCO来开发工业解决方案。

利用FPGA实现无线分布式采集系统设计


  1 引言
  近些年来,随着电子技术的发展,无线通信技术、计算机网络的发展,分布式无线数据采集网络技术开始兴起,并迅速的应用到各个领域。在一些地形复杂,不适合人类出现的区域需要进行数据采集的情况下,都可以适当的选择无线分布式 采集来进行。现有的无线分布式采集系统中,往往使用单片机、DSP等作为系统的主控控制单元。但是由于其自身工作特点,往往对于精确的定时控制以及并行处 理能力上比FPGA弱。随着FPGA等可编程逻辑器件的发展,为无线数据可靠传输提供了很好的实现平台。采用FPGA作为时序控制和信号处理的处理器,将 使系统电路设计更加简洁、可靠、灵活,可有效的缩短开发周期,并降低开发成本。
  为此,基于CycloneIV+STM32设计了一种新 型的无线分布式采集系统,实现了数据的高可靠和同步传输。设计主要由3大部分组成:编码器、译码器、无线收发电台。在对编码器、译码器同步校准后,对待发 送数据进行卷积编码,并转换为串行数据。数据转换为串行数据后,在串行数据帧头加入Barker码来实现帧的同步,并使用2条互为备份的数据传送通道同时 发送数据。在数据接收端检测到barker码后,本地对互为备份的双通道数据进行viterbi译码(本文设计的viterbi译码器采用并行结构,大大 的降低译码时间)。译码结束后,本地对双通道数据进行循环冗余校验,并做出判选,最后执行相应指令。并在规定时间给出相应反馈信号。设计的无线采集系统, 即使某一数据通道出现少量错码,系统仍能有效的恢复出数据,并进行可靠的数据传输。系统添加了监控模块,实时备份上传的数据并监控,如发现不能正常上传, 则启用备用模块保证整个系统正常工作。系统不仅能实现数据的高可靠和同步传输,而且具有很好的适用性,可广泛应用工业中。
  2 无线分布式采集系统简介
  2.1 系统硬件简介
  无线分布式采集系统包括编码器、译码器(编码器、译码器硬件完全相同,只是配置逻辑不同,可配置为编码器、译码器、中继站)和无线通信电台。如图1所示,这是一个最简单的一对一式分布式系统。

  


  图1 无线分布式采集系统结构


  编码器作为上位机与译码器之间的桥梁,通过USB/RS485通道进行发送、接收命令和数据。译码器接收编码器发来的命令进行配置和采集,并将数据存储至DDR2中。译码器收到上传命令后,上传数据至编码器。
   编码器/译码器硬件系统框图如图2所示。本系统主控单元由FPGA完成。FPGA选用Altera公司的EP4CGX30F407,逻辑单元为 29440个,80个18×18乘法器,多达290个用户自定义IO。STM32作为监控和备用单元组成系统的基本架构,STM32F407ZG系列是基 于高性能的ARM CortexTM-M4F的32位RISC内核,工作频率高达168 MHz,该STM32F407ZG系列采用高速嵌入式存储器(多达1 MB闪存,高达192 KB的SRAM),拥有3个12位ADC,2个DAC,1个低功耗RTC,12个通用16位定时器,2个通用32位定时器。人机交互部分由16X2液晶显 示字符模块和4个按键组成,其主要功能是通过按键对基站编号设置并显示在LCD上。无线模块选用WSN-03系列无线模块作为收发平台,工作电压为5 V,传输速率和工作频段等都可配置。目前传输速率最大为115 200b ps,工作频为433 MHz可调。无线模块与FPGA主要以RXD/A,TXD/B,NRST(复位控制),SET(设置模块参数),SLP(休眠控制)信号线连接。GPS模 块选用VKl6U6进行定位,与FPGA以UART接口连接,波特率定位9600 bps。ADC选用基于△-Σ技术的32 bits高精度低功耗模数转换芯片ADSl282,采样信号电平范围:差分输人一2.5~+2.5 V。单个译码器有6个采集通道,以2 k采样率,采样时常16 S来计算,单个译码器纯数据量为6×2 k×16×24-6144 Kbits.考虑到编码器,一次采样,8个基站的数据经编码后数据总量为98 304 Kbits,所以编码器和译码器需增加l片Micron Technology公司的MT47H256M8HG-37E IT(256Meg×8)作为缓存空间。由于DDR2 SDRAM需要特定的控制读写时序,系统直接采用Quartus II自带的“DDR2 SDRAM High-Performance Controller”IP CORE。USB部分由2个通道组成,一个是由FPGA、CY7C68013和USB接口组成;另一个由STM32(自带USB驱动)和USB接口组成。 同时本设计中还添加了RS485串口,使整个系统与上位机能保持实时通信,为系统的远程控制提供了可能,并能保持系统更新。

  


  图2 系统框架


  2.2 系统数据流程
   系统的数据流程为:同步校准译码器,设置各个译码器接收命令后的延时-编码器配置采集参数、命令-译码器采集数据保存至DDR2中一各译码器分时接收数 据上传命令并上传数据-编码器将数据汇总保存至DDR2-数据收集齐后通过USB/RS485上传至上位机。译码器节点配合计算机对各个点的数据进行轮询 采集,它包含了无线传输模块和与计算机通信的USB接口。STM32将组帧后的数据备份并实时监控FPGA,如在规定时间或未能按指令进行工 作,STM32将替代FPGA并使FPGA进入断电状态。
  2.3 系统组帧格式
  编码器与译码器之间是一对多的关系,译码器分时上传数据,译码器有2个通道,译码器有唯一的配置编号。数据帧的格式如图3所示。数据帧中除20字节有效数据之外,还包括组号、目的编号等。

  


  图3 编码器、译码器间数据帧格式


   为了改进接收信号质量,本系统引入信道编码的方法来改善信道质量。具体如图4所示。发送端对数据进行组帧、并串转换、卷积编码、加入同步帧信息后,把数 据发送至无线通信电台进行调制。接收端的无线通信电台对信号进行解调后发送数据至接收端的FPGA.接收端的FPGA检测到帧同步信息后对接下来的数据保 存,并进行Viterbi译码。FPGA对双通道的数据进行冗余校验,并选择正确的数据执行相关操作。

  


  图4 无线数据传输


  3 无线分布式采集系统数据传输的实现
  3.1 可靠性
  待发数据经卷积编码,互为备份的双通道发送,Viterbi译码,冗余校验,数据判选,系统能够很好的进行无线收发。
  3.1.1 卷积编码
   数据组帧完成后,由低位至高位进行并串转换,进行卷积编码。卷积编码是一种纠错信道编码,是由连续的输入信息序列经编码后得到连续输出的编码序列口。以 (n,k,m)来描述卷积码,k为每次输入到卷积编码器的bit数,行为每k元组码字对应的卷积码输出n元组码字,m为编码储存度。卷积编码生成的n元组 元不仅与当前输入有关系,还与前面m一1个输入的k元组有关系。本系统采用(2,1,4)卷积编码器,如图5所示。图中“+”代表异或。每bit经编码后 都有2 bit输出(C1,C2)。

  


  图5 (2,1,4)卷积编码器


  3.1.2 Viterbi译码
   接收端有2个接收通道,互不干扰。接收端对2个通道同时译码。译码采用Viterbi译码。Viterbi译码算法是一种卷积码的解码算法。 Viterbi译码根据最大似然算法规则,能达到最佳译码,特别适合向前纠错。以本设计为例,根据图5,编码器4个延时状态(0,1)组成整个编码器的 16个状态(D4D3D2D1),每个状态在编码器输入1或0时,跳转到另一个状态。并且输出也随之改变。译码就是编码的逆过程。算法规定任意t时刻收到 的数据都要进行32次路径值计算、16次比较,比较后每个状态只保存一个路径值,为接下来计算减少了一半的运算量。反复208次,从16条幸存路径中选出 一条路径值最小的,反推出这条路径,得出相应的译码输出。考虑到每次译码后,译码器都能回到初始状态,所以源数据最后加了8 bit的“0”。本设计采用并行处理结构,经214个周期还原出源码。
  在设计FPGA逻辑时,基本采用多条并行的流水线技术,译码部分 包含4个子模块:加比选模块、回溯模块、存储模块和时钟控制模块。路径值的计算和比较在3个时钟周期内完成,4个模块同时运行,大大的降低了译码时间。另 外,为了提高FPGA效率,系统加入采样触发信号,保证系逻辑能够稳定运行。
  3.1.3 数据判选
  经译码后,接收端 已接收到2组互为备份的数据。经实践证明,简单的并联冗余能大大的提高系统的可靠性。具体选择流程如图6所示。2路数据经Viterbi译码后,开始接收 一帧数据,并写入RAM中,同时计算CRC校验、帧完整性检测、ID是否符合本地。上述检测都没问题时,对2路幸存路径的度量值进行比较,选择值小的通道 作为最终数据。

  


  图6 数据的选择


  3.2 同步的实现
   为了保证编码器和译码器之间能严格实现同步,数据帧需要加入同步帧。实现帧同步的方法通常有2种:起止同步法和集中式插入同步法。起止式同步比较简单, 一般在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。集中插入式同步法中插人的同步码要求在接收端进行同步识别时出现伪同 步的概率尽可能低,并且要求该码具有尖锐的自相关特性以便识别。7位巴克码作为帧同步码,其局部自相关函数为:

  


  由上公式计算可知,7位巴克码的自相关函数在j一0时出现尖锐的单峰特性。设计中采用2组同步帧头作为同步码,同步帧头由7位巴克码和1 bit的0组成。
   到现在为止,待发数据bit数为:208×2+8×2-432 bits。经调制解调后,接收端检测帧同步信息,同步信息为2组11100100组成。每组同步信息高7位与7位巴克码相比,允许出错位数在1位以内。设 P为码元错误概率,行为同步码组的码元数,m为判决其允许码组中的错误码元最大数,在本系统中行n=7,m=1。在P=0.01时,单一barker码的 漏同步概率为:

  


   当2组同步帧都满足时,帧同步建立,接收端保 存接下来的数据。无线通信电台与FPGA以rs485连接,如图7所示,FPGA检测X是否为“0”,当检测到“0”,不接收端对接下来的数据X与本地巴 克码对应位进行位异或运算。当检测1 byte barker码,错1位以内时,发出一value脉冲。当检测到2个value脉冲时,说明同步已建立,接收端开始存储接下来的数据。

  


  图7 barler码识别


  4 系统监控模块的实现
   STM32与FPGA连接如图8所示,由于ARM与FPGA的相互通信直接影响着控制器的性能,所以该并行总线的设计就成为一个非常关键的问题。该总线 可以包括芯片的地址总线(ADDR[021])、数据总线(DB[015])、控制总线、复位信号(nRST)以及中断信号线(INT),其中控制总线包 括使能信号(nOE)、片选信号(nCS)、读信号(nRD)、写信号(nWE),这样做的好处是,将FPGA芯片存储器化,即STM32可通过对特定地 址的访问来控制FPGA工作,并且可通过共同的复位信号将STM32与FPGA芯片同时复位,尽量避免总线竞争和冒险现象的出现。

  


  图8 STM32与FPGA连接


   STM32与FPGA同时接收命令,在解析完命令后,FPGA应在规定的时间内发送数据,FH认组帧完成时,发出INT信号至黜2申请中断。如果 STM32在规定时间内没有接收到FPGA发来的INT信号,将开始计时,计时时间内未能接收INT信号,STM32将停止FPGA供电电源工作,由 STM32代替FPGA工作,保证整个系统能稳定进行。
  结论
   在无线分布式采集系统设计中,采用了基于卷积编码、Viterbi译码的编码和互为备份的双通道传输方案,利用了FPGA内丰富的逻辑资源以及存储资 源,实现了数据的远距离同步可靠传输。加入备份数据通道后,通过FPGA内部逻辑控制,在硬件上实现了对两路数据的实时校验及自动判选,提高了系统的稳定 性和可靠性。相比于“备份-重传”等机制,该方法实现简单、实时性好,即使某一通道不能正常工作,系统仍能正常进行。该无线分布采集系统,满足了现在同步 触发和数据量不大情况下的传输。本文提出的互为备份的双通道编解码、数据冗余传输机制,亦可应用相关无线传输领域,以提高远距离数据传输的可靠性和稳定性。
返回列表