CN103729213A - 一种Flash在线升级的方法及装置 - Google Patents

一种Flash在线升级的方法及装置 Download PDF

Info

Publication number
CN103729213A
CN103729213A CN201310698342.0A CN201310698342A CN103729213A CN 103729213 A CN103729213 A CN 103729213A CN 201310698342 A CN201310698342 A CN 201310698342A CN 103729213 A CN103729213 A CN 103729213A
Authority
CN
China
Prior art keywords
cpld
control device
flash
bus
sends
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310698342.0A
Other languages
English (en)
Other versions
CN103729213B (zh
Inventor
朱少佞
梁荣江
洪潮
徐波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Hangzhou Huawei Digital Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Huawei Digital Technologies Co Ltd filed Critical Hangzhou Huawei Digital Technologies Co Ltd
Priority to CN201310698342.0A priority Critical patent/CN103729213B/zh
Publication of CN103729213A publication Critical patent/CN103729213A/zh
Application granted granted Critical
Publication of CN103729213B publication Critical patent/CN103729213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明的实施例提供一种Flash在线升级的方法及装置,涉及通信领域,通过I2C总线进行控制装置与CPLD的数据交互完成相应的Flash升级指令,解决现有总线技术中信号过多,资源开销过大的问题。该方法包括:CPLD接收控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至控制装置;CPLD获取控制装置通过I2C总线发送的I2C信号,I2C信号为控制装置在接收到第一反馈信息后,控制装置将预置的升级文件内嵌至I2C总线中生成的;CPLD获取I2C信号中的预置的升级文件;CPLD发送预置的升级文件至扣板侧的Flash,以使扣板侧的Flash写入预置的升级文件中的数据。

Description

一种Flash在线升级的方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种Flash在线升级的方法及装置。
背景技术
在现有的Flash在线升级的服务方案中,CPU对扣板侧的Flash进行在线升级时,是利用Local Bus总线技术,直接把Local Bus(CPU总线)信号通过连接器传送到扣板侧,然后将Local Bus信号经过多个地址锁存器进行地址锁存,实现对Local Bus信号进行复用之后才能向扣板侧的Flash发送升级命令,进而使得扣板侧的Flash完成升级操作。
然而,Local Bus总线技术中的Local Bus信号至少有37个,当CPU和Flash分属在两块单板上时,连接两个单板的连接器管脚有很大一部分会被Local Bus总线占据,大大增加了板间连接器的成本以及单板的布局空间。另外,当CPU和所需在线升级的扣板侧的Flash之间需要进行远距离传输时,由于Local Bus总线的走线长度有较大的限制,可能导致数据传输过程中信号的丢失和损耗,造成信号完整性变差的问题,从而进一步增加了CPU的开销,然而现有相关技术对此并没有很好的解决方案。
发明内容
本发明的实施例提供一种Flash在线升级的方法,通过I2C(Inter-Integrated Circuit)总线进行控制装置与CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)的数据交互,以及CPLD对I2C信号的解析完成相应的Flash升级指令,以解决现有总线技术中信号过多,资源开销过大的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种Flash在线升级的方法,包括:
所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;
所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;
所述CPLD获取所述I2C信号中的所述预置的升级文件;
所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
在第一方面的第一种可能的实现方式中,所述CPLD接收所述控制装置发送的第一信令完成对扣板侧的Flash的擦除操作的方法包括:
所述CPLD对所述第一信令进行解析,以获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据;
所述CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
在第一方面的第二种可能的实现方式中,所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号的方法包括:
所述CPLD接收来自所述控制装置的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的;
所述CPLD对所述第二信令进行解析,以获得写入指令;
所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令;
所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号。
在第一方面的第三种可能的实现方式中,在所述CPLD发送所述预置的升级文件至所述扣板侧的Flash之前,所述方法还包括:
所述CPLD对所述升级文件进行串行转并行处理;
相应的,所述CPLD发送所述预置的升级文件至所述扣板侧的Flash包括:
所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
在第一方面的第四种可能的实现方式中,所述CPLD按照localbus协议,并使用local bus时序向所述扣板侧的Flash发送所述升级文件,发送所述预置的升级文件至所述扣板侧的Flash。
第二方面,本发明实施例提供一种Flash在线升级的方法,包括:
所述控制装置通过所述I2C总线发送第一信令至所述CPLD,以使得所述CPLD响应于自身发送的第一信令完成扣板侧的Flash的擦除操作,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的;
所述控制装置通过所述I2C总线发送I2C信号至所述CPLD,以使得所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据,其中,所述I2C信号为自身将所述预置的升级文件内嵌至I2C总线中生成的。
在第二方面的第一种可能的实现方式中,在所述控制装置通过所述I2C总线发送第一信令至所述CPLD之后,还包括:
所述控制装置通过所述I2C总线接收所述CPLD发送的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
结合第二方面以及第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述控制装置通过所述I2C总线发送I2C信号至所述CPLD的方法包括:
所述控制装置通过所述I2C总线发送第二信令至所述CPLD,以使得所述CPLD对所述第二信令进行解析,以获得写入指令,其中,所述第二信令为自身响应于所述第一反馈信息而生成的;
所述控制装置通过所述I2C总线接收所述CPLD发送的第二反馈信息,所述第二反馈信息用于指示CPLD已获得所述写入指令;
根据所述第二反馈信息,所述控制装置通过所述I2C总线发送所述I2C信号至所述CPLD,以使得所述CPLD对所述升级文件进行串行转并行处理,并发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
在第二方面的第四种可能的实现方式中,在所述控制装置通过所述I2C总线发送I2C信号至所述CPLD之前,还包括:
所述控制装置获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
第三方面,本发明的实施例提供一种CPLD,包括:
第一接收单元,用于所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;
第一获取单元,用于所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;以及所述CPLD获取所述I2C信号中的所述预置的升级文件;
处理单元,用于所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
在第三方面的第一种可能的实现方式中,所述处理单元,用于所述CPLD对所述第一信令进行解析,以获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据;以及所述CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
在第三方面的第二种可能的实现方式中,所述第一接收单元,用于所述CPLD接收来自所述控制装置的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的;以及所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号;
所述处理单元,用于所述CPLD对所述第二信令进行解析,以获得写入指令;以及所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。
在第三方面的第三种可能的实现方式中,所述处理单元,用于所述CPLD对所述升级文件进行串行转并行处理;以及所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
在第三方面的第四种可能的实现方式中,所述CPLD按照localbus协议,并使用local bus时序向所述扣板侧的Flash发送所述升级文件,发送所述预置的升级文件至所述扣板侧的Flash。
第四方面,本发明的实施例提供一种控制装置,包括:
第一发送单元,用于所述控制装置通过所述I2C总线发送第一信令至所述CPLD,以使得所述CPLD响应于自身发送的第一信令完成扣板侧的Flash的擦除操作,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的;以及所述控制装置通过所述I2C总线发送I2C信号至所述CPLD,以使得所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据,其中,所述I2C信号为自身将所述预置的升级文件内嵌至I2C总线中生成的。
在第四方面的第一种可能的实现方式中,还包括:
第二接收单元,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
结合前述的第四方面以及第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第一发送单元,用于所述控制装置通过所述I2C总线发送第二信令至所述CPLD,以使得所述CPLD对所述第二信令进行解析,以获得写入指令,其中,所述第二信令为自身响应于所述第一反馈信息而生成的;
所述第二接收单元,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第二反馈信息,所述第二反馈信息用于指示CPLD已获得所述写入指令;
所述第一发送单元,用于根据所述第二反馈信息,所述控制装置通过所述I2C总线发送所述I2C信号至所述CPLD,以使得所述CPLD对所述升级文件进行串行转并行处理,并发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
在第四方面的第三种可能的实现方式中,还包括:
第二获取单元,用于所述控制装置获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
在第四方面的第四种可能的实现方式中,所述控制装置包括CPU和FPGA(Field-Programmable Gate Array,即现场可编程门阵列)。
本发明的实施例提供一种Flash在线升级的方法及装置,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例一提供的一种Flash在线升级的方法的流程图;
图2为本发明的实施例一提供的一种Flash在线升级的方法的流程图;
图3为利用锁存器373对Local Bus总线数据/地址解复用原理图;
图4为本发明的实施例二提供的一种Flash在线升级的方法的流程图;
图5为I2C总线一次完整的数据传输时序图;
图6为CPLD的初始化的具体状态转化过程示意图;
图7为某种FLASH器件使用Local Bus总线的读时序;
图8为某种FLASH器件使用Local Bus总线的写时序;
图9为控制装置使用I2C总线的写时序示意图;
图10为控制装置使用I2C总线的读时序示意图;
图11为本发明的实施例三提供的一种CPLD的结构示意图;
图12为本发明的实施例四提供的一种控制装置的结构示意图一;
图13为本发明的实施例四提供的一种控制装置的结构示意图二;
图14为本发明的实施例四提供的一种控制装置的结构示意图三;
图15为本发明的实施例五提供的一种CPLD的结构示意图;
图16为本发明的实施例六提供的一种控制装置的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
需要说明的是,本发明实施例中所提到的本领域技术人员,为假定他知晓申请日或者优先权日之前发明(或者实用新型)所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验的手段和能力,但他不具有创造能力。如果所要解决的技术问题能够促使本领域的技术人员在其他技术领域寻找技术手段,他也应具有从该其他技术领域中获知该申请日或优先权日之前的相关现有技术、普通技术知识和常规实验手段的能力。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例一
本发明的实施例提供一种Flash在线升级的方法,如图1所示,包括:
101、CPLD接收控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至控制装置。
其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
本发明的实施例提供一种Flash在线升级的方法,引入新装置CPLD并在控制装置与CPLD之间设有基于I2C协议的I2C总线,该方法通过I2C总线进行控制装置与CPLD的数据交互,得对到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
其中,所述I2C协议的I2C总线包括一条串行数据线SDA和一条串行时钟线SCL,用于连接微控制装置及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高的优点。I2C总线通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制装置——MCU、LCD驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定),这就使得数据在交互时可以减少信号和引脚的使用。
所述CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。CPLD基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。在本发明的实施例中,本领域的技术人员根据I2C总线的特点,针对实现扣板侧Flash的擦除和写入需要编写新的代码至CPLD中。
具体的,当控制装置响应于用户的操作需要对扣板侧的Flash进行更新时,可以分为两个过程,首先是将扣板侧的Flash内原有的数据进行清除,然后就是获取新的数据并将新数据写入扣板侧的Flash内。
例如,家用电脑向用户提示是否安装对扣板侧的Flash的升级数据包,用户执行同意升级的按键操作后,控制装置获得所述第一信令,然后控制装置将所述第一信令发送给CPLD得到擦除命令,CPLD对所述擦除地进行解析后进入擦出状态,进而完成后续的升级工作。
102、CPLD获取控制装置通过I2C总线发送的I2C信号。
其中,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的。
具体的,CPLD接收控制装置发送的第一信令之后,对所述第一信令进行解析,以获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据,进而CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。当所述扣板侧的Flash擦除原有数据之后,基于I2C协议的规定扣板侧的Flash发送第一反馈信息至CPLD,CPLD又将所述第一反馈信息发送至所述控制装置,告知控制装置所述扣板侧的Flash已完成擦除,此时控制装置发送第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的,CPLD接收到所述第二信令后对所述第二信令进行解析,以获得写入指令,基于I2C协议的规定所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令,当所述控制装置接收到第二反馈信息后发送所述I2C信号至CPLD,以使得CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而完成扣板侧的Flash对新数据的写入。
进一步地,可使用I2C总线技术完成本发明的方案,即在原有I2C总线状态机的基础上,可以根据I2C协议规则重新增加了两个状态机,分别是I2C erase flash和I2C upgrade flash用于所述CPLD完成扣板侧的Flash的擦除和写入。对应的,所述CPLD在完成I2Cerase flash和I2C upgrade flash两个状态机时,需要本领域技术人员编写相应的代码。另外,关于I2C状态机的实现将在下一实施例中详细阐述,故此处不再赘述。
可选的,以下为CPLD在完成I2C erase flash和I2C upgradeflash两个状态机时代码设计的一种可以实现的方案。首先,为了区别于普通的I2C的读写操作,新代码针对Flash的擦除和写入操作分别定义了对应的两个从地址(slave address),当CPLD解析出的所述第一信令为擦除地址时,获得擦除指令,同时CPLD的状态机进入到擦除状态(I2C erase flash),通过Local Bus向扣板侧的Flash发送所述擦除命令;当CPLD解析出的所述第二信令为写入地址时,获得写入指令,CPLD的状态机进入到写入状态(I2C upgrade flash),然后通过I2C总线获取其中I2C信号中的升级文件进行串转并处理,按照Local Bus的时序在发出写命令之后向扣板侧的Flash写入并行数据,直到整个文件都升级完毕。
具体的,状态机(finite-state machine,FSM)又称有限状态自动机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究,它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。状态机可归纳为4个要素,即现态、条件、动作、次态,所述现态是指当前所处的状态。所述条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。所述动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。所述次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。本发明实施例中使用I2C总线技术涉及I2C erase flash和I2C upgrade flash两个状态机以使得所述CPLD完成扣板侧的Flash擦除或写入预置的升级文件中的数据,其中具体方法将在下一实施例中详细阐述,故此处不再赘述。
103、CPLD获取I2C信号中的预置的升级文件。
其中,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。具体的,在用户触发扣板侧的Flash的升级操作以后,控制装置将所述预置的升级文件通过管理网口上传到主板侧的Flash中,控制装置通过local bus总线抓取文件并内嵌至I2C信号中,最终CPLD通过I2C总线获得I2C信号中的预置的升级文件。
进一步地,CPLD获取I2C信号后,对所述I2C信号进行解析,当CPLD解析出的所述第一信令为擦除地址时,获得擦除指令,同时CPLD的状态机进入到擦除状态(I2C erase flash),通过Local Bus向扣板侧的Flash发送所述擦除命令;当CPLD解析出的所述第二信令为写入地址时,获得写入指令,CPLD的状态机进入到写入状态(I2Cupgrade flash),然后通过I2C总线获取其中I2C信号中的升级文件进行串转并处理,按照Local Bus的时序在发出写命令之后向扣板侧的Flash写入并行数据,直到整个文件都升级完毕
可选的,所述CPLD对升级文件进行串转并处理的方法可以为,在CPLD内部写一个串转并的模块(例如一个16位的移位寄存器),当16位数据都接收到后一次输出至扣板侧的Flash。
104、CPLD发送预置的升级文件至扣板侧的Flash,以使扣板侧的Flash写入预置的升级文件中的数据。
具体的,在CPLD获取I2C信号中的预置的升级文件后,CPLD对所述升级文件进行串行转并行处理,进而所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
进一步地,若控制装置和所要在线升级的Flash之间应用于跨背板、走线超长的场景时,由于I2C的走线长度限制较小,而Local Bus走线长度受限,跨背板操作可能导致信号完整性丧失的问题。所述背板支撑其他电路板、器件和器件之间的相互连接,并为所支撑的器件提供电源和数据信号的电路板或框架。进而使用本技术发明可以极大地加长控制装置和Flash之间的走线长度,实现控制装置和Flash在背板之间的信号传输。
至此,CPLD通过使用I2C总线与控制装置进行交互得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
本发明的实施例提供一种Flash在线升级的方法,如图2所示,包括:
201、控制装置通过I2C总线发送第一信令至CPLD。
其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的。另外,所述用户输入的升级操作指令可以为针对Flash升级提示生成的,也可以是用户在进行其他操作的过程中间接触发的,例如用户在选择观看视频节目时默认对扣板侧的Flash进行更新操作。
本发明实施例提供的一种Flash在线升级的方法,引入CPLD并通过I2C技术实现控制装置与扣板侧Flash的数据交互,进而完成扣板侧的Flash的升级指令。为了实现上述方法,首先所述控制装置通过I2C总线发送第一信令至所述CPLD。
例如,家用电脑向用户提示是否安装对扣板侧的Flash的升级数据包,所述控制装置接收到来自用户执行同意升级的按键操作后,发送第一信令至所述CPLD,以使得CPLD进行解析得到擦除命令,CPLD对所述擦除地进行解析后进入擦出状态,进而完成后续的升级工作。
当控制装置通过I2C总线发送第一信令后,所述CPLD完成对所述第一信令的解析使得扣板侧的Flash获得擦除命令,进而对原有扣板侧的Flash的数据的擦除操作,此时控制装置接收来自所述CPLD的第一反馈信息,用于指示所述扣板侧的Flash获得擦除命令已经完成,所述CPLD已经准备好进行进下一步的写入程序,进而完成后续的升级工作。
在控制装置接收来自所述CPLD的第一反馈信息之后,所述控制装置根据所述第一反馈信息获悉所述扣板侧的Flash已经完成擦除命令,可以启动下一步的写入程序,此时控制装置发送第二信令,以使得所述CPLD对第二信令进行解析获得写入指令,进而完成后续的升级工作。
在现有技术中,控制装置向所述扣板侧的Flash进行升级操作时,使用Local bus总线并采用数据/地址线复用的形式,通常为32位宽,使用时需要将总线的数据和地址分离出来再分别接到目标器件的数据和地址端口,其中,利用锁存器373对Local bus总线数据/地址解复用原理如图3所示,其中,L_ALE是地址锁存信号,低电平有效,当L_ALE出现一个低电平脉冲时,锁存器的输入端口对LAD[31:0]信号进行采样、锁存并从输出端口输出,直到下一个L_ALE低电平脉冲到来时,其输出状态才发生改变,Local bus总线在输出地址信号时将L_ALE信号驱动为低电平,输出数据信号时,将L_ALE驱动为高电平,锁存器正式利用这个特点轻松实现Local bus总线上数据和地址的分离。
202、控制装置通过I2C总线发送I2C信号至CPLD。
其中,所述I2C信号为所述控制装置自身将所述预置的升级文件内嵌至I2C总线中生成的。
具体的,在控制装置根据所述第一反馈信息发送第二信令之后,所述CPLD对所述第二信令进行解析,获得写入指令。为了使所述控制装置及时将升级文件发送至所述CPLD完成升级数据的写入,所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。相应的,当所述控制装置收到所述第二反馈信息后,向所述CPLD发送I2C信号,以使得所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号。
在控制装置接收来自所述CPLD的第二反馈信息之后,所述控制装置获悉扣板侧的Flash已经完成擦除命令,可以启动写入程序对扣板侧的Flash进行升级数据的写入。此时,控制装置将预置的升级文件内嵌至I2C总线,以生成I2C信号。
其中,所述预置的升级文件为用户在进行升级操作时将升级文件通过管理网口上传至主板侧的Flash中,然后所述控制装置主动抓取获得的,再由所述控制装置将预置的升级文件内嵌至I2C总线中生成I2C信号发送至所述CPLD。
进一步地,在控制装置将预置的升级文件内嵌至I2C总线,以生成I2C信号发送至所述CPLD之后,所述CPLD对所述预置的升级文件进行串行转并行处理,然后将串行转并行处理后的所述预置的升级文件发送至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
需要说明的是,CPLD发送所述预置的升级文件至所述扣板侧的Flash是按照local bus协议,使用local bus时序向扣板侧的Flash发送所述升级文件。其中,使用local bus时序向扣板侧的Flash发送所述升级文件的方法将在下一实施例中详细阐述,故此处不再赘述。
另外,所述控制装置包括有CPU和FPGA。所述CPU即中央处理器,中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU)和控制器(CU)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。所述FPGA(Field-Programmable GateArray,即现场可编程门阵列)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input OutputBlock)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
本发明的实施例提供一种Flash在线升级的方法,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
实施例二
本发明的实施例提供一种Flash在线升级的方法,如图4所示,包括:
301、控制装置通过I2C总线发送第一信令。
其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的。另外,所述用户输入的升级操作指令可以为针对Flash升级提示生成的,也可以是用户在进行其他操作的过程中间接触发的,例如用户在选择观看视频节目时默认对扣板侧的Flash进行更新操作。
本发明的实施例提供一种Flash在线升级的方法,引入新装置CPLD并在控制装置与CPLD之间设有基于I2C协议的I2C总线,该方法通过I2C总线进行控制装置与CPLD的数据交互,得对到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
其中,所述I2C总线包括一条串行数据线SDA和一条串行时钟线SCL,用于连接微控制装置及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高的优点。I2C总线通过串行数据(SDA)线和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别(无论是微控制装置——MCU、LCD驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定),这就使得数据在交互时可以减少信号和引脚的使用。
另外,CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。CPLD基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数字系统。在本发明的实施例中,本领域的技术人员根据I2C总线的特点,针对实现扣板侧Flash的擦除和写入需要编写新的代码至CPLD中。
302、CPLD对所述第一信令进行解析获得擦除命令。
具体的,在控制装置通过I2C总线发送第一信令之后,CPLD对所述第一信令进行解析,得到擦除命令进而完成后续扣板侧Flash的升级工作。例如,家用电脑向用户提示是否安装对扣板侧的Flash的升级数据包,所述控制装置接收到来自用户执行同意升级的按键操作后,发送第一信令至所述CPLD,然后CPLD对所述第一信令进行解析得到擦除命令,并进入擦出状态,进而完成后续的升级工作。
303、CPLD根据所述第一信令获取擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据。
本发明实施例提供的一种Flash在线升级的方法,引入CPLD并通过I2C技术实现控制装置与扣板侧Flash的数据交互,进而完成扣板侧的Flash的升级指令。为了实现上述方法,首先所述CPLD会获取来自控制装置的第一信令,所述第一信令指示CPLD需要完成扣板侧Flash的擦除任务,然后CPLD根据所得到的第一信令进行解析判断得到所述擦除命令,所述CPLD根据得到的擦除命令进一步进行地址转换,进而启动擦除状态。
其中,所述擦除状态为本发明实施例中的I2C协议下的一种状态机,本发明实施例中的I2C状态机共有9个,其中有7个是原有I2C协议下规定的,另外新增加两个状态机分别是I2C erase flash和I2C upgrade flash用于所述CPLD完成扣板侧的Flash的擦除和写入。
具体的,状态机(finite-state machine,FSM)又称有限状态自动机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究,它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理,符合计算机的工作特点。状态机可归纳为4个要素,即现态、条件、动作、次态,所述现态是指当前所处的状态。所述条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。所述动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。所述次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
示例性的,如图5所示,为I2C总线一次完整的数据传输时序图,其中1至7为地址位;8为读/写位;9为应答位,可以将整个过程分为五个状态:1.起始;2.写入(0或1);3.应答;4.暂停;5.结束。其中,在I2C总线上,每一个数据中,逻辑“0”和逻辑“1”的信号电平取决于相应的正端电压。I2C总线在进行传送时,在时钟信号为高电平期间,数据线(SAD)上的数据必须保持稳定,只有在时钟线(SCL)上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。这就保持了数据传输的有效性。另外,在I2C总线上,比特位传送字节的后面都必须跟随一位确认位,或称跟随一位应答位,并且数据是以最高有效位首先发出。以CPLD的初始化状态机为例,整个初始化的具体状态转化过程如图6所示。
304、CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
具体的,所述CPLD获得擦除命令后,进行解析使CPLD进入擦除状态,调用CPLD内预置的Flash擦除程序的程序代码,向扣板侧的Flash发送擦除命令以使所述扣板侧的Flash擦除原有数据。
进一步地,所述CPLD获取来自控制装置的擦除命令是通过I2C总线发送的,所述I2C总线具有接口线少,控制方式简单,器件封装形式小,通信速率较高的优点。本发明的方案在现有的I2C总线的基础上,增加Flash擦除程序和Flash写入程序的代码预置在所述CPLD内,当所述CPLD获取擦除命令时,进入擦除状态,并调用CPLD内预置的Flash擦除程序的程序代码以使所述扣板侧的Flash擦除原有数据;当所述CPLD获取写入命令时,进入写入状态,并调用CPLD内预置的Flash写入程序的程序代码以使所述扣板侧的Flash写入新数据完成升级操作。
又进一步地,可使用I2C总线技术完成本发明的方案,即在原有I2C总线状态机的基础上,可以根据I2C协议规则重新增加了两个状态机,分别是I2C erase flash和I2C upgrade flash用于所述CPLD完成扣板侧的Flash的擦除和写入。对应的,所述CPLD在完成I2Cerase flash和I2C upgrade flash两个状态机时,需要本领域技术人员编写相应的代码。
可选的,以下为CPLD在完成I2C erase flash和I2C upgradeflash两个状态机时进行代码设计的一种可以实现的方案。首先,为了区别于普通的I2C的读写操作,新代码针对Flash的擦除和写入操作分别定义了对应的两个从地址(slave address),当CPLD解析出的所述第一信令为擦除地址时,获得擦除指令,同时CPLD的状态机进入到擦除状态(I2C erase flash),通过Local Bus向扣板侧的Flash发送所述擦除命令;当CPLD解析出的所述第二信令为写入地址时,获得写入指令,CPLD的状态机进入到写入状态(I2C upgradeflash),然后通过I2C总线获取其中I2C信号中的升级文件进行串转并处理,按照Local Bus的时序在发出写命令之后向扣板侧的Flash写入并行数据,直到整个文件都升级完毕。
305、CPLD接收来自所述扣板侧的Flash的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
具体的,当CPLD发送所述擦除命令至扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据后,所述扣板侧的Flash将已完成擦除命令的信息反馈给所述CPLD,并将这一反馈信息定义为第一反馈信息。
306、CPLD发送所述第一反馈信息至所述控制装置,以使得控制装置接收来自所述CPLD的第一反馈信息。
所述第一反馈信息为所述CPLD发送擦除命令至扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据,所述CPLD接收来自所述扣板侧的Flash的第一反馈消息后发送的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
具体的,当所述CPLD接收来自所述扣板侧的Flash的第一反馈信息后,又将所述第一反馈信息发送给所述控制装置,通知所述控制装置扣板侧的Flash已完成擦除命令。
例如,在用户进行扣板侧的Flash的更新任务时,需要先对原有扣板侧的Flash的数据进行擦除,然后才能将新的升级数据写入扣板侧的Flash中。当扣板侧的Flash已经完成擦除命令后,需要将这一信息作为第一反馈信息逐级反馈给所述控制装置,以使得所述控制装置获悉扣板侧的Flash已经完成擦除命令,进而通过I2C总线的发送的I2C信号完成后续的扣板侧的Flash的升级操作。
307、控制装置根据所述第一反馈信息发送第二信令,以使得所述CPLD对第二信令进行解析获得写入指令。
具体的,在控制装置接收来自所述CPLD的第一反馈信息之后,所述控制装置根据所述第一反馈信息获悉所述扣板侧的Flash已经完成擦除命令,可以启动下一步的写入程序,此时控制装置发送第二信令,以使得所述CPLD对第二信令进行解析获得写入指令,进而完成后续的升级工作。
进一步地,所述CPLD对所述第二信令进行解析,获得写入指令,为了使所述控制装置及时将升级文件发送至所述CPLD完成升级数据的写入,所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。相应的,当所述控制装置收到所述第二反馈信息后,向所述CPLD发送I2C信号,以使得所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号。
308、CPLD对所述第二信令进行解析获得写入指令,并生成第二反馈信息发送至所述控制装置。
其中,所述第二反馈信息为所述CPLD完成对所述第二信令的解析获得写入指令后生成的,所述第二反馈信息用于指示CPLD已获得所述写入指令。
进一步地,所述CPLD对所述第二信令进行解析,获得写入指令,为了使所述控制装置及时将升级文件发送至所述CPLD完成升级数据的写入,所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。
309、控制装置接收来自所述CPLD的第二反馈信息,将预置的升级文件内嵌至I2C总线,以生成I2C信号发送至所述CPLD。
其中,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。具体的,在用户触发扣板侧的Flash的升级操作以后,控制装置将所述预置的升级文件通过管理网口上传到主板侧的Flash中,控制装置通过local bus总线抓取文件并内嵌至I2C信号中,最终CPLD通过I2C总线获得I2C信号中的预置的升级文件。
具体的,在控制装置接收来自所述CPLD的第二反馈信息之后,所述控制装置获悉扣板侧的Flash已经完成擦除命令,可以启动写入程序对扣板侧的Flash进行升级数据的写入。此时,控制装置将预置的升级文件内嵌至I2C总线,以生成I2C信号。
进一步地,CPLD获取I2C信号后,对所述I2C信号进行解析,当CPLD解析出的所述第一信令为擦除地址时,获得擦除指令,同时CPLD的状态机进入到擦除状态(I2C erase flash),通过Local Bus向扣板侧的Flash发送所述擦除命令;当CPLD解析出的所述第二信令为写入地址时,获得写入指令,CPLD的状态机进入到写入状态(I2Cupgrade flash),然后通过I2C总线获取其中I2C信号中的升级文件进行串行转并行处理,按照Local Bus的时序在发出写命令之后向扣板侧的Flash写入并行数据,直到整个文件都升级完毕
310、CPLD获取所述I2C信号中的所述预置的升级文件。
具体的,由于所述CPLD在获取写入指令后需要将内嵌至I2C总线中的升级文件写入扣板侧的Flash中,所述CPLD对I2C信号进行处理,从中分离出所述预置的升级文件,以使得所述扣板侧的Flash写入所述升级文件中的数据。
可选的,所述CPLD对升级文件进行串行转并行处理的方法可以为,在CPLD内部写一个串行转并行的模块(例如一个16位的移位寄存器),当16位数据都接收到后一次输出至扣板侧的Flash。
311、CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
具体的,在CPLD获取I2C信号中的预置的升级文件后,CPLD对所述升级文件进行串行转并行处理,进而所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。至此,CPLD通过使用I2C总线与控制装置进行交互得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
进一步需要说明的是,所述发送所述预置的升级文件至所述扣板侧的Flash是按照local bus协议,使用local bus时序向扣板侧的Flash发送所述升级文件。
其中,Local Bus总线又称为CPU总线,根据高低位地址线序的差异,又可分为Motorola CPU总线和Intel CPU总线。如图7所示,为某种FLASH器件使用Local Bus总线的读时序,该FLASH器件提供的Local Bus接口,Addresses信号是从Local BUS地址信号(已经解复用了),Outputs是Local bus的数据信号。在第一个时钟周期内,Address信号线上传输的是目标器件的地址信号,此时CS#、OE#、WE#都处于高电平无效状态,并且Outputs输出的数据无效。在第二个时钟周期内,CE#变为低电平,表示目标器件已经被选中,接着OE#也变为低电平(大多数情况下,CS#和OE#几乎是同时有效的),表示开始进行读操作,主控制装置在CE#和OE#都为低电平有效的时候对Outputs上的数据进行采样(通常做一定的延时后再采样,以保证采样数据的正确性),采样到的数据即为要读取的数据。
相应的,如图8所示,为某种FLASH器件使用Local Bus总线的写时序,在WE#和CS#同时为低有效的情况下,Flash器件从数据总线上采样数据,然后写到指定的地址空间里去。
又进一步地,如图9所示,为控制装置使用I2C总线的写时序的过程,控制装置在检测到总线空闲的状况下,首先发送一个START信号掌管总线;然后控制装置发送一个控制字节(包括7位器件地址码和一位R/W);当CPLD检测到控制装置发送的地址与自己的地址相同时发送一个应答信号(ACK);控制装置收到ACK后开始发送第一个数据字节;CPLD收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;控制装置发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线。需要说明的是,图9中控制字节指器件地址码和读写控制位;地址字节指器件内部的储存器地址。
如图10所示,为控制装置使用I2C总线的读时序的过程,控制装置在检测到总线空闲的状况下,首先发送一个START信号掌管总线;控制装置发送一个控制字节(包括7位器件地址码和一位R/W);当CPLD检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);控制装置收到ACK后释放数据总线,开始接收第一个数据字节;控制装置收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;控制装置发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线。需要说明的是,图10中控制字节指器件地址码和读写控制位;地址字节指器件内部的储存器地址。
为了更加清楚的阐述本发明中使用I2C总线的读/写时序的过程,下面我们示例性的列出I2C总线时序模拟代码的部分程序段:
I2C总线时序模拟代码:
#include<reg52.h>
#define uchar unsigned char
sbit sda=P2^0;
sbit scl=P2^1;//用单片机的两个I/O口模拟I2C接口
uchar a;
***************************************************
void delay()//简单延时函数
{;;}
***************************************************
void start()//开始信号SCL在高电平期间,SDA一个下降沿则表示启动信号
Figure BDA0000440691390000241
void stop()//停止SCL在高电平期间,SDA一个上升沿则表示停止信号
Figure BDA0000440691390000242
void respons()//应答SCL在高电平期间,SDA被从设备拉为低电平表示应答
Figure BDA0000440691390000243
void init()//总线初始化将总线都拉高一释放总线发送启动信号前,要先初始化总线。即总有检测到总线空闲才开始发送启动信号
Figure BDA0000440691390000252
scl=0;//拉低SCL,因为只有在时钟信号为低电平期间按数据线上的高低电平状态才允许变化;并在此时和上一个循环的scl=1一起形成一个上升沿
Figure BDA0000440691390000261
void write_add(uchar address,uchar date)//任意地址写一个字节
Figure BDA0000440691390000272
Figure BDA0000440691390000281
至此,CPLD通过使用I2C总线与控制装置进行交互得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
本发明的实施例提供一种Flash在线升级的方法,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
实施例三
本发明的实施例提供一种CPLD,如图11所示,包括:
第一接收单元01,用于所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;
第一获取单元02,用于所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;以及所述CPLD获取所述I2C信号中的所述预置的升级文件;
处理单元03,用于所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
进一步地,所述处理单元03,用于所述CPLD对所述第一信令进行解析,以获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据;以及所述CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
进一步地,所述第一接收单元01,用于所述CPLD接收来自所述控制装置的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的;以及所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号;
所述处理单元03,用于所述CPLD对所述第二信令进行解析,以获得写入指令;以及所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。
进一步地,所述处理单元03,用于所述CPLD对所述升级文件进行串行转并行处理;以及所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
进一步地,所述CPLD发送所述预置的升级文件至所述扣板侧的Flash按照local bus协议,使用local bus时序向扣板侧的Flash发送所述升级文件。
本发明的实施例提供一种CPLD,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
实施例四
本发明的实施例提供一种控制装置,如图12所示,包括:
第一发送单元11,用于所述控制装置通过所述I2C总线发送第一信令至所述CPLD,以使得所述CPLD响应于自身发送的第一信令完成扣板侧的Flash的擦除操作,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的;以及所述控制装置通过所述I2C总线发送I2C信号至所述CPLD,以使得所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据,其中,所述I2C信号为自身将所述预置的升级文件内嵌至I2C总线中生成的。
进一步地,如图13所示,还包括:
第二接收单元12,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
进一步地,所述第一发送单元11,用于所述控制装置通过所述I2C总线发送第二信令至所述CPLD,以使得所述CPLD对所述第二信令进行解析,以获得写入指令,其中,所述第二信令为自身响应于所述第一反馈信息而生成的;
所述第二接收单元12,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第二反馈信息,所述第二反馈信息用于指示CPLD已获得所述写入指令;
所述第一发送单元11,用于根据所述第二反馈信息,所述控制装置通过所述I2C总线发送所述I2C信号至所述CPLD,以使得所述CPLD对所述升级文件进行串行转并行处理,并发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
进一步地,如图14所示,还包括:
第二获取单元13,用于所述控制装置获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
进一步地,所述控制装置包括CPU和现场可编程门阵列FPGA。
其中,所述FPGA(Field-Programmable Gate Array,即现场可编程门阵列)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic CellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
本发明的实施例提供一种控制装置,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
实施例五
如图15所示,为本发明的CPLD的硬件示意图:
如图15所示,所述CPLD可以包括:接收器21、处理器22、发送器23。
其中,处理器22为所述控制装置的控制中心,通过接收接收器21以及发送器23内的收据,完成执行指令或者任务。
接收器21以及发送器23可以用于收发信息或通话过程中,信号的接收和发送。
在本发明实施例中,处理器22用于获取来自控制装置的擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据,以及获取所述控制装置通过两线式串行总线I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的,以及获取所述I2C信号中的所述预置的升级文件;接收器21用于接收来自所述扣板侧的Flash的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;发送器23用于发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据,以及发送所述第一反馈信息至所述控制装置,以及发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
进一步地,所述处理器22还用于接收接收器21发送来的来自所述控制装置的第一信令,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,进而对所述第一信令进行解析,以获得所述擦除命令,以及接收接收器21发送来的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的,进而对所述第二信令进行解析,以获得写入指令,以及接收接收器21发送来的通过I2C总线的发送的I2C信号,进而获得所述I2C信号;所述发送器23还用于发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。
进一步地,所述处理器22还用于对所述升级文件进行串行转并行处理;其中,发送所述预置的升级文件至所述扣板侧的Flash包括:发送器23发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
进一步地,所述发送所述擦除命令至所述扣板侧的Flash和/或发送所述预置的升级文件至所述扣板侧的Flash按照local bus协议,使用local bus时序向扣板侧的Flash发送所述擦除命令和/或所述升级文件。
本发明的实施例提供一种CPLD,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
实施例六
如图16所示,为本发明的控制装置的硬件示意图:
如图16所示,所述控制装置可以包括:接收器31、处理器32、发送器33、输入设备34、显示设备35。
其中,处理器32为所述控制装置的控制中心,通过接收接收器31以及发送器33内的收据,完成执行指令或者任务。
接收器31以及发送器33可以用于收发信息或通话过程中,信号的接收和发送。
输入设备34可以用于接收输入的数字或字符信息,获取执行指令或者数据信息。具体地,输入设备35可包括触控面板以及其他输入设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程式驱动相应的连接装置。
显示设备35可用于显示由用户输入的信息。显示设备36可包括显示面板,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器32以确定触摸事件的类型,随后处理器32根据触摸事件的类型在显示面板上提供相应的视觉输出。
在本发明实施例中,所述接收器31用于接收来自复杂可编程逻辑器件CPLD的第一反馈信息,所述第一反馈信息为CPLD发送擦除命令至扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据,所述CPLD接收来自所述扣板侧的Flash的第一反馈消息后发送的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除,以及接收来自所述CPLD的第二反馈信息,所述第二反馈信息为所述CPLD完成对所述第二信令的解析获得所述写入指令后生成的,所述第二反馈信息用于指示所述CPLD已获得所述写入指令;所述处理器32用于将预置的升级文件内嵌至I2C总线,以生成I2C信号;所述发送器33用于通过I2C总线发送第一信令,所述第一信令为控制装置响应用户输入的升级操作指令而生成的,以及根据所述第一反馈信息发送第二信令,以使得所述CPLD对所述第二信令进行解析获得写入指令,以及通过所述I2C总线发送所述I2C信号至所述CPLD,以使所述CPLD获取所述I2C信号中的所述预置的升级文件后,所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
进一步地,所述处理器32,用于获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
进一步地,所述控制装置包括CPU和现场可编程门阵列FPGA。所述CPU即中央处理器,中央处理器是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU)和控制器(CU)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。所述FPGA(Field-Programmable Gate Array,即现场可编程门阵列)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
本发明的实施例提供一种控制装置,控制装置与CPLD之间设有基于I2C协议的I2C总线,通过所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。所述方案通过I2C总线进行控制装置与CPLD的数据交互,得到升级数据,进而完成CPLD对扣板侧的Flash的升级操作,不仅合理分担控制装置的负载,同时减少了现有总线技术中使用Local Bus总线的信号过多导致系统资源开销的增加问题,另外由于I2C走线长度限制较小,解决了现有总线技术因走线过长导致的信号完整性差的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (19)

1.一种Flash在线升级的方法,其特征在于,控制装置与复杂可编程逻辑器件CPLD之间设有基于I2C协议的I2C总线,所述方法包括:
所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;
所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;
所述CPLD获取所述I2C信号中的所述预置的升级文件;
所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
2.根据权利要求1所述的Flash在线升级的方法,其特征在于,所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作的方法包括:
所述CPLD对所述第一信令进行解析,获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据;
所述CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
3.根据权利要求1所述的Flash在线升级的方法,其特征在于,所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号的方法包括:
所述CPLD接收来自所述控制装置的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的;
所述CPLD对所述第二信令进行解析,以获得写入指令;
所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示所述CPLD已获得所述写入指令;
所述CPLD接收来自所述控制装置通过所述I2C总线的发送的I2C信号,获得所述I2C信号。
4.根据权利要求1所述的Flash在线升级的方法,其特征在于,在所述CPLD发送所述预置的升级文件至所述扣板侧的Flash之前,所述方法还包括:
所述CPLD对所述升级文件进行串行转并行处理;
相应的,所述CPLD发送所述预置的升级文件至所述扣板侧的Flash包括:
所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
5.根据权利要求1所述的Flash在线升级的方法,其特征在于,所述CPLD按照local bus协议,并使用local bus时序向所述扣板侧的Flash发送所述升级文件,发送所述预置的升级文件至所述扣板侧的Flash。
6.一种Flash在线升级的方法,其特征在于,控制装置与复杂可编程逻辑器件CPLD之间设有基于I2C协议的I2C总线,所述方法包括:
所述控制装置通过所述I2C总线发送第一信令至所述CPLD,以使得所述CPLD响应于自身发送的第一信令完成扣板侧的Flash的擦除操作,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的;
所述控制装置通过所述I2C总线发送I2C信号至所述CPLD,以使得所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据,其中,所述I2C信号为自身将所述预置的升级文件内嵌至I2C总线中生成的。
7.根据权利要求6所述的Flash在线升级的方法,其特征在于,在所述控制装置通过所述I2C总线发送第一信令至所述CPLD之后,还包括:
所述控制装置通过所述I2C总线接收所述CPLD发送的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
8.根据权利要求6或7所述的Flash在线升级的方法,其特征在于,所述控制装置通过所述I2C总线发送I2C信号至所述CPLD的方法包括:
所述控制装置通过所述I2C总线发送第二信令至所述CPLD,以使得所述CPLD对所述第二信令进行解析,以获得写入指令,其中,所述第二信令为自身响应于所述第一反馈信息而生成的;
所述控制装置通过所述I2C总线接收所述CPLD发送的第二反馈信息,所述第二反馈信息用于指示CPLD已获得所述写入指令;
根据所述第二反馈信息,所述控制装置通过所述I2C总线发送所述I2C信号至所述CPLD,以使得所述CPLD对所述升级文件进行串行转并行处理,并发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
9.根据权利要求6所述的Flash在线升级的方法,其特征在于,在所述控制装置通过所述I2C总线发送I2C信号至所述CPLD之前,还包括:
所述控制装置获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
10.一种可编程逻辑器件CPLD,其特征在于,控制装置与所述CPLD之间设有基于I2C协议的I2C总线,包括:
第一接收单元,用于所述CPLD接收所述控制装置发送的第一信令完成扣板侧的Flash的擦除操作并发送第一反馈信息至所述控制装置,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除;
第一获取单元,用于所述CPLD获取所述控制装置通过所述I2C总线发送的I2C信号,所述I2C信号为所述控制装置在接收到所述第一反馈信息后,所述控制装置将预置的升级文件内嵌至I2C总线中生成的;以及所述CPLD获取所述I2C信号中的所述预置的升级文件;
处理单元,用于所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据。
11.根据权利要求10所述的CPLD,其特征在于,
所述处理单元,用于所述CPLD对所述第一信令进行解析,以获得所述擦除命令,所述擦除命令用于指示扣板侧的Flash擦除原有数据;以及所述CPLD发送所述擦除命令至所述扣板侧的Flash,以使所述扣板侧的Flash擦除原有数据。
12.根据权利要求10所述的CPLD,其特征在于,
所述第一接收单元,用于所述CPLD接收来自所述控制装置的第二信令,所述第二信令为所述控制装置响应于所述第一反馈信息而生成的;以及所述CPLD接收来自所述控制装置通过I2C总线的发送的I2C信号,进而获得所述I2C信号;
所述处理单元,用于所述CPLD对所述第二信令进行解析,以获得写入指令;以及所述CPLD发送对应于所述第二信令的第二反馈信息至所述控制装置,所述第二反馈信息用于指示CPLD已获得所述写入指令。
13.根据权利要求10所述的CPLD,其特征在于,
所述处理单元,用于所述CPLD对所述升级文件进行串行转并行处理;以及所述CPLD发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
14.根据权利要求10所述的CPLD,其特征在于,所述CPLD按照local bus协议,并使用local bus时序向所述扣板侧的Flash发送所述升级文件,发送所述预置的升级文件至所述扣板侧的Flash。
15.一种控制装置,其特征在于,所述控制装置与复杂可编程逻辑器件CPLD之间设有基于I2C协议的I2C总线,包括:
第一发送单元,用于所述控制装置通过所述I2C总线发送第一信令至所述CPLD,以使得所述CPLD响应于自身发送的第一信令完成扣板侧的Flash的擦除操作,其中,所述第一信令为所述控制装置响应用户输入的升级操作指令而生成的;以及所述控制装置通过所述I2C总线发送I2C信号至所述CPLD,以使得所述CPLD获取所述I2C信号中的所述预置的升级文件;所述CPLD发送所述预置的升级文件至所述扣板侧的Flash,以使所述扣板侧的Flash写入所述预置的升级文件中的数据,其中,所述I2C信号为自身将所述预置的升级文件内嵌至I2C总线中生成的。
16.根据权利要求15所述的控制装置,其特征在于,还包括:
第二接收单元,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第一反馈信息,所述第一反馈信息用于指示所述扣板侧的Flash已完成擦除。
17.根据权利要求15或16所述的控制装置,其特征在于,
所述第一发送单元,用于所述控制装置通过所述I2C总线发送第二信令至所述CPLD,以使得所述CPLD对所述第二信令进行解析,以获得写入指令,其中,所述第二信令为自身响应于所述第一反馈信息而生成的;
所述第二接收单元,用于所述控制装置通过所述I2C总线接收所述CPLD发送的第二反馈信息,所述第二反馈信息用于指示CPLD已获得所述写入指令;
所述第一发送单元,用于根据所述第二反馈信息,所述控制装置通过所述I2C总线发送所述I2C信号至所述CPLD,以使得所述CPLD对所述升级文件进行串行转并行处理,并发送串行转并行处理后的所述预置的升级文件至所述扣板侧的Flash。
18.根据权利要求15所述的控制装置,其特征在于,还包括:
第二获取单元,用于所述控制装置获取主板侧的Flash中的所述预置的升级文件,所述预置的升级文件为用户在输入升级操作指令后将升级数据包由管理网口解压传送至所述主板侧的Flash而生成的。
19.根据权利要求15所述的控制装置,其特征在于,所述控制装置包括CPU和现场可编程门阵列FPGA。
CN201310698342.0A 2013-12-18 2013-12-18 一种Flash在线升级的方法及装置 Active CN103729213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310698342.0A CN103729213B (zh) 2013-12-18 2013-12-18 一种Flash在线升级的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310698342.0A CN103729213B (zh) 2013-12-18 2013-12-18 一种Flash在线升级的方法及装置

Publications (2)

Publication Number Publication Date
CN103729213A true CN103729213A (zh) 2014-04-16
CN103729213B CN103729213B (zh) 2017-07-14

Family

ID=50453297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310698342.0A Active CN103729213B (zh) 2013-12-18 2013-12-18 一种Flash在线升级的方法及装置

Country Status (1)

Country Link
CN (1) CN103729213B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239097A (zh) * 2014-09-03 2014-12-24 广东欧珀移动通信有限公司 一种通过移动终端升级配件的方法、系统及移动终端
CN105575426A (zh) * 2014-10-08 2016-05-11 无锡华润矽科微电子有限公司 一种嵌入式闪存的在线编程电路及其控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102339263B (zh) * 2010-07-26 2014-06-11 杭州华三通信技术有限公司 总线传输装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张扬等: "基于I2C接口的MCU中FLASH编程模块的设计与实现", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集(下册)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239097A (zh) * 2014-09-03 2014-12-24 广东欧珀移动通信有限公司 一种通过移动终端升级配件的方法、系统及移动终端
CN104239097B (zh) * 2014-09-03 2018-01-16 广东欧珀移动通信有限公司 一种通过移动终端升级配件的方法、系统及移动终端
CN105575426A (zh) * 2014-10-08 2016-05-11 无锡华润矽科微电子有限公司 一种嵌入式闪存的在线编程电路及其控制方法
CN105575426B (zh) * 2014-10-08 2019-07-12 无锡华润矽科微电子有限公司 一种嵌入式闪存的在线编程电路及其控制方法

Also Published As

Publication number Publication date
CN103729213B (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
US8898358B2 (en) Multi-protocol communication on an I2C bus
CN100568211C (zh) 用可编程器件实现访问多个i2c从器件的方法及装置
CN113872796B (zh) 服务器及其节点设备信息获取方法、装置、设备、介质
CN102929836B (zh) 一种航天专用asic芯片系统
CN102508533A (zh) 一种复位控制装置和方法
CN100511148C (zh) 一种cpu系统的启动方法及系统
CN102999350A (zh) 一种数字信号处理平台中fpga程序升级在线下载方法
CN105224480A (zh) 一种用于响应于读取要求的存取存储器装置的方法和装置
CN107678988A (zh) 一种多功能串口装置及实现方法
CN103154921A (zh) Usb至i2c和spi桥接器
CN111294413B (zh) 一种互联网协议ip地址的确定方法、装置和可读介质
CN105335548A (zh) 一种用于ice的mcu仿真方法
CN112087359B (zh) 一种串行通信系统
EP3200089A1 (en) Method, apparatus, communication equipment and storage media for determining link delay
CN109992556A (zh) 一种i2c驱动方法和装置
CN106681951A (zh) 用于mvb网卡与pci总线接口通信的设备及系统
CN103729213A (zh) 一种Flash在线升级的方法及装置
CN102884515A (zh) 串口重定向处理方法、设备和系统
CN105068962A (zh) I2c控制器访问方法及系统
CN204706031U (zh) 串行外设接口spi总线电路以及电子设备
CN115905072A (zh) 计算机系统、基于PCIe设备的控制方法及相关设备
US11119875B2 (en) Communication port recovery
CN216014148U (zh) 一种服务器和服务器背板
CN112000189A (zh) 一种基于s2500处理器的服务器主板
CN111026428A (zh) 能同时远程在线更新多个板卡中fpga固件程序的系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200421

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou

Patentee before: Huawei Technologies Co.,Ltd.

TR01 Transfer of patent right