加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 设计中心 > 可编程逻辑器件

FPGA设计实例全攻略(一)

时间:2014-05-03  来源:123485.com  作者:9stone

  把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品。FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高。为解决相关FPGA工程师及爱好者提供相关实际案例和电路参考,电子发烧友网隆重整合推出《FPGA设计实例全攻略》系列,后期会陆续推出相关章节,以飨读者,敬请关注。

FPGA设计实例全攻略(一)

  一、远程在线更新FPGA程序的方法

  1 概述

  现场可编程门阵列(Field Programmable Gate Array,FPGA)器件具有高密度、低功耗、高速、高可靠性等优点,在航空航天、通信、工业控制等方面得到了大量应用。FPGA的处理器分为软核和硬核,并且软核处理器具有高度的灵活性和可配置性。

  由于FPGA器件采用的是SRAM工艺,在断电的情况下FPGA内的配置数据将丢失,所以需要非易失的存储器来结合FPGA完成嵌入式系统的设计。EPCS(Erasable Programmable Configurable Serial)Flash属于串行接口Flash,具有接口简单、体积小、配置方便的特点,通常用来存储FPGA的配置文件和NiosII的软件可执行代码。在经过合理的配置后,系统在上电后就可以从EPCSFlash中读取这些文件来启动整个系统。

  为了能使系统得到更灵活的应用,充分发挥FPGA的灵活性、高效性,FPGA的软硬件程序都需要方便的更新和升级功能;而当形成产品后,通过JTAG和NiosII IDE工具来联合完成对EPCS Flash的更新烧写很不方便。为此,本文结合Altera公司提供的工具,提出了一种远程在线更新FPGA配置文件和NiosII程序文件的方法。

  2 系统硬件结构

  系统硬件结构如图1所示。系统主要有上位机系统、FPGA系统、EPCS Flash三个主体部分。上位机系统提供人机交互的部分,FPGA系统包括NiosII处理器、EPCS控制器、网络及串行接口和其他外部接口,EPCSFlash主要用于存储FPGA的配置文件和Nios程序映像文件。上位机系统通过FPGA集成的网络及串行接口来完成通信工作。

  

  FPGA采用Altera公司的CycloneIII系统的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多种可配置的时钟源,最高支持100 MHz的外部时钟源,具有16 Mb的存储空间,足够满足一般的FPGA配置文件和Nios程序文件的存储需要。

  3 更新程序处理流程

  更新FPGA的配置文件和NiosII的应用程序的流程如图2所示。

  

  本方法把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并编程为一个可以直接执行的、包含FPGA配置文件和NiosII程序文件的二进制BIN文件。然后把该文件通过X-modem协议由上位机系统传输给NiosII的应用程序。NiosII的应用程序接收到完整的BIN文件后,把该BIN文件写入到EPCS Flash中。最后,Nios II的应用程序停止看门狗,程序重新启动,即完成了FPGA的远程在线更新程序的过程。

  4 合并程序文件

  Nios II的启动要经历两个过程:

  ①FPGA器件本身的配置过程。如果内部逻辑中使用了NiosII,则配置完成的FPGA中包含有NiosII软核CPU。

  ②NiosII本身的应用过程。一旦FPGA配置成功后,NiosII就被逻辑中的复位电路复位,从reset地址开始执行代码。

  Nios II IDE将FPGA的配置文件(.sof文件)和应用程序(.elf文件)转成flash格式文件,转换后的flash格式文件是一种S-Record格式数据,包含如下区域:《type》《length》《address》《data》《checksum》。各字段的意思分别如下:《type》表示记录的类型;《length》表示数据的长度;《address》表示数据写入的起始地址,该字段的长度取决于《type》的取值;《data》表示存储的数据;《checknum》表示校验位。

  配置文件和应用程序可能有多个段,每个段前面都插有一个“程序记录”。一个“程序记录”由2个32位的数据构成,一个是32位的整数,另一个是32位的地址,分别表示程序段本身的长度和程序段的运行时地址。其存储布局如图3所示。

  

  为了在更新程序时把FPGA配置文件和Nios II应用程序一起更新,把FPGA配置文件和Nios II应用程序合并成一个文件,并且把合并后的Flash格式的文件转换成不需要地址解码就能直接执行的二进制BIN文件。具体处理流程如图4所示。

  

  在合并程序的过程中,去掉了flash文件中的长度、目的地址等用于解析程序的信息,并且把程序映像由字符格式转换为二进制格式。合并后的BIN文件包含FPGA配置文件和Nios II应用程序,并且Nios II应用程序紧挨在FPGA配置文件的后面,其存储布局如图5所示。

  

  5 Nios II更新程序模块处理

  Nios II程序中的更新程序模块主要负责从上位机接收合并后的可执行BIN文件,并把该BIN文件写入EPCSFlash,处理流程如图6所示。

  

  5.1 程序文件的传输

  Nios II应用程序中的更新程序模块和上位机系统采用X-modem协议传输程序文件,X-modem协议是一种网口和串口通信中广泛用到的异步传输协议。

  如果在程序传输过程中出现错误,更新程序模块能够通过设置超时来退出更新程序的状态。

  5.2 对EPCS Flash的读写

  由于EPCS Flash的串行配置器件定义了特殊的读写协议,所以Nios II程序只能通过Altera提供的HAL API(Application Program Inter face,应用程序接口)来完成读写Flash。打开、关闭Flash设备的API为:alt flash open_dev()和alt_flash_close_dev()。操作Flash读写

  的API为:alt_read_flash()和alt_write_flash_block()。清除Flash的API为alt_erase_falsh_block()。

  结语

  本文以提高FPGA远程更新程序的方便性为目标,提出了一种基于EPCS Flash的远程在线更新FPGA程序的方法,从而在应用中能够使基于FPGA的产品更加方便地维护升级。

  二、利用FPGA实现与DS18B20的通信功能

  1、概述

  本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通信功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从FPGA寄存器中读取这些信息。

  一般在使用DS18B20时往往采用微处理器的I/O端口实现与该器件的通信,这种方法虽然比较容易和方便,但是,因为DS18B20的一线式串行总线对时序要求比较严格,因此,为了保证与DS18B20的通信可靠性,微处理器与DS18B20通信时需要采用关闭中断的办法,以防止操作时序被中断服务破坏。

  利用FPGA实现与DS18B20通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。

  2 ProASICplus系列FPGA简介

  ProASICplus系列FPGA是ACTEL公司推出的基于Flash开关编程技术的现场可编程门阵列,包括从7.5万门的APA075型到100万门的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重复编程等特点。

  因为ProASICplus系列FPGA基于Flash技术,利用Flash开关保存内部逻辑,因此不需要另外的器件。由于不需要上电配置过程,因此具备上电就立即工作的特点。不用配置器件,系统的保密性提高。

  笔者在电力监控的产品中利用APA150型FPGA实现了逻辑控制、A/D采样控制和FIFO存储等功能,并利用剩余的资源实现了DS18B20的通信功能。APA150在整个系统中充当协处理器,使主CPU从繁重的实时处理中解脱出来。

  3 DS18B20简介

  3.1内部结构

  DS18B20的内部结构如图1所示,主要由以下几部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH(温度高)和TL(温度低)、配置寄存器、暂存寄存器(SCRATCHPAD)、存储器控制逻辑。DQ为数字信号输入/输出端。

  DS18B20的内部结构

  ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不相同。

  8位CRC生成器可以完成通信时的校验。

  暂存寄存器有9个字节,包含温度测量结果、温度报警寄存器、CRC校验码等内容。

  3.2操作步骤

  对DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。

  3.2.1初始化

  FPGA要与DS18B20通信,首先必须完成初始化。FPGA产生复位信号,DS18B20返回响应脉冲。

  3.2.2ROM命令

  该步骤完成FPGA与总线上的某一具体DS18B20建立联系。ROM命令有搜寻ROM(SEARCH ROM)、读ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、报警查找等命令(ALARM SEARCH)。

  这里,FPGA只连接1个DS18B20,因此只使用读ROM命令,来读取DS18B20的48位ID号。

  3.2.3 DS18B20功能命令

  FPGA在该步骤中完成温度转换(CONVERTT)、写暂存寄存器(WRITE SCRATCHPAD)、读暂存寄存器(READ SCRATCHPAD)、拷贝暂存寄存器(COPYSCRATCHPAD)、装载暂存器寄存器(RECALL E2)、读供电模式命令(READ POWER SUPPLY)。

  文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。

  3.3操作时序

  2所示。从时序图中可以看出,对DS18B20的操作时序要求比较严格。利用FPGA可以实现这些操作时序。

  

  4 FPGA与DS18B20的通信

  4.1DS18B20的操作模块

  FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。

  以上操作反复进行,可以用状态机来实现。状态机的各种状态如下:

  RESET1:对DS18B20进行第一次复位,然后进入DELAY状态,等待800μs后,进入CMD33状态。

  CMD33:对DS18B20发出0×33命令,读取48位ID值。

  GET_ID:从DS18B20中读取48位ID值。

  RESET2:对DS18B20进行第二次复位,然后进入DELAY状态等待800μs后,进入CMDCC状态。

  CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作准备。

  CMD44:向DS18B20发出启动温度转换命令,然后进入DELAY状态等待900ms后进入下一状态。

  RESET3:对DS18B20进行第三次复位。

  CMDCC2:

  向DS18B20发出忽略ROM命令,为了进入下一状态作准备。

  GET_TEMP:从DS18B20中读取温度测量数值。

  DELAY:等待状态。

  WRITE_BIT:向DS18B20中写入数据位状态。

  READ_BIT:从DS18B20中读取数据位状态。在该状态中每读取1位数据,同时完成该数据位的CRC校验计算。所有数据都读取后,还要读取8位CRC校验位。这8位校验位也经过CRC校验计算,如果通信没有错误,总的CRC校验结果应该是0。这时可将通信正确的数据保存到id和temp_data寄存器中。

  设计中采用Verilog语言建立DS18B20操作模块”DS18B20_PROC”。在该模块中实现以上的状态机功能。该模块的定义为module DS18B20?PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。

  

  从仿真波形可以看出,系统上电后的10ms左右,FPGA可以读出DS18B20的48位ID值,这样,主CPU在系统复位后很短的时间内就可以读取ID值,进行相应的处理。

  4.2FPGA与CPU的接口

  在FPGA中,要实现对DS18B20的通信处理,主模块要实现对DS18B20_PROC模块的调用及建立与CPU之间的接口。

  与CPU之间的接口通过建立若干寄存器实现。温度测量值和48位ID可以用4个16位寄存器保存。CPU通过读取这些寄存器可以获得温度测量数值和48位ID值。

  CPU、FPGA及DS18B20的连接原理如图4所示。

  

  5结束语

  在系统中,FPGA可以分担许多主处理器的工作,提高整体实时性,降低CPU处理的严格实时约束,从而降低CPU软件处理的难度。同时,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增强产品知识产权的保护。

  三、片上芯片SoC挑战传统测试方案

  SoC厂商如何在提高复杂器件传输速度的同时降低测试成本?

  随着先进的集成电路(IC)设计方法和高密度生产技术的使用,半导体厂商能够把不同的数字和模拟电路集成在极小芯片上,其尺寸之小、功能之全尚无先例,我们称之为系统芯片。尽管具有先进的设计和制造能力,可是IC厂商在对这些多元器件进行快速而又低成本地批量生产时,面对 空前的挑战。当把若干功能单元结合在一个单独器件上时,今天的SoC器件为减少批量生产时间和测试成本,向传统的测试方法发起挑战。结果是,厂商们将更广泛地研究新方法,这些新方法通过在设计和测试之间的有效平衡,提供了一个更有效地从事SoC设计、生产和测试的方案,并能够同时做到减少其生产时间和测试费用。

  特殊的挑战

  就SoC厂商来说,在一个竞争激烈的市场上,消费者对其在功能、性能和费用等方面的要求,又给他们平添了持续的压力。SoC厂商将复杂的数字核与模拟功能集成在单芯片中,在功能和性能上能够应对市场多种用途的需求。可是在制造过程中,SoC厂商发现设计和测试复杂性经常会导致故障。随 工艺技术的研制费用接近100万美元,每次故障都使得成本负担雪上加霜,并且拖延交货期,加剧经济受损。工程师们发现在这样的压力下,无法充分发挥先进的工艺技术和制造水平的潜力。

  对测试工程师来说,他们的测试面对 非常严峻的挑战,一是受测器件庞大的数量,二是多种受测电路复杂的程度。然而,测试工程师必须保证以最优化的测试程序,采用最少最便宜的测试设备,在短时间内完成测试。测试工程师还需要功能更强的混合信号测试仪来处理高端界面。而传统的连续开发方法中测试故障的费用上升首先导致器件开发延迟,SoC厂商也将为此增加测试时间和费用及生产成本。

  SoC测试中当前的困境大多是由于采用早期几代IC对测试要求不高而造成的。最新的设计虽提高了易测程度但仍缺乏应对当前流程中普遍问题的能力。在传统的连续开发流程中(图1a),设计工程师设计时所掌握的有关信息很少,可利用的测试设备也有限,因而可能在最终开始测试后很久才会发现所遇到的问题,造成额外费用并拖延时间。

  SoC器件目前不断增加的复杂程度,促使主要的厂商青睐采用更有效的SoC生产导向设计测试流程法(图1b)。该方法使各个测试小组分工明确,测试研发工作平行展开。各测试小组集中攻关的结果是同步拿出最优化的设计方案和更有效的测试程序。工程师们在转移到大批量生产之前,就已充分掌握了器件性能。制造商可以有效平衡高配置的SoC平台的灵活性,使其满足不同新产品类型组合的需要,在实现快速批量供应的同时,全面降低测试成本。

  早期试验进展

  新测试流程建立在测试开发工具和设计工艺技术之上。多年来,工程师们倚赖专用的内部工具将仿真向量转变成测试设备使用的模式。SoC显著地增加了这一转变过程的复杂性。今天,更加先进的测试工具能够与主要的电子设计自动化(EDA)供应商所提供的流程一起运行。加上先进的循环运算法则,这些工具能够把与各种复杂程度的电路相关联的数据组合起来,并且制作一个单独的测试模式和定时文档。手头掌握了这些统一的结果,测试工程师的工作会更有效。

  生产测试和工程确认的流程

  图1 生产测试和工程确认的常规流程(a)和平行流程(b)

  新SoC生产导向设计测试流程法的一个最重要特点是它能够在开发循环的早期校验测试程序。过去,测试工程师需要获得第一块芯片和可以排除故障的测试设备后才可以开始测试工作,这将把产量拖沿数星期。而今,由于具有了当前先进的测试开发环境,测试工程师能够利用数字式虚拟测试仪(DVT)的性能,提前进行调试试验。虚拟测试法最适合数字电路。但EDA软件现有的能力已有很大提高,EDA公司与测试公司已有很好的协作。因此,设计和测试工程技术能力扩展至模拟设计也就有了保障。

  经过改进的测试开发能力对所有SoC厂商都至关重要,对于无生产线的IC设计公司尤为重要。由于相比较而言,IC设计公司对外界的依赖程度高,因为在设计和测试之间存在一个地理上的差距,存在 交流困难问题。经由外界的设计方案会加剧测试难题对生产延期和生产费用的影响。虚拟测试法让IC设计公司在其现有的设计环境下进行调试试验,以保证测试程序运转正常并能更好地s了解潜在的测试设备问题。

  交互式工程设计确证

  对不知名的半导体公司和集成器件制造商(IDMs)来说,复杂的设计和先进的工艺技术的结合,要求提高与自动测试仪(ATE)上进行的生产测试截然不同的测试验证能力。随 工艺技术达到0.13μm或更细的线宽,先进的器件展示出不断增加的效能,事实上也限制了多数生产用自动测试仪(ATE)在检测更细微故障时的有效性。对许多厂商而言,复杂的SoC已致使传统的测试方法愈加无效,并给生产和成本问题造成严重的瓶颈影响。

  优化的工程设计验证测试系统的出现,提供了与生产测试仪明显有别的能力,达到了大幅度提高生产量的要求。工程技术系统为生产测试仪是非结果的判断提供了详细的原因分析。事实上,今天领先的工程设计验证系统具有的记忆特性,能够保留所有器件管脚上的完整数据,以便工程师更容易地对器件功能做解剖研究--这是传统的生产用自动测试仪(ATE)所无法达到的。

  生产用自动测试仪(ATE)适合批量生产的需要,有赖于高度优化的测试程序来确保采用最少的测试设备和花费最短的时间。相比较,工程技术验证系统则适合交互式分析,为测试装置和测量提供图形用户界面(GUI)。工程师们在此环境下可以更有效地进行为最优化设计和调试所采用的交互式的假设分析。用在生产过程中,则有助于加速故障分析。当今复杂的SoC需要更加精密复杂的诊断设备,如皮秒图象电路分析(picosecond imaging circuit anal-ysis),激光电压探针(laser voltage probe)和电子束系统(e-beam systems)。领先的工程设计系统直接向这类设备提供界面;工程师们借此利用外部的探头装置就能够测试器件。

  测试程序的核查准备

  图2 测试程序的核查准备

  低成本生产测试

  SoC生产技术的成功,依靠的是厂商以最低的生产成本实现大量的生产能力。随 制造商创造了结合先进数字电路和模拟功能的SoC,就需要不断提高自动测试仪(ATE)的强大功能。芯片内功能提高了数字数据传输速率。而今,防火墙、千兆赫兹以太网和图形加速接口等功能都集于芯片上,因此需要测试仪的数据速率要达到800Mbps或更高。制造商们正在寻找适应性强和容易升级的操作平台以满足新要求,而非过去那样追加投资,开发新一代产品。

  对于混合信号的SoC,可配置的ATE系统在经济上可以承受大批量生产对测试功能和灵活性的要求。模块式结构是这些系统的核心,为制造商提供了一个适应性强的高性能共享测试平台。就IC电路的总体而言,大功率多性能ATE能够满足SoC日益增加的功能条件,如管脚的增加、速度的提高、对液体冷却的需求等。好在先进的冷却设计可以选用空气冷却高速高功耗的CMOS电路,而降低了ATE的复杂性。

  系统设计和检测仪表性能的改善显著地减少了ATE的费用,加上应用了各种程序开发工具语言,增加了测试开发环境的功效。工程师们利用共享图形用户界面(GUI)和现有测试程序模板,使现有的测试程序符合特定的测试用途,从而提高了生产效率。这种以模板为基础的方法把测试开发时间削减了数周,这对于把握SoC市场稍纵即逝的机会格外重要。

  在产业开始复苏的今天,对市场机会的快速应变能力是SoC制造业重于一切的要务。在现有条件下取得最大效益的能力,对于制造商仍然非常关键。系统兼容性在高效的开发环境及生产测试设备中是一个日益重要的特性,将有助于使生产能力达到最高水平。厂商通过有效配置所有测试设备,把测试转移到最有效的平台上进行,不断满足生产条件的变化要求。

  四、四轴运动控制器设计方案

  引言

  运动控制技术是制造自动化的关键基础,其水平高低是衡量一个国家工业现代化的重要标志,研究和开发具有开放式结构的运动控制器是当前运动控制领域的一个重要发展方向。设计了一种基于DSP与FPGA的运动控制器。该控制器以DSP和FPGA为核心器件,针对运动控制中的实时控制、高精度等具体问题,规划了DSP的功能扩展,并在FPGA上扩展了功能相互独立的四轴运动控制电路。该电路实现了四路控制信号输出,四路编码信号的接收和处理,以及原点信号,正负限位信号等数字量的接收和处理。具有结构简单、开放性、模块化等特点,能够较好的满足运动控制器的实时性和精确性。

  1 系统概述

  该四轴运动控制器系统以TI公司C2000系列DSP芯片TMS320F2812和ALTERA公司CycloneⅡ系列FPGA芯片EP2C8F256C6为核心,DSP通过网口接收上位机的控制参数,完成系统位置、速度控制及运动轨迹规划;FPGA完成运动控制器的精确插补功能和外围电路的扩展,系统总体框图如图1所示。

  

  运动控制器的主要功能包括:4路模拟电压输出,电压范围为-10~+10V,分辨率为16b;4路脉冲量信号输出;4路脉冲方向信号输出;4路驱动复位信号输出;4路驱动使能信号输出;4路差分编码信号输入;4路驱动报警信号输入;8路正负限位信号输入;4路原点信号输入;16路通用数字量。I/O。

  2 DSP模块设计

  DSP根据从上位机接收的运动模式和运动参数实时计算规划位置和规划速度,生成所需的速度曲线,实时的输出规划位置。TMS320F2812是TI推出的一款专门用于电机控制的32位定点DSP芯片,采用高性能静态CMOS技术,主频高达150MHz(指令周期6.67ns),低功耗,核心电压为1.8V,I/O电压3.3V,支持JTAG边界扫描,128K×16b的片内FLASH。有两个事件管理器(EVA和EVB),它们都是特定的外围设备,为多轴运动控制器而设计的。可通过外部存储器接口XINTF扩展外部存储器。DSP外围模块设计如图2所示。

  

  为增强抗干扰性,DSP通过以太网控制器RTL8019AS与上位机连接,RTL8019AS内部含有一个16KB的SDRAM,DSP通过外部存储器接口对其进行读写来接收上位机的命令或向上位机传送反馈信号。在数据处理过程中要占用大量的存储空间,DSP内部仅含有18K×16b的SARAM和128K×16b的FLASH,存储空间显得过小,所以通过外部接口扩展了256K×16b RAM和512K×16b FLASH,RAM和FLASH芯片分别选择IS61LV25616 AL、SST39VF800,它们都具有接口简单、读写速度快等优点。SCI模块用于扩展RS 232串行通信接口,串口芯片使用MAX3232。

  运动控制器所需电压为5V,3.3V,1.8V,1.2V。输入电压5V,分别采用稳压芯片LM1085IS3.3,LM1117-1.8将其转换成3.3V和1.8V,由于TMS320F2812的I/O电压3.3V要先于内核电源上电,所以1.8V要由3.3V降压得到,以确保上电次序。1.2V是FPGA内核所需电压,由稳压芯片LM317S稳压得到,LM317S的输出电压范围为1.2~25V,复位电路采用SP708低功耗微处理器监控器件,此器件有众多的组件,有效的增强了系统的可靠性及工作效率。

  3 FPGA模块设计

  FPGA用于轴资源的扩展,当接收到DSP中的规划位置后,在轴资源中对其进行变换处理,输出到伺服控制器中,伺服控制器将规划位置与编码反馈的计数位置进行比较,获得跟随误差,并通过伺服控制算法得到实时的控制量,将控制量传递给D/A转换器,由D/A转换器转换成控制电压输出。

  EP2C8F256C6是ALTERA公司CycloneⅡ系列芯片,其特点为高性能低功耗,内核供电电压为1.2V,8256个逻辑单元(LEs),182个用户I/O口(项目中使用了157个I/O口),165888b的内部RAM,嵌入了18b的乘法器,每个乘法器又可拆成2个9b的乘法器,芯片内部含有2个锁相环(PLL),8个全局时钟(Global Clocks)。该芯片所具有的逻辑单元数、频率和用户I/O口等都能很好的满足设计需求。FPGA的外围模块扩展如图3所示。

  

  3.1 与DSP接口设计

  DSP芯片的事件管理器(EVA,EVB)用于和FPGA连接,当输出脉冲量控制驱动器时,DSP使用两个事件管理器进行PWM波的控制,当输出模拟量时,DSP使用GPIOA/GPIOB向FPGA输出规划位置。

  3.2 模拟信号输出电路设计

  采用D/A转换器AD669进行模拟信号的输出,AD669具有两级锁存,在设计中,将其四路D/A芯片的第一级锁存处于透明状态,第二级锁存控制信号LDAC连在一起,当四路D/A芯片的数据预装好后,打开第二级锁存,四路D/A芯片即可同时转换,实现了四轴驱动的同时控制。

  3.3 脉冲信号输出电路设计

  脉冲输出电路由FPGA内部精插补器完成,精插补器根据DSP发送来的粗插补数据产生均匀的脉冲输出,脉冲的输出有两种格式:“脉冲+方向”和“正负脉冲”。由于差分信号对外部电磁等信号有很好的抗干扰性,特别是对共模干扰有很好的抑制作用。所以脉冲经过光耦隔离后,再将信号接入差分线驱动器AM26LS31后输出,差分线驱动器AM26LS31的作用是将输入的单极性方波信号转化为一对极性相反的电机驱动信号。

  3.4 编码反馈电路设计

  电机编码信号直接传入电机驱动器中,电机驱动器将三对差分编码信号A+,A-,B+,B-,N+,N-作为反馈传给运动控制器。在电机旋转时,所发出的编码信号会出现非常多的毛刺,并且经过驱动器大电源的干扰,如果直接接到FPGA中,可能会引起误判断,所以先将三对编码信号经过差分芯片AM26LS32转化成单路信号A,B,N后再接入FPGA中。芯片AM26LS32功能是将输入的一对极性相反的编码器差分信号转化成单极性的脉冲信号,与AM32LS31正好相反。

  3.5 开关量接口和通用I/O电路设计

  输出信号包括复位信号和使能信号,由FPGA产生,经光耦隔离后直接输出;输入信号包括驱动报警信号,正负限位信号和原点信号,这些信号经光耦隔离、电平转换后再由FPGA接收,当FPGA检测到这些信号后,确定具体的触发信号,做出相应的反应。另外运动控制器还提供了八路数字量输入通道和八路数字量输出通道,输入、输出通道都经光电隔离,以提高抗干扰性。

  4 网口模块设计

  DSP通过以太网控制器RTL8019AS与上位机连接,RTL8019AS在一块芯片上集成了RTL8019AS内核和一个16KB的SDRAM存储器,兼容RTL8019AS控制软件和NE20008b或16b传输,其接口符合Ethernet2和IEEE802.3标准。RTL8019AS与主机的接口模式有三种模式:跳线模式,PnP模式,RT模式。此运动控制器使用便于DSP应用的跳线模式。DSP与RTL8019AS的连接如图4所示。

  

  (1)数据总线和地址总线。RTL8019AS的数据总线和DSP的16位数据总线直接相连即可。RTL8019AS片内NE2000寄存器组都是通过其映射I/O端口进行访问,I/O端口共32个,地址偏移量为00H~1FH,把I/O基地址设为300H,则对应的I/O端口寻址范围为:300H~31FH。只需要10根地址线就可以对I/O端口进行寻址,把SA10~SA19接低电平,SA0~SA9按照表1接法即可。

  由表1可以看出,只需要5根地址线就可以寻址32位I/O端口,所以可以直接把SA9,SA8接高电平,SA5~SA7接低电平,SA0~SA4与DSP的低5位地址线XA0~XA4相接。

  

  (2)控制总线。RTL8019AS片选信号AEN使用DSP的扩展片选信号

  

  ,IORB、IOWB直接与DSP的读写控制信号

  

  相连,中断输出引脚INT0与DSP的XINT2相连,高电平有效的复位输入引脚与监控电路芯片SP708的RST相连,当DSP复位时,RTL8019AS也复位。

  (3)RTL8019AS与网络介质接口。RTL8019AS可以使用同轴电缆或双绞线作为传输媒介,将其AUI接口接地或悬空,使用BNC接口。BNC接口方式支持8线双绞线或同轴电缆。20F001N是双绞线驱动器,为耦合隔离变压器模块,通过它可以去除因电路数字特性导致的高次谐波。RTL8019AS与20F001N的连接如图4所示。其差分输入信号TPIN+、TPIN-与差分输出信号TPOUT+、TPOUT-分别与20F001的对应引脚相连。

  5 结语

  在PC平台下,充分利用了DSP的数据处理能力和FPGA的硬件特性,使系统既能进行复杂的轨迹规划、高速插补,又能保证运动控制器的稳定性和精确性,这种运动控制器能应用于数控系统,机器人制造等控制领域。

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->可编程逻辑器件
  • 可编程逻辑器件
  • 传感器技术
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门