LPC(Low Pin Count) 與SIO(Super IO)
記錄bios學習的點點滴滴,雖然已經學了很長時間才發出來,但就當是溫故而知新吧,由於水平有限,難免存在錯誤,望指正,同時感謝CSDN提供的平臺。
1、LPC
定義:? Intel所定義的PC接口,將以往ISA BUS的地址/數據分離譯碼,改成類似PCI的地址/數據信號線共享的譯碼方式,信號線數量大幅降低,工作速率由PCI總線速率同步驅動,雖然改良過的LPC接口一樣維持最大傳輸值16MB/s,不過所需要的信號腳位數大幅降低25~30個,以LPC接口設計的Super I/O芯片、Flash芯片都能享有腳位數減少、體積微縮的好處,主板的設計也可以簡化,這也就是取名LPC——Low Pin Count的原因。
應用:
LPC總線上一般都是低速設備,比如說鼠標,鍵盤,EC,SIO以及一些FLASH。
2、SIO
超級輸入輸出芯片(SIO)一般位於主板左下方或者左上方。主要使用的芯片有Winbond、ITE,Fintek,它為主板上的標準I/O接口提供控制處理功能。這裏所說的“超級”是指它集成了PS/2鍵盤、PS/2鼠標、串口COM、並口LPT接口等處理功能,而這些接口都是計算機中的慢速I/O設備。它們全部位於主板後部右邊。它的主要功能包括負責處理從鍵盤、鼠標、串行接口等設備傳輸來的串行數據,將它們轉換成為並行數據,同時也負責並行接口、軟驅接口數據的傳輸與處理。
SIO通過LPC總線與南橋通信,進行數據傳輸,而且SIO本身也是一塊MCU,可以獨立的控制輸入輸出設備。
目前主要使用的SIO芯片的品牌有winbond華邦電子,ITE聯陽半導體,以及Fintek精拓科技三個。本次介紹的為精拓科技的F81866芯片。
F81866的介紹:
F81866主要由H/W Monitor,FDC,Parallel Port,KBC,UART,GPIO,ACPI等構成,EDS中給出的介紹如下:
在訪問SIO時,需要輸入“KEY”,KEY的值可以通過硬件的設計來獲知:如下
通過下面的硬件圖對照上面的表格來確定key值
在使用SIO之前需要完成對0X2E中輸入兩次0X87操作,下面介紹使用SIO的H/W monitor的功能。
H/W monitor的使用需要在index 07H中輸入04,在上面有提到過。
在ru下對sio的H/W monitor進行操作:
在index 07H中寫04選擇H/W monitor
其中60h,61h是H/W monitor的基地址。
RU界面下的H/W monitor:
編程實現對SIO的訪問:
對SIO進行訪問需要知道訪問的是哪一個設備以及該設備的哪一個寄存器,設備選擇是將該設備對應的值寫入Index 04H當中,如何對該設備的某一個寄存器進行讀寫操作。其程序設計如下(對一個字節):
我們都知道電腦的CPU都有風扇,他可以實現智能對CPU進行降溫,這是怎麽實現的呢?
對sio的了解會知道這一點:
Smart Fan的相關寄存器設置
Index 94H
選擇風扇工作類型的寄存器,共三種工作類型。
Index 96H
選擇風扇的工作模式,一共4種,分別為auto模式下的
RPM/duty cycle 控制,以及manual模式下的RPM/duty cycle
auto 模式下設置溫度的寄存器(A6H,A7H,A8H,A9H)
auto 模式下設置RPM/duty cycle的寄存器(AAH,ABH,ACH,ADH,AEH)
溫度,轉速寄存器的使用說:
manual 模式下的寄存器設置
轉速的設置,選擇manual模式之後,可以在A3寄存器當中設置所需要的風扇的轉速,其寄存器如下,並且給出了轉速的計算方式(duty cycle),若設置的值為X,則為:
X*100/255
Smart Fan轉速的計算
設置風扇的轉速也需要將風扇實際的轉速讀出來,風扇實際的轉速會保留在A0,A1寄存器當中:
在F81866當中也給出了轉速的計算公式,如下:
編程實現對smart fan 的控制:
將每一個我們需要看到的數值,以及狀態通過scan()函數讀出來,然後打印在屏幕上,主要的值有當前狀態是auto還是manual,設定的溫度界限值,5個區間所對應的轉速值,以及當前cpu溫度以及當前風扇的轉速。
總結
LPC總線繼承了ISA總線的優點之余,也大大減少了電路針腳的設計,降低了硬件設計的難度,也實現了體積微縮,而SIO芯片則是將外部的低速的輸入輸出設備的控制以及信息交流全部集中在了一塊芯片上,使信息的交流更加方便,同時整合多個功能在一塊芯片上,使用的時候也更加方便。F81866芯片上集成了有:
一個FDC,9組GPIO,一個KBC,一組Parallel Port,一個WDT,一個H/W monitor,以及PME,
ACPI,ERP。
對於各個device來說,一般0x30寄存器為其的enable,0x60,0x61作為基地址的寄存器,0x70是中斷寄存器,但不同設備有所區別,如kbc的中斷寄存器除了0x70之外,還有0x72,分別對於的是鍵盤,鼠標的中斷寄存器。
今天狀態不好,腦袋有點疼,寫的東西基本是以前學習的時候整理的PPT上再整理下來的,有點亂,見諒,SIO裏有的會設置DIO,通過繼電器來實現用主板對外部強電設備進行直接控制,下一章節會提到。
Thanks for your reading.
轉載:http://blog.csdn.net/vito_bin/article/details/52973056
LPC(Low Pin Count) 與SIO(Super IO)