Você está na página 1de 5

USB

Universal Serial Bus, o USB, se utiliza como un mtodo para dispositivos perifricos para conectarse y hablar con una computadora personal. CCS proporciona bibliotecas para la conexin de un PIC al PC mediante USB mediante el uso de un PIC con un perifrico USB interno (como el PIC16C765 o la familia PIC18F4550) o mediante el uso de cualquier PIC con un perifrico externo USB (el Nacional USBN9603 familia).

Funciones relevantes: usb_init ()


Inicializa el hardware USB. Entonces va a esperar en un bucle infinito para el perifrico USB para ser conectado al bus (pero eso no significa que haya sido enumerados por el PC). Permitir el uso y la interrupcin del USB.

usb_init_cs ()
Al igual que usb_init (), pero no espera a que el dispositivo se conecta al bus. Esto es til si el dispositivo no est bus y puede funcionar sin una conexin USB.

usb_task ()
Si usa el sentido de conexin, y el usb_init_cs () para la inicializacin, entonces peridicamente debe llamar a esta funcin para mantener un ojo en el pasador de conexin de sentido. Cuando el PIC est conectado al bus, esta funcin entonces perpare el perifrico USB. Cuando el PIC est desconectado del bus, se restablecer la pila USB y perifricos. Permitir el uso y la interrupcin del USB.

Nota: En su solicitud, usted debe definir USB_CON_SENSE_PIN a la clavija de conexin de sentido.

usb_detach ()
Elimina el PIC desde el autobs. Se llamar automticamente usb_task () si se pierde la conexin, pero puede ser llamado de forma manual por el usuario.

usb_attach ()
Concede al PIC al bus. Se llamar automticamente usb_task () si la conexin, pero puede ser llamado de forma manual por el usuario.

usb_attached ()
Si se utiliza pines sentido (USB_CON_SENSE_PIN), devuelve TRUE si que pin es alto. Persona siempre devuelve TRUE.

usb_enumerated ()
Devuelve TRUE si el dispositivo ha sido enumerado por el PC. Si el dispositivo ha sido enumerado por el PC, eso significa que est en el modo de funcionamiento normal y se puede enviar / recibir paquetes.

usb_put_packet
(Punto final, los datos, len, TGL) Coloca el paquete de datos en el bfer de punto final especificado. Devuelve TRUE si xito, FALSE si el buffer est todava llena con el ltimo paquete.

usb_puts
(Punto final, los datos, len, tiempo de espera) Enva los siguientes datos para el punto final especificado. usb_puts () difiere de usb_put_packet () en el que va a enviar mensajes de mltiples paquetes, si los datos no caben en un paquete.

usb_kbhit
(punto final) Devuelve TRUE si el punto final especificado en los datos es el bfer de recepcin

usb_get_packet
(Variable, ptr, max) Lee hasta un mximo de bytes del bfer de extremo especificado y lo guarda en el ptr puntero. Devuelve el nmero de bytes guardados en ptr.

usb_gets
(variable, ptr, mximo, tiempo de espera) Lee un mensaje desde el punto final especificado. La diferencia usb_get_packet () y usb_gets () es que usb_gets () esperar hasta que un mensaje completo ha recibido, que un mensaje puede contener ms de un paquete. Devuelve el nmero de los bytes recibidos.

Las funciones relevantes de los CDC:


Un dispositivo USB CDC emula el comportamiento de un dispositivo RS-232, y aparecer en su PC como un puerto COM. Las funciones de seguimiento que proporciona esta interfaz RS-232/serial virtuales

Nota: Si utiliza la biblioteca de CDC, puede utilizar las mismas funciones que el anterior, pero no utilizar la funcin de paquetes relacionados, tales como: usb_kbhit (), usb_get_packet (), etc

usb_cdc_kbhit ()
Al igual que kbhit (), devuelve TRUE si hay un personaje o ms en el bfer de recepcin.

usb_cdc_getc ()
Al igual que getc (), lee y devuelve un carcter del bfer de recepcin. Si no hay datos en el bfer de recepcin se va a esperar indefinidamente hasta que un personaje ha sido recibido.

usb_cdc_putc (c)
Al igual que putc (), enva un carcter. En realidad, pone un carcter en el bfer de transmisin, y si el buffer de transmisin est lleno esperar indefinidamente hasta que haya espacio para el personaje.

usb_cdc_putc_fast (c)
Al igual que usb_cdc_putc (), pero no esperar indefinidamente hasta que haya espacio para el carcter del buffer de transmisin. En esa situacin, el personaje se pierde.

usb_cdc_putready ()
Devuelve TRUE si no hay espacio en el bfer de transmisin de otro personaje.

Las interrupciones relevantes: # Int_usb


Un evento USB ha sucedido, y requiere la intervencin de la aplicacin. La biblioteca de USB que ofrece CCS gestiona esta interrupcin automtica.

Incluir archivos relevantes: pic_usb.h


Hardware controlador de capa de la familia de controladores PIC PIC16C765 con un perifrico USB interno.

pic_18usb.h
Hardware controlador de capa de la familia PIC18F4550 controladores PIC con un perifrico USB interno.

usbn960x.h
Controladores de hardware para la capa externa Nacional USBN9603/USBN9604 perifricos USB. Usted puede usar este perifrico externo USB para aadir a cualquier microcontrolador.

usb.h
Definiciones comunes y prototipos utilizados por el controlador USB

usb.c
La pila USB, que se ocupa de la interrupcin USB y USB solicitudes de instalacin de punto final 0.

usb_cdc.h
Un conductor que lleva el anterior son los archivos para crear un dispositivo USB CDC, que emula un dispositivo RS232 legado y se muestra como un puerto COM en el Administrador de dispositivos de MS Windows.

Relevantes getenv () Parmetros: USB


Devuelve TRUE si el controlador PIC tiene un interior integrado perifricos USB.

Ejemplo de cdigo:
Debido a la complejidad de cdigo de ejemplo USB no encaja aqu. Pero se pueden encontrar los siguientes ejemplos se instala con su compilador CCS C:

ex_usb_hid.c
Un simple dispositivo HID

ex_usb_mouse.c
Un Ratn HID, cuando se conecta a su PC el cursor del ratn en crculos.

ex_usb_kbmouse.c
Un ejemplo de cmo crear un dispositivo USB con mltiples interfaces mediante la creacin de un teclado y un ratn en un solo dispositivo.

ex_usb_kbmouse2.c
Un ejemplo de cmo utilizar mltiples HID informe ID para transmitir ms de un tipo de paquete HID, como lo demuestra un teclado y un ratn en un solo dispositivo.

ex_usb_scope.c
Un proveedor especfico de clase mediante transferencias masivas se demuestra.

ex_usb_serial.c
El CDC virtuales RS232 biblioteca se demuestra con esta RS232 <-> ejemplo USB.

ex_usb_serial2.c
Otro CDC virtuales RS232 ejemplo de la biblioteca, esta vez un puerto del ejemplo ex_intee.c usar USB en lugar de RS232.

Você também pode gostar