Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Turkce  

[Photo of the Author]
Ismael Ripoll & Elisa Acosta taraf�ndan

Yazar hakk�nda:

Ismael Ripoll, 1996 y�l�nda Valencia Polytechnic �niversitesinden Ph.D. DISCA B�l�m�nde i�letim sistemleri profes�r�.Ara�t�rma ilgi alanlar� ger�ek zaman programlamas� ve i�letim sistemleri.1994 y�l�ndan beri Linux kullan�c�s�.Hobileri:Pryrenee Da�lar�nda y�r�y��,kayak,ve ev elektronikleri.

Elisa Acosta, Valencie Polytechnic Okulunda bir bilgisayar m�hendisi.�u anda 1900'l� y�llar�n sorunlar� �zerinde Indra (bir bilgisayar firmas�)'da �al���yor :-)

Bu makale Elisa Acosta'n�n son y�l projesinde yazd�klar�na dayal�d�r.

��indekiler:

RT-Linux III

�eviri : �erife �ent�rk

[Illustration]

Abstract:

Basit bir elektrik devresi kullan�larak,k�z�l �tesi uzaktan kontrol'den RT-Linux kabuls�ralar� elde edebiliriz.



 

Bilgilendirme

Bu makaleyi anlamak i�in elektronik ve donan�m bilgisine gereksiniminiz yok,her ne kadar k�z�l �tesi uzaktan kontrol i�in kullan�lm�� donan�m par�as� hakk�nda biraz konu�acak olsak da.

"lirc" (Linux Infra-red Remote Control) adl� bir proje Ralph J.K.MetzlerHREF="http://fsinfo.cs.uni-sb.de/~columbus/lirc/">http://fsinfo.cs.uni-sb.de/~columbus/lirc/) taraf�ndan Linux "normal" servisleri kullan�larak geli�tirilmi� k�z�l �tesi al�c� s�r�c�s� i�in ba�lat�ld�. ' "normal"'ile ,bunun RT-Linux ger�ek zaman uzant�s�n� kullanmad���n� kastediyorum.Bu makaleye ayn� konuyla ba�l�yoruz,ancak RT-Linux'a dayand�r�lm�� ��z�mlere bir g�z at�n.

 

Genel a��klama

Projemizin ilk k�sm�nda, bilgisayar� ve k�z�l-�tesi al�c�y� birle�tirmek i�in gereken donan�ma bir g�z ataca��z.�kinci k�s�mda esas zaman Linux'u kullan�larak k�z�l �tesi al�c�dan i�aretleri nas�l derleyebilece�imizi g�rece�iz.Sadece birazc�k donan�ma ihtiyac�m�z olacak:bir Sharp (IS1U60) k�z�l-�tesi al�c�s�,birka� tane kablo ve konnekt�rler.

IS1U60 k�z�l-�tesi al�c�s� bir elektronik harikas�;�� toplui�net�kac�i�inde (ikisi g�� i�in ve birisi yer i�in).���nc� i�nede bir TTL seri i�areti sa�layarak, hemen hemen kabul ve �evirme i�lemlerinin hepsini yapmak m�mk�n


Sistem ve elektrik ba�lant�s�na evrensel bak��

PC'ler her t�rl� dijital d��y�zeye t�ka yapmak i�in konekt�rlere sahiptirler(kip��zerler,yaz�c�lar,SCSI,klavyeler,ekranlar,vb...),fakat basit elektronik maddelere ba�lanmam�z� sa�layan hi�bir�eye.Ba�ka bir deyi�le,standart bir PC bilgi kazan�m kart�na sahir de�ildir.Sizin belli bir s�ray� okuyabilmenizi sa�layacak bir kart.

�ansl�ca,paralel kap�(ayn� zamanda seri kap�) �retken bir giri�/��k��kap�s� olarak kullan�labilir.Bir�ok d�� y�zey bu �zelli�i PC ile ileti�im i�in kullan�rlar,Iomega ZIP s�r�c�s� gibi.

Paralel kap�y� k�z�l-�tesi al�c�s�ndan bilgi elde etmek i�in kullanaca��z.K�z�l-�tesi al�c�s� sadece bir tane basit bilgi pin'ine sahip oldu�undan,parelel kap�n�n sadece bir tane pin'ine ihtiyac�m�z olacak.

 

K�z�l �tesi al�c�

Daha �nce bahsedildi�i gibi,IS1U60 �zellikle evcil i�lemler i�in al�c� yapmak i�in d�zenlenmi� k�z�l-�tesi al�c�d�r.

De�i�ik mod�lasyon ve kanun �eklinde toplamalar birle�tirildi�inden,uzaktan kontrol i�areti ger�ektem karma��kt�r.Bu i�areti inceleyelim.

Uzaktan kontrol i�areti ta��yan fiziksel ortam, k�z�l-�tesi spektrumda ���k bir dalgad�r. Bu �e�it ���k ultraviyole ���klar� gibi zarars�zd�r. K�z�l-�tesi ���k insan g�z�ne g�r�nmez,fakat yar� iletken ortamlara b�yle de�ildir.K�z�l-�tesi ���k kaynaklar� g�ne�,akkor ampuller,LED diyodlar� vb.K�z�l-�tesi LED i�aret ��karmak i�in uzakatan kontrol taraf�ndan kullan�l�r.


Infra-red light Visible ultraviolet light

B�t�n yar� iletken ortamlar ����a kar�� duyarl�d�r(herhangi bir renkte/frekansta).Bu y�zden bir�ok yar� iletken ���ktan korunmak i�in siyah plastik i�ince saklan�r. Bir k�z�l-�tesi ayg�t� temelde sadece k�z�l-�tesi �����n ge�mesini sa�layan bir cam �zerindeki yar�-iletken diyod'dan yap�l�r.

K�z�l-�tesi ayg�t� bu �ekilde,kayna�� ne olursa olsun herhangi k�z�l-�tesi ����� saptayabilecek �ekilde in�a edilir. Uzaktan kontrol modelistleri uzaktan kontrol'den yay�lan ����� di�er ���k kaynaklar�ndan ay�rabilmek i�in buna �ifreleme �zelli�i eklemek zorunda kald�lar. Uzaktan kontrol'den yay�lan sinyal 32ve 40 Khz frekanslar� aras�nda ayarl�d�r, bu biraz da yap�ya ve modele ba�l�d�r.En yayg�n oldu�undan uzaktan kontrol frekans�n�n 38 Khz oldu�unu d���nelim.Makinelerin %90'�ndan daha fazlas� bu frekans� veya buna �ok yak�n olan bir de�eri kullan�r.

The infra-red receptor.

�unu unutmamak gerekir ki sinyalin yay�lmas�n� sa�lamak i�in yap�lan her�ey resepsiyon s�ras�nda kald�r�lmal�d�r.E�er bir k�z�l-�tesi ���k yayarsak,bunu kabul etmemiz grekir;e�er bu sinyal bir 38Khz ta��y�c�s�na ayarl�ysa,o zaman bu ta��y�c�n�n ortadan kald�r�lmas� gerekir.Bu demod�lasyon bir tek bandl� ge�i� frekans filtresi ve bir integral do�rultucu filtresi ile analog �ekilde yap�l�r.

38 Khz'ya ayarl� k�z�l-�tesi ���k emit�r (uzaktan kontrol) ve al�c�(TV,video,vb.)aras�nda kullan�lan bir ileti�im ortam�d�r.�imdi bilginin nas�l verildi�ine karar verelim, bu da hangi par�alar�n uzaktan kontrol �zerindeki bas�l� d��meyi temsil etti�ini s�ylemek oluyor.

Bilginin �ifrelenmesi yap�ya ba�l�d�r, fakat �ansl�ca,bu projede bu metodlar� bilmemize gerek yok, biz onlar� sadece kar��la�t�raca��z.

��aretin mod�lasyonu d���n�lerek, bilginin seriler halinde yay�nland��� kesin.Bir par�an�n arkas�ndan bir tane ve buna ba�l� olarak kabul k�sm�nda bir tane bilgi ak�nt�s�na ihtiyac�m�z olacak.

Bu takip eden, alg�lay�c� IS1U60 teknik �zelle�tirmesinden kaynaklan�r. (http://ns14.sharp.co.jp/ecg/unit/is1u60/is1u60-fea.html), ve bu i� yap�y� temsil eder.�ki sol oklar bir elektrik sinyaline d�n��t�r�len k�z�l-�tesi ����� tensil eder.Sinyal geni�letilir,belirgin par�a ortadan kald�r�l�r, 38 Khz'ya yak�n frekanslar�n ge�mesini sa�lamak i�in filtreden ge�irilir,d�zeltilir(demod�lat�r ve integrat�r) ve son olarak uygun bir TTL sinyaline d�n��t�r�l�r.

 

Paralel Port

Paralel kap� yaz�c�larla ileti�im sa�lamak i�in d�zenlenmi�tir,fakat �imdiye kadar, ��nk� PC'ler �zerinde uygun benzer hi�bir�ey yoktu,b�t�n d��y�zeyleri ba�lamak i�in kullan�l�rd�.

�u anda,paralel kap�y� ger�ek bir �retken ileti�im kap�s�na d�n��t�rmek i�in en az�ndan iki tane de�i�me(ECP,EPP) vard�r.Bizim projemiz paralel kap�dan gereken fonksiyonlarla ilgilenmek,sonu� olarak herhangi birde�i�ik bi�im i�e yarayabilir.Ger�ek olarak,sadece bir tane IN ak�nt�s�na ihtiyac�m�z olacak.

State register
Detail of state register

PC,�� tane 8-par�a yazma�la parelel kap�y� kontrol eder.Bir bilgi yazmac�(0x378),bir durum yazmac�(0x379) ve bir tane de kontrol yazmac�(0x37A)vard�r.Parentazler i�indeki de�erler ilk parelel kap�n�n genel yazma� adreslerini temsil ediyor.

Kontrol yazmac�n�n i�ine yazmak,kap�y� proglamlamam�za izin verir. >Yazmac�n 8 par�as�ndan sadece par�a4 kullan�l�r.Bu par�an�n i�ine "1" yazmak,y�ksek seviyeden(5 volt) al�ak seviyeye(0 volt)giderken ACK durumunu ortaya ��kard��� zaman,kap� donan�m�n�n bir duraklama yapmas�na sebep olur.

Bilgi yazmac� ba�lay�c�n�n noktalar�na a��k bir kap�d�r.Bu kap�n�n i�ine yazd���m�z her bilgi,parelel ba�lay�c�n�n 2-9 noktalar�nda g�r�necektir.Bu kap� sadece bir OUT kap�d�r.K�z�l-�tesi al�c�n�n sa�lad��� de�erleri okumam�z gerekti�inden,bu kap� bizim i�in kulan��s�zd�r.Bir girdi kap�s�na ihtiyac�m�z var.

Durum kap�s�,yaz�c� kontrol �izgisinin durumu hakk�nda bilgi verir. >Bu �izgilerden,yaz�c� durumu hakk�nda bilgisayara bilgi verebilir.Bu �izgi,yaz�c�(veya bir d�� makine) taraf�ndan y�netilir ve bilgisayar bunlar� IN �izgiler olduklar�ndan okur.Bu bir 8-pr�a yazmac� olsa bile,sadece en belirgin 5 par�a �izgilere ba�l�d�r,di�er 3 par�a her zaman s�f�rd�r.�izgi numaralar�,yaz�c�yla ba�lan�rken sahip olduklar� i�levsellikten sonra isimlendirilirler,fakat bu �izgiler asl�nda herhangi bir �ey i�in kullanabilece�iniz �retken dijital �izgilerdir.

Bu 5 �izgi aras�nda,bir dijital giri� �izgisi olarak da kullan�ld���ndann ilgin� olan� nokta 10'dur(yazmac�n par�a 6's�),fakat yukar�da da bahsedilidi�i gibi,�izginin durumu de�i�ti�inde(5'den 0'a) ayn� zamanda duraksamalar da yaratabilir.

 

Bilgisayara ba�lan��

Yongan�n ve ba�lama enerjisinin fiziksel tan�mm�

K�z�-�tesi al�c�s�n�n 4.7 ile 5.3 voltlar� aras�ndad�r.E�er voltaj 4.7'nin a�a��s�na d��erse,al�c� �al��may� keser.Bu g�� sa�lama voltaj� de�i�ik yollardan elde edilebilir:

  1. Bateriler kullanarak.Bu durumda seride bir k���k(veya eski)1v5 baterisi ile birlikte bir 4v5 baterisi kulanmak daha iyi.Toplam voltaj 6v olmayacak,fakat 5.5v olacak,��nk� k���k 1v5 baterisi tam g�� sa�lamayacak.

  2. D�zenlenmi� bir g�� sa�lama kayna�� kullanarak(alternatif ak�m� d���k voltajl� direk ak�ma d�n��t�ren alet).Bunu in�a etmesi kolay olsa bile,bu ,bu makaleyi a�an bir konu.Elektronik aletleri ald���n�z d�kkanlardan b�yle bir genel ama�l� g�� kayna�� alabilirsiniz.

  3. Bilgisayardan 5 volt alarak. Bir bilgisayarda,iki �e�it kablo vard�r:d�z kablolar(bilgiyi ta��r) ve g�� kayna�� i�in koyu k�rm�z�,siyah ve sar� kablolar.K�rm�z� kablo 5 voltdur ve siyah olan 0 voltdur.

Al�c�ya g�� sa�lamak i�in,siyah kabloyu al�c�n�n nokta2'sine ve k�rm�z� olan�(5v) nokta3'e ba�layaca��z.

Parelel kap�ya olan ba�lant�,parelel kap�n�n nokta1'ini nokta10'a ve parelel kap�n�n nokta2'sini nokta18'e ba�lamak kadar kolay. GND(toprak)'nin iki yere ba�lanmas� gerekti�ini unutmay�n:g�� sa�lama topra�� ve parelel kap� topra��.

Bu ba�lant�lar� yapmak i�in herhangi bir �e�it kablo kullanabilirsiniz.

 
REAL-TIME module
#define PERIOD 100
#define SIZE 8192
#define FIFO_ZERO 0
#define LP0 0x378 /*Address /dev/lp0*/
#define STS LP0+1

RT_TASK task;

//---------- Real time task
void Real_Time_Task(){	
  unsigned short data1, data2=0;
  unsigned long  cont = 0L;
  
  while(1){
    // Read the port value
    data1=inb(STS) & 0x40;
    	
    // If no change.. 
    if ( data2 == data1) {
      // Increment the counter.
      cont++;
    } else {
      
      // Send the counter value.
      rtf_put(FIFO_ZERO, 
              (char *) &cont, 
	    sizeof(cont));
      cont = 0L;
      data2 = data1;
	
    }
    rt_task_wait();
  }   
}   

//------------- Main program
int init_module(){
  RTIME now = rt_get_time();

  // Create communication FIFO with Linux.
  rtf_create(FIFO_ZERO,SIZE);

  // Create the real time task.
  rt_task_init(&task,Real_Time_Task,1,3000,4);

  // Make it periodic.
  rt_task_make_periodic(&task,now+3000,PERIOD);

  return 0;  // Everything worked.
} 

//------------- To unload the module
void cleanup_module(){
  rt_task_delete(&task);
  rtf_destroy(FIFO_ZERO);
}  

Parelel kap� ACK noktas�n�n durumunu �l�menin en basit yolu, par�a durumunu okuyan(nokta) periyodik bir �dev yaratmakt�r.E�er nokta ayn� durumdayken bir de�i�iklik olursa,sayac� ar�t�r�z.Bu �ekilde saya� t�k�rt�lar� ayn� seviyede kalan par�alar�n zaman�n� temsil eder.E�er bir de�er de�i�ikli�i yaparsak,bir FIFO yolu ile say�c� de�erini normal Linux kullan�c� vazifesine g�ndeririz.Bir Linux ilerlemesi FIFO okumas� i�in bekliyor olacakt�r.Okuma de�erleri d���k seviyedeki i�aret zaman�na uygundur ve y�ksek seviyedekilere.

Al�c� taraf�ndan verilen i�aretin do�ru bir �l��m�n� almak gereklidir,do�rusunu s�ylemek gerekirse,bu bir esas-zaman sistemini kullanman�n tek sebebidir. Bas�l� d��meyi tan�mlamak i�in esas-zaman vazifesi taraf�ndan verilen de�erlerin dizili�ini kar��t�rman�n bir zaman s�n�rlamas� yoktur ve bu normal bir Linux i�lemi ile yap�labilir.

ACK noktas�ndaki de�i�meleri �l�menin bir ba�ka yolu da duraksama7 �zerinde bir duraksama y�netimi kurmakt�r.Bu y�ntemle,bir planlay�c� veye bir periyodik vazifesine ihtiyac�n�z yok.

init_module fonksiyonu vazifeyi indirir.�dev i�in FIFO ileti�imini yaratman�z,�devi yaratman�z ve son olarak onu periyodikle�tirmeniz gerekmektedir.Periyot de�eri(100 RT-Ticks,yakla��k 90 mini saniye) test etmek i�in ve hata d�zenlenmesi i�in verilir.Periyot ne kadar k�sa olursa �l��m�n ��z�m� o kadar y�ksek olur,k�sa periyotlu dar bir d�ng� daha �ok CPU g�c� t�ketir.

Takip eden kullan�c� program� /dev/rtf0 makinesinden okuduklar�n� standart ��kt�ya g�nderir.Bu basit programla ,bir d��me bas�ld���nda kz�l-�tesi al�c�dan g�nderilen her �er�evenin �eklini "see" 'da g�rebiliriz.

Kullan�c� program�
#include 
#include 
#include 			
#include 
#include 
int main(){
  int fd;
  unsigned long cont;
  fd=open("/dev/rtf0",O_RDONLY);
  while(1) {
      read(fd,&cont,sizeof(cont));
      if ( cont > 700) printf("\n");
      printf("%d ",cont);
      fflush(stdout);
    }
  return 0;
}   

Programda beliren 700 de�eri tahmini bir de�erdir ve iki ard���k �er�eve aras�ndaki minimum zaman miktar�n� temsil eder.

Uzaktan kontrolc�lerin �o�u benzer bir k�z�l-�tesi sinyali kullansa da d��melerin �ifrelenmesi farkl� olabilir.Bas�l� d��meyi tan�mak " form tan�m�"'un bir sorunu,"esas-zaman"'un de�il.Bir program�n belli bir komutu tan�yor yapman�n en iyi yolu ,bu programdan gelen ��kt�y� izlemek ve uzaktan kontrol�m�z�n bilgiyi nas�l verdi�i hakk�nda bir fikir edinmektir.

Basitle�tirilmi� terimlerde,bir uzaktan kontrol d��mesine bas�ld���nda ekranda say� dizisi olarak g�rd���m�z bir diziyi g�nderdi�ini s�yleyebiliriz.E�er d��meyi bas�l� tutarsak,komut ayn� diziyi periyodik bir �ekilde(SONY uzaktan konrolleri hari�) g�nderecektir.

�imdi bunu izleyelim(gerekli esas-zaman mod�llerini kurmay� hat�rlaman�z gerekmektedir:FIFO ve planlay�c�)


  # modprobe rt_fifo_new
  # modprobe rt_prio_sched
  # insmod ir
  # ir_get
  0
  126509 13 6 23 7 13 7 12 7 12 7 12 7 12 8 11 8 11 8 11 8 11 8 11 19 11
  1081 13 6 23 7 12 7 12 8 11 8 11 8 11 8 12 7 12 8 11 8 11 8 11 19 11
  1080 14 6 23 7 12 7 12 7 12 7 12 8 11 8 11 8 11 9 11 7 12 8 11 19 11
  1080 13 6 24 6 13 7 12 7 12 7 12 7 12 7 12 8 11 8 11 8 11 8 11 19 11

D��me kald�r�ld���nda,bu komutun ayn� diziyi tekrarlad���n� g�rebiliriz.Hat�rlanacak di�er bir nokta da �l��m hatas�d�r.De�i�ik �er�evelerin �ekilleri 1'in de�i�ik bi�imine sahiptirler, bu da �zellik hatas�n� temsil eder.

Bir tan�ma yaz�l�m�n� programlamak i�in,komut arf�ndan g�nderilen her iletim birimini toplaman�z gerekmektedir,ve daha sonra,her iletim birimi geldi�inde, bunlar� iletim birimlerini toplad���n�z dizilimdekilerle kar��la�t�r�s�n�z(bir t veya -1 hata kabul ederek).Bu program bir al��t�rma olarak okuyucuya b�rak�l�yor.

Baz� uzaktan kontroller,her d��me bas�l���nda,kat� bir iletim birimi yayarlar,hep ayn� d��meyi bassak bile.��te ne yap�ld���:bir d��meye bast���m�z zaman,"FrameA" diye adland�rd���m�z bir iletim birimi g�nderirler,e�er serbest b�rak�r ve tekrar d��meye basarsak,"FrameB" yayarlar,tekrar bas��ta "FrameA" yayarlar ve b�yle devam eder.E�er d��meyi bas�l� tutarsak,ayn� iletim birimi bir�ok kez ��kar.Bu �ekilde,al�c� bir uzunbas�� ve iki ba�ar�l� bas�� aras�ndaki fark� g�rebilir.Sizce 11(onbir) d��me dizisi,yeni uzaktan kontrol �zerinde nas�l y�netilir?0

 

Kaynaklar

 

Bu makale i�in talkback formu

Her makalenin kendine �zg� talkback sayfas� vard�r.Bu sayfada bir g�r�� belirtebilir veya di�er okuyucular�n g�r��lerine bakabilirsiniz.
 talkback sayfas� 

G�rsely�re sayfalar� LinuxFocus Edit�r tak�m� taraf�ndan korunmaktad�r
© Ismael Ripoll & Elisa Acosta
LinuxFocus.org 2000

LinuxFocus'a g�r�� g�ndermek veya hata raporlamak i�in buray� t�klay�n
Translation information:
es -> -- Ismael Ripoll & Elisa Acosta
es -> en Georges Tarbouriech
en -> tr �erife �ent�rk

2000-04-23, lfparser version 1.5 taraf�ndan olu�turuldu