PC lerdeki serial portda hangi chip var ? bunu VB de programlamak istiyorum ama hangi chip olduğunu bilmiyorum birde bunun crystal frekansı ne (baud rate ayarlamak için )
PIC programlamadan mı bahsediyorsun?
VBasic'te seri port uzerinden haberlesme yapmaktan bahsediyorsan UART chip'inin ne oldugu, hangi frekansta calistigi ile hicbir ilgin yok. Sadece Windows API dokumanlarini kurcala. Porta windows araciligi ile eriseceksin. Ama yok, DOS altinda veya baska bir ortamda (!) assembly ile ulasacagim dersen, o zaman da sadece UART'a ait register'leri filan bilmene gerek var...
VB her istediğin baud rate 'i kullandırmıyor API lerle istediğim baud rate'i ayarlayacağım ama bu sefer de seri portta hangi chip var hangi registerleri var , crystal frekansı nedir onları bilmiyorum ben çok yüksek hızlarda haberleşme yapmak istiyorum karşı tarafta bir microcontroller olacak (8051)
Seri port (RS-232) entegresi ana kartdan ana karta değişir ve genelde bu işler için ASIC (application specific integrated circuit) kullanılır. Ama zaten bu entegreye ulaşmaya ihtiyacın yok. Halk arasında güney köprüsü denilen ICH kontrolörü seri ve paralel portlara ulaşmanı sağlayacak registerleri barındırır (ya da mirorlarını). Açıkçası x86 makine dili üzerine çalışmadım ama Windows işletim sistemi ile hele XP versiyonu ile bu işleri yapmak o kadar kolay değil bence. Sonuçta RS-232 bir protokol olduğundan 115 Kbaud'dan yukarı çıkamazsın. Çok hızlı haberleşme yapman imkansız bu porttan. 8051'le ne tür bir uygulama yağacağını anlatırsan biraz daha detaylı yardım yapabilirim. Bu konuda epey deneyimim vardır.
115200'un uzerine cikamiyorsun standart hardware ile ama 20-30$'a PCI seri portlar var. bazilarinda 256Kbit destegi var. 8051'inin uart'i destekliyorsa bu hizda haberlesebilirsin. Veya 115200baud'da trick'li olarak 9bit haberleserek, byte basina 1 bit kazanma imkanin da var. Tabi iki tarafta da o bir bitin nerede olacagini yazilimla implement etmen gerek.
sana ne hizda data aktarimi gerekiyor? Seri port yerine gore yeterli, yerine gore cok yavas. 115200bit/sec = 14400 byte/sec eder. 256Kbit'te 28Kbyte/sec cikar o kadar.
eger ki cok daha hizli haberlesmen gerekiyorsa USB alternatifin var. USB1.1 ile 12Mbit/sec = 1.5MByte/sec ama bu spec'lerin soyledigi maximum hiz. yok iyi bir host chipseti (Intel chipsetinin digerlerine gore 2 kat hizli/performansli oldugunu USB embedded controller ureticisi bir firmanin support departmanindan bir application engineer bizzat soylemisti) USB1.1 ile 360Kbyte/sec hiza ulasabildim.
Ben USB2.0 ile ugrasiyorum. 480Mbit/sec = 60Mbyte/sec ama bu da teorik maximum hizi. 30MByte/sec elde edersen op de basina koy diyorlar.
USB2.0 controller ayri olarak da var, 8051 icine entegre edilmis olarak da var veya IP olarak da var. Ben ucretsiz IP bulmustum. FPGA ile ugrasma imkanin varsa FPGA'ine map edip kullanabilirsin. Bir nevi kendi ASIC'ini yapiyorsun. Istersen yanina istedigin hizda UART at veya ucretsiz Firewire/IEEE1394 IP'si de var onu da FPGA'e koyabilirsin. USB ile gelistirme yapacaksan, USB protocol analyser denen cihazlara ihtiyacin olacaktir. Bu veri paketlerini, line utilization'u verimliligi, hatali paketleri vs. monitor ediyor, kendi custom paketlerini olusturuyorsun vs. fiyati birkac bin dolar civarinda gelmisti... usb gelistirme icinwww.usb.org adresine bakabilirsin. turkce kaynak yok. bir tek ceviri bir kitap var ama pek ise yarar birsey degil anladigim kadariyla. Gokhan Bektas 'in sitesindewww.gokhanbektas.com 'da Projeler'de Cypress FX2'ye bakabilirsin FPGA icin isewww.gokhanbektas.com 'da HDL & FPGA diye bir makale var.
IEEE1394 (Firewire) 400Mbit/sec. Bununla da ugrasmisligim var. Cihazinda (her ne ise) bir Firewire Physical Layer controller chip'i, bir de Firewire Link Layer controller chip'i ve bunlara baglayacagin hizli bir 16bit veya 32bit'lik CPU olmasi gerekiyor. Ben Texas Instruments'in Firewire chipsetini kullanmistim. Tavsiye ettikleri CPU ise Motorola Coldfire. Tabi bunun gelistirme yapmak 8051 gibi degil. Development kit, emulator gerekiyor vs. Coldfire emulator en son $7500 civarindaydi...
Selamlar
bilgiler için çok teşekkür bu kadar bilgili arkadaşlar olmasına sevindim bu forumda ben 8051 ile çalışan bir CNC tasarlamaya çalışıyorum hardware 8051 li kartta çalışırken (akıllı IO) bütün software bir PCde çalışacak PC ile CNC seri porttan haberleşecek tabi belli bir işlem sürati yakalamak için yüksek hızda haberleşmeleri gerekiyor işte böyle birşey
Tuğla birader açıkçası 11 yıldır 8051 üzerine çalışıyorum. Ama bu mcu'nun CNC işinin üstesinden gelebileceğini sanmıyorum. Birinci sebep makina döngüsünün yavaş olması; 1/12. İkincisi en babasının 33Mhz'in üzerine çıkamaması ki 33/12 gibi bir makina saykılı elde edersin. Bence yavaş kalır CNC işi için. Ben geçmişte iki noktalı ısı kontrol cihazı, up/down counter, led matrix tablo kumandası, IR alıcı kumandası gibi işler yaptım o meretle. Çok güzel ve programlaması çok kolay ama o kadar uzun işler yapması çok zor gibime geliyor. Ama seni yıldırmış olmayayım kolay gelsin.
115200 hıza ulaştım ama çok hata yapıyor galiba sinyaller bozuluyor acaba RS485 le haberleşsem farkeder mi ? bildiğiniz ucuz RS485 kartı satan varmı ?
Dallas semiconductor'de ultrafast 8051 (aslinda 8052) flash var. turkiye distributoru ile gorusup development kit vs. konusunda bilgi alabilirsin.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme