From firmware 6.00, BACRouter had built in a software noise filter for RS485. Here we will investigate its performance on ARC156.
Performance Of Reference Devices
The reference devices are ZN551 and AAR modules which utilize microchip COM20019i to handle ARCnet communication.
From testing, the reference devices only care about the falling edge of signals which corresponds to differential voltage of RS485 bus. Signal width does not participate to decode, unless the width is less than 0.52us which will be ignored. The mechanism is described in following paragraph.
These reference devices have a hardware noise filter built on SN74HC164 and SN74AHC1G32. On 10M clock base, only input signal levels from RS485 transceiver are low both on 1th and 5th clock, COM20019i will receive a low signal, so low level pulses shorter than 0.5us will be filtered.
Idle RS485 bus is more vulnerable to noise, because the biasing current is only a few Milli-amperes, it will take much longer to recover from noise signal than a driven bus which one node is in sending state.
On an idle bus, noise signals wider than 0.52us will be mistakenly decoded by COM20019i as a starting pulse of a new frame.
On a driven bus, when a bit 1 is being sent, there should be a falling edge of differential voltage, if falling edge of noise is in the range of +/- 3.2us of valid signal’s falling edge, COM20019i will detect multiple falling edges, duplicated edges will be ignored.
When a bit 0 is being sent, there is no falling edge, but if there is noise of which falling edge is in the range of +/- 3.2us, COM20019i will incorrectly decode to bit 1.
Performance Of BACRouter
On and idle bus, BACRouter can tolerate noise signals shorter than 2.1us.
On a driven bus, if there is continuous bit 1s being sent, the pulse width is 3.2us, BACRouter can only tolerate noise signal shorter than 1.05us. If there is bit 0 being sent, the pulse width will be greater than 6.4us, then BACRouter can tolerate noise signal shorter than 2.1us.
Conclusion
Immunity(Width of Noise signal) | BACRouter | Reference Device |
Idle Bus | 2.1us | 0.52us |
Bit 1s being sent | 1.05us | Don’t care |
Bit 0 being sent | 2.1us | 0.52us |