Todo lo que necesitas saber sobre tecnología

Etiqueta: tipo:departamentos

El radioaficionado portátil más pirateable hasta el momento

El radioaficionado portátil más pirateable hasta el momento


Muy bien, hora de confesarse. No uso mi radioaficionado portátil para mucho más que escuchar a escondidas al despachador del metro cuando mi tren se detiene misteriosamente en un túnel oscuro. Pero ni siquiera yo pude evitar escuchar los rumores que rodean a una nueva computadora de mano, la UV-K5 de Quansheng. Me llamó la atención en parte porque durante más de una década, Baofeng ha sido el nombre de las computadoras de mano chinas. En 2012, Baofeng causó sensación con su radio UV-5R, revolucionando el adormecido mercado de los transceptores portátiles. Antes del 5R, el precio del dispositivo portátil VHF/UHF más barato era un poco superior a los 100 dólares estadounidenses. El 5R se vendió por entre un cuarto y un tercio de esa cifra. Hams se quejó del rendimiento mediocre técnico del 5R y luego compró un par de todos modos, para tener siempre una radio en su automóvil o lugar de trabajo. Ahora es Quansheng el que está causando sensación. El UV-K5, lanzado el año pasado, podría ser el dispositivo portátil más pirateable jamás creado, con un pequeño ejército de radioaficionados dedicados que añaden una serie de mejoras basadas en software y nuevas funciones. Tenía que tener uno, y después de 30 dólares lo tuve. Al igual que el 5R de Baofeng, el K5 de Quansheng como transceptor de radio está bien. (Estoy usando K5 aquí para referirme tanto al K5 original como al nuevo modelo K5(8).) La distinción técnica clave entre el 5R y el K5 es una elección de diseño aparentemente menor. Con el 5R de Baofeng, el firmware reside en la memoria de sólo lectura. Pero Quansheng almacena el firmware del K5 en la memoria flash y hace posible reescribir esa memoria con el mismo cable de programación USB utilizado para asignar frecuencias a canales preestablecidos. Esta característica ha abierto la puerta a mejoras en el K5 que van mucho más allá de lo que ofrece Quansheng. De la caja. Con suerte, este diseño inspirará a otros fabricantes de radio a ofrecer más soporte a los modders, lo que a su vez traerá más innovación a las bandas de radio VHF y UHF. Quansheng probablemente pensó en su diseño únicamente en términos de corregir errores de software o ajustarse a cambios regulatorios: ofrece una herramienta de instalación gratuita para cargar versiones de firmware oficiales a la radio. Pero la perspectiva de una radio actualizable planteaba una tentación irresistible para que la gente comenzara a realizar ingeniería inversa en el firmware y el hardware para poder intentar escribir su propio código. Las modificaciones hasta la fecha generalmente han tomado la forma de parches al firmware oficial, en lugar de reescrituras al por mayor. Dado que el firmware oficial ocupa la mayor parte de los 64 kilobytes de memoria flash de la radio, dichas modificaciones deben caber en menos de 3 KB. Y la CPU no está repleta de potencia informática: es un procesador basado en ARM de 32 bits y 48 megahercios con 8 KB de RAM. No obstante, los resultados me parecieron impresionantes. Por ejemplo, un mod instala un analizador de espectro gráfico bastante sofisticado: puede ajustar el ancho de banda, establecer un umbral para sintonizar automáticamente los picos detectados y especificar frecuencias a ignorar, entre otras cosas. Otro mod te permite intercambiar mensajes de texto entre K5. Otras modificaciones mejoran la capacidad del K5 para recibir señales AM, lo que significa que puedes, por ejemplo, escuchar bandas de aviación con mayor claridad. Y hay muchas pequeñas modificaciones divertidas que hacen cosas como cambiar las fuentes del sistema o reemplazar el mensaje de inicio con una imagen lineal de su elección. El firmware actualizable presentaba una tentación irresistible para que la gente comenzara a realizar ingeniería inversa… Instalar muchas de Estas modificaciones son ridículamente fáciles. Normalmente, en este punto de un artículo práctico que involucra piratear algunos dispositivos electrónicos de consumo, las cosas se vuelven bastante heroicas cuando juego con el hardware o desentraño un enigma de instalación de software. Pero esta vez no. Un modder conocido como whosmatt ha creado un parche/actualizador basado en la web para el K5 que le permite elegir una selección de modificaciones de un menú. Luego los combina con el firmware oficial para crear una imagen personalizada para cargar (siempre que no excedas la cantidad total de memoria). De hecho, si estás usando Chrome, Edge u Opera, no Incluso es necesario utilizar el instalador de Quansheng para cargar el firmware: puede actualizar la memoria flash de la radio directamente desde el navegador a través de la API Web Serial incorporada y el cable de programación USB. (Las instrucciones dicen que esto funcionará sólo en Linux y Windows, pero también pude hacerlo usando una Mac). Sin embargo, a Web Serial le vendría bien un mejor manejo de errores. El primer cable de programación USB que utilicé era un poco defectuoso, pero mientras el instalador de Quansheng se detenía y señalaba un error de comunicación con una carga fallida, Web Serial fallaba silenciosamente y se llevaba consigo todo el sistema operativo Windows. Hay incluso más modificaciones de K5 disponibles que las que hay en el parche en línea de Whosmatt. Si quieres jugar con ellos o empezar a escribir tus propios mods, existen cadenas de herramientas basadas en Python para ayudarte. Este diagrama de bloques del UV-K5 se basa en el trabajo de Phil McAllen. Los radioaficionados han realizado ingeniería inversa en muchos detalles del hardware y software de la radio. James Provost Por supuesto, permitir la modificación sin restricciones del transceptor del K5 plantea la posibilidad de abuso. Por ejemplo, el firmware Quansheng bloquea la transmisión en la banda de aviación para evitar interferencias ilegales y peligrosas. Pero este bloqueo se puede eliminar con un parche (aunque para ser una amenaza importante, probablemente necesitarías un amplificador para aumentar la señal de 5 vatios del K5). Sin embargo, los radioaficionados siempre han tenido la capacidad de comportarse mal, con o sin firmware. bloques. Dichos bloqueos son convenientes para protegerse contra abusos accidentales, pero la verdad es que a menos que las señales problemáticas sean lo suficientemente persistentes como para permitir que se triangule la ubicación de un transmisor, la radioafición debe seguir dependiendo de un sistema de honor, ya sea que eso signifique no interferir el televisor de un vecino o transmitir en frecuencias prohibidas. Muchos de los usos más interesantes de la radioafición hoy en día implican el procesamiento digital, y ese procesamiento normalmente se realiza utilizando una computadora conectada a un transceptor. Con controladores integrados cada vez más potentes, la escena de modificación del K5 apunta hacia un futuro en el que se realizará más procesamiento en la radio y en el que se podrán agregar nuevas funciones de la misma manera que se agregan aplicaciones a los teléfonos inteligentes. ¡Esperamos que los fabricantes adopten ese futuro!

Source link

Construya el reloj de cuarzo DIY más preciso hasta el momento


La sincronización precisa es algo que siempre me ha interesado. Hoy en día dependemos en gran medida del tiempo que nos llega a través de Internet, a través de ondas de radio de satélites GPS o estaciones de transmisión. Pero quería un reloj que mantuviera un tiempo excelente sin depender del mundo exterior; sin duda, algo mejor que el tiempo proporcionado por el oscilador de cristal de cuarzo utilizado en un reloj digital o microcontrolador típico, que puede variar aproximadamente 1,7 segundos por día, o más. 10 minutos en el transcurso de un año. Por supuesto, podría comprar un reloj atómico, es decir, uno con un oscilador de rubidio en su interior, del tipo que se utiliza a bordo de los satélites GPS. (No del tipo que se comercializa como “reloj atómico”, sino uno que en realidad depende de captar señales horarias de radio). Los relojes de rubidio proporcionan una precisión increíble, pero cuestan miles de dólares estadounidenses. Necesitaba algo intermedio, y la salvación la encontré en la forma del oscilador de cristal controlado por horno, invariablemente conocido como OCXO por razones históricas. Con uno de estos, podría construir mi propio reloj por alrededor de 200 dólares, y uno que es aproximadamente 200 veces más preciso que un reloj de cuarzo típico. Los cambios de temperatura son la mayor fuente de error en los osciladores de cristal convencionales. Hacen que el cuarzo se expanda o contraiga, lo que altera su frecuencia de resonancia. Una solución es realizar un seguimiento de la temperatura y compensar los cambios de frecuencia. Pero sería mejor no tener el cambio de frecuencia en primer lugar, y aquí es donde entra en juego el OCXO. La placa de circuito impreso [center] Se puede cortar en dos piezas, con los componentes relacionados con la sincronización montados en la sección inferior y los componentes de control y visualización montados en la sección superior. James Provost El OCXO mantiene el cristal a una temperatura constante. Para evitar la complejidad de tener que calentar y enfriar un cristal en respuesta a las fluctuaciones ambientales, el cristal se mantiene calentado cerca de 80 °C aproximadamente, muy por encima de cualquier temperatura ambiental que probablemente experimente. En el pasado, los OCXO consumían mucha energía y eran voluminosos o caros, pero en los últimos años han aparecido versiones en miniatura que son mucho más baratas y consumen mucha menos energía. El Raltron OCXO que elegí para mi reloj cuesta 58 dólares, funciona a 3,3 voltios y consume 400 miliamperios en funcionamiento en estado estable. El OCXO resuena a 10 megahercios. En mi reloj, esta señal se envía a un contador de 4 bits, que emite un pulso cada vez que cuenta de 0000 a 1111 en binario, dividiendo efectivamente la señal de 10 MHz por 16. Esta señal de 625 kilohercios (kHz) luego impulsa un temporizador de hardware en un microcontrolador Arduino Nano, que activa una interrupción del programa cada décima de segundo para actualizar la base de tiempo del reloj. (Los detalles completos sobre cómo funcionan la cadena de sincronización y el software están disponibles en una publicación adjunta en el sitio web de IEEE Spectrum, junto con una lista de materiales y archivos de la placa de circuito impreso). Un controlador giratorio conectado directamente al Nano le permite configurar la hora. Nano realiza un seguimiento del tiempo, avanza segundos, minutos y horas, y también controla la pantalla. Esta pantalla se crea utilizando seis “CharliePlex FeatherWings” de Adafruit, que son matrices de LED de 15 por 7 con brillo controlable que vienen en una variedad de colores. Cada uno se controla mediante el protocolo de bus serie direccionable I2C. Surge un problema porque un CharliePlex está cableado para tener solo una de dos direcciones I2C posibles, lo que hace imposible direccionar seis dígitos de reloj individualmente en un solo bus. Mi solución fue utilizar un multiplexor I2C, que toma datos I2C entrantes y los conmuta entre seis buses separados. La cadena de sincronización comienza con el oscilador OCXO y su señal de 10 megahercios y termina con la actualización de la pantalla una vez por segundo. La señal de sincronización sincroniza un temporizador de hardware en el microcontrolador Nano para que active un controlador de interrupciones en el software del Nano 10 veces por segundo. En consecuencia, puede realizar muchas modificaciones o agregar nuevas funciones mediante cambios de software. James Provost El uso de un microcontrolador (en lugar de, digamos, chips lógicos discretos) simplificó el diseño y permite una fácil modificación y expansión. Es trivial modificar el software para sustituir los números por su propio diseño de fuente, por ejemplo, o ajustar el brillo de la pantalla. Los bloques de conectores para interfaces seriales están disponibles directamente en el Nano, lo que significa que puede usar el reloj como temporizador o disparador para algún otro dispositivo. Para tal fin, puede omitir la pantalla por completo, reduciendo considerablemente el tamaño del reloj (aunque tendrá modificar el software para anular la verificación de inicio de la pantalla). La placa de circuito impreso del reloj está diseñada para que pueda cortarse en dos piezas, y el tercio inferior sostiene el microcontrolador, el OCXO y otros componentes electrónicos de soporte. Los dos tercios superiores contienen la pantalla y el codificador giratorio. Al agregar cuatro cabezales y pasar dos cables entre las piezas para conectarlas, puede organizar las placas para formar una amplia gama de configuraciones físicas, lo que le brinda mucha libertad a la hora de diseñar el factor de forma de cualquier gabinete que elija construir para el reloj. De hecho, crear la PCB para que esto fuera posible fue probablemente la parte más desafiante de todo el proceso. Pero la flexibilidad resultante de hardware y software del diseño final valió la pena. Todo el dispositivo se alimenta a través del puerto USB-C del Nano. Se necesitaba USB-C para proporcionar suficiente corriente, ya que el reloj, el OCXO y la pantalla juntos necesitan más que la corriente máxima nominal de 500 mA de los puertos USB anteriores. Se necesita una batería de respaldo conectada a este puerto para evitar reinicios debido a una pérdida de energía; usar uno de los populares relojes de respaldo en tiempo real basados ​​en celdas de botón no tendría sentido debido a su relativa inexactitud. Y en cuanto a ese objetivo de crear un reloj preciso. reloj con una gran inversión, verifiqué la salida de mi OCXO en el circuito con un contador de frecuencia HP 53150A. El resultado es que el reloj no se desvía más de 0,00864 segundos por día, o menos de 3,15 segundos en un año. De hecho, su precisión probablemente sea mejor que eso, ¡pero había alcanzado el límite de lo que podía medir con mi contador de frecuencia! Espero que construyas uno propio; solo requiere unas pocas horas de soldadura y creo que estarás de acuerdo en que sería un tiempo bien empleado.

Source link

Una computadora con doble CPU que puedes reconectar con software

Cuando llegó la revolución de las computadoras domésticas, llenó mi infancia de fascinación y me inspiró a estudiar ingeniería informática. Quería diseñar una microcomputadora según mis propias especificaciones. Pero en la escuela nunca me enseñaron cómo se arma un sistema informático completo. En lugar de eso, estudiamos varios subsistemas y la teoría de cosas como el procesamiento de señales digitales, etc. Alguien, en otro lugar, siempre sería responsable de ensamblar todo el sistema y hacer que todo funcione en conjunto. Esto fue desafortunado e injustificado: armar una computadora completa que funcione no es difícil y puede brindarles a los estudiantes una confianza temprana crítica en su capacidad para estar a la altura de la etiqueta de «ingeniero informático». Así que, tras haberme retirado recientemente de la industria de la alta tecnología, decidí diseñar una computadora didáctica pero completamente funcional que pudiera servir como plataforma para aprender y experimentar con cuestiones de diseño a nivel de sistema: la Cerberus 2100. No quería comprometerme. Cerberus a una CPU en particular, ya que hacerlo combinaría conceptos de arquitectura a nivel de sistema con los tiempos y señales de control específicos de esa CPU. Así como un curso de ingeniería de software se centra en la estructura de un algoritmo más que en la sintaxis de su implementación en un lenguaje particular, quería que Cerberus se centrara en la estructura a nivel de sistema. Cerberus es, por tanto, un sistema multi-CPU, que incluye un Z80 y un W65C02S (6502), dos conocidos procesadores de 8 bits que ocuparon un lugar destacado en la era de las microcomputadoras domésticas. Hay una gran cantidad de recursos disponibles para aprender a programar estos procesadores, que son lo suficientemente potentes como para ser útiles y entretenidos, pero lo suficientemente simples como para dominarlos. El problema, por supuesto, es que estas dos CPU operan con interfaces muy diferentes a otras partes de la computadora, como la memoria o los dispositivos de entrada/salida. Por ejemplo, el 6502 usa una sola línea de control para indicar si está leyendo o escribiendo en el bus de datos, mientras que el Z80 usa dos líneas. Esto significa que la señal del 6502 debe combinarse con la señal del reloj del sistema, a través de una puerta AND, para evitar errores de escritura en la memoria, mientras que el Z80 no tiene ese problema. Además, el Z80 tiene una línea de salida para señalar que el valor en el bus de direcciones es estable, función ausente en el 6502. Y así sucesivamente. Estas diferencias significan que no podría utilizar un bus de control estándar en Cerberus. En su lugar, utilicé un chip de dispositivo lógico programable (CPLD) complejo y grande al que denominé “Fat-Spacer” para traducir las señales de control de cada CPU en una capa de abstracción. Esta capa define la arquitectura del sistema. Luego, Fat-Spacer traduce la salida de la capa de abstracción en las señales de entrada apropiadas para cada componente del sistema. Estos dos pasos de traducción implican tanto lógica booleana como control de tiempo mediante flip-flops. Utilicé un CPLD en lugar de un FPGA (matriz de puertas programables en campo) porque, a diferencia de los FPGA, los CPLD tienen un retraso de propagación fijo independientemente de la lógica booleana implementada en ellos. Esto es fundamental porque permite a los usuarios realizar cambios en la arquitectura del sistema (reprogramando el CPLD) sin tener que preocuparse de que la complejidad de sus cambios tarde demasiado en pasar a través de una cadena de puertas lógicas y, por lo tanto, pierda las ventanas de tiempo impuestas. por el reloj del sistema. Debido a su capa de abstracción interna, Cerberus es especialmente adecuado para la expansión: un puerto de expansión de acceso directo a memoria (DMA) también está conectado a Fat-Spacer. Al permitir el acceso directo a la memoria del sistema, permito al usuario agregar aún más CPU y microcontroladores al sistema a través del puerto de expansión. Otro desafío de diseño crítico fue desacoplar la lógica de la computadora de los tiempos de los circuitos de video. Otro desafío de diseño crítico que enfrenté fue desacoplar la lógica a nivel de sistema de la computadora de los tiempos de los circuitos de video. Tradicionalmente, estos dos están estrechamente unidos para coordinar el acceso a las memorias de vídeo y personajes por parte de la CPU y los circuitos de visualización sin causar conflictos o artefactos. Pero con dos CPU y el puerto de expansión DMA, esto no era una opción. En cambio, Cerberus utiliza dos RAM estáticas de doble puerto (SRAMS) como memorias de vídeo y personajes. Cada puerto permite el acceso asíncrono al contenido de la memoria. Un puerto de cada SRAM está conectado a la computadora propiamente dicha, mientras que el otro es exclusivo para los circuitos de video. Los procesadores Z80 y 6502 utilizan diferentes señales de control para interactuar con la memoria y los chips de interfaz. Un chip lógico reprogramable, denominado Fat-Spacer, traduce estas señales según sea necesario. Otro chip lógico reprogramable maneja el almacenamiento y la interfaz del teclado, mientras que un tercero genera señales de video. James Provost A pesar de las memorias de doble puerto, aún podrían ocurrir fallas en la pantalla si el circuito de video leyera desde una dirección determinada mientras la computadora escribía en esa misma dirección. Afortunadamente, las SRAM de doble puerto proporcionan una señal «OCUPADO» para indicar un conflicto. Fat-Spacer utiliza esta señal para pausar las CPU mientras dure el conflicto. La capa de abstracción de control también resulta muy útil aquí, ya que ya tiene la lógica de traducción adecuada para pausar las CPU. Fat-Spacer no es el único CPLD en Cerberus: tres de ellos constituyen el conjunto de chips central del sistema. Fat-Cavia escanea continuamente el vídeo y las memorias de los personajes, y envía mapas de bits a Fat-Scunk, que luego genera las señales RGB apropiadas y sincroniza los pulsos para crear una salida VGA de 320 por 240 píxeles. Mientras tanto, como hemos visto, Fat-Spacer proporciona la lógica del pegamento. Finalmente, hay un chip adicional: Fat-Cat, que en realidad es un microcontrolador ATmega328PB. Se utiliza para gestionar las E/S: el microcontrolador gestiona un teclado, un timbre, el protocolo de expansión y una tarjeta microSD para almacenamiento. El firmware de E/S se guarda en la memoria del ATmega, lo que significa que no deja huella de memoria en los 64 kilobytes de RAM accesibles al Z80 y al 6502. El Cerberus 2100 es un diseño de hardware abierto disponible para todos y los detalles completos están disponibles en mi sitio web. . Pero para aquellos que no quieran construir su propia máquina desde cero, estoy trabajando con la empresa europea de electrónica Olimex para la venta de una versión completamente ensamblada en breve. Espero que ayude a los estudiantes y aficionados a comprender (y a los profesores a enseñar) cómo se puede armar una computadora completa y completamente funcional, independientemente de la CPU de destino. Este artículo aparece en la edición impresa de noviembre de 2023 como «Arquitectura definida por software». Artículos de su sitioArtículos relacionados en la Web

Source link

Funciona con WordPress & Tema de Anders Norén