Programació en sistema![]() La programació en sistema (ISP), o també anomenada programació sèrie en circuit (ICSP), és la capacitat d'un dispositiu lògic programable, microcontrolador, xipset o altre dispositiu integrat de ser programat mentre està instal·lat en un sistema complet, en lloc de requerir que el xip es programi abans de la instal·lació. També permet que les actualitzacions de firmware es lliurin a la memòria del xip dels microcontroladors i processadors relacionats sense necessitat de circuits de programació especialitzats a la placa de circuit, i simplifica el treball de disseny.[1] Visió generalNo hi ha cap estàndard per als protocols de programació dins del sistema per programar dispositius de microcontroladors. Gairebé tots els fabricants de microcontroladors admeten ISP, però tots han implementat els seus propis protocols, que sovint difereixen fins i tot per a diversos dispositius del mateix fabricant. Es poden requerir fins a 4 pins per implementar una interfície estàndard JTAG. En general, els protocols moderns intenten mantenir baix el nombre de pins utilitzats, normalment a 2 pins. Algunes interfícies ISP aconsegueixen el mateix amb un sol pin. Els microcontroladors ATtiny més nous amb UPDI poden fins i tot reutilitzar aquest pin de programació també com a entrada/sortida d'ús general.[2] El principal avantatge de la programació dins del sistema és que permet als fabricants de dispositius electrònics integrar la programació i les proves en una sola fase de producció i estalviar diners, en lloc de requerir una etapa de programació separada abans de muntar el sistema. Això pot permetre als fabricants programar els xips a la línia de producció del seu propi sistema en lloc de comprar xips preprogramats d'un fabricant o distribuïdor, fent possible aplicar canvis de codi o disseny enmig d'una tirada de producció. L'altre avantatge és que la producció sempre pot utilitzar el firmware més recent i es poden implementar noves funcions, així com correccions d'errors, i posar-les en producció sense el retard que es produeix quan s'utilitzen microcontroladors preprogramats.[3] Els microcontroladors normalment es solden directament a una placa de circuits impresos i normalment no tenen els circuits ni l'espai per a un cable de programació extern gran a un altre ordinador.[4] Normalment, els xips que admeten ISP tenen circuits interns per generar qualsevol voltatge de programació necessari a partir del voltatge de subministrament normal del sistema i comunicar-se amb el programador a través d'un protocol sèrie. La majoria dels dispositius lògics programables utilitzen una variant del protocol JTAG per a ISP, per tal de facilitar una integració més fàcil amb procediments de prova automatitzats. Altres dispositius solen utilitzar protocols propietaris o protocols definits per estàndards més antics. En sistemes prou complexos com per requerir una lògica d'adhesió moderadament gran, els dissenyadors poden implementar un subsistema de programació controlat per JTAG per a dispositius que no són JTAG, com ara memòria flash i microcontroladors, permetent que tot el procediment de programació i prova es realitzi sota el control d'un únic protocol.[5] HistòriaA partir de principis dels anys noranta, es va observar una important evolució tecnològica en l'arquitectura dels microcontroladors. Inicialment, es van realitzar en dues possibles solucions: amb memòries programables d'un sol ús (OTP) o amb memòries EPROM. Per a les EPROM, un procés d'esborrat de memòria requereix que el xip s'exposi a la llum ultraviolada a través d'una finestra específica sobre el paquet. El 1993, Microchip Technology va introduir el primer microcontrolador amb memòria EEPROM: el PIC16C84. Les memòries EEPROM es poden esborrar elèctricament. Aquesta característica va permetre reduir els costos de realització eliminant la finestra d'esborrat sobre el paquet i iniciant la tecnologia de programació dins del sistema. Amb el procés de flasheig d'ISP es pot realitzar directament a la placa al final del procés de producció. Aquesta evolució va donar la possibilitat d'unificar la fase de programació i prova funcional i en entorns de producció i iniciar la producció preliminar de les plaques fins i tot si el desenvolupament del firmware encara no s'ha completat. D'aquesta manera va ser possible corregir errors o fer canvis més endavant. El mateix any, Atmel va desenvolupar el primer microcontrolador amb memòria flash, més fàcil i ràpid de programar i amb un cicle de vida molt més llarg en comparació amb les memòries EEPROM. Els microcontroladors que admeten ISP solen estar proveïts de pins utilitzats pel perifèric de comunicació sèrie per interactuar amb el programador, una memòria flash/EEPROM i els circuits utilitzats per subministrar el voltatge necessari per programar el microcontrolador. El perifèric de comunicació està connectat a un perifèric de programació que proporciona ordres per operar a la memòria flash o EEPROM. Quan es dissenyen plaques electròniques per a la programació d'ISP, cal tenir en compte algunes pautes per tenir una fase de programació el més fiable possible. Alguns microcontroladors amb un nombre baix de pins comparteixen les línies de programació amb les línies d'E/S. Això pot ser un problema si no es tenen en compte les precaucions necessàries en el disseny de la placa; el dispositiu pot patir danys als components d'E/S durant la programació. A més, és important connectar les línies ISP a circuits d'alta impedància tant per evitar danys als components per part del programador com perquè el microcontrolador sovint no pot subministrar prou corrent per pilotar la línia. Molts microcontroladors necessiten una línia de reinici dedicada per entrar en mode de programació. Cal parar atenció al corrent subministrat per a la conducció de la línia i comprovar la presència de watchdogs connectats a la línia de reinici que poden generar un reinici no desitjat i, per tant, provocar un error de programació. A més, alguns microcontroladors necessiten un voltatge més alt per entrar en mode de programació i, per tant, cal comprovar que aquest valor no estigui atenuat i que aquest voltatge no es transmeti a altres components de la placa. Aplicació industrialLa programació en el sistema té lloc durant la fase final de producció d'un producte. Es pot dur a terme de dues maneres diferents en funció dels volums de producció: En el primer mètode, un connector es connecta manualment al programador. Aquesta solució espera la participació humana en el procés de programació que ha de connectar el programador a la placa electrònica amb el cable. Per tant, aquesta solució està pensada per a volums de producció baixos. El segon mètode utilitza punts de prova a la placa. Són zones específiques col·locades a la placa impresa, o PCB, que estan connectades elèctricament a alguns dels components electrònics de la placa. Els punts de prova s'utilitzen per realitzar proves funcionals dels components muntats a la placa i, com que estan connectats directament a alguns pins del microcontrolador, són molt eficaços per als ISP. Per a volums de producció mitjans i alts, utilitzar punts de prova és la millor solució, ja que permet integrar la fase de programació en una línia de muntatge. A les línies de producció, les plaques es col·loquen sobre un llit de claus anomenat fixació. Aquests últims s'integren, en funció dels volums de producció, en sistemes de prova semiautomàtics o automàtics anomenats equips de prova automàtics (ATE). Les fixacions estan dissenyades específicament per a cada placa, o com a màxim per a uns quants models similars a la placa per a la qual van ser dissenyats; per tant, són intercanviables en l'entorn del sistema on s'integren. El sistema de prova, un cop la placa i la fixació es col·loquen en posició, té un mecanisme per posar en contacte les agulles de la fixació amb els punts de prova de la placa a provar. El sistema està connectat a, o té integrat directament a l'interior, un programador ISP. Aquest ha de programar el dispositiu o dispositius muntats a la placa: per exemple, un microcontrolador i/o una memòria sèrie. ICSP de MicrochipPer a la majoria de microcontroladors de Microchip, la programació ICSP es realitza utilitzant dos pins, rellotge (PGC) i dades (PGD), mentre que un alt voltatge (12 V) és present al pin Vpp/MCLR. Programació de baixa tensió (5 V o 3.3 V) elimina l'alt voltatge, però reserva l'ús exclusiu d'un pin d'E/S. Tanmateix, per als microcontroladors més nous, concretament les famílies de microcontroladors PIC18F6XJXX/8XJXX de Microchip Technology, entrar als modes ICSP és una mica diferent. Entrar al mode Programa/Verificació ICSP requereix els tres passos següents:
![]() Es requereix una peça de maquinari separada, anomenada programador, per connectar-se a un port d'E/S d'un PC per un costat i al PIC per l'altre. Una llista de les característiques de cada tipus de programació principal és:
Els programadors ICSP tenen molts avantatges, sent la mida, la disponibilitat del port de l'ordinador i la font d'alimentació les principals característiques. A causa de les variacions en l'esquema d'interconnexió i el circuit de destinació que envolta un microcontrolador, no hi ha cap programador que funcioni amb tots els circuits o interconnexions de destinació possibles. Microchip Technology proporciona una guia detallada de programació ICSP Molts llocs web proporcionen exemples de programació i circuits. Els PIC es programen mitjançant cinc senyals (es proporciona un sisè pin 'aux' però no s'utilitza). Les dades es transfereixen mitjançant un esquema sèrie síncron de dos cables, tres cables més proporcionen programació i alimentació del xip. El senyal de rellotge sempre està controlat pel programador. Senyals i pinout![]()
Pinout RJ11![]() Microchip admet un estàndard de la indústria per a l'ús de sòcols RJ11 amb un programador ICSP. La il·lustració representa la informació proporcionada a les seves fitxes tècniques. Tanmateix, hi ha marge de confusió. Les fitxes tècniques del PIC mostren un sòcol invertit i no proporcionen una vista pictòrica dels pins, per la qual cosa no està clar en quin costat del sòcol es troba el pin 1. La il·lustració que es proporciona aquí no està provada, però utilitza el pin de configuració estàndard de la indústria telefònica (el connector/sòcol RJ11 es va desenvolupar originalment per a telèfons d'escriptori amb cable). Referències
|