Difference between revisions of "FixmeBus"
From Fixme.ch
(→Overview) |
(→Overview) |
||
Line 6: | Line 6: | ||
FixmeBus is a field bus based on the half duplex [http://en.wikipedia.org/wiki/RS-485 RS485] famous hardware protocol. It is a master / slave architecture, with every slave chained together. | FixmeBus is a field bus based on the half duplex [http://en.wikipedia.org/wiki/RS-485 RS485] famous hardware protocol. It is a master / slave architecture, with every slave chained together. | ||
− | The communication protocol is a standard UART | + | ===The communication protocol is a standard UART...=== |
+ | ... which has these following parameters: | ||
*38,400 bauds | *38,400 bauds | ||
Line 14: | Line 15: | ||
*no flow control | *no flow control | ||
− | Each end of the bus is terminated with a 1% 120R resistor. | + | Each end of the bus is terminated with a 1% 120R resistor. The A/B lines are biased at one end with 2x 1kOhms resistors. |
− | Every data frame | + | ===Every data frame contain chronologically:=== |
*2 bytes of slave adress (ID_HIGH and ID_LOW) => 65536 slave adress | *2 bytes of slave adress (ID_HIGH and ID_LOW) => 65536 slave adress |
Revision as of 00:50, 13 April 2014
Contents
Overview
FixmeBus is a field bus based on the half duplex RS485 famous hardware protocol. It is a master / slave architecture, with every slave chained together.
The communication protocol is a standard UART...
... which has these following parameters:
- 38,400 bauds
- 8 data bits
- 1 start and 1 stop bit
- no parity
- no flow control
Each end of the bus is terminated with a 1% 120R resistor. The A/B lines are biased at one end with 2x 1kOhms resistors.
Every data frame contain chronologically:
- 2 bytes of slave adress (ID_HIGH and ID_LOW) => 65536 slave adress
- ID = 0 => Master
- ID = 65535 => order to all slaves (no ack)
- ID = 65000 to 65499 => order to a group of slave (no ack)
- ID = 1000 to 64999 => order to an unique slave (ack)
- 2 bytes for the function (FCT_HIGH and FCT_LOW)
- 1 byte for the number of data bytes to transmit (N_BYTE)
- n byte(s) of data (DATA) bytes (max. 200 bytes per frame)
- 2 bytes for the CRC (CRC_HIGH and CRC_LOW)
b0 | b1 | b2 | b3 | b4 | b5 | ... | bn+4 | bn+5 | bn+6 |
ID_HIGH | ID_LOW | FCT_HIGH | FCT_LOW | N_BYTE | DATA[0] | ... | DATA[n-1] | CRC_HIGH | CRC_LOW |
---|