新闻中心

EEPW首页 > 模拟技术 > 设计应用 > OneWireViewer使用技巧

OneWireViewer使用技巧

作者:时间:2011-11-28来源:网络收藏

摘要:本文深入介绍OneWireViewer软件的操作、故障显示方式,以及特定功能Viewer。文中还给出了关于如何测试iButton电池及如何验证任务是否成功启动的建议。文章第二部分介绍软件安装、端口配置、适配器检测以及更改适配器类型和端口。本文和应用笔记4373:“OneWireViewer和iButton®快速使用指南”、应用笔记3358:“ OneWireViewer用户指南”一起,整合了1-Wire和iButton器件用户可能遇到的所有典型应用。

引言

最初编写OneWireViewer软件的目的是演示1-Wire®应用程序接口(API)(适用于Java®)的作用和有效性。该软件可通过USB和串口(COM)演示大多数iButton®和1-Wire器件。软件可用于32位和64位Windows® 7、Windows Server 2008、Windows Vista®和Windows XP® (SP2及更新)。

得益于记录器iButton,OneWireViewer不断受到研究者的青睐。演示各种iButton和1-Wire器件的用户界面对于专注于设置记录器并在数周或数月后取回数据的用户不是太直观。当OneWireViewer遇到异常情况时,例如记录器生命周期结束,找到并解释故障消息很具有挑战性。本文介绍如何分析并理解这些故障消息,以及如何区分设备故障(例如电池耗尽引起的故障)和操作错误(例如,未设置软件密码)。文章还介绍了如何在启动任务之前测试坏电池,以及验证任务是否成功启动,并跟踪记录器的电量。本文第二部分着重于软件方面,包括确定OneWireViewer和底层1-Wire驱动的版本、启动软件安装、软件升级和卸载,以及更改通信端口和1-Wire适配器。

iButton和1-Wire器件的类型

有三种类型的1-Wire产品:带电池的iButton器件(记录器、NV SRAM存储器和实时时钟(RTC))、无电池iButton器件(传感器、EPROM和EEPROM),以及1-Wire芯片(各种功能且带或不带存储器)。所有1-Wire器件都有64位ROM ID,内置8位循环冗余校验(CRC)。存储器和/或控制功能(除ROM功能命令之外的所有功能)能够(但不需要)采用保护数据安全的机制防止通信错误。如表1所示,绝大部分1-Wire器件具有内置CRC支持。有或无安全保护,例如CRC,影响OneWireViewer检测和处理与1-Wire器件通信时的异常情况的能力。


表1. OneWireViewer支持的1-Wire器件

Device Type

Memory and/or Control Functions CRC Support

Yes*

No

iButtons with Built-In Battery

DS1921 series, DS1922 series, DS1923** (Loggers)

DS1904 (RTC), DS1992, DS1993, DS1995, DS1996 (Memories)

iButtons without Battery

DS1920 (8-bit CRC), DS1972, DS1973, DS1977, DS1982 (8-bit CRC), DS1985

DS1971

1-Wire Chips

DS18S20 (8-bit CRC), DS1822 (8-bit CRC), DS18B20 (8-bit CRC), DS2406, DS2408, DS2422, DS2431, DS24B33, DS2438 (8-bit CRC), DS2450, DS2502 (8-bit CRC), DS2505, DS28E04, DS28EA00 (8-bit CRC), DS28EC20

DS2413, DS2415, DS2417, DS2430A, DS2762

*除非另外说明,均为CRC-16。
**有限支持:湿度读数不进行温度补偿,也不进行饱和漂移修正。

故障机制

尽管iButton器件外形结实,但本质上并不是密封的。尤其是iButton记录器,往往会意外暴露于潮湿环境,例如空气中的水分、器件处于地下时的雨水,或者器件淹没在水中时。当温度循环时,iButton产品实际上能“排出”潮气。

iButton内部一旦进水,就会产生传导性通路,随着时间推移,造成电池漏电。水和iButton电路板上金属之间的化学反应会造成腐蚀。这会造成数据线和GND之间短路,或者断开数据线和芯片的通路并连接至GND。

如果连接至1-Wire总线:

通信通路断开的器件不会造成任何错误。仅仅是OneWireViewer找不到该器件。
内部短路的器件也不会产生错误。它会造成其它全部器件从OneWireViewer的器件列表中消失。
电池耗尽但数据线和GND未短路的iButton将在OneWireViewer中引起各种各样的错误。错误消息与是否支持CRC有很大关系。

如何显示错误

OneWireViewer有两种方式向用户通告错误。最明显的位置是OneWireViewer主窗口底部(图1)。不太明显的位置是错误记录窗口(图2)。


图1. 显示错误消息最明显位置是主窗口底部。


图2. 错误记录文件中的相同错误说明。

为了打开错误记录窗口,点击View菜单,然后选择Show Message Log,如图1所示。然后在消息记录窗口中点击Level检查确认Information已选中。

典型错误消息

访问不支持CRC的器件时,OneWireViewer通过写入后再读回检查写操作是否成功。如果读回的数据与写入的数据不一致,典型的错误消息以Read back of scratchpad had incorrect data或Read back verify had incorrect data结束。消息的开始说明错误发生的时间(也称为“异常”)。

有两类器件支持CRC:带密码保护(记录器iButtons DS1922系列、DS1923和DS1977)和无密码保护(记录器iButtons DS1921系列、不带电池的其它iButtons和1-Wire芯片)的器件。无论哪种,OneWireViewer均通过读取1-Wire器件在存储器/控制功能命令流期间产生的CRC确定读或写操作是否成功。

对于无密码保护的器件,错误消息以Invalid CRC16 read from device结束。消息的开始通常(并不总是)说明错误或异常发生的时间。对于带密码保护的器件,错误信令则更复杂。错误末尾可能为Invalid CRC16 read from device (访问无保护的中间结果暂存器时)或Invalid CRC16 read from device. Password may be incorrect (访问其它存储器区域时)或Invalid CRC16 read from device. Password may be incorrect or a sample may be in progress (访问记录器iButton DS1922系列或DS1923的数据记录存储器时)。

特定功能Viewer错误行为

OneWireViewer包括几个特定功能Viewer:Thermochron、Mission、Temperature、Humidity、A to D、Switch、Clock、Memory和File。除Switch外,全部适用于记录器iButton器件,非常受非技术型用户的青睐。表2中汇总了各种不同的功能Viewer如何处理错误情况。Thermochron和Mission Viewer仅仅在消息记录中显示错误,经验不足的用户很容易忽略该位置。

用户可能会对使用密码保护感到迷惑。如果已启用密码,但没有设置特定器件的软件密码,Viewer就不能读取器件配置寄存器。这会造成显示Real-Time Humidity和A to D Viewer。DS2422和DS1922或DS1923在电池耗尽时也出现这种情况。

表2. 特定功能Viewer行为

Function

Error Signaling

Special Notes

Thermochron® (DS1921)

Message log only

All tabs can be opened. No tab has data (the right half of the Status tab is empty) if the battery is drained.

Mission (DS1922, DS1923)

Message log only

Only the Status tab can be opened. The right half of the Status tab is empty if the software password is not set or the battery is drained. See the Distinguishing Between an Incorrect Password and a Drained Battery section to identify the reason.

Temperature

Main window, message log

The Temperature viewer always generates an error message if a mission is in progress.

A to D (Humidity)

Main window only

The A to D (Humidity) viewer always generates an error message if a mission is in progress.

Clock

Main window only

Non-CRC parts: an error is signaled only with Synchronize Clock to PC time and Halt Real-Time Clock.
A date in February 2106 is indicative for a drained battery.

CRC parts: an error is signaled when opening the Clock tab and when executing any of the functions.

Memory

Main window, message log

Non-CRC parts: an error is signaled only with Commit Changes.

CRC parts: an error is signaled when reading a memory bank; Commit Changes is not executable.

File

Main window, message log

The file viewer builds on Memory viewer functions. Therefore, error messages explained above apply only to the elementary functions Format Device (all parts) and Create Directory (non-CRC parts).


区分密码不正确和电池耗尽

暂不论1-Wire适配器和iButton之间电气接触不良,产生无效CRC16的Viewer并不知道是记录器的密码还是记录器电池耗尽造成的。目前的OneWireViewer(版本3.15.50及更早)不能区分这两种情况。唯一无需密码即可访问的存储器区域为记录器的32字节中间结果暂存器。测试非常简单:选择有问题的记录器,打开Memory 标签页,然后选择存储器组Scratchpad with CRC and Password。如果电池良好,CRC16有效,中间结果暂存器内容显示在Viewer的主窗口中。如需要,可覆盖一个或多个中间结果暂存器数据字节,然后点击Commit Changes按钮。如果电池良好,将能接收到新数据,可通过刷新检验。这是好消息。坏消息是需要找到正确的密码。找到密码后,需要通过Password标签页上的Set Software Password功能输入。该步骤之后,刷新Mission标签页上的任务结果,就又能访问记录器iButton上的全部功能。注意,OneWireViewer不在文件中保存密码,程序关闭时将丢失密码。

与适配器的通信错误

至此讨论的错误情形都与不同功能Viewer及潜在的iButton或1-Wire器件故障有关。假定1-Wire适配器和1-Wire器件之间的连接是可靠的。如上所述,间歇性接触不良会造成CRC错误或回读验证错误。

如果计算机端口和1-Wire适配器时间的通路不可靠,就会发生另一种类型的错误。正常通信期间,这会产生以下错误消息:

ERROR: ThermochronViewer (ROM ID>) Setup Error:
com.dalsemi.onewire.OneWireException: 1-Wire Adapter communication exception

例如下载DS1921的数据记录时。或者

ERROR: OneWireViewer (null) 1-Wire exception:
com.dalsemi.onewire.adapter.OneWireIOException: native TMEX error -12

扫描1-Wire总线查找新接入或断开的器件时。如果出现此类错误,检查计算机端口(COM或USB)之间的电缆,确保所有连接牢固可靠,重启OneWireViewer,然后重复被适配器错误中断的操作。

启动任务之前测试坏电池

检查器件是否仍然能够正常工作是非常明智的,尤其是iButton记录器之前被使用过。如表2所示,有多个功能Viewer可供选择。如果按推荐条件保存记录器,例如暂停实时时钟,则首选为Clock Viewer。在OneWireViewer的Device List中选择被测试记录器,打开Clock标签页,然后等待几秒钟。然后点击Synchronize Clock to PC Time按钮。如果电池良好,将不会出现错误消息,与PC的时间差为零或1秒。如果产生错误消息,检查是否启用了记录器的密码(见区分密码不正确和电池耗尽部分)。

验证并启动任务

关于如何启动任务的说明请参见应用笔记3358:“OneWireViewer用户指南”中的Thermochron和Mission部分。对于Thermochron Viewer,确保反转设置、采样率(采样之间的分钟数)和任务启动延迟(单位为分钟)设置与要求一致。如果启动任务之前已经测试过时钟,同步RTC没有区别。设置温度报警门限值可能有用,在任何情况下,完成任务后处理温度记录时可以识别报警情况(参见应用笔记3809:“将DS192x的记录数据从OneWireViewer中导入到Excel®)”。时钟报警功能不影响任务结果,因此可忽略。

对于Mission Viewer,确保反转设置、采样率(采样之间的秒数)和任务启动延迟(单位为分钟)设置与要求一致。如果启动任务之前已经测试过时钟,同步RTC没有区别。对于要包含在记录中的通道(温度,DS1923还有湿度,如果需要的话),选中Enable sampling,然后选择分辨率。和之前一样,可选择设置报警门限值。

选择了任务参数后,点击OK,任务应开始。如果启动成功,Status标签页的右下方(Thermochron和Mission Viewer)会填充以数据,与应用笔记3358中的屏幕截图类似。其它标签页也是如此。如果这些区域仍为空白,说明任务未启动。这种情况下,打开消息记录,并滚动查看错误消息。

漏电开关相关文章:漏电开关原理

上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭