当前位置:首页 > 工业控制 > 电子设计自动化

  引言

  随着FPGA技术的发展,出现了一种新概念的嵌入式系统,即SOPC(System On Programmable Chip)。SOPC技术融合了SoC和FPGA的优点,将处理器、片上总线、片上存储器、内部外设、I/O接口以及自定义逻辑集成在同一片FPGA中,而且软硬件可裁剪、可升级、可修改,具有软硬件在系统编程能力,在保证高性能的同时具有非常高的灵活性。由于大部分功能部件在FPGA内实现,外部只需要很少的器件,如大容量的RAM、Flash、DAC、ADC等。在系统需要脱离计算机独立运行时(绝大部分情况如此),非易失的存储器件Flash是必不可少的。Flash可以用来存储配置比特流、代码、数据或参数等重要信息。本文以Intel StrataFlash 3V Memory系列的JS28F128J3D75并行NOR Flash(简称“J3D”)和Xilinx FPGA Spartan3E系列的XC3S1600E(简称“1600E”)为背景,在结合项目开发经验和参阅相关文献的基础上,介绍了并行NOR Flash在SOPC开发中的4种不同应用。

  1 存储FPGA配置比特流

  1600E工作在BPI(Bytewide Peripheral InteRFace)配置模式时,通过专门的引脚与J3D连接,这些引脚在配置完成后可以作为用户I/O使用。连接时,大部分引脚参考1600E的数据手册直接连接即可,但有些引脚需要特别注意。J3D有×8(数据总线宽度为8位)和×16(数据总线宽度为16位)两种工作模式。配置时应工作在×8模式,配置完成后,根据需要可以设置为×8或×16模式。图1为1600E与J3D引脚连接示意图。

图1 1600E与J3D引脚连接示意图

  若配置后需要切换至×16模式,则需综合考虑1600E的HSWAP脚。HSWAP接高电平时,1600E所有用户I/O的内部上拉电阻禁用,HDC通过4.7kΩ电阻接高电平,LDC2通过4.7 kΩ电阻接地,LDC1和LDC0通过4.7kΩ电阻接高电平,同时这3个信号应分别连到J3D的BYTE#、OE#、CE0脚。这样上电后的瞬间,J3D工作在×8模式,且因CE0脚被拉高而处于非选中状态,不会导致对J3D的误操作;然后在1600E的控制下进入配置状态,配置结束可通过控制LDC2输出高电平而将J3D切换为×16模式。HSWAP接低电平时,1600E所有用户I/O的内部上拉电阻使能,LDC1、LDC0和HDC无需外接上拉电阻;而LDC2应接340Ω的下拉电阻,以使上电后J3D工作在×8模式,从而顺利进入配置状态,配置结束后可将J3D切换为×16模式。

  若配置后工作在×8模式,则J3D的BYTE#脚接低电平,1600E的LDC2悬空。当HSWAP接高电平时,LCD1和LCD0分别连至OE#、CE0脚,同时应通过4.7kΩ电阻上拉;HSWAP接低电平时,LCD1和LCD0不用上拉。

  配置比特流文件首先通过iMPCT转换成MCS文件,再通过PicoBlaze NOR Flash Programmer(http://www.xilinx.com/products/boards/s3estarter/files/s3esk_picoblaze_nor_flash_programmer.zip)下载到J3D中。

  J3D可以同时配置多块FPGA,也可对同一块FPGA进行多比特流配置。例如先配置一个诊断测试比特流,测试成功后,再重新配置应用比特流。

  2 存储可引导的软处理器代码

  首先利用Xilinx嵌入式开发工具箱EDK创建一个嵌入式工程,包括MicroBlaze硬件平台和相应的软件工程。在EDK界面下,用鼠标选中创建的软件工程,右击并在弹出的菜单中选择Generate Linker Script...项,进入Generate Linker Script对话框。将Sections、Heap和Stack指定到BRAM或外部RAM(一般将Heap和Stack指定到BRAM,代码和数据段指定到外部RAM),并指定输出脚本文件名及路径,如图2所示。

图2 Generate Linker Script对话框

  双击相应软件工程下的Compiler Options选项,进入Set Compiler Options对话框,设定Link Script项为刚才产生的脚本文件,并指定Output ELF File项的路径与名称。现在可以编译相应的软件工程,产生相应的可执行ELF文件,设为Bootable.elf。

  在EDK主界面下,用鼠标选择Device Configuration → Program Flash Memory,进入Program Flash Memory对话框,并按图3进行设置。单击OK按钮,会把Bootable.elf文件自动转为SREC格式,并下载到J3D的指定地址处,同时产生名为bootloadr_0的软件工程。bootloadr_0工程编译后产生的可执行文件executable.elf用来执行引导装载功能,应将其合并到系统比特流system.bit,从而生成dowload.bit。dowload.bit经iMPCT转为MCS文件后下载到配置PROM中(若使用同一片J3D,注意不能与Bootable.elf发生地址空间冲突)。这样,系统上电后,首先对FPGA进行配置,然后引导加载J3D中的代码至相应的BRAM或SDRAM中(具体映射位置已在Generate Linker Script对话框中设定)。

图3 Program Flash Memory对话框

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭