使用嵌入式处理器对可编程逻辑器件重编程

发布者:灵感驿站最新更新时间:2012-07-25 来源: 21ic 关键字:嵌入式处理器  可编程逻辑器  重编程 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  在嵌入式系统里除了嵌入式处理器外还会经常使用到可编程逻辑器件,有些可编程逻辑器件在被焊接到印制电路板上之后还可以对其程序进行更新,这种特性称之为“在系统可重编程能力”(In SystemReprogrammability,ISR)。在单板开发阶段,通常使用下载电缆通过IEEE Standard 1149.1 JTAG接口对可编程逻辑器件重编程。在产品原型及制造阶段,单板上的JTAG接口很可能出于产品外形及内部结构设计的考虑已经无法与下载电缆相连接,此时将无法通过下载电缆对可编程逻辑器件重编程。基于嵌入式系统的产品通常对外提供串行接口或以太网接口,这些接口由嵌入式处理器来控制[1] ,因此可以通过这些接口将可编程逻辑器件的更新程序发送到处理器,由处理器对可编程逻辑器件重编程。

  2 实现方法

  2.1 软件方面

  串行接口由于协议实现简单、占用资源少而被嵌入式系统广泛使用,只需要使用串行接口连接线将主机的串行接口与产品的串行接口相连接,通过主机上的串行接口通讯软件将更新程序发送给处理器即可,文件传输协议一般采用Xmodem协议;而对于基于嵌入式系统的网络产品而言,由于自身提供以太网接口,而且操作系统内嵌TCP/IP协议栈,因此可以使用以太网接口将更新程序发送给处理器,文件传输协议一般采用TFTP协议,嵌入式系统运行TFTP服务器程序,主机上运行TFTP客户端程序[2] 。

  嵌入式处理器通过串行接口或以太网接口接收到的可编程逻辑器件的更新程序是一种Jam文件,使用类似于Altera公司Quartus II development tool的开发工具根据Jam标准和测试语言(Jam Standard Test andProgramming Language 以下简称Jam语言)的要求由Programmer Object File (*.pof,文件后缀名为pof)一类的目标文件转换生成[3] 。Jam文件是一个ASCII文件,文件中包含了对可编程逻辑器件进行编程的所有信息,包括编程算法和数据,详细介绍如下:

  (1)“注解字段”部分存储了Jam文件的相关信息,包括可编程逻辑器件的名称,Jam文件的创建时间,使用的Jam语言的版本等等。

  (2)“变量声明/初始化”部分由编程/校验的数据和Jam文件用到的一些变量声明组成。

  (3)“算法部分”包含了对可编程逻辑器件编程需要用到的命令和代码,包括空白检查、擦除、编程和校验等等所有可以在可编程逻辑器件上执行的功能。在代码中可以使用分支或循环结构。

  嵌入式处理器在接收到Jam文件之后通过运行一个Jam Player程序来解析这个Jam文件,翻译文件中每一条指令,并对JTAG端口进行数据的读写操作,从而完成对ISR可编程逻辑器件程序的更新工作。Jam Player是一个C语言程序,其main主程序执行所有的基本功能,包括对Jam文件内容的解析,指令的翻译等,这部分内容对于所有的嵌入式系统和Jam文件来说都是一样的。而Jam Player的I/O功能,包括I/O管脚的寻址、延时程序、文件的I/O以及操作系统相关的功能都包含在jamstub.c文件里,通过修改这个文件Jam Player可以适用于任何系统结构。当Jam Player接收数据的时候,jamstub.c能够从Jam文件取回数据,或者从TDO管脚移位读取数据。jamstub.c也能将处理过的JTAG数据发送到3个JTAG管脚(TDI、TMS和TCK),将出错消息和相关信息返回给调用程序。升级ISR可编程逻辑器件的程序只需要改变Jam文件。

  Jam Player通过一个jam_jtag_io函数(int jam_jtag_io(int tms_tdi))来控制对JTAG接口的读写操作。每次调用这个函数的时候,JTAG的TMS和TDI输出信号将被设定为需要的值,而TDO输入信号将被采样,值将被返回,之后TCK时钟信号将产生一个下降沿。tms_tdi参数包含3比特信息,分别指示TMS信号和TDI信号的状态以及是否需要读取TDO的输出(如果不需要用到TDO的值则可以跳过对TDO的读取操作)。最低位比特代表TMS的值,第2位比特代表TDI的值,第3位比特指示是否读取TDO:如果置位,则必须读取TDO的值,否则不需要。如果TDO为低电平,返回零值,高电平则返回非零值。如果没有对TDO进行读取也将返回零值。

  2.2 硬件方面

  嵌入式处理器与JTAG 器件连接的方法有两种,一种是直接将嵌入式处理器与JTAG 器件连接起来,这种方法处理器需要有专门四个管脚用于JTAG 接口,节省了电路板空间的同时却占用了处理器的四个管脚;另一种方法通过一个接口逻辑将JTAG 器件连接到处理器的总线,处理器通过JTAG 器件对应的地址来对其进行读写操作[4] 。

  图1 给出了接口逻辑的一个范例。当接口逻辑收到正确的地址和控制信号,它将对TDI、TCK 和TMS信号进行同步,并通过多路复用器驱动输出管脚,下载电缆也可以通过多路复用器对JTAG 链进行编程或验证[5] 。TDI、TCK 和TMS 信号的同步通过嵌入式处理器的时钟信号和寄存器来完成,TDO 的缓冲区可以防止总线竞争,TDI、TCK 和TMS 的缓冲区在调试的时候还可以用来读回寄存器的值。图中的与门通过R/W 信号来控制执行读或写操作,而AS 和DS 信号则可以在另一个级别上对电路进行选择和去选择。

接口逻辑

图1 接口逻辑

  2.3 内存使用情况

  下面讨论使用嵌入式处理器对可编程逻辑器件重编程时内存的使用情况。为了能够兼容没有内存分配服务的嵌入式处理器,Jam Player 不仅需要程序存储空间而且需要动态内存。程序存储空间(如硬盘驱动器或ROM)用于存储Jam Player 可执行二进制文件和Jam 文件;动态内存(如RAM)将在调用Jam Player的时候使用。

  Jam Player 按照下面的步骤来使用内存:

  (1)嵌入式处理器从ROM 中调用Jam Player;

  (2)Jam Player 从ROM 中读取Jam 文件,然后把它存入RAM;

  (3)Jam Player 对Jam 文件中包含的压缩程序数据解压,并将解压后的数据存入RAM;

  (4)Jam Player 在RAM 中初始化符号表(symbol table)、堆栈(stack)和堆(heap)。

  符号表包含Jam 文件的标记(labels)和变量(variables);堆栈用于FOR 循环,CALL 和PUSH 语句;堆作为临时内存用于数学表达式的求值以及填充数据的存储。在处理Jam 文件时每碰到一个命令堆栈和堆大小都将增加,可用动态内存越来越少,而Jam 文件、解压缩后的数据以及符号表需要的动态内存空间在整个过程中则保持不变。

  Jam Player 的内存使用情况如图2 所示。

Jam Player 的内存使用情况

图2 Jam Player 的内存使用情况[page]

  2.3.1 程序存储空间(ROM)使用情况

  所需程序存储空间为:

所需程序存储空间

Jam Player的大小由使用的嵌入式处理器以及接口逻辑的复杂度决定,Jam文件总的程序存储空间由JTAG链上正在被编程的器件数量决定。如果JTAG链上只有一个器件,该器件对应Jam文件的大小即为所需程序存储空间的大小。Jam文件的大小还取决于目标器件,在压缩后一般在26K字节到30K字节。假设JTAG链中有3个器件,所有3个器件都将要编程,所需Jam文件存储空间将为3个Jam文件大小的总和。表1给出了单器件所需要程序存储空间的情况。

表1 单器件需要的程序存储空间

单器件需要的程序存储空间

  2.3.2 动态内存(RAM)的使用情况

  所需RAM 空间为:

所需RAM 空间

Jam 文件需要的RAM 空间与ROM 空间大小一样,在程序存储空间使用情况里已经讨论过了。在Jam Player从ROM 读出Jam 文件存储到RAM 之后,Jam Player 对Jam 文件里的压缩数据解压并将解压后的数据存储到RAM。解压后的数据占用RAM 空间的大小可以通过Jam 文件里的ACA 变量来得到。每个ACA 变量都在“变量声明/初始化”部分列出,每个数组的大小由变量声明方括号里的数值决定。例如:

公式

说明解压后的ACA变量大小为434460比特,也就是大约53K字节。

  符号表的大小由下式给出:

公式

一个变量或标记名称的大小为48字节,JAM_C_MAX_SYMBOL_COUNT在jamdefs.h文件里定义,默认值为1021。实际上大多数Jam文件最多使用400个变量和标记名称。将JAM_C_MAX_SYMBOL_COUNT修改为400能节省一部分动态内存,

公式

  相比较Jam Player使用的总RAM空间大小而言堆栈和堆需要很少的RAM,jamdefs.h文件里的JAMC_MAX_NESTING_DEPTH常量定义堆栈的最大深度。表2给出了单器件所需要RAM空间的情况。

表2 单器件需要的RAM 空间

单器件需要的RAM 空间

  3 结论

  本文通过软件、硬件以及内存的使用情况等方面的介绍,详细描述了一种通过嵌入式处理器使用Jam编程与测试语言对ISR器件重编程的新方法,为在产品原型及制造阶段对可编程逻辑器件重编程提供了参考,具有很强的实用意义。

  本文作者创新点:由于在产品原型及制造阶段,单板上的JTAG接口很可能出于产品外形及内部结构设计的考虑已经无法与下载电缆相连接,此时将无法通过下载电缆对可编程逻辑器件重编程。而通过串行接口或以太网接口将可编程逻辑器件的更新程序发送到处理器,由处理器对可编程逻辑器件重编程,解决了这个难题。

  参考文献

  [1] 杜延,刘从越.嵌入式实时系统软件测试实践[J].微计算机信息,2007,4-2:86-88.

  [2] Kamal,Raj.嵌入式系统:体系结构、编程设计[M].清华大学出版社,2005.

  [3] 郑亚民,董晓舟.可编程逻辑器件开发软件QuartusII[M].国防工业出版社,2006.

  [4] Stuart,R.Ball.嵌入式微处理器系统设计实例(第三版)[M].电子工业出版社,2004.

  [5] 田泽.嵌入式系统开发与应用[M].北京航空航天大学出版社,2005.

关键字:嵌入式处理器  可编程逻辑器  重编程 引用地址:使用嵌入式处理器对可编程逻辑器件重编程

上一篇:改进型时间触发嵌入式系统编程模式
下一篇:基于S3C2440A的嵌入式U-BOOT千兆网络功能设计

推荐阅读最新更新时间:2024-03-16 13:04

TI推出可保护客户代码的最新嵌入式处理器
     (TI) 宣布推出 TMS320C6748 数字信号处理器 (DSP) 与OMAP-L138 DSP + ARM® 处理器,可为客户知识产权 (IP) 与敏感数据提供全面的安全保护,防止其遭到非法读取。这两款处理器,都属于TI 的C6000™ DSP 和C6-Integra™ DSP+ARM产品些列。这两款处理器具有两项保护功能,分别是: • 安全启动功能:可避免外部人员修改客户开发算法,严防恶意软件植入、逆向工程以及系统克隆,从而可杜绝非法用户滥用客户系统与操作; • 多层加密功能:能够在确保启动序列保持安全的同时,远程升级闪存上的启动及应用软件代码。采用特定器件的加密密钥(只针对该器件)来保护客户加密密钥时,可启用多层
[工业控制]
ADI 推出2美元的 Blackfin 嵌入式处理器
400-MMAC / 200-MHz Blackfin® DSP 的价格低至1.99美元,同时提供99美元评估板 北京2011年9月5日电 /美通社亚洲/ -- 为了继续为设计人员提供低成本、高性能的数字信号处理选择,ADI公司(Analog Devices, Inc.)(NYSE: ADI)今天推出了ADSP-BF592 Blackfin®嵌入式处理器的( http://www.analog.com/zh/pr0905/adsp-bf592 ) 200-MHz 版本,它以1.99美元/片(千片订量)的价格提供400-MMAC 性能。这款低成本的200 MHz 版本产品的 BDTImark2000™ 性能得分为1120分,BDT
[嵌入式]
基于嵌入式处理器的家庭蓝牙网关的实现
      引言   信息家电(IA,Information Appliances)是融合了计算机和通信技术的新型消费电子产品,随着信息家电进一步数字化、网络化、智能化和自动化的发展趋势,出现了家庭网络。而由于蓝牙技术低成本、低功耗、低复杂性、高效率、高可靠性、强互操作性和良好兼容性等特点,使其被家庭网络所接受。为了合理有效地管理网络中的家电,并使其顺利地实现与家庭网络以外的因特网、移动通信网甚至固定市话网之间的通信,蓝牙网关的如何实现则成为问题的关键。本文基于蓝牙技术,介绍了用Motorola公司的嵌入式处理器MCF5272来实现家庭蓝牙网关的具体方案。    一、蓝牙与家庭网络   蓝牙(Bluetooth)是
[嵌入式]
Synopsys推出180nm 可编程非易失性存储IP
DesignWare AEON嵌入式非易失性存储器IP可大幅提升无线和模拟SoC设计性能并降低集成风险,现已开始供货 加利福尼亚州山景城,2011年6月28日—全球领先的半导体设计、验证和制造软件及知识产权(IP)供应商新思科技有限公司(Synopsys, Inc., 纳斯达克股票市场代码:SNPS)日前宣布:即日起推出面向多种180纳米工艺技术的DesignWare® AEON®非易失性存储器(NVM)知识产权(IP)。这些产品包括数次可编程(FTP)IP 、射频识别(RFID)IP多次可编程(MTP)IP和可擦可编程只读存储器(EEPROM)多次可编程(MTP)IP等多种IP解决方案。Synopsys提供的DesignWa
[半导体设计/制造]
一种新的嵌入式处理器在线调试方法
1 引言 在FPGA 设计中使用嵌入式处理器软核( 如MicroBlaze、PicoBlaze 等) 构成可编程片上系统( SystemOn Programmable Chip,SOPC) ,相比于ASIC 具有更好的可修改性和可维护性,得到了普遍的应用。由于ARM,MicroBlaze 等大型处理器内核具备调试接口,在与之对应的调试模块配合下,调试软件可以通过JTAG 接口实现: 执行到断点处挂起、单步执行、查看处理器内部状态、查看和修改Memory空间中的数据等基本的在线调试功能。上述基本的在线调试功能对嵌入式系统的调试具有重要意义。 对于PicoBlaze 等占用资源少、设计开发简单的小巧型处理器,一般不具备调试接口
[嵌入式]
这些年,嵌入式处理器厂商也是蛮拼的,盘点马年十大亮点
从诞生至今,MCU、MPU等嵌入式处理器一直围绕着性能、能效、尺寸、连接性、安全、开发难度等主要参数进行改进,近些年我们发现很多通用处理器厂商又反过来做专用处理器,这个 轮回 也显得很有意思。其实主要是因为不同行业需求大相径庭,为了抢单,这种 专用型 通用嵌入式处理器就孕育而生了。 在IHS 2014年12月公布的半导体公司20强中,把通用MCU\MPU\SoC作为重心的公司占了不少份额,如德州仪器、意法半导体、瑞萨、NXP、飞思卡尔。随着竞争加剧,半导体公司也是蛮拼的,想方设法改进嵌入式处理器的各种参数,并实现差异化,EEWORLD在马年尾声为您盘点嵌入式处理器的亮点,包括 最任性的MCU、领跑的ARM处理器、安全
[单片机]
这些年,<font color='red'>嵌入式处理器</font>厂商也是蛮拼的,盘点马年十大亮点
Intel Xscale PXA255嵌入式处理器与CF卡的
以导航设备存储系统应用为例,本文讨论了Intel Xscale PXA255嵌入式处理器与CF卡的硬件接口设计,并以读写CF卡扇区的程序为例,给出了CF卡软件编写的技巧。该设计为基于PXA255处理器的嵌入式系统提供了扩展存储空间的一种方法。 图1:CF卡结构框图     Intel Xscale PXA255处理器是新一代的嵌入式处理器,基于ARMv5TE体系结构的微处理器,性价比较高、功耗较低,适合于数字移动电话、个人数字助理、网络路由器等嵌入式系统的应用。在采用PXA255处理器开发诸如车载导航系统时,电子地图等海量地理信息数据需要一个容量大、体积小、性能优异的存储器。“Compact Flash”卡,简称CF卡
[嵌入式]
解析TI嵌入式处理器最新产品,专为工业自动化而生
如今,无论是德国的工业4.0,美国的“先进制造业国家战略计划”、日本的“科技工业联盟”、英国的“工业2050战略”,还是 “中国制造2025”计划,其目的都是为了实现信息技术与制造技术深度融合的数字化、网络化、智能化制造,在未来建立真正的智慧工厂。现阶段,在制造过程中已经能够提供端到端的透明化,以促进决策优化。工业4.0将会开发出创造价值的新方法和全新商业模式。 布局工业自动化 “我们推出了许多新的嵌入式处理产品,这些产品可以更轻松地支持自动化环境,” 德州仪器半导体事业部中国区业务拓展总监吴健鸿介绍。其中包括新型MSP430电容式触摸功能在内的解决方案,效率大幅提升的C2000实时控制产品系列,以及不断扩展的TI
[焦点新闻]
解析TI<font color='red'>嵌入式处理器</font>最新产品,专为工业自动化而生
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved