Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano Deutsch Francais Italiano Nederlands Turkce |
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: |
Abstract:
Basit bir elektrik devresi kullan�larak,k�z�l �tesi uzaktan kontrol'den RT-Linux kabuls�ralar� elde edebiliriz.
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.
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
�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.
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 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.
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.
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:
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.
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.
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 |
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
|
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:
|
2000-04-23, lfparser version 1.5 taraf�ndan olu�turuldu