一种数据处理方法及控制设备的制造方法

文档序号:9765915阅读:243来源:国知局
一种数据处理方法及控制设备的制造方法
【技术领域】
[0001 ]本发明涉及通信技术领域,尤其涉及一种数据处理方法及控制设备。
【背景技术】
[0002]目前业界系统方案设计越来越庞大,对系统管理、数据业务处理解耦需求强烈,因此串行总线在系统管理方面应用广泛。如图1所示,为通用I2C管理架构示意图,通常来说,整机需要使用12C(Inter — Integrated Circuit)总线进行管理现场可更换单元(FieIdReplace Unit,简称FRU)功能,也即是将FRU中的多个功能元件直接挂接到I2C总线上(图1中的PCA9545芯片主要用于将I路I2C总线扩展为4路)。但是由于I2C总线能承载的负载电容有限,最大只能允许400pF,当负载电容大于400pF时,信号上升沿就会过于缓慢,不满足规范要求的300ns要求,会导致串行总线(I2C)挂死。而将FRU中的所有功能元件直接挂接到I2C总线上时,由于各个功能元件之间是并联关系,必然会导致功能元件自身电容的叠加。为避免I2C总线挂件器件的电容和值达到I2C总线所能承载电容的上限,所以,I2C所能挂接器件的数量有限。
[0003]为了解决上述问题,现有技术中,在I2C总线和功能器件之间加入了可以隔离电容的芯片PCA9517或者LTC4300,而在I2C总线和功能器件之间本省还存在许多的串联电阻。假设进行电容隔离的芯片是PCA9517,在I2C总线和PCA9517之间仍然会存在许多的串联电阻。正是由于这些串联电阻的存在,将会导致在串联链路中低电平的抬升,而当低电平抬升到
0.6V时,PCA9517芯片为了防止自身的双向死锁功能,就会将该电平识别为高电平,造成电平误判的问题。
[0004]另外,PCA9517芯片中有一个升压电路,来保证Vcc(B)(输出端口B端的电压)高于2.5V并且Vcc(A)(输入端口 A端的电压)高于0.8V之前输出驱动不关断。当B端电压在升压过程中,如果此时A端电压低于0.3V时,端口B的电压将会回落至钳位电压0.52V。直至端口A电压大于0.3Vcc之后,端口 B电压继续被外部上拉电阻抬升。具体电压变化的时序图如图2所示,但是由于电压的突然回落后,又继续上升,从而使时序图中多了一个上升沿,由此,导致I2C总线的时序错误,从而导致无法访问总线中其他的器件。

【发明内容】

[0005]第一方面,本发明提供了一种数据处理方法,该方法可以应用于控制设备,所述控制设备连接至少一个功能元件,且包括至少一个寄存器,每个寄存器对应一个功能元件,所述方法包括:
[0006]从至少一个功能元件中读取数据,将所读取的数据存储在所述至少一个功能元件对应的寄存器中;
[0007]接收主机发送的数据读取指令;
[0008]从数据读取指令所指示的功能元件对应的寄存器中读取数据;
[0009]接收主机发送的功能元件数据写入指令,将功能元件数据写入指令中的待写入数据,写入功能元件数据写入指令所指示的功能元件中。
[0010]首先接收主机发送的数据读取/数据写入指令,根据不同的指令,执行与指令相应的动作。
[0011]结合第一方面,在第一方面的第一种可能的实现方式中,从至少一个功能元件中读取数据,将所读取的数据存储在至少一个功能元件对应的寄存器中包括:
[0012]周期性从至少一个功能元件中读取数据,在当前周期从至少一个功能元件读取的数据与所读取的功能元件对应的寄存器中存储的读取数据不一致时,用当前周期所读取的数据更新所读取的功能元件对应的寄存器中的读取数据。
[0013]周期性的读取功能元件中的数据,并将该数据与功能元件对应的存储器中存储的数据进行比对,当两组数据不一致时,将功能元件中读取的数据刷新到寄存器中,从而可以尽量的保证寄存器中的数据与功能元件中的数据的一致性。
[0014]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,用当前周期所读取的数据更新所读取的功能原件对应的寄存器中的读取数据具体包括:
[0015]确认所读取的功能元件对应的寄存器中的读取数据正在被读取时,则等待所读取的功能元件对应的寄存器中的读取数据被读完后,再用当前周期所读取的数据更新所读取的功能元件对应的寄存器中的读取数据。
[0016]结合第一方面,在第一方面的第三种可能的实现方式中,从所述数据读取指令所指示的功能元件对应的寄存器中读取数据包括:
[0017]判断是否正在读取数据读取指令所指示的功能元件的数据,
[0018]确认正在读取数据读取指令所指示的功能元件的数据时,则等待数据读取指令所指示的功能元件的数据读取完成后,从数据读取指令所指示的功能元件对应的寄存器中读取数据。
[0019]结合第一方面,在第一方面的第四种可能的实现方式中,判断从数据读取指令所指示的功能元件对应的寄存器中读取数据是否与数据读取指令所指示的功能元件对应的寄存器中存储的数据一致;
[0020]确认从数据读取指令所指示的功能元件对应的寄存器中读取数据与数据读取指令所指示的功能元件对应的寄存器中存储的数据不一致时,设置数据不一致标识。
[0021]判断从寄存器中读取的数据与当前寄存器中存储的数据不一致时,说明寄存器中数据已经更新,主机需要重新读取数据,因此设置数据不一致标识位,方便主机重新发起访问。
[0022]第二方面,本发明实施例提供了一种控制设备,该控制设备连接至少一个功能单元,且包括至少一个寄存器,每个寄存器对应一个功能单元,包括:
[0023]主模块,用于从至少一个功能单元中读取数据,并将所读取的数据存储在每个功能单元对应的寄存器中;
[0024]从模块,用于接收主机发送的数据读取指令;并从数据读取指令所指示的功能单元对应的寄存器中读取数据;及接收主机发送的功能单元数据写入指令,将功能单元数据写入指令中的待写入数据,写入功能单元数据写入指令所指示的功能单元中。
[0025]结合第二方面,在第二方面的第一种可能的实现方式中,主模块具体用于,周期性的从至少一个功能单元中读取数据,在当前周期从至少一个功能单元读取的数据与所读取的功能单元对应的寄存器中存储的读取数据不一致时,用当前周期所读取的数据更新所读取的功能单元对应的寄存器中的读取数据。
[0026]主模块周期性的读取功能单元中的数据,并将该数据与功能单元对应的存储器中存储的数据进行比对,当两组数据不一致时,将功能单元中读取的数据刷新到寄存器中,从而可以尽量的保证寄存器中的数据与功能单元中的数据的一致性。
[0027]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,主模块具体用于,
[0028]判断所读取的功能单元对应的寄存器中的读取数据是否正在被读取;
[0029]确认所读取的功能单元对应的寄存器中的读取数据正在被读取时,则等待所读取的功能单元对应的寄存器中的读取数据被读完后,再用当前周期所读取的数据更新所读取的功能单元对应的寄存器中的读取数据。
[0030]结合第二方面,在第二方面的第三种可能的实现方式中,从模块用于判断主模块是否正在读取数据读取指令所指示的功能单元的数据,
[0031]确认主模块正在读取数据读取指令所指示的功能单元的数据时,则等待数据读取指令所指示的功能单元的数据读取完成后,从数据读取指令所指示的功能单元对应的寄存器中读取数据。
[0032]结合第二方面,在第二方面的第四种可能的实现方式中,主模块还用于,
[0033]判断从数据读取指令所指示的功能单元对应的寄存器中读取数据是否与数据读取指令所指示的功能单元对应的寄存器中存储的数据一致;
[0034]确认从数据读取指令所指示的功能单元对应的寄存器中读取数据与数据读取指令所指示的功能单元对应的寄存器中存储的数据不一致时,设置数据不一致标识。
[0035]主模块判断从寄存器中读取的数据与当前寄存器中存储的数据不一致时,说明寄存器中数据已经更新,主机需要重新读取数据,因此设置数据不一致标识位,方便主机重新发起访问。
[0036]本发明实施例提供的一种数据处理方法及控制设备,将控制设备连接在I2C总线和功能元件之间,起到负载电容隔离的作用。正是因为I2C总线不再直接挂接多个电阻和电容等,避免了总线低电平抬高而导致的电平误判的问题。并且,总线只挂接到控制设备,通信总线属
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1