Sterowniki mikroprocesorowe w aplikacjach sieciowych

Jedno z najtrudniejszych laboratoriów (z dr Marianem Bogdanem), polegające na oprogramowaniu mikrosterownika ST7. Zadania obejmowały port szeregowy, protokół 1Wire, port podczerwieni, SCI i packet radio.

Udostępniam publice to, co było w tym laboratorium moim udziałem (nie chwaląc się - chyba jako jedyna grupa dostaliśmy ocenę 5.5 :-P).

1-Wire

1wire.pdf

Termometr DS18B20"1-Wire jest rodzajem interfejsu komunikacyjnego pomiędzy dwoma (lub więcej) urządzeniami, realizowanym przy użyciu zaledwie jednej linii do transmisji danych (niezbędna jest również linia masy, aby zapewnić interfejsowi napięciowemu odpowiedni poziom odniesienia). Tak znaczne zredukowanie zasobów potrzebnych do transmisji wymagało opracowania skomplikowanego protokołu, który byłby w stanie realizować dwukierunkowy przepływ danych oraz tworzenie sieci urządzeń peryferyjnych. Dokonała tego firma Dallas Semiconductor (dziś Maxim), produkująca obecnie zdecydowaną większość układów wykorzystujących 1-Wire. Oferowane przez 1-Wire przepustowości są stosunkowo niewielkie - standardowo 16 kbps (w trybie overdrive maksymalnie do 142 kbps). Mamy możliwość adresowania urządzeń (co więcej, każdy wyprodukowany układ ma unikatowy numer seryjny), dzięki czemu możliwe jest ich łączenie w sieć (przykład na rysunku powyżej). Interfejs 1-Wire w porównaniu do I2C pozwala na wolniejszą transmisję danych. Niewątpliwymi jego zaletami są stosunkowo niska cena oraz szeroki wachlarz zastosowań. 1-Wire jest zazwyczaj używany do komunikacji pomiędzy niewielkimi urządzeniami, takimi jak: termometry cyfrowe, instrumenty metrologiczne, sterowniki ładowania akumulatorów, zamki elektroniczne typu iButton, itp. W dalszej części sprawozdania znajduje się szczegółowy opis interfejsu oraz jego zastosowania."

SCI

sci2ovf.asm
sci2_recv.asm

Złącze SCISCI (Serial Communication Interface) - jest to urządzenie pozwalające na szeregową (jeden bit na raz) wymianę danych pomiędzy mikroprocesorem a peryferiami takimi jak drukarka, napędy zewnętrzne, skanery albo mysz. W tym sensie jest to termin podobny do SPI (Serial Peripheral Interface). Ale dodatkowo SCI pozwala na szeregową komunikację z innym mikroprocesorem lub z siecią zewnętrzną. Termin SCI został użyty po raz pierwszy przez firmę Motorola w 1970. Znany jest również jako UART (Universal Asynchronous Receiver/Transmitter).

SCI zawiera konwerter równoległy-do-szeregowego, który służy jako nadajnik, oraz konwerter szeregowy-do-równoległego, który służy jako odbiornik. Te dwa urządzenia są taktowane osobno, używają też niezależnych sygnałów typu enable i przerwań. SCI operuje w systemie nonreturn-to-zero, co oznacza brak stanu „neutralnego” (logika jest dwuwartościowa: 1 i 0 dla stanów „wysoki” i „niski”), może pracować w trybie half-duplex (używając tylko nadajnika lub tylko odbiornika) lub full-duplex (używając równolegle nadajnika i odbiornika). Prędkość przesyłu danych jest programowalna.