UART
ChristianDupaty
BTSSystèmesNumériques
LycéeFourcade‐Gardanne
Académied’AixMarseille
RASPBERRYPIetPYTHON:UART 
BTS systèmes numériques http://genelaix.free.fr2/5
1) TP:UART:
Lescommunicationsasynchrones(sanshorloge)nécessitentuneresynchronisationsystématiquelorsde
l’émissiond’unoctet.L’octetestencadréd’unbitdestartetd’unbitdestop.Lebitdestartindiqueledébut
delatransmission(ilpeutarrivern’importequandpuisqu’elleestasynchrone)etpermetaurécepteurdese
resynchroniser.CeprotocoleassociéàuncodeNRZ(nonreturntozero)apermisdedévelopperlesnormes
EIA232(souventappeléeRS232),EIA485,EIA422.
Lescommunicationsasynchronessontutiliséespourleslonguesdistances(Ethernet,téléphonie)mais
égalementenintercircuit.Lelogiciel«terminalASCII»assuretrèssimplementleséchangesavecuncircuit
intégréouunautreordinateurenASCIIàtraversunecommunicationasynchrone.
Trameasynchrone(lebitdeparitén’estgénéralementpasemployé):
©jeromeabel.net
TrameRS232(NRZ):leniveaulogique1estunetensionnégative,leniveaulogique0unetensionpositive.
©wikimedia.org

Quelquesmodulesnécessitantl’utilisationdel’UARTduRaspberryPi.
ModuleWIFIMicrochipRN171XV
ModuleXBEEMaxstreamXBP24AWI001
TélémètreultrasonMSEZ1
RASPBERRYPIetPYTHON:UART 
BTS systèmes numériques http://genelaix.free.fr3/5
LesUART(UniversalAsynchronousReceiverTransmitter)assurentl’émissionetlaréceptionasynchrone.
SurleRaspberryPi,lesniveauxsont0v,3.3v
TXD:PortGPIO14(broche8)
RXD:PortGPIO15(broche10)
LeTPmetenœuvrerapidementetsimplementunecommunicationfilaireasynchroneentreunPCetla
RaspberryPi.Lesordinateursmodernesn’étantpluséquipésdeportsRS232,ilestnécessaired’utiliserun
petitconvertisseurUSBsérieasynchrone.
ParexempleunecarteFTDI:https://www.sparkfun.com/products/9873
(installerledriverFTDIsurlePC)puisrelier:
TXD(RPi)versRXD(FTDI)(important,leslignesRXTXdoiventêtrecroisées)
RXD(RPi)versTXD(FTDI)
GND(Pi)versGND(FTDI)
NEPASCONNECTERL’ALIMENTATION3.3vDUFTDIAVECRASPBERRYPI

RASPBERRYPIetPYTHON:UART 
BTS systèmes numériques http://genelaix.free.fr4/5
Pardéfautl’UARTduRaspberryPisertdeportdedébugpourLinux.
Pouressayercettefonctionnalité(avantdeladésactiverafindecontrôlerl’UARTparunprogrammePython),
configurerunterminalASCII(HyperTerminalouTerminal19b)115200Bauds,8bits,1stop,Noparity,pasde
protocoleHandshake.
Lelogicielterminal19besttéléchargeableicihttps://sites.google.com/site/terminalbpp/
Libérerl’UARTdumodedebug
Empêcherl’émissiondemessagesduKerneletl’activationdumodedebuggingsurl’UART
Sudo nano /boot/cmdline.txt
Supprimer : console=ttyAMA0,115200 kgdboc=ttyAMA0,115200
Enregistrer
Désactiverlademandedeconnexionaprèsleboot
Sudo nano /etc/inittab
Commenter la derniere ligne en joutant un # :
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Enregistrer
Redémarrer: sudo reboot now
/dev/ttyAMA0 estmaintenantunportLinuxlibre

RASPBERRYPIetPYTHON:UART 
BTS systèmes numériques http://genelaix.free.fr5/5
TestdeconnexionavecunPCparliaisonsérie
RécupérerlabibliothèquePython
sudo apt-get install python-serial
Fichierdedemo:demoUART.py
import serial
port = serial.Serial("/dev/ttyAMA0", baudrate=115200, timeout=3.0)
# le programme redemarre toutes les 3s
while True:
port.write("\r\nEcrire quelque chose:")
rcv = port.read(10) # lit 10 caracteres
port.write("\r\nVous avez ecrit :" + repr(rcv))
# l’appel de la function repr() n’est pas indispensable
Autreexemple
import serial
port = serial.Serial("/dev/ttyAMA0", baudrate=115200, timeout=3.0)
# le programme redemarre toutes les 3s
while True:
port.write("\r\nEcrire quelque chose:")
rcv = readline() # lit jusqu a CRLF
port.write("\r\nVous avez ecrit :" + repr(rcv))
# l’appel de la function repr() n’est pas indispensable
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !