470 likes | 680 Views
NRS. NAMENSKI RAČUNARSKI SISTEMI PART 3. Autor : Nenad Jovičić. Projektni zadatak 2.
E N D
NRS NAMENSKI RAČUNARSKI SISTEMI PART 3 Autor: NenadJovičić
Projektnizadatak2 Napisati C projekatza razvojni sistem RS-MSP430F449 kojiobezbeđujeserijskuvezu mikrokontrolera sa PC računarom. Brzina komunikacije treba da bude 2400 bit/s, bez bita parnosti i sa jednim stop bitom. Pritiskom na tastera potrebno je generisati slanje podatka u promenljivoj data. Sa druge strane, numerički jednocifreni podatak primljen preko serijske veze treba snimiti u promenljivu data i ispisati ga na sedmosegmentni LED displej.
Opis hardvera Razvojni sistem RS-MSP430 poseduje više funkcionalnih celina od kojih su one interesantne za ovaj projekat prikazane na slici
Kreiranje projekta S obzirom da je tražena implementacija u C-u, u dijalogu kreiranja projekta se bira C-ovski template.
Osnovni fajl Predefinisani Template za C-ovski projekat je prikazan na slici
UART • Podatak dužine 7 ili 8 bita i bit parnosti • Nezavisan rad prijemnika i predajnika • Baferisani prijemni i predajni registri • Ugrađena podrška za multiprocesorsku komunikaciju • Mogućnost buđenja iz LPMx moda na startnu ivicu signala na ulazu u prijemnik • Mogućnost podešavanja brzine prenosa u širokom opsegu i sa velikom rezolucijom • Hardverska detekcija greški u prenosu • Dva nezvisna prekida prijemnika i predajnika
Baud rate generator • Generator sadrži 16-bitni brojač, 16-bitni delitelj/preskaler i modulator • Bitska učestanost BITCLK može biti najviše jedna trećina BRCLK • Faktor N kojim se deli učestanost BRCLK u cilju dobijanje željene bitske učestanosti se dobija kao N=BRCLK/baud rate • U opštem slučaju N nije ceo broj
Baud rate generator • Ceo deo odnosa N se upisuje u UxBR registar a decimalni deo se predstavlja sa osam bita upisanih u registar UxMCTL
Drugi pristup - UART prekidi • UART posedujedvaodvojenaprekidnavektora – jedanzaprijemnikidrugizapredajnik • Prekidprijemnika se događakada je podatakprimljeniupisan u UxRXBUFregistar • Prekidpredajnika se događakada je sadržajpredajnogregistraUxTXBUFprebačen u izlaznipomeračkiregistarimože se upisatinovipodatak
Multiprocesorski mod • UART daje mogućnost da se iz serijskog niza karaktera izdvajaju adrese i podaci • Na taj način se omogućava paralelno vezivanje više uređaja (procesora) na serijsku magistralu • Dva načina multiprocesorske komunikacije: • “idle line” protokol • protokol sa bitom markerom adrese
“idle line” protokol • Jednom serijskom porukom se smatra niz karaktera koji se šalje u kontinuitetu tako da je vremensko rastojanje između dva karaktera manje od deset perioda serijskog takta • Prvi karakter u nizu predstavlja adresu • Niz karaktera koji slede su podaci • Svaki vemenski razmak veći od deset perioda serijskog takta se smatra za kraj poruke
“idle line” protokol • Predajnik automatski generiše idle line stanje kada se setuje odgovarajući bit u kontrolnom registru • Prijemnik može biti podešen da izaziva prekid samo po prijemu karaktera adrese, a da ostale karaktere ignoriše • Po prijemu adrese u prekidnoj rutini se rekonfiguriše prijemnik za prijem podataka
Multiprocesorski mod sa adresnim bitom • U okvir serijskog podatka koji sadrže 7 ili 8 bita može se dodati i deveti bit koji služi kao marker adrese kod serijske produžne magistrale • Kao i kod idle_line moda prijemnik može biti podešen da izaziva prekid samo po prijemu karaktera adrese, a da ostale karaktere ignoriše • Po prijemu adrese u prekidnoj rutini se rekonfiguriše prijemnik za prijem podataka
Greške u prenosu • Prijemnik automatski prepoznaje geške u prenosu i setuje odgovarajuće flegove
SPI – serial peripheral interface • USART modul podržava i sinhronu komunikaciju • Sinhronaserijskakomunikacija • Fizički se ostvarujekorišćenjem tri pina SIMO, SOMI i UCLK • U slučajuvezivanjavišeuređajaparalelnonamagistralukoristi se i pin STE • Podražavaprenos 7 ili 8 bitapodataka
SPI – MSP kao Master • Proces slanja počinje upisom podatka u UxTXBUF. Nakon toga podatak se prebacuje u pomerački registar i kreće slanje sa prvim bitom najveće težine. Uporedo sa slanjem podatka, od druge strane (slave) se dobija podatak koji se upisuje u prijemni pomerački registar. Po prijemu podatak se prebacuje iz pomeračkog registra u UxRXBUF i izaziva se prekid. • Operacije predaje i prijema podatka su povezane i funkcionišu isključivo u paru • U slučaju više paralelno vezanih uređaja master je onaj koji na svom STE pinu ima visok logički nivo
SPI – MSP kao Slave • Podaci upisani u UxTXBUF i prebačeni u pomerački registar pre pojave takta od strane mastera se šalju preko SOMI linije • Na suprotnu ivicu takta upisuju se podaci u ulazni pomerački registar • Po prijemu svih bita izaziva se prekid • Dok je nivo na STE pinu nizak SPI funkcioniše normalno. STE na visokom nivou zaustavlja prijem podataka, SOMI se konfiguriše kao ulazni pin
Prekidi • Dva posebna prekida : • Jedan za prijemnik koji se događa po prijemu podatka u UxRXBUF • Drugi za predajnik koji se događa kada je UxTXBUF spreman da primi sledeći podatak. Slanje upisanog podatka u UxTXBUF se startuje tek pošto se završi slanje prethodnog podatka.
I2C (inter-IC control) modul • Prisutankodpodfamilije MSP430x1x kaodeo USART0 modula • ZadovoljavaPhilips-ov I2C standard v2.1 • 7-bitne ili 10-bitne adrese • Master ili slave mod rada • Prenosbajtailireči • Brzineprenosa do 400kb/s u fast modu • Multi-master arbitracija • Automatskobrojanjeprenetihpodataka • MogućnoststartovanjaiizLPMxmoda
I2C povezivanje na magistralu • Svaki uređaj na magistrali može da radi i kao predajnik i kao prijemnik • Svaki uređaj može takođe da bude ili master ili slave • Svakom uređaju je dodeljena jedinstvena 7-bitna ili 10-bitna adresa
I2C signali na magistrali • Master je onaj uređaj koji diktira takt SCL. Svi ostali su slave-ovi. • Master započinje prenos obaranjem SDA signala dok je takt SCL na visokom nivou (START) • Prvi podatak u nizu je adresa, a posle nje idu podaci • U zavisnosti od R/W bita master će u nastavku prenosa biti ili predajnik ili prijemnik • Slave posle primljene adrese ili prijemnik posle svakog primljenog podatka izdaje odziv ACK (prijemnik može da bude ili master ili slave). ACK se generiše kao držanje niskog nivoa na SDA liniji dok je takt aktivan. • Po završetku prenosa master završava prenos podizanjem nivoa na SDA liniji dok je signal takta na visokom nivou (STOP)
Adresiranje • 7-bitno adresiranje • 10-bitno adresiranje
I2C Prekidi • Jedan prekidni vektor je zajednički za sve izvore prekida • Postoji osam različitih izvora prekida koji svi setuju posebne flegove • Slično kao i kod tajmera postoji registar generator vektora I2CIV, koji se koristi za skok na početku prekidne rutine u zavisnosti od izvora prekida