Home
Accesso / Registrazione
 di 

Progetto DigiButler revisionato per ColdFire Kirin3

DigiButler revisionato per ColdFire Kirin3

Prima del rilascio di Kirin3 da parte di Freescale, esisteva il microcontroller col supporto ethernet MCF5223X, Kirin2e. Esistono due principali differenze tra Kirin2e e Kirin3. Il Kirin3 aggiunge il modulo USB-OTG, ma rimuove l'interfaccia ethernet PHY. Dunque i progetti esistenti che giravano su Kirin2e possono essere portati sul Kirin3 con drivers diversi. Freescale impiega la PHY ethernet di Micrel (KSZ804NL) per i suoi demo kit, e National Semiconductors (DP83838) per le sue schede di prova individuali.

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

Le applicazioni web a volte richiedono un file system per conservare le pagine o dati del log. Il file system FAT è supportato sul Kirin3 USB OTG o sul Kirni2e con una scheda SD simulata. In alternativa, si possono usare dei microcontroller ColdFire più vecchi con un chip ethernet esterno (MAC + PHY) e un bus SPI per configurare una piattaforma connessa comparabile. La soluzione consiste nella vostra chiamata, solo costi e questioni di disponibilità.

Freescale ed Elektor offrono un progetto open source con l'MCF52231, chiamato DigiButler e disponibile su entrambi i siti web. Controlliamo le sue carateristiche:

    - microcontroller a  32-bit ColdFire MCF52231 (60MHz, 128KB Flash, 32KB RAM, Kirin2e)
    - progetto open source
    - codice sorgente in C
    - piattaforma di sviluppo software gratuita CodeWarrior, adesso aggiornata dalla CW6.2 alla CW7.11
    - costa quanto due sistemi di sviluppo ColdFire a basso costo a causa del debugger TBLCF USB
    - connettività: Ethernet (RJ45), RS232, BDM, analogica, I2C, timers
    - 1 relè (su scheda) utilizzabile per carichi fino a 2A
    - WAP
    - protezione con password ed username su autenticazione basata sull'HTTP
    - Stack TCP/IP and RTOS con suuporto HTTP, DHCP, UDP, ICMP, ARP
    - Client DHCP client per assegnazione automatica e manuale dell'IP
    - ideale per sensori e controlli pilotati da remoto
    - Kit Off-the-shelf disponibile da Elektor

Come ho già detto, non fa molta importanza quale microcontroller sia in uso. Il porting del progetto con il demo kit MCF52259 mi consente di testare il progetto ed aggiungere altre caratteristiche sulla mia scheda. Ora, sono riuscito a portare il progetto sul demo kit MCF52259 con esito positivo. Mi sono impegnato al massimo per supportare entrambi i microcontroler per questo progetto. Alla fine ho rinunciato, dato che il Kirin2e e il Kirin3 hanno diverse configurazioni di memoria. Ecco le differenze tra le due schede.

Hardware
Il Kit DigiButler da Elektron prepara una vasta area sul PCB per le parti personalizzate, offre anche ADC, GPIO, I2C, pulsanti, LED, relè per applicazioni. La demokit MCF52259 è molto compatta, non c'è una stanza per circuiti aggiuntivi, offre solo due pulsanti, 4 LED, USB OTG, UAR, Ethernet e un bus per l'estensione. Lo sviluppatore può connettere questa estensione ma al circuito utente. Poichè la demokit MCF52259 è progettata per scopi dimostrativi, che richiedono alimentazione esterna dalla porta USB del debugger funziona solo con CodeWarrior.
Anche se la mia revisione per DigiButler dovrebbe lavorare in una rete pratica, non ho un budget extra per realizzare n vero PCB per Kirin3. Mi chiedo se c'è qualche privato o organizzazione che dona o sponsorizza il programma PCB.

Debugger BDM
Il debugger Open Source TBLCF USB BDM è stato utilizzato in questo progetto. TBLCF sta per Turbo BDM Light ColdFire, sviluppato da Daniel Malik con il MC68HC908JB16 ed un buffer 74VHC14. E' un debugger low cost, meno di 10 USD. Il demo kit MCF52259 possiede un debugger on-board, chiamato OSTAP / ColdFire v2-v4 JM60 OSBDM. Ha nomi diversi nell'installazione driver e nella finestra di setup del debugger. Esiste un altro debugger BDM, basato sul Microcontroller ad 8 bit Flexis JM60 della Freescale. Il debugger dovrebbe installarsi correttamente se si utilizzano diversi moduli BDM come il debugger PEmicro per il MCF52259. Sto tentando di unire il bootloader del CMX nella mia revisione. Così gli utenti regolari (i clienti che preferiscono la filosofia plug and play) possono scaricare il firmware senza il bisogno di un debugger. Dato che tutti i debugger sono forniti di USB, non importa quale viene utilizzato.

Installazione Rete
Nei servizi a banda larga di oggi, otteniamo un IP dinamico dal fornitore di servizio. Nella maggior parte degli ambienti domestici, gli utenti connettono i loro PC ad un router SOHO o ad un modem DSL, che assegna gli indirizzi IP ai dispositivi connessi. Questo approccio condivide la connessione di rete nella stessa LAN, e previene accessi non autorizzati da computer esterni. Per far funzionare DigiButler online e permettere visite dall'esterno dobbiamo assegnare l'IP per DigiBluster e abilitare il forwarding della porta sul router. Di sicuro, se DigiBluster ha la capacità di collegarsi da PPPoE, funziona lo stesso.
Comunque, PPPoE non è ancora implementata nel progetto corrente. Inserirò questa caratetristica nella lista dei desideri del progetto.

Sia Digiutler sia ColdFire supportano l'IP statico e il client DHCP, quindi non si hanno problemi nella configurazione dell'IP. L'IP di default è codificato nel codice, come 192.168.0.98. Puoi cambiare l'indirizzo IP nel terminale (Minicom i HyperTerminal). Ma andrò a integrare questa caratteristica nella pagina web, come fanno la maggior parte dei router e dei dispositivi connessi.

Dal lato del router (server DHCP), è meglio assegnare un IP a DigiButler in accordo con il suo MAC address. E' estremamente importante, perchè la ridirezione delle prte e il port forwarding richiedono un determinato indirizzo IP. Gli algoritmi DHCP sono diversi nei vari router, quindi non si ha la minima idea di cosa avviene, inoltre il server DHCP assegna sempre lo stesso IP al tuo PC. Il MAC address definito in entrambi i progetti è diverso, DigiButler con il Kirin2e usa 00:CF:52:08:CF:01. Il ColdFire TCP/IP Lite supporta 00:CF:52:53:54:CC per la modalità DHCP client e 00:CF:52:53:54:55 per la modalità server. Tuttavia, il server DHCP non funziona sul mio PC, quindi devo trovare e aggiustare questo problema nella mia revisione. Dopo aver coompletato l'assegnamento dell'IP, possiamo configurare il port forwarding o redirezione delle porte. Assegnamo l'indirizzo IP 192.168.0.98 al MAC 00:CF:52:53:54:CC, quindi possiamo settare la porta 80 del router sull'IP 192.168.0.98. Ora ogni richiesta HTTP in arrivo sulla nostra WAN può prelevare informazioni dalla LAN all'indirizzo IP 198.168.0.98, porta 80. ad esempio il nostro DigiButler o il Kirin3 demo kit.

L'IP WAN è assegnato dall'ISP anche in maniera non permanente. E' difficile ricordare l'indirizzo IP. E' una buona pratica cercare un provider Dynamic DNS che offre un sottodominio per il tuo router. Controlla il manuale dell'utente del tuo router per maggiori dettagli e per i servizi DDNS raccomandati e che hanno un piano gratuito. Io ho scelto 3322.org perchè è popolare in Cina. Il suo metodo per ottenere l'URL è anche abbastanza semplice per un server web integrato.

Firmware
Il firmware per DigiButler è una versione modificata del software ColdFire Lite HTTp disponibile da Freescale, cheè costruito con lo stack NicheLite TCP/IP e descritto nell' AN3455 e AN3470. DigiButler aggiung l'autenticazione di base HTTP e moduli extra per le pagine WAP per rendere il progetto più attraente. Un lettore Elektron presenta una demo online per permettere alle persone di valutarlo. La dimensione dell'intero progetto è molto contenuta, dal momento che usa solo 81KB di ROM, così rimangono 45KB per la memorizzazione delle pagine web. Se si imposta l'ottimizzazione al Livello1, la dimensione del codice può essere ridotta a 58KB. Si può anche usare la versone a 256/512KB che aggiungepiù pagine e caratteristiche. Il DigiButler originale consente anche il ricaricamento dinamico delle pagine web nella memoria flash interna da un programma speciale remoto connesso alla porta 80. Questa caratteristica offre una magnifica flessibilità, nonostante non penso che il caricamento di una pagina da remoto sia un approccio sicuro.

L'ultimo stack NicheLite TCP/IP è la versione 3.0 per il MCF52259, con molti progetti di esempio. Il progetto del web server incorpora anche uno stack USB lite da CMX. Come risultato, puòp memorizzare più pagine web nelle stick USB esterne. Dato che questi progetti sono molti differenti, ho deciso di aggiungere DigiButler per aggiornare il ColdFire  TCP/IP stack, che credo sia una caratteristica essenziale per il prodotto finale. Quindi molte altre funzioni possono essere implementate dalle pagine web. Il codice rivisto è rilasciato sul Featured Open Source Projects, basato sui siti di servizi di Google. Sposterò la mia revisione su Google code se otterrò dei riscontri positivi. Google code offre un servizio professionale di project hosting, incluse sottoversioni e pagine wiki. Quindi tutti possono unirsi al progetto e migliorarlo. Ho scritto una lista, così voi potete aiutarmi a decidere cosa deve essere fatto per primo.

Piano di sviluppo
Ovviamente, dopo l'implementazione del protocollo HTTP di base, dobbiamo muoverci nel livello delle applicazioni web. Lo scambio di meta dati strutturato è essenziale per un dispositivo collegato alla rete. Quindi porrò molta enfasi sul generatore di dati XML e il parser sul progetto DigiButler.

Generatore di dati XML (server)
Offrendo dati nel formato XML, come i feed RSS dello stato di risorse del chip o dei dispositivi esterni, i dati strutturati possono essere quindi visti in molte forme in terminali client diversi (web, mobile, lettori RSS). Poiché RSS/ATOM è una comunicazione unidirezionale, lasceremo un'interfaccia di controllo (punti di servizio) su DigiButler. Il formato Light-weight Meta data in JSON, così la parte client (il browser o un altro server web) può facilmente ottenere i dati e presentarli in un formato umanamente leggibile.

Parser dati XML (Client)
Leggendo dati esterni strutturati in formato XML o JSON si possono controllare le risorse locali o visualizzare i dati sul display locale collegato. Un display LED commerciale collegato è una tipica applicazione.

Nei sistemi di log, si possono inviare i dati di log ad un database online assegnato. Un sistema di controllo integrato per inviare messaggi di avviso agli indirizzi specificati degli azionisti tramite un SMS o aggiornare lo stato nel vostro social network preferito. La maggior parte dei servizi sono offerti come formato XML o JSON.

Scambio di dati XML (Client e Server)
Dispositivo UPnP. UPnP si basa maggiormente sullo standard XML per la scoperta di servizi e lo scambio di dati. Non possiamo aspettarci che ogni utente finale possa lavorare come un ingegnere, che conosce il compilatore e e la programmazione. Quindi dobbiamo trovare un modo intelligente per permettere alle interfacce dei dispositivi di lavorare in modo trasparente. In caso contrario, questo progetto sarà dimenticato molto presto. E' importante definire un modo per consentire a DigiButler la scoperta dei servizi delle periferiche collegate e prepararne la pagina web al volo.

Presentazione delle abilità (JavaScript, XML e SVG/SIML)
L'analisi dei dati, la presentazione ed il rendering è molto utile nel sistema di controllo integrato, una dashboard animata è ancora preferita dagli utenti finali, piuttosto che le cifre. Dal momento che il browser moderni supportano tutti JavaScript, XML e SVG/SIML, è più facile progettare un'interfaccia di controllo completamente interattiva sul proprio browser.

Applicazione Web Ibrida
Offrendo una applicazione web ibrida si può connettere gli utenti finali e gli amministratori, per esempio, mettendo un programma di messaggistica instantanea web o una chat room in modo da poter contattare l'amministratore in qualsiasi momento.
Widget front-end che si esegue su Yahoo Widget, o altri widget di base flash.
Comunicazione Sicura
CAU per l'autenticazione HTTP Digest e la comunicazione HTTP sicura.

Fonti

RICHIESTA DI CONTATTO
Se desideri maggiori informazioni su questo prodotto Freescale, invia una richiesta ad Arrow utilizzando il seguente modulo.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti