Modern ev aletlerinde, endüstriyel elektronik cihazlarda ve çeşitli telekomünikasyon ekipmanlarında, ürünler pratik olarak ilgisiz olsa da benzer çözümler sıklıkla bulunabilir. Örneğin, hemen hemen her sistem şunları içerir:
- çoğu durumda tek çipli bir mikrobilgisayar olan belirli bir "akıllı" kontrol ünitesi;
- LCD arabellekleri, RAM, G/Ç bağlantı noktaları, EEPROM veya özel veri dönüştürücüler gibi genel amaçlı bileşenler;
- video ve radyo sistemleri için dijital ayar ve sinyal işleme devreleri dahil özel bileşenler.
Uygulamaları nasıl optimize edilir?
Tasarımcıların ve üreticilerin yararına bu ortak çözümlerden en iyi şekilde yararlanmak ve çeşitli donanımların genel performansını iyileştirmek ve uygulanan devre bileşenlerini basitleştirmek için Philips, en basit iki telli çift yönlü sistemi geliştirmeye başladı. en verimli inter-chip sağlayan veriyolukontrol. Bu veri yolu, I2C arayüzü üzerinden veri aktarımı sağlar.
Bugün, üreticinin ürün yelpazesi 150'den fazla CMOS'un yanı sıra I2C ile uyumlu ve listelenen kategorilerden herhangi birinde çalışmak üzere tasarlanmış bipolar cihazlar içermektedir. I2C arayüzünün başlangıçta, özel bir veri yolu kullanarak birbirleriyle kolayca iletişim kurabilmeleri nedeniyle tüm uyumlu cihazlarda yerleşik olduğuna dikkat edilmelidir. Böyle bir tasarım çözümünün kullanılması nedeniyle, dijital sistemlerin gelişimi için oldukça tipik olan, çeşitli ekipmanların arayüzlenmesiyle ilgili oldukça fazla sayıda sorunu çözmek mümkün oldu.
Temel Faydalar
UART, SPI, I2C arayüzlerinin kısa bir açıklamasına baksanız bile, ikincisinin aşağıdaki avantajlarını vurgulayabilirsiniz:
- Çalışmak için sadece iki satıra ihtiyacınız var - senkronizasyon ve veri. Böyle bir veri yoluna bağlanan herhangi bir cihaz daha sonra programlı olarak tamamen benzersiz bir adrese yönlendirilebilir. Herhangi bir zamanda, master'ların master-verici veya master-alıcı olarak hareket etmesine izin veren basit bir ilişki vardır.
- Bu veri yolu, iki veya daha fazla ana birimin aynı anda bilgi iletmeye başlaması durumunda veri bozulmasını önlemek için tahkim yanı sıra çarpışmaları belirlemek için gerekli tüm araçları sağlayarak aynı anda birkaç ana yöneticiye sahip olma yeteneği sağlar. standart modda100 kbps'den fazla olmayan bir hızda yalnızca seri 8 bit veri iletimi sağlanır ve hızlı modda bu eşik dört kat artırılabilir.
- Çipler, dalgalanmaları etkili bir şekilde bastıran ve maksimum veri bütünlüğü sağlayan özel bir yerleşik filtre kullanır.
- Bir veriyoluna bağlanabilecek olası maksimum çip sayısı, yalnızca 400 pF'lik maksimum olası kapasitesi ile sınırlıdır.
Yapıcılar için Faydaları
I2C arayüzü ve tüm uyumlu çipler, işlevsel bir diyagramdan nihai prototipine kadar olan geliştirme sürecini önemli ölçüde hızlandırabilir. Aynı zamanda, bu tür mikro devrelerin her türlü ek devre kullanılmadan doğrudan veriyoluna bağlanma olasılığı nedeniyle, çeşitli cihazların bağlantısını keserek ve bağlayarak prototip sistemin daha fazla modernizasyonu ve modifikasyonu için alan sağlandığı belirtilmelidir. otobüs.
I2C arayüzünü öne çıkaran birçok avantaj vardır. Açıklama, özellikle, inşaatçılar için aşağıdaki avantajları görmenizi sağlar:
- Fonksiyonel diyagramdaki bloklar tamamen mikro devrelere karşılık gelir ve aynı zamanda fonksiyonelden temele oldukça hızlı bir geçiş sağlanır.
- Bus arabirimleri geliştirmeye gerek yoktur, çünkü veri yolu zaten yerel olarak özel yongalara entegre edilmiştir.
- Entegre iletişim protokolleri vecihaz adresleme, sistemin tamamen yazılım tanımlı olmasını sağlar.
- Gerekirse aynı tip mikro devreler tamamen farklı uygulamalarda kullanılabilir.
- Tasarımcıların en sık kullanılan fonksiyonel bloklara ve çeşitli mikro devrelere hızla aşina olmaları nedeniyle toplam geliştirme süresi önemli ölçüde azalır.
- İsterseniz sistemden chip ekleyip çıkartabilirsiniz ve aynı zamanda aynı bus'a bağlı diğer ekipmanlar üzerinde fazla bir etkisi olmaz.
- Toplam yazılım geliştirme süresi, yeniden kullanılabilir yazılım modülleri kitaplığına izin verilerek önemli ölçüde az altılabilir.
Diğer şeylerin yanı sıra, I2C arayüzünü ayırt eden, meydana gelen arızaları teşhis etmek ve daha fazla hata ayıklamak için son derece basit prosedürü belirtmekte fayda var. Açıklama, gerekirse, bu tür ekipmanın çalışmasındaki küçük sapmaların bile herhangi bir zorluk olmadan anında izlenebileceğini ve buna göre uygun önlemlerin alınabileceğini göstermektedir. Tasarımcıların, özellikle I2C arayüzünü kullanarak pil gücü sağlayan çeşitli taşınabilir ekipman ve sistemler için oldukça çekici olan özel çözümler elde ettiğini de belirtmekte fayda var. Rusça açıklama, kullanımının aşağıdaki önemli avantajları sağlamanıza izin verdiğini de gösterir:
- Ortaya çıkan herhangi bir girişime karşı yeterince yüksek derecede direnç.
- Sonundadüşük güç tüketimi.
- En geniş besleme voltajı aralığı.
- Geniş sıcaklık aralığı.
Teknologlar için avantajlar
Yalnızca tasarımcıların değil, teknoloji uzmanlarının da son zamanlarda özel bir I2C arayüzünü oldukça sık kullanmaya başladığını belirtmekte fayda var. Rusça açıklama, bu uzman kategorisinin sağladığı oldukça geniş bir avantaj yelpazesini gösterir:
- Bu arabirime sahip standart bir iki telli seri veri yolu, IC'ler arasındaki ara bağlantıları en aza indirir, bu da daha az pin ve daha az iz gerektiği anlamına gelir, bu da PCB'leri daha ucuz ve çok daha küçük hale getirir.
- Tam entegre bir I2C arayüzü LCD1602 veya başka bir seçenek, adres kod çözücülere ve diğer harici küçük mantığa olan ihtiyacı tamamen ortadan kaldırır.
- Böyle bir veriyolu üzerinde aynı anda birkaç master kullanmak mümkündür, bu da veri yolu bir montaj hattı bilgisayarına bağlanabileceğinden test ve sonraki ekipman kurulumunu önemli ölçüde hızlandırır.
- VSO, SO ve özel DIL paketlerinde bu arayüzle uyumlu IC'lerin mevcudiyeti, cihaz boyutu gereksinimlerini önemli ölçüde az altabilir.
Bu, LCD1602'nin I2C arayüzünü ve diğerlerini ayıran avantajların kısa bir listesidir. Ek olarak, uyumlu yongalar, kullanılan sistemin esnekliğini önemli ölçüde artırabilir.çeşitli ekipman seçeneklerinin son derece basit tasarımının yanı sıra mevcut düzeyde geliştirmeyi daha da desteklemek için nispeten kolay yükseltmeler. Böylece, belirli bir temel modeli temel alarak, farklı ekipmanlardan oluşan bütün bir aileyi geliştirmek mümkündür.
Ekipmanın daha fazla modernizasyonu ve işlevlerinin genişletilmesi, Arduino 2C arayüzü veya mevcut listeden herhangi biri kullanılarak ilgili mikro devrenin veriyoluna standart bir bağlantı yoluyla gerçekleştirilebilir. Daha büyük bir ROM gerekliyse, yalnızca artırılmış ROM'lu başka bir mikro denetleyici seçmek yeterli olacaktır. Güncellenen yongalar gerektiğinde eskilerini tamamen değiştirebildiğinden, yalnızca eski yongaların bağlantısını kesip bunları daha yeni ekipmanlarla değiştirerek ekipmana yeni özellikler ekleyebilir veya genel performansını artırabilirsiniz.
ACCESS.bus
Bus'ın iki telli bir yapıya sahip olması ve program adresleme imkanı nedeniyle, ACCESS.bus için en ideal platformlardan biri I2C arabirimidir. Bu cihazın teknik özelliği (Rusça açıklaması makalede sunulmuştur), onu çeşitli çevre birimlerini standart bir dört pimli konektör kullanarak bilgisayarlara bağlamak için daha önce aktif olarak kullanılan RS-232C arayüzüne çok daha ucuz bir alternatif haline getirir.
Spesifikasyon tanıtımı
Modern uygulamalar içinMikrodenetleyiciler kullanan 8 bitlik kontrol, bazı tasarım kriterlerini belirlemek mümkündür:
- komple sistem çoğunlukla bir mikro denetleyici ve bellek ve çeşitli G/Ç bağlantı noktaları dahil diğer çevre birimleri içerir;
- Farklı cihazları tek bir sistemde birleştirmenin toplam maliyeti mümkün olduğunca en aza indirilmelidir;
- işlevleri kontrol eden sistem, yüksek hızlı bilgi aktarımı sağlama ihtiyacını sağlamaz;
- toplam verimlilik, doğrudan seçilen ekipmana ve bağlantı veri yolunun doğasına bağlıdır.
Listelenen kriterleri tam olarak karşılayan bir sistem tasarlamak için I2C seri arabirimini kullanacak bir veri yolu kullanmanız gerekir. Seri veri yolu, paralel veri yolunun bant genişliğine sahip olmasa da, daha az bağlantı ve daha az çip pini gerektirir. Aynı zamanda bus'ın sadece bağlantı kablolarını değil aynı zamanda sistem içinde iletişimi sağlamak için gerekli olan çeşitli prosedür ve formatları da içerdiğini unutmayın.
I2C arabiriminin veya ilgili veri yolunun yazılım öykünmesini kullanarak iletişim kuran cihazlar, çeşitli çarpışma, bilgi kaybı veya engelleme olasılıklarını önlemenize olanak tanıyan özel bir protokole sahip olmalıdır. Hızlı cihazlar yavaş olanlarla haberleşebilmeli ve sistem buna bağlı olmamalıdır.kendisine bağlı ekipmandan, aksi takdirde tüm iyileştirmeler ve modifikasyonlar kullanılamaz. Aynı zamanda, hangi belirli cihazın veri yolu kontrolünü hangi zamanda ve hangi noktada sağladığını belirlemenin gerçekçi olduğu bir prosedür geliştirmek de gereklidir. Ek olarak, aynı veriyoluna farklı saat frekanslarına sahip farklı cihazlar bağlıysa, senkronizasyonunun kaynağına karar vermeniz gerekir. Tüm bu kriterler, AVR için I2C arayüzü ve bu listedeki diğerleri tarafından karşılanır.
Ana Konsept
I2C veri yolu, kullanılan herhangi bir çip teknolojisini destekleyebilir. I2C LabVIEW arayüzü ve buna benzer diğerleri, bilgi aktarımı için iki hattın kullanılmasını sağlar - veri ve senkronizasyon. Bu şekilde bağlanan herhangi bir cihaz, bir LCD arabellek, mikro denetleyici, bellek veya klavye arabirimi olup olmadığına bakılmaksızın benzersiz adresiyle tanınır ve bu ekipman için ne amaçla kullanıldığına bağlı olarak bir alıcı veya verici olarak işlev görebilir.
Çoğu durumda, LCD arabelleği standart bir alıcıdır ve bellek yalnızca çeşitli verileri almakla kalmaz, aynı zamanda iletebilir. Diğer şeylerin yanı sıra, bilgi taşıma işlemine göre cihazlar bağımlı ve ana olarak sınıflandırılabilir.
Bu durumda master, veri aktarımını başlatan ve aynı zamandasenkronizasyon sinyalleri. Bu durumda, adreslenebilir herhangi bir cihaz, kendisine göre bağımlı olarak kabul edilecektir.
I2C iletişim arayüzü, aynı anda birkaç master'ın varlığını sağlar, yani veri yolunu kontrol edebilen birden fazla cihaz ona bağlanabilir. Aynı bus üzerinde birden fazla mikrodenetleyici kullanma yeteneği, herhangi bir zamanda birden fazla master iletilebilmesi anlamına gelir. Böyle bir durum ortaya çıktığında ortaya çıkma riskini taşıyan olası kaosu ortadan kaldırmak için I2C arayüzünü kullanan özel bir tahkim prosedürü geliştirilmiştir. Genişleticiler ve diğer cihazlar, sözde kablolama kuralına göre cihazların veri yoluna bağlanmasını sağlar.
Saat sinyalini oluşturmak master'ın sorumluluğundadır ve her master veri aktarımı sırasında kendi sinyalini üretir ve daha sonra ancak bir çarpışma meydana geldiğinde yavaş bir slave veya başka bir master tarafından "çekilirse" değişebilir
Genel parametreler
Hem SCL hem de SDA, bir çekme direnci ile pozitif bir güç kaynağına bağlanan çift yönlü hatlardır. Lastik tamamen boştayken, her çizgi yüksek konumdadır. Bus'a bağlı cihazların çıkış aşamaları kablolu AND fonksiyonunun sağlanabilmesi için open-drain veya open-collector olmalıdır. I2C arayüzü üzerinden bilgi 400 kbps'den fazla olmayan bir hızda iletilebilir.hızlı mod, standart hız ise 100 kbps'yi geçmez. Bus'a aynı anda bağlanabilen toplam cihaz sayısı yalnızca bir parametreye bağlıdır. Bu, 400 pf'den fazla olmayan hat kapasitansıdır.
Onay
Onay, veri aktarımı sürecinde zorunlu bir prosedürdür. Master, uygun senkronizasyon darbesini üretirken, verici bu senkronizasyon darbesi sırasında bir onay olarak SDA hattını serbest bırakır. Bundan sonra, alıcı, saat yüksek durumunda sabit bir düşük durumda SDA hattının sabit tutulmasını sağlamalıdır. Bu durumda, kurulum ve bekleme sürelerini hesaba kattığınızdan emin olun.
Çoğu durumda, adreslenen alıcının alınan her bayttan sonra bir alındı bilgisi oluşturması zorunludur, bunun tek istisnası iletimin başlamasının bir CBUS adresi içermesidir.
Alıcı-bağımlı kendi adresinin onayını göndermenin bir yolu yoksa, veri hattı yüksek bırakılmalıdır ve ardından master, göndermeyi kesecek bir "Dur" sinyali verebilecektir. tüm bilgi. Adres onaylandıysa, ancak köle uzun bir süre daha fazla veri alamıyorsa, yöneticinin de göndermeyi kesmesi gerekir. Bunu yapmak için, köle alınan bir sonraki baytı onaylamaz ve sadece satırı terk eder.yüksek, master'ın bir durma sinyali oluşturmasına neden olur.
Aktarım prosedürü bir master-alıcının varlığını sağlıyorsa, bu durumda bu durumda slave'e iletimin sonu hakkında bilgi vermelidir ve bu, son alınan bayt onaylanmayarak yapılır. Bu durumda, bağımlı verici veri hattını derhal serbest bırakır, böylece master bir "Dur" sinyali verebilir veya "Başlat" sinyalini tekrarlayabilir.
Ekipmanın çalışıp çalışmadığını kontrol etmek için yukarıdaki fotoğrafta olduğu gibi Arduino'daki I2C arayüzü için standart eskiz örneklerini girmeyi deneyebilirsiniz.
Tahkim
Master'lar, yalnızca bus tamamen boş olduktan sonra bilgi göndermeye başlayabilir, ancak iki veya daha fazla master, minimum tutma süresinde bir başlatma sinyali üretebilir. Bu, sonunda otobüste belirli bir "Başlat" sinyaliyle sonuçlanır.
Tahkim, SCL veriyolu yüksekken SDA veriyolunda çalışır. Masterlerden biri veri hattında düşük bir seviye iletmeye başlar, ancak aynı zamanda diğeri yüksekse, o zaman ikincisi ondan tamamen ayrılır, çünkü SDL durumu dahili hattının yüksek durumuna karşılık gelmez.
Arbitraj birkaç bit üzerinden devam edebilir. Önce adresin daha sonra verilerin iletilmesi nedeniyle, tahkim adresin sonuna kadar sürebilir ve eğer ustalar adres verirseaynı cihaz, daha sonra farklı veriler de tahkime katılacak. Bu tahkim planı nedeniyle, herhangi bir çakışma meydana gelirse hiçbir veri kaybolmaz.
Master tahkimi kaybederse, erişimin kaybolduğu baytın sonuna kadar SCL'de saat darbeleri verebilir.