Date: Mon, 23 Jun 1997 21:49:31 -0600 From: Steve Passe <smp@csn.net> To: "Louis A. Mamakos" <louie@TransSys.COM> Cc: Terry Lambert <terry@lambert.org>, jseger@freebsd.scds.com, current@FreeBSD.ORG Subject: Re: Activehome X10 Interface Message-ID: <199706240349.VAA09063@Ilsa.StevesCafe.com> In-Reply-To: Your message of "Mon, 23 Jun 1997 23:20:30 EDT." <199706240320.XAA22494@whizzo.TransSys.COM>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, > I just looked at this code again, and the CM11 protocol specification. I think > that the whole RI issue is a bit of a red herring; it's useful in the instance > where the attached computer is powered down, and needs to be poked to start up > again to handle received X10 traffic. > > Based on the documentation (and consistent with the code) the RI signal is > asserted when an X10 transmission begins to be received. Once the CM11 has > received the multibyte sequence, it will begin to poll the computer once > per second with a request (single byte of 0x5a) to have it's buffer read. you are correct. I dug up the doc and it basically says it will send POLL bytes once there is data, and that there is no specific responce to the RI signal. So forget my suggestion for handling the RI signal, IGNORE IT! the relevant part of the doc: 3. X-10 Reception. Whenever the interface begins to receive data from the power-line, it will immediately assert the serial ring (RI) signal to initiate the wake-up procedure for the PC. Once the data reception is complete, the interface will begin to poll the PC to upload its data buffer (maximum 10 bytes). If the PC does not respond, then the interface's data buffer will overrun, and additional data will not be stored within the buffer. 3.1 Interface Poll Signal. In order to poll the PC, the interface will continually send: Poll: 7 6 5 4 3 2 1 0 Value: 0 1 0 1 1 0 1 0 (0x5a) This signal will be repeated once every second until the PC responds. 3.2 PC Response to the Poll Signal. To terminate the interface's polling and initiate the data transfer, the PC must send an acknowledgement to the interface's poll signal. This acknowledgement is: Poll: 7 6 5 4 3 2 1 0 Value: 1 1 0 0 0 0 1 1 (0xc3) Notice that bit #2 of the PC transmission is not set, indicating that this cannot be the beginning of a transmission from the PC. 3.3 Interface Serial Data Buffer. The buffer consists of 10 bytes defined as follows: Byte Function 0 Upload Buffer Size 1 Function / Address Mask 2 Data Byte #0 3 Data Byte #1 4 Data Byte #2 5 Data Byte #3 6 Data Byte #4 7 Data Byte #5 8 Data Byte #6 9 Data Byte #7 The interface will only upload the specified number of bytes within the buffer, and will not default to uploading 10 bytes in every transmission. The number of bytes to receive is thus specified in byte 0 of the transmission. The function address mask indicates whether the following 8 bytes should be interpreted as an address or as a function. The position of the bit in the mask corresponds to the byte index within the data buffer. If the bit is set (1), the data byte is defined as a function, and if reset (0), the byte is an address. The data bytes are in the same format as for the Code byte in the X-10 transmissions (i.e. Housecode:Device Code or Housecode:Function). I just put the complete doc in: http://www.freebsd.org/~fsmp/HomeAuto/files/0711prot.txt -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706240349.VAA09063>