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

超频软件原理探析

 2007-03-16 21:57:27 来源:WEB开发网   
核心提示: 4. 软件设计软件设计必须遵循I2C总线的传输协议,上面已经列出了,超频软件原理探析(5),在这里不再重复,必须强调一下I2C总线数据存储器的读写分为Byte和Block的读写,而这些设备对频率变化的承受程度有可能比CPU弱许多,因此,按照不同的时钟芯片而定,而软件设计就是将前面我们已经得

4. 软件设计

软件设计必须遵循I2C总线的传输协议,上面已经列出了,在这里不再重复,必须强调一下I2C总线数据存储器的读写分为Byte和Block的读写,按照不同的时钟芯片而定。而软件设计就是将前面我们已经得出的想要超的CPU外频所对应的两个参数M和N,根据不同的时钟芯片对应的Byte或Block的读写方式写入I2C总线数据存储器里。以下为I2C总线数据存储器的Byte,Block读写源程序:

;Byte方式读:
   ReadByte  Proc  Near
    push  cx
    mov  dx,SMBus_Port +04h      ;将I2C总线基地址读入段寄存器
    inc  ch
    mov  al,ch      ;ID 读的命令
    out  dx,al
    IODELAY    ;IO延时
    call  Ct_Chk_SMBus_READY    ;检测I2C总线是否准备好
    pop  ax
    mov  dl,03h
    out  dx,al      
    IODELAY    //IO延时
    IODELAY    //IO延时
    mov  dl,02h
    mov  al,48h
    out  dx,al      ;读数据
    IODELAY    ;IO延时
    mov  cx,1000h
  @@:
    newiodelay
    loop  short @B
  call  Ct_Chk_SMBus_READY    ;检测I2C总线是否准备好
    mov  dl,05
    in  al,dx      ;读出数据到AL寄存器
    IODELAY    ;IO延时
      ret
ReadByte  Endp
;************************************************************
;Block方式写:
WriteBlock  PROC  NEAR
      push  cx
    call  Ct_Chk_SMBus_READY  ;检测I2C总线是否准备好
    mov  dx,SMBus_Port + 02h    
    in  al,dx      ;基地址加上02h
    IODELAY    ;IO延时
    pop  cx
    mov  dx,SMBus_Port + 04h  
    mov  al,ch
    out  dx,al
    IODELAY     ;IO延时 
    mov  dx,SMBus_Port + 03h  ;寄存器开始的偏移量
    mov  al,cl
    out  dx,al
    xor  cx,cx
    mov  dx,SMBus_Port + 00h
BlockWriteok:             
    mov  al,byte ptr es:[si]  ;es:[si+0]=数据块的大小
    mov  dx,SMBus_Port + 05h  ;将要写的个数传给段寄存器
    out  dx,al
    IODELAY      ;IO延时
    movzx  cx,al      ; 获取读取的block数
    inc  si        ;es:[si+1]=开始写数据
;R09A    mov  cl,byte ptr es:[si]  
        mov  dx,SMBus_Port + 07h      
WriteBlockdata:          
;R09B    mov  al,byte ptr cs:[si]
        mov  al,byte ptr es:[si]   
        out  dx,al
        IODELAY       ;IO延时
        inc  si
        loop  short  WriteBlockdata
        mov  dx,SMBus_Port + 02h  ;开始以block方式写
        mov  al,54h
        out  dx,al
        IODELAY      ;IO延时
        xor  cx,cx
        mov  dx,SMBus_Port + 00h  ;检查状态
Writefail:
        in  al,dx
        IODELAY      ;IO延时
;R09A    or  al,al       ;检查状态
;R09A    jz  short  Writeok
    test al,02h      
    jnz   short   writeok       
    out  dx,al            ;清除状态
    IODELAY           ;IO延时
    loop  short  Writefail
Writeok:
    ret
WriteBlock  ENDP
5 后记

实际上,主板设备在超频后的使用是极不稳定的,这是因为频率发生器的输出频率改变后,不仅是CPU外频发生了变化,包括主板上其他设备包括SDRAM,PCI设备,AGP设备的使用频率都发生了变化。而这些设备对频率变化的承受程度有可能比CPU弱许多,因此,超频后经常导致死机等现象发生。

引或用参考文献:

1)“I2C总线介绍” 作者: 彭秀峰

2)“The I2C-BUS Specification Version 2.1” 作者: Philips Semiconductors 1/2000

上一页  1 2 3 4 5 

Tags:超频 软件 原理

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