miércoles, octubre 04, 2006

[Electrónica] Circuito para clonar los RFID de VeriChip

En esta página pueden encontrar los esquemáticos, lista de componetes y programa para el PIC16F628 de un circuito que permite clonar los VeriChip RFID de Verisign:

Demo: Cloning a Verichip Yourself



Que lo disfruten.

Martín.

Etiquetas:

[Personal] Cadenas de mails

Mi hermana me ha mandado un mail que forma parte de una cadena de mails que les mandó una amiga. El texto de la cadena de mail dice:

"
No dejes nunca al que te ama por aquel que te gusta, porque ese que te gusta te dejará por quien ama! No sigas a un amor que te hizo sufrir, que un día se olvidó y lo peor es que se fue de ti. No confíes en alguien que te dijo te lo juro, que te lloró, y te reemplazó sin ningún dolor. Recuerda: "Quien se va sin echarlo, vuelve sin llamarlo" Esta noche, justo a la media noche, tu amor verdadero se va a dar cuenta que te AMA!!! ... Algo te va a pasar entre las 11:00 y 12:00 a.m. Mañana recibirán el shock + grande de sus vidas. Si rompen esta cadena, van a tener mala suerte en el amor los próximos años. Envía esto a 15 personas en 15 minutos. COPIA Y PEGA... NO LO REGRESES Y SUERTE
"

Creo que esto es jugar con las esperanzas de la gente. Pensemos un rato:

  • ¿La persona que empezó la cadena es alguna clase de Dios?
  • Generalmente empiezan con buenos consejos pero termina con la estupidez de: Si no lo pasas vas a caer en desgracia
  • ¿Por qué esa supertición estupida del ser humano en creer en cualquier cosa?
  • Estas clases de idioteces satura internet consumiendo banda ancha y almacenamientos en servidores
  • Haciendo un poco de matemática la progresión sería desde el inicio: 1, 15, 225, 3375, 50625, 759375, 11390625, 170859375, 2562890625 y esto solo en 8 iteraciones si los cálculos no me fallan
  • Alguna vez he seguido la cadena y no me ha afectado nada en mi vida. Además creo que cada uno crea su suerte.
Así que por favor no más cadenas basuras que en vez de favorecernos nos saturan la internet.

¡¡¡Muchas gracias!!!

Martín

Etiquetas:

lunes, octubre 02, 2006

[Embedded] PICos18

En esta entrada voy a realizar una introducción sobre el RTOS PICos18. En su mayor parte es una traducción del documento "PICos18_tuto_us.pdf"[1] que se puede encontrar en su página. Empecemos:

PICos18: Un kernel (ntd: núcleo) en tiempo real para el PIC18

Con la vieja familia de PIC16 no era posible crear tal kernel con los micros PIC. De hecho la principal característica de un kernel multitarea es ejecutar juntas diferentes tareas, esto significa que necesitamos controlar la pila (ndt: stack) de llamadas a función. Imagina que podría suceder si todas las tareas presentes en el sistema comparten la misma pila: el kernel pararía la tarea actual para activar otra tarea y en la próxima instrucción RETURN el puntero de direcciones saltaría a la primera tarea donde la anterior tarea fue parada (nota del traductor: la familia PIC16 tiene una pila en hardware de 8 niveles y no se puede modificar su puntero a otra área de la memoria. Tampoco tiene las clásica instrucciones de PUSH y POP de manejo de la pila)

El PIC18 puede manejar la dedicada pila en hardware para las llamadas de función (gracias a las instrucciones PUSH y POP y la libertad de mover el puntero de pila (ntd: stack pointer)), por lo tanto es ahora posible poner la pila en un estado apropiado antes de saltar a la nueva tarea.

Esto fue solamente necesario para definir la lista de los servicios del kernel y como el kernel maneja las tareas y los recursos. En vez de diseñar el kernel como una solución propietaria, la compañia Pragmatec decidió basar el kernel en el estandar OSEK/VDX.

El estandar OSEK/VDX

PICos18 está basado en el estandar OSEK-VDX.
OSEK-VDX es un amplio proyecto de la industria del automovil soportado por casi todos los fabricantes de automóviles de Francia y Alemania. El objetivo del proyeto es definir un estandar para el control y proceso de arquitecturas inmersas (ndt: embedded) en los vehículos modernos. Los vehículos actuales pueden usar hasta 30 calculadoras (ndt: calculators) (control del motor, computadora de abordo, controladores de puerta, ABS, ESP...) que transfieren datos a través de una red global (buses CAN, VAN, LIN, MOST)

Describir la manera que esas calculadoras trabajan todas juntas es:
  • Definir la misma plataforma de desarrollo, los mismos procesos de desarrollo y los mismo procesos de validación
  • Especificar un lenguaje común para los fabricantes, subcontratistas y terceras partes
  • Usar una arquitectura común para las secuencias de desarrollo, validación e integración de un proyecto
El término OSEK significa "Offene Systeme und deren Schnittstellen für die Elektronik Im Kraftfahrzeug" (Sistema abierto e interfaces relacionadas para la electronica del automovil inmersa (ntd: que fea me quedó la traducción si alguien la hace mejor que me contacte)) El término VDX significa "Vehicle Distributed eXecutive" (Ejecución distribuida en el vehículo).

Los estandar del sistema operativo OSEK está ahora incluidos en VDX.

Hoy en día este estandar es usado en las industrias del automovil y robótica y define las características del kernel alrededor de 3 ejes: Systema Operativo (Operative System - OS), Comunicación (Communication - COM) y manejo de red (Network Managment - NM). En este momento solo las especificaciones del Sistema Operativo han sido implementadas en PICos18.

El estandar OSEK-VDX es realmente apropiado para el kernel del PIC18. Una aplicación de PICos18 está compuesta de muchas tareas simbolizadas por circulos en el siguiente gráfico.


La mayor característica es que solo una tarea puede tener acceso al PIC18 para ejecutarse (más precisamente al procesador, a la memoria RAM y a la pila)

Para decidir que tarea es permitida ejecutarse en un cierto tiempo el kernel PICos18 inspecciona todas las tareas de la aplicación y elije la tarea en el estado ready (ntd: los estados los voy a dejar en ingles. En este caso significa preparado) con más alta prioridad.

Después de ser activada una tarea puede esperar por un evento específico y luego caer dormida (ntd: sleep) temporalmente para permitir a otra tarea con menor prioridad ejecutarse. Cuando el evento sea detectado, el kernel despertará la tarea previamente puesta en estado de espera.

Los diferentes estados de una tarea de PICos18 son: READY, SUSPENDED, WAITING y RUNING.

Características del PICos18

El kernel PICos18 está compuesto de diferentes capas:


  • El kernel core (Init + Scheduler + Task Manager) es el encargado de manejar las tareas presentes en la aplicación y por lo tanto decide la póxima tarea a activar en función del estado y las prioridades de las tareas
  • El alarm and counter manager (Alarm Manager) . Adjuntado al kernel core, usa la interrupción del TIMER0 para actualizar periódicamente las alarmas y contadores usados por la aplicación
  • Las Hook routines están parcialmente incluidas en el kernel core y deja al desarrollador tomar control de los procesos del kernel durante un corto tiempo para debug (búsqueda de errores) de la aplicación por ejemplo
  • El task manager (Process Manager) es un conjunto de servicios del kernel que propone la función necesaria para manejar el estado de la tarea (para cambiar el estado de la tarea, encadenar dos atreas, activar una tarea...)
  • El event manager (Event Manager) es un conjunto de servicios del kernel que propone la función necesaria para manejar los eventos en espera o anunciado por/hacia una tarea (esperar un evento, anunciar un evento, limpiar un evento, leer un conjunto de eventos recividos...)
  • El interrup manager (INT Manager) es un conjunto de servicios del kernel para activar o desactivar las interrupciones (interrupciones high y low)
PICos18 es un kernel modular lo que representa que el acceso a los perisfericos del PIC18 (drivers, manejador del sistemas de archivos, etc.) son escritos como tareas independientes del kernel.

Luego es porsible personalizar la aplicación PICos18 usando diferentes capas de software (diferentes capas y librerías como las propuestas por Pagmatec) par obtener algo específico, rápido y facil de diseñar.

Bueno, la próxima entrada seguiré con la traducción.

Saludos

Martín

Etiquetas: