Stack USB Host

Caratteristiche

Stack USB Host di Segger conforme alle specifiche USB v.1.1 e USB v2.0. Supporta tutti i tipi di trasferimento (control, bulk, interrupt, isocrono) e tutte le velocità. Il design modulare di emUSB Host permette all’applicazione di utilizzare l’interfaccia di programmazione dello stack oppure di sfruttare direttamente le API dei driver delle classi. Lo stack può gestire più dispositivi device e più hub simultaneamente. L’interfaccia di programmazione supporta dinamicamente l’enumerazione e l’identificazione del dispositivo.

Classi supportate

 

ComponenteFunzionalità
USB protocol layer
CDCemUSB-Host Communication Device Class component
HIDemUSB-Host Human Interface Device Class component
MSDemUSB-Host Mass Storage Device Class component
PrinteremUSB-Host Printer component
FT232emUSB-Host FTDI UART component
Core layer
emUSB CoreThe emUSB-Host core is the intrinsic USB stack
Hardware layer
DriverUSB controller driver

Stack USB Device

Stack USB Device ottimizzato per il kernel real-time Segger embOS. Sotto sono riportate le classi device attualmente disponibili

Mass Storage Device

Applicazioni tipiche:

  • Digital camera
  • USB stick
  • MP3 player
  • DVD player

Non richiede l’installazione di driver sull’host

Communication Device Class. 

Il device viene visto dall’host come un canale seriale virtuale.

Applicazioni tipiche: 

  • Modem
  • Telephone system
  • Fax machine
  • Datalogger

Media Transfer Protocol

Applicazioni tipiche:

  • Digital camera
  • MP3 player
  • Smartphone

Vantaggi rispetto a MSD:

  • cavo scollegabile durante il trasferimento di dati, senza danni al file system.
  • Il file system può non essere FAT
  • I file possono essere virtuali
    • Host e device possono accedere al file system simultaneamente.

Grazie alla nuova tecnologia IP-over-USB con il webserver integrato, è possibile accedere al dispositivo da qualsiasi host (Windows, Linux, Mac) semplicemente digitando il nome del dispositivo nella barra degli indirizzi di un browser. Il nome del dispositivo per default è usb.local. Non è necessario installare nulla sull’host.

Questa classe riceve dati da un host e li gira a un parser. Questo modulo fornisce delle routine automatiche di gestione degli errori, per esempio nel caso in cui il dispositivo rimanga senza carta. Il protocollo USB è completamente nascosto allo sviluppatore che si può concentrare sullo sviluppo del parser.

Human Interface Device

Applicazioni tipiche:

  • tastiere
  • puntatori Mouse 
  • Joystick
  • Game pad
  • pannelli di controllo con bottoni

Componente Bulk per lo stack USB Device

Questa tecnologia può essere utilizzata in vari tipi di applicazioni senza dover installare alcun driver sull’host. SmartMSD analizza l’operazione effettuata dall’host e passa il comando allo strato applicativo del target, il quale intraprende le azioni opportune. Un semplice drag-and-drop è ciò che serve per inizializzare il processo.

WebSocket

embOS/IP Websocket protocol è un protocollo di trasporto basato su TCP/IP che semplifica la comunicazione attraverso i firewall. E’ semplice da utilizzare, leggero e aperto.
Le sue caratteristiche lo rendono ideale per l’uso in molte situazioni, per esempio in applicazioni M2M (Machine to Machine) oppure in contesti IoT (Internet of Things) Approfondisci

emWeb Server

Questo modulo implementa una interfaccia utente basata su HTML accessibile da qualsiasi luogo.
Il webserver integrato consente di creare un’interfaccia utente indipendente dal sistema operativo (UI). Questa può essere implementata con vari livelli di complessità, da una semplice GUI per l’applicativo a un sistema basato su tecnologie quali JavaScript, AJAX, SSE, WebSockets, ecc.

Questa tecnologia è integrabile non solo in sistemi embedded dotati di connettività ethernet o WiFi, ma anche in sistemi che ne sono privi: grazie alla tecnologia IP-over-USB, Segger supporta la connettività del target a un host tramite la porta USB usando i protocolli della famiglia TCP/IP.

embOS-MPU (Memory Protection Unit)

Tecnologia

embOS-MPU offre un meccanismo di protezione della memoria per il kernel real-time embOS. Esso contribuisce in modo significativo ad aumentare la stabilità e la sicurezza delle Vostre applicazioni embedded semplificando i processi di certificazione. Il sistema operativo e tutti i task dichiarati privilegiati girano in zone di memoria protette e isolate rispetto ai task dichiarati non-privilegiati. La piena compatibilità delle API con quelle della versione standard di embOS consente di adattare l’applicazione con uno sforzo minimo.embOS-MPU può essere utilizzato in applicazioni alimentate a batteria, in sistemi single-chip in cui siano richiesti altra responsività, flessibilità e task multipli. Esempi di applicazioni per le quali embOS-MPU è adatto (l’elenco non esaurisce tutte le possibilità) sono: applicazioni medicali, automazione, sistemi avionici, applicazioni safety-critical, ecc.

 

Caratteristiche

  • Protezione avanzata della memoria
  • Task non privilegiati confinati al 100% in una sandbox.
  • Adatto per qualsiasi applicazione safety-critical.
  • Disponibile per qualsiasi microcontrollore dotato di un meccanismo di protezione hardware della memoria o di un’unità MMU (Memory Management Unit)
  • Semplice da configurare
  • Semplice da integrare in prodotti nuovi oppure già sviluppati.
  • Gestione dei driver dei dispositivi in modo da avere un pieno controllo dell’accesso alle periferiche.
  • Supporta un numero illimitato di task privilegiati.
  • Conforme alle specifiche MISRA-C:2012

SSH (Secure Shell)

emSSH è una shell che supporta il login sicuro a un sistema embedded connesso in rete.    emSSH consente di stabilire una connessione remota ma sicura con qualsiasi applicazione server ospitata all’interno del sistema.

Caratteristiche principali

Crea un tunnel sicuro tra target e chi ad esso si connette.
Compatibile con i client che supportano SSHv2.
Facile da utilizzare, semplice da integrare, ben documentato.
Supporta diversi acceleratori hardware dedicati alla crittografia oggigiorno presenti in numerosi microcontrollori sul mercato.

Caratteristiche supportate:

Algoritmi di scambio delle chiavi:

diffie-hellman-group1-sha1
diffie-hellman-group14-sha1
ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521

Algoritmi di gestione della chiave pubblica

ssh-dss
ssh-rsa
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-ed25519

Algoritmi crittografici

aes256-ctr
aes256-cbc
aes192-ctr
aes192-cbc
aes128-ctr
aes128-cbc
camellia256-ctr
camellia256-cbc
camellia192-ctr
camellia192-cbc
camellia128-ctr
camellia128-cbc
3des-ctr
3des-cbc
twofish256-cbc
twofish256-ctr
twofish192-cbc
twofish192-ctr
twofish128-cbc
twofish128-ctr
twofish-cbc
blowfish-ctr
blowfish-cbc
arcfour256
arcfour128
arcfour
cast128-ctr
cast128-cbc
aes128-gcm@openssh.com
aes256-gcm@openssh.com
rijndael-cbc@lysator.liu.se

Algoritmi MAC

hmac-sha2-512
hmac-sha2-256
hmac-sha1
hmac-sha1-96
hmac-md5
hmac-md5-96
hmac-sha2-512-etm@openssh.com
hmac-sha2-256-etm@openssh.com
hmac-sha1-etm@openssh.com
hmac-sha1-96-etm@openssh.com
hmac-md5-etm@openssh.com
hmac-md5-96-etm@openssh.com
hmac-ripemd160@openssh.com
hmac-ripemd160-etm@openssh.com
hmac-sha224@ssh.com
hmac-sha256-2@ssh.com
hmac-sha384@ssh.com
hmac-sha512@ssh.com