1. Anlaşmanın temeli
1.1. Sözleşmeye Giriş
UART, Evrensel Asenkron Alıcı-Verici'nin kısaltması olan "Evrensel Asenkron Alıcı/Verici"dir. 1860'larda bilgisayar ve tele-daktilo iletişim sorununu çözmek için Bell, paralel giriş sinyallerini seri çıkış sinyallerine dönüştüren UART protokolünü icat etti. Basit ve pratik yapısı nedeniyle UART, çok yaygın olarak kullanılan bir iletişim protokolü haline gelmiştir. Günlük maruz kaldığımız seri portlar, RS232, RS485 ve diğer buslar, dahili kullanım temelde UART protokolüdür.
Protokoller ve veri yolları arasındaki ilişkiyi daha iyi anlamak ve analiz etmek için, genellikle eksiksiz bir iletişim belirtimini fiziksel katmanlara, protokol katmanlarına ve uygulama katmanlarına böleriz. Fiziksel katman yalnızca gerçek sinyal özelliklerini (voltaj, akım, sürüş kapasitesi vb.) ve elektrik sinyali ile mantık sinyali 0 ve 1 arasındaki yazışmayı tanımlar; Protokol katmanı, temel 0'lar ve 1'lerin nasıl uygulandığıyla ilgilenmez, ancak yalnızca mantıksal sinyallerin protokol özelliklerini ve iletişim sürecini (başlangıç, veri ve bitiş vb. gibi) belirtir; Uygulama katmanı, verilerin nasıl elde edildiğiyle ilgilenmez, yalnızca veri gösteriminin anlamını ve belirli iş mantığının nasıl uygulanacağını tanımlar.
UART protokolünün en basit uygulaması, genellikle fiziksel katman, yalnızca biri iletim ve diğeri alma için olmak üzere iki iletim hattına ihtiyaç duyar, böylece tam çift yönlü iletişim sağlanır. Tek yönlü aktarımlar için yalnızca bir aktarım hattı da kullanabilirsiniz. Böyle bir uygulamanın en tipik örneği, mikrodenetleyicinin birbirine bağlı RX/TX portları olup, TTL seviyesi tabanlı UART iletişimini sağlar. Farklı iletim mesafeleri ve güvenilirlik gereksinimleri için, farklı fiziksel katman uygulamalarının değiştirilmesi, ortak RS232, RS485 ve diğer iletişim veri yollarımızı elde edebilir.
1.2. Farklı fiziksel katman uygulamaları
UART protokol katmanına giriş bir lojik 0/1 sinyali olduğundan, lojik 0/1 sinyali fiziksel katmanda farklı seviye standartlarıyla ayırt edilebilir. Farklı iletişim ihtiyaçları için farklı fiziksel katmanlar kullanılabilir. Örneğin, basit yerleşik iletişim veya yaygın cihaz hata ayıklama senaryoları, iki cihaz arasındaki UART protokolü iletişimi, basit bir LVTTL/TTL seviyesi kullanılarak gerçekleştirilebilir.
Evrensel seri bağlantı noktası, iletim mesafesini artırabilen ve belirli bir derecede sinyal girişimine direnebilen RS232 seviyesini kullanır. Maliyet, elde etmek için fiziksel katmanda karşılık gelen seviye çeviri çipinin gerekli olması, vericinin dahili yüksek ve düşük seviye sinyalini daha yüksek voltaj +/- voltaj sinyaline dönüştürmesi ve alıcı ucun +/ - dahili bir yüksek ve düşük seviye sinyaline voltaj sinyali.
Endüstriyel iletişim durumunda, iletim mesafesini daha da iyileştirmek ve sinyalin güvenilirliğini artırmak için genellikle RS485 seviye standardı kullanılır. Sıradan yüksek ve düşük seviyeli sinyaller, verici uçta bir çift diferansiyel sinyale dönüştürülür ve diferansiyel sinyaller, alıcı uçta sıradan yüksek ve düşük seviyeli sinyallere dönüştürülür. Ek olarak, RS485, veriyoluna 128 adede kadar alıcı-vericinin bağlanmasına izin verirken, TTL veya RS232 noktadan noktaya bağlantılardır.
1.2.1. TTL tabanlı UART iletişimi
TTL'ye dayalı UART iletişimi, UART protokolü uygulamaları için en basit kullanım durumudur. Yani, dijital G/Ç çıkışının yüksek ve düşük seviyeleri, gerçek fiziksel sinyal olarak doğrudan iletilir. Fiziksel bağlantı açısından sadece cihazın ortak zemin olması gerekir ve tek yönlü cihaz iletişimi bir sinyal hattı üzerinden tamamlanabilir. Çift yönlü tam dubleks gerekiyorsa, iki sinyal hattı kullanılır.
Farklı fiziksel katmanların uygulanmasındaki farklılıkları karşılaştırmak için, aynı veri gönderildiğinde farklı fiziksel katmanların gerçek sinyallerinin nasıl farklılaştığını gözlemleyebiliriz. Burada, örnek olarak 'D' iletim karakterini alarak, taş osiloskop aracılığıyla, TTL tarafından iletilen sinyali doğrudan gözlemleyin (prob toprak terminali cihazın ortak toprak ucuna bağlanır ve prob sinyal ucu, yukarıdaki şekildeki mavi sinyal hattı) ve Şekil 1-4'te gösterilen sinyal dalga formu elde edilebilir. Dalga formundan da anlaşılacağı gibi, veri iletimi olmadığında, UART sinyali yüksek bir seviyede kalacaktır (belirli sinyal genliği, I/O'nun besleme voltajı tarafından belirlenir), veri iletimi sırasında sinyal atlayacaktır. , ve iletim tamamlandıktan sonra sinyal boşta yüksek seviye durumuna dönecektir.
1.2.2. RS232'ye dayalı UART iletişimi
İletim mesafesini ve güvenilirliği artırmak için sürücü kapasitesini geliştirmek için, RS232 veri yolu, fiziksel iletim için iki kutuplu bir voltaj sinyali kullanır. Sinyal gönderilmeden/alınmadan önce, dahili sinyal ve veri yolu sinyali bir seviye kaydırma çipi vasıtasıyla birbirine dönüştürülür. Bağlantı yöntemi, TTL düzeyiyle tamamen aynıdır ve tüm fiziksel katman, yalnızca bir düzey çeviri katmanından ibarettir.
Ayrıca örnek olarak iletim karakteri 'D' kullanılarak, Pushi osiloskopun probu sinyal ucuna bağlanır ve Şekil 1-6'da gösterilen gerçek dalga formu yakalanabilir. RS232 dalga formunun boştayken negatif voltaj olduğu ve veri iletimi olduğunda sinyalin pozitif ve negatif voltajlar arasında atlamaya başladığı ve iletim tamamlandıktan sonra boşta negatif voltaj durumuna döndüğü görülebilir.
1.2.3. RS485'ye dayalı UART iletişimi
RS485, karmaşık endüstriyel ortamlar için tasarlanmıştır ve RS485 veri yolunun en büyük özelliği, diğer UART protokollerinin fiziksel katmanlarına kıyasla diferansiyel sinyal iletiminin kullanılmasıdır. Sinyal gönderilmeden önce, tek uçlu sinyal, RS485 alıcı-vericisi tarafından diferansiyel sinyale dönüştürülür ve daha sonra iletilmek üzere veri yoluna gönderilir; Ayrıca, veri yolundaki diferansiyel sinyal, alıcı-verici tarafından tek uçlu bir sinyale dönüştürülür ve daha sonra alım için UART kontrolörüne gönderilir. RS485 veriyolunda, tam çift yönlü çift yönlü iletişim için iki çift diferansiyel sinyal hattı (yani 4 sinyal hattı) gereklidir. Yalnızca yarı çift yönlü iki yönlü iletişim gerçekleştirilirse, yalnızca bir çift diferansiyel sinyal gerekir.
Yine, örnek olarak iletim karakteri 'D' kullanılarak, Şekil 1-8'de gösterilen gerçek dalga biçimi, Pushi osiloskopun A/B uçlarına bağlı olan iki kanallı sondası (genellikle referans verilen) kullanılarak elde edilebilir. diferansiyel sinyallerden birinin A/B ucundaki dalga formunun tamamlayıcı olduğu görülebilir. A-terminal dalga formu ileri mantıktır (boştayken pozitif voltaj) ve B-terminal dalga formu ters mantıktır (boştayken negatif voltaj).
2. Protokol Özellikleri
2.1. UART çerçeve yapısı
Önceki bölümün girişinde, taş osiloskop aracılığıyla gerçek UART dalga biçimini gözlemledik, peki bu dalga biçimi başka bir şey değil de 'D' karakteri olarak tam olarak nasıl doğru bir şekilde tanınır? Bu, UART protokolünün çerçeve yapısının tanımını içerir. Şekil 2-1'de gösterildiği gibi:
İki cihazın UART protokolü üzerinden iletişim kurması gerektiğinde, aynı anda aşağıdakiler üzerinde anlaşmaları gerekir:
- T sinyali başına süre (baud hızı = 1/T)
- Çerçeve yapısındaki her bir öğedeki belirli bit sayısı
- Kontrol basamağı olup olmadığı ve kontrol basamağının mekanizması (tek/çift/…). ）
Bu konvansiyonlarla, alıcı cihazın yalnızca başlangıç bitinin gelmesini beklemesi ve ardından iletilen belirli bilgileri elde etmek için sonraki dalga biçimini düzenli aralıklarla örneklemesi gerekir. Örnek olarak 'D' karakterinin dalga biçimini alarak, çözüm süreci Şekil 2-2'de gösterilmiştir:
2.1.1. Baud hızı
Baud hızı, UART protokolünün veya tüm asenkron seri protokollerin çok önemli bir kavramıdır, yani birim zamanda temsil edilebilen bit sayısı (1 saniye) veya bit genişliğinin tersi olarak da ifade edilebilir. . Örneğin, 115200 baud hızına sahip bir UART dalga biçimi, saniyede 115200 bit barındırabileceği anlamına gelir; bu, her bir veri bitinin yaklaşık 8.68uS zamana karşılık geldiği anlamına gelir.
UART gibi asenkron seri protokoller, sinyallerin fiziksel bağlantısını basitleştirmek ve iletişim maliyetlerini azaltmak için genellikle sadece bir sinyal hattına sahiptir ve aynı anda veri ve saat sinyallerini iletemez. Alıcı-verici/verici cihazın dalga biçimini doğru bir şekilde çözmesi için, aynı baud hızı ayarında olması gerekir. Farklı baud hızlarını kullanan aynı dalga biçimi, tamamen farklı bilgiler elde edebilir. Alıcı cihaz için, bir veri çerçevesinin senkronizasyon noktası olarak yalnızca başlangıç biti kullanılabilir ve diğer veriler, spesifik örnekleme konumunu belirlemek için baud hızı tarafından belirlenir.
Yine örnek olarak 'D' karakterinin dalga formunu kullanarak, Şekil 2-4'te gösterildiği gibi, yanlış baud hızında alınırsa, tamamen yanlış veri bilgisi alabilirsiniz.
2.1.2. Boşta Uçlar
Cihazlar arasında veri aktarılmadığında, sürekli yüksek seviye boşta olduğunu gösterir. Boş bit süresi ve iki veri çerçevesi arasındaki aralık ne kadar uzun olursa, birim zaman başına o kadar az veri iletilir.
2.1.3. Başlangıç Biti
UART alıcısı, sinyal hattındaki seviye değişimini her zaman algılayacak ve veri iletildiğinde, gönderici, sinyal hattını yüksek seviyeden düşük seviyenin sonuna kadar boş duruma çekecek ve biraz zaman tutacaktır. Alıcı, yüksek-düşük seviye kayması algıladığında, sinyal almaya başlar.
2.1.4. Veri bitleri
Veri biti, eşlik kullanılıyorsa 5 ila 8 bit uzunluğunda ve eşlik kullanılmıyorsa 5 ila 9 bit uzunluğunda iletilen gerçek verileri içerir. Genel olarak, veri bitleri 8 bittir ve veriler ilk önce en az anlamlı bitten gönderilir, yüksek bitler ikinci sırada gelir.
2.1.5. Rakamları kontrol et
Kontrol rakamları, iletimin güvenilirliğini artırmak için kullanılabilir. İletim sürecindeki parazit nedeniyle sinyal yanlışsa ve bazı konumların seviyesinde bir hataya neden oluyorsa, alınan veri ile kontrol hanesinin eşleşip eşleşmediği hesaplanarak alınan veri ile kontrol basamağının eşleşip eşleşmediği belirlenebilir, böylece ilgili verileri kabul etmeye/atmaya karar vermek için uygulama katmanına geçerli bilgiler sağlamak için.
2.1.6. Biti Durdur
Dur biti, bir veri çerçevesinin sonunu temsil eder ve gerçek sinyal, yüksek bir zaman periyodudur. Durdurma bitinin uzunluğu 1, 1.5 veya 2 bitlik bir durdurma bitine ayarlanabilir. Çoğu durumda, 1 bitlik bir durdurma biti kullanılır.
UART asenkron bir protokol olduğundan, her çerçevenin başlangıcı bir atlama kenarı ile senkronize edilebilir, ancak durdurma biti yalnızca baud hızı ile göreceli konumu hesaplayabilir ve durma konumunda düşük bir seviye tanınırsa, bir çerçeve hatası oluşturuldu. Haberleşme sürecinde, baud hızı hatasından kaynaklanan sorunu azaltmak için farklı stop bit uzunlukları uyum sağlayacak şekilde ayarlanabilir.
3. Bir mantık analizörü kullanarak UART iletişimini analiz edin
3.1. Osiloskop ve Mantık Analizörü
Genel amaçlı ana test ve ölçüm cihazı olarak osiloskoplar, analog sinyallerin ayrıntılarını gözlemlemede doğal bir avantaja sahiptir. Örneğin, yüksek dalga biçimi yenileme hızına sahip gerçek zamanlı işlem, ani anormal sinyalleri kolayca gözlemleyebilir; Örneğin, gürültü değerlendirmesi ve sinyal kalitesi optimizasyonu yaparken, osiloskop, gizli sinyal bütünlüğü problemlerini bulmak için aynı veri yolu ve farklı düğümlerdeki sinyallerin benzerliklerini ve farklılıklarını karşılaştırabilir.
Bununla birlikte, osiloskop da doğal olarak bazı uygunsuz yerlere sahiptir, birkaç kanala ek olarak, ekran genellikle küçüktür, işlem bilgisayar + fare yolu esnek değildir ve bu morfolojik problemler kontrol edilebilir, dijital sinyallerin alınması ve analizi için, en büyük osiloskopun sorunu, depolama derinliğinin çok küçük olmasıdır. Birkaç yüz bin yuan'lık bir osiloskop da sadece birkaç yüz Mpt'lik bir depolama derinliğine sahip olabilir. Aynı zamanda, depolama derinliğinin sınırlandırılması nedeniyle, biraz daha uzun bir zaman alımı yapılması gerektiğinde, osiloskopun gerçek örnekleme hızı keskin bir şekilde düşecek ve toplanan dalga formunun gerçek sinyali geri yükleyememesiyle sonuçlanacaktır. analizin önemi.
Lojik analizörler, özellikle dijital sinyal alımı ve analizi için tasarlanmış test ve ölçüm cihazlarıdır ve toplanan dalga formu sonuçları yalnızca yüksek ve düşük seviyelerdedir (yani, mantıksal 0 ve 1). Bununla birlikte, dijital sinyallerin alınmasında ve analiz edilmesinde osiloskopların eksikliğini telafi eder.
- 1. Çoğu mantık analizörü, masaüstü işlemcilerin güçlü performansı ve dijital sinyal analizinin kolaylığını ve verimliliğini büyük ölçüde artıran olgun işletim sistemlerinin etkileşimli deneyimi ile bir PC'de çalıştırılır.
- 2. Lojik analizör kanal sayısı fazladır, giriş seviyesi DSLogic mantık analizörü aynı anda toplanabilen 16 kanala sahiptir ve kullanıcı ayrıca onlarca hatta yüzlerce kanallı mantık analizörü ürünlerini çok makul bir fiyata elde edebilir. maliyet.
- 3. Mantık analizörünün depolama derinliği daha büyüktür; örneğin, DSLogic, akış modunda 16G'lik bir depolama derinliğine ulaşabilir ve aynı zamanda, çoğu osiloskopun yakalama kapasitesini çok aşan oldukça yüksek bir örnekleme hızını koruyabilir.
- 4. Mantık analizörleri genellikle dijital sinyallerin derinlemesine analizini gerçekleştirebilen zengin protokol kod çözme işlevleri sağlar. Örneğin, DSLogic şu anda 100'den fazla kod çözme protokolünü desteklemektedir. Çoğu osiloskopun kod çözme yetenekleri sınırlıdır ve çoğu ilgili eklentilerin ayrıca satın alınmasını gerektirir.
Daha sonra, çeşitli durumlarda UART sinyallerinin alınması ve analizi için mantık analizörlerinin nasıl kullanılacağına odaklanacağız.
3.2. Mantık çözümleyicileri için bir test ortamı oluşturun
3.2.1. DSLogic'e bağlantı
DSLogic, USB bağlantısına dayalı taşınabilir bir mantık analizörüdür. DSLogic ana bilgisayarı, sinyal alımından ve önbelleğe alınmasından sorumludur ve ardından verileri USB aracılığıyla PC'deki ana bilgisayar yazılımı DSView'a iletir. DSView, dalga biçimi veri işleme, görüntüleme, analiz ve ilgili insan-bilgisayar etkileşimi işlevlerinden sorumludur.
Kullanırken, DSLogic ana bilgisayarını bir USB veri kablosu aracılığıyla doğrudan PC kartındaki USB bağlantı noktasına bağlayın, DSView yazılımını açın ve DSLogic ana bilgisayarındaki GÖSTERGE'nin her zaman yeşil olduğunu onaylayın. Bu noktada, lojik analizörün bağlantısı ve başlatılması tamamlanır. Şekil 3-4'te gösterildiği gibi, sol üst köşede mevcut cihaz adı ve ilgili bağlantı durumu DSView yazılımında gözlemlenebilir.
3.2.2. UART sinyal bağlantısı
Tüm ölçümler için, test ekipmanı ve ölçülecek sinyal, ölçülen sinyalin doğru bir şekilde alınabilmesi ve ölçülebilmesi için yaygın olarak topraklama olarak adlandırılan ortak bir referans düzlemine dayanmalıdır. Bazı durumlarda, açık bir topraklama yoktur, ancak ölçüm sonuçları sorun değil gibi görünmektedir, bunun nedeni, ölçüm ekipmanının ve ölçülen sinyalin, kullanılan aynı güç kaynağı veya referans kaynağı gibi başka yollarla toprağa bağlanmasıdır. toprak aynı anda şebekenin toprak terminaline bağlanır. Ancak titiz ölçümler yapılırken ölçüm ekipmanı test edilen sinyale göre topraklanmalıdır. Ölçülen sinyalden ölçüm cihazına sinyal topraklama terminalinin döngü alanı ne kadar büyük olursa, sinyale müdahale edilmesi o kadar kolay olur, bu da ölçüm hatalarına ve hatta ölçüm hatalarına neden olur.
UART sinyalleri için, mantık analizörüne erişirken, en basit durumda, biri referans toprağa ve diğeri ölçülen sinyale olmak üzere yalnızca 2 kablo bağlamak gerekir. UART protokolünün daha önce bahsettiğimiz farklı fiziksel katman uygulamaları için sinyallerin bağlanma şekli biraz farklı olacaktır.
Örneğin, TTL seviyesindeki UART sinyali için, referans toprak bağlantısına ek olarak, yalnızca test edilecek sinyali (TX veya RX) mantık analizörünün ilgili kanal girişine bağlamanız gerekir.
RS232 bus sinyalleri için, seviye çevirisinden sonra bus sinyalini ölçebiliriz (DSLogic, kablo girişinde +-30V dayanma gerilimi aralığına sahiptir ve RS15'nin +-232V sinyal aralığı doğrudan bağlanabilir) veya ölçüm yapabiliriz. seviye çevirisinden önceki dahili dijital sinyal. Kablolama yöntemi TTL sinyali ile tutarlıdır, dikkat edilmesi gereken tek şey, RS232 sinyalinin seviyeyi (boştayken negatif voltaj, yani düşük seviye) çevirmesidir, UART protokolünün kodunu çözerken karşılık gelen sinyal seviyesini tersine çevirebiliriz. DSView'in kod çözme ayar penceresi (Sinyali Ters Çevir seçeneği evet olarak ayarlanmıştır).
RS485 veri yolu, diferansiyel sinyalleri kullanır ve sinyal alımı için bir mantık analizörü kullandığımızda, ölçülen sinyalin bağlantısına özellikle dikkat etmemiz gerekir. Her şeyden önce, mantık analizörünün referans bölgesi, test RS485 alıcı-vericisi altında ilgili cihazın referans toprağına bağlanmalıdır, böylece mantık analizörünün doğru seviye referans düzlemine sahip olması garanti edilebilir; İkincisi, diferansiyel sinyaller için, mantık analizörünün yalnızca dahili sinyalle yüksek ve düşük homopolarite seviyeleri elde etmesi gerekir. Dijital sinyaller açısından bakıldığında, diferansiyel yol, ek bilgi eklemeden yalnızca sinyal iletiminin güvenilirliğini artırır. Şekil 3-7'de gösterildiği gibi, bir mantık analizörü kullanarak 485 veriyolu sinyalini test ederken, ilgili cihazın alıcı-vericisinin referans topraklamasını ve diferansiyel veriyolundaki A+ sinyalini bağlayın.
Tabii ki, yalnızca B sinyali toplanabiliyorsa, DSView'de kod çözme sırasında doğru protokol çözünürlüğü sonucunu elde etmek için UART kod çözücüyü sinyali tersine çevirecek şekilde de ayarlayabiliriz.
3.2.3. Eşik Ayarları
Mantık analizörünün eşiği, yüksek ve düşük seviyelerin yargı voltajıdır, yani giriş sinyali voltajı eşik voltajından yüksek olduğunda, alım yüksek seviyededir; Giriş sinyali voltajı eşik voltajının altında olduğunda, alım düşüktür.
UART protokolü için, farklı fiziksel katman uygulamalarına sahip olduğunu ve farklı fiziksel katman uygulamalarının farklı seviye standartlarına sahip olduğunu daha önce tanıtmıştık. Farklı durumlarda yüksek ve düşük seviyeleri ayırt etmek için sadece karşılık gelen bir eşik seçmemiz gerekir. Şekil 3-8'de gösterilen eşikler temel olarak bu gereksinimi karşılayabilir.
Bazı durumlarda, RS485 veri yolunun diferansiyel sinyal genliği, yapılandırma veya hata ayıklama nedeniyle geniş bir aralıkta değişebilir. RS485 spesifikasyonu, AB arasındaki diferansiyel voltajın 200mV'den büyük olduğu sürece yüksek kabul edilebileceğini şart koştuğu için. Bu noktada, gerçek sinyal seviyesi genliğini gözlemlemek için taş osiloskop kullanabilir ve ardından uygun eşik ayarına karar verebiliriz. Yalnızca ayarladığınız eşik voltajının yüksek ve düşük seviyeleri makul bir şekilde ayırt edebildiğinden emin olmanız gerekir.
3.3. Basit UART sinyal alımı
Çoğu UART sinyali, sinyal frekansının sadece 115200 KHz olduğunu gösteren, en yaygın olarak kullanılan 115.2 baud hızı gibi düşük hızlı sinyallerdir. Bu tür sinyaller, DSLogic'in varsayılan ayarları kullanılarak doğrudan alınabilir. Burada, ana bilgisayar sabit 1s aralığını alarak ve örnek olarak 'D' karakterini tekrar tekrar göndererek, bu tür UART sinyallerini elde etmek ve analiz etmek için bir mantık analizörünün nasıl kullanılacağını açıklar.
3.3.1. Sinyal Toplama
Donanım ve sinyal bağlantısı hazırlandıktan sonra, test edilen sinyali varsayılan ayarda (1MHz örnekleme hızı toplama süresi 1s) elde etmek için doğrudan DSView yazılımının “Başlat” düğmesine tıklayın. Örnekleme hızını ve alım süresini değiştirmek istiyorsanız, ilgili açılır kutudan doğrudan ilgili parametreleri seçin. Örnekleme hızı ayar ilkesinin, ölçülen sinyalin maksimum frekansının 10 katı veya daha fazla olması önerilir, örneğin, 115200 baud baud hızına sahip UART sinyalleri için, 115.2M örnekleme hızı olduğunda en hızlı sinyal frekansı 1KHz'dir. seçildiğinde, her bit sinyalinin 8 veya 9 örnekleme noktası olacaktır ve ilgili faz hatası +-1/8 (%12.5)'dir; 10M örnekleme hızı seçildiğinde, sinyal biti başına 86 veya 87 örnek noktası olacaktır, bu da +-1/86 (%1.16) faz hatasına karşılık gelir. Tabii ki, genellikle çok yüksek bir örnekleme hızı kullanılması tavsiye edilmez, çünkü örnekleme hızı ne kadar yüksek olursa, toplanabileceği süre o kadar kısa olur ve çok yüksek örnekleme hızı, tek atlamada birden fazla sıçrama toplayabilir. yavaş sinyalin kenarı, böylece protokol kod çözmede soruna neden olur. Şekil 3-9, varsayılan ayarlar kullanılarak elde edilen sonuçtaki sinyal dalga biçimini gösterir.
Şekil 3-9'dan görülebileceği gibi, Kanal 0 sürekli olarak yüksek bir sinyal alır, ancak herhangi bir sıçrama bulamaz. Geçerli pencerenin tüm sinyalleri değil, toplanan dalga biçiminin yalnızca bir kısmını görüntülediğini bilmek için dalga biçimi penceresinin üzerindeki zaman cetvelini ve pencerenin altındaki kaydırma çubuğunu dikkatle izleyin. Bu noktada, tüm alım süresi boyunca tüm dalga formlarını görüntülemek için fare tekerleğini yakınlaştırabilir veya dalga formu alanına sağ tıklayabilirsiniz. Şekil 3-10'da gösterilen sonucu alın.
Yukarıdaki şekle dayanarak, sadece kanal 0'ın geçiş kısmına bakmak istiyoruz. Seçenekler penceresinde diğer kanalların dalga şekli gösterimini kapatabilir ve kanal sinyalinin gösterim yüksekliğini ayarlayabilirsiniz. Ardından fareyi hedef dalga biçimine ve aynı zamanda sivri konumun dalga biçimini büyütmek için fare tekerleğine doğrultun; Alternatif olarak, kutuda sağ fare düğmesini basılı tutarak dalga formunun yakınlaştırmak istediğiniz alanını seçebilirsiniz. Ayrıca, dalga biçimini sola ve sağa hareket ettirmek için sol fare düğmesini basılı tutun. Şekil 3-11'de gösterilen dalga biçimi ayrıntılarını alın.
Dalga biçimini gözlemlerken, fareyi darbe dalga biçiminin üzerine getirmek, darbe genişliği, periyodu, frekansı ve mevcut sinyalin görev döngüsü gibi bilgileri görüntüleyebilir. Aynı zamanda, farenin sol düğmesine çift tıklayarak bir imleç de ekleyebilirsiniz ve imleci hareket ettirdiğinizde, otomatik olarak yakındaki atlama kenarına yapışacaktır.
3.3.2. UART kod çözme
Mantık analizörü tarafından toplanan sinyal dalga biçimi, yalnızca yüksek ve düşük seviyelerde (0/1) zaman içinde değişir, bu da sinyal iletiminin süreci ve içeriğinin hedeflenen analizine elverişli değildir. Protokol spesifikasyonuna göre dalga formuna karşılık gelen protokol içeriğini çevirmek için çıplak gözle kullanabilmemize rağmen, bu, analizin verimliliğini büyük ölçüde azaltacaktır. DSView'ün yerleşik kod çözücüsü, zengin protokol kod çözme içeriği sağlayarak sıkıcı dalga biçimlerini anlamlı karakterlere, işaretçilere ve veri içeriğine dönüştürür. Hata mesajlarını veya kritik verileri bulmak için mühendisler tarafından sinyallerin analizini ve anlaşılmasını büyük ölçüde kolaylaştırır.
DSView yazılımında, elde edilen dalga formunun protokol kod çözme işlemi çok basittir, sadece “Decode” panelini açın, ilgili kod çözücüyü arayın (burada 1: UART protokolünü seçiyoruz) ve ilgili kod çözücü seçeneklerini ayarlayın (ekran/kanal dahil) /çerçeve yapısı/biçimi vb.). Belirlendikten sonra yazılım, seçilen kanaldaki UART protokolünün kodunu çözmeye başlayacaktır. Kodu çözülen sonuç protokol kanalında görüntülenir. Bu, Şekil 3-12'de gösterilmektedir.
Bir kod çözücü seçerken, DSView uygun bir protokol arama işlevi sağlar, protokol arama kutusuna anahtar karakterleri girmeniz yeterlidir; DSView, kullanıcının doğru kod çözücüyü seçebileceği bu karakterleri içeren tüm kod çözücüleri listeler. Şekil 3-13'te gösterildiği gibi, UART 0: UART ve 1: UART ile ilgili iki protokol vardır, burada 0: UART, bit bilgilerini ayrıştırmayan ve daha yüksek seviyeli protokollerin yığınlanmasını desteklemeyen basitleştirilmiş bir kod çözücüdür, Yalnızca dalga biçimine karşılık gelen verileri almak istediğimizde, kod çözme süresini ve bellek kaynaklarını azaltmak için bu basitleştirilmiş protokolü kullanabilirsiniz.
Kod çözücünün ayarlar penceresi, kod çözme ile ilgili birçok ayar seçeneğine sahiptir ve farklı protokollerin ayarlar penceresinin içeriği farklı olacaktır. Kanal ve protokol sinyalleri arasındaki yazışmalar gibi tüm kod çözücülerin ayarlaması gereken bazı seçenekler vardır. Burada kanal 0 tarafından yakalanan UART sinyalini kullanıyoruz, bu nedenle kodu çözülmesi gereken ilgili kanal 0. kanala ayarlanmalıdır.
Çerçeve yapısı bölümünde detaylı olarak anlattığımız ve protokol ile ilgili ayar seçenekleri de bu bilgiyi elde etmek için seri port ana bilgisayar yazılımı (seri port hata ayıklama yardımcısı vb.) üzerinden fiili operasyonda da elde edilebilir. Bu, Şekil 3-14'te gösterilmektedir.
Kodu çözülen veri içeriği için DSView, farklı görüntüleme biçimlerini destekler. Örneğin, daha önce elde edilen UART sinyali, 'D' karakterini ASCII kodları biçiminde görüntüler veya onaltılık (Hex) görüntüleme moduna değiştirilebilir ve sonuç 0x44'ü gösterecektir. Bu, Şekil 3-15'te gösterilmektedir. Şu anda desteklenen görüntüleme biçimleri şunlardır: onaltılı (onaltılı), aralık (ondalık), sekizli (sekizli), bin (ikili) ve ascii kodu.
3.4. Tek bir UART iletiminin alınması
Yakalamak istediğimiz dalga biçimi ara sıra bir sinyal olduğunda, dalga biçiminin ne zaman görüneceğini bilemeyiz ve doğrudan yakalama yöntemini kullanırsak çoğu zaman yalnızca boş sinyal dalga biçimini yakalayabiliriz ve yapamayız. gerçek iletim sırasında sinyali yakalayın.
Bu sırada tetiklenerek yakalanabilir. Karşılık gelen tetikleme koşullarını ayarlayarak, görmek istediğimiz sinyal dalga biçimini doğru bir şekilde yakalamak için dalga biçimi değişikliğine göre sinyal alımının başlangıç zamanını kontrol edebiliriz.
3.4.1. arabellek modu
DSLogic iki alım modunu destekler: Akış modu ve Tampon modu. Akış modunda toplanan veriler gerçek zamanlı olarak PC'ye iletilir ve ardından DSView tarafından işlenir. Buffer modunda toplanan veriler, önce DSLogic'in dahili donanım önbelleğinde önbelleğe alınır ve daha sonra alım tamamlandıktan sonra PC'ye aktarılır ve DSView tarafından işlenir.
Daha yüksek örnekleme hızlarına ulaşmanın avantajlarına ek olarak, Tampon modu ayrıca çok seviyeli tetikleme, seri tetikleme ve tetik konumlarının ayarlanması gibi daha fazla tetikleme seçeneği ve ayarı destekler. Akış modu ise yalnızca basit tetiklemeyi destekler.
3.4.2. Tetik Ayarları
Basit tetikleme için tetikleme seçeneğini doğrudan kanalın yanına ayarlayabiliriz. Sırayla yükselen kenar, yüksek, düşen kenar, düşük seviye ve herhangi bir kenar tetikleyicisine karşılık gelir. Tetik panelinde varsayılan basit tetik modunu tutmanız yeterlidir. Örneğin, ne zaman gerçekleştiğini bilmeyen bir UART iletimi için düşen kenarı tetiklemeyi seçebiliriz. UART sinyali boşta kaldığında tetik tatmin olmaz. DSLogic, Şekil 3-17'de gösterildiği gibi tetikleme koşulunun gelmesini bekler.
UART, ilk başlatma bitini iletmeye başladığında, tetikleme koşulu etkinleştirilir ve DSLogic, tetikleme anında sinyal dalga biçimini alır. Bu, Şekil 3-18'de gösterilmektedir.
A cihazının sürekli olarak B cihazına rastgele veri göndermesi ve B cihazının A cihazı tarafından gönderilen veri içeriğine göre farklı verilere yanıt vermesi gibi daha karmaşık bir tetikleyici senaryosunu ele alalım. A cihazının Cihaza hangi verileri gönderdiğini bilmek istiyorsak B verisini 0 göndermeden önce, ilgili anda dalga biçimini yakalamak için tetikleme koşulunu nasıl ayarlayacağız?
Burada çözülmesi gereken iki problem var, ilk önce tetikleyicinin konumunu ayarlamamız gerekiyor ki tetikleyiciden sonraki verileri değil, tetikleyiciden önceki verileri görebilelim; İkinci olarak, 0 verisi gönderen B cihazının dalga biçimi özelliklerini bulmamız ve onu ilgili tetikleme koşuluna dönüştürmemiz gerekir.
Şekil 3-19 Tetik konumu
UART'ın protokol kurallarına göre, 0 verisini gönderen dalga formu, nispeten geniş sürekli düşük seviyeli bir darbe sinyali olacaktır. UART'ın baud hızı 115200 ve ayarladığımız örnekleme hızı 1MHz ise, veri 0'ın dalga biçimi Şekil 3-20'de gösterilmektedir, bu da yaklaşık 78.125uS'lik düşük seviyeli bir darbe olacaktır.
Gelişmiş tetikleme veya tetikleme konumunu ayarlamak için arabellek modu desteği gerekir, önce “Seçenekler”de “Çalıştırma modu”nu “Tampon modu”na ayarlamanız ve “RLE donanım sıkıştırma” seçeneğini seçmemeniz gerekir. Gelişmiş tetikleme koşulunu sürekli düşük 1 örnek noktasıyla (75MHz örnekleme hızına karşılık gelir, bu da 1us'luk düşük bir seviyedir) kanal 75'e ayarlayın ve tetiklemeden önce verilerin gözlemlenmesini kolaylaştırmak için tetikleme konumunu %80'e ayarlayın. Özel ayarlar Şekil 3-21'de gösterilmektedir.
Bu tetikleme koşuluna göre, B cihazı 0 verisi gönderdiğinde tetiklenir ve elde edilen dalga formu Şekil 3-22'de gösterilmektedir.
3.4.3. Koleksiyonu tekrarlayın
Bazı durumlarda, Burst tarafından her seferinde gönderilen veri içeriği gibi bazı sinyallerin durumunu dinamik olarak gözlemlememiz gerekir, ancak verilerin ne zaman gönderildiğini bilmiyoruz ve “Başlat” düğmesine sık sık basmak imkansızdır. . DSView, tetikleme karşılandığında dalga biçimlerini otomatik olarak alan ve güncelleyen bir "tekrar" edinme modu sağlar. Bazı periyodik çoğuşma sinyallerinde hata ayıkladığımızda, tekrarlama modunda dinamik toplama ve protokol ayrıştırma sonuçlarını gözlemlemek çok uygundur.
Tekrar modu Şekil 3-23'te gösterildiği gibi ayarlanabilir. Tekrarlama aralığı, önceki edinimin dalga formunun ve kod çözme sonuçlarının gözlemlenmesini kolaylaştırmak için iki numune arasındaki minimum bekleme süresidir.
3.5. Uzun vadeli UART iletimlerinin satın alınması
Analiz için ultra uzun dalga formları elde etmek gerektiğinde Akış modunu kullanabiliriz. DSLogic, Akış modunda kanal başına 16G örnekleme derinliğine ulaşabilir. 1MHz'lik bir örnekleme hızında, edinme süresi 16 saatten fazla olan 1G/16000M ≈ 4s'ye ulaşabilir.
3.5.1.Akış modu
Akış modu kurulumu Şekil 3-24'te gösterilmiştir ve farklı DSLogic donanım sürümleri, farklı akış modu kanal seçeneklerini destekler. U3Pro16 için, USB3.0 bağlantı noktasına dayalı olarak, 3 GHz'e kadar örnekleme hızında 1 kanal, 6 MHz'e kadar örnekleme hızında 500 kanal, 12 MHz'e kadar örnekleme hızında 250 kanal ve 16 MHz'e kadar örnekleme hızında 125 kanal elde edebilir.
Toplanan veri miktarı nispeten büyük olduğunda, 0:UART protokolü, bit bilgilerinin çıktısını atlayan 1:UART ile karşılaştırıldığında kod çözme için kullanılabilir, yüksek seviyeli protokol yığınlamasını desteklemez ve kod çözme süresini kısaltabilir ve bellek işgalini azaltır. Diğer işlevler 1: UART ile aynıdır. Kod çözme etkisi Şekil 3-25'te gösterilmektedir.
3.5.2. Protokol listesi görüntülenir
Aşağıdaki şekilde gösterildiği gibi, grafiksel kod çözme sonucu, dalga biçimini anlamamıza ve sorunu bulmamıza yardımcı olan, zaman içinde elde edilen dalga biçimiyle tamamen senkronize edilir, ancak aynı zamanda, zamanın ekran ölçeği nedeniyle, kod çözme sonucunu görüntülemek için elverişli. Liste ekranları bu eksikliği gidererek büyük miktarda kodu çözülmüş içeriği görüntülemeyi ve analiz etmeyi kolaylaştırır.
DSView, grafik ve liste sonuçları arasında geçiş yapmak için bir yol sağlar. İlgili dalga biçimi sonucuna otomatik olarak atlamak için liste sonuçlarında herhangi bir satıra tıklayın ve ayrıca atlama sırasında dalga biçimini otomatik olarak yakınlaştırmayı veya dalga biçiminin geçerli yakınlaştırma oranı sütununu düzeltmeyi seçebilirsiniz. Ayrıca, belirli bir anda dalga formunu görüntülediğimizde, bu dalga formuna karşılık gelen kod çözme sonucunun listede görüntülendiği konuma atlamak istiyorsak, ekranın sağ üst köşesindeki konumlandırma düğmesine tıklamanız yeterlidir. liste görüntüleme penceresi.
Ayrıca, kodu çözülen içerik, liste ekranı aracılığıyla bir dosyaya aktarılabilir. Yukarıdaki şekilde gösterildiği gibi, listede görüntülenen “Kaydet” düğmesine tıklayarak, o anda kodu çözülmüş içeriği matlab'a giriş gibi daha fazla üçüncü taraf veri işleme için uygun olan bir csv veya txt dosyasına aktarmayı seçebilirsiniz. analiz için veya diğer yazılımlar için veri girişi olarak.
3.5.3. Veri arama kodunu çöz
Liste görüntüsünün bir başka avantajı da, kodu çözülen sonuçların, belirli işlemleri veya belirli veri baytlarını aramak gibi, görüntülenmesi gereken konumu hızla bulabilen sonuç aramaları için dizeler olarak kullanılabilmesidir.
Arama kutusuna aramak istediğiniz anahtar kelimeyi girin, ardından anahtar kelimeyi içeren kodu çözülmüş içeriği bulmak için ileri/geri düğmelerine basın ve dalga formu arayüzü analiz için uygun konuma atlayacaktır. Bir segmentin sonuçlarını ayrıştırıyorsanız, kontrol listesindeki bir satırı tıklatabilirsiniz ve İleri/Geri düğmeleri sıfırdan başlamak yerine bu davranışla başlayan önceki ve sonraki eşleşmeleri arar.
UART protokolü için DSView ayrıca çok satırlı veri aramasını da destekler. Verilerinizde görünen bazı bitişik dize sonuçlarını bulmak için kullanılabilir. Şekil 3-29'da gösterildiği gibi, çok satırlı bir veri araması, “-” karakteriyle birden çok anahtar kelimeyi birleştirir.
3.5.4. Dalga Formu Arama
DSView, yalnızca kodu çözülmüş sonuçların aranmasını değil, aynı zamanda orijinal dalga biçiminin arama işlevini de destekler. Dalga formları birçok sahnede hızlı bir şekilde bulunabilir. Örneğin, dalga biçimi aniden iletildiğinde, boşta kalma süresi nispeten uzun olduğundan, aynı anda birden çok kez iletilen ayrıntılı dalga biçimini görmek imkansızdır, dalga biçimi aramasını kullanabilir ve ardından hemen bir sonraki dalga biçimi sıçramasına atlayabilirsiniz. yakınlaştırma oranının değişmediğinden emin olmak için önceki anda dalga biçimini görüntüleme.
“Ara” araç çubuğunu kontrol edin, yazılım penceresinin altında arama kutusu görünecektir, arama kutusuna tıklayın, arama ayarları penceresini açın, kanal atlama kenarını belirleyin, sol ve sağ tarafından kriterleri karşılayan dalga formunu arayabilirsiniz. anahtarlar. Aynı zamanda, aramanın nerede başladığını belirlemek için arama imlecini manuel olarak da hareket ettirebilirsiniz.
Arama seçildiğinde, “S” etiketli bir imleç görünür, başlangıç durumu gridir, aramak için sola/sağa tıklarsanız ve kriterleri karşılayan bir dalga formu bulursanız, imleç maviye döner ve otomatik olarak arama konumuna hareket eder. . “S” imlecini manuel olarak hareket ettirirseniz, imleç tekrar griye döner.
3.5.5. İmleç Kullanımı
DSView, çok çeşitli imleç işlemlerini destekler, yalnızca imleç ile ölçümlerin zamanlanmasına değil, aynı zamanda imleç ile özel dalga biçimlerinin işaretlenmesine ve izlenmesine de izin verir. Dalga formu boştayken veya aralık uzun olduğunda, ilgilenilen her konuma bir imleç yerleştirebilirsiniz ve ilgilenilen bir dalga formuna atlamak istediğinizde, yalnızca cetvel alanına sağ tıklamanız ve ardından ilgili imleç konumuna atlayabilen, atlamak istediğiniz imleç sıra numarası.
İmleci hareket ettirmek istiyorsanız, fareyi imlecin yanına getirmeniz yeterlidir, imleç kalın göründüğünde, seçmek için farenin sol düğmesine tıklayın, imleç fare hareketini takip edecek, konumu belirleyin ve tekrar sol düğmeye tıklayın. imleci serbest bırakmak için İmlecin belirli bir kanal dalga formunun atlama kenarlarından birine yapışmasını istediğinizde, fareyi atlama kenarına yakın hareket ettirmeniz yeterlidir ve imleç otomatik olarak atlamanın kenarına yapışacaktır.
3.5.6. Fare ölçümleri
İmleç tabanlı ölçümlere ek olarak, DSView daha uygun fare ölçümleri sağlar. Örneğin, mevcut darbe genişliği, periyodu, görev döngüsü ve frekansı ölçümleri (fareyi değişen darbenin üzerine getirmeniz yeterlidir); Kenar sayısının ölçümü (dalga formundaki başlangıç ve bitiş konumlarına tıklamak, bu aralığın atlama kenarlarını otomatik olarak sayacaktır); ve kenar mesafesinin ölçümü (fare ile başlangıç kenarına tıklayın ve bitiş kenarına gidin).
Şekil 3-31'de gösterildiği gibi, fareyi başlangıç geçiş kenarı konumuna getirin, farenin sol düğmesine tıklayın, başlangıç geçiş kenarını seçin, fareyi bitiş geçiş kenarı konumuna ve ikisi arasındaki mesafeye hareket ettirin. geçiş kenarları (süre/örnekleme aralığı noktası) görüntülenecek ve ölçümü tamamlamak için farenin sol tuşuna tekrar tıklanacaktır.
4. Sık Sorulan Sorular
4.1. Bilinmeyen baud hızını belirleyin
UART dalga formunun baud hızını önceden elde edemediğimizde, elde edilen dalga formu ile gerçek baud hızını da tahmin edebiliriz. DSView, rastgele bir dalga biçimi dizisinin baud hızı parametrelerini tahmin etmek için bir "Tahmin bit hızı" kod çözücüsü sağlar. Tahmin bit hızının prensibi, sırayla, bir bitin dalga biçimi genişliği olarak dalga biçimindeki en dar darbe genişliğini bulmak ve ardından bunun baud hızı olarak karşılığını hesaplamaktır. Bu nedenle birden fazla sonuç olabilir, yalnızca karşılık gelen darbenin makul bir darbe genişliği olup olmadığını gözlemlememiz ve ardından maksimum baud hızı sonucunu seçmemiz gerekir. Bu, Şekil 4-1'de gösterilmektedir.
Baud hızı elde edildikten sonra, UART kod çözücü seçeneklerine ayarlanabilir. UART protokolü her başlangıç bitini yeniden senkronize ettiğinden, baud hızının hatası yalnızca bir veri çerçevesinde birikecektir ve bir çerçeve içindeki hata bit bitinin sınırını aşmadığı sürece, doğru kod çözme sonucu elde edilebilir. .
Elbette, dalga biçiminde tek bir bit genişliğinde darbe olmaması gibi küçük bir dalga biçimi örneği varsa, o zaman tahmin edilen baud hızının yanlış olması muhtemeldir ve bu da yanlış bir kod çözme sonucuna yol açar. Protokole uymayan bir dalga formu olduğunda, UART kod çözücü, Şekil 4-2'de gösterildiği gibi çerçeve hatası gibi olası hata ipuçları da verecektir. Deneyimli mühendisler, doğru kod çözme sonuçlarını elde etmek için dalga biçimini ve kod çözme sonuçlarını gözlemleyerek baud hızını ayarlayabilir.
4.2. Anti-güven işaretlerinin kodunun çözülmesi
Önceki bölümde, UART protokolünün farklı fiziksel sinyaller tarafından iletilebileceğinden ve bazı fiziksel katman sinyallerinin, RS232 gibi protokol sinyali (yüksek ve düşük seviye değiştirilebilir) veya B-sinyali ile ters bir ilişkiye sahip olabileceğinden bahsetmiştik. RS485 diferansiyel sinyali. Topladığımız sinyal tersine çevrildiğinde, doğru kod çözme sonucunu elde etmek için DSView'ın UART kod çözücüsü de ayarlanabilir.
Kullanıcının yalnızca “Sinyali Ters Çevir” i değiştirmesi gerekir. UART kod çözücünün ayarlarında. Seçenek “evet” olarak ayarlanmıştır. Ters sinyalin kodunun çözülmesi aşağıdaki şekilde gösterilmiştir.
4.3. Çok gruplu UART iletişiminin kodunun çözülmesi
DSView'ün UART kod çözücüsü, kod çözme sırasında çoğullanmış iletişim için isteğe bağlı kanal ayarlarını kolaylaştıran tek kanallı bir yaklaşım olacak şekilde kasıtlı olarak tasarlanmıştır. Örneğin, hem TX sinyaline hem de RX sinyaline sahip tam çift yönlü bir UART iletişimi için, TX ve RX'in kodunun çözülmesine karşılık gelen yalnızca iki UART kod çözücü eklememiz gerekir.
Aşağıdaki şekilde gösterildiği gibi, aynı anda üç UART sinyalinin kodunun çözülmesi durumudur.
4.4. Başlangıç konumundan kaynaklanan kod çözme hatası
Herhangi bir iletişim süreci için, iletişim içeriğini doğru bir şekilde almak, yani protokol çerçevesini doğru bir şekilde belirlemek ve analiz etmek için cihazın ilk durumundan başlaması gerekir. Aynısı mantık analizörleri için de geçerlidir, eğer bir sinyalin alınması tam olarak bir veri çerçevesinin ortasında başlarsa, o zaman yanlış başlangıç pozisyonunun yanlış bir kod çözme sonucuna yol açması muhtemeldir. Aşağıdaki şekilde gösterildiği gibi, cihaz “DreamSourceLab” dizisini göndermeye devam ediyor, ancak ilk yakalamanın konumu tam olarak veri çerçevesinin ortasında olduğundan, ilk dalga biçiminin kodunun çözülmesi bozuluyor.
Verilerin hatalı kodunun çözülmesini önlemek için, kesilmiş veri çerçevelerinin neden olduğu kod çözme hatalarını önlemek için kod çözmenin başlangıç ve bitiş konumunu yapay olarak ayarlayabiliriz. Kod çözme konumu, herhangi bir imlecin belirtilen konumu olabilir ve işlemin yalnızca ilgili imleci yerleştirdikten sonra dekoderin ayarlarında karşılık gelen başlangıç ve bitiş konumlarını ayarlaması gerekir. Aşağıdaki şekilde gösterildiği gibi, başlangıç konumunun ayarlanması, ilk kesilmiş dalga biçiminin yanlış kodunun çözülmesini önler.
5. Gelişmiş analiz
5.1. Çok katmanlı protokol ayrıştırma
UART, çok yaygın olarak kullanılan bir temel protokoldür ve pratik uygulamalarda kullanılan iletim protokollerinin çoğu, UART temelinde genişletilir. Örneğin: DMX512, LIN, MIDI ve Modbus, vb., temel iletişim temeli UART protokolüdür. 、
Bu özelliğe göre, DSView ayrıca çok katmanlı protokollerin ayrıştırma yığınını da destekler. Karmaşık bir protokolün bir kod çözücüsünü eklediğimizde, DSView tüm protokol yığınını otomatik olarak en üst seviyeden oluşturacaktır, bu da kod çözme sonuçlarını daha zengin ve daha mükemmel hale getirir, bu da kullanıcının derinlemesine analizine ve protokolü anlamasına çok yardımcı olur.
DSView'ün çok katmanlı protokolleri analiz etme sürecini anlamak için Modbus RTU'yu örnek alalım. UART bayt transfer fonksiyonuna dayalı olarak, Modbus RTU, her bir baytın özel anlamını ayrıntılı olarak belirtir, böylece Modbus'un çerçeve yapısı, birden fazla UART protokol çerçevesinin bir araya getirilmesiyle oluşturulur. Bu, aşağıdaki şekilde gösterilmiştir.
Bu tür protokol kod çözme için DSView kullanırken, yalnızca ilgili protokolü protokol arama kutusuna girmeniz ve eklemeniz gerekir. DSView, aşağıdaki şekilde gösterildiği gibi tüm yığınlama protokolü için ayarlar sayfasını otomatik olarak oluşturur ve kullanıcı ilgili ayarları yapabilir.
Aşağıdaki şekilde gösterildiği gibi, protokolün yığın yapısı, Modbus RTU'nun kod çözme sonucundan açıkça görülebilir. Her çerçeve için Modbus, 8 UART bayt çerçevesinden oluşur. Bir Modbus çerçevesinin içeriği, özel anlamını gösteren açık yorumlara da sahip olacaktır. Bir iletim hatası meydana geldiğinde, böyle bir kod çözme sonucu, hatanın yerini ve ayrıca hatanın nedenini (temeldeki UART ile ilgili bir sorun veya Modbus protokol katmanıyla ilgili bir sorun olup olmadığı) çok net bir şekilde bulabilir. Temel ayrıntıları görmek istemiyorsanız, kod çözücünün ayarlar sayfasında ilgili kodu çözülen içeriği gizleyebilirsiniz.