Discussion:
¿Velocidad no estándar en puerto serie PC?
(demasiado antiguo para responder)
Mochuelo
2004-11-15 12:54:23 UTC
Permalink
¿Alguien ha conseguido configurar alguno de los puertos serie que
vienen incluidos en la placa base de un PC, para que funcione a una
velocidad de transmisión no estándar? Tengo un componente para Builder
6 que permite elegir cualquier "custom baudrate", pero por lo visto mi
hardware dice que nanai.

Imagino que alguna de esas placas que venden para añadir puertos serie
al ordenador lo permitirá, pero quería saber si alguien lo ha
conseguido con los puertos que vienen de fábrica.

Saludos.
Pepitof
2004-11-15 13:21:34 UTC
Permalink
Parece que en las placas modernas no se puede. Yo uso en Delphi un control
para comunicaciones por puerto serie, que permite también configurar
velocidades no estándar, y funcionaba perfectamente en el ordenador que
usaba antes, un Pentium 2, pero en este, un Pentium 4, no va. Si configuro
una velocidad rara, no devuelve error ni nada, pero en realidad la velocidad
se queda como estaba antes. En mi caso, sí que permite, en cambio, 256000
baudios y 512000 baudios, que parece considerarlas estándar.
En los dos usaba W2000, así que no parece tener que ver con el SO, y tampoco
creo que tenga que ver con el modelo de microprocesador, sino más bien con
la BIOS (no creo, por aquello de que no devuelva error) o con el chip que
integre las UARTs en la placa (esto me parece más posible, que el chip, si
recibe una palabra de configuración no válida la pase por alto sin más). Si
es así, es posible que con una placa I/O que integre una UART de otro modelo
sí funcione, pero es sólo una conjetura.
--
Saludos de Jose Manuel Garcia
***@terra.es
http://213.97.130.124
Post by Mochuelo
¿Alguien ha conseguido configurar alguno de los puertos serie que
vienen incluidos en la placa base de un PC, para que funcione a una
velocidad de transmisión no estándar? Tengo un componente para Builder
6 que permite elegir cualquier "custom baudrate", pero por lo visto mi
hardware dice que nanai.
Imagino que alguna de esas placas que venden para añadir puertos serie
al ordenador lo permitirá, pero quería saber si alguien lo ha
conseguido con los puertos que vienen de fábrica.
Saludos.
Eduardo
2004-11-15 14:12:31 UTC
Permalink
A que llamas "no standard" ? a velocidades tipo 7000bauds o a velocidades
superiores a 115200?
Si trabajas con NT, 2000 o XP el componente tendria que tener un driver
para hacerlo 'legalmente', si no probablemente le reboten el acceso al
puerto desde ring3, y funcion API para modos no standard no conozco. Si no
funciona con Win98 entonces el problema es de hardware.

Saludos.
Eduardo.
Post by Mochuelo
¿Alguien ha conseguido configurar alguno de los puertos serie que
vienen incluidos en la placa base de un PC, para que funcione a una
velocidad de transmisión no estándar? Tengo un componente para Builder
6 que permite elegir cualquier "custom baudrate", pero por lo visto mi
hardware dice que nanai.
Imagino que alguna de esas placas que venden para añadir puertos serie
al ordenador lo permitirá, pero quería saber si alguien lo ha
conseguido con los puertos que vienen de fábrica.
Saludos.
Mochuelo
2004-11-15 15:09:26 UTC
Permalink
Post by Eduardo
A que llamas "no standard" ? a velocidades tipo 7000bauds o a velocidades
superiores a 115200?
A lo primero.

El puerto serie de mi placa base admite {110, 300, [...], 38400,
57600, 115200, 230400, 460800 y 921600} baud/s, pero no admite
velocidades intermedias. Ya sé que cuantas más opciones dé, más
complejo es el hardware, pero me parece una lástima que, siendo los
números altos iguales a 921600/N, no ofrezca por ejemplo la
posibilidad 921600/5=184320 baud/s.
Post by Eduardo
Si trabajas con NT, 2000 o XP el componente tendria que tener un driver
para hacerlo 'legalmente', si no probablemente le reboten el acceso al
puerto desde ring3, y funcion API para modos no standard no conozco. Si no
funciona con Win98 entonces el problema es de hardware.
Uso XP, y el componente se llama WinSoft ComPort
(http://www.winsoft.sk/comport.htm). Lo he usado durante bastante
tiempo a velocidades estándar, pero ahora me habría ido bien una no
estándar. El componente claramente lo permite. Por culpa de tener que
ceñirme a una estándar, tengo que comunicarme a una velocidad bastante
menor que la que podría estar usando.

Saludos.
RF
2004-11-15 18:37:39 UTC
Permalink
Post by Mochuelo
Post by Eduardo
A que llamas "no standard" ? a velocidades tipo 7000bauds o a velocidades
superiores a 115200?
A lo primero.
En teoria podrias conseguir 6776.47058 baudios ó 7200 baudios,
pero no 7000 baudios.

En el chip original que se encarca de la UART de los pc, el
cristal era de 1.8432 MHz, y el integrado (8250, 16450, etc..)
tiene un registro donde le pones el divisor (que es multiplo
de 16).

Con las nuevas placas base, el chip de la UART esta integrado
dentro del chipset de la placa base. Suelen haber 2 chips, uno
que esta cerca de la CPU y se encarga de la memoria fundamentalmente,
y otro que esta mas alejado y es donde se suele encontrar la
UART.

Los PC tienen que guardar la compatibilidad hacia atras, así que
se siguen utilizando los mismos puertos para manejar este registro
(el DLAB, Divisor Latch Access Bit). Han salido nuevas
funcionalidades en los nuevos chipsets (permiten tasas mayores
de 115.200 baudios), pero hay ya no estoy tan al tanto de como
programarlos.

Esto sin contar para nada con el sistema operativo. Tendrias
que hacerte el programa tu mismo en msdos o w98.

Si quieres mas informacion:

http://www.beyondlogic.org/serial/serial.htm#14
http://www.lookrs232.com/rs232/dlab.htm

Saludos.
Nolo Pongo
2004-11-15 15:00:51 UTC
Permalink
Post by Mochuelo
¿Alguien ha conseguido configurar alguno de los puertos serie que
vienen incluidos en la placa base de un PC, para que funcione a una
velocidad de transmisión no estándar? Tengo un componente para Builder
6 que permite elegir cualquier "custom baudrate", pero por lo visto mi
hardware dice que nanai.
El chip que se usa (el inter noseque), o al menos se usaba
en los PC, permite cualquier velocidad hasta 115.200

Hace poco probe en un pentium 3 una velocidad no estandard
pero más baja que 115200, y funciono bien.

Luego hay aparatos que se conectan por usb y cuyo driver aparece
como un puerto serie virtual en el ordenador, estos permiten
velocidades mas altas, pero es todo ficticio porque todo es
una emulacion por software, no son un puerto serie de verdad.
Sir Graham
2004-11-18 13:52:26 UTC
Permalink
Hola,

He visto comentarios que te han echo y te explico mi experiencia (con ella
casi te puedo confirmar que el control que estas usando para el Builder es
caso seguro el ComPort gratuito).

El tema es el siguiente. Efectivamente se pueden usar baudrates diferentes a
los standars, pero por limitaciones de hadware estos no pueden ser los que
te de la gana. Estos tienen que coincidir con una divisibilidad del la
configuracion de la UART.

Por otra parte el Windows es muy puñetero. Ten cuidado por que el API de la
familia NT (NT,2000,XP) para la puerta serie (manejo de streams, ficheros)
tiene diferentes resultados que en Win98/97ME. Esto lo puedes comprobar
facilmente si te haces un pequeño ejemplo del prueba con la libreria de
comunicaciones. El XP esta mucho mas reducido a la hora de poder selecciona
el ratio que quieras...

Saludos,
Sir Graham.
http://www.endorasoft.es
Post by Mochuelo
¿Alguien ha conseguido configurar alguno de los puertos serie que
vienen incluidos en la placa base de un PC, para que funcione a una
velocidad de transmisión no estándar? Tengo un componente para Builder
6 que permite elegir cualquier "custom baudrate", pero por lo visto mi
hardware dice que nanai.
Imagino que alguna de esas placas que venden para añadir puertos serie
al ordenador lo permitirá, pero quería saber si alguien lo ha
conseguido con los puertos que vienen de fábrica.
Saludos.
Mochuelo
2004-11-19 12:07:05 UTC
Permalink
Post by Sir Graham
Hola,
He visto comentarios que te han echo y te explico mi experiencia (con ella
casi te puedo confirmar que el control que estas usando para el Builder es
caso seguro el ComPort gratuito).
No, es el de pago. Y tengo la última versión, porque me las van
enviando. Lo compramos a mi nombre en una empresa en la que estuve.
Post by Sir Graham
El tema es el siguiente. Efectivamente se pueden usar baudrates diferentes a
los standars, pero por limitaciones de hadware estos no pueden ser los que
te de la gana. Estos tienen que coincidir con una divisibilidad del la
configuracion de la UART.
Ya, ya sé que no puede ser el que me dé la gana. Pero es una lástima
que admita varias velocidades que son 921600/N baud/s, pero que no
admita por ejemplo 921600/5=184320 baud/s.
Post by Sir Graham
Por otra parte el Windows es muy puñetero. Ten cuidado por que el API de la
familia NT (NT,2000,XP) para la puerta serie (manejo de streams, ficheros)
tiene diferentes resultados que en Win98/97ME. Esto lo puedes comprobar
facilmente si te haces un pequeño ejemplo del prueba con la libreria de
comunicaciones. El XP esta mucho mas reducido a la hora de poder selecciona
el ratio que quieras...
Eso parece. Sin embargo, le tengo echado el ojo al "SerialPort" que
incluye Visual Studio 2005. He estado trasteando con él, y parece
admitir también (casi) cualquier baud rate. Cuando pueda, lo pruebo.

Al final, 57600 baud/s me va bastante bien (para comunicar un ATmega48
corriendo a 8 MHz --mal número para generar baud rates estándares--
con un PC). Dentro del ATmega, construí una cola circular de salida
(FIFO) de 64 bytes, para que envíos de un número pequeño de bytes no
ralentizaran el curso normal del código. Funciona de lujo. Ninguna
ráfaga de las que envía tiene más de 64 bytes, o sea que visto desde
la MCU, el canal de salida tiene una velocidad altísima. Luego, por el
cable serie, van saliendo a 57600 baud/s cuando les vaya tocando
(gestionado por interrupciones).

Hasta luego.
Post by Sir Graham
Saludos,
Sir Graham.
http://www.endorasoft.es
Nolo Pongo
2004-11-20 09:41:21 UTC
Permalink
Post by Mochuelo
Post by Sir Graham
casi te puedo confirmar que el control que estas usando para el Builder es
caso seguro el ComPort gratuito).
No, es el de pago. Y tengo la última versión, porque me las van
enviando. Lo compramos a mi nombre en una empresa en la que estuve.
Si se trata de Borland Builder C++, creo que
lo mejor es usar directamente el API, a
lo sumo recubriendo el API con una clase C++.

El API es sencillo de usar, te da acceso a todo
lo que quieras hacer con el puerto serie, no tienes
que cargar con componentes de terceros, etc...
GasparV
2004-11-20 16:15:36 UTC
Permalink
Post by Mochuelo
Pero es una lástima
que admita varias velocidades que son 921600/N baud/s ..
A ver, a ver, no existe el baudio por segundo. Te estás confundiendo
con el bps.



Un saludo a todos!
http://saludos.de/gaspar
Mochuelo
2004-11-22 00:28:07 UTC
Permalink
On Sat, 20 Nov 2004 17:15:36 +0100, GasparV
Post by GasparV
Post by Mochuelo
Pero es una lástima
que admita varias velocidades que son 921600/N baud/s ..
A ver, a ver, no existe el baudio por segundo.
Pues sí, se me fue el santo al cielo, y a demás varias veces :-)
Post by GasparV
Te estás confundiendo
con el bps.
No, tampoco es que lo confunda con los bits/segundo. Tenía que haber
escrito simplemente baudios.

Hasta luego.
Post by GasparV
Un saludo a todos!
http://saludos.de/gaspar
Mochuelo
2004-11-22 01:48:26 UTC
Permalink
Post by Mochuelo
On Sat, 20 Nov 2004 17:15:36 +0100, GasparV
Post by GasparV
Post by Mochuelo
Pero es una lástima
que admita varias velocidades que son 921600/N baud/s ..
A ver, a ver, no existe el baudio por segundo.
Y añado: no sé qué entiendes por que una unidad "exista" o no, pero se
puede hablar de cualquier unidad, o combinación de ellas, que te
puedas imaginar. El baudio por segundo también "existe" (aunque está
claro que no quería decir eso, sino simplemente baudio). Si yo mañana
diseño un sistema que transmite una ráfaga de símbolos a una velocidad
creciente (o decreciente), puedo hablar tranquilamente de los baudios
por segundo de mi sistema. Estaría hablando de símbolos/s^2, o de la
"aceleración" con que mi sistema transmitiría cada vez más (o menos)
símbolos por unidad de tiempo.

Usando una analogía, si la información fuera distancia recorrida, está
claro que no sólo oímos hablar de la velocidad (m/s). También la
aceleración (m/s^2). Por poder hablar, podríamos hablar incluso de
m/s^3, m/s^4, etc. Otra cosa es que las usemos mucho o poco
habitualmente. No porque la mayoría de los sistemas de comunicación
transmitan a una velocidad constante tenemos derecho a pensar que no
es válido el concepto de aceleración, en ese ámbito.

Espero que aclare algo.

Hasta otra.
Post by Mochuelo
Pues sí, se me fue el santo al cielo, y a demás varias veces :-)
GasparV
2004-11-22 16:23:50 UTC
Permalink
.. se puede hablar de cualquier unidad, o combinación de ellas, que te
puedas imaginar ..
Hombre, si te pones así, tengo que darte la razón. También existe el
Hz/s en los analizadores de espectro. Aceptada la re-corrección. Por
cierto, tu explicación sobre el baudio es perfecta. Hace mucho tiempo
ya que el baudio no es lo mismo que el ciclo por segundo. En la RAE
están anticuados, y lo comprendo, pero en este grupo hay que dar
ejemplo de exactitud.




Un saludo a todos!
http://saludos.de/gaspar

Continúe leyendo en narkive:
Loading...