Trăsături distinctive ale programatorului bazate pe sectorul de boot msp430

Programatorul bazat pe sectorul de pornire MSP430 (BSL) permite utilizatorului să acceseze memoria internă a microcontrolerului MSP430 în procesul de prototipare, fabricare sau service. Pentru modificare, sunt disponibile atât memoria software (flash) cât și memoria de date (RAM).







Pentru comunicare, se utilizează binecunoscutul protocol UART cu interfața RS232, care oferă o utilizare flexibilă a software-ului și a hardware-ului.

Accesarea datelor din memoria MSP430 printr-un programator bazat pe un sector de boot este protejat de accesul neautorizat de către o parolă de utilizator.

Programatorul pe baza sectorului de boot (BSL) prezintă posibilitatea programării memoriei flash a microcontrolerului MSP430 în timpul dezvoltării sau pentru actualizări. Activarea acestui mod poate fi efectuată de un utilitar care transmite comenzi utilizând protocolul UART bine-cunoscut (UART). BSL permite utilizatorului să monitorizeze funcționarea MSP430 și să facă schimb de date cu un computer personal sau un alt dispozitiv care acceptă protocolul UART.

Pentru a proteja programul BSL împotriva ștergerii accidentale, acesta este conținut într-un sector special de boot programat din fabrică al ROM-ului. Programul BSL nu poate fi șters prin nici o metodă. Codul încărcătorului este optimizat cu atenție pentru necesitățile BSL, accesul la acesta fiind efectuat utilizând comenzile descrise mai jos în acest document. Din motive de securitate, o atenție deosebită a fost acordată protecției codului de utilizator împotriva citirii neautorizate. Orice comandă BSL care permite citirea directă sau indirectă a datelor este protejată prin parolă.

Pentru a activa programatorul bazat pe sectorul de boot, trebuie să aplicați o secvență specială de semnale BSL la anumite ieșiri ale procesorului. După aceasta, se transmite un simbol de sincronizare, însoțit de transmiterea datelor care specifică executarea operației dorite.

2 Funcție de resetare standard (RESET) și activare BSL

2.1 Microcontrolere cu memorie flash MSP430 în pachete de 20 și 28 de pini cu ieșiri JTAG, combinate cu porturi de uz general

Execuția programului BSL începe din momentul în care cel puțin 2 impulsuri pozitive sunt aplicate la intrarea TEST și numai dacă intrarea TEST a fost în starea log. "1" pe frontul 0? 1 la intrarea -RST / NMI (metoda de activare a BSL, vezi figura 2). Această schemă de activare mărește fiabilitatea lansării BSL.

Fig. 1. Secvența standard a semnalelor de resetare (RESET)

Intrarea TEST este de obicei folosită numai pentru a comuta pinii portului P1.7 la P1.4 între funcțiile lor normale și funcțiile de interfață JTAG. Dacă este recepționat un al doilea impuls pozitiv la intrarea TEST, în timp ce intrarea -RST / NMI este în starea jurnalului. "0", semnalul de la intrarea TEST este transferat în jurnal. Circuitul "0" intern (modul de aplicare).

Figura 2. Procedura de activare a BSL folosind pini JTAG, combinate cu porturi de uz general

2.2 Microcontrolere cu memorie flash MSP430 cu pini izolați JTAG

Dispozitivele cu ieșiri JTAG separate utilizează ieșirea TCK în locul ieșirii TEST.

Execuția programului BSL începe după apariția a cel puțin două negative 1. 0 picături la intrarea TCK și, în plus, intrarea TCK este în starea log. "0" în timpul tranziției 0. 1 la intrarea -RST / NMI (procedura de activare a BSL, a se vedea figura 3). Această schemă de activare mărește fiabilitatea lansării BSL.

Figura 3. Procedura de activare a BSL folosind pini separați JTAG

3 Protocolul UART (UART)

Protocolul UART utilizat în acest caz are următorii parametri:
  • Rata de schimb este 9600 baud, modul semi-duplex (un transmițător în orice moment).
  • Bit inițial, 8 biți de date (primul LSB transmis), bitul de paritate (even), 1 bit stop.
  • Recepția cu succes este confirmată prin transmiterea unui simbol corespunzător (confirmare).






Notă: Utilizarea ratelor de schimb mai mari de 9600 baud poate duce la erori de comunicare sau erori de memorie flash din cauza nerespectării parametrilor de timp. Memoria flash ca urmare a acestui lucru poate fi supusă la sarcini inacceptabile, iar operațiile de ștergere / înregistrare nu vor fi efectuate în mod fiabil.

4 Secvență de sincronizare

Înainte de a trimite oricare dintre comenzi, trimiteți unui BSL un simbol de sincronizare (SYNC) egal cu 80h. Acest simbol este necesar pentru a calcula parametrii interni necesari care determină parametrii de timp ai UART și șterge / programa memoria flash. Această operație formează timpul sistemului BSL de referință.

Apoi, BSL trimite un simbol de confirmare DATA_ACK = 90h indicând recepționarea cu succes.

Notă: Simbolul de sincronizare nu este inclus în secvența de date a cadrului de date descrisă mai jos.

Există două tipuri de comenzi: necesită și nu necesită o parolă. Toate comenzile care permit accesul direct sau indirect la date sunt protejate prin parolă.

5.1 Comenzi neprotejate
  • Acceptați parola
  • Ștergere completă (șterge memoria flash, atât memoria principală, cât și memoria de date)
  • Citiți versiunea BSL (comanda este acceptată în versiunea BSL V1.60 sau mai recentă sau în versiunea descărcabilă a BL_150S_14x.txt)
  • Modificați rata de schimb (comanda este acceptată în versiunea BSL V1.60 sau o versiune superioară sau în versiunea BL_150S_14x.txt descărcabilă)
5.2 Comenzi protejate prin parolă
  • Acceptați blocul de date pentru programarea memoriei flash, a memoriei RAM sau a modulelor periferice
  • Transferați blocul de date
  • Ștergeți segmentul
  • Verificarea ștergerii (comanda este acceptată în versiunea BSL V1.60 sau superioară sau în versiunea descărcabilă a BL_150S_14x.txt)
  • Descărcați contorul de programe și executați programul de utilizator

6 Procesul de programare

Procesul de înregistrare (comanda "Accept block data" (bloc de date RX)) în memoria flash, RAM sau în modulele periferice se efectuează în timp real. Aceasta înseamnă că un octet sau un cuvânt de date este procesat imediat după primirea acestora și procesul de scriere este finalizat înainte ca următorul byte / cuvânt să fie complet recepționat. Astfel, timpul total de înregistrare este determinat de rata de schimb, nu se aplică metode de tamponare.

Notă: dacă UART este pierdut din cauza interferențelor pe linie sau dacă sunt pierdute cerințele temporale pentru transferul blocului de date, singura modalitate de a recupera schimbul este să reinitializați BSL.

7 Formatul parcelei

trimiterea de formatul de date utilizate de către programator, este un protocol serial companie standard (SSP) TI pentru MSP430, suplimentat anticipând secvența de sincronizare (SS), așa cum este descris mai sus. În tabelul 1, BSL este un receptor.

Redundanța evidentă a anumitor parametri este o consecință a adaptării în cadrul SSP și, de asemenea, servește la salvarea volumului ROM-ului de boot.

Informații suplimentare privind protocolul standard de serie (SSP) este conținut în documentul „Aplicarea microcontrolerelor de program de boot MSP430 cu memorie flash: software și hardware oferte (versiunea B)», Aplicarea Bootstrap Loader în MSP430 Cu Flash Hardware și Software Propunere (SLAA096) .

7.1 Structura datelor
  • Primele 8 octeți (de la HDR la LH), care sunt obligatorii (xx înseamnă că datele nu sunt semnificative).
  • Datele secundare opționale de la D1 la Dn.
  • Două octeți (CKL și CKH) din suma de control (sunt necesare).

Recunoașterea de la BSL, necesară pentru toate comenzile, cu excepția transmiterii blocului de date și a transmiterii versiunii BSL.

7.2 Suma de control

16-biți (2 octeți), suma de control se calculează pe toate primite / B1 ... bytes transmisă Bn în pachet, cu excepția octetul de control real prin efectuarea de operații XOR cu operanzi-cuvinte (2 octeți), iar rezultatele de inversare.

CHECKSUM = INV [(B1 + 256 * B2) XOR (B3 + 256 * B4) XOR ... XOR (Bn-1 + 256 * Bn)]

CKL = INV [B1 XOR B3 XOR ... XOR Bn-1]; CKH = INV [B2 XOR B4 XOR ... XOR Bn]

Tabelul 1. Formatul pentru trimiterea comenzilor BSL

Note: Toate numerele din tabel sunt octeți în formă hexazecimală
ACK-ul este transmis înapoi de la BSL.
Secvența de sincronizare nu este inclusă în blocul de expediere.
Comenzile "Verificați ștergerea" și "Transferul versiunii BSL" nu sunt incluse în setul de comandă standard (V1.50 sau superior).
„Rata de transfer Schimbarea“ comandă nu este inclusă într-un set standard de comenzi (V1.60 sau mai târziu sau BL_150S_14x.txt descărcabile).

HDR DATA_FRAME = 80h înseamnă trimiterea anticipată a datelor în conformitate cu protocolul serial standard (SSP) al TI pentru MSP430.

Identificator de comandă CMD

L1, L2 Numărul de octeți într-un mesaj de la limitele AL la Dn: L1 = L2, L1 1KB RAM)

Descărcați fișierul BL_150S_14x.txt, care vă va permite să utilizați toate caracteristicile versiunii V1.60 și să utilizați corect comanda "Ștergeți segmentul" (Ștergeți segmentul)
Vezi secțiunea "BSL descărcabilă".

Actualizare opțională pentru F1x4 ... F1x9:
utilizați un mic BSL descărcabil
(necesită <512Б ОЗУ)

Descărcați fișierul BS_150S_14x.txt. care va permite utilizarea unor caracteristici ale versiunii V1.60. Vezi secțiunea "BSL descărcabilă".

Tabelul 4. Versiunea BSL 1.30 în microcontrolerele seriei F41x, F11x și F11x1







Trimiteți-le prietenilor: