3

我进行了搜索和搜索,但没有找到关于如何在 Delphi 中使用的方法,并且我正在使用 XE2 如何从 Unvoton NCT6776F 芯片中读取传感器信息。我猜我需要在某个地方进行一些组装,但我什至找不到任何关于如何开始的信息。这是芯片的注册表详细信息。

Bus Type = ISAIO
One NCT6776F

Unvoton NCT6776F, IndexReg=A35, DataReg=A36
=============================================================
Fan1 Fan Speed, Bank 6, Offset 0x30, 0x31 RPM = 1350000/(Data=HighByte[12:5], LowByte

[4:0])
Fan2 Fan Speed, Bank 6, Offset 0x32, 0x33 RPM = 1350000/(Data=HighByte[12:5], LowByte

[4:0])
Fan3 Fan Speed, Bank 6, Offset 0x34, 0x35 RPM = 1350000/(Data=HighByte[12:5], LowByte

[4:0])
CPU Voltage, Bank 0, Offset 0x20      Voltage = Data* 0.008
VCCSA Voltage, Bank 0, Offset 0x21        Voltage = Data* 0.008
+3.3V Voltage, Bank 0, Offset 0x22        Voltage = Data* 0.016
Gfx Voltage, Bank 0, Offset 0x24      Voltage = Data* 0.008
+5V Voltage, Bank 0, Offset 0x25      Voltage = Data* 0.008/ (10./40.)
+12V Voltage, Bank 0, Offset 0x26     Voltage = Data* 0.008/ (10./66.2)
3.3VSB Voltage, Bank 5, Offset 0x50       Voltage = Data* 0.016
VBAT Voltage, Bank 5, Offset 0x51     Voltage = Data* 0.016
CPU Temperature, Bank 7, Offset 0x17, 0x18    PECI Count = (Data=HighByte,LowByte<15:6> 

hightest bit as sign bit)
High: PECI Count>-15; Midium: -40<PECI Count<=-15; Low: PECI Count<=-40
System Temperature, Bank 0, Offset 0x27   Temperature = Data
Peripheral Temperature, Bank 1, Offset 0x50   Temperature = Data
Chassis Intrusion, Bank 0, Offset 0x42, BitMask 0x10  1 = Bad, 0 = Good
          (Clear Bit: Bank 0, Offset 0x46, BitMask 0x80)

Power Supply Failure, NCT6776F, Logical Device 0x0B, CRF7h, BitMask 0x01  0 = Good, 1 

= Bad

如果有人知道如何阅读这些地址并获得所需的信息,我将不胜感激。如果有人可以发布一些示例代码,那就更好了。实际上,我想做的是在我的服务器软件中添加一个温度传感器仪表以进行监控。由于我正在构建的应用程序的性质,我需要直接集成数据而不使用第三方应用程序。

谢谢。

亚历克斯。

4

1 回答 1

0

根据lm-sensors wiki上的信息- 使用 LPC 总线访问设备。有一个专用的 GPLed linux 驱动程序可以下载来访问 linux 下的设备。如果我自己计划实施,我不会查看此源代码,因为可能会污染为访问设备而编写的任何专有代码。

为了使用 delphi 执行外围 I/O(如inb/outb指令或它们的等效指令),您应该查看如何在 Windows XP 中写入 I/O 端口的问题

于 2012-06-24T14:33:20.707 回答