当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于JTAG接口 实现ARM的FPGA在线配置

引 言
    随着通信技术的发展,出现越来越多的无线接人技术,为了解决不同标准间的互通和兼容,人们提出了软件无线电(Software Defined Radio,SDR)技术。SDR技术要求通信终端具有可重配置能力,根据特定通信网络情况,动态地改变调制/解调、编解码、交织/解交织等方案。SDR终端的实现往往都是基于可重配置的硬件环境,如现场可编程逻辑阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP),而不是专用集成电路(Application Specific Integrated Circuit,ASIC)等特定的硬件电路和芯片。在线配置(In Sys—tem Programming,ISP)或者动态配置FPGA就是一种重要的SDR实现技术。本文介绍作者开发实现的一种基于ARM的嵌入式Linux下通过JTAG接口动态配置FPGA的方法。
    系统使用三星公司基于ARM9的S3C2410处理器芯片,Altera公司CycloneII系列的EP2C70 FPGA芯片,ARM处理器上运行基于S3C2410裁剪后的嵌入式Linux系统,内核版本为2.4.18。

1 FPGA的配置方式及配置文件
    Altera公司CycloneII系列FPGA芯片,是Altera公司推出的基于90 nm工艺制造、低成本的FPGA,主要面向数字终端、手持设备等对成本敏感的应用领域。EP2C70拥有68 416个逻辑单元,115 200位RAM,150个乘法器模块,是CycloneII系列处理能力最强的芯片。与大部分FPGA一样,CycloneII系列FPGA的配置信息保存在SRAM中,掉电后就丢失配置信息,每次上电后需要重新配置。CycloneII系列FPGA支持3种配置方式:主动串行(AS)方式、被动串行(PS)方式、JTAG方式。
    在主动串行和被动串行两种方式中,FPGA芯片支持在配置过程中对配置数据进行解压缩,也就是配置数据可以采用压缩格式存放;而使用JTAG配置时,FPGA芯片不支持解压缩过程,不能采用压缩格式的配置数据。
    不同的配置方式,往往要求不同格式的配置文件。使用Altera公司提供的QuartusII集成开发环境可以生成各种配置文件。QuartusII默认产生.sof和.pof格式的配置文件,基于ARM的嵌入式Linux中对FPGA进行JTAG下载,必须使用.jam或者.jbc格式的配置文件。

2 JTAG接口工作方式
    JTAG接口是一个业界标准,主要用于芯片测试和配置等功能,使用IEEE Std 1149.1联合边界扫描接口引脚。JTAG最初用于芯片功能的测试,其工作原理是在器件内部定义一个测试访问端口(Test Access Port,TAP),通过专用的JTAG测试工具对内部节点进行测试和调试。TAP是一个通用的端口,外部控制器通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。现在JTAG接口还常用于芯片的在线配置,对PLD、Flash等器件进行配置。为了完成系统的调试,任何原型系统都支持JTAG配置方式,因而JTAG配置也就成为最广泛支持的配置方式。不同厂商和不同型号的绝大部分FPGA芯片都支持JTAG配置方式。在Altera公司的FPGA芯片中,JTAG配置方式比其他任何一种配置方式的优先级都高。JTAG允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,实现对各个器件分别测试和配置。
    JTAG接口由4个必需的信号TDI、TD0、TMS和TCK,以及1个可选信号TRST构成。

3 Jam STAPL套件
    在嵌入式Linux环境中,使用JTAG接口配置FP—GA,必须使用标准测试与编程语言(Standard Test AndProgramming Language,STAPL)标准。STAPL是一种专门用于描述可编程逻辑设备(Programmable Logic De—vice,PLD)配置文件的编程语言,由EIA/JEDEC组织制定标准。使用STAPL描述的配置文件具有通用性,独立于PLD生产厂商。
    Jam STAPL是Altera公司提供的支持STAPL的套件。使用Jam STAPL进行配置包含两部分,Jam Player(Jam解释器或者称为Jam虚拟机)和Jam配置文件。Jam Player运行在微处理器中,读取Jam文件并解析Jam文件表达的内容,在JTAG接口上产生用于配置的二进制数据流并读取反馈数据。
    Jam STAPL的工作方式如图l所示。利用PLD厂商提供的集成开发环境Jam Composer,可以产生Jam配置文件(该文件包含目标没备、应用数据等完整配置信息,与厂商和配置平台无关)。然后使用Jam Player解释并产生JTAG配置数据,对JTAG链中的各个设备进行配置。

    使用Jam STAPL进行配置时,针对不用的应用和不同的目标设备(不同型号或者不同厂商),只需要改变Jam配置文件,而无需改变Jam Player。因为Jam Player不包含任何与应用或者设备相关的信息,它只负责解析Jam配置文件中的内容。它的工作方式与Java编程语言非常相似,Jam P1ayer相当于Java虚拟机,而Jam文件相当于编译之后的Java字节码文件(.class文件)。Jam配置文件有两种格式:
    ①ASCII文本格式文件,也就是用STAPL描述的配置源文件,文件后缀名是.jam。该格式便于阅读和理解,但由于采用ASCII文本编码,体积较大。
    ②字节码(Byte—Code)格式文件,STAPL源文件编译好之后的字节码文件,文件后缀名是“.jbc”。对于同样的配置信息,该格式比.jam格式体积小,节省存储空间;其缺点是,无法直接阅读其中的配置信息。
    与之对应,Jam Player也有两种:普通Jam Player,负责对.jam文件的解释;Jam Byte一Code Player,负责对.jbc文件的解释。从AItera官方网站上可以免费下载到用C语言编写的两种Player源代码。

4 系统设计与实现
4.1 系统硬件设计
   
系统硬件连接方案如图2所示。系统中只使用JTAG配置方式,所以与AS、PS相关的nCONFIG、MSELO和MSEL1引脚都不使用,而将nCONFIG拉高,MSELO和MSEL1接地。DATA0和DCLK引脚可以任意配置,在这里都接地。使用S3C2410的通用引脚GPB7、GPB8、GPB9、GPBlO引脚分别作为JTAG接口的TMS、TDl、TCK和TDO。

[!--empirenews.page--]

4.2 系统软件设计
4.2.1 生成Jam配置文件
   
使用Jam STAPL进行JTAG配置,需要有Jam配置文件。集成开发环境QuartusII默认生成的是.sol和.pof格式的配置文件,要生成.jam和.jbc文件,可以使用2种方法:
    第1种方法,在工程编译之前设置QuartusII的生成配置文件选项。在QuartusII的主菜单中,选择【Assign—ments】→【【)evice】菜单,进入【Setting】窗口,单击“Device&.Pin Options…”按钮,在弹出的对话框中选择“Program—ming Files”标签,在该标签页中选择.jam或者.jbc文件格式,单击“0K”按钮即可。
    第2种方法,编译完成后利用QuartusII自带的文件格式转换工具,将.sof或.pof文件转换为.jam或.jbc文件类型。在QuartusII的主菜单中,选择【File】→【ConvertProgramming Flies】菜单,进入【Convert ProgrammingFiles】窗口。在该窗口的“Programming file type'’中选择.jam或者.jbc类型,在“File name”中指定文件保存路径和文件名(默认使用与.sof或.pof同路径同名),最后单击“OK”按钮,即可生成.jam或者.jbc配置文件。
4.2.2 移植Jam Player
    Altera公司提供的Jam Player源程序文件包含了DOS、Windows和Unix三种平台的代码。在类似Unix的Linux平台中使用,必须进行定制和移植。
    Jam Player源程序组织结构如图3所示。与配置平台的I/O处理相关的功能都安排在jbis—tub.c文件中,使用Jam Player的用户只需要根据平台和硬件环境修改jbistub.c中的函数,而不需要修改其他的文件。

    将Jam Player移植到嵌入式Linux中,主要进行下列的定制:
    ①更改平台预定义环境,添加预处理语句,去除不必要的源代码;
    ②将JTAG信号映射到具体硬件引脚;
    ③定制错误信息输出方式;
    ④根据具体微处理器的处理能力,定制延时函数。
    关于更详细的定制和移植过程可参考文献[7]和[8]。
    为了帮助Jam Player移植过程,Altera公司提供了调试和验证使用的idcode文件。该文件有.jam格式和.jbc格式,分别供移植普通Jam Player和Jam Byte一CodePlayer使用。其功能都是读取目标设备的IDCODE(每种型号的FPGA芯片都有一个与其一一对应的IDC0DE,可参见芯片的数据手册)。如果移植成功,Jam Player会将读取的IDCODE和对应的芯片型号打印出来;否则输出详细的相关错误信息,以供调试使用。
4.2.3 JTAG驱动程序
    由于Jam Player运行在嵌入式Linux环境中,无法直接访问ARM芯片的引脚寄存器,也就无法直接操作引脚的输入输出。所以还必须为用于JTAG接口的引脚编写驱动程序,将它们封装成Jam Player可以读写的字符型文件。
    该驱动遵守普通Linux字符型文件驱动编写规则,无需向系统申请中断和实现中断函数,最关键的就是对引脚读写时,要符合JTAG接口引脚的时序控制。JTAG接口的引脚时序如图4所示。从图中可知,对于ARM的JTAG接口,TDI和TMS输出信号是在TCK时钟信号的下降沿锁存的,而TDO反馈信号是在TCK时钟信号的上升沿有效。

    在驱动程序中,与操作系统的write和read调用相对应的jtag_write和jtag_read的函数如下(这两个函数实现了JTAG输入输出信号的具体操作过程):


    Jam Player中调用该驱动时,在buffer中只提供TMS和TDI信号,如图5(a)所示。根据硬件设计,系统使用的是S3C24lO的GPB端口的7、8、9、10引脚,GPB数据寄存器(GPBDAT)的结构如图5(b)所示。所以将buffer[0]的内容写到GPBDAT寄存器时,需要左移7位;读取TDO信号时,仅需返回第10位数据。
4.2.4 JTAG在线配置的性能和时间
    由于使用JTAG配置不支持配置信息的压缩形式,JTAG配置的时间只与目标芯片的型号有关,而与具体应用无关。我们在PC系统中已验证:一个源程序为10行的与门操作应用和一个源程序超过6 000行的IEEE802.16物理层实现的应用,在QuartusII中使用JTAG下载时,下载配置的时间相同。
    根据上述嵌入式系统设计,Jam Player运行在基于S3C2410处理器的Linux环境中,时钟频率为200 MHz,一次配置EP2C70的时间约为70 s。在相同的Jam Player运行环境下,尽管不同应用的Jam文件的大小不同,其配置时间是一样的。要减少配置时间,可以有3种方法:一是提高运行Jam Player系统的CPU速率;二是修改JamPlayer源程序的代码,使其执行效率更高;三是根据自身系统设计,在满足JTAG引脚时序的前提下,减少驱动程序的延时操作。


结 语
    本设计实现了一种基于ARM处理器的、在嵌入式Linux系统下通过FPGA的JTAG接口对其进行在线配置的方案。该方法设计简单,只需将JTAG的4个必需引脚连接;成本低廉,无需额外的配置芯片和设备(如AlteraEPC系列和EPCS系列);使用灵活,通过ARM对FPGA进行在线配置;系统无需重启就可动态更新FPGA应用。在我们的实验系统环境中,一次配置的时间约为70s。

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

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

南京2022年10月17日 /美通社/ -- 日前《2022第三届中国高端家电品牌G50峰会》于浙江宁波落幕,来自两百余名行业大咖、专家学者共同探讨了在形势依然严峻的当下,如何以科技创新、高端化转型等手段,帮助...

关键字: LINK AI BSP 智能家电

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭