As the number of planned projects increased, it became clear that we needed a set of standards which would allow them to communicate with a central computer and each other. It is not practical to have a separate computer, separate wiring, and a separate communications protocol for every project. The 4E network will allow all the projects to share these things.
The network will use RS485 serial. This standard was chosen because it allows for multiple nodes to be connected to a single cable run. It is also extremely easy to interface with serial on computer and a PIC.
Each PIC will be its own node, so a project may have multiple nodes. For example, Bemix version 3 will have one node for each bathroom. On the other hand, a single node may be associated with multiple projects. The control panel will provide a physical interface to most 4E projects.
Each node will have a unique address and will filter incoming data and only listen to packets that are addressed to it. A 9 bit byte scheme is currently planned. In addition to the usual 8 bits, there will be a nineth bit which will designate whether the byte is data or an address. Thus, each node need only watch the nineth bit continuously rather than all eight. Many PICs have built a built in hardware implementation of this.
Each packet will have the following:
- 8 bit destinination address--the nineth bit is 1 here and 0 everywhere else
- 8 bit source address
- 8 or 16 bit packet length
- 8 bits for future expansion
The 4E network will most likely be full duplex, meaning that a node can transmit and recieve at the same time. It is unclear whether it is better to have the computer poll each node or to implement some collision avoidance system.
Many PICs have a self programming feature, meaning that they can write to their own program memory. Ideally, the PICs would be initially loaded with some software that would have the 4E network protocal and means for self programming. Any modification to the software could be made remotely over the 4E network, without ever needing physical access to the PIC.