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

转载于:https://www.cnblogs.com/chengqi521/p/8021893.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30740581/article/details/99346759

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签