Elektrik Mühendisliği · Sayı 258 · Haziran 1978
ENDÜSTRİDE MİKROİŞLEMCİ KULLANIMINA BİR ÖRNEK
Kontrol, otomasyon ve robotik Teknik / bilimsel makale
- Yıl
- 1978
- Sayfa
- 5
- Okuma süresi
- 9 dk
- Görüntülenme
- 0
Konu
İlgili: Elektronik ve yarı iletkenler
Anahtar kelimeler
- Intel 8080
- mikroişlemci
- tartılı boşaltma sistemi
- kart okuyucu
- yaz/oku bellek
- ASELSAN
Özet
Intel 8080 mikroişlemcisi kullanılarak tasarlanan, hunilerden tartılı olarak hammadde boşaltımını denetleyen bir endüstriyel kontrol sisteminin donanım ve yazılım yapısı ayrıntılı olarak anlatılmaktadır.
Tam metin
Metin PDF'ten otomatik çıkarılmıştır; tablo, şekil ve formüller eksik ya da hatalı olabilir. Özgün dizgi için PDF'e bakın.
endüstride mikroişlemci kullanımına bir örnek
Kaya Y AZGAN
UDK. 621.3.049. 771.14 ÖZET
Bu uygulamada tanıtılan denetim dizgesi mikroişlemcili dizge tasarımı için ön bilgiler vermektedir. Oldukça genel amaç lı bir donanım seçilmiş; ilişkin yazılım da akış çizimi ve komut dizisi aşamalarında verilmiştir.
SUMMARY
The microprocessor control system described in this application note contains some basic information on the design of microprocessor systems. The harduıare chosen is quite general purpose, related softıvare is given at the levels of flow chart and instruction list.
Endüstri alanında alışılagelmiş denetim yöntemlerinin yerini almaya başlıyan mikroişlemcili dizgelere bir örnek Şekil 1'de görülen tartılı boşaltma dizgesidir. içlerinde farklı hammaddeler bulunan 8 huninin boşalması valf lerin açılmasıyla sağlanmakta, taşıyıcı bandın sonunda ise bir tartma aygıtı yer almaktadır. Amaç her huniden ard arda istenen miktarda hammadde dökmektir.
Intel 8080 mikroişlemcisini temel alan denetim birimi nin öbek şeması da, Şekil 2'de verilmiştir. Kart okuyu cuya yerleştirilecek karta herbir huninin boşaltması is tenen miktar üç ondalıklı bir sayı olarak delinmekte; kart, okuyucuya yerleştirildikten sonra kullanıcı başla
Yazgan, ASELSAN
ma düğmesine basıp ilk valfı açmaktadır. Denetim dizge si tartı biriminden gelen • yine 3 ondalık basamaklı sayı ile kart okuyucudan gelen o hunideki boşaltma miktarı na ilişkin veriyi karşılaştırıp, istenen sayıya ulaşılınca huninin valfını kapatmakta ve bir sonraki huniye geç mektedir. Bütün hunilerden istenen miktarda hammadde boşaltılınca sistem durmakta ve yeni bir komut bekle mektedir. Şekil 1'de dizgenin taslağı verilmiştir. Kuşku suz taşıyıcıkayış şekilde gösterildiği kadar uzun değildir, üzerinde biriken hammadde hiçbir zaman tartıyı etkile yecek büyüklüğe ulaşmamaktadır. Ayrıca tartıdan sonra ki boşaltma düzeni de şekilde yer almamıştır.
Mikroişlemci dizgesi kurulurken özellikle ilerde beklene bilecek büyümeler, program değişiklikleri düşünülmüş hatta bu uygulama için gerekli olmasa da bir tane yaz/ oku bellek (RAM) yerleştirilmiştir. Şimdi denetim diz
VII kro İşlemci I i birim
ELEKTRtK MÜHENDİSLİĞİ 258
Şekil 1.
Tartı dizgesi
Basla
Kurma
Gerekirse koruma
G/Ç verileri
Sekil 2.
gesini oluşturan öğeleri teker teker ele alıp seçin lerinm nasıl yapıldığını ve temel özelliklerini belirtelim.
Merkez işlem Birimi
Yaz/Oku Bellek
Daha önce değinildiği gibi tanıttığımız uygulamada bu tür bir belleğe gerek yoksa da, ilerde belirli bilgileri
Programın gerektirdiği matematik ve mantık işlemlerini gerçekleştiren birimdir. Bu uygulamada daha önce deği nildiği gibi Intel'in oldukça yaygın kullanılan 8 0 8 0 mik ro işlemcisi seçilmiştir. Bu mikroişlemci 8'li bir veri yo lu (Bus), 16 lı adres yolu ve bir dizi denetim iletkeni ile diğer birimlerle ilişki kurmaktadır. Diğer birimlere gön derilen ya da onlardan gelen veriler, veri yolundan ileti lir. Bunların gideceği ya da geleceği adresler ise adres yo lundaki bilgi ile belirlenir. 16 iletken ile 2 * a = 65 536 adet 8 bitlik bilgiyi adresleme olanağı vardır. (Bu kapasi te örnek uygulamamızda kullanılmamaktadır.) 8080 içinde işlemleri yöneten aritmetik mantık biriminin dı şında 8 tane 8 bitlik yazmaç (register) vardır: B, C, D, E, H, L, Bellek, Birikeç adını taşıyan bu yazmaçların makina dilindeki kodlan yukarıdaki sırayla " 0 0 0 " dan "111 "e dek uzanmaktadır.
Dizge Denetim ve Saat
Şekil 2'de Merkez İşlem Biriminin hemen yanındaki 8228 Dizge Denetim Birimi, özellikle bellek ve Giriş/ Çıkış Birimlerini denetlemek amacıyla kullanılmaktadır. 8 0 8 0 'in gereksinim duyduğu iki evreli saat ise 8 2 2 4 Saat Birimi tarafından üretilmektedir.
ÇİZELGE 1 Şekil 2'deki Kısaltmaların Anlamları
CE 1 . CE 2 Y onga engelsiz
R/W
Oku/Y az girişi
OD
Çıkış engelli
INT
Kesme istemi
INTA
Kesme değerlendirme
HLD
Tut
WR
Y az çıkışı
DBIN
Veri yolu giriş konumu (Dizge denetleyicisi
ne veri yolunun giriş konumunda olduğu
bilgisi)
HLDA Tut değerlendirme
Y onga seçme girişi
DSİ
Aygıt seçme girişi
MD
Konum
MEM~R Bellek oku
MEMW Bellek yaz
l/OR
Giriş/Çıkış oku
Î7öw
Giriş/Çıkış yaz
Evrilmiş isimler, im 'O1 konumundayken işlevin yapıla cağını göstermektedir.
yazıp saklayıp sonradan işleyen bir denetim uygulaması istendiğinde yeni donanım eklemekten kaçınmak için iki adet 8101 Yaz/Oku bellek yerleştirilmiştir. Bunların herbiri 4 bit 256 sözcüklü belleklerdir. Adresleri ortaktır, verinin yarısı (D „ J bir 8101 de. diğer yarısı (D4 _7) ise diğer 8101 de saklanmaktadır. Adresleri Ao yolundan, belirlenmekte ve ayrıca Ag iletkeni de bu iki yonganın seçilmesini sağlamaktadır (Çizelge 1). Okuma/Yazma konuır( seçin,i dizge denetiminin oluşturduğu MEMR, MEMVV' komutlarıyla yapılmaktadır.
lanımları son derece yalındır. Kesme (Interrupt) yapma makta, üç tanesi hep çıkış birimi, ikisi de hep giriş biri mi olarak kullanılmakta yani konumları değişmemekte dir.
Programlanabilir Salt Oku Bellek
Dizgedeki 8702 Programlanabilir Salt Oku bellek ise programın saklandığı 8 bit 256 sözcüklü bir bellektir. Yonga Seçimi (CS) girişini besleyen geçitlerin oluşturdu ğu mantık yardımıyla yapılmaktadır. Yaz Oku bellek se çilmemiş ve bellekten okuma komutu gelmişse 8702'de ki program okunmaktadır.
Kart Okuyucu
Kart okuyucu herbir valf denetimi için üç ondalık basa maklı bir sayı okuyup bunu ikili kodlanmış ondalık (binary coded decimal) yapısı içinde çıkış ucunda hazır lamaktadır. Bir kart üzerine yanyana dizilmiş 8 tane üç ondalık basamaklı sayıdan hangisini okuyacağını anlama sı için ise 8 tane giriş ucundan birinin " 1 " olması gerek lidir. Bu iş için 8212 Giriş/Çıkış birimlerinden biri ayrı labilirdi; ancak, bu bilgi 3 ikili basamakla taşınabildi ğinden ve bir kod açıcı, 8212'den çok daha ucuz oldu ğundan Şekil 1 ve 2'de görüldüğü gibi 8212'nin 3 biti kullanılmış ve bir kod açıcı eklenmiştir. Kod açıcı, giri şindeki ikili bilginin belirlediği çıkış ucunu " 1 " yapmak ta böylece kart okuyucu da hangi sayıyı okuyacağını be lirlemektedir.
3 7 6 5 4 3 2 10
© ©
7 654 3
•51
333333 hhhh 3 2 1 0
©
vi)
Kart seçme hatları
Sekil 3.
Herbiri farklı birer adres iletkenine bağlı olduklarından ( 1 , 2, 4, 8, 16 numaraları ve AQ, A ı f A2, A3, A4 e bağ lanmaları) adreslen meleri çok kolaydır. Dizge tasarımla nırken oldukça pahalı olan 8212 lerin sayısını enaza in dirmek amaçlandığından Şekil 3'de görüldüğü gibi X ve Y verilerini (yani kart okuyucu ve tartı verilerini) iki adet Giriş/Çıkış birimine yerleştirmek yolu seçilmiştir. Her biri 3 tane ikili kodlanmış onlu, (3x4 = 12) bitlik veri iletken X ve Y iletkenlerinin en önemli (mostsigni ficant) ikişer basamağı (onlar ve yüzler basamakları) 1 ve 4 adresli Giriş/Çıkış birimlerine verilirken; her ikisinin ve en önemsiz (least significant) birer basamağı (birler basamağı) 2 adresli Giriş/Çıkış birimine verilmiştir. Ör neğin kart okuyucu 246 okuyor ve tartı sonucu belirli bir anda 139 ise 1 nolu birimde 24; 4 nolu birimde 13; 2 nolu birimde ise 69 gözlenecektir.
Valf Denetimi
Denetim Dizgesi açısından valflerin denetimi çok basit bir yapı içinde çözülmüştür. Dizge, programın belirli bir noktasında ilgili 8212'ye bir çıkış yaptırmakta ve ilgili valfı açtırmaktadır, ölçme sonucunun karttan okunan değere ulaşması durumunda ise yeni bir çıkış yaptırılıp valf kapatılmaktadır.
Giriş/Çıkış Birimleri
Kart Okuyucu ve Valf Denetimi sırasında değindiğimiz 8212 Giriş/Çıkış birimlerinin bizim ömeğimizdeki kul
Kl.F.KTRlK MÜHENDİSLİĞİ 258
Akış Çizgesi
Şekil 4'de çizilen akış çizgesi programın yazılması için gerekli mantıksal diziyi oluşturmaktadır. Başlama düğ mesine basılmasıyla "Bitiş bayrağı" kaldırılır, okunacak kart sütunu belirlenir karttaki bilgi saklanır, ilgili valf açı lır. Tartı aygıtından gelen bilgi saklanan veriyle sürekli karşılaştırılarak belirlenen miktarda hammaddenin ak ması sağlanır. Saklı sayıya tartı sonucunun ulaşması ile huninin valfi kapatılıp bir sonraki huniden boşaltılacak hammadde miktarını belirlemek amacıyla kart okuyucu nun yeni bir sütun okuması sağlanır. Tüm hunilerden bo şalma sağlanınca bitiş bayrağı yerleştirilip dizge yeniden bekleme durumuna geçer.
Diigvyı hur, çıkı komutunu b«kt«
bctifU, çıkısı bal r l t , m kartt n oku. sakla, b«ltrl«n«n valfı ac
•i
Tart, çıkıvftd n Y nln ««ar ¥• yüzler »1, » nhilcrt* kıyasla.
basamaklarını
»mkinr bun*
•/
Tartı çıkıtınoan V nin birUr basamağım aL vt • rtnyl» kıyasla
V a t f u r i kapat, b* sonraki « a l * tamamlandı I M .
Şekil 4.
Bitiş bayrağı Şekil 3'de gösterildiği gibi 16 adresli Giriş/Çıkış biriminde tek bitlik bir bilgidir. Giriş/Çıkış birimlerinin sayısını en aza indirmek için X ve Y bilgile rinin ikişer parçaya bölündüğüne değinilmişti, işte bu bölünmenin gereği olarak önce tartı sonucunun (Y veri sinin) onlar ve yüzler basamakları, karttan okunan sayı nın (X verisinin) onlar ve yüzler basamağına ulaşıncaya dek üstteki çevrim içinde program beklemektedir. Bu sağlandıktan sonra X ve Y verilerinin birler basamağı ko şulu sağlayıncaya dek de alttaki çevrimde beklenmekte dir.
X ve Y verilerinin birler basamaklarını saklayan 8 adresi! Giriş/Çıkış biriminden istenen basamağın seçilmesi " FO " ya da " O F" onaltılı (hexodecimol) sayılarıyla maskelenmesi (bu öritekte VE'leme) ile gerçekleştiril mektedir. Bilindiği gibi " FO" ikili tabanda " 1 1 1 1 0 0 0 0 " dizisini " O F" ise " 0 0 0 0 1 1 1 1 " dizisini oluşturmaktadır.
Programlama
Ele alman uygulama için gereken küçük programı yaz mak için Çizelge 2'de verilen birkaç komutu tanımak yeterlidir. Sıçrama (jump) komutlarından sonra gelen ilk
2/S
ÇİZELGE 2 örnek Programda Geçen Komutların Tanıtımı
M V I , A Bir sonraki satırdaki veriyi birikece yükle
OUT
Çıkış yap
El
Giriş engelsiz
HLT Dur
M V I , D D yazacına al
MOVA, D Veriyi D'den A'ya (Birikece) al
İN
Giriş yap
ANI
Bir sonraki satırdaki veriyle birikeçtekini
VE'le
RRC
Birikeçteki sayıyı bir bit sağa kaydır.
CMPL L yazacındaki sayıyla birikeçtekini karşılaş
tır
JM
Bir önceki işlem sonucu eksi ise alttaki adre
se sıçra
DCRD D yazacındaki sayıyı bir eksilt
JNC
Bayrak sıfırsa aşağıdaki adrese sıçra
Dİ
Kesme engelli
JMP
Aşağıdaki adrese sıçra(koşulsuz)
onaltı tabanlı kod sıçranacak adresin son parçasını, ikin ci onaltı tabanlı kod ise adresin ilk parçasını oluşturmak tadır. Örneğin "JMP, 1E, 0 0 " komutu yerine getirilir ken program koşulsuz olarak " 0 0 1 E" adresine geçer.
RRC komutu ise biri keç teki bilgiyi sağa doğru kaydır maya yarar. Birikecin sağ ucundan bir bit çıkınca kay bolmaz ve tek bitlik özel bir bayrak birikecinde saklanır. Örneğin JNC komutu bu bitin sınanmasında kullanıl?. Eğer bu bit " 0 " ise sıçra komutunun verdiği adrese sıç ranır, aksi durumda devam edilir. Dikkat edilirse Çizelge 3'de verilen programda " 0 0 0 A " ve " 0 0 0 B" adreslerinde ki komutta E yazacına 80 H (H, 801n onaltılı tabanda olduğunu belirtiyor, iki tabanında yazılırsa: 1000 0000) yerleştiriliyor. Ardından " 3 2 " adresli komutta sağa bir kayma sağlanıyor. Sekiz sağa kaymadan sonra bayrakta 1 gözlenmekte ve görevin tamamlanmış olduğu böylece belirlenmektedir.
Sonuç
Bir mikroişlemcili denetim dizgesi örneği olan bu uy gulama, mikroişlemcinin endüstrideki kullanım olanak larını göstermesi yönünden ilginçtir. Daha önce değinil diği gibi Y az/Oku bellek kuttanım zorunluluğu yokken 256 sözcüklü bir Y az/Oku bellek kullanılmıştır. Salt oku bellek olarak seçilen 2 5 6 sözcüklü belleğe de yalnız ca 62 sözcüktük bir program yerleştirilmiştir. Kısacası kurulu olan dizge bu uygulamanın gerektirdiğinden daha büyük olanaklara sahiptir.
Programlama elden geldiğince basit tutulmuş, prop amla nabilir salt oku bellek olarak seçilen 8702 yerine önce bir yaz oku bellek yerleştirilip provam geliştirilmiş ar dından 8702'ye geçilmiştir.
Niikroişlemci olarak seçilen 8080, yaklaşık 450 550 nsan erişim süreli bellekler için tasarımlanmıştır ve 850 nsan' ye dek uzanan erişim süreleri bir üst sınır oluşturmakta dır. Ucuz olması nedeniyle bu uygulamada 1,3 /isan eri şim süreli 8702 kullanılmış, bu nedenle de Şekil 2'de 'saat, altındaki iki duraklarla (flip flop) yavaşlatılmıştır^ Katalog, 8702'nin çıkışının eksi gerilim düzeylerinden korunmasının gereğini belirttiği için diyot direnç sınırla ması ile şekilde yıldız ile işaretli bölgede koruma yapıl mıştır.
ÇİZELGE 3
PROGRAM
Adres
Açıklama
0000 MVI, A \ Biri keçe 0
0001 O
0002 OUT
0003 8
0004 0005
E'
0006 HLT
0007 OUT
f yüklenir
| 8 adresli Giriş/Çıkış biriminden 'O' i gönderilir (yani tüm vanaları kapat) \ Kesme engeli kaldırılır beklemeye geçirilir
/ 16 adresli G/Ç birimine '0' gönderilir ) Kod açıcıya 0 adresi gider ve bitiş
! bayrağı kaldırılır
0008 MVI, D ) D yazacına 7 yazılır '111 ' '0001 deği
şen bu yazaç kapsamı denetlenen
000A 000B O00C
! vana numarısını saklar.
MVI, E I E yazacına 16 tabanına göre 80 yazı
80H j lır (1000 0000)2
MOVA.D Denetlenecek vana numarası biri
keçe alınır
000D OUT ) Denetlenecek vana numarası kod
000E 16 f açıcıya gönderilir
T 000F
}1 adresli G/Ç biriminden karttaki sayının en önemli iki basamağı biri kece alınır.
0011 MOVH,A Bu iki basamak Hyazacına yerleşti
rilir.
0012 İN
2 adresli G/Ç biriminden karttan ve
0013 2
tartı aygıtından gelen sayıların en
önemsiz birer basamağı okunur.
0014 ANI
'1111 0000' ile VE'lenir (karttan
0015 FO
gelen basamak biri keçin solunda
kalır)
0016 RRC
0017 RRC
Birikeçteki sayı 4 bit sağa
0018 RRC
kaydırılır
0019 RRC
001A MOVL.A Karttan geler. en önemsiz basamak
L yazacında saklanır
001B MOVA,E E'deki sayı (bir biti ? diğerleri 0
olan sayı) birikece taşınır
001C OUT \ 8 adresli G/Ç birimince bu sayı gün
001C 8 001E İN
) c'erilince '1 'e karşı gelen valf açılır. ) 4 adresli G/Ç birimincen tartı so
001F 4
nucuna onlar ve yüzler basamakları
alınır.
0020 CMPH Karttan okunan onlar ve yüzler
basamaklarından tartıdan okunan
onlar ve yüzler basamakları çıkartı
lır.
0021 JM
Sonuç eksiyse '001 E' adresine
022 1E
sıçranır
0023 00
0024 İN
2 adresli G/Ç biriminden tartı ve
0025 2
kart verilerinin birler basamakları
0026 ANI
basamağı alınıp tartının en birler
0027 CF
basamağı elde edilir
0028 CMPL Kart verisinin birler basamağından
tartı verisinin birler basamağı çıka
rılır
Sonuç eksiyse '0024" adresine sıçranır. Birikece'0'yüklenir
8 adresli G/Ç birimine '0' yollanır (yani tüm valfler kapatılır) D yazmacındaki sayı bir eksi İti lir. (bir sonraki valfe geçiş yapılır) E'deki sayı birikece alınır (tek ' 1 ' gerisi '0' olan sayı) Birikeçteki sayı bir bit sağa kaydırı lır.
Birikeçteki sayı E'ye taşınır Sağa kayma sırasında bayrak sıfır ise (yani tüm valfler denetlenmemiş ise) 'OOOC'ye gidilir. Birikece 000 1000 alınır
003B 003C 003 D 003E
16 adresli G/Ç birimine birikeçteki sayı aktarılır, yani bitiş bayrağı ' 1 ' yapılır. Kesme engellenir
Program başa döner
KAYNAKLAR:
J. Skinner, Using a Microprocessor", VVireles World, Haziran, 1977, Eylü! 1977.