CN102262607B - 一种在pc中利用i2c总线采集温度信息的方法 - Google Patents
一种在pc中利用i2c总线采集温度信息的方法 Download PDFInfo
- Publication number
- CN102262607B CN102262607B CN201110113466.9A CN201110113466A CN102262607B CN 102262607 B CN102262607 B CN 102262607B CN 201110113466 A CN201110113466 A CN 201110113466A CN 102262607 B CN102262607 B CN 102262607B
- Authority
- CN
- China
- Prior art keywords
- data
- signal
- chip microcomputer
- temperature sensor
- sda
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明提供一种在PC中利用I2C总线采集温度信息的方法,单片机与温度传感器的数据通信采用从设备发送主设备接收传输模式,I2C总线上的数据在SCL为高电平时SDA上的数据保持稳定,SCL为低电平时允许SDA变化,如果SCL处于高电平时,SDA上产生下降沿,则认为是起始位,SDA为上升沿认为是停止位,每次数据传输都是以一个起始位开始,而以停止位结束,最高有效位将首先被传输,接收方收到第8位数据后会发出应答位,此模式下,需要主机发送起始位和停止位,应答位由接收方产生。
Description
技术领域
本发明专利涉及计算机在工业温度控制技术领域中的应用,具体地说是一种在PC系统中利用I2C总线通信机制读取温度信息的方法。
背景技术
目前,随着计算机服务器应用范围日趋广泛,应用环境更加恶劣,如高低温环境及振动冲击等。如何使计算机或服务器在高温或低温环境中依然稳定工作,成为制约计算机发展的一个瓶颈。为了使计算机适应更加恶劣的温度环境,必须在计算机内部设计一个温度控制模块,控制计算机内部温度。当温度低于计算机内部主板、硬盘、显示器等的工作温度时,采集温度信息,通过温度控制模块中的单片机处理,发出相应高或低电平,驱动加热装置,给相应需加热的硬件加热;反之,驱动散热装置,如风扇等,给相应需散热的硬件散热。温度控制模块中,采用单片机等控制计算机内部温度,需要实时采集温度传感器的温度信息,因为单片机内部处理的数据必须是二进制数字信号,而传统的单片机采集温度信息时,必须通过硬件设计,利用多路开关选择、放大、采样保持、A/D转换等电路,将作为模拟信号的温度信息转换为数字信号后采集到单片机内,这样,不仅硬件电路复杂,且温度信息的实时性和准确性无法得到保证。
发明内容
本发明的目的是提供一种在PC中利用I2C总线采集温度信息的方法。
本发明的目的是按以下方式实现的,采集温度信息步骤如下:
单片机与温度传感器的数据通信采用从设备发送主设备接收传输模式,I2C总线上的数据在SCL为高电平时SDA上的数据保持稳定,SCL为低电平时允许SDA变化,如果SCL处于高电平时,SDA上产生下降沿,则认为是起始位,SDA为上升沿认为是停止位,每次数据传输都是以一个起始位开始,而以停止位结束,最高有效位将首先被传输,接收方收到第8位数据后会发出应答位,此模式下,需要主机发送起始位和停止位,应答位由接收方产生;
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号;
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据;
应答信号:接收数据的主设备在接收到8bit数据后,向发送数据的从设备发出特定的低电平脉冲,表示已收到数据;
单片机向温度传感器受控单元发出一个信号后,等待温度传感器发出一个应答信号,单片机接收到应答信号后,根据实际情况作出是否继续传递信号的判断,若未收到应答信号,则判断为温度传感器出现故障;
程序设计时,I2C总线采用主接收操作方式,在系统初始化时,由指令控制单片机送出相关的数据,送到I2C寄存器内,通过初始化这些寄存器,实现I2C总线的的从设备读操作;
当单片机主设备和温度传感器从设备交换数据时,单片机首先发出一个启动Start信号,这个信号被温度传感器接收,即温度传感器准备接收单片机的信号,然后单片机再发出它要通信的温度传感器地址,接下来,温度传感器将收到的这个地址和它自己的地址进行比较;
如果收到的地址和它自己的地址不同,则什么都不做,只是等待主设备单片机发出停止stop信号;如果收到的地址和它自己的地址相同,它就发出一个信号给主设备单片机,这个信号称为应答Acknowledge信号,当主设备单片机收到应答信号后,它就开始从从设备温度传感器接收数据,当所有操作都进行完毕时,主设备单片机发出一个Stop信号,通信完毕,释放I2C总线;然后所有的从设备温度传感器都等待下一次Start信号的到来;
主设备单片机读取从设备温度传感器温度信息的过程如下:
(1)上电以后等待一个延时(1ms);
(2)器件寻址;
(3)应答;
(4)开始连续读,读取一个以后给一个应答,这样器件会再给出下一个地址的数据内容;
(5)开始数据传输Start后、停止数据传输Stop前,SCL高电平期间,SDA上为有效数据。
本发明提供的一种在PC中利用I2C总线采集温度信息的方法,优异效果是为计算机温度控制准备了实时和准确的温度参数,利用I2C总线通信机制采集温度信息,不仅可避免硬件电路的复杂性,而且保证了采集数据的实时性和正确性。具有较高的实用价值,其应用前景看好。
本发明已经成功应用到浪潮KVM一体机中,并且适用于所有具有温度控制系统的计算机和服务器设备。此算法不仅可用于计算机或服务器的温控系统,而且可用于水温箱、采暖炉、电热器等需要温度控制的很多场合中。
附图说明
图1是温度控制信息采集流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
为了克服上述局限,利用I2C总线通信机制,在计算机系统电路设计时,选用基于I2C总线数据传输的温度传感器,通过I2C总线通信传输采集温度信息。
I2C总线数据传输只要求两条总线线路,一条串行数据线SDA和一条串行时钟线SCL,简单的两线串行I2C总线将互联减到最小,因此IC的管脚更少,而且PCB的线路也减少,使得PCB更小更便宜。
每个连接到总线的器件都可以通过唯一的地址与主机进行通信,再加上I2C的冲突检测和仲裁机制,这样在温度控制模块中有多个I2C设备时,主从机之间的通信不会发生冲突,而且可以防止数据被破坏。这样在温度采集时,可以保证温度数据的实时性和正确性,以及数据的完整性。
Claims (1)
1.一种在PC中利用I2C总线采集温度信息的方法,单片机与温度传感器的数据通信采用从设备发送主设备接收传输模式,I2C总线上的数据在SCL为高电平时,SDA上的数据保持稳定,SCL为低电平时允许SDA变化,如果SCL处于高电平时,SDA上产生下降沿,则认为是起始位,SDA为上升沿认为是停止位,每次数据传输都是以一个起始位开始,而以停止位结束,最高有效位将首先被传输,接收方收到第8位数据后会发出应答位,此模式下,需要主机发送起始位和停止位,应答位由接收方产生,I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号;
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据;
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据;
应答信号:接收数据的主设备在接收到8位数据后,向发送数据的从设备发出特定的低电平脉冲,表示已收到数据,其特征在于采集温度信息步骤如下:
单片机向温度传感器受控单元发出一个信号后,等待温度传感器发出一个应答信号,单片机接收到应答信号后,根据实际情况作出是否继续传递信号的判断,若未收到应答信号,则判断为温度传感器出现故障;
程序设计时,I2C总线采用主接收操作方式,在系统初始化时,由指令控制单片机送出相关的数据,送到I2C寄存器内,通过初始化这些寄存器,实现I2C总线的从设备读操作;
主设备单片机读取从设备温度传感器温度信息的过程如下:
(1)上电以后等待一个延时;
(2)器件寻址;
(3)应答;
(4)开始连续读,读取一个以后给一个应答,这样器件会再给出下一个地址的数据内容;
(5)开始读取数据传输开始后、停止数据传输停止前,SCL高电平期间,SDA上的数据为有效数据;
所述步骤(2)-(5)具体为:
当主设备单片机读取从设备温度传感器数据时,主设备单片机首先发出一个启动信号,这个信号被从设备温度传感器接收,即从设备温度传感器准备接收主设备单片机的信号,然后主设备单片机再发出它要通信的从设备温度传感器地址,接下来,从设备温度传感器将收到的这个地址和它自己的地址进行比较;
如果收到的地址和它自己的地址不同,则什么都不做,只是等待主设备单片机发出停止信号;如果收到的地址和它自己的地址相同,它就发出一个信号给主设备单片机,这个信号称为应答信号,当主设备单片机收到应答信号后,它就开始从从设备温度传感器接收数据,当所有操作都进行完毕时,主设备单片机发出一个停止信号,通信完毕,释放I2C总线;然后所有的从设备温度传感器都等待下一次启动信号的到来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110113466.9A CN102262607B (zh) | 2011-05-04 | 2011-05-04 | 一种在pc中利用i2c总线采集温度信息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110113466.9A CN102262607B (zh) | 2011-05-04 | 2011-05-04 | 一种在pc中利用i2c总线采集温度信息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102262607A CN102262607A (zh) | 2011-11-30 |
CN102262607B true CN102262607B (zh) | 2014-12-17 |
Family
ID=45009241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110113466.9A Expired - Fee Related CN102262607B (zh) | 2011-05-04 | 2011-05-04 | 一种在pc中利用i2c总线采集温度信息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102262607B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740182A (zh) * | 2014-12-12 | 2016-07-06 | 深圳富泰宏精密工业有限公司 | 防止传感器失效的系统及方法 |
US20180011983A1 (en) * | 2015-02-02 | 2018-01-11 | Think Surgical, Inc. | Method and system for managing medical data |
CN106155964B (zh) * | 2015-03-31 | 2019-05-21 | 恩智浦有限公司 | 使用串行数据传输总线的系统中的地址解码方法与系统 |
CN104796231B (zh) * | 2015-05-05 | 2018-10-16 | 北京广利核系统工程有限公司 | 一种异步串行物理变形信号的识别方法 |
CN104850473B (zh) * | 2015-05-11 | 2018-10-12 | 深圳市同泰怡信息技术有限公司 | 一种服务器在低温环境下的启动测试方法 |
CN105183685B (zh) * | 2015-06-24 | 2019-03-15 | 深圳市振邦智能科技股份有限公司 | 一种基于i2c通信协议的获取从机地址的方法及i2c通信系统 |
CN105117365A (zh) * | 2015-07-16 | 2015-12-02 | 上海斐讯数据通信技术有限公司 | 一种基于Mpc837x框架的数据读取方法 |
PT3214723T (pt) * | 2016-01-05 | 2019-02-26 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Método de carregamento rápido, terminal móvel e adaptador |
CN106055511B (zh) * | 2016-06-16 | 2019-10-29 | Tcl移动通信科技(宁波)有限公司 | 一种移动终端的cpu与传感器的数据通信方法、系统 |
CN106502167A (zh) * | 2016-12-19 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种服务器中基于i2c总线的温度采集结构及方法 |
CN110672141B (zh) * | 2018-07-03 | 2021-11-30 | 中国科学院苏州纳米技术与纳米仿生研究所 | 自供电传感器的检测方法及其检测系统 |
CN111382100A (zh) * | 2018-12-29 | 2020-07-07 | 深圳市优必选科技有限公司 | 一种i2c总线的数据采集方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349702A (zh) * | 2007-07-21 | 2009-01-21 | 李谦 | 电脑湿度测量系统 |
CN101404556A (zh) * | 2008-10-24 | 2009-04-08 | 伊玛精密电子(苏州)有限公司 | 一线总线的通讯方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2401207B (en) * | 2003-04-30 | 2006-11-22 | Agilent Technologies Inc | Master slave arrangement |
-
2011
- 2011-05-04 CN CN201110113466.9A patent/CN102262607B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349702A (zh) * | 2007-07-21 | 2009-01-21 | 李谦 | 电脑湿度测量系统 |
CN101404556A (zh) * | 2008-10-24 | 2009-04-08 | 伊玛精密电子(苏州)有限公司 | 一线总线的通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102262607A (zh) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262607B (zh) | 一种在pc中利用i2c总线采集温度信息的方法 | |
CN102023954B (zh) | 具有多路i2c总线的装置、处理器、系统主板及工控计算机 | |
CN102023953B (zh) | 具有多路i2c总线的系统的控制方法 | |
CN102323905B (zh) | 一种龙芯主板的远程监控系统 | |
CN103312636B (zh) | 信息处理装置、串行通信系统和装置以及通信初始化方法 | |
CN105677598B (zh) | 基于i2c接口快速读取多个mems传感器数据的模块和方法 | |
CN105446837A (zh) | 检测iic接口器件是否连接的方法、装置以及系统 | |
CN103107862B (zh) | 逻辑器件及其mdio数据发送方法 | |
CN102546033A (zh) | 采用脉冲调制结合串口方式实现的多机通信装置 | |
CN206353315U (zh) | 一种自动检测芯片上电并发送3b指令信号的电路 | |
CN101140551B (zh) | 一种实现数字信号处理器异步串行通讯的装置 | |
CN105068962A (zh) | I2c控制器访问方法及系统 | |
TWI502338B (zh) | 測試介面卡及測試方法 | |
CN201378316Y (zh) | 通用输入/输出接口扩展电路和具有该电路的移动终端 | |
Kommu et al. | Designing a learning platform for the implementation of serial standards using arm microcontroller LPC2148 | |
CN203838614U (zh) | 一种带网络管理接口的pcie扩展卡 | |
CN110543163A (zh) | 一种飞机航电系统vme总线机载模块测试系统 | |
CN202127411U (zh) | 一种龙芯服务器的管理系统 | |
CN106502167A (zh) | 一种服务器中基于i2c总线的温度采集结构及方法 | |
CN105628209A (zh) | 一种新型红外测温模块 | |
CN201467168U (zh) | 一种将MODBUS协议转换成Profibus协议的通讯协议转换器 | |
WO2010114402A2 (en) | Interface for communication between sensing devices and i2c bus | |
CN104317688B (zh) | 一种电池状态检测方法 | |
CN104181828A (zh) | 一种can总线控制器适配器 | |
CN104765710A (zh) | 一种包含双处理器的读卡器的工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141217 Termination date: 20160504 |
|
CF01 | Termination of patent right due to non-payment of annual fee |