MK3EBMasters

From EvTechWiki

(Redirected from MK3EBMaster)
Jump to: navigation, search

Back to: MK3EB MK3EBNetworking

Contents

Masters

See also: EBM

Purpose of a master

Most of the nodes in MK3EB are just barely smart enough to gather some data and/or do what they're told. There must be a few nodes that can actually store the data, and have enough capacity to do so, and also can do other useful things like displaying the data for users, implimenting features that are too sophisticated for individual nodes, and doing things like battery management based on historical data. These are envisioned as master computers, which don't wait until they're asked to talk.

Multiple Masters

Since the MK3EB bus is designed to work using a call and response system, there must be a few nodes that are smarter than the rest and are permitted to make calls. Examples of these nodes include the car's Master Computer and diagnostic software running on a PDA.

Originally I had thought that the bus would only have one master and that all communications would be funneled through that master. While this is probably true for alpha and beta versions of the project, a commercial implimentation including CAN, which has to be considered as a possible future for the project, would almost certainly need the ability to handle multiple nodes. While it's true that CAN includes contention handling, I think it would be a interesting side project to make the MK3EB system independant of hardware collision handling by using token passing. Over time you (my invisible readers - web stats tell me that in fact I'm writing this for myself, but it's hard to predict what the next ten years will bring) will notice me adding the ability to do token ring with node insertion to the MK3EB network protocol.

Masters and network capabilities

Masters are expected to be able to learn / remember the network capabilities of the nodes on the mk3eb, and to not issue packets in a format that the node being addressed can not decode. In addition, masters are expected to have a full implimentation of the network stack, supporting all optional features. (Obviously, many of them will not support many of the commands however)

Reference implimentation: The Perl Master API

I am developing a API that is designed to support implimenters of battery management rules. I haven't yet given much effort to documenting it, but when I do, it will be under the EBM namespace.

Personal tools