WEB开发网
开发学院软件开发VC 超频软件原理探析 阅读

超频软件原理探析

 2007-03-16 21:57:27 来源:WEB开发网   
核心提示: 3 超频基本原理超频软件基本原理简单而言是通过修改时钟芯片(CLOCK Chip)I2C总线上数据寄存器的值,从而无须跳线,超频软件原理探析(4),无须重新启动就能达到超频的目的,同时,为该外频值对应的值…D=300;// 定义D为一个测试的值for( M=Mmin; M&l

3 超频基本原理

超频软件基本原理简单而言是通过修改时钟芯片(CLOCK Chip)I2C总线上数据寄存器的值,从而无须跳线,无须重新启动就能达到超频的目的。同时,为了防止超频后系统死机,时钟芯片还提供了“看门狗(watchdog)”地功能。如下图,在超频过程中,会同时触发时钟芯片内部的计数器,如果死机,系统会在几秒后发出reset信号,使系统重新启动。如果超频成功,在这等待的几秒内,软件必须清除设置看门狗的寄存器,使系统继续正常工作。

图7:时钟芯片管脚图

3.1 复位与看门狗电路

当电源上电、掉电时,该芯片都可提供复位电平,并且当其WDI RESET管脚不能采集到翻转信号时,就会发送200ms的复位脉冲。单片机控制器采用P30脚定时向看门狗电路发送电压翻转信号,以示系统正常工作。当由于外部干扰或其他原因导致死机时,看门狗电路会自动发出复位信号,从而触发主板复位电路使系统重新启动。

3.2 M和N的选择

要实现超频,从软件的角度来看就是将CPU的外频转换成一定的参数,并将这些参数写入到频率发生器的寄存器中去。在这里,首先将CPU外频转换成两个值M和N。以某种芯片为例,根据公式 Fcpu=G*(N+3)/(M+3)就可以得出M和N的值,在这个公式中Fcpu的值为我们想要超的外频大小,G为一个定义好的常数, M和N的最大值和最小值也已知。因此很容易通过编程从而得出当前想要超的外频所对应的M和N的值。以下是我们用C语言写的一段小代码以供参考(注:实现方法很多):#define G xxx
#define Mmax xxx
#define Nmax xxx
#define Mmin xxx
#define Nmin xxx
void FoundMN(float Fcpu,int*M,int*N)// Fcpu为输入参数,为想得到的外频值
{                //M,N为输出参数,为该外频值对应的值

D=300;            // 定义D为一个测试的值
  for( M=Mmin; M<=Mmax; M++ )
  {
    for( N=Nmin; N<=Nmax; N++ )
    {
      FREQ=G*(N+3)/(M+3);    // 测试由当前的M,N得出的外频值
      if ( fabs((Fcpu-FREQ)) < D )//看得出的外频值是否与想超的外频值更接近
      {  
D = float(fabs((Fcpu-FREQ)));// 更新外频值与想超的外频值之间的
//差值
        M1=M; N1=N;      //将M,N值存入M1,N1
      }
    }
  }
}
接着把M和N的值写入相应的寄存器了,如果几秒种后系统工作正常,超频就成功了。

上一页  1 2 3 4 5  下一页

Tags:超频 软件 原理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接