# RS232
## Acronyme
```
MS DOS = MicroSoft Disk Operating System = OS Système Exploitation
UART = Universal Asynchronous Receiver/Transmitter
RxD = Reception eXchange Data
TxD = Transmition eXchange Data
DB9 = 9 pins
ASCII = American Standard Code for Information Interchange
Encodage hexadecimal des caractères alpha-numériques
LSB = Least Significant Bit (bit de poids faible)
MSB = Most Significant Bit (bit de poids fort)
ETTD = Équipement Terminal de Traitement de Données
ETCD = Équipement Terminal d’un Circuit de Données
MODEM = MOdulation DEModulation
```
## Définition
les données sont envoyées sur un seul fil
• la liaison est bidirectionnelle donc un fil pour chaque sens (FUll Duplex), ou omnidirectionnelle (Half Duplex)
• elle n’utilise pas de signal d’horloge c’est une liaison asynchrone
### Rappel (signal d'horloge)

## Schéma
```
Liaison Bidirectionnelle, sur 1 paire torsadée sans horloge Asynchrone.
PC TX-->------------------\ /---<---------TX Transmition eXchange
\/
/\
PC RX--<------------------/ \--->---------RX Reception eXchange
GND --------------------------------------GND Ground = masse = Potentiel de reférence généralement 0v.
```
## ETTD ETCD
### MODEM
```
ETCD ETTD
FAI = Fournisseur d'accès Internet BOX
M |TX-->------------------\ /---<---------TX |M|
O | \/ |O| WIFI
D | /\ |D|----------------->PC
E |RX--<------------------/ \--->---------RX |E|
M | |M|
```
### Protocole sur le même principe
Ethernet = Liaison bidirectionnelle sur 4 paires torsadées.
CAN (automobile)
EIB/KNX (automatisme)
## Le point de vue électrique
```
CMOS +12v -> '0' binaire
-12v -> '1' binaire
TTL +5 -> '1' binaire
0v -> '0' binaire
```
## Format de la Trame UART RS232

```
st -> un bit de start ‘0’
0,1,..7 -> bit de données
P -> bit de parité pour vérifier l'intégrité de l'octet recu
sp1 sp2 -> Bit de stop
Idle -> en attente
Frame -> trame
```
## Baud
Vitesse de transmission en bit/s
$ D=nb\_Bit/t $
## Asynchrone

La liaison est asynchrone ; il n’y a pas d’horloge. L’émetteur et le récepteur doivent être
réglés sur la même fréquence d’utilisation.
### Rappel (signal d'horloge)

## ASCII

## Transmission

```
Emetteur Recepteur
MSB LSB LSB MSB
0100 0011 -----------------> 1100 0010
```
Attention lors d'une transmission les bits de poids faible sont en tête donc il faut retourner les bits lus sur l’oscillogramme car le bit de poids faible (lsb) est transmis en premier : 0100 0011
C’est le code ASCII du caractère ‘C’
## Exemple
### Calcul d'un débit
1 bit= 100us
X bit= 1s
| bit | temps |
| --- | ------ |
| 1 | 100 us |
| x | 1 s |
| bit | temps |
| --- | ------ |
| 30 | 3 ms |
| x | 1 s |
| bit | temps |
| --- | ------ |
| 1 | 100 ns |
| x | 1 s |
| bit | temps |
| --- | ------ |
| 1 | x |
| 100M | 1 s |
Pour un débit de 1 Gbit/s calculer le temps nécessaire à la transmission d'un bit.
| bit | temps |
| --- | ------ |
| 1 | x |
| 1G | 1 s |
Pour un débit de 10 Gbit/s calculer le temps nécessaire à la transmission d'un bit.
| bit | temps |
| --- | ------ |
| 1 | x |
| 10G | 1 s |
On peut transmettre 10 bit en 10ps quel est le débit?
| bit | temps |
| --- | ------ |
| 10 | 10ps |
| x | 1 s |
### Raspberry
Les ports 14 - 15 pour Tx et Rx

### Arduino
#### UNO
Les ports 0 - 1 pour Rx et Tx

#### MEGA
Les ports 14 à 19 pour Rx et Tx

## Interconnexion
### 3.3V
> On Raspberry Pi, all GPIO banks are supplied from 3.3V. Connection of a GPIO to a voltage higher than 3.3V will likely destroy the GPIO block within the SoC. A selection of pins from Bank 0 is available on the P1 header on Raspberry Pi.
https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md#:~:text=On%20Raspberry%20Pi%2C%20all%20GPIO,P1%20header%20on%20Raspberry%20Pi.
### Convertisseur

### Schéma d'interconnection
Exemple d'adaptation entre 2 equipements 5v et 3,3v
```
[ARDUINO][RX]----------[CONVERTISSEUR 5v-3,3v]-------[TX][RASPBERRY]
[ TTL ][TX]----------[CONVERTISSEUR 5v-3,3v]-------[RX][0 - 3,3V ]
```
## DEBIT / Baud
La vitesse de transmission est exprimée en baud (Bd) bits par secondes
## Decodage
### Exemple

```
MSB LSB
0101 1001
hexa 5 9
ASCII 'Y'
```