En el protocolo ISO14443 (el protocolo utilizado por la mayoría de las tarjetas inteligentes sin contacto), existe un mecanismo que lo hace: se denomina anticolisión .
Básicamente (y simplificando las cosas), así es como funciona para ISO14443 tipo A (que es uno de los dos tipos de tarjeta sin contacto):
- El lector sondea regularmente el campo, y le pide a todas las etiquetas que respondan con su ID única (que se asigna durante la fabricación de la etiqueta).
- El lector puede detectar cuándo dos etiquetas responden a cosas diferentes al mismo tiempo. Cuando esto sucede (por ejemplo, en el bit n ), el lector vuelve a sondear las etiquetas en el campo, pero al proporcionar los primeros bits n que acertó, más uno el bit se establece en 0, por lo que solo las etiquetas con el ID que comienza con estos bits responden.
- También intentará con los bits n que acertó, más un bit establecido en 1, para obtener las otras etiquetas.
- De esta manera, y eventualmente usando múltiples niveles e intentos, finalmente obtiene todas las ID únicas de todas las etiquetas en el campo.
- Más adelante, cuando quiera enviar un comando, indicará a qué etiqueta se dirige el comando, por lo que solo esta etiqueta procesa el comando y responde.
para ISO14443 tipo B , la anticolisión se realiza de manera diferente y se basa en intervalos de tiempo. No tengo los detalles en mente, pero está en la especificación.
Entonces, desde el punto de vista del protocolo, teóricamente podrías hacer lo que quieras, no hay problema.
Ahora, las etiquetas 200/300 son muchas, y por lo tanto, ciertamente necesitarás una antena específicamente diseñada para poder alimentar todas esas etiquetas al mismo tiempo. Además, implica que el rango de comunicación debe ser más alto de lo normal, ya que 300 partes de lego ocupan más espacio que 5 tarjetas apiladas una sobre otra.
Editar: lo anterior solo sugiere soluciones HF (13.56Mhz). Estas soluciones están diseñadas para un rango limitado (aproximadamente 10-20 cm), pero con capacidades ampliadas (criptografía, ...). Lo que en realidad es más apropiado en su caso son las soluciones UHF (860-960MHz), principalmente las etiquetas ECP Gen2 . No he trabajado con esta tecnología, pero parece ser lo que necesitas.
Puede funcionar en unos pocos metros (incluso cuando se alimenta de forma pasiva), pero está hecho principalmente para etiquetado simple. Por supuesto, también es compatible con algunos esquemas anticolisión, por lo que puede tener muchas etiquetas en el campo. Bonificación: estas etiquetas suelen ser más baratas que las etiquetas de 13.56 MHz. Los lectores, sin embargo, parecen más caros (generalmente en el rango de 500 $ -1000 $), y no estoy seguro de cómo puede interactuar fácilmente con un raspi (aunque algunos de ellos parecen tener una interfaz USB, hay que comprobar los controladores).