diff options
Diffstat (limited to 'sem5/net/mm8/noter.md')
-rw-r--r-- | sem5/net/mm8/noter.md | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/sem5/net/mm8/noter.md b/sem5/net/mm8/noter.md new file mode 100644 index 0000000..8b04b61 --- /dev/null +++ b/sem5/net/mm8/noter.md @@ -0,0 +1,73 @@ +# Can +``` +2020-10-01:s5/net/mm8/noter/1 #2280 +``` + +Can lever i layer 1 - 3 i OSI modellen. + +## Bus + +Requires that a single bit is received by all bus members. + +1 is recessive, while 0 is dominant. +Recessive is the default so pull up and dominant is when the line is pulled down. + +``` +0 + 0 = 0 +1 + 1 = 1 +0 + 1 = 0 # Because 0 is dominant +``` + +CAN defines 0 as the dominant bit. + +## Frame + +Node id is also used as priority. +Smaller id gives a higher priority. +It therefore uses `CSMA/CA`. +This can be seen below: + +1. First everyone starts transits zero. +2. Then nodes starts transmitting their id. +3. If a node hears something different than they are transmitting they know they are loosing. +4. The winner (TAKES IT ALL) can then send the rest of the frame. +5. Loosing nodes wait for end of frame, so they can try again. + +In the ACK field the receiver sends a dominant bit to signal if the frame went fine. + +This means that we are constantly listening while receiving and others can also jump in. + +### Addressing + +ID is not really a address. + +One does not operate on source and destination but more different message ID's. +Like different sensor values have different id's, and other nodes can then subscribe on these id's. + +Nodes only listen for id's they are interested in. + +### Frame types + +Data Frame +: a frame containing data. +Remote frame +: a request for a specific resource. +Error frame +: transmitted by a node on a error. +Overload frame +: Whaat + +## Bit synchronization + +Nodes need to agree on whats on the bus. + +Bit time must be twice propagation time. +This means long lines give slower speeds. + +### Problem +Periodic messages with different priority can give non-deteministic behavior, as their clock go in and out of phase. + +This can be solved by finding a worst case and checking if it lives up to a requirement. +However this can be hard if there are many messages. + +One can also run simulations. |