ZESZYTY NAUKOWE POLITECHNIKI ¿ŁASKIEJ Seria: AUTOMATYKA z. 81
______ 1986 Nr Kol. 851
Stanisław ŁABĘCKI Instytut Elektroniki
Politechniki Śląskiej w Śliwicach
MONITOR GRAFICZNY W MIKROKOMPUTEROWYM SYSTEMIE POMIAROWYM
Streszczenie. W pracy przedstawiono koncepcję rozwiązania moni- tora graficznego w mikrokomputerowym systemie pomiarowym, ze szcze
gólnym uwzględnieniem pamięci generującej obraz. Przedstawiono tak
że algorytmy elementarnych operacji graficznych realizowanych przez mikroprocesor, w tym również sposób kodowania obrazu.
1. WPROWADZENIE
Monitor graficzny znajduje coraz szersze zastosowanie do indykacji in
formacji zarówno w przemyśle przy kontroli procesów technologicznych, w pracowniach przy komputerowo wspomaganym prooesie projektowania, jak i w laboiatoriach do graficznego przedstawienia wyniku eksperymentu. W wielu zastosowaniach nieekonomiczne jest wyposażenia laboratorium w komputer, czy nawet minikomputer angażowany jedynie do generacji obrazu. W większoś
ci prac eksperymentalnych sterowanyoh mikroprocesorem można wykorzystać Istniejący już mikrokomputer do generacji obrazu w monitorze graficznym.
2. STRUKTURA MONITORA GRAFICZNEGO STEROWANEGO MIKROPROCESOREM
Typowy mikrokomputerowy system pomiarowy przedstawiony jest na rys. 1.
Mikrokomputerowy system pomiarowy oparty jest na wspólnej wewnętrznej ma
gistrali, za pośrednictwem której mikroprocesor steruje poszczególnymi blokami układu. Mikroprocesor realizując program zawarty w pamięci ROM bada zlecenia z pulpitu operatora i na ioh podstawie może wykonywać ope
racje graficzne według danych zgromadzonych podozas pomiarów w pamięci RAM, bądź też bezpośrednio na danych w pamięci obrazu monitora graficzne
go. Nie wszystkie bloki takiego systemu pomiarowego muszą występować rów
nocześnie, ale taka konfiguracja zapewnia dużą uniwersalność urządzenia.
Najistotniejszym blokiem w monitorze graficznym jest układ pamięci obrazu. W chwili obecnej w większości monitorów graficznych funkcję pamię
tania obrazu przeniesiono z luminoforu lampy obrazowej do pamięci cyfro- wej typu RAM, a obraz jest kreślony sekwencyjnie, tak Jak w odbiorniku
-e-PO
Monitor graficzny
Pulpit
operatora Procesor XS.
V .»' 0
0 0
konwertery konwertery
A/C C/A
Pamięć typu RAM
u
Pamięć typu ROM
u
Układ korekcji r
Układ pamięci
obrazu
UWtady odchylania
I__
□ E L z
Magistrala
Ploter
systemu
S T
Pamięć magnetyczna
: J L interfejs magistrali
zewnętrznej
O
MagistralazewnętrznaRys. 1. Schemat blokowy mikrokomputerowego systemu pomiarowego z monitorem graficznym Fig. 1. Block scheme of microcomputer measurement system with graphic monitor
St. labęcki
Monitor graficzny.. 43
telewizyjnym. Stało się to możliwe dzięki produkcji pamięci o dużych po
jemnościach.
Znane układy pamięć-, obrazu monitora graficznego opierają się na dwóch rozwiązaniach . Pierwsze z nich polega na zastosowaniu pojedynczej pamię
ci typu RAM dostępnej z magistrali systemu tylko wtedy, gdy strumień elek
tronów lampy obrazowej znajdzie się poza polem kreślonego obrazu, tzn. w strefie marginesu pionowego lub poziomego. Drugie ze znanych rozwiązań polega na zastosowaniu dwóch pamięci typu RAM, z których pierwsza jest dostępna z magistrali, druga zaś stanowi wówczas pamięć obrazu. Po zapi
saniu nowego obrazu w pamięci dostępnej z magistrali następuje zamiana ról tych pamięci i wówczas obraz na ekranie jest kreślony z pierwszej pa
mięci, a druga jest dostępna z magistrali systemu do przygotowania kolej
nego obrazu.
Wadą pierwszego rozwiązania jest to, że pamięć dostępna jest z magis
trali systemu tylko przez około połowę czasu, co powoduje wydłużenie cza_
su potrzebnego na wygenerowanie nowego obrazu.
W przypadku drugiego rozwiązania wprawdzie dostęp do pamięci obrazu jest natychmiastowy, lecz w pamięci aktualnie dostępnej z magistrali znaj
duje się inny obraz niż jest wyświetlany, co powoduje konieczność powie
lenia tych samych fragmentów obrazu przy jego modyfikacji.
W celu minimalizacji czasu dostępu do pamięci obrazu monitora graficz
nego z magistrali mikrokomputera i eliminacji konieczności powielania tych samych fragmentów obrazu przy jego modyfikacji opracowano układ, którego schemat blokowy przedstawiony jest na rys. 2. W układzie tym zastosowano trzy pamięci: RAM1, RAM2, LIRO. Z magistrali systemu dostępna jest tylko pamięć RAM1. Pamięć RAM2 stanowi właściwą pamięć obrazu. Jeżeli pamięć RAM1 nie jest adresowana z magistrali, wówczas pamięci RAM1 i RAM2 pracu
ją synchronicznie w ten sposób, ża obydwie są adresowane z licznika adre
sowego LA i pamięć RAM1 realizuje cykl odczytu, a pamięć RAŁJ2 cykl odczyt - modyfikacja - zapis. Dzięki temu zawartość pamięci RAM2 jest ciągle uak
tualniana. Jeżeli wystąpi operacja zapisu z magistrali do pamięci RAM1, wówczas adres komórki pamięci, do której był wykonywany zapis, zostaje zapamiętany w pamięci LIFO. Z chwilą kiedy strumień elektronów w lampie obrazowej znajdzie się poza polem kreślonego obrazu, układ sterujący US spowoduje korekcję komórki w pamięci RAM2 o takim adresie, pod jakim była wykonywana operacja zapisu w pamięci RAM1. Dzieje się to w ten sposób, że źródłem adresu dla pamięci RAM1 i RAM2 staje się pamięć LIRO i pamięć RAM1 wykonuje cykl odczytu, a pamięć RAM2 cykl zapisu. Poprzez zastosowanie pa_
mięci LIFO osiągnięto szybszą korekcję obrazu w pamięci RAM2, gdyż odbywa się ona już pomiędzy kreśleniem kolejnych linii na ekranie lampy. Blokiem, który pośredniczy pomiędzy układem generacji obrazu, a układami odchylania lampy obrazowej jest układ korekcyjny. Jego zadaniem jest korekcja nieli
niowości odchylania i ostrości obrazu. 0 nieliniowości odchylania decydu
ją dwa elementy: geometria lampy obrazowej i nieliniowości samego układu
Rys. 2. Struktura blokowa układu pamięci obrazu monitora graficznego (układ jest przedmiotem wniosku pa
tentowego nr P-242484)
Fig. 2. Block structure of tbe system of monitor picture memory (patent proposal n. P-242484)
Monitor graficzny.« A l
odchylania. Zazwyczaj układ korekcyjny koryguje jedynie nieliniowości wy
nikające z geometrii lampy obrazowej, a korekcja nieliniowości układu od
chylania jest realizowana wewnątrz niego. Wypracowanie wartości sygnałów korekcyjnych do układów odchylania jest możliwe na drodze cyfrowej, gdyż położenie strumienia elektronów w lampie obrazowej jest określone poprzez licznik LA. Korekcji wymaga również ostrość obrazu, gdyż zmienia się ona zarówno z położeniem strumienia elektronów w lampie obrazowej, jak i z jego natężeniem (przy wielowartościowej modulacji jaskrawości).
3. ALGORYTMY ELEMENTARNYCH OPERACJI GRAFICZNYCH
Dzięki zastosowaniu mikroprocesora wiele operacji graficznych może być realizowanych wewnątrz systemu pomiarowego. Z jednej strony umożliwia to pracę autonomiczną, a z drugiej eliminuje konieczność angażowania kompu
tera do wykonywania prostych operaoji.
Najprostszą operacją jest kasowanie obrazu. Zadaniem mikrokomputera jest wówczas zapełnienie całej pamięci obrazu zerami (przy konwencji, że jedynka logiczna oznacza świecenie punktu). Jest to zadanie proste, lecz czasochłonne. Szozególnie w tym przypadku jest widoczna przydatność in
strukcji przesłań grupowych.
Kolejnym podprogramem realizowanym przez mikrokomputer jest operacja zaświeć/zgaś punkt o współrzędnych X-Y. Zadaniem mikroprocesora jest okreś
lenie na podstawie zadanych współrzędnych adresu komórki pamięci obrazu i pozycji bitu w tej komórce, a następnie ustawienie w odpowiedni stan logiczny tego bitu.
Podprogram bazujący na operacji zaświecenia punk+u o zadanych współ
rzędnych to operacja kreślenia linii z punktu do punktu ^2^2* *u -lcr0- procesor musi wówczas obliczyć ciąg punktów krzywej schodkowej (dysponu
jemy jedynie dyskretnymi wartościami) aproksymującej zadaną linię prostą.
Algorytm aproksymacji wraz z przykładem przedstawiony jest na rys. 3. Ba
zuje on jedynie na operacjach dodawania i odejmowania, zapewniając jedno
cześnie błąd aproksymacji nie większy niż 1/2 elementarnego kroku.
Do opisu obrazu wykorzystywany jest podprogram realizujący kreślenie w zadanym polu znaku graficznego z generatora znaków. Parametrami wejścio
wymi do podprogramu są kod znaku oraz współrzędne pola (np. lewy górny róg znaku), w jakim znak ten ma być Umieszczony. Mikroprocesor pobiera generatora znaków dane kodująoe znak i zanosi je pod odpowiedni adres do pamięci obrazu. Dla utrwalania 1 odtworzenia zarejestrowanego obrazu wyko
rzystywane są dwa podprogramy. Jeden z nich koduje obraz i zapisuje go w pamięci magnetycznej, a drugi wykonuje operację odwrotną - czyta pamięć magnetyczną, dekoduje obraz 1 zapisuje go do pamięci obrazu. Sens kodowa
nia istnieje wtedy, gdy pewne fragmenty obrazu powtarzają się. Dotyczy to zwłaszcza tła obrazu. Wówczas, dzięki kodowaniu obrazu, zmniejsza się
4-6 St. łabęcki
D X > D Y
D X > S O '
K O N I E C S T A R T
X=X< Y=Y<
O X= IXa-X-ii D Y = IY i-Y * l K X = K - siqn / X z - X i / K Y = K - s io n / Y2-Y < /
Zq s w. punkt o ws^crfrz.
Y= Y + K Y S D Y = S D Y - 0 X
-- s “
f - •:L
=ij—~ S
'v~iX - - 4§
.Jj'- ■■
V
— -
X = X + K X SD Y= S D Y + D Y
N=N-4 Znśw. punkt
o wspotrz.
XY
S D X = D X N = O Y
X = X + K X SO X = S O X -O Y
Y = Y + K Y SD X = S D X + D X
N = N -1
I ' , f t ...
Z a sw . punkt o w sp o trz .
Rys. 3. Algorytm aproksymacji Unii prostej (a) i przykłady jego reallia- cji (bj. K oznacza wartość elementarnego kroku aproksymacji
Pig. 3. Algorithm of straight U n a approximation a) and examples of its realization b) X is a value of elementary approximation step
Monitor graficzny.»« 47 pojemność pamięci potrzebnej do przechowania obrazu. W zależności od cha
rakteru obrazu spoaób optymalnego kodowania może być różny. W zbudowanym modelu zastosowano dwa sposoby kodowania. Pierwszy z nich pozwala na za
kodowanie dowolnego obrazu. Ciąg kodujący rozpoczyna się od znaku infor
macyjnego, w którym na dwóch najstarszych bitach określa się sposób inter
pretacji tego i następnych znaków w ciągu. Wyjaśnia to tabela 1.
Tabela 1 Znaczenie znaków informacyjnych w ciągu kodującym obraz
D7 JD6 D5+H0 Opis
0 0 1 1+1 kolejnych znaków w ciągu stanowi (l+1)^
kolejnych punktów obrazu, po czym następny znak jest zna
kiem informacyjnym,
0 1 k Należy wykreślić (k+1)|| ciemnych punktów, a następny znak jest znakiem informacyjnym,
1 0 k Należy wykreślić (k+1)jj punktów określonych przez następny znak, po ozym kolejny znak jest znakiem informacyjnym.
1 1 X Znak lnformaoyjny kończący ciąg kodujący obraz m jest liczbą bitów kodujących jaskrawość punktu (m=1-r8)
Ciąg kodujący, w zależności od obrazu jaki jest kodowany, posiada różną długość. Ha końcu ciągu kodującego znajduje się znak informacyjny, w któ
rym na dwóch najstarszych bitach znajdują się jedynki. Przyjęty sposób ko
dowania jest szczególnie wygodny przy dekoaowaniu obrazu przez mikroprocesor ze względu na prostą interpretację znaków w ciągu. Kodowanie, a zwłaszcza dekodowanie jest szczególnie szybkie, jeżeli procesor posiada instrukoje przeBłań grupowych. Algorytm kodowania i dekodowania obrazu jest przedsta
wiony na rysunkach 4 1 5 . Wybór takiego algorytmu kodowania stanowi pewien kompromis pomiędzy minimalną długością ciągu kodującego, a złożonością al
gorytmu kodowania.
Ze względu na charakter prowadzonych prac eksperymentalnych (w których monitor graficzny był wykorzystywany do przedstawienia wykresów lub prze
biegów czasowych) opracowany został również i prostszy Bposóh zapisania obrazu w pamięci zewnętrznej. W metodzie tej nie jest kodowany sam obraz, lecz w pamięoi zewnętrznej zapisywane są dane, na podstawie których obraz jest tworzony. V tym przypadku nie istnieje problem kodowania obrazu, gdyż korzysta się z naturalnej postaci jego zakodowania w ciągu punktów wykresu i kodów znaków alfanumerycznych opisujących obraz. Pozostaje jedynie pro
blem odtworzenia obrazu. Sposób zapisania danych służących do generacji obrazu jest zilustrowany w tabeli 2, a algorytm odtwarzania obrazu przed
stawia rys. 6.
48 St. labęoki
START
N+k/=/N+k+V
Xi= 4 0h+U
N=N+k+4
KONIEC
KONIEC
Monitor graficzny. 49
T Xi = C0H
4. PODSUMOWANIE
Xi =/NH/
i ='i + 4 t=lM
l ( KONIIEC )
Rys. 4a i 4b. Algorytm kodowania dowolnego obrazu (patrz tabela 1) Znaczenie symboli: Xi - i-ty wyraz ciągu kodującego, Nmin - dolny adres pamigoi obrazu, Nna:£ - górny adres pamięci obrazu, N - bieżący adres pa
mięci obrazu, (łł) - zawartość komórki pamięci obrazu o adresie N, k - licz
ba kolejnych słów w pamięci obrazu takich samych jak słowo o adresie N, 1 - liczba słów w pamięci obrazu takich, że (N+1) i (N+1+1)
Fig. 4a and 4b. Algorithm of a picture coding (see table 1) X^ - the i-th word of a coding sequence, Nfflln - lower address of memory of picture, Nmax - upper address of memory of picture, N - current adreas of memory of picture, (N) - contents of memory cell with address N, k - number of sequential words in the memory of picture the same like the word with the adress N, 1 - number of words in memory of picture duch that
(N+1) f (N+1+1)
Weryfikacja koncepcji monitora graficznego została przeprowadzona w trakcie prac eksperymentalnych, gdzie model monitora był wykorzystywany do graficznego przedstawienia wyniku pomiarów zarówno w postaci bezpośred-
50 St. łabęcki
Y = X ;a C 0h 1 = X ,a s f h k 'X 't a5 Fh
Rys. 5. Algorytm dekodowania obrazu zakodowanego wg algorytmu przedsta
wionego na rys. 4a i 4b. Znaczenie symboli jest takie samo jak na rys. 4 Fig. 5. Algorithm of decoding of a picture coded according to the algorithm
presented on the fig. 4a and 4b
niej (np. przy realizacji modelu oscyloskopu cyfrowego), jak też w posta
ci przetworzonej (np. widmo sygnału, funkcja przejścia badanego układu itp.). Dzięki dużej ilości informacji, jaką niesie obraz, możliwa jest szybka ocena eksperymentu. Zwiększenie czytelności obrazu, zwłaszcza przy wielu nałożonych na siebie przebiegach, możliwe jest przy zastosowaniu ko
lorowej lampy obrazowej.
/N/=00h N = N M
1= M X=X+8
i = l+/1
monitor graficzny».« _______________________________________________ gj_
C s r A B T )
C =A\ aC 0h
KONIEC
Rys. 6. Algorytm generacji obrazu wg ciągu kodującego opisanego w tabeli 2 Znaczenie symboli: A^ - i-ty wyraz ciągu kodującego, Ymax ~ H ° zba punkttfw na osiach X i Y; X, Y - współrzędne punktu na ekranie, 1 - liczba
znaków w napisie; B, C, i - wartości pomocnicze
Fig. 6. Algorithm of generating of,a picture according a sequence descri
bed in the table 2 A^-the i-th word of a coding sequence
^Taax’ ^max " number P°iuts on arises X and Y; X, Y - coordinates of a point on the screen, 1 - number of signs in the descriptions; B, C, i -
auxiliary values
52 S t . Ł a b ę c k i Tabela 2 Znaczenie znaków informacyjnych w ciągu danych do generacji obrazu
D2 P6 D5+D0 Opis
0 0 X Na dwóch następnych pozycjach znajdują się współrzędne Xa, Xb początku i końca linii wykresu, którego współrzęd
ne Y^ ( a < i < b ) są podane na kolejnych b-a+1 pozycjach.
0 1 1 Na dwóch następnych pozycjach znajdują się współrzędne pola pierwszego z 1+1 znaków alfanumerycznych napisu. Na kolejnych 1+1 pozycjach znajdują się kody znaków
1 0 X Na dwóch kolejnych pozycjach określony jest środek układu współrzędnych
1 1 X Koniec ciągu danych
.ITERATURA
[1] Dinwiddie K.: Memory organization and high speed processor facilita
te unique image display capabilities. Computer Design, July 1981.
[2] Jones D., Fletcher J.: Graphics and imaging systems offloads host computer. Computer Design, July 1981.
[?] French H.: Trends in CAM/CAD graphics technology. Computer Design, September 1981.
[4] Trombly J. E.i Image processing architecture expands range of appli
cations. Computer Design, September 1981.
0>] Shaw P.I.: Computer graphics. Computer Technology Review, Spring- Summer 1981.
[6] Straayer D.: Graphics standards evolve to serve users and vendors.
Computer Technology Review, Winter 1982.
[7] Bird R. s Dedicated ICs improve graphics controllers cost effective
ness. Computer Technology Review, Winter 1982.
[8] Carinalli C.: Graphics using the DP 8350 series of CRT controllers.
National Semiconductor Application Note 212, December 1978.
[9] Evans M.I Graphics/alphanumerics systems using the DP 8350 series of CRT controllers. National Semiconductor Application Note 243, April 1980.
10] Grafoskopy w systemach komputerowych. Praca zbiorowa. WNT, Warszawa 1 9 8 1
.
11] Łabęcki St.: Układ pamięci obrazu monitora graficznego - wniosek pa
tentowy nr P-242484.
Recenzent: dr inż. Adam Bukowy
płynęło do Redakcji 31.01.1984 r.
Monitor graficzny... 53
rPA'M'iECKiU AHCnJI£<i 3 MHKPOKOiiribLffEPHC,! H3:iiiPMTEJIbH0,l CHCTEME
p e 3 x)
me
3 H a cTo a m ett p a f i o i e n p e ftC T a B Jie H c n o c o fi n o c T p o e H H H rpa<J>HHecKoro A H c m ie a b H3 « e p H ie jib H 0 it CHCTaM e Ha o cH O B e MHKpo -
3BM.
O c o fio e BHHwaHHe yAe^ eH O nauH TH re H e p n pyio ine a H S o S pa x teH H e. n p e A C T a B J ie H Li l a i c s e a jirx p H T M H o c h o b h u x rp a tfH tie cK H X o n e p a ip iit p e a JiH 3 H p y e M u x M H K p o n p o u e c c o M , b t o m HHCJie c n o c o O KOAHpoBaHHH H 3 0 - (SpaxteHHH.GRAPHICAL MONITOR IN MICROCOMPUTER MEASUREMENT SYSTEM
S u m m a r y
In the paper an idea of a graphical monitor solution in a microcompu
ter based measurement system la presented. Special attention is paid to a memory unit generating picture. The algorithms of elementary graphical operations realised by the microprocessor are presented. Picture coding is also defined.