发明内容
为解决上述问题,本发明提供一种数字电源芯片烧录方法及装置,能够简化烧录步骤,减少烧录错误。
第一方面,本发明提供一种数字电源芯片烧录方法,所述方法适用于上位机,用于实现通过运行Powershell脚本程序对待烧录芯片进行烧录,其中所述上位机通过串口与烧录治具连接,所述烧录治具通过I2C总线或者SMBUS总线与所述待烧录芯片连接,所述方法包括:
解析烧录文件,得到所述待烧录芯片的烧录地址和烧录数据;
按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。
可选地,所述写请求封装成一写请求数据包,所述写请求数据包包括开始标志、第一数据包长度、写命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数、所述烧录数据的数据段以及第一校验码,其中所述第一校验码是所述第一数据包长度、写命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及所述烧录数据的数据段之和的低8位。
可选地,所述方法还包括:
在按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求之前,按照所述待烧录芯片专用的烧录时序向所述烧录治具发送读请求,所述读请求包括所述烧录地址,以使所述烧录治具根据所述读请求从所述待烧录芯片读取数据;
在接收到所述烧录治具反馈回的数据之后,判断所述烧录治具反馈回的数据与所述烧录数据是否一致,如果一致,则不再向所述烧录治具发送写请求,如果不一致,则继续向所述烧录治具发送写请求。
可选地,所述读请求封装成一读请求数据包,所述读请求数据包包括开始标志、第二数据包长度、读命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及第二校验码,其中所述第二校验码是所述第二数据包长度、读命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及所述烧录数据的数据段之和的低8位;
所述烧录治具反馈回的数据封装成一返回数据包,所述返回数据包包括开始标志、读取的数据段以及第三校验码,所述第三校验码是读取的数据段之和的低8位。
第二方面,本发明提供一种数字电源芯片烧录装置,所述装置位于上位机,用于实现通过运行Powershell脚本程序对待烧录芯片进行烧录,其中所述上位机通过串口与烧录治具连接,所述烧录治具通过I2C总线或者SMBUS总线与所述待烧录芯片连接,所述装置包括:
解析模块,用于解析烧录文件,得到所述待烧录芯片的烧录地址和烧录数据;
第一指令模块,用于按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。
可选地,所述写请求封装成一写请求数据包,所述写请求数据包包括开始标志、第一数据包长度、写命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数、所述烧录数据的数据段以及第一校验码,其中所述第一校验码是所述第一数据包长度、写命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及所述烧录数据的数据段之和的低8位。
可选地,所述装置还包括:
第二指令模块,用于在按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求之前,按照所述待烧录芯片专用的烧录时序向所述烧录治具发送读请求,所述读请求包括所述烧录地址,以使所述烧录治具根据所述读请求从所述待烧录芯片读取数据;
判断模块,用于在接收到所述烧录治具反馈回的数据之后,判断所述烧录治具反馈回的数据与所述烧录数据是否一致,如果一致,则所述第一指令模块不再向所述烧录治具发送写请求,如果不一致,则所述第一指令模块继续向所述烧录治具发送写请求。
可选地,所述读请求封装成一读请求数据包,所述读请求数据包包括开始标志、第二数据包长度、读命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及第二校验码,其中所述第二校验码是所述第二数据包长度、读命令类型、I2C起始地址、I2C地址偏移或者SMBUS命令、所述烧录数据的字节数以及所述烧录数据的数据段之和的低8位;
所述烧录治具反馈回的数据封装成一返回数据包,所述返回数据包包括开始标志、读取的数据段以及第三校验码,所述第三校验码是读取的数据段之和的低8位。
第三方面,本发明提供一种上位机,包括存储器、处理器及存储在存储器上并可在处理器上运行的Powershell脚本程序,所述处理器执行所述Powershell脚本程序时实现上述数字电源芯片烧录方法。
第四方面,本发明提供一种非暂态计算机可读存储介质,其上存储有Powershell脚本程序,该Powershell脚本程序被处理器执行时实现上述数字电源芯片烧录方法。
本发明提供的数字电源芯片烧录方法及装置,上位机运行Powershell脚本程序,解析烧录文件,得到所述待烧录芯片的烧录地址和烧录数据;按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。由于不同型号的数字电源芯片(如IR3581与Infineon PXE1610),要求的烧录时序完全不同,上位机只需要改变发送指令的时序,就可以烧录多种型号的数字电源,简化了烧录步骤,缩短了烧录时间,减少了出错可能。同时本发明无需变动烧录治具固件代码,保证了底层固件的通用性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的全部实施例基于图1所示的烧录系统,烧录系统包括上位机101、烧录治具102和待烧录芯片103,上位机101通过串口(即UART接口)与烧录治具102连接,烧录治具102通过I2C总线或者SMBUS总线与待烧录芯片103连接。
本实施例提供一种数字电源芯片烧录方法,所述方法适用于上位机,用于实现通过运行Powershell脚本程序对待烧录芯片进行烧录,如图2所示,所述方法包括:
S201、解析烧录文件,得到待烧录芯片的烧录地址和烧录数据;
S202、按照待烧录芯片专用的烧录时序向烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。
本实施例提供的数字电源芯片烧录方法,上位机运行Powershell脚本程序,解析烧录文件,得到所述待烧录芯片的烧录地址和烧录数据;按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。由于不同型号的数字电源芯片要求的烧录时序完全不同,上位机只需要改变发送指令的时序,就可以烧录多种型号的数字电源,简化了烧录步骤,缩短了烧录时间,减少了出错可能。同时本发明无需变动烧录治具固件代码,保证了底层固件的通用性。
本实施例中,在上位机预先写好一PowerShell脚本程序,同时,烧录治具基于单片机M054实现,M054预先写好一烧录控制程序,数字电源芯片可以为IR3581。上位机通过执行该PowerShell脚本程序,配合M054执行烧录控制程序,以此来实现本发明。
在实际烧录时,一般是如下操作流程:将烧录治具的USB端口(供电用的)、串口(通信用的)同时连接到一台上位机,烧录治具的I2C连接到待烧录芯片,同时烧录治具的绿色指示灯按0.5秒间隔闪烁。上位机运行Powershell脚本开始烧录,同时烧录治具的红色指示灯按常亮,烧录治具接收到串口数据后,进入串口中断函数,把接收数据添加到缓存uart_rcvbuf中,每次接收完一个数据包,串口中断函数发出ready信号,M054主函数收到ready信号后,开始解析uart_rcvbuf数据,解析完成后反馈ACK给上位机,解析错误反馈NAK,然后等待下次ready信号。
待烧录芯片烧录完成后,powershell脚本提示烧录成功并自动停止,烧录治具恢复到等待下一次烧录,状态绿色指示灯按0.5秒间隔闪烁。烧录完成后拔出烧录头。
具体地,开始烧录时,上位机发送握手请求ENQ给烧录治具,烧录治具收到握手请求ENQ后,向上位机反馈ACK表示握手成功,或者,反馈NAK表示握手失败。
握手成功后,上位机按照待烧录芯片的烧录时序向烧录治具发送写请求,所述写请求包括从烧录文件中解析出的烧录地址和烧录数据。烧录治具收到写请求后,解析出烧录地址和烧录数据,将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片,并向上位机反馈ACK表示烧录成功,或者,反馈NAK表示烧录失败。
上位机收到ACK后,上位机继续下一次发送写请求,直到所有数据烧录完成,上位机向烧录治具发送结束握手请求STO,烧录结束。
本实施例提供一种数字电源芯片烧录方法,如图3所示,所述方法包括:
S301、解析烧录文件,得到待烧录芯片的烧录地址和烧录数据;
S302、按照待烧录芯片专用的烧录时序向烧录治具发送读请求,所述读请求包括所述烧录地址,以使所述烧录治具根据所述读请求从所述待烧录芯片读取数据;
具体地,烧录治具接收到读请求后,解析出烧录地址,按照烧录地址去读待烧录芯片,读成功后将读取到的数据反馈到上位机,如果读取失败,向上位机反馈NAK,等待上位机再次发送读请求,直到读取成功。
S303、在接收到所述烧录治具反馈回的数据之后,判断所述烧录治具反馈回的数据与所述烧录数据是否一致,如果一致,则不再向所述烧录治具发送写请求,结束烧录流程;如果不一致,则继续步骤S304;
S304、按照待烧录芯片专用的烧录时序向烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使烧录治具将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。
上述方法实施例中,上位机与烧录治具通过串口通信,烧录治具与待烧录芯片通过I2C总线或者SMBUS总线通信,上位机和烧录治具进行串口通信时,为了实现可靠有序的数据传输,二者之间传输的数据(包括各种请求以及反馈的数据)封装在数据包中,采用自定义的通信协议进行交互,数据包的格式如下:
1)握手请求ENQ
握手请求ENQ采用单字符的数据包,数据包的格式如下所示:
ENQ具体数值为5AH(即0x5A)。
2)结束握手请求STO
结束握手请求STO采用单字符的数据包,数据包的格式如下所示:
STO具体数值为03H(即0x03)。
3)反馈成功ACK
反馈成功ACK采用单字符的数据包,数据包的格式如下所示:
ACK具体数值为A5H(即0xA5)。
4)反馈失败NAK
反馈失败NAK采用单字符的数据包,数据包的格式如下所示:
NAK具体数值为11H(即0x11)。
5)写请求
写请求封装成一写请求数据包,写请求数据包的格式如下所示:
sta |
Len1 |
Type1 |
addr |
Offset/cmd |
count |
data |
Checksum1 |
写请求数据包包括开始标志sta、第一数据包长度len1、写命令类型type1、I2C起始地址addr、I2C地址偏移Offset或者SMBUS命令cmd、烧录数据的字节数count、烧录数据的数据段data以及第一校验码checksum1,其中,第一校验码checksum1是数据包长度len1、写命令类型type1、I2C起始地址addr、I2C地址偏移Offset或者SMBUS命令cmd、烧录数据的字节数count以及烧录数据的数据段data之和的低8位。
6)读请求
读请求封装成一读请求数据包,读请求数据包的格式如下所示:
sta |
Len2 |
Type2 |
addr |
Offset/cmd |
count |
Checksum2 |
读请求数据包包括开始标志sta、第二数据包长度len2、读命令类型type2、I2C起始地址addr、I2C地址偏移Offset或者SMBUS命令cmd、烧录数据的字节数count以及第二校验码checksum2,其中,第二校验码checksum2是数据包长度len2、读命令类型type2、I2C起始地址addr、I2C地址偏移Offset或者SMBUS命令cmd、烧录数据的字节数count以及烧录数据的数据段data之和的低8位。
实际上,可以理解的是,读请求的操作地址和写请求的操作地址是一样的,即addr和Offset/cmd是相同的,烧录数据的字节数count既表示读取数据的字节数,也表示写入数据的字节数。
7)烧录治具反馈的读取到的数据
烧录治具反馈的读取到的数据封装成一返回数据包,返回数据包的格式如下所示:
返回数据包包括开始标志sta、读取的数据段data以及校验码checksum3,其中,校验码checksum3是读取的数据段data之和的低8位。
本实施例提供一种数字电源芯片烧录装置,所述装置位于上位机,用于实现通过运行Powershell脚本程序对待烧录芯片进行烧录,如图4所示,所述装置包括:
解析模块401,用于解析烧录文件,得到所述待烧录芯片的烧录地址和烧录数据;
第一指令模块402,用于按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求,所述写请求包括所述烧录地址和所述烧录数据,以使所述烧录治具根据所述写请求将所述烧录数据按照所述烧录地址烧录到所述待烧录芯片。
本发明实施例提供的数字电源芯片烧录装置,能够按照待烧录芯片的烧录时序向烧录治具发送写请求,进而控制烧录治具烧录数字电源。由于不同的数字电源要求的烧录时序完全不同,上位机只需要改变发送指令的时序,就可以烧录多种型号的数字电源,简化了烧录步骤,缩短了烧录时间,减少了出错可能。同时本发明无需变动烧录治具固件代码,保证了底层固件的通用性。
进一步地,如图5所示,所述数字电源芯片烧录装置还包括:
第二指令模块403,用于在按照所述待烧录芯片专用的烧录时序向所述烧录治具发送写请求之前,按照所述待烧录芯片专用的烧录时序向所述烧录治具发送读请求,所述读请求包括所述烧录地址,以使所述烧录治具根据所述读请求从所述待烧录芯片读取数据;
判断模块404,用于在接收到所述烧录治具反馈回的数据之后,判断所述烧录治具反馈回的数据与所述烧录数据是否一致,如果一致,则所述第一指令模块402不再向所述烧录治具发送写请求,如果不一致,则所述第一指令模块402继续向所述烧录治具发送写请求。
上位机和烧录治具进行串口通信时,为了实现可靠有序的数据传输,二者之间传输的数据(包括各种请求以及反馈的数据)封装在数据包中,采用自定义的通信协议进行交互,数据包的具体格式在介绍数字电源烧录方法时已经详细介绍,此处不再赘述。
本实施例提供一种上位机,包括存储器、处理器及存储在存储器上并可在处理器上运行的Powershell脚本程序,所述处理器执行所述Powershell脚本程序时实现上述方法实施例所提供的数字电源芯片烧录方法。
本实施例提供一种非暂态计算机可读存储介质,其上存储有Powershell脚本程序,该Powershell脚本程序被处理器执行时实现上述方法实施例所提供的数字电源芯片烧录方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。