From 19dd61efcc1fe07c6a66f48f74b7926607f3a541 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Sat, 21 Jul 2012 20:37:41 +0200 Subject: srd: Rename onewire_transport to maxim_ds28ea00. It doesn't make sense to have one "generic" onewire_transport PD, as this layer is very much device-specific and such a generic PD would have to contain an accumulation of all possible features and commands and handling code of all existing (now and in the future) 1-Wire devices, which is neither possible nor useful nor elegant. There are (for example) 1-Wire thermometers, RTCs, EEPROMs, special-purpose security chips with passwords/keys, battery monitoring chips, and many many others. They all have a different set of features, commands and command codes, RAM areas/sizes/partitioning/contents, protocols, and so on. Thus, the layering for 1-Wire PD stacks should look like this: onewire_link -> onewire_network -> Examples: onewire_link -> onewire_network -> maxim_ds28ea00 (special thermometer) onewire_link -> onewire_network -> maxim_ds2431 (1kbit EEPROM) onewire_link -> onewire_network -> maxim_ds2417 (RTC) onewire_link -> onewire_network -> maxim_ds2762 (battery monitor) onewire_link -> onewire_network -> maxim_ds1961s (SHA-1 eCash iButton) and so on... So, renaming onewire_transport to maxim_ds28ea00. The non-DS28EA00 specific code will be dropped and/or moved to other PDs on top of onewire_network later. --- decoders/maxim_ds28ea00/__init__.py | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 decoders/maxim_ds28ea00/__init__.py (limited to 'decoders/maxim_ds28ea00/__init__.py') diff --git a/decoders/maxim_ds28ea00/__init__.py b/decoders/maxim_ds28ea00/__init__.py new file mode 100644 index 0000000..c6f063d --- /dev/null +++ b/decoders/maxim_ds28ea00/__init__.py @@ -0,0 +1,56 @@ +## +## This file is part of the sigrok project. +## +## Copyright (C) 2012 Uwe Hermann +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +## + +''' +1-Wire protocol decoder. + +The 1-Wire protocol enables bidirectional communication over a single wire (and +ground) between a single master and one or multiple slaves. The protocol is +layered. +- Link layer (reset, presence detection, reading/writing bits) +- Network layer (skip/search/match device ROM addresses) +- Transport layer (transport data between 1-Wire master and device) + +Transport layer + +The transport layer is the largest and most complex part of the protocol, since +it is very device specific. The decoder is parsing only a small part of the +protocol. + +Annotations: +The next link layer annotations are shown: +- RESET/PRESENCE True/False + The event is marked from the signal negative edge to the end of the reset + high period. It is also reported if there are any devices attached to the + bus. +The next network layer annotations are shown: +- ROM val + The 64bit value of the addressed device is displayed: + family code (1B) + serial number (6B) + CRC (1B) +- FUNCTION COMMAND val name + The requested FUNCTION command is displayed as an 8bit HEX value and by name. +- DATA val + Data intended for the transport layer is displayed as an 8bit HEX value. + +TODO: +- add CRC checks for transport layer +''' + +from .maxim_ds28ea00 import * -- cgit v1.2.3-70-g09d2