Modifications

Sauter à la navigation Sauter à la recherche
694 octets ajoutés ,  3 août 2017 à 20:55
Ligne 39 : Ligne 39 :  
Si nous nous trouvons face à un "''Message Type Indicator''" SDEP standard (0x10, 0x20, 0x40 or 0x80) alors nous pouvons poursuivrez normalement la lecture
 
Si nous nous trouvons face à un "''Message Type Indicator''" SDEP standard (0x10, 0x20, 0x40 or 0x80) alors nous pouvons poursuivrez normalement la lecture
   −
{{traduction}}
+
Il existe deux autre "''Message Type Indicator''" dont il faut tenir compte. Ces derniers indique un problème du côté esclave de la communication SPI (le nRF51822):
There are two other indicators that should be taken into account, though, which indicate a problem on the nRF51822 SPI slave side:
+
* '''0xFE''' : Le périphérique esclave n'est pas prêt (attendre un peu et réessayer)
* '''0xFE''' : Slave device not ready (wait a bit and try again)
+
* '''0xFF''' : Indicateur de dépassement de lecture (''read overflow indicator'') sur le périphérique esclave (il y a eu une tentative de lire plus de donnée que de donnée vraiment  disponible sur l'esclave)
* '''0xFF''' : Slave device read overflow indicator (you've read more data than is available)
     −
This means there are six possible response bytes reading the message type indicator (the first byte read after an SDEP command is sent): 0x10, 0x20, 0x40, 0x80, which indicate a valid message type, or 0xFE, 0xFF which indicate an error condition.
+
Cela signifie qu'il y a 6 réponses possible dansle premier octet lu (donc la valeur du "message type indicator" renvoyée par le périphérique esclave).
   −
=== Sample Transaction ===
+
Ce premier octet après l'envoi d'une commande SDEP peut avoir les valeurs suivantes:
The following image shows a sample SDEP response that is spread over two packets (since the response is > 20 bytes in size). Notice that the IRQ line stays asserted between the packets since more than one packet was available in the FIFO on the Bluefruit LE SPI side:
+
* 0x10, 0x20, 0x40, 0x80 qui indiquent un type de message valide
 +
* 0xFE, 0xFF qui indiquent une condition d'erreur
 +
 
 +
=== Exemple de Transaction ===
 +
L'image suivante présente un exemple de réponse SDEP qui est réparti sur deux paquets (étant donné que la taille de la réponse est > 20 octets). Notez comme la ligne IRQ reste active entre les deux paquets puisque plus d'un paquet était disponible dans la mémoire tampon FIFO sur le Bluefruit LE (côté esclave du bus SPI):
    
{{ADFImage|Bluefruit-LE-Shield-SDEP-sample.png}}
 
{{ADFImage|Bluefruit-LE-Shield-SDEP-sample.png}}
    
== SDEP - protocole d'échange de donnée simplifié ==
 
== SDEP - protocole d'échange de donnée simplifié ==
SDEP est l'acronyme de "Simple Data Exchange Protocol".
+
SDEP est l'acronyme de "Simple Data Exchange Protocol" qui signifie "Protocole simple d'échange de donnée".
   −
The Simple Data Exchange Protocol (SDEP) can be used to send and receive binary messages between two connected devices using any binary serial bus (USB HID, USB Bulk, SPI, I2C, Wireless, etc.), exchanging data using one of four distinct message types (Command, Response, Alert and Error messages).
+
SDEP peut être utilisé pour envoyer et recevoir des messages binaires entre deux périphériques connectés ensembles par l'intermédiaire d'un bus série (USB HID, USB Bulk, SPI, I2C, Wireless, etc.), échangeant des données en utilisant l'un des 4 types de messages disponibles (message de Commande, Réponse, Alerte et Erreur).
   −
The protocol is designed to be flexible and extensible, with the only requirement being that '''individual messages are 20 bytes or smaller''', and that the first byte of every message is a one byte (U8) identifier that indicates the message type, which defines the format for the remainder of the payload.
+
Le protocole est conçu pour pour être flexible et extensible, avec le seule exigence d'avoir '''des messages individuel de maximum 20 octets''', et que le premier octet de chaque message est un octet/byte (U8) qui indique le type de message. Le type de message définit également le format du restant du paquet (''payload'').
    
=== Endianness ===
 
=== Endianness ===
[https://fr.wikipedia.org/wiki/Endianness#Big_endian Endianness] (''wikipedia'') est l'ordre dans lequel sont organiser les octets en mémoire et dans les communications lorsqu'ils transportent une informations qui doit être stocké une taille supérieure à 1 octet. C'est le cas des entiers qui se codent sur 16 ou 32 bits.
+
[https://fr.wikipedia.org/wiki/Endianness#Big_endian Endianness] (''wikipedia'') est l'ordre dans lequel sont organiser les octets en mémoire et dans les communications lorsqu'ils transportent une informations d'une taille supérieure à 1 octet. C'est le cas des entiers qui se codent sur 16 ou 32 bits.
   −
All values larger than 8-bits are encoded in little endian format. Any deviation from this rule should be clearly documented.
+
Dans le protocole SDEP, toutes les valeurs supérieures à 8-bits sont encodées avec le format ''little endian''. Toute déviance à cette règle doit être clairement documenté.
    
=== Indicateur du type de message ===
 
=== Indicateur du type de message ===
The first byte of every message is an 8-bit identifier called the '''Message Type Indicator''' en anglais. This value indicates the type of message being sent, and allows us to determine the format for the remainder of the message.
+
Le tout premier octet de chaque message est un identifiant 8 bits appelé '''Message Type Indicator''' en anglais. Cette valeur indique le type message envoyé et permet de déterminer le format du restant du message.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
| align="center" | Message Type
+
| align="center" | Type de message
 
| align="center" | ID (U8)
 
| align="center" | ID (U8)
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | Command
+
| align="left" | Commande
 
| align="left" | 0x10
 
| align="left" | 0x10
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | Response
+
| align="left" | Réponse
 
| align="left" | 0x20
 
| align="left" | 0x20
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | Alert
+
| align="left" | Alerte
 
| align="left" | 0x40
 
| align="left" | 0x40
 
|- style="font-size: 90%"
 
|- style="font-size: 90%"
| align="left" | Error
+
| align="left" | Erreur
 
| align="left" | 0x80
 
| align="left" | 0x80
 
|}
 
|}
    
=== Transactions de données SDEP ===
 
=== Transactions de données SDEP ===
Either connected device can initiate SDEP transactions, though certain transport protocols imposes restrictions on who can initiate a transfer. The master device, for example, always initiates transactions with Bluetooth Low Energy or USB, meaning that slave devices can only reply to incoming commands.
+
L'un ou l'autre des périphériques connectés peu initier un transaction SDEP. Néanmoins, certains protocoles de transport impose des restrictions concernant lequel "des périphériques" peut initier un transfert.  
 +
 
 +
Par exemple, le périphérique maître initie TOUJOURS les transactions avec le Bluetooth Low Energy ou USB, ce qui signifie que le périphérique esclave peut uniquement répondre au commandes entrantes.
   −
Every device that receives a '''Command Message''' must reply with a '''Response Message''', Error Message or Alert message.
+
Tous les périphérique recevenant un '''Message de Commande''' doit répondre avec un '''Message Réponse''', un Message d'Erreur ou un Message d'Alerte.
    
{{ambox|text=Cette partie du tutoriel est très technique et ne concernera, a priori, que quelques utilisateurs avancés. Vous pouvez poursuivre votre lecture directement sur tutoriel d'Adafruit}}
 
{{ambox|text=Cette partie du tutoriel est très technique et ne concernera, a priori, que quelques utilisateurs avancés. Vous pouvez poursuivre votre lecture directement sur tutoriel d'Adafruit}}
   −
Poursuivre votre lecture sur [https://learn.adafruit.com/adafruit-bluefruit-le-shield/sdep-spi-data-transport#sdep-data-transactions https://learn.adafruit.com/adafruit-bluefruit-le-shield/sdep-spi-data-transport#sdep-data-transactions]
+
Si cette partie du tutoriel vous intéresse, vous pouvez '''poursuivre votre lecture''' sur [https://learn.adafruit.com/adafruit-bluefruit-le-shield/sdep-spi-data-transport#sdep-data-transactions https://learn.adafruit.com/adafruit-bluefruit-le-shield/sdep-spi-data-transport#sdep-data-transactions]
    
{{Bluefruit-LE-Shield-TRAILER}}
 
{{Bluefruit-LE-Shield-TRAILER}}
29 918

modifications

Menu de navigation