APP下载

基于CAN和RS422实现FPGA远程调试与配置

2018-02-05周兴云陆文斌张秋明金亭姝黄凯旋

无线电工程 2018年2期
关键词:发送器接收器总线

周兴云,陆文斌,张秋明,金亭姝,黄凯旋

(上海航天电子技术研究所,上海 201109)

0 引言

随着可编程逻辑器件的迅速发展和广泛应用,FPGA实现的功能越来越强大,且单个系统中应用的FPGA数量也越来越多,而对系统中众多FPGA的调试与配置也变得格外重要。一般FPGA器件生产商会提供在线逻辑分析工具(如Altera的SignalTap[1]和Xilinx的ChipScope[2]),通过软件方式为用户提供成本低廉和操作简单的FPGA调试解决方案。

在某些特殊的应用场景,比如系统中FPGA数量众多且产品结构复杂,现场调试时往往需要拆卸大量的结构件并连接较多的临时电缆,或者线缆长度限制、产品的安装位置等因素导致无法直接在现场搭建调试平台,为FPGA的调试与配置带来了极大的困难。本文介绍了一种综合利用CAN总线[3]和RS422总线[4]的优势实现复杂系统中众多FPGA远程调试与配置的设计方法,极大降低了系统的调试成本,并缩短了研制周期。

1 需求分析与设计思想

1.1 JTAG边界扫描模式

FPGA的生产厂商有多家,调试与配置方法有多种,主要包括主串模式、从串模式、主并模式、主字节外围接口模式(BPI)以及JTAG边界扫描模式[5]等。在实际使用中,由于JTAG模式标准统一、设备简单,且可组建JTAG链路配置,使用最为广泛。标准的JTAG接口[6]有4个引脚:TMS、TCK、TDI和TDO。JTAG模式接口引脚的功能定义如表1所示。

表1 JTAG模式接口引脚功能定义

引脚引脚功能描述TMS测试模式选择,在TCK上升沿,根据TMS的值决定TAP状态机的状态转换序列TCK测试时钟,用来为JTAG电路提供时钟TDI测试数据输入,在TCK上升沿将数据或指令以串行方式移入TAP控制器中TDO测试数据输出,在TCK下降沿移出响应数据

由表1可以看出,JTAG模式是一种有相应数据协议的同步通信方式。这里以Xilinx公司提供的在线逻辑分析工具(Chip Scope Pro Analyzer)为例,介绍JTAG模式下FPGA调试与配置的过程[7]。其典型的工作模式如图1所示。

图1 JTAG模式调试与配置FPGA示意

通过下载工具以JTAG模式将电脑与电路板上的FPGA芯片连接,设计人员通过ChipScope Pro Analyzer软件,将相关的软件核直接插入到设计的综合网表中,再通过实现工具完成布局布线并生成的配置数据,最后通过JTAG接口下载到FPGA中,同时监控FPGA内核逻辑并将信息通过JTAG接口输出至ChipScope Pro Analyzer软件上显示和分析,从而实现FPGA的调试与配置等功能。

1.2 远程调试与配置的设计思想

FPGA远程调试与配置一般是通过网络或其他信道将配置数据发送给远端嵌入式系统[8],嵌入式系统再将这些数据加载到FPGA中[9],并从FPGA中采集需要信号后,通过网络回传给本地调试装置[10]。这种方式往往要构建复杂的硬件平台并设计相应与FPGA调试工具对接的软件[11-13],实现复杂且成本昂贵,而且如果系统中FPGA数量众多,则需要解决多个FPGA调试与配置的通信冲突问题[14]。

复杂系统中众多FPGA远程调试与配置需要解决的问题是多点组网后的有序通信以及信息长距离的可靠传输,同时应尽量保证信号数据协议的一致性[15],以确保无需开发其他配套软件就可直接使用FPGA厂商提供的配置软件和调试工具[16]。本文设计思想是搭建一个装置,该装置采用某种通信方式来传输JTAG模式下的调试与配置数据,该通信方式具有传输距离远、可靠性高且可实现同步数据通信,同时该装置还具有组网节点多的特点,可解决多点组网后的通信冲突问题。

2 总体设计与实现

2.1 RS422和CAN总线

RS422总线是一种单机发送、多机接收的单向、平衡传输总线[17]。它采用差分传输方式,抗干扰能力强,传输距离远,而且只规定了接收端和发送端的电气特性,没有规定或推荐任何数据协议[18],因此可用来实现指定数据协议的同步通信,满足设计所需的高可靠和长距离通信,且可实现同步数据传输的要求。在多节点组网方面,由于接收器的输入阻抗和发送器的驱动能力有限,一般在相同传输线上最多可接十多个节点,同时,总线上存在多个接收器和发送器,若无有效的隔离和调度措施,这些接收器和发送器很容易发生通信冲突,因此在FPGA芯片过多的系统中,则无法进行有序通信,需要考虑可组网节点多的总线形式。

CAN总线是一种支持分布式控制的串行通信网络,具有突出的可靠性和灵活性[19]。CAN总线采用非破坏性总线仲裁技术,只需通过报文滤波即可实现点对点、一点对多点及全局广播的传送数据,组网节点数普遍可达110个[20],具有有效的隔离和调度措施,是一种非常适合组建多节点的总线网络。但CAN总线具有特定的数据协议,无法实现指定数据协议的同步通信。

本文考虑综合利用CAN总线通信可靠性高和组网节点多、RS422总线通信抗干扰能力强和可实现同步数据通信的特点,来实现FPGA远程调试与配置。

2.2 方案设计

为解决RS422总线的通信冲突问题并增加其所能挂接的节点数,选用一种具有使能控制的RS422总线接收器和发送器,该接收器和发送器在使能状态时可正常参与通信,在关闭状态时,收发端口呈现高阻状态。通过将连接所需调试FPGA芯片的接收器和发送器使能,将连接其他FPGA芯片的接收器和发送器关闭,实现FPGA调试与配置软件与所需调试FPGA芯片之间点对点通信链路的导通,而且其他接收器和发送器都是关闭状态,其接收和发送端口都呈现高阻状态,解决总线上存在多个接收器和发送器造成的通信冲突问题。同时由于大部分接收器端口呈现高阻状态,导致这些接收器所需的输入电流变小,可提高总线可挂接的节点数,解决总线上存在多个接收器造成驱动能力不足的问题。

对RS422总线接收器和发送器的使能控制则可通过微控制器进行,而远程调试控制端与众多微控制器的通信刚好可以利用CAN总线来完成。

设计的FPGA远程调试与配置的方案框图如图2所示。

图2 FPGA远程调试与配置方案

整个设计由人机交互模块、CAN总线模块、RS422总线模块和多个远程调试与配置模块组成。

远程控制时,在人机交互模块中的远程调试控制软件上选择需要调试和配置的FPGA芯片,通过CAN总线将FPGA芯片的位置信息广播到所有的远程调试与配置模块,各个远程调试与配置模块根据位置信息来判断所需调试和配置FPGA芯片的具体位置,并控制相应的通信模块。选通所需调试与配置FPGA芯片与RS422总线模块的通信链路,实现人机交互模块的FPGA调试和配置软件与所需调试和配置FPGA芯片之间点对点通信链路的导通;FPGA调试与配置时,由人机交互模块的FPGA调试与配置软件通过FPGA下载器,以JTAG配置模式,通过RS422总线模块将调试与配置数据传输到所需调试与配置的FPGA芯片,同时监控FPGA内核逻辑,通过RS422总线模块回传FPGA内核逻辑信息并在人机交互模块的FPGA调试与配置软件上显示,实现FPGA远程调试与配置的功能。

2.3 硬件构建

整个设计的硬件构成主要包括CAN总线模块,RS422总线模块和多个远程调试与配置模块。

CAN总线模块由CAN调试器和CAN总线网络组成,负责将人机交互模块传送过来的所需调试FPGA芯片位置信息转换为CAN总线形式,通过CAN总线网络进行广播,传送给所有的远程调试与配置模块,同时接收远程调试与配置模块的状态信息,转换为特定接口形式的信息回告给人机交互模块。

RS422总线模块由RS422调试器和RS422总线网络组成,负责将人机交互模块传送过来的FPGA调试与配置数据转换为RS422总线形式,通过RS422总线网络进行广播,传送给所有的远程调试与配置模块,同时接收所需调试与配置FPGA芯片的内核逻辑信息,转换为TTL电平形式回传给人机交互模块并在FPGA调试与配置软件上显示。

2个总线网络以特定的拓扑结构来组成一个多节点双工通信控制网络,各个节点设备摆放位置合理布线,各分支线尽量短,减少信号发射,匹配电阻独立连接在总线两端。

远程调试与配置模块由远程控制模块、多个通信模块以及多个FPGA组成。远程调试与配置模块的电路框图如图3所示。

图3 远程调试与配置模块电路

远程控制模块接收所需调试FPGA芯片的位置信息,并根据该信息判断所需调试FPGA芯片是否属于本远程调试与配置模块,若属于,则将与该FPGA芯片对应的RS422接收器和RS422发送器使能,将其他RS422接收器和RS422发送器关闭,同时回告本远程调试与配置模块的状态信息;若不属于,则将本模块中所有的RS422接收器和RS422发送器全部关闭,从而实现FPGA调试与配置软件与所需调试与配置FPGA芯片之间点对点通信链路的导通。

通信模块由RS422接收器和RS422发送器组成,负责相关电平形式的转换。FPGA芯片的JTAG配置管脚与对应的RS422接收器和RS422发送器连接,接收FPGA调试与配置数据,并将所需调试与配置FPGA芯片内核逻辑信息传送给RS422总线模块。

2.4 软件设计

人机交互模块由远程调试控制软件,FPGA调试与配置软件和FPGA下载器组成。

FPGA调试与配置软件和FPGA下载器是由FPGA器件厂商或者第三方商家提供的FPGA开发配套软件,该软件与FPGA芯片厂家和型号有关,这里采用的FPGA调试与配置软件为Xilinx公司的ChipScope Pro Analyzer,采用的FPGA下载器为Platform Cable USB II。

远程调试控制软件用于选择需要调试和配置的FPGA芯片,并将FPGA芯片所处位置信息通过接口发送给CAN总线模块,同时接收从CAN总线模块回传过来的远程调试与配置模块的状态信息。远程调试控制软件在Visual Studio 2010环境下开发,软件界面如图4所示。

图4 远程调试控制软件界面

3 应用验证

在某预研雷达项目中,按所设计的方案构建包含16片FPGA芯片的远程调试与配置网络,并得到成功应用。通过远程调试控制软件对该雷达某单元的FPGA芯片进行选择,然后通过ChipScope Pro Analyzer软件对该FPGA芯片进行远程调试与配置,具体调试结果如图5所示。

图5 ChipScope软件调试结果

从调试结果可以看出,采用所设计的方案,在无需设计与FPGA调试工具对接的软件情况下,即可直接利用FPGA厂商提供的软件对设备中多个FPGA进行远程调试与配置,解决了系统中FPGA数量众多和特殊结构等因素导致FPGA调试困难的问题。经过近半年联调与试验,该系统运行稳定,功能可靠,为调试工作带来了极大的方便。

4 结束语

本文针对特殊场景中FPGA调试不便的情况并结合工程研制的实际需求,给出了一种基于CAN和RS422总线实现FPGA远程调试与配置方案,并详述了方案的构建和电路的设计与实现。该方案具有可组网的FPGA芯片个数多、硬件组成简单,且无需设计与FPGA调试工具对接的软件,具有易于集成、通用性和移植性强等特点,并在研制项目中得到有效应用,运行稳定可靠。鉴于所研制项目扩展需要,系统包含的FPGA芯片将达到上百片,下一步拟将构建节点数更多的远程调试与配置网络,以满足后续需求。

[1] 陈欣波.Altera FPGA工程师成长手册[M].北京:清华出版社,2012.

[2] 田耘,徐文波.Xilinx FPGA开发实用教程[M].北京:清华大学出版社,2008.

[3] 王书举.车辆控制系统局域网络(CAN)调度策略研究[D].沈阳:东北大学,2011.

[4] 段晓超,段玲琳,李化雷.星型拓扑RS422信号传输特性研究[J].雷达科学与技术,2016,14(1):91-94.

[5] 胡启道,张洪福,戴绍港.基于MCU的FPGA在线配置[J].电子器件,2007,30(3):1049-1051.

[6] 王鏖淯.基于JTAG标准的边界扫描测试技术的分析与研究[D].西安:西安电子科技大学,2014.

[7] 李辉,岳田.在FPGA设计中ChipScope与MATLAB的应用[J].无线电工程,2010,40(1):62-64.

[8] 李冬芳.数字阵列收发组件FPGA远程配置的研究与实现[J].雷达科学与技术,2011,9(3):272-276.

[9] 刘永恩,王俊芳.FPGA远程升级技术的分析与实现[J].无线电工程,2012,42(9):48-50.

[10] 王利军,张超.基于CPU实现FPGA远程更新[J].信息通信,2013(6):44-46.

[11] 冯建文,王春.FPGA远程配置在远程实验系统中的应用[J].微型机与应用,2016,35(19):95-97.

[12] 李进,李国宁,金龙旭,等.FPGA配置过程监控系统设计[J].液晶与显示,2010,25(6):851-857.

[13] 朱保全.FPGA远程以太网JTAG设计与实现[D].成都:电子科技大学,2015.

[14] 杨明健.基于ARM的FPGA远程重配置设计[D].大连:大连理工大学,2013.

[15] 赵蕙,肖铁军.FPGA的边界扫描配置算法及嵌入式实现[J].计算机与现代化,2007(8):19-21.

[16] 王梦杰.FPGA固件远程更新方法的研究[D].武汉:华中师范大学,2012.

[17] 宋波.基于以太网络的虚拟串行通讯软件开发[D].哈尔滨:哈尔滨工业大学,2009.

[18] 应建华,黄萌,赵江平.一种基于RS485/RS422的多速收发器的设计[J].半导体技术,2007,32(12):1069-1072.

[19] 杜洪亮.基于CAN总线的大型远程监控网络设计[D].合肥:中国科学技术大学,2009.

[20] 许杭,白瑞林,严惠.CAN总线上层协议的设计[J].计算机工程,2007,33(24):258-260.

猜你喜欢

发送器接收器总线
移频发送器冗余切换设计研究
JXG-50S型相敏轨道电路接收器自动测试台
一种基于CAN总线的误码测试方法
多特征脉冲轨道电路探究
无线充电器
新型二取二结构的25Hz微电子相敏接收器数据处理方法研究
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计
从两起故障谈ZPW-2000发送盒报警检测的改进
宝马F02车总线系统