Le microcontrôleur est limité par son support de stockage et ne peut pas traiter davantage les données envoyées et reçues. Par conséquent, dans les applications nécessitant un traitement supplémentaire de grandes quantités de données, il est nécessaire de recourir aux puissantes capacités de traitement des micro-ordinateurs. Il faut ainsi assurer une transmission fiable des données entre le microcontrôleur PIC et le micro-ordinateur grâce à des circuits de communication. Le microcontrôleur PIC16F876 ne dispose pas de port série, mais il intègre deux types différents de modules de communication série, à savoir le module USART (récepteur-émetteur universel synchrone/asynchrone) et le port série synchrone maître (MSSP). Étant donné que les ports série des PC sont tous des structures RS-232 à neuf broches, l’interface série du PC est une interface standard de bus externe conforme à la spécification EIA RS-232C. La norme RS-232C utilise une logique négative, c’est-à-dire que le “ 1 ” logique correspond à -5 V ~ -15 V et le “ 0 ” logique à 5 V ~ 15 V. Au niveau CMOS, le “ 1 ” logique correspond à 4,99 V et le “ 0 ” logique à 0,01 V ; au niveau TTL, le “ 1 ” logique correspond à 2,4 V et le “ 0 ” logique à 0,4 V. Par conséquent, lors de l’utilisation du bus RS-232C pour la communication série, un circuit externe est nécessaire pour assurer la conversion de niveau. Le circuit d’attaque est utilisé côté émetteur pour convertir le niveau TTL ou CMOS en niveau RS-232C, tandis que le circuit récepteur est utilisé côté récepteur pour convertir le niveau RS-232C en niveau TTL ou CMOS [2].
Le MAX232CPE de la société MAXIM a été choisi ici pour la conversion de niveau. Le MAX232CPE est une puce de commande universelle de réception/transmission série de la société MAXIM. Elle sert à assurer la conversion de niveau nécessaire au protocole de handshake lorsque le microcontrôleur et le PC échangent des données. Le circuit périphérique du MAXIM232 est très simple. Il suffit de connecter quelques condensateurs externes de 0,1 μF. Les résistances de protection entre les étiquettes de réseau identiques sont toutes de 330 Ω. Par conséquent, nous utilisons principalement l'USART en mode de transmission asynchrone. De plus, la communication série doit être mise en œuvre à l’aide de modules de communication existants et combinée à un logiciel de communication conçu par nos soins.

Le cœur de l'émetteur asynchrone USAR est constitué du registre à décalage d'émission TSR et du tampon d'émission TXREG. Le TXREG est directement connecté au bus de données interne et est un registre lisible et modifiable par logiciel. Le programme utilisateur écrit les données à envoyer dans TXREG, puis le matériel gère automatiquement le chargement des données depuis TIREG vers le TSR (si le mode 9 bits est sélectionné), et les combine avec le bit TX9D provenant de TXSTA pour former des données sur 9 bits ; puis ajoute automatiquement un bit de départ 0 au début et un bit d’arrêt 1 à la fin pour former une structure de trame complète : enfin, sous le contrôle de l’horloge de débit en bauds et du registre à décalage TSR, les données sont transmises bit par bit, achevant ainsi la conversion “ parallèle-série ”.
Le TSR attend que le bit d'arrêt des données en cours d'envoi soit transmis avant de charger les nouvelles données de transmission provenant du TXREG. Une fois que le TXREG a envoyé les données au TSR, le registre TXREG est libéré et, simultanément, le bit d'interruption de transmission TXIF est mis à 1, ce qui envoie une demande d'interruption à l'unité centrale. Bien que le bit d’activation d’interruption de transmission TXIE détermine si le processeur répond à l’interruption, TXIF sera automatiquement mis à 1 tant que TXREG est libéré. De plus, le matériel ne réinitialise automatiquement TXIF qu’après l’écriture de nouvelles données de transmission dans le registre TXREG. 0. Par conséquent, cela nous offre également de nouvelles idées et possibilités pour utiliser des moyens logiciels afin d’évaluer l’état de fonctionnement.
Le cœur du récepteur asynchrone USART est constitué du registre à décalage de réception RSR et du registre de réception RCREG. Les données série asynchrones envoyées par le correspondant sont entrées via la broche RC7/RX/DT ; sous le contrôle du signal de synchronisation d’échantillonnage fourni par le générateur de débit en bauds, le circuit de détection et de récupération des données échantillonne la forme d’onde du signal d’entrée. Afin de rétablir la forme d’origine des données ; ensuite, sous le contrôle de l’impulsion d’horloge de décalage fournie par le générateur de débit en bauds, les données série récupérées, ainsi que le bit de départ et le bit d’arrêt, sont transférées pas à pas dans le registre RSR.
Tant que le bit d'arrêt est échantillonné, le registre à décalage de réception RSR charge les données reçues de 8 bits dans le registre de réception RCREG (si RCREG est vide) ; et charge le 9e bit (le cas échéant) dans le bit RX9D ; ce qui achève simultanément la conversion “ série-parallèle ” ; le bit d’indicateur de demande d’interruption de réception RCIF est mis à 1 pour signaler à l’unité centrale (CPU) de lire les données contenues dans le registre de réception RCREG ainsi que le 9e bit RX9D. Lors de la conception logicielle, la donnée du 9e bit est analysée (caractérisée) en fonction de ses propriétés (où 1 représente le code d’adresse et 0 le code de données) afin de mettre en œuvre le traitement correspondant.
Parmi ceux-ci, le RCREG est un registre à double tampon doté d'une structure à deux niveaux de file d'attente de type « premier entré, premier sorti » (FIFO). De même, le bit RX9D présente également une structure de niveau 2. Cela permet donc au registre à décalage de recevoir deux trames de données consécutives et de les charger dans la file d'attente pour les mettre en mémoire tampon, après quoi la troisième trame de données peut être décalée dans le registre RSR.
Mots clés : transmission de données sans fil