Texas Instruments bazate pe pneuri de punere în aplicare SMBus pe microcontroler MSP430

Punerea în aplicare pe bază de autobuz SMBus pe MSP430 microcontroler

SMbus este un două fire sincron protocol serial, care derivă din I 2 C. Ca 2 C, se folosește o linie serială de ceas (SCL) și date (SDA). Pentru a elimina starea nedeterminat pe linia pullup utilizate (pullup) rezistențe sau surse de curent, precum și dispozitivele conectate la magistrala trebuie să fie de ieșire la „colector deschis“ sau „scurgere deschise“. Acest lucru corespunde cu montarea „și“ toate dispozitivele, ceea ce înseamnă că fiecare dintre dispozitivele pot traduce fie autobuz în jurnalul de stat. „0“, sau eliberați-l. Deoarece dispozitivele conectate la magistrala poate fi alimentat de la diferiți factori de stres, acestea nu trebuie să transfere linia în stare jurnal. "1".

Toate dispozitivele sunt împărțite în frunte (master) și slave (sclav). Dispozitivul de master poate iniția un transfer și generează semnalul de ceas. Sclavul transmite sau recepționează date, dar transmisia este inițiată de către comandant. Dispozitivele pot avea ca atribute de conducere și acționat simultan și să fie doar una sau alta. De exemplu, dispozitivul slave poate, să devină, în cazuri extreme, de master și de transfer de mesaje de eroare de sistem. Algoritmul pentru acest comportament este determinat în întregime de aplicația particulară.

La primirea și transmiterea datelor folosind șapte protocoale diferite. Această „comandă» rapidă (comandă rapidă), «Trimite octet» (Trimite Byte), «Ia octet» (Primire Byte), «Scrie Word / Byte» (octet de scriere / Word), «Citește Word / Byte» (Read Byte / Word), «stare de interogare» (Procesul de apel), și „Block citire / scriere» (Block citire / scriere). Fiecare protocol are propriul set de acțiuni specifice, dar schema generală este similară pentru toate protocoalele.

part 2 hardware


Fig.1. Exemplu de SMBus

Notă: Neutilizat concluzie T este un termistor. Acesta este utilizat în baterii Li-Ion pentru unitățile de măsură de urgență în cazul unei defecțiuni a modulului baterie sau un SMBus.

3 Implementare dispozitiv SMBus de master autobuz

Deoarece SMBus suportă mai mulți stăpâni pe autobuz (Multimaster) și „fierbinte de comutare» (hot-plug), acest lucru duce la erori. Cauzele lor sunt lipsa de angajare a anvelopelor slave conflicte între mai multe dispozitive de master și interferențe pe autobuz. Programul include eroare de manipulare și de pavilion de eroare. În cazul în care eroarea de transmisie este detectată este terminată, programul pune pavilion de eroare și se întoarce de la nivelul superior al rutinei. software personalizat trebuie să verifice pavilion pentru a determina de succes (1) se întoarce sau false (returnează 0) este finalizată. procesarea evenimentelor de eroare este realizată prin programul de utilizator.

Programul principal include subrutine nivelelor superioare și inferioare și este poziționat în afară de programul utilizatorului. Un loc în care să fie localizat programul de utilizator este lăsat liber. Pentru a transmite date SMBus de autobuz, pur și simplu solicită rutina corespunzătoare de nivel superior.

Exemplele 4 program de dispozitiv SMBus autobuz de master

4.1 Căutați dispozitive pe magistrala

Datorită simplității de exemplu, acesta a fost eliminat o parte substanțială a codului. Codul rămasă poate fi rulat în afara modulului monitor program de depanare MSP430x33x (EVK part number MSP-EVK430x330).

înregistrând valoarea în registru este utilizat, de asemenea, „avertisment capacitatea rămasă» (RemainingCapacityAlarm), valoarea înregistrată este verificată. Aceste operațiuni sunt efectuate în mod repetat, rezultatul este afișat pe ecranul LCD. Acest exemplu demonstrează utilizarea mai multor protocoale complexe și a reveni procesul de prelucrare a datelor. În această configurație, programul de protocol SMBus este rulat de la EPROM modul de depanare MSP430x33x (EVK part number MSP-EVK430x330), iar programul de utilizator este pornit de la afișarea modulului.

5 Punerea în aplicare de autobuz de sclavi SMBus

Registrele nu sunt salvate în stivă pentru a se asigura că cerințele din caietul de sarcini cea mai rapidă secvență de pornire. Timpul dintre SDA tranziție și liniile SCL în jurnal. "0" poate fi de 4 ms. Dacă este cunoscută, dispozitivul principal dă semnale de durată mai pot fi stocate în registrele teancului de la începutul procedurii, dar acest lucru poate provoca bascula începe trimiterea atunci când se lucrează cu mai maestru rapid.

Anexa A SMBus program de master de autobuz

Obțineți sfaturi și să stăpânească componentele pe care le va avea distibutora din Texas Instruments companie Compel,