一种应用于反熔丝器件编程及测试系统的通信方法与流程

文档序号:12729734阅读:184来源:国知局
一种应用于反熔丝器件编程及测试系统的通信方法与流程

本发明属于通信应用技术领域,涉及一种应用于反熔丝器件编程及测试系统的通信方法,主要是针对反熔丝FPGA、反熔丝PROM等反熔丝器件的编程及测试平台的软硬件通信方法。



背景技术:

随着计算机应用技术和软硬件通信技术的飞速发展,各种通信协议成为连接上位机软件和下位机硬件的重要桥梁。通信协议种类繁多,有网络通信协议、串口通信协议等。各应用领域都推出多种通用型的标准通信协议,网络协议如TCP/IP网络协议、GPRS无线传输协议;串口通信协议如RS232协议、RS485协议、I2C协议、SPI协议、CAN总线协议等等。上位机软件和下位机硬件之间可以通过这些通信协议规则传递信息,准确的传输数据。然而这些协议只提供传输数据的基本方法,并没有命令和数据解析的完整解决方案。

反熔丝器件编程及测试系统中上位机软件和下位机硬件通信时,常常是一种流式的传输方式,如USB的传输,串口的传输。但是这些传输方式只提供一个传输的通道,并没有提供设备间交互的功能,不能满足我们对反熔丝器件编程及测试的需求。实际应用中,需要在传输层上构建应用层协议,实现反熔丝器件编程及测试系统的软硬件通信。对低复杂度应用系统而言,若采用通用的常规复杂通信协议,往往设计复杂、成本高、效率低。针对以上问题,有必要提出一种面向低复杂度应用系统的新的应用层协议。

本发明提供一种半定制型应用层通信协议及软硬件通信方法。该应用层协议简洁、可扩展性强、不受物理层通信协议限制,采用该协议的软硬件通信应用系统设计简单、资源耗费少、成本低、效率高,能实现以反熔丝器件编程及测试系统为典型代表的低复杂度应用系统中上位机软件和下位机硬件之间命令和数据的交互传输。



技术实现要素:

本发明所要解决的技术问题在于提供一种反熔丝器件编程及测试系统的应用层通信协议及软硬件通信方法,使得上位机软件和下位机硬件实现功能交互,实现计算机对反熔丝器件的编程及测试。

本发明采用以下技术方案解决上述技术问题:

创建一种面向低复杂度应用系统的易于构建和解析、扩展性强的应用层通信协议结构。该协议结构被用于以反熔丝FPGA、反熔丝PROM为典型代表的反熔丝器件的编程及测试系统的软硬件交互过程中。

本发明的反熔丝器件编程及测试系统包括:待编程及测试器件、协议处理模块、上位机软件、下位机硬件。

该系统主要是完成对反熔丝FPGA、反熔丝PROM等反熔丝器件的编程及测试,下位机硬件通常可由微控制器或FPGA实现。系统中上位机软件向下位机硬件发送编程及测试命令,下位机硬件执行对器件编程及测试的命令并返回编程及测试的结果。系统中上位机软件和下位机硬件有各自的协议处理模块,每帧通信协议在通信前应被定义,协议处理模块完成对每帧协议的构建和解析。上位机通过协议处理模块构建每一帧通信协议向下位机硬件发送编程及测试命令和数据;下位机硬件通过协议处理模块解析收到的信息,得到编程及测试命令、对象编码及数据,对器件进行编程及测试,并返回执行结果。

本发明的应用层通信协议的传输帧构成有:协议头、对象编码、数据、协议尾。

协议头意味着一帧的开头,协议尾意味着一帧的结尾,协议头和协议尾组合形成编程及测试命令、编程及测试的成功与否。协议头和协议尾的组合具有多样性,常规命令只需分析协议头,自定义命令需同时分析协议头和协议尾;对象编码对应着编程及测试命令的不同对象和硬件参数,使得命令既可以同时被多个器件执行,也可以只被一个器件执行;数据为一帧信息的可选项,若命令中用到数据则在信息中添加数据内容及数据的校验码,只传输命令时无数据项。在编程及测试过程中反馈的数据长度不定,协议头和协议尾确保通信过程中对数据区域的判断,对象编码确保正确的器件及硬件参数按照编程及测试命令执行。

系统中上位软件和下位机硬件按照本通信协议生成、传输并处理编程及测试命令、数据和执行结果。包括如下步骤:

步骤一:统计不同的编程及测试命令,确定协议头和协议尾位宽,为各种命令和编程及测试结果设置协议头和协议尾;统计每种命令类型的器件执行对象和硬件参数个数,确定对象编码位宽,为每个对象和其参数设置对象编码;设计上位机软件和下位机硬件的协议处理模块,用来构建和解析每一帧通信协议;

步骤二:根据不同的编程及测试命令,确定数据位宽,上位机软件的通信协议处理模块构建一帧信息发送到下位机硬件;

步骤三:下位机硬件接收到信息,下位机的通信协议处理模块解析一帧信息,提取信息中的对象编码、命令、数据;

步骤四:下位机硬件执行编程及测试命令,对符合对象编码的器件进行编程及测试。下位机的通信协议处理模块根据编程及测试结果构建一帧信息发送到上位机;

步骤五:上位机软件接收到信息,上位机软件的通信协议处理模块解析一帧信息,得到编程及测试结果;

步骤六:上位机软件分析编程及测试结果,重复步骤二到步骤五。

本发明有以下特点:

结构简单,易于自动构建和解析,实现了编程及测试系统设备间的命令交互,能够针对正确的器件进行编程或测试,传输稳定的数据。易于实现,资源耗费少,成本低,满足编程及测试系统的通信;

通用性强,对于新的命令不必修改协议格式,只需添加新命令(修改协议头或协议尾);不依赖于特定的物理层传输协议,对于新的器件及新参数不必修改物理层通信协议及物理层通信模块,只需增加对象编码;

扩展性好,协议不限定协议头、协议尾、对象编码、数据的位宽。当命令、器件增加时,根据需求设置合适的位宽用来满足协议的构建,数据的校验码确保了任意长度数据的稳定传输。每种命令可以同时对多个器件对象编程及测试,也可以只针对一个器件对象。对已经完成的协议处理模块来说,只需增加命令定义,构建和解析流程不需要变化。

附图说明

为了更清楚地说明本发明实例或本发明技术中的技术方案,下面将对实例或本发明技术中所需要使用的附图作简单地介绍。下面描述中的附图是本发明的一些实例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的应用层通信协议的帧结构示意图。

图2为本发明的应用层通信协议的帧示例示意图。

图3为反熔丝PROM器件编程及测试系统应用实例的通信帧示意图。

图4为反熔丝FPGA器件编程及测试系统应用实例的通信帧示意图。

图5为本发明的反熔丝器件编程及测试系统的构成示意图。

图6为本发明的通信传输过程的示意图。

图7为反熔丝FPGA测试过程的示意图。

图8为反熔丝FPGA硬件编程过程的示意图。

具体实施方式

为使本发明实例的目的、技术方案和优点更加清楚,下面将结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实例是本发明一部分实例,而不是全部的实例。基于本发明中的实例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。

图1为本发明的应用层通信协议的帧结构示意图。

本应用层通信协议为面向低复杂度应用系统的应用层协议,实现上位机软件对反熔丝FPGA、反熔丝PROM等反熔丝器件的编程及测试。本通信协议为半定制的通信协议,可添加自定义命令、器件。本通信协议的一帧有如下几个部分:

协议头,协议尾:每一帧通信协议从协议头开始,到协议尾结束,协议头和协议尾共同组合形成编程及测试所需命令。协议头和协议尾的位宽根据命令总数决定,由具有特殊意义的字符串组成。命令分为常用命令和自定义命令,常用命令为器件通用的命令,自定义命令为特定器件的专用命令;

对象编码:用对象编码分配不同的待编程及测试对象及硬件参数,使得下位机硬件可以正确的区分相同命令的不同硬件执行对象及硬件参数。对象编码的位宽根据硬件执行对象和硬件参数个数决定,由多位十进制编码组成。一帧协议中命令同时对多个器件编程及测试、同时修改多个硬件参数时,多个器件和参数共享同一对象编码,这使得相同的硬件及硬件参数更容易的加入到编程及测试系统中;

数据:数据内容为编程及测试所需数据及编程及测试的反馈数据,数据长度可变,结尾处为数据校验码,校验的方式有常见的(CRC校验、奇偶校验等)和自定义校验。若一帧协议只传输命令或只传输不包含数据的反馈结果时无数据内容。

协议头、协议尾、对象编码需在编程及测试系统中协议模块完成前确定,使得上位机软件和下位机硬件可以通过协议处理模块正确构建和解析每一帧通信协议,实现对器件的编程及测试。协议处理模块根据编程及测试系统的传输过程中的需要自行添加数据,在数据传输的过程中由协议尾确定数据的结束位置,计算校验码进行对比确保数据的正确传输。

图2为本发明的应用层通信协议的帧示例示意图。

一帧协议中协议头和协议尾的组合方式有如下几种:

只有协议头:这样的一帧协议传输常用命令,多用来设置和检查编程及测试系统的下位机硬件的状态,由上位机软件发送到下位机硬件;

只有协议尾:这样的一帧协议多用来传输编程及测试的反馈结果,由下位机硬件发送到上位机软件;

同时由协议头和协议尾:这样的一帧协议传输自定义命令,多用来设置编程及测试对象的参数和实现对器件的编程、测试,由上位机软件发送到下位机硬件。

在反熔丝器件编程及测试系统中帧的典型示例如下:

协议帧示例1:rb01;

协议功能:读取对象编码为‘01’的器件的多路编程电压值;

协议分析:该协议只有协议头,不包含数据,‘rb’为协议头,‘01’为对象编码。该协议由上位机软件发送到下位机硬件,检查器件的编程电压状态。‘rb’为常用命令,命令功能是对编程及测试器件的状态进行测试。

协议帧示例2:00012k,5C~;

协议功能:器件中对象编码为‘0001’的反熔丝经过5次测试,平均阻值为2K;

协议分析:该协议只有协议尾,包含数据,‘~’为协议尾,‘0001’为对象编码,‘2K,5’为数据,‘C’为数据自定义校验码。该协议由下位机硬件发送到上位机软件,反馈一个反熔丝的编程结果。‘~’为常用命令,命令功能是反馈编程成功。

协议:#0002*…*f;

协议功能:对器件中对象编码为‘0002’的反熔丝编程,编程位流数据为(*…*),数据中包含CRC校验码;

协议分析:该协议包含协议头和协议尾,包含数据,‘#’为协议头,‘0002’为对象编码,‘*…*’为数据和校验码,‘f’为协议尾。该协议由上位机软件发送到下位机硬件,实现对器件的编程。‘#f’为自定义命令,命令功能是根据编程位流数据对编程及测试器件编程。

图3为反熔丝PROM器件编程及测试系统应用实例的通信帧示意图。

反熔丝PROM器件编程及测试系统中共5条常用命令(此处列出3条),9条自定义命令(此处列出5条),15种存储内存类型。协议头的位宽为2个字节,对象编码的位宽为2个字节,数据的位宽根据具体情况自行改变,协议尾的位宽为1个字节。

3条常用命令如图中所示:

读取编程电压:由协议头‘rb’、对象编码组成,该命令读取不同类型的PROM的编程电压;

设置编程电压:由协议头‘st’、对象编码、数据组成,数据为待设置的编程电压值,该命令设置不同类型的PROM的编程电压;

信息反馈:由对象编码、数据、协议尾‘~’或‘^’组成,数据为编程及测试过程数据,该命令反馈不同类型的PROM的编程及测试信息,当协议尾为‘~’时代表编程及测试成功,当协议尾为‘^’时代表编程及测试失败。

5条自定义命令如图中所示:

读取芯片信息:由协议头‘r’、对象编码、协议尾‘x’组成,该命令读取不同类型的PROM芯片信息;

PROM数据块编程:由协议头‘w’、对象编码、数据、协议尾‘b’组成,数据为地址信息和待写入数据,该命令向不同类型的PROM芯片地址块中写入数据;

PROM芯片查空:由协议头‘c’、对象编码、协议尾‘b’组成,该命令对不同类型的PROM芯片检查是否未被写入数据;

PROM数据块读取:由协议头‘r’、对象编码、数据、协议尾‘b’组成,数据为地址信息,该命令从不同类型的PROM芯片地址块中读出数据;

PROM数据块对比:由协议头‘w’、对象编码、数据、协议尾‘b’组成,数据为地址信息和待比较数据,该命令对不同类型的PROM芯片检查地址块中数据是否正确。

此处描述的实例是一部分实例,而不是全部的实例。根据需求增加新的协议头、对象编码、协议尾扩展协议,实现对不同型号的PROM器件的编程和各种测试。

图4为反熔丝FPGA器件编程及测试系统应用实例的通信帧示意图。

反熔丝FPGA器件编程及测试系统中共7条常用命令(此处列出3条),20条自定义命令(此处列出9条),8999个待编程反熔丝。由于自定义命令的增多及反熔丝数量大,协议头和对象编码位宽增加。协议头的位宽为4个字节,对象编码的位宽为4个字节,数据的位宽根据具体情况自行改变,协议尾的位宽为1个字节。

反熔丝FPGA器件编程及测试系统中常用命令和PROM器件编程及测试系统中常用命令功能相同,对象变为反熔丝FPGA硬件。自定义命令如图中所示,实现对反熔丝FPGA芯片的查空测试、编程、读取芯片ID测试、binning测试、参数设置、数据回读测试、数据按位对比测试、寄存器链测试、反熔丝状态测试。

此处描述的实例是一部分实例,而不是全部的实例。根据需求增加新的协议头、对象编码、协议尾扩展协议,实现对不同型号的FPGA器件的编程和各种测试。

图5为本发明的反熔丝器件编程及测试系统的构成示意图。

本编程及测试系统中设备通过物理层通信协议接收和发送信息,上位机软件和下位机硬件有各自协议处理模块负责应用层通信协议的构建和解析。本应用层通信协议不依赖于物理层通信协议,系统中设备可通过串口协议、I2C协议、SPI协议、CAN总线协议、USB协议等物理层通信协议传输每一帧信息。

该系统主要是完成对反熔丝FPGA、反熔丝PROM等反熔丝器件的编程及测试,为低复杂度的应用系统,有如下几个部分组成:

待编程及测试器件:多为反熔丝FPGA、反熔丝PROM等反熔丝器件,用户通过对其编程实现逻辑或存储数据,并对其进行编程前测试、编程测试、编程后测试;

上位机软件:软件界面是用户与硬件系统进行数据交流的窗口。上位机软件实现向下位机硬件发送编程及测试命令、数据,编程及测试过程的控制和显示;

下位机硬件:下位机硬件从上位机接收到编程及测试命令、数据,并把它们转换为相应的时序信号直接控制待编程及测试器件,实现对器件的编程及测试;

协议处理模块:上位机软件和下位机硬件的通信由各自的协议处理模块实现,协议处理模块完成对每个通信帧的构建和解析。

图6为本发明的通信传输过程的示意图。

在本反熔丝器件编程及测试系统中,首先统计命令类型,为每种命令类型设置协议头、协议尾及数据;然后统计每种命令类型的器件执行对象和硬件参数,设置每一命令类型的对象编码;最后编写上位机软件和下位机硬件的协议处理模块,完成系统通信框架的搭建。

系统通信框架搭建完成后,开始设备之间的通信传输:

上位机软件根据传输的编程及测试命令、数据和对象编码构建一帧信息,发送到下位机硬件;

下位机硬件从接收到的帧信息中解析得到编程及测试命令、数据和对象编码,对符合对象编码的器件进行编程或测试。下位机硬件根据编程及测试的反馈结果构建一帧信息发送到上位机软件;

上位机软件从接收到的帧信息中解析得到编程及测试结果,并显示在软件界面;

上位机软件对编程及测试结果分析处理完成后,再进行后续的编程、测试过程。

图7为反熔丝FPGA测试过程的示意图。

执行步骤一:上位机软件的协议处理模块构建一帧信息“rb0001”发送到下位机硬件;

执行步骤二:下位机硬件接收到帧信息,经协议处理模块解析,得到读取反熔丝FPGA的编程电压的命令;

执行步骤三:下位机硬件读取反熔丝FPGA的编程电压,经通信协议处理模块构建一帧信息“VPP:5~”发送到上位机软件;

执行步骤四:上位机软件接收到信息,经协议处理模块解析,得到当前反熔丝的编程电压VPP为5V。

图8为反熔丝FPGA硬件编程过程的示意图。

执行步骤一:上位机软件发送“#0001*…*f”到下位机硬件,‘*…*’为数据和校验码;

执行步骤二:下位机硬件解析信息并检查数据校验正确,经协议处理模块解析,得到向反熔丝FPGA中‘0001’反熔丝编程的命令;

执行步骤三:下位机硬件根据编程数据对反熔丝FPGA编程,若编程成功发送“00012k,5C~”到上位机软件,若编程失败发送“000110k,100X^”到上位机软件;

执行步骤四:上位机软件解析信息,当编程成功时得到‘0001’反熔丝经过5次测试平均阻值为2k,当编程失败时得到‘0001’反熔丝经过100次测试阻值为10k。

执行步骤五:若编程失败上位机软件重新发送‘0001’反熔丝的编程命令,否则上位机软件发送下一个反熔丝的编程命令。

最后应说明的是:以上实例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1