RADYO ELEKTRONİK VE ELEKTRİK MÜHENDİSLİĞİ ANSİKLOPEDİSİ MCS51 serisi mikrodenetleyiciler için hata ayıklama modülü. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi Radyo elektroniği ve elektrik mühendisliği ansiklopedisi / Mikrodenetleyiciler Mikrodenetleyicilere (MCU'lar) dayalı cihazların geliştirilmesi, kural olarak basit bir plana göre gerçekleştirilir: tipik bir bağlantıdaki MCU, gerekli çevre birimleriyle "ağırlaştırılır", ardından yazılım yazılır. Bu durumda, yaratıcı sorunları çözmeyi programcıya bırakarak, rutin işleri halleden çeşitli araçları kullanmanız gerekir. Aşağıda açıklanan cihaz, bir mikrodenetleyici sisteminin "yarı mamul ürünü", hata ayıklama aracı ve aynı zamanda bir araştırma nesnesidir. MCS51 programlarına yönelik programlama ve hata ayıklama becerilerinin edinilmesi için tasarlanmıştır, ancak aynı zamanda gerçek bir sistemin maketi olarak da hizmet vererek uygulama yazılımında kontrol nesnesiyle birlikte hata ayıklamanıza olanak tanır. Böyle bir modüle sahip olan geliştirici, yüksek maliyetleri nedeniyle çoğu kişinin erişemediği bir programlayıcı veya ROM emülatörünü sık sık kullanma ihtiyacından kurtulacaktır. MCS51 serisi mikrodenetleyici için hata ayıklama modülünün şematik diyagramı şekilde gösterilmektedir. Düğümlerin çoğu standart devrelere göre yapılmıştır ve kişisel bilgisayarın (PC) seri bağlantı noktasına sahip arayüz cihazı, S. Kuleshov ve Yu. Zaumenny'nin "ROM çip programcısı" ("ROM çip programcısı") makalesinde açıklanan cihazdan ödünç alınmıştır. Radyo", 1995, Sayı. 10, s. 22-25). DD1 mikrodenetleyicinin P3 ve P1 bağlantı noktalarının serbest pinlerine çeşitli çevresel aygıtlar bağlanabilir (şemada oklarla biterler). XP1 fişi, modülün çalışacağı bilgisayarın seri portlarından birinin soketine bir kablo ile bağlanır. Besleme voltajı uygulandıktan sonra, C3 kondansatörü R1 direnci üzerinden şarj edilir. DD3.4 öğesi tarafından üretilen sıfırlama sinyali RES'ye göre, MK DD1 başlangıç durumuna gider ve P1 bağlantı noktasının tüm pinlerinde mantıksal seviyenin 3'e ayarlanması da dahil olmak üzere hazırlık işlemlerini gerçekleştirir. DD3.1, DD3.2 elemanları üzerindeki tetikleyici, çıkış sinyalinin, program belleğinin 0-7FFFH adres alanı ROM'u (DD5) ve 8000H-0FFFFH'nin RAM'i kaplayacağı şekilde bellek dağıtımını ayarladığı bir durumdadır ( DD6). ROM'da bulunan Monitor programı yürütülür. Operatör, PC klavyesine Monitör komutları yazarak RAM ve modül çevre birimleriyle çalışabilir. Tetiği başka bir duruma aktarmak için, MOD=0 sinyalini ayarlayan kontrol bilgisayarından aşağıda açıklanan RESET Monitör komutunun gönderilmesi gerekir. Program belleğinin RAM ve ROM adresleri değiştirilir ve operatör tarafından daha önce modülün RAM'ına girilen program çalışmaya başlar. Bu, gerçek bir cihazın çalışmasını taklit etmenize ve düşük bellek adreslerine çevrilmiş, örneğin ROM'a yazmak için hazırlanmış programları kontrol etmenize olanak tanır. SB1 düğmesi, bellek tahsisini değiştirmeden MK'yi orijinal durumuna sıfırlamak için kullanılır. Monitör yalnızca SB2 düğmesine basılarak veya gücü kapatıp açarak yeniden başlatılabilir. Bu, hata ayıklanan programların, yanlışlıkla bellek tahsisini değiştirme korkusu olmadan, P3 bağlantı noktasının durumuyla (örneğin, çevre birimleriyle çalışırken) serbestçe çalışmasına olanak tanır. HL1 LED, bilgileri görüntülemenin en basit aracı olarak hizmet eder ve özellikle bilgisayarla herhangi bir nedenden dolayı bağlantı yoksa çok kullanışlıdır. Güç uygulandıktan sonra yaklaşık 1 Hz frekansta yanıp söner ve bu Monitörün çalıştığını gösterir. Zener diyot, cihazı +5 V güç kaynağının ters polaritesinden veya aşırı voltajından korur. Monitör programı (Tablo 1), modülün kontrolünü ve belirli bir görev üzerinde çalışmak için gerekli komutların ve verilerin iletildiği RS-232C seri bağlantı noktası aracılığıyla bir PC ile etkileşimini sağlar. Aynı bağlantı noktası üzerinden bilgisayar, modülün çalışmasının sonuçlarını alır ve ekranında görüntüler. PC'nin yaygın olarak kullanılan Norton Commander 5.0 kabuğundan "Telemax" iletişim programını, Windows 95 OSR2'den "Hyper Terminal"i veya benzer bir programı çalıştırıyor olması gerekir. Son çare olarak, özel bir program olmadan, hazırlanan verileri içeren dosyaları bir MS DOS komutunu kullanarak bilgisayarın seri bağlantı noktasına göndererek yapabilirsiniz. İletişim programını ayarlarken modem başlatma satırlarını silmeli, “Yerel Yankı” ve “CR/LF Yayını” modlarını ayarlamalı ve gerekirse ANSI terminalini ve ASCII kod tablosunu seçmelisiniz. Seri portun çalışma modu şu şekilde olmalıdır: hız - 4800 Baud, karakter başına bit sayısı - 8, eşlik kontrolü devre dışı, durdurma bitlerinin sayısı - 1. Her şey doğruysa, PC klavyesine yazılan metin şu şekilde olacaktır: hata ayıklama modülüne gönderilir ve yanıtları ekranda görüntülenir. Monitör komutları hem büyük hem de küçük klavyelerde yazılabilir. Tüm karakterler ASCII kodlamasında olmalıdır. [BackSpace] tuşu, son girilen karakteri hata ayıklama modülü arabelleğinden siler. Her komut bir isim ve bir işlenenden oluşur. Adın sonu bir sınırlayıcı karakterle gösterilir: boşluk, sekme, satır besleme veya satırbaşı. Aşağıda bunu geleneksel olarak bir alt çizgi (_) ile göstereceğiz, ancak yukarıdakilerden herhangi birini girebilirsiniz. Ayırıcıyı alan Monitör, arabellekte bulunan daha önce alınan ilk dört karakteri ROM'daki komut tablosunun içeriğiyle karşılaştırır. Bir eşleşme bulduğunda, aynı tablodan komut işleyicisinin adresini hatırlar ve bir işlenen (bir veya daha fazla onaltılık sayı) almaya başlar. MK'nin dahili ve harici belleğinin bir ve iki baytlık adreslerinin sırasıyla XX ve XXXX, blok uzunluğu - YYYY, diğer veriler - ZZ veya ZZZZ olarak belirleneceğini kabul edelim. Örneğin, XXXX,YYYY, XXXX adresinde başlayan, YYYY bayt uzunluğunda bir harici veri belleği bloğudur. Baştaki tüm sıfırlar dahil edilmelidir. İşlenen ayrıca, alındıktan sonra komut işleyicisinin başlattığı bir sınırlayıcıyla bitmelidir. Boş ara belleğe girilen sınırlayıcı dikkate alınmaz. RESET_ ZZZZ_ - ikinci hafıza ayırma modu açılır, MK orijinal durumuna geri döner, kontrol ZZZZ adresine aktarılır. Komutun normal çalışması için çalışan RAM gereklidir. DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._ - bilgi, XXXX adresinden başlayarak harici veri belleğinin ardışık hücrelerine girilir. Köşeli parantezler girmeye gerek yoktur; bunlar yalnızca ZZ_ işlenenlerinin sayısının isteğe bağlı olabileceğini belirtir. Veri girişi bir nokta sembolüyle sona erer. Masada Şekil 2, basit bir programı RAM'e girmek ve çalıştırmak için DATA ve RESET komutlarını kullanmanın bir örneğini göstermektedir. READ_XX_ veya READ_XXXX_ - dahili veya harici veri RAM'inin bellek hücrelerinden bir kelime (ardışık iki bayt) okunur. Onaltılık sayı biçimindeki sonuç (ilk önce en yüksek adresteki bayt) seri porta iletilir. WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ veya WRITE_XXXX,ZZZZ_ - ZZ baytı veya ZZZZ kelimesi XX veya XXXX adresine yazılır. Lütfen READ ve WRITE talimatlarının dolaylı adresleme kullanılarak uygulandığını, dolayısıyla özel işlev yazmaçlarıyla çalışamayacaklarını unutmayın. Kayıtlara erişmek için doğrudan adreslemeli değişim prosedürlerinin her biri için özel olarak yazılması gerekir. Bir örnek SPEED komut işleyicisi olabilir. Modülde 256 byte dahili RAM bulunan bir MCU varsa READ ve WRITE komutları 128H-80FFH adreslerindeki ek 0 byte ile çalışabilecektir. LOAD_XXXX,YYYY_ - harici veri hafıza bloğu olan seri port üzerinden alınan bilgilerle dolu. SAVE_XXXX,YYYY_ - harici veri hafıza bloğunun içeriği seri porta aktarılır. CALL_ZZZZ_ - ZZZZ adresinden başlayan alt program çağrılır. Monitöre dönmek için RET komutuyla bitmesi gerekir. Altprogram çalışırken kesmeler devre dışı bırakılır. CHECK_XXXX,YYYY_ - sağlama toplamı hesaplanır - harici veri bellek bloğunun tüm baytlarının toplamının düşük baytı. FILL_XXXX,YYYY,ZZ_ - harici veri belleği alanı ZZ baytı ile doldurulur ve sağlama toplamı hesaplanır. COPY_XXXX,YYYY,ZZZZ_ veya COPY_PXXXX,YYYY,ZZZZ_ - harici veri belleği bloğu ZZZZ adresine kopyalanır. P karakteri kopyalanacak alanın program belleğinde olduğunu gösterir. Aynı zamanda sağlama toplamı hesaplanır. TEST_XXXX,YYYY_ - harici RAM bloğunun servis verilebilirliği kontrol edilir. Herhangi bir hata yoksa “OK” mesajı görüntülenir, aksi takdirde “XXXX: YY<>ZZ” mesajı görüntülenir; burada XXXX hatalı hücrenin adresi, YY kendisine yazılan değer ve ZZ okunan değerdir. Komut RAM içeriğini yok etmez. SPEED_ZZ_ veya SPEED_ZZ+_ - seri port üzerinden veri alışverişinin hızını değiştirir. Varsayılan olarak 4800 Baud'dur (2DH adresindeki Monitör programı baytı tarafından belirlenir). ZZ işlenenine eşit bir değer, mikro denetleyicinin TH1 kaydına yerleştirilir ve alıcı-vericinin çalışma hızını belirler. İşlenendeki artı işareti, PCON.7 bitinin ayarlanmasıyla hızın iki katına çıkarılmasına neden olur. PC seri portu 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 ve daha yüksek baud hızlarında çalışabilir. MSC51 serisi MCU'nun seri portunu belirtilen hızlarda oldukça doğru bir şekilde yapılandırma yeteneği, kullanılan kuvars rezonatörün frekansına bağlıdır. Örneğin, 12 MHz ise, port sırasıyla 300, CC, E600, F1200 ve F2400+ işlenenleriyle SPEED komutuyla 4800, 98, 6, 3 ve 3 baud'a yapılandırılabilir. 11 MHz rezonatör kullanılarak 9600 baud hıza ulaşılabilir. Ancak dosyaları aktarırken MK muhtemelen çok yüksek hızda gelen verileri işleyemeyecektir. Açıklanan komut seti, Monitörü yeniden çevirmeden ve hatta ROM'u silmeden genişletilebilir ve tamamlanabilir. Yeni komut işleyicisi boş alanına yerleştirilir. Komut adı (ilk dört karakter büyük harfle) 5ABH adresinden başlayarak, ardından iki baytlık işleyici adresi ve 0FFH baytı yazılır. İşleyicinin 23FH adresine geçişle sona ermesi gerekir. Aşağıda belirtilen tüm tek baytlık hücre adresleri, MK'nin dahili RAM'ına atıfta bulunur. Monitör, 0 ve 2 numaralı kayıt bankalarının yanı sıra 20H-3FH hücrelerini kullanır. Yığın 50H adresinden büyür. Komutları almadığı ve işlemediği zamanlarda mikrokontrolör, ROM'da bulunan ve 35H ve 36H hücrelerinde belirtilen adreste bulunan bir alt programı sürekli olarak yürütür. Varsayılan olarak 063H'dir. P3.4 deşarjının durumunu periyodik olarak değiştiren bu alt rutin, HL1 LED'ini yakar ve kapatır. Yanıp sönme sıklığı 3DH hücresinin içeriğine bağlıdır. Bu bitin başka amaçlarla kullanılması amaçlanıyorsa WRITE_35,006A_ komutu verilmelidir. 37H ve 38H hücreleri, aslında Monitörün omurgası olarak hizmet veren ve operatör komutlarına tepkisini belirleyen seri port kesme işleyicisinin adresini içerir. Varsayılan olarak buraya 0 yazılır, bu da ROM'da 081H adresinde bulunan standart işleyicinin çağrılmasına karşılık gelir. 3BH adresine 0 dışında bir kod yazarak “Yankı” fonksiyonunu aktif hale getirebilirsiniz. Monitör, seri port üzerinden alınan tüm verileri geri gönderecektir. Bu, iletişim programındaki "Yerel Eko" yu kapatmanıza ve gerekirse hata ayıklama modülüne gönderilen tüm komutları ve bunlara verilen yanıtları bir metin dosyasına kaydetmenize olanak tanır. 3AH adresindeki sayı, Monitör tarafından bir komutun alınması ile buna yanıt verilmesi arasındaki duraklamayı belirtir; bu, bazı iletişim programlarının iletimden alıma geçmesi için gereklidir (“Telemax” için bu gerekli değildir). Saniye cinsinden duraklama süresinin 50 ile çarpımına eşittir. Bellek blokları üzerinde çalışan komutların (LOAD, SAVE, CHECK, FILL, COPY) sonuçlarından biri de 39H hücresine yerleştirilen blok sağlama toplamıdır. Listelenen komutların doğru şekilde yürütülmesini izlemek için kullanılabilir. Monitör, birçok montajcı tarafından oluşturulan Intel HEX formatındaki dosyaları doğrudan kabul edebilir. Böyle bir dosyayı bir iletişim programı kullanarak veya sadece MSDOS COPY <dosya adı> COM2 komutuyla PC'nin seri portuna göndermek yeterlidir. Önceden kullanılan bağlantı noktası (bu durumda COM2), COM2:4800,N,8,1 MODE komutuyla yapılandırılmalıdır. Bilgiler hata ayıklama modülünün harici veri belleğine yazılacak ve sağlama toplamları eşleşmezse ilgili bir mesaj verilecektir. Intel HEX dosyasının her satırı iki nokta üst üste işaretiyle başlar ve ardından boşluksuz olarak aşağıdaki iki basamaklı onaltılık bayt gelir:
Bir HEX dosyası her zaman iki nokta üst üste işaretinden sonra sıfır veri ve adres baytları içeren bir satırla, ardından son satır bayrağı (01) ve FF'ye eşit bir sağlama toplamı ile biter. Tablo 3, Tablo 2'ye göre Monitör VERİ komutu tarafından girilenle aynı verileri içeren böyle bir dosyanın örneğini göstermektedir. Yazar: V. Ogleznev, Izhevsk Diğer makalelere bakın bölüm Mikrodenetleyiciler. Oku ve yaz yararlı bu makaleye yapılan yorumlar. En son bilim ve teknoloji haberleri, yeni elektronikler: Sıcak biranın alkol içeriği
07.05.2024 Kumar bağımlılığı için başlıca risk faktörü
07.05.2024 Trafik gürültüsü civcivlerin büyümesini geciktiriyor
06.05.2024
Diğer ilginç haberler: ▪ Sosyal ağlar ana bilgi kaynağı haline geliyor ▪ ADSX34 - 34x34 noktalı senkron anahtar çipi ▪ HP EX900 Pro NVMe Sürücüleri ▪ Ayakkabı üzerinde hız göstergesi Bilim ve teknolojinin haber akışı, yeni elektronik
Ücretsiz Teknik Kitaplığın ilginç malzemeleri: ▪ saha bölümü Güç regülatörleri, termometreler, ısı stabilizatörleri. Makale seçimi ▪ makale Kederimi götür. Popüler ifade ▪ Navigator Henry hangi yolculuklarıyla ünlendi? ayrıntılı cevap ▪ makale Uzaktan kumandalı ışık anahtarı. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi
Bu makaleye yorumunuzu bırakın: Bu sayfanın tüm dilleri Ana sayfa | Kütüphane | Makaleler | Site haritası | Site incelemeleri www.diagram.com.ua |