【Reimpreso】 serial8250

1 Identificación del tipo de puerto serie 8250
Intel HW utiliza DesignWare 8250:
drivers / mfd / intel-lpss-pci.c
drivers / tty / serial / 8250 / 8250_dw.c

Los 2 bits superiores del registro IIR, bit7 y bit6, se utilizan para identificar el puerto serie 8250 escribir:
0--8.250, sin la FIFO
0 - y hay SCR (registro de Scratch) registrar, 16450, sin la FIFO
2 a 16.550
3 - 16550A.

Figura 1-1 de la UART a Port registro Tabla de conversión

2
Los 5, 6 y 7 del puerto serie 16450 (el PLC Mitsubishi es un bit de datos de 7 bits) y una longitud de datos de 8 bits: significa que solo se toman los 5, 6, 7 y 8 bits inferiores correspondientes a cada byte, y los bits de bit alto restantes se descartan

UART8250 / UART16450: 164 = 82 x 2, 16450 es una versión mejorada de la

velocidad en baudios del VCP USB 8250 que se puede establecer arbitrariamente, la velocidad de transmisión está limitada por la velocidad del USB; si el otro extremo del VCP es un puerto serie físico real, debe establecer la velocidad en baudios.

16450 driver:
QNX: devc-serpci
Linux: drivers / tty / serial / 8250 / 8250_dw.c

3 16550A
3.1 Características básicas
1) 16550A-2 FIFO de 16 bytes, un envío, uno recibe
2) Soporte RX 1, 4, 8, 14 en total 4 niveles de disparo FIFO
3) TTY_BUFFER_PAGE-> corresponde a tty_buffer
4) #define N_TTY_BUF_SIZE 4096-> read_buf correspondiente a 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 Conceptos básicos
El uart_port es análogo al puerto de un concentrador USB, excepto que cada uart_port tendrá un controlador; y el puerto del concentrador USB es un controlador de concentrador común.

4.2
Controladores de tarjeta de comunicación industrial PCI / tty / serial / 8250 / 8250_pci.c

Hay múltiples puertos serie 8250 en una tarjeta PCI, cómo encontrar la dirección base de cada puerto serie:
-PCI BAR0 a BAR3 corresponden a ttyS0 a ttyS3, generalmente utilizados Tarjeta serial PCI hecha por un tercero:
PCI implementa múltiples funciones, cada función corresponde a un puerto serie; Intel predeterminado

4.3 TL16C554A
C significa proceso CMOS, el último número 4 significa 4 puertos, 4 puertos basados ​​en 16550A

4.4 URLs
basados ​​en S3C2440 e integrados Diseño de puerto serie extendido de Linux
http://m.eccn.com/consultation/design/2011080310024077.html

5 Manejo de interrupciones
5.1 Número de interrupción del puerto serie detección automática
probe_irq_on ()
probe_irq_off ()

5.2 interrupción
inactiva y de interrupción inactiva e interrupción de interrupción: la interrupción inactiva es Después de recibir datos, un estado de byte de alto nivel (inactivo) activará una interrupción inactiva. No siempre está inactivo, siempre se interrumpirá. Debe ser exactamente un byte después del borde ascendente (bit de parada). Si siempre está bajo, no activará la interrupción inactiva y activará la interrupción de interrupción.

6 FIFO y DMA
6.1 8250 RX FIFO nivel de disparo
16550A y Tegra: 1, 4, 8 o 14 bytes
16650V2: 8, 16, 24 o 28 bytes
16654: 8, 16, 56 o 60 bytes
16750: 1, 16, 32 o 56 bytes

echo 4> / sys / class / tty / ttyS0 / rx_trig_bytes

6.2 Ver desbordamiento de RX
cat / proc / tty / driver / serial

6.3 8250 DMA
recibe interrupción de tiempo de espera de datos de longitud variable: UART_IIR_RX_TIMEOUT

6.4 URLs
serial: 8250: Evite "demasiado trabajo" de la interrupción de tiempo de espera de rx falso
https://lore.kernel.org/patchwork/patch/744611/

7 Herramientas
7.1 Controlar varias propiedades del puerto serie
busybox stty -F / dev / ttyS0 -a
busybox setserial -a / dev / ttyS0

busybox
https: // busybox. net / downloads / binaries / 1.28.1-defconfig-multiarch /

7.2 strace
lsof | grep / dev / ttyS0
fusor busybox / dev / ttyS0
LS -l / proc / 2848 / fd | grep / dev / ttyS0
strace -p $ PID -tt -T -f -x = leer la traza -e -e leer = $ FD
atrapados lectura puerto serie físico (), Strace debe llevar el parámetro -f, de lo contrario no se capturarán los datos de read ()

8 Por qué el número de bits de datos UART es 5 ~ 8 opcional
8.1 La fuente histórica está
en el teletipo, solo se pasaron 26 letras en el momento el código binario de 5 bits, siempre y cuando 32 caracteres se pueden transmitir, por lo que cinco suficiente, tras otro a seis puntos en el caso, el equipo será utilizado por el código ASCII de siete
debido a la cadena de Cuantos más dígitos haya en la comunicación de línea, más tiempo llevará. La velocidad en baudios es muy baja para los teletipos, por lo que si se transmite un poco menos, se transmitirá un poco más rápido.

8. 1 y 0. Cuando
se inventaron los teletipos MARCA y ESPACIO  No hay un tubo de rayos catódicos, y mucho menos una computadora. En ese momento, para enviar un mensaje, primero pegue la cinta de papel con una máquina perforadora, los datos 1 se perforan, se llaman MARK, 0 no se perforan, se llaman ESPACIO, luego envíe la señal con un lector de papel. Después de recibir la señal, el receptor primero perfora la cinta de papel y luego la cinta de papel ingresa al decodificador para hacer que la máquina de escribir imprima las palabras relevantes.

8.3
Introducción a las URL Comunicación RTTY
http://blog.sina.cn/dpool/blog/s/blog_5b9bc1120100tcbq.html El
teletipo de 1915 ingresó el código de Morkrum, el creador de la transmisión temprana de datos por radio
http://mini.eastday.com /bdmip/190615143756865.html

9 URL
Información serie UART
https://www.lammertbies.nl/comm/info/serial-uart

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

10 Abreviaturas
DLAB: Bit de acceso de enganche de divisor
RDI: OMAP 8250 Recibir interrupción de datos
Restablecimiento de USB BH: Bigger Hammer o Brad Hosler, 表示 restablecimiento en caliente reset puede estar confundido por qué la especificación USB 3.0 llama al mismo tipo de restablecimiento "restablecimiento en caliente" en algunos lugares y "BH reset" en otros lugares. Se supone que el reinicio "BH" significa reinicio "Big Hammer", pero también significa "Brad Hosler". Brad murió poco después de que se iniciara la especificación del bus USB 3.0, y decidieron nombrar el reinicio después de él. La sugerencia se realizó poco antes de que se finalizara la especificación, por lo que la redacción es un poco inconsistente
WHL : Python Wheel Package
Zadig : una aplicación GUI del instalador de controladores automatizados para WinUSB, libusb-win32 y libusbK

De: serial8250

91 artículos originales publicados · 17 elogiados · 50,000+ vistas

1 Identificación del tipo de puerto serie 8250
Intel HW utiliza DesignWare 8250:
drivers / mfd / intel-lpss-pci.c
drivers / tty / serial / 8250 / 8250_dw.c

Los 2 bits superiores del registro IIR, bit7 y bit6, se utilizan para identificar el puerto serie 8250 escribir:
0--8.250, sin la FIFO
0 - y hay SCR (registro de Scratch) registrar, 16450, sin la FIFO
2 a 16.550
3 - 16550A.

Figura 1-1 de la UART a Port registro Tabla de conversión

Supongo que te gusta

Origin blog.csdn.net/qq_23327993/article/details/104840264
Recomendado
Clasificación