【Réimprimé】 série8250

1 Identification du type de port série 8250
Intel HW utilise DesignWare 8250:
drivers / mfd / intel-lpss-pci.c
drivers / tty / serial / 8250 / 8250_dw.c

Les 2 bits supérieurs du registre IIR, bit7 et bit6, sont utilisés pour identifier le port série 8250 taper:
0 à -8250, sans la FIFO
0 - et il SCR (registre de Scratch) enregistrer, 16450, sans la FIFO
2-16550
3 - 16550A.

Figure 1-1 de l'UART à la table de conversion de Port registre

2
Les 5, 6 et 7 du port série 16450 (l'automate Mitsubishi est un bit de données de 7 bits) et la longueur de données de 8 bits: cela signifie que seuls les 5, 6, 7 et 8 bits inférieurs correspondant à chaque octet sont pris, et les bits de bits restants sont rejetés

UART8250 / UART16450: 164 = 82 x 2, 16450 est une version améliorée du

débit en bauds VCP USB 8250 peut être définie arbitrairement, le débit de transmission est limité par le débit USB; si l'autre extrémité du VCP est un véritable port série physique, vous devez définir le débit en bauds.

Pilote 16450:
QNX: devc-serpci
Linux: pilotes / tty / série / 8250 / 8250_dw.c

3 16550A
3.1 Caractéristiques de base
1) 16550A-2 FIFO 16 octets, un envoi, un réception
2) Prise en charge RX 1, 4, 8, 14 au total 4 niveaux de déclenchement FIFO
3) TTY_BUFFER_PAGE-> correspond à tty_buffer
4) #define N_TTY_BUF_SIZE 4096-> read_buf correspondant au ldisc

3.2 UART 16550 core
UART 16550 core
https://opencores.org/projects/uart16550

3.3 URLs
https://sourceforge.net/p/ftdi-usb-sio/patches/5/

4 uart_port
4.1 Concepts de base
Le uart_port est analogue au port d'un concentrateur USB, sauf que chaque uart_port aura un pilote; et le port du concentrateur USB est un pilote de concentrateur commun.

4.2
Pilotes de carte de communication industrielle PCI / tty / série / 8250 / 8250_pci.c

Il y a plusieurs ports série 8250 sur une carte PCI, comment trouver l'adresse de base de chaque port série:
-PCI BAR0 à BAR3 correspond à ttyS0 à ttyS3, généralement utilisé Carte série PCI fabriquée par un tiers
-PCI implémente plusieurs fonctions, chaque fonction correspond à un port série; Intel par défaut

4,3 TL16C554A
C signifie processus CMOS, le dernier numéro 4 signifie 4 ports, 4 ports basés sur 16550A

4.4 URL
basées sur S3C2440 et intégrées conception SIO étendu Linux
http://m.eccn.com/consultation/design/2011080310024077.html

5 gestion des interruptions
5.1 numéro d' interruption série détecte automatiquement
probe_irq_on ()
probejrq_off ()

5.2 ralenti et briser interruption des
interruptions de repos et pause: interruption est inactif Après avoir reçu des données, un état de haut niveau (inactif) octet déclenchera une interruption inactive. Il n'est pas toujours inactif, il sera toujours interrompu. Il devrait être exactement un octet après le front montant (bit d'arrêt). S'il est toujours faible, il ne déclenchera pas l'interruption inactive et déclenchera l'interruption de pause.

6 FIFO et DMA
6.1 8250 RX FIFO niveau de déclenchement
16550A et Tegra: 1, 4, 8 ou 14 octets
16650V2: 8, 16, 24 ou 28 octets
16654: 8, 16, 56 ou 60 octets
16750: 1, 16, 32 ou 56 octets

écho 4> / sys / class / tty / ttyS0 / rx_trig_bytes

6.2 Afficher le débordement RX
cat / proc / tty / driver / serial

6.3 8250 Le DMA
reçoit une interruption de délai d'expiration des données de longueur variable: UART_IIR_RX_TIMEOUT

6.4 URLs
serial: 8250: Évitez "trop ​​de travail" de la fausse interruption de délai rx
https://lore.kernel.org/patchwork/patch/744611/

7 Outils
7.1 Contrôler diverses propriétés du port série
busybox stty -F / dev / ttyS0 -a
busybox setserial -a / dev / ttyS0

busybox
https: // busybox. net / téléchargements / binaires / 1.28.1-defconfig-multiarch /

7.2 strace
lsof | grep / dev / ttyS0
busybox fusion / dev / ttyS0
LS -L / proc / 2848 / fd | grep / dev / ttyS0
strace -p $ PID -tt -T -x -f = lire la trace -e -e read = $ FD
pris lecture du port série physique (), Strace doit porter le paramètre -f, sinon les données de read () ne seront pas capturées

8 Pourquoi le nombre de bits de données UART est 5 ~ 8 facultatif
8.1 La source historique est
sur le téléscripteur, seulement 26 lettres ont été passées à l'époque ce code binaire 5 bits tant que 32 caractères peuvent être transmis, donc cinq assez, après une autre à six points sur le cas, l'ordinateur sera utilisé par le code ASCII de sept à
cause de chaîne plus la ligne médiane de communication au moment où la vitesse de transmission téléscripteur est très faible, il sera en mesure de passer un peu plus vite et un peu

8,2 1 et 0, et ESPACE MARQUE 
invention téléscripteur lorsque Il n'y a pas de tube cathodique, sans parler d'un ordinateur. A ce moment-là, pour envoyer un message, commencez par perforer la bande de papier avec une poinçonneuse, les données 1 sont perforées, appelées MARK, 0 ne sont pas perforées, appelées ESPACE, puis envoyez le signal avec un lecteur de papier. Après avoir reçu le signal, le récepteur frappe d'abord la bande de papier, puis la bande de papier pénètre dans le décodeur pour que la machine à écrire imprime les mots pertinents.

8.3
Introduction aux URL Communication RTTY
http://blog.sina.cn/dpool/blog/s/blog_5b9bc1120100tcbq.html Le
téléscripteur de 1915 a saisi le code Morkrum, à l'origine de la transmission de données radioélectriques précoces
http://mini.eastday.com /bdmip/190615143756865.html

9 URL
Informations série UART
https://www.lammertbies.nl/comm/info/serial-uart

串行 数据 传输 .pdf
https://m.book118.com/html/2017/0504/104207215.shtm?from=mip

10 Abréviations
DLAB: Bit d'accès au verrou du diviseur
RDI: OMAP 8250 Réception des données Interruption de la
réinitialisation USB BH: Bigger Hammer ou Brad Hosler , 表示 réinitialisation à chaud ; vous pouvez comprendre pourquoi la spécification USB 3.0 appelle le même type de réinitialisation "réinitialisation à chaud" à certains endroits et "BH reset" dans d'autres endroits. La réinitialisation de "BH" est censée représenter la réinitialisation de "Big Hammer", mais elle signifie également "Brad Hosler". Brad est décédé peu de temps après le début de la spécification du bus USB 3.0, et ils ont décidé de lui donner le nom. La suggestion a été faite peu de temps avant la finalisation de la spécification, de sorte que le libellé est un peu incohérent
WHL: Python Wheel Package
Zadig: une application GUI d'installation de pilote automatique pour WinUSB, libusb-win32 et libusbK

De: serial8250

Publié 91 articles originaux · loué 17 · 50 000+ vues

1 Identification du type de port série 8250
Intel HW utilise DesignWare 8250:
drivers / mfd / intel-lpss-pci.c
drivers / tty / serial / 8250 / 8250_dw.c

Les 2 bits supérieurs du registre IIR, bit7 et bit6, sont utilisés pour identifier le port série 8250 taper:
0 à -8250, sans la FIFO
0 - et il SCR (registre de Scratch) enregistrer, 16450, sans la FIFO
2-16550
3 - 16550A.

Figure 1-1 de l'UART à la table de conversion de Port registre

Je suppose que tu aimes

Origine blog.csdn.net/qq_23327993/article/details/104840264
conseillé
Classement