  <?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.alsa-project.org/main/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Takaswie</id>
	<title>AlsaProject - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.alsa-project.org/main/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Takaswie"/>
	<link rel="alternate" type="text/html" href="https://www.alsa-project.org/wiki/Special:Contributions/Takaswie"/>
	<updated>2026-04-26T16:07:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6700</id>
		<title>User:Takaswie</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6700"/>
		<updated>2014-02-21T03:18:52Z</updated>

		<summary type="html">&lt;p&gt;Takaswie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple memo about driver for Firewire devices&lt;br /&gt;
&lt;br /&gt;
1.Status of this document&lt;br /&gt;
&lt;br /&gt;
My memo for developing.&lt;br /&gt;
&lt;br /&gt;
2.Basic Specifications&lt;br /&gt;
 - 'IEEE1394' defines 'Phy layer', 'Link layer', 'Transaction layer' and 'Serial Bus Management'.&lt;br /&gt;
 - 'IEEE1212' defines 'Control ans Status Registers (CSR)', 'Configuration ROM' and 'Transaction set'.&lt;br /&gt;
 - 'OHCI1394' defined the design of IEEE1394 host controller and its register.&lt;br /&gt;
 - 'IEC 61883-1' defines 'Common Isochronous Packet (CIP)', 'Isochronous data flow management', 'Connection Management Procedure (CMP)', 'Function Control Protocol (FCP)'.&lt;br /&gt;
 - 'IEC 61883-6' defines the way to packetize 'Common Isochronous Packet' for 'Audio and Music'. This is so-called 'AMDTP'.&lt;br /&gt;
 - 'MMA/AMEI RP-027' is a recommendation for 'MIDI conformant data' channel of 'AMDTP'.&lt;br /&gt;
 - '1394TA' is an associates of industory.&lt;br /&gt;
 - 'AV/C' is many series of specification defined by '1394TA'.&lt;br /&gt;
&lt;br /&gt;
3.Firewire Sound Devices&lt;br /&gt;
 - They typically have:&lt;br /&gt;
  - a chipset for 'IEEE1394 Phy layer and Link layer'&lt;br /&gt;
  - a firmware for 'Transaction layer', 'Serial Bus Management' and  'IEC 61883-1/6'&lt;br /&gt;
  - a chipset for signal processing&lt;br /&gt;
  - a chipset for D/A or A/D convertion&lt;br /&gt;
&lt;br /&gt;
4.Firewire Sound Drivers&lt;br /&gt;
 - Firewire Sound Drivers Use IEEE1394 host controller to communicate to Firewire Sound Devices&lt;br /&gt;
 - In Linux, driver of host controller is developed at ieee1394.wiki.kernel.org. This driver has a nick name, 'Juju'. This driver exports some kernel APIs.&lt;br /&gt;
 - ALSA Firewire Sound Drivers use the kernel APIs.&lt;br /&gt;
 - 'snd-firewire-lib' exports helper functions for ALSA Firewire Sound Drivers.&lt;br /&gt;
&lt;br /&gt;
5.What to do inner Firewire Sound Drivers&lt;br /&gt;
 - Register/unregister myself as module for Linux&lt;br /&gt;
 - React bus events with Juju&lt;br /&gt;
 - Register/unregister cards for ALSA Core&lt;br /&gt;
 - Add interfaces for ALSA components&lt;br /&gt;
 - Handle Input/Output to/from ALSA applications&lt;br /&gt;
 - Send/Receive transactions to/from Firewire Sound Devices&lt;br /&gt;
 - Send/Receive packets to/from Firewire Sound Devices&lt;br /&gt;
 - Parse/Compose data for Firewire Sound Devices&lt;br /&gt;
&lt;br /&gt;
6.Connections&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is for Firewire Sound Devices compliant to IEC 61883-1.&lt;br /&gt;
 - They manage isochronous resource with 'Connection'.&lt;br /&gt;
 - This 'Connection' is expressed as a value of 'Plug Control Register'.&lt;br /&gt;
 - The drivers send/receive transactions to handle 'Plug Control Register'.&lt;br /&gt;
 - The way to handle 'Connection' is defined in IEC 61883-1.&lt;br /&gt;
&lt;br /&gt;
7.Packets&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - 'Isochronous Packet' has its own header. Its payload has a 'Common Isochronous Packet'.&lt;br /&gt;
 - 'Common Isochronous Packet' have its own header. Its payload has some data blocks.&lt;br /&gt;
 - 'AMDTP' uses 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - In 'AMDTP', data block consists of some data channels.&lt;br /&gt;
 - For Firewire Sound Devices, the data channel is generally used for PCM samples and MIDI messages.&lt;br /&gt;
 - 'PCM samples' and 'MIDI messages' can be transferred in the same 'AMDTP' packet.&lt;br /&gt;
&lt;br /&gt;
8.Presentation Timestamp&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is in a 'SYT' field in 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - This field is 16 bit. This field cannot indicate an actual time.&lt;br /&gt;
 - The value of this field is '0xffff' if the packet has no 'presentation timestamp'.&lt;br /&gt;
 - The devices can be synchronized with the value of this field.&lt;br /&gt;
 - Firewire Sound Drivers need to calcurate the value of this field in 'out-stream'.&lt;br /&gt;
 - Then Firewire Sound Drivers should use the value of this field in 'in-stream' for 'out-stream'.&lt;br /&gt;
&lt;br /&gt;
9.AMDTP and PCM samples&lt;br /&gt;
 - See IEC 61883-6.&lt;br /&gt;
 - The value of 'FDF' in 'Common Isochronous Packet' header includes 'SFC' field for 'sampling rate'.&lt;br /&gt;
 - 'Common Isochronous Packet' includes some 'event' in its data block.&lt;br /&gt;
 - The 'event' means 'data in the same timestamp'. So one 'event' includes a set of PCM channels (= one frame).&lt;br /&gt;
 - There are two ways to decide the number of 'events' in an 'Common Isochronous Packet', 'non-blocking' and 'blocking'.&lt;br /&gt;
 - In 'non-blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is different.&lt;br /&gt;
  - All of 'Common Isochronous Packet' has PCM samples.&lt;br /&gt;
  - The value of 'SYT' field is for a certain 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In 'blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is the same.&lt;br /&gt;
  - Some 'Common Isochronous Packet' has no PCM samples (empty packet or packet with NODATA flag).&lt;br /&gt;
  - The value of 'SYT' field is for the first 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In both modes, the total number of 'events' with PCM samples are the same as sampling rate.&lt;br /&gt;
 - Most Firewire Sound Devies use 'blocking mode'.&lt;br /&gt;
&lt;br /&gt;
10.MIDI Conformant Data Channel&lt;br /&gt;
 - See IEC 61883-6 and MMA/AMEI RP-027.&lt;br /&gt;
 - 'MIDI Conformant Data Channel' is for transfer of MIDI messages.&lt;br /&gt;
 - Each 'MIDI Conformant Data Channel' includes 8 'MPX-MIDI Data Stream'.&lt;br /&gt;
 - Each 'MPX-MIDI Data Stream' includes one data stream from/to MIDI ports.&lt;br /&gt;
 - 'MIDI1.0-1x-SPEED' mode is major.&lt;br /&gt;
 - 'MIDI1.0-2x/3x-SPEED' mode are described with 'negotiation procedure' and 'encapsulation details' but there is no specifications to define them.&lt;br /&gt;
&lt;br /&gt;
11.Function Control Protocol&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - 'Function Control Protocol' is an application of 'Asynchronous Transaction' in IEEE1394.&lt;br /&gt;
 - 'Function Control Protocol' is done by command/response.&lt;br /&gt;
 - Command is sent to '0xffff f000 0b00'&lt;br /&gt;
 - Response is sent to '0xffff f000 0d00'&lt;br /&gt;
 - To receive response from device, drivers need to listen this address (so-called allocation).&lt;br /&gt;
&lt;br /&gt;
12.AV/C commands&lt;br /&gt;
 - 'AV/C commands' is an application of 'Function Cotrol Protocol'.&lt;br /&gt;
 - The maximum size of command is 512 bytes.&lt;br /&gt;
 - There are much variations, vendor-specific extensions.&lt;br /&gt;
 - Basically, see 'AV/C Digital Interface Command Set General Specification Version 4.2 (Sept 2004, 1394TA)'.&lt;br /&gt;
 - For Audio Subunit, see 'AV/C Audio Subunit Specification 1.0 (Oct 2000, 1394TA)'.&lt;br /&gt;
 - For Music Subunit, see 'AV/C Music Subunit Specification 1.0 (I don't have)'.&lt;br /&gt;
 - For Stream Format, see 'AV/C Stream Format Information Specification 1.0 (I don't have)'&lt;br /&gt;
 - For Descriptor Mechanism, see 'Enhancements to the AV/C General Specification 3.0 Version 1.1 (Oct 2000, 1394TA)'.&lt;br /&gt;
&lt;br /&gt;
13.Sampling Clock Source&lt;br /&gt;
 - This is device-dependent issue.&lt;br /&gt;
 - Usually Firewire Sound Devices use internal clock.&lt;br /&gt;
 - But some devices can switch its source of sampling clock. &lt;br /&gt;
 - There is Coaxial, Optical and XLR interface for this purpose.&lt;br /&gt;
 - And there is 'Synchronization Stream'. In this stream, the value of 'SYT' field can be used for sampling clock.&lt;br /&gt;
 - When source of clock is given by external, available sampling rate is limited at current one.&lt;br /&gt;
&lt;br /&gt;
14.Quirks&lt;br /&gt;
 - Fireworks:&lt;br /&gt;
  - 1.Fireworks transmits packets with both TAG0 and TAG1. In IEC 61883-1, each common isochronous packet (CIP) has 'tag' field in its packet header. The value is generally 0x01 ('CIP header is included' = TAG1). But Fireworks in 'IEC 61883 compliant mode' transmits 'no data' packet with 0x00 ('No CIP header is included' = TAG0) but actually the packet includes CIP structure. To handle 'presentation timestamp' for duplex streams synchronization, this packets must be handled.&lt;br /&gt;
&lt;br /&gt;
  - 2.Fireworks transmits 'no data' packet out of specification. Fireworks transmits 'no data' packet with 'NO-DATA' FDF and no dummy data. It includes CIP headers only. In IEC 61883-6, 'no data' packet is generated by two ways. One is empty CIP packet defined in IEC 61883-1. Another is 'special non-empty packet' defined in IEC 61883-6. Fireworks uses strange combination of them.&lt;br /&gt;
&lt;br /&gt;
  - 3.Fireworks can handle MIDI messages in the first 8 data blocks of out-packet, Fireworks ignores MIDI messages in other data blocks.&lt;br /&gt;
&lt;br /&gt;
  - 4.AudioFirePre8 transmits packets with wrong data block size. One of Fireworks device, AudioFirePre8, always reports 8 data block size in transmitted packets and increments the data block counter by 8. But this is not actual value.&lt;br /&gt;
&lt;br /&gt;
  - 5.Fireworks transmits packets with a bit disorder. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index	Payload	CIP header 1CIP header 2&lt;br /&gt;
023	210	3F1100F8	900478E9&lt;br /&gt;
024	002	3F1100F8	90FFFFFF&lt;br /&gt;
025	210	3F110000	900490E9&lt;br /&gt;
026	210	3F110008	9004A4E9&lt;br /&gt;
027	210	3F110010	9004B8E9&lt;br /&gt;
028	002	3F110010	90FFFFFF&lt;br /&gt;
029	210	3F110020	9004E4E8 &amp;lt;-&lt;br /&gt;
030	210	3F110018	9004D0E8 &amp;lt;-&lt;br /&gt;
031	210	3F110028	9004F8E8&lt;br /&gt;
032	002	3F110028	90FFFFFF&lt;br /&gt;
033	210	3F110030	900410E8&lt;br /&gt;
034	210	3F110038	900424E8&lt;br /&gt;
035	210	3F110040	900438E8&lt;br /&gt;
036	002	3F110040	90FFFFFF&lt;br /&gt;
037	210	3F110050	900464E8 &amp;lt;-&lt;br /&gt;
038	210	3F110048	900450E8 &amp;lt;-&lt;br /&gt;
039	210	3F110058	900478E8&lt;br /&gt;
040	002	3F110058	90FFFFFF&lt;br /&gt;
041	210	3F110068	9004A4E8 &amp;lt;-&lt;br /&gt;
042	210	3F110060	900490E8 &amp;lt;-&lt;br /&gt;
043	210	3F110070	9004B8E8&lt;br /&gt;
044	002	3F110070	90FFFFFF&lt;br /&gt;
045	210	3F110080	9004E4E7 &amp;lt;-&lt;br /&gt;
046	210	3F110078	9004D0E8 &amp;lt;-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 - BeBoB&lt;br /&gt;
  - BeBoB has its own AV/C extension command&lt;br /&gt;
&lt;br /&gt;
 - OXFW970/971&lt;br /&gt;
  - OXFW970/971 transmit packets with invalid value of 'SYT' field. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives no out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	14	00020092	900103D1&lt;br /&gt;
39	12	00020098	900102FF&lt;br /&gt;
40	12	0002009D	9001027F&lt;br /&gt;
41	14	000200A2	90010396&lt;br /&gt;
42	14	000200A8	900102E8&lt;br /&gt;
43	12	000200AE	90010219&lt;br /&gt;
44	14	000200B3	90010331&lt;br /&gt;
45	12	000200B9	9001025F&lt;br /&gt;
46	14	000200BE	90010376&lt;br /&gt;
47	12	000200C4	900102A1&lt;br /&gt;
00	12	000200C9	9001023E&lt;br /&gt;
01	14	000200CE	90010358&lt;br /&gt;
02	12	000200D4	90010289&lt;br /&gt;
03	16	000200D9	900103A3&lt;br /&gt;
04	12	000200E0	900102DD&lt;br /&gt;
05	14	000200E5	900103F1&lt;br /&gt;
06	12	000200EB	90010335&lt;br /&gt;
07	12	000200F0	90010263&lt;br /&gt;
08	14	000200F5	9001037C&lt;br /&gt;
09	12	000200FB	900102AE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	12	000200BD	900104A8&lt;br /&gt;
39	14	000200C2	900104A8&lt;br /&gt;
40	12	000200C8	900104AC&lt;br /&gt;
41	14	000200CD	900104A9&lt;br /&gt;
42	12	000200D3	900104B1&lt;br /&gt;
43	14	000200D8	900104A8&lt;br /&gt;
44	12	000200DE	900104AA&lt;br /&gt;
45	14	000200E3	900104A9&lt;br /&gt;
46	14	000200E9	900104AE&lt;br /&gt;
47	12	000200EF	900104A8&lt;br /&gt;
00	14	000200F4	900104AD&lt;br /&gt;
01	12	000200FA	900104A7&lt;br /&gt;
02	14	000200FF	900104A9&lt;br /&gt;
03	12	00020005	900104A9&lt;br /&gt;
04	14	0002000A	900104B1&lt;br /&gt;
05	12	00020010	900104AA&lt;br /&gt;
06	14	00020015	900104AD&lt;br /&gt;
07	12	0002001B	900104A7&lt;br /&gt;
08	14	00020020	900104AC&lt;br /&gt;
09	12	00020026	900104A7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>Takaswie</name></author>
	</entry>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6696</id>
		<title>User:Takaswie</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6696"/>
		<updated>2014-01-30T06:00:57Z</updated>

		<summary type="html">&lt;p&gt;Takaswie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple memo about driver for Firewire devices&lt;br /&gt;
&lt;br /&gt;
1.Status of this document&lt;br /&gt;
&lt;br /&gt;
My memo for developing.&lt;br /&gt;
&lt;br /&gt;
2.Basic Specifications&lt;br /&gt;
 - 'IEEE1394' defines 'Phy layer', 'Link layer', 'Transaction layer' and 'Serial Bus Management'.&lt;br /&gt;
 - 'OHCI1394' defined the design of IEEE1394 host controller and its register.&lt;br /&gt;
 - 'IEC 61883-1' defines 'Common Isochronous Packet (CIP)', 'Isochronous data flow management', 'Connection Management Procedure (CMP)', 'Function Control Protocol (FCP)'.&lt;br /&gt;
 - 'IEC 61883-6' defines the way to packetize 'Common Isochronous Packet' for 'Audio and Music'. This is so-called 'AMDTP'.&lt;br /&gt;
 - 'MMA/AMEI RP-027' is a recommendation for 'MIDI conformant data' channel of 'AMDTP'.&lt;br /&gt;
 - '1394TA' is an associates of industory.&lt;br /&gt;
 - 'AV/C' is many series of specification defined by '1394TA'.&lt;br /&gt;
&lt;br /&gt;
3.Firewire Sound Devices&lt;br /&gt;
 - They typically have:&lt;br /&gt;
  - a chipset for 'IEEE1394 Phy layer and Link layer'&lt;br /&gt;
  - a firmware for 'Transaction layer', 'Serial Bus Management' and  'IEC 61883-1/6'&lt;br /&gt;
  - a chipset for signal processing&lt;br /&gt;
  - a chipset for D/A or A/D convertion&lt;br /&gt;
&lt;br /&gt;
4.Firewire Sound Drivers&lt;br /&gt;
 - Firewire Sound Drivers Use IEEE1394 host controller to communicate to Firewire Sound Devices&lt;br /&gt;
 - In Linux, driver of host controller is developed at ieee1394.wiki.kernel.org. This driver has a nick name, 'Juju'. This driver exports some kernel APIs.&lt;br /&gt;
 - ALSA Firewire Sound Drivers use the kernel APIs.&lt;br /&gt;
 - 'snd-firewire-lib' exports helper functions for ALSA Firewire Sound Drivers.&lt;br /&gt;
&lt;br /&gt;
5.What to do inner Firewire Sound Drivers&lt;br /&gt;
 - Register/unregister myself as module for Linux&lt;br /&gt;
 - React bus events for Juju&lt;br /&gt;
 - Register/unregister cards for ALSA Core&lt;br /&gt;
 - Add interfaces for ALSA component&lt;br /&gt;
 - Handle Input/Output to/from ALSA applications&lt;br /&gt;
 - Send/Receive transactions to/from Firewire Sound Devices&lt;br /&gt;
 - Send/Receive packets to/from Firewire Sound Devices&lt;br /&gt;
 - Parse/Compose data for Firewire Sound Devices&lt;br /&gt;
&lt;br /&gt;
6.Connections&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is for Firewire Sound Devices compliant to IEC 61883-1.&lt;br /&gt;
 - They manage isochronous resource with 'Connection'.&lt;br /&gt;
 - This 'Connection' is expressed as a value of 'Plug Control Register'.&lt;br /&gt;
 - The way to handle 'Connection' is defined in IEC 61883-1.&lt;br /&gt;
&lt;br /&gt;
7.Packets&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - 'Isochronous Packet' has its own header. In its payload, some 'Common Isochronous Packet'.&lt;br /&gt;
 - 'Common Isochronous Packet' have its own header. In its payload, some data channels.&lt;br /&gt;
 - 'AMDTP' uses 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - In 'AMDTP', 'Common Isochronous Packet' have some data channels.&lt;br /&gt;
 - For Firewire Sound Devices, the data channel is mainly used for PCM samples and MIDI messages.&lt;br /&gt;
 - 'PCM samples' and 'MIDI messages' can be transferred in the same 'AMDTP' packet.&lt;br /&gt;
&lt;br /&gt;
8.Presentation Timestamp&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is in a 'SYT' field in 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - This field is 16 bit. This field cannot indicate an actual time.&lt;br /&gt;
 - The value of this field is '0xffff' if the packet has no 'presentation timestap'.&lt;br /&gt;
 - The devices can be synchronized with the value of this field.&lt;br /&gt;
 - Firewire Sound Drivers need to calculare the value of this field in 'out-stream'.&lt;br /&gt;
 - Then Firewire Sound Drivers should use the value of this field in 'in-stream' for 'out-stream'.&lt;br /&gt;
&lt;br /&gt;
9.AMDTP and PCM samples&lt;br /&gt;
 - See IEC 61883-6.&lt;br /&gt;
 - The value of 'FDF' in 'Common Isochronous Packet' header includes 'SFC' field for 'sampling rate'.&lt;br /&gt;
 - 'Common Isochronous Packet' includes some 'event'.&lt;br /&gt;
 - The 'event' means 'data in the same timestamp'. So one 'event' includes a set of PCM channels (= one frame).&lt;br /&gt;
 - There are two ways to decide the number of 'events' in an 'Common Isochronous Packet', 'non-blocking' and 'blocking'.&lt;br /&gt;
 - In 'non-blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is different.&lt;br /&gt;
  - All of 'Common Isochronous Packet' has PCM samples.&lt;br /&gt;
  - The value of 'SYT' field is for a certain 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In 'blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is the same.&lt;br /&gt;
  - Some 'Common Isochronous Packet' has no PCM samples (empty packet or packet with NODATA flag).&lt;br /&gt;
  - The value of 'SYT' field is for the first 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In both modes, the total number of 'events' with PCM samples are the same as sampling rate.&lt;br /&gt;
 - Most Firewire Sound Devies use 'blocking mode'.&lt;br /&gt;
&lt;br /&gt;
10.MIDI Conformant Data Channel&lt;br /&gt;
 - See IEC 61883-6 and MMA/AMEI RP-027.&lt;br /&gt;
 - 'MIDI Conformant Data Channel' is for transfer MIDI messages.&lt;br /&gt;
 - Each 'MIDI Conformant Data Channel' includes 8 'MPX-MIDI Data Stream'.&lt;br /&gt;
 - Each 'MPX-MIDI Data Stream' includes one data stream from/to MIDI ports.&lt;br /&gt;
 - 'MIDI1.0-1x-SPEED' mode is major.&lt;br /&gt;
 - 'MIDI1.0-2x/3x-SPEED' mode are described with 'negotiation procedure' and 'encapsulation details' but there is no specifications to define them.&lt;br /&gt;
&lt;br /&gt;
11.Function Control Protocol&lt;br /&gt;
 - See IEC 61883-6.&lt;br /&gt;
 - 'Function Control Protocol' is an application of 'Asynchronous Transaction' in IEEE1394.&lt;br /&gt;
 - 'Function Control Protocol' is done by command/response.&lt;br /&gt;
 - Command is sent to '0xffff f000 0b00'&lt;br /&gt;
 - Response is sent to '0xffff f000 0d00'&lt;br /&gt;
 - To receive response from device, drivers need to listen this address (so-called allocation).&lt;br /&gt;
&lt;br /&gt;
12.AV/C commands&lt;br /&gt;
 - 'AV/C commands' is an application of 'Function Cotrol Protocol'.&lt;br /&gt;
 - The maximum size of command is 512 bytes.&lt;br /&gt;
 - There are much variations, vendor-specific extensions.&lt;br /&gt;
 - Basically, see 'AV/C Digital Interface Command Set General Specification Version 4.2 (Sept 2004, 1394TA)'.&lt;br /&gt;
 - For Audio Subunit, see 'AV/C Audio Subunit Specification 1.0 (Oct 2000, 1394TA)'.&lt;br /&gt;
 - For Music Subunit, see 'AV/C Music Subunit Specification 1.0 (I don't have)'.&lt;br /&gt;
 - For Stream Format, see 'AV/C Stream Format Information Specification 1.0 (I don't have)'&lt;br /&gt;
 - For Descriptor Mechanism, see 'Enhancements to the AV/C General Specification 3.0 Version 1.1 (Oct 2000, 1394TA)'.&lt;br /&gt;
&lt;br /&gt;
13.Sampling Clock Synchronization&lt;br /&gt;
 - This is device-dependent issue.&lt;br /&gt;
 - Usually Firewire Sound Devices use internal clock.&lt;br /&gt;
 - But some devices can switch its source of sampling clock. &lt;br /&gt;
 - There is Coaxial, Optical and XLR interface for this purpose.&lt;br /&gt;
 - And there is 'Synchronization Stream'. In this stream, the value of 'SYT' field can be used for sampling clock.&lt;br /&gt;
 - When source of clock is given by external, available sampling rate is limited at current one.&lt;br /&gt;
&lt;br /&gt;
14.Quirks&lt;br /&gt;
 - Fireworks:&lt;br /&gt;
  - 1.Fireworks transmits packets with both TAG0 and TAG1. In IEC 61883-1, each common isochronous packet (CIP) has 'tag' field in its packet header. The value is generally 0x01 ('CIP header is included' = TAG1). But Fireworks in 'IEC 61883 compliant mode' transmits 'no data' packet with 0x00 ('No CIP header is included' = TAG0) but actually the packet includes CIP structure. To handle 'presentation timestamp' for duplex streams synchronization, this packets must be handled.&lt;br /&gt;
&lt;br /&gt;
  - 2.Fireworks transmits 'no data' packet out of specification. Fireworks transmits 'no data' packet with 'NO-DATA' FDF and no dummy data. It includes CIP headers only. In IEC 61883-6, 'no data' packet is generated by two ways. One is empty CIP packet defined in IEC 61883-1. Another is 'special non-empty packet' defined in IEC 61883-6. Fireworks uses strange combination of them.&lt;br /&gt;
&lt;br /&gt;
  - 3.Fireworks can handle MIDI messages in the first 8 data blocks of out-packet, Fireworks ignores MIDI messages in other data blocks.&lt;br /&gt;
&lt;br /&gt;
  - 4.AudioFirePre8 transmits packets with wrong data block size. One of Fireworks device, AudioFirePre8, always reports 8 data block size in transmitted packets and increments the data block counter by 8. But this is not actual value.&lt;br /&gt;
&lt;br /&gt;
  - 5.Fireworks transmits packets with a bit disorder. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index	Payload	CIP header 1CIP header 2&lt;br /&gt;
023	210	3F1100F8	900478E9&lt;br /&gt;
024	002	3F1100F8	90FFFFFF&lt;br /&gt;
025	210	3F110000	900490E9&lt;br /&gt;
026	210	3F110008	9004A4E9&lt;br /&gt;
027	210	3F110010	9004B8E9&lt;br /&gt;
028	002	3F110010	90FFFFFF&lt;br /&gt;
029	210	3F110020	9004E4E8 &amp;lt;-&lt;br /&gt;
030	210	3F110018	9004D0E8 &amp;lt;-&lt;br /&gt;
031	210	3F110028	9004F8E8&lt;br /&gt;
032	002	3F110028	90FFFFFF&lt;br /&gt;
033	210	3F110030	900410E8&lt;br /&gt;
034	210	3F110038	900424E8&lt;br /&gt;
035	210	3F110040	900438E8&lt;br /&gt;
036	002	3F110040	90FFFFFF&lt;br /&gt;
037	210	3F110050	900464E8 &amp;lt;-&lt;br /&gt;
038	210	3F110048	900450E8 &amp;lt;-&lt;br /&gt;
039	210	3F110058	900478E8&lt;br /&gt;
040	002	3F110058	90FFFFFF&lt;br /&gt;
041	210	3F110068	9004A4E8 &amp;lt;-&lt;br /&gt;
042	210	3F110060	900490E8 &amp;lt;-&lt;br /&gt;
043	210	3F110070	9004B8E8&lt;br /&gt;
044	002	3F110070	90FFFFFF&lt;br /&gt;
045	210	3F110080	9004E4E7 &amp;lt;-&lt;br /&gt;
046	210	3F110078	9004D0E8 &amp;lt;-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 - BeBoB&lt;br /&gt;
  - BeBoB has its own AV/C extension command&lt;br /&gt;
&lt;br /&gt;
 - OXFW970/971&lt;br /&gt;
  - OXFW970/971 transmit packets with invalid value of 'SYT' field. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives no out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	14	00020092	900103D1&lt;br /&gt;
39	12	00020098	900102FF&lt;br /&gt;
40	12	0002009D	9001027F&lt;br /&gt;
41	14	000200A2	90010396&lt;br /&gt;
42	14	000200A8	900102E8&lt;br /&gt;
43	12	000200AE	90010219&lt;br /&gt;
44	14	000200B3	90010331&lt;br /&gt;
45	12	000200B9	9001025F&lt;br /&gt;
46	14	000200BE	90010376&lt;br /&gt;
47	12	000200C4	900102A1&lt;br /&gt;
00	12	000200C9	9001023E&lt;br /&gt;
01	14	000200CE	90010358&lt;br /&gt;
02	12	000200D4	90010289&lt;br /&gt;
03	16	000200D9	900103A3&lt;br /&gt;
04	12	000200E0	900102DD&lt;br /&gt;
05	14	000200E5	900103F1&lt;br /&gt;
06	12	000200EB	90010335&lt;br /&gt;
07	12	000200F0	90010263&lt;br /&gt;
08	14	000200F5	9001037C&lt;br /&gt;
09	12	000200FB	900102AE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	12	000200BD	900104A8&lt;br /&gt;
39	14	000200C2	900104A8&lt;br /&gt;
40	12	000200C8	900104AC&lt;br /&gt;
41	14	000200CD	900104A9&lt;br /&gt;
42	12	000200D3	900104B1&lt;br /&gt;
43	14	000200D8	900104A8&lt;br /&gt;
44	12	000200DE	900104AA&lt;br /&gt;
45	14	000200E3	900104A9&lt;br /&gt;
46	14	000200E9	900104AE&lt;br /&gt;
47	12	000200EF	900104A8&lt;br /&gt;
00	14	000200F4	900104AD&lt;br /&gt;
01	12	000200FA	900104A7&lt;br /&gt;
02	14	000200FF	900104A9&lt;br /&gt;
03	12	00020005	900104A9&lt;br /&gt;
04	14	0002000A	900104B1&lt;br /&gt;
05	12	00020010	900104AA&lt;br /&gt;
06	14	00020015	900104AD&lt;br /&gt;
07	12	0002001B	900104A7&lt;br /&gt;
08	14	00020020	900104AC&lt;br /&gt;
09	12	00020026	900104A7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>Takaswie</name></author>
	</entry>
	<entry>
		<id>https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6695</id>
		<title>User:Takaswie</title>
		<link rel="alternate" type="text/html" href="https://www.alsa-project.org/main/index.php?title=User:Takaswie&amp;diff=6695"/>
		<updated>2014-01-30T06:00:16Z</updated>

		<summary type="html">&lt;p&gt;Takaswie: Created page with &amp;quot;Simple memo about driver for Firewire devices  1.Status of this document My memo for developing.  2.Basic Specifications  - 'IEEE1394' defines 'Phy layer', 'Link layer', 'Tran...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Simple memo about driver for Firewire devices&lt;br /&gt;
&lt;br /&gt;
1.Status of this document&lt;br /&gt;
My memo for developing.&lt;br /&gt;
&lt;br /&gt;
2.Basic Specifications&lt;br /&gt;
 - 'IEEE1394' defines 'Phy layer', 'Link layer', 'Transaction layer' and 'Serial Bus Management'.&lt;br /&gt;
 - 'OHCI1394' defined the design of IEEE1394 host controller and its register.&lt;br /&gt;
 - 'IEC 61883-1' defines 'Common Isochronous Packet (CIP)', 'Isochronous data flow management', 'Connection Management Procedure (CMP)', 'Function Control Protocol (FCP)'.&lt;br /&gt;
 - 'IEC 61883-6' defines the way to packetize 'Common Isochronous Packet' for 'Audio and Music'. This is so-called 'AMDTP'.&lt;br /&gt;
 - 'MMA/AMEI RP-027' is a recommendation for 'MIDI conformant data' channel of 'AMDTP'.&lt;br /&gt;
 - '1394TA' is an associates of industory.&lt;br /&gt;
 - 'AV/C' is many series of specification defined by '1394TA'.&lt;br /&gt;
&lt;br /&gt;
3.Firewire Sound Devices&lt;br /&gt;
 - They typically have:&lt;br /&gt;
  - a chipset for 'IEEE1394 Phy layer and Link layer'&lt;br /&gt;
  - a firmware for 'Transaction layer', 'Serial Bus Management' and  'IEC 61883-1/6'&lt;br /&gt;
  - a chipset for signal processing&lt;br /&gt;
  - a chipset for D/A or A/D convertion&lt;br /&gt;
&lt;br /&gt;
4.Firewire Sound Drivers&lt;br /&gt;
 - Firewire Sound Drivers Use IEEE1394 host controller to communicate to Firewire Sound Devices&lt;br /&gt;
 - In Linux, driver of host controller is developed at ieee1394.wiki.kernel.org. This driver has a nick name, 'Juju'. This driver exports some kernel APIs.&lt;br /&gt;
 - ALSA Firewire Sound Drivers use the kernel APIs.&lt;br /&gt;
 - 'snd-firewire-lib' exports helper functions for ALSA Firewire Sound Drivers.&lt;br /&gt;
&lt;br /&gt;
5.What to do inner Firewire Sound Drivers&lt;br /&gt;
 - Register/unregister myself as module for Linux&lt;br /&gt;
 - React bus events for Juju&lt;br /&gt;
 - Register/unregister cards for ALSA Core&lt;br /&gt;
 - Add interfaces for ALSA component&lt;br /&gt;
 - Handle Input/Output to/from ALSA applications&lt;br /&gt;
 - Send/Receive transactions to/from Firewire Sound Devices&lt;br /&gt;
 - Send/Receive packets to/from Firewire Sound Devices&lt;br /&gt;
 - Parse/Compose data for Firewire Sound Devices&lt;br /&gt;
&lt;br /&gt;
6.Connections&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is for Firewire Sound Devices compliant to IEC 61883-1.&lt;br /&gt;
 - They manage isochronous resource with 'Connection'.&lt;br /&gt;
 - This 'Connection' is expressed as a value of 'Plug Control Register'.&lt;br /&gt;
 - The way to handle 'Connection' is defined in IEC 61883-1.&lt;br /&gt;
&lt;br /&gt;
7.Packets&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - 'Isochronous Packet' has its own header. In its payload, some 'Common Isochronous Packet'.&lt;br /&gt;
 - 'Common Isochronous Packet' have its own header. In its payload, some data channels.&lt;br /&gt;
 - 'AMDTP' uses 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - In 'AMDTP', 'Common Isochronous Packet' have some data channels.&lt;br /&gt;
 - For Firewire Sound Devices, the data channel is mainly used for PCM samples and MIDI messages.&lt;br /&gt;
 - 'PCM samples' and 'MIDI messages' can be transferred in the same 'AMDTP' packet.&lt;br /&gt;
&lt;br /&gt;
8.Presentation Timestamp&lt;br /&gt;
 - See IEC 61883-1.&lt;br /&gt;
 - This is in a 'SYT' field in 'Common Isochronous Packet header with SYT field'.&lt;br /&gt;
 - This field is 16 bit. This field cannot indicate an actual time.&lt;br /&gt;
 - The value of this field is '0xffff' if the packet has no 'presentation timestap'.&lt;br /&gt;
 - The devices can be synchronized with the value of this field.&lt;br /&gt;
 - Firewire Sound Drivers need to calculare the value of this field in 'out-stream'.&lt;br /&gt;
 - Then Firewire Sound Drivers should use the value of this field in 'in-stream' for 'out-stream'.&lt;br /&gt;
&lt;br /&gt;
9.AMDTP and PCM samples&lt;br /&gt;
 - See IEC 61883-6.&lt;br /&gt;
 - The value of 'FDF' in 'Common Isochronous Packet' header includes 'SFC' field for 'sampling rate'.&lt;br /&gt;
 - 'Common Isochronous Packet' includes some 'event'.&lt;br /&gt;
 - The 'event' means 'data in the same timestamp'. So one 'event' includes a set of PCM channels (= one frame).&lt;br /&gt;
 - There are two ways to decide the number of 'events' in an 'Common Isochronous Packet', 'non-blocking' and 'blocking'.&lt;br /&gt;
 - In 'non-blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is different.&lt;br /&gt;
  - All of 'Common Isochronous Packet' has PCM samples.&lt;br /&gt;
  - The value of 'SYT' field is for a certain 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In 'blocking' mode:&lt;br /&gt;
  - In each 'Common Isochronous Packet', the number of 'event' is the same.&lt;br /&gt;
  - Some 'Common Isochronous Packet' has no PCM samples (empty packet or packet with NODATA flag).&lt;br /&gt;
  - The value of 'SYT' field is for the first 'event' in the 'Common Isochronous Packet'.&lt;br /&gt;
 - In both modes, the total number of 'events' with PCM samples are the same as sampling rate.&lt;br /&gt;
 - Most Firewire Sound Devies use 'blocking mode'.&lt;br /&gt;
&lt;br /&gt;
10.MIDI Conformant Data Channel&lt;br /&gt;
 - See IEC 61883-6 and MMA/AMEI RP-027.&lt;br /&gt;
 - 'MIDI Conformant Data Channel' is for transfer MIDI messages.&lt;br /&gt;
 - Each 'MIDI Conformant Data Channel' includes 8 'MPX-MIDI Data Stream'.&lt;br /&gt;
 - Each 'MPX-MIDI Data Stream' includes one data stream from/to MIDI ports.&lt;br /&gt;
 - 'MIDI1.0-1x-SPEED' mode is major.&lt;br /&gt;
 - 'MIDI1.0-2x/3x-SPEED' mode are described with 'negotiation procedure' and 'encapsulation details' but there is no specifications to define them.&lt;br /&gt;
&lt;br /&gt;
11.Function Control Protocol&lt;br /&gt;
 - See IEC 61883-6.&lt;br /&gt;
 - 'Function Control Protocol' is an application of 'Asynchronous Transaction' in IEEE1394.&lt;br /&gt;
 - 'Function Control Protocol' is done by command/response.&lt;br /&gt;
 - Command is sent to '0xffff f000 0b00'&lt;br /&gt;
 - Response is sent to '0xffff f000 0d00'&lt;br /&gt;
 - To receive response from device, drivers need to listen this address (so-called allocation).&lt;br /&gt;
&lt;br /&gt;
12.AV/C commands&lt;br /&gt;
 - 'AV/C commands' is an application of 'Function Cotrol Protocol'.&lt;br /&gt;
 - The maximum size of command is 512 bytes.&lt;br /&gt;
 - There are much variations, vendor-specific extensions.&lt;br /&gt;
 - Basically, see 'AV/C Digital Interface Command Set General Specification Version 4.2 (Sept 2004, 1394TA)'.&lt;br /&gt;
 - For Audio Subunit, see 'AV/C Audio Subunit Specification 1.0 (Oct 2000, 1394TA)'.&lt;br /&gt;
 - For Music Subunit, see 'AV/C Music Subunit Specification 1.0 (I don't have)'.&lt;br /&gt;
 - For Stream Format, see 'AV/C Stream Format Information Specification 1.0 (I don't have)'&lt;br /&gt;
 - For Descriptor Mechanism, see 'Enhancements to the AV/C General Specification 3.0 Version 1.1 (Oct 2000, 1394TA)'.&lt;br /&gt;
&lt;br /&gt;
13.Sampling Clock Synchronization&lt;br /&gt;
 - This is device-dependent issue.&lt;br /&gt;
 - Usually Firewire Sound Devices use internal clock.&lt;br /&gt;
 - But some devices can switch its source of sampling clock. &lt;br /&gt;
 - There is Coaxial, Optical and XLR interface for this purpose.&lt;br /&gt;
 - And there is 'Synchronization Stream'. In this stream, the value of 'SYT' field can be used for sampling clock.&lt;br /&gt;
 - When source of clock is given by external, available sampling rate is limited at current one.&lt;br /&gt;
&lt;br /&gt;
14.Quirks&lt;br /&gt;
 - Fireworks:&lt;br /&gt;
  - 1.Fireworks transmits packets with both TAG0 and TAG1. In IEC 61883-1, each common isochronous packet (CIP) has 'tag' field in its packet header. The value is generally 0x01 ('CIP header is included' = TAG1). But Fireworks in 'IEC 61883 compliant mode' transmits 'no data' packet with 0x00 ('No CIP header is included' = TAG0) but actually the packet includes CIP structure. To handle 'presentation timestamp' for duplex streams synchronization, this packets must be handled.&lt;br /&gt;
&lt;br /&gt;
  - 2.Fireworks transmits 'no data' packet out of specification. Fireworks transmits 'no data' packet with 'NO-DATA' FDF and no dummy data. It includes CIP headers only. In IEC 61883-6, 'no data' packet is generated by two ways. One is empty CIP packet defined in IEC 61883-1. Another is 'special non-empty packet' defined in IEC 61883-6. Fireworks uses strange combination of them.&lt;br /&gt;
&lt;br /&gt;
  - 3.Fireworks can handle MIDI messages in the first 8 data blocks of out-packet, Fireworks ignores MIDI messages in other data blocks.&lt;br /&gt;
&lt;br /&gt;
  - 4.AudioFirePre8 transmits packets with wrong data block size. One of Fireworks device, AudioFirePre8, always reports 8 data block size in transmitted packets and increments the data block counter by 8. But this is not actual value.&lt;br /&gt;
&lt;br /&gt;
  - 5.Fireworks transmits packets with a bit disorder. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index	Payload	CIP header 1CIP header 2&lt;br /&gt;
023	210	3F1100F8	900478E9&lt;br /&gt;
024	002	3F1100F8	90FFFFFF&lt;br /&gt;
025	210	3F110000	900490E9&lt;br /&gt;
026	210	3F110008	9004A4E9&lt;br /&gt;
027	210	3F110010	9004B8E9&lt;br /&gt;
028	002	3F110010	90FFFFFF&lt;br /&gt;
029	210	3F110020	9004E4E8 &amp;lt;-&lt;br /&gt;
030	210	3F110018	9004D0E8 &amp;lt;-&lt;br /&gt;
031	210	3F110028	9004F8E8&lt;br /&gt;
032	002	3F110028	90FFFFFF&lt;br /&gt;
033	210	3F110030	900410E8&lt;br /&gt;
034	210	3F110038	900424E8&lt;br /&gt;
035	210	3F110040	900438E8&lt;br /&gt;
036	002	3F110040	90FFFFFF&lt;br /&gt;
037	210	3F110050	900464E8 &amp;lt;-&lt;br /&gt;
038	210	3F110048	900450E8 &amp;lt;-&lt;br /&gt;
039	210	3F110058	900478E8&lt;br /&gt;
040	002	3F110058	90FFFFFF&lt;br /&gt;
041	210	3F110068	9004A4E8 &amp;lt;-&lt;br /&gt;
042	210	3F110060	900490E8 &amp;lt;-&lt;br /&gt;
043	210	3F110070	9004B8E8&lt;br /&gt;
044	002	3F110070	90FFFFFF&lt;br /&gt;
045	210	3F110080	9004E4E7 &amp;lt;-&lt;br /&gt;
046	210	3F110078	9004D0E8 &amp;lt;-&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 - BeBoB&lt;br /&gt;
  - BeBoB has its own AV/C extension command&lt;br /&gt;
&lt;br /&gt;
 - OXFW970/971&lt;br /&gt;
  - OXFW970/971 transmit packets with invalid value of 'SYT' field. See:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives no out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	14	00020092	900103D1&lt;br /&gt;
39	12	00020098	900102FF&lt;br /&gt;
40	12	0002009D	9001027F&lt;br /&gt;
41	14	000200A2	90010396&lt;br /&gt;
42	14	000200A8	900102E8&lt;br /&gt;
43	12	000200AE	90010219&lt;br /&gt;
44	14	000200B3	90010331&lt;br /&gt;
45	12	000200B9	9001025F&lt;br /&gt;
46	14	000200BE	90010376&lt;br /&gt;
47	12	000200C4	900102A1&lt;br /&gt;
00	12	000200C9	9001023E&lt;br /&gt;
01	14	000200CE	90010358&lt;br /&gt;
02	12	000200D4	90010289&lt;br /&gt;
03	16	000200D9	900103A3&lt;br /&gt;
04	12	000200E0	900102DD&lt;br /&gt;
05	14	000200E5	900103F1&lt;br /&gt;
06	12	000200EB	90010335&lt;br /&gt;
07	12	000200F0	90010263&lt;br /&gt;
08	14	000200F5	9001037C&lt;br /&gt;
09	12	000200FB	900102AE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
When driver gives out-stream:&lt;br /&gt;
Index	Payload	CIP_Header_0	CIP_Header_1&lt;br /&gt;
38	12	000200BD	900104A8&lt;br /&gt;
39	14	000200C2	900104A8&lt;br /&gt;
40	12	000200C8	900104AC&lt;br /&gt;
41	14	000200CD	900104A9&lt;br /&gt;
42	12	000200D3	900104B1&lt;br /&gt;
43	14	000200D8	900104A8&lt;br /&gt;
44	12	000200DE	900104AA&lt;br /&gt;
45	14	000200E3	900104A9&lt;br /&gt;
46	14	000200E9	900104AE&lt;br /&gt;
47	12	000200EF	900104A8&lt;br /&gt;
00	14	000200F4	900104AD&lt;br /&gt;
01	12	000200FA	900104A7&lt;br /&gt;
02	14	000200FF	900104A9&lt;br /&gt;
03	12	00020005	900104A9&lt;br /&gt;
04	14	0002000A	900104B1&lt;br /&gt;
05	12	00020010	900104AA&lt;br /&gt;
06	14	00020015	900104AD&lt;br /&gt;
07	12	0002001B	900104A7&lt;br /&gt;
08	14	00020020	900104AC&lt;br /&gt;
09	12	00020026	900104A7&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>Takaswie</name></author>
	</entry>
</feed>