Ders kitabı modern mikroişlemci sistemleri indir. Mikroişlemci sistemlerinin geliştirilmesi ve mikroişlemci sistemlerinin tasarlanması yöntemi

Ders kitabı modern mikroişlemci sistemleri indir.  Mikroişlemci sistemlerinin geliştirilmesi ve mikroişlemci sistemlerinin tasarlanması yöntemi
Ders kitabı modern mikroişlemci sistemleri indir. Mikroişlemci sistemlerinin geliştirilmesi ve mikroişlemci sistemlerinin tasarlanması yöntemi

Mikroişlemci sistemlerini tasarlama süreci üç aşamadan oluşur (Şekil 1.1): 1) sistem; 2) işlevsel devre; 3) hata ayıklama ve performans değerlendirmesi.

Pirinç. 1.1. MPS tasarımının aşamaları

Sistem tasarımı aşamasında, öncelikle MPS'ye atanan görevin sistem analizi yapılır, amaç, temel özellikler, ihtiyaçlar, uygulama fikirleri, fon miktarı ve tasarım yollarına karar vermek için yeterli diğer özellikler tanımlanır. Daha sonra, sistemin işlevsel davranışı ve gereksinimleri, gerçekleştirilen bir dizi işlevin sağlanması, gerekli performans, kritik işlevlerin belirlenmesi, sistemin çevresel ekipmanının bileşiminin belirlenmesi, girdi ve çıktının yapısı açısından formüle edilir. veriler, veri akışlarının özellikleri ve kontrol bilgileri. Sistemin işleyişi için genişletilmiş bir algoritma ve MPS'nin çalışması için algoritmanın resmileştirilmiş bir açıklaması geliştirilmektedir. Sistem tasarım aşamasındaki bir sonraki adım, MPS hiyerarşisinin seviyelerinin sayısını, bunlar ile dış ortam veya sistem arasındaki bağlantıları belirlemektir. Sistem mimarisi için gereksinimler belirlenir, donanım ve yazılım tarafından uygulanan işlevlerin dağılımı gerçekleştirilir, arayüz gereksinimleri doğrulanır. Verilen hız ile karmaşıklığı ve maliyeti azaltma ve geliştirme süresini azaltma olasılığını dikkate alarak, sistemin donanım ve yazılım gereksinimlerinin dengelenmesi gerekir. Nasıl daha fazla özellik donanımda uygulandığında, performans ne kadar yüksekse, ancak sistem mimarisi o kadar karmaşık ve geliştirme süresi o kadar uzun olur.

Şu anda, LSI ve VLSI yeteneklerinin geliştirilmesiyle bağlantılı olarak, yakın zamana kadar yalnızca gerçekleştirilen bu tür işlevleri donanıma atama eğilimi vardır. programlı olarak. Entegrasyon yazılım özellikleri donanım tasarımlarında, esas olarak ROM ürün yazılımı veya "matematik" yongaları biçiminde, giderek artan bir yön geniş uygulama Mikroişlemcili sistemlerde. Birçok özellik işletim sistemi ROM yongalarına programlar yerleştirilerek donanım yöntemiyle uygulanmaya başlandı bile. Belki sıra programlama dillerinin işlevlerinin donanım uygulamasına gelecek.

önemli bir nokta sistem tasarım aşaması, eleman tabanının seçimidir, temel IPC, yani. mikroişlemci ailesinin türü ve diğer LSI. Bu aşamaya dayanarak, bir teknik görev (TOR) hazırlanır.

Sistem tasarımı aşaması temel olarak buluşsaldır ve sonucu, geliştirilen MPS'nin karşılaması gereken tüm gereksinimleri gösteren mikroişlemci sisteminin ve teknik özelliklerin bir blok diyagramıdır.

İşlevsel ve devre aşaması üç alana ayrılır: donanım geliştirme, geliştirme yazılım araçları ve hem donanım hem de yazılım içeren yardımların geliştirilmesi. Bu aşamanın öne çıkan özellikleri şunlardır:

1) ortak geliştirme ve hata ayıklama ihtiyacı teknik araçlar Ve yazılım, teknik araçların belirli bir yapısına odaklanmış;

2) devre içi öykünücüler, mantık ve imza analizörleri, hata ayıklama kompleksleri ve programlama otomasyon araçları gibi mikroişlemci sistemlerini geliştirmek ve hata ayıklamak için temelde yeni yöntem ve araçların kullanılması;

3) geliştiricinin aynı anda mikroişlemci sistemlerini tasarlama konusunda deneyime sahip olması ve uygulamalarının belirli bir alanını anlaması gereken tasarım aşamalarının güçlü ara bağlantısı ve hatta entegrasyonu.

dayalı fonksiyonel devre tasarımı aşamasında blok şeması MPS, teknik araçların, algoritmaların ve modüllerin işlevsel ve şematik diyagramlarını geliştirir Uygulama programları. Bu aşama, standart devrenin geniş kullanımı ile karakterize edilir ve Yazılım çözümleri ve tüm aşamalarda paralel olarak geliştirilmesi gereken donanım ve yazılımın güçlü karşılıklı bağımlılığı. Aşama, tüm MPS'de bir bütün olarak hata ayıklama aşamasını başlatan donanım ve yazılımın entegrasyonu ile sona erer.

MPS'de hata ayıklama en çok zaman alan aşamadır, bu nedenle yerleşik kontrol araçlarının geliştirilmesine ve standart hata ayıklama araçlarını kullanma metodolojisine donanım ve yazılım geliştirmeyle aynı özen gösterilmelidir. Hata ayıklama, yerleşik araçlar, yazılım ve donanımın yanı sıra mantık ve imza analizörleri, hata ayıklama kompleksleri ve dahili emülatörler gibi özel cihazlar gerektirir. Teşhis ve kontrol araçlarının yerleştirilmesi, sistemi geliştirme maliyetini biraz uzatır ve artırır, ancak hata ayıklamasını ve daha fazla çalışmasını büyük ölçüde kolaylaştırır.

Geliştirilen MPS'nin elde edilen özellikleri değerlendirilerek tasarlandığı sistemde deneysel olarak test edilmesi ile sistemin tasarımı tamamlanır. Değerlendirme sonuçları Görev Tanımının gerekliliklerini karşılamıyorsa, nedenlerin analizi yapılır ve buna dayanarak, MPS'nin ayrı ayrı modülleri veya bir bütün olarak tüm sistem yeniden tasarlanır.

Tasarım, tasarlanan MPS'nin rasyonel kullanımı için tavsiyeler ve gerekli tüm belgeleri içeren metodolojik desteğin geliştirilmesi ile sona erer.

Ele alınan aşamalar, kural olarak, nispeten az sayıda yüksek nitelikli uzmanın katılımıyla araştırma çalışması şeklinde gerçekleştirilir.

Diğer tasarım aşamaları genellikle geliştirme çalışması şeklinde gerçekleştirilir ve çok sayıda icracının katılımını gerektirir.

kesme mantığı, hizmet verilen kesmenin öncelik seviyesini hatırlar. RET komutu yürütüldüğünde, öncelik seviyesi korunur ve bir sonraki adımda yalnızca daha yüksek öncelik seviyesine sahip kesmeye hizmet verilebilir. RETI komutu, RET komutundan, öncelik seviyesini sıfırlayarak, kesme isteklerinin düşük bir öncelik düzeyiyle sunulmasına izin vermesiyle farklıdır.

İLE tipik koşullu işlemler komutları içerir JZ ve JNZ, JC

Ve JNC. Son ikisi Boole grubuna dahildir. CJNE komutunda, önce tamsayıları çıkarma kurallarına göre iki bayt karşılaştırılır.

Ve Karşılaştırma sonucuna göre C bayrağı ayarlanır ve eşleşmezlerse dallanma yapılır.

DJNZ talimatında, sadece mevcut kayıt bankası Rn, n=0...7'nin kayıtlarından biri değil, aynı zamanda doğrudan adreslenebilir bir DSEG veri hafıza hücresi sayaç olarak kullanılabilir. Komut çalıştırılırken önce sayaç azaltılır ve sayaç içeriği sıfıra eşit değilse dallanma yapılır.

3. Mikroişlemci sistemlerinin tasarımı

Mikrodenetleyicilere dayalı MPS tasarım teknolojisi, mikroişlemci teknolojisinde benimsenen donanım ve yazılım bileşenlerini tasarlama ve hata ayıklama sürecinin sürekliliği kavramına tamamen uygundur. Mikrodenetleyicilerin kullanımının önemli bir özelliği, gerçek ölçek zaman, yani belirli bir zaman aralığında harici olaylara garantili yanıt. Bir mikroişlemci sisteminin gelişigüzel bir yapısı ve devresi ile gerçek zamanlı olarak donanım ve yazılım bileşenlerinin ortak hata ayıklama problemini çözmenin çok karmaşık, pahalı ve uzun vadeli bir iş olduğu açıktır.

3.1. Tasarım aşamaları

MPS'nin bir özelliği, kendilerinin bir nesneye gömülü (entegre) olmalarıdır. Bu, bu tür bir MPS geliştiricisinin, işleyen bir algoritmanın geliştirilmesinden bir ürünün parçası olarak karmaşık testlere ve muhtemelen üretim sırasında desteğe kadar eksiksiz bir tasarım döngüsünün görevleriyle karşı karşıya olduğunu gösterir. MPS tasarımının ana aşamaları, şekil 2'de gösterilmiştir. 28.

Teknik gereksinimler MPS tasarım döngüsünü başlatın. Bir mikroişlemci sistemini programlama yeteneği, müşteriyi maksimum sayıda işlevin performansına emanet etmeye teşvik eder. Seçim kriteri, enstrüman piyasasının incelenmesi sonucunda belirlenen donanım miktarındaki herhangi bir artışın ekonomik olabilirliği olmalıdır. bu türden ve bir göstergenin fiyat/fonksiyonel olanaklardaki maksimum gelişimi -

Şti. Bu aşamada, tür için gereksinimler açık veya örtülü olarak formüle edilir.

kullanılan mikroişlemci veya mikrodenetleyici.

Algoritma geliştirme aşaması en sorumlu olanıdır

çünkü bu aşamadaki hatalar yasa test edilirken tespit edilir.

üretilen ürün ve tüm MPS'nin maliyetli geri dönüşümüne yol açar.

sağlamak için algoritmanın çeşitli varyantları geliştirilmektedir.

geliştirilen teknik gereksinimlerin karşılanması

önceki fonksiyonel topolojik modüller. Temel Seçenekler

yazılım ve uygulama miktarının oranında farklılık gösterir.

Mikroişlemci sistemi için teknik gereksinimler

Düzeltme

algoritma

yönetmek

Algoritma geliştirme

Kütüphane

işlevsel-

Donanım yapısının geliştirilmesi ve

topolojik

yazılım araçları

Düzeltme

Program Geliştirme

Donanım Geliştirme

Düzeltme

orijinal

(orjinal metin)

(şemalar,

pano topolojisi)

topoloji

program yayını

Düzen montajı

program hata ayıklama

Çevrimdışı Hata Ayıklama

model üzerinde

teçhizat

Yazılım ve donanımın ortak hata ayıklaması

gerçek zamanlı sistem araçları

Mikroişlemci sisteminin ürüne entegrasyonu

Ürün testi

Teknik özelliklere karşılık gelen mikroişlemci sistemi

güzel gereksinimler

ratura. Seçim kriteri, yazılımdaki maksimum sayıda işlevin en düşük donanım maliyetiyle uygulanması ve tüm operasyonel etkiler aralığında belirtilen performans ve güvenilirlik göstergelerini sağlamasıdır. Genellikle belirleyici gereksinim, program kodunu mikrodenetleyicinin dahili belleğine yerleştirme yeteneğidir, bu da onu yetkisiz erişimden korumayı mümkün kılar. Bu aşamada son olarak mikrodenetleyici tipi ve en önemli çerçeveleme devreleri (bellek, FPGA, arayüz, ADC vb.) belirlenir.

MPS'nin yapısını geliştirme aşamasında sonunda belirler

Mevcut ve geliştirilecek donanım modüllerinin tüm bileşimi, modüller arasındaki değişim protokolleri, konektör tipleri. MPS ürüne yerleşik olduğundan, panoların tasarımına ilişkin bir ön çalışma yapılır. Yazılım açısından, program modüllerinin bileşimi ve bağlantıları, programlama dili belirlenir. Burası aynı zamanda tasarım ve hata ayıklama araçlarının seçiminin yapıldığı yerdir.

Program oluşturma aşaması içsel, sıklıkla tekrar eden bir döngü oluşturur. Kaynak kodu geliştirme, çeviri, programın model üzerinde hata ayıklama ve kaynak kodu düzeltme aşamalarından oluşur. Bu aşamaların içeriği temelde kullanılan sistem araçlarına bağlıdır. Şu anda, mikroişlemcilerin ve mikrodenetleyicilerin kaynakları, üst düzey dillerde programlamayı desteklemek için yeterlidir. Bu, yapılandırılmış programlamanın tüm avantajlarını kullanmanıza, ayrı ayrı çevrilmiş modülleri kullanarak bir proje olarak yazılım geliştirmenize olanak tanır. Şu anda, mikroişlemciler ve mikrodenetleyiciler için yazılım geliştirmek için en güçlü araç, Pascal, C gibi üst düzey dillerde entegre çapraz programlama sistemleridir. Örneğin, entegre yazılım geliştirme sistemi Pascal-51 bir metin düzenleyici, bağlantı düzenleyicili bir derleyici, standart çalışma zamanı işlevleri kitaplığı ve bir hata ayıklayıcı içerir. Bu tür sistemler, bu dahili döngü için harcanan zamanı önemli ölçüde azaltabilir. Ancak üst düzey dillerde yazılmış programlar daha büyük ve daha yavaştır. benzer programlar Assembly dilinde yazılmıştır. Bu nedenle, özellikle MPS'nin sınırlı kaynakları ve kontrollü zaman aralıklarının yürütülmesini sağlama ihtiyacı ile, montaj dili yaygın olarak kullanılmaya devam etmektedir.

Bu aşamalarda programın sözdizimsel ve mantıksal hataları tespit edilerek giderilir. Sözdizimi hataları, komutların sözdiziminin ihlali, çevirmen yönergeleri ve önceden tanımlanmamış etiket ve adların kullanımı ile ilişkilidir. Mantık hataları programın hatalı çalışmasına neden olur. Program hatalarıyla ilişkilendirilirler (yanlış bir dallanma geçişi belirtilir, yanlış bir

bu komut vb.) ve algoritma hataları. Assembly dilinde program geliştirmede bu aşamaların içerikleri aşağıda verilmiştir.

Ekipman oluşturma aşaması birincisine paralel çalışan başka bir iç döngüyü temsil eder. Bir genel gelişimi içerir devre şeması, pano topoloji düzeni, düzen montajı ve çevrimdışı hata ayıklama. Bu aşamalar, MPS sistemi karayolu "canlandıktan" sonra tamamlanmış sayılabilir ve bu aşamalar aracılığıyla belleğe, giriş / çıkış cihazlarına erişebilirsiniz. Bu aşamanın yürütme süresi, mevcut test edilmiş işlevsel-topolojik modüller setine ve geliştiricinin niteliklerine bağlıdır. Devre şemasının girilmesi ve topolojinin geliştirilmesi aşamasında kullanılan yaygın tasarım sistemleri şunlardır:

PCAD ve OrCAD (CAD - bilgisayar destekli tasarım - bilgisayar destekli tasarım). Onlarla çalışmanın verimliliği, geliştiricinin kullanabileceği kullanılmış öğelerin kitaplıklarının hacmine önemli ölçüde bağlıdır.

Gerçek zamanlı ortak donanım ve yazılım hata ayıklama aşaması en emek yoğun olanıdırve zorunlu olarak devre içi öykünücü, ROM öykünücü ve mantık çözümleyici gibi yüksek performanslı araçların kullanılmasını gerektirir. Listelenen araçlardan birinin seçimi, kullanılan hata ayıklama yöntemiyle belirlenir. Bu aşamada yazılım ve donanımın gerçek zamanlı etkileşimi sırasında oluşan dinamik hatalar belirlenir. Bu hatalar, sinyallerin sistem omurgasının hatları boyunca yayılmasındaki çeşitli gecikmelerden ve hatlar kötü konumlandırıldığında ortaya çıkan hatlar arasındaki karşılıklı girişimden kaynaklanmaktadır. Dinamik hataların tespit edilmesi çok daha zordur yüzünden onların düzensizliği

yerelleştirme için dinamik hatalar lojik analizörler kullanılır. Sistem veri yolunun veya bireysel veri yollarının ve hatların alma modundaki sinyallerinin mantıksal seviyeleri kalıcı olarak FIFO tipi belleğe kaydedilir. Kayıt, seçilen olay meydana geldiğinde (SM'de ayarlanan ve gerçek adresin eşleşmesi, SM'de komut kodları veya kısa bir gürültü darbesinin görünümü) sonlandırılır. Şu anda, bellek bu olaydan önceki tüm bilgileri içerir. Belleğe kaydedilen olayın geçmişini inceleyerek, MPS'nin çalışmasındaki arızanın nedeni de belirlenebilir. Ekrandaki bilgiler grafik biçiminde, ikili, onaltılık kod veya komut anımsatıcıları biçiminde sunulabilir. Mantık durumu analizörleri, MPS'nin saat frekansında yazar. Hızlı işlemleri düzeltmek için, belleğe yazmanın saat frekansının MPS'nin saat frekansını önemli ölçüde aştığı geçici mantık analizörleri kullanılır.

Donanım ve yazılımın gerçek zamanlı olarak ortak hata ayıklaması, bir geliştirme bilgisayarının kontrolü altında ROM öykünücüleri ve devre içi öykünücüler kullanılarak gerçekleştirilir.

Mikroişlemci sistemlerinin tasarımı

giriiş

Mikrodenetleyiciler kullanarak bilgisayar sistemleri geliştirme görevi, çalışma ilkeleri hakkında bilgi ve anlayış gerektirir, ancak asıl önemli olan kontrol programları yazmaktır. Bu kitabın amacı, mikrodenetleyici cihazların nasıl tasarlanacağını öğrenmektir.

Bu kitaptaki tüm örnekler için temel çip, popüler mikroişlemcinin Atmega 128 çipidir. AVR ailesi Atmel'den. Okuyucunun hem mikroişlemci teknolojisinin ilkeleri hem de bu mikrodenetleyicinin mimarisi hakkında temel bir anlayışa sahip olduğu varsayılmaktadır.

Mikrodenetleyici için program, özel olarak yazılmış bir dizi koddur. program hafızası. Program, belirli bir mikroişlemci sistemini geliştiren, ancak asla kodlarla ilgilenmeyen bir programcı tarafından yazılmalıdır. Bir kişinin, her biri kendi anlamlı adına sahip komutlarla çalışması daha uygundur. Bu nedenle, bir program yazmak için bir programlama dili kullanılır.

Dilin ana görevi, mikrodenetleyicinin gerçekleştirmesi gereken eylem sırasını açık bir şekilde tanımlamaktır. Aynı zamanda, dil bir kişi tarafından anlaşılabilir olmalıdır.

Bir program oluşturma sürecinde, programcı metnini bilgisayara diğer herhangi bir metinle aynı şekilde yazar. Programcı daha sonra çalışır özel program- programcı tarafından yazılan metni mikroişlemcinin anlayabileceği makine kodlarına çeviren bir çevirmen.

Programın programcı tarafından yazılan metnine denir. orijinal veya nesne kodu. Çeviriden kaynaklanan kod denir ortaya çıkan veya makine kodu. Mikrodenetleyicinin program belleğine yazılan bu koddur. Ortaya çıkan kodu yazmak için özel cihazlar kullanılır - programcılar.

Tüm programlama dilleri iki gruba ayrılır:

düşük seviyeli diller (makine yönelimli);

üst düzey diller.

Tipik bir örnek makine yönelimli dil, montaj dilidir. Yakın geçmişte, montaj dili mikrodenetleyiciler için tek programlama diliydi. Şu anda, programlama için üst düzey diller kullanılmaktadır, örneğin TEMEL, Xi ve benzeri. Bu diller başlangıçta şu amaçlar için geliştirilmiştir: büyük bilgisayarlar. Ama şimdi mikrodenetleyiciler için yaygın olarak kullanılıyorlar.

Üst düzey dillerin avantajı, program geliştirme sürecinin önemli ölçüde hızlanmasıdır. Tüm üst düzey diller arasında C belki de en verimli olanıdır. Bu nedenle, gelecekte örnekleme için bu dili seçeceğiz. Farklı mikroişlemci aileleri için kendi dil sürümleri geliştirilmiştir. Örneğin, AVR ailesinin mikroişlemcileri için - C AVR.

Bölüm 1. Mikrodenetleyiciler için program yazmak

C dilinin öğeleri

Bir C programında MK yazmaçlarının (kayıtlar MK AVR'nin belleğindeki hücre-baytlardır) adları vardır ve bunların çoğundaki sayılar değiştirilebildiğinden, yazmaçlar temelde program için değişkenlerdir.
Değişken- bu, hafızada bir sayı veya sayıları saklayabileceğiniz ve değiştirebileceğiniz bir dizi hücredir. Bir değişkenin bir adresi ve bir adı vardır.

Devamlı- bir değişken gibidir ama içeriğini değiştiremezsiniz.

sabitler

Sabitler programda listelenen değerlerdir. C dilinde dört tür sabit vardır: tamsayı sabitleri, kayan noktalı sabitler, karakter sabitleri ve dizge değişmezleri.

Tamsayı sabiti: bu ondalık, sekizlik, onaltılık veya ikili numara birinde bir tamsayı değeri temsil eden aşağıdaki formlar: ondalık, sekizlik, onaltılık veya ikili.

Bir ondalık sabit, bir veya daha fazla ondalık basamaktan oluşur ve ilk basamak sıfır olmamalıdır (aksi halde sayı sekizli olarak kabul edilir).

Bir sekizlik sabit, zorunlu bir sıfır ve bir veya daha fazla sekizli basamaktan oluşur (rakamlar arasında sekiz ve dokuz bulunmamalıdır, çünkü bu basamaklar sekizli sayı sistemine dahil değildir).

Onaltılık bir sabit, zorunlu 0x veya 0X dizisiyle başlar ve bir veya daha fazla onaltılık basamak içerir (bir onaltılık basamak kümesini temsil eden basamaklar: 0,1,2,3,4,5,6,7,8,9,A,B , C,D,E,F).

Bir ikili sabit, önünde 0b dizisi olması gereken ikili karakterler kullanılarak yazılır.

örneğin - Tamsayılar yazılabilir:

Ondalık: 12 234 -5493

Ön eki 0b olan ikili biçimde şu şekilde: 0b101001

Önüne 0x eklenmiş onaltılık biçimde şu şekilde: 0x5A

0 ön ekiyle sekizli formda: 0775

Negatif bir tamsayı sabiti oluşturmak istiyorsanız, sabiti yazmadan önce "-" işaretini kullanın (buna tekli eksi denir). Örneğin: -0x2A, -088, -16 .

Her tamsayı sabitine, ifadelerde sabit kullanılıyorsa gerçekleştirilecek dönüştürmeleri belirten bir tür atanır. Bir sabitin türü aşağıdaki gibi tanımlanır:

Ondalık sabitler, işaretli değerler olarak ele alınır ve sabitin değerine göre int (tamsayı) veya uzun (uzun tamsayı) tipine atanır. Sabit 32768'den küçükse int, aksi halde uzun olarak atanır.

Sekizli ve onaltılık sabitlere bir tür atanır int, imzasız int(İşaretsiz tam sayı), uzun veya imzasız uzun Tablo 1.1'e göre sabitin değerine bağlı olarak.

Tablo 1.1

Onaltılık sabit aralığı sekizli sabit aralığı Tip
0x0 - 0x7FFF 0 - 077777 int
0X8000 - 0XFFFF 0100000 - 0177777 imzasız int
0X10000 - 0X7FFFFFFFF 0200000 - 017777777777 uzun
0X80000000 - 0XFFFFFFFFFF 020000000000 - 037777777777 imzasız uzun

Bir kayan noktalı sayı, bir tamsayı kısmından, bir kesir kısmından ve/veya bir üsten oluşur. Kayan nokta sabitleri, çift duyarlıklı pozitif değerleri (double türünde) temsil eder. Negatif bir değer belirlemek için, eksi işareti ve pozitif bir sabitten oluşan sabit bir ifade oluşturmak gerekir.

Örnekler: 115,75, 1,5E-2, -0,025, ,075, -0,85E2

Bir karakter sabiti, kesme işareti içine alınmış bir karakterle temsil edilir. Bir karakter sabitinin değeri sayısal karakter kodudur.

Örneğin, "Q", Q harfidir.

Karakter sabitleri int türündedir ve tür dönüştürme sırasında bir işaretle doldurulur.

Bir dize sabiti (değişmez), tırnak işaretleri (") içine alınmış bir karakter dizisidir (dize ve büyük Rus ve Latin harfleri ile sayılar dahil).

Örneğin, "Merhaba"

Dize değişmez karakterleri kapsamda saklanır rasgele erişim belleği. Derleyici, her dizgi sabit değerinin sonuna \0 çıkış dizisi ile temsil edilen bir boş karakter ekler. Bir dize sabit değeri char türündedir.

1.1.2. tanımlayıcı

Tanımlayıcı, harfin veya özel karakterin önce gelmesi koşuluyla, özel karakterlerin yanı sıra bir sayı ve harf dizisidir. Tanımlayıcıların oluşturulması için Latin alfabesinin küçük veya büyük harfleri kullanılabilir. Gibi özel karakter alt çizgi karakteri (_) kullanılabilir. Eşleşen küçük ve büyük harfler kullanılarak oluşturulan iki tanımlayıcı farklı kabul edilir. Örneğin: abc, ABC, A128B, a128b .

Bir değişken, işlev, yapı vb. bildirme aşamasında bir tanımlayıcı oluşturulur. bundan sonra geliştirilen programın sonraki ifadelerinde kullanılabilir. Tanımlayıcı, anahtar sözcükler, ayrılmış sözcükler veya C derleyici kitaplığı işlev adlarıyla aynı olmamalıdır.

anahtar kelimeler

Veri türleri ve bildirimleri

C dili ile diğer diller arasındaki önemli bir fark, varsayılan ilkenin olmamasıdır, bu da programda kullanılan tüm değişkenlerin karşılık gelen türlerinin bir göstergesi ile birlikte açıkça bildirilmesi ihtiyacına yol açar.

Değişken bildirim formatı sonraki görünüm:

[]

- Bellek sınıfı belirleyicisi - SI dilinin dört anahtar sözcüğünden biri tarafından belirlenir: auto, extern, register, static ve bir yandan, diğer yandan beyan edilen değişken için belleğin nasıl tahsis edileceğini gösterir. bu değişkenin kapsamı, yani programın hangi bölümlerinden erişebileceğiniz. Gerekli değildir ve yalnızca bazı durumlarda gereklidir.

- değişken başka dosyalarda kullanılabiliyorsa kaynak kodu programlar;

- değişken yerel ise, o zaman bazı işlevlerde köşeli ayraçtan sonra bildirilir ve bu işleve yapılan bir sonraki çağrıya kadar değerlerini korumalıdır;

- değişkeni MK kayıtlarına yerleştirin.

Genel değişkenler herhangi bir işlevin metninde görünmeden önce bildirilir. Bildirildikten sonra, genel değişkenler herhangi bir program işlevinde kullanılabilir.

Yerel değişkenler işlevlerin en başında bildirilir - yani. kaşlı ayraçtan sonra.

- değişkenin depolayabileceği verilerin tür belirleyicisi.

Değer aralığını ve değişkenler için ayrılan bellek alanının boyutunu belirleyen tamsayı tipi verileri tanımlamak için çeşitli anahtar kelimeler kullanılır.

Örneğin,

İşaretsiz karakter - 0 ile 255 (bayt) arasında bir sayı saklar;

Unsigned Int - 0 ile 65535 (iki bayt) arasında bir sayı saklar;

Unsigned long Int - 0 ile 4294967295 (dört bayt) arasında bir sayı saklar.

Unsigned char yerine sadece char yazabilirsiniz, çünkü derleyici char'ı varsayılan olarak unsigned olarak kabul eder.

Signed char - imzalı bir değişken anlamına gelir ve -128 ile 127 arasında bir sayı saklar.

Signed ve unsigned anahtar sözcükleri, belirtilen değişkenin sıfır bitinin nasıl yorumlandığını gösterir, yani belirtilmişse anahtar kelime işaretsiz ise sıfır biti sayının bir parçası olarak yorumlanır, aksi takdirde sıfır biti işaret olarak yorumlanır. unsigned anahtar sözcüğünün yokluğunda, tamsayı değişkeni işaretli kabul edilir. Tür belirteci, imzalı veya imzasız bir anahtar türünden ve ardından bir değişken tanımlayıcıdan oluşuyorsa, bir int değişkeni olarak ele alınacaktır. Örneğin:

imzasız int n;işaretsiz int b;int c; (imzalı int c varsayılarak), unsigned d; (imzasız int d varsayılarak);signed f; (imzalı int f varsayılarak).

Herhangi bir tür değişken değiştirilemez olarak bildirilebilir. Bu, tür belirticiye const anahtar sözcüğünü ekleyerek elde edilir. const türündeki nesneler salt okunur verileri temsil eder, yani bu değişkene yeni bir değer atanamaz. Const kelimesinden sonra bir tür belirtici yoksa, o zaman tür belirticinin int ima edildiğini unutmayın. const anahtar sözcüğü bildirimden önce gelirse kompozit türleri(dizi, yapı, karışım, numaralandırma), bu, her bir öğenin de değiştirilemez olması gerektiği gerçeğine yol açar, yani. yalnızca bir kez değer atanabilir.

sabit çift A=2.128E-2;sabit B=286; (const int B=286 varsayılarak) consnant char_string sabiti =”bu bir dizi sabitidir”

kayan veri

Bir kayan noktalı sayıyı temsil eden değişkenler için şu tip değiştiriciler kullanılır: float, double, long double (long double dilinin bazı uygulamalarında SI yoktur).

Kayan tip değiştiricili bir değer 4 bayt yer kaplar. Bunlardan 1 bit işarete, 8 bit fazlalık üs için ve 23 bit mantis için ayrılmıştır. Mantisin en önemli bitinin her zaman 1 olduğuna dikkat edin, bu nedenle doldurulmaz, bu nedenle kayan nokta değişkeninin aralığı yaklaşık 3.14E-38 ila 3.14E+38'dir. Double değeri bellekte 8 bayt yer kaplar. Biçimi, kayan biçime benzer. Bellek bitleri şu şekilde tahsis edilir: işaret için 1 bit, üs için 11 bit ve mantis için 52 bit. Mantisin atlanan yüksek biti göz önüne alındığında, değer aralığı 1.7E-308 ile 1.7E+308 arasındadır.

f, a, b, çift x, y;

- değişken ismi. Örneğin im değişkenleri.

Değişkenler için küçük harfler kullanmak alışılmış bir durumdur ve değişken adlarını işlev adlarından ayırmak için değişken adları bir harfle ve işlev adları (ana hariç) alt çizgi ile başlayabilir.

Örneğin, değişimim , _funkzia'nız.

Global değişkenler ve statik değiştiricili yerel değişkenler, başka değerler atanmadıkça programı başlatırken ve yeniden başlatırken 0'a eşittir.

Değişken bildirimlerine bazı örnekler:

İmzasız Karakter my_change=34 ; /* my_peremen, 34 değeriyle (isteğe bağlı) Unsigned Char olarak tanımlanır */

İmzasız Int big_ change=34634; /* büyük_ değişiklik Unsigned Int olarak bildirildi */.

dizi bildirimi

Diziler, aynı türden (double, float, int, vb.) bir grup öğedir. Dizi bildiriminden derleyici, dizi öğelerinin türü ve sayıları hakkında bilgi almalıdır. Bir dizi bildiriminin iki biçimi vardır:

tip tanımlayıcı tanımlayıcı [const - ifade];

tip belirleyici tanımlayıcı;

Tanımlayıcı bir dizi tanımlayıcıdır.

Tip belirteci, bildirilen dizinin elemanlarının tipini belirtir. Dizi öğeleri işlev veya geçersiz öğe olamaz.

Köşeli parantez içindeki sabit ifade, dizideki öğelerin sayısını belirtir. Aşağıdaki durumlarda bir dizi bildiriminden bir sabit ifade çıkarılabilir:

Bildirildiğinde, bir dizi başlatılır;

Dizi, resmi bir işlev parametresi olarak bildirilir.

C dili yalnızca tek boyutlu dizileri tanımlar, ancak bir dizi öğesi bir dizi olabileceğinden, çok boyutlu dizileri de tanımlayabilirsiniz. Her bir sabit ifadenin kendi köşeli parantezleri içine alındığı, dizi tanımlayıcısını izleyen sabit ifadelerin bir listesi olarak resmileştirilirler.

Köşeli parantez içindeki her sabit ifade, belirli bir dizi boyutu boyunca öğelerin sayısını tanımlar, bu nedenle iki boyutlu bir dizi bildirimi iki sabit ifade içerir, üç boyutlu bir dizi bildirimi üç içerir vb. C'de bir dizinin ilk elemanının 0 indeksine sahip olduğuna dikkat edin.

Karakter kütlesi - elemanların numaralandırılması 0'dan başlar, yani bu dizinin elemanları kütle, kütle olarak adlandırılır ve 11, 22, 33 sayılarını saklarlar. Programın bir yerinde elemana bir değer atanabilir, örneğin kütle = 210. Öğelere değer atayamazsınız.

Bir dizi karakter içeren bir dizi değişkeni veya dizi, örneğin,

Karakter vuruşu =”Merhaba”, yalnızca beş karakter içermesine rağmen 6 öğeyi tanımlar. Altıncı eleman, \0 dizisinin sonuna eklenen kontrol karakteridir.

Bir karakter dizisi, öğe sayısı belirtilmeden de bildirilebilir.

Örneğin,

Char str = ”karakter dizisi bildirimi”

İfadeler ve atamalar

İşlenenler ve İşlemler

Belirli bir değerle sonuçlanan operatör işaretleri ve işlenenlerin bir kombinasyonuna ifade denir. Operatör işaretleri, işlenenler üzerinde gerçekleştirilecek işlemleri tanımlar. Bir ifadedeki her işlenen bir ifade olabilir. İfadenin değeri, işlemlerin işaretlerinin konumuna bağlıdır ve parantez ifadede ve ayrıca işlemlerin yürütülmesinin önceliğinde.

C dilinde bir atama aynı zamanda bir ifadedir ve böyle bir ifadenin değeri atanmakta olan değerdir.

Bir işlenen, işlenenlerin, işleç işaretlerinin ve parantezlerin birleşiminden oluşan bir sabit, hazır bilgi, tanımlayıcı, işlev çağrısı, dizin ifadesi, öğe seçici ifadesi veya daha karmaşık bir ifadedir. Sabit bir değere sahip herhangi bir işlenene sabit ifade denir. Her işlenenin bir türü vardır.

Bir sayıyı bir değişkene (kayıta) koymak için, C dilinde “ atama operatörü vardır. = ". C'deki bu sembol, atama operatörünün sağındaki sonucu hesaplamak ve bu sonucu bulunan bir değişkene yerleştirmek anlamına gelir. Sola atama operatörü.

1.PORTB=PINB+34; /* Bu C satırı, PINB değişkeninin (kayıt) değerini al (oku), sonra ona 34 sayısını ekle ve sonucu PORTB değişkenine koy anlamına gelir */

2. DEĞİŞKEN=PİNÇ; /* Bu C satırı, PINC değişkeninin (kayıt) değerini almak (okumak) ve sonucu VARIABLE adlı bir değişkene yerleştirmek anlamına gelir */
3. Değişkenin “=” solunda olduğu ancak & PORTB& =0x23; C'de PORTB değişkeninin içeriğini okumak, ardından okunan değer ile 0x23 sayısı arasında "bitsel (bitsel) mantıksal AND" gerçekleştirmek ve sonucu PORTB değişkeni 4'e yerleştirmek (yazmak, atamak) anlamına gelir. değişken “=” öğesinin hemen solundadır PORTB= 0x23; C'de - PORTB değişkeninin içeriğini okumadan, daha önce orada olanı yok ederek ona 0x23 değerini atayın.
& "VE" (VE - yalnızca 1 ve 1, 1 verir) yerine, diğer bit düzeyinde mantıksal işlemler olabilir: | "OR" (VEYA yalnızca 0 ve 0, 0 verir) ^ "XOR" ("1"in karşısındaki XOR değişim biti) ~ "bit ters çevirme" (INV kayıt bitlerini zıt karakterlere değiştirir) ve aritmetik işlemler: + - * / %
Atama operatörü kısaltmalar kullanır:
UZUN KAYIT ANLAM AZALTILMIŞ
x = x + 1; 1 ekle x++; veya ++x;
x = x - 1; 1 çıkar X--; veya --x;
x = x + y; y ekle x += y;
x = x - y; y'yi çıkar x -= y;
x = x * y; y ile çarp x *= y;
x = x / y; y'ye böl x /= y;
x = x % y; bölümün geri kalanı x %= y;
X--; 1 çıkar x -= 1;
x++; 1 ekle x += 1;

C'de atama işleci olmadan bir değişkenin değerini değiştiren işlemler vardır:

PORTA++;/* Bu C satırı, PORTA değişkeninin değerini al, ona 1 ekle ve sonucu PORTA'ya geri yaz anlamına gelir. artış PORTA'ya kaydolun */

PORTC--;/* Bu C satırı tam tersini ifade ediyor! Azaltma- PORTC kaydının değerinden 1 çıkarın */

Bir ifadede artırma veya eksiltme kullanıldığında, iki + veya - işaretinin değişkenden önce veya sonra nerede olduğu önemlidir:

bir=4; b=7; a = b++;/* Bu C satırı şu anlama gelir: b'nin değerini al, a'ya ata, sonra b'ye 1 ekle ve sonucu b'de sakla. Şimdi a, 7 sayısını içerecek, b, 8 sayısını içerecek */ bir=4; b=7; a = ++b;/* Bu C satırı şu anlama gelir: b değişkeninin değerini al, sonra ona 1 ekle ve sonucu b'de sakla ve aynı sonucu a değişkenine ata. Şimdi a, 8 sayısını içerecek ve b şunları içerecek 8 sayısı */ 1.2 .2 Aritmetik işlemler C'de x + y// toplamax - y// çıkarmax * y// çarpma x / y/* bölme. Sayılar tamsayıysa sonuç, kesirli kısmı atılan bir tamsayıdır - yuvarlanmaz. Onlar. bölme işleminin sonucu 6.23411 veya 6.94 ise, sonuç sadece bir tamsayı 6 olacaktır. Kayan noktalı sayılar, yani kayan veya çift, nokta ve noktadan sonra bir sayı ile yazılırsa, sonuç bir olacaktır. kesirli kısmı atmadan kayan noktalı sayı 131.9739 / 6.18 21.355 verecek */ x % y// tamsayı bölümünden sonra kalanı hesapla Örnekler:

X< y // X меньше Y
x > y // daha fazla
X<= y // меньше или равно
x >= y // büyük veya eşittir
x == y // eşittir
x != y /* eşit değil Bu ifadelerin sonucu: "doğru", "1"dir (daha doğrusu, "sıfır değil"), "yanlış", "0"dır. Değişkenlerde saklanan değerler (kayıtlarda)
X
Ve de değiştirme. Değişkenlerde saklanan (veya içerilen) değerler alınır (okunur) ve karşılaştırılır */

1.2.5.Boole işlemleri:

|| // "VEYA" - yalnızca "yanlış" ve "yanlış"

// "yanlış" ver

&& // "VE" - yalnızca "doğru" ve "doğru"
// "true" ver

! // "DEĞİL" - mantıksal olumsuzlama

Mantıksal işlemin sonucu bir SAYI DEĞİL, "doğru" veya "yanlış" mantıksal değeridir.

Mantıksal işlemler için && ve || ifadelerin sonuçları işlemin işaretinin soluna ve sağına alınır "doğru" veya "yanlış" olarak dönüştürülür ve işlemin mantıksal sonucu belirlenir.

Derleyici "true" sonucunu 1'e çevirir ve 0'dan başka bir sayıya çevirmez.

Mantıksal işlemler, kontrol edilecek birkaç koşulu birleştirebilir.

Örneğin:

eğer((ifade1)&&((ifade2)||(ifade3)))
{ /* Buradaki program kodu aşağıdaki durumlarda çalıştırılacaktır:

İfade1 "Doğru"dur (sıfır olmadığı anlamına gelir) ve 2 ve 3 ifadelerinden en az biri de "Doğru"dur (sıfır olmadığı anlamına gelir).
} ;

1.3. C'de kullanılan yapılar

1.eğer(){} başka(); programın bir bölümünü herhangi bir koşulun varlığında veya yokluğunda yürütmeniz gerekiyorsa ideal yapı:

} başka( Olumsuz gerekli eleman inşaat, onsuz inşaat şöyle görünür:

eğer (ifade) ( C code /* eğer bu kodu yapıyorsanız ifade"gerçek" - yani hesaplamasının sonucu sıfır değil */
};

eğer(PINB.5) ( C kodunu çalıştır );
/* Eğer PB5 bacağında bir "1" var ("0" değil "doğru" anlamına gelir) sonra program kodu çalıştıracak, ve eğer "0" ("yanlış" anlamına gelir) sahipse, bunu yapmayacak, sadece bir sonraki satıra ilerleyecektir */

2. süre()(); koşullu döngü (koşullu döngü) - yürütülürken bazı program kodlarını yürütmeniz gerekirse kullanılır (vardır,
"doğru", "sıfır değil") anlamına gelir, ifadenin değerlendirilmesinin sonucu:

sırasında( ifade ) (C code /* ifade "true" ise bu kodu yürütün - yani hesaplama sonucu sıfır değil. Bu kod yürütülürken ifadenin doğruluğu kontrol edilmez. Kod çalıştırıldıktan sonra geçiş çizgi sırasında ifadenin doğruluğunu tekrar kontrol edin */
};

Örneğin:

sırasında(PINA.6) (C kodunu çalıştır);
/* Hoşçakal PA6'nın ayağında bir "1" var ("0" değil "true" anlamına gelir) o zaman program kodu çalıştıracak ve PA6'da olduğunu tekrar kontrol edecek */ Bit_6 "0" olursa program devam edecek ( ) içinde olanı yapmadan daha fazla

Döngü sırasında bir seçeneği var

Yaparken

( ) içindeki kodun en azından yürütüldüğü yer koşulun doğru olup olmadığına bakılmaksızın bir kez parantez içinde:

do(C code /* bu kodu bir kez çalıştır, sonra ifade "true" ise - yani değerlendirmesinin sonucu sıfır değilse - kodu yeniden baştan yürüt ve ifade true olana kadar devam et */ ) iken ( ifade); for(;;) ve while() döngüleri genellikle şu şekilde kullanılır: while(1); için(;;); /* Yani bu döngülerin yazılması şu anlama gelir: MK bu satırı güç varken, sıfırlama ve kesinti olmadan yürütür. Bir kesme meydana geldiğinde, program kesme işleyicisine atlar ve (işleyicide programdaki başka bir yere geçiş yoksa) işleyici kodunu tamamladıktan sonra tekrar bu döngüye döner. */ while(1)( program kodu ); for (;;)( program kodu); 4.for(;;)(); - bu döngü, programın bir bölümünü gerekli sayıda çalıştırmanıza izin verir:

karakter Ben; /* için değişken bildirimi için bu normal bir C değişkenidir ve bu nedenle istediğiniz herhangi bir geçerli ada ve türe sahip olabilir */

için(i=5; ben<20; i+=4) {
C /* içindeki kod İlk önce "doğru" veya "yanlış" kontrol ifadesi i belirlenecek<20. Так как переменной i присвоено значение 5 то контрольное выражение "истинно" и код цикла için i=5 için ilk kez yürütülecek, sonra i+=4 ifadesiyle i 9 olacak, şimdi i kontrol ifadesinin doğruluğu (doğruluk, uygulama) tekrar kontrol edilecek<20 и так как 9<20 код цикла için i=9 için tekrar yürütülecek. Bu, kontrol ifadesi değerlendirmesinin sonucu "true" verdiği sürece devam edecektir. Sonuç "yanlış" olduğunda - program döngüden çıkar için kodu çalıştırmadan. */
};

i = 5 ilk ifadedir, başlangıçtaki değişkende ne olacak Ben. 5 sayısı sadece bir örnektir, değişken tipinin bildirimi izin verdiği her şey olabilir. Ben, bizim durumumuzda karakterçoğu derleyicide varsayılan olarak bu işaretsiz bir karakter türüdür - 0 ile 255 arasındaki sayıları saklayabilir

Ben< 20 - контрольное выражение. Может быть с разными операторами отношения, sadece önemli böylece döngü sırasında bazen "yanlış" olur - aksi takdirde döngü "döngü" olur, yani asla bitmeyecek.

i += 4, döngü değişkeninin sayacı veya değişimidir. Genellikle bu ben++ onlar. Döngünün her "çalışmasında" değişkene 1 eklenir. Ama yine de, ne istersen olabilir.

Başlangıç ​​koşulu- bir tamsayı olarak değerlendirilen, C'de geçerli herhangi bir ifade olabilir.

Kontrol ifadesi- döngünün ne kadar süreyle yürütüleceğini belirler.

Tezgah- yeni bir döngünün her yürütülmesinden önce ilk ifadenin nasıl değiştiğini gösterir.

İfade- sadece bir değişken değil, diğer değişkenlerin bir fonksiyonu olabilir, örneğin:

i =(7 + i*4) veya i = (diğer değişkenlerin işlevi).

5. anahtar()(); - çoktan seçmeli operatör, birkaç seçenek arasından seçim yapmanızı sağlar.

Parantez içindeki switch anahtar sözcüğünü izleyen ifade, değeri bir tamsayı olması gereken, C dilinde izin verilen herhangi bir ifade olabilir. Bu ifadenin değeri, birden çok seçenek arasından seçim yapmanın anahtarıdır. Bir switch deyiminin gövdesi, bir sabit ifade tarafından takip edilen case anahtar kelimesiyle işaretlenmiş birkaç ifadeden oluşur. Bir switch deyimindeki tüm sabit ifadeler benzersiz olmalıdır. case anahtar sözcüğüyle işaretlenen ifadelere ek olarak, her zaman bir tane olmak üzere, default anahtar sözcüğüyle işaretlenmiş bir parça olabilir. Operatör listesi boş olabilir veya bir veya daha fazla operatör içerebilir. Ayrıca, switch deyiminde, deyim dizisini kaşlı ayraçlar içine almak gerekli değildir.

Switch deyiminin yürütme şeması aşağıdaki gibidir:

Parantez içindeki ifade değerlendirilir;

Hesaplanan değerler, case anahtar sözcüklerini izleyen sabit ifadelerle sıralı olarak karşılaştırılır;

Sabit ifadelerden biri, ifadenin değeriyle eşleşirse, kontrol ilgili case anahtar sözcüğüyle işaretlenmiş ifadeye aktarılır;

Sabit ifadelerden hiçbiri ifadeye eşit değilse, kontrol default anahtar kelimesi ile işaretlenmiş ifadeye, yoksa switch ifadesinden sonraki ifadeye kontrol aktarılır.

İfadelerden biri switch ifadesinin gövdesinden kontrolü aktarmadığı sürece, start ifadesi ile gövdenin sonu arasındaki tüm ifadeler, anahtar sözcüklerden bağımsız olarak yürütülür. Bu nedenle, programcı gerekirse davadan çıkmaya özen göstermelidir. Bunu yapmanın en yaygın yolu break deyimini kullanmaktır.

anahtar(ifade) (

durum 5: C kodu
/* bu operatörün çalışmasında ifade hesaplama sonucu 5 sayısına eşitse bu kod çalıştırılacaktır. anahtar biter */
kırmak;

kasa-32: C kodu
/* ifade negatif bir sayı -32 olarak değerlendirilirse bu kod yürütülür. Bu operatörün işi anahtar biter */
kırmak;

durum "G": C kodu
/* ifade değerlendirme sonucu ASCII tablosundaki G karakterine karşılık gelen sayıya eşitse bu kod çalıştırılacaktır.Bu operatörün işidir. anahtar biter */
kırmak;

varsayılan: C kodu
/* bu kod, ifadenin değerlendirilmesinin sonucu ne 5, ne -32, ne de "G" değilse ve ayrıca kodun yürütülmesinden sonra çalıştırılacaktır.
sonunda bir mola vermek;

Bu operatörün işi anahtar biter */
};

/* anahtar bitti - diğer program kodu yürütülür */

dava- programın daha hızlı çalışmasını sağlamak için gerektiği kadar olabilir - en olası seçenekler daha yükseğe yerleştirilmelidir.

varsayılan- gerekli değil. Yerleştirilebilir ve sonunda değil.

kırmak;- kullanmazsanız, istediğiniz seçeneği bulduktan sonra program aşağıdaki koşulları da yerine getirecektir dava.

6.git- koşulsuz (acil) geçiş operatörü.

Goto deyimi, kontrolü etiket-adı etiketli deyime aktarır. Etiketli deyim, goto deyimiyle aynı işlevde olmalıdır ve kullanılan etiket benzersiz olmalıdır, örn. aynı etiket adı, farklı program ifadeleri için kullanılamaz. Etiket-adı bir tanımlayıcıdır. C programımızın bazı kodları... mesto_5:/* goto mesto_5 program satırını çalıştırdıktan sonra buraya geleceğiz */ goto mesto_5'ten sonra kod çalıştırılacak; ... C programımızın bazı kodları... mesto_1:/* goto mesto_1 program satırını çalıştırdıktan sonra buraya geleceğiz */ goto mesto_1'den sonra kod yürütülecek; ... C programımızın bazı kodları... goto mesto_1;/* programda satır başında mesto_1 yazan yere git: */ ... C programımızın bazı kodları... goto mesto_5; /* programda satır başında mesto_5 yazan yere git: */ ... C programımızın bazı kodları.

Örnek C Programı

/*paragraf 1 program başlığı

Yorum olarak biçimlendirilir ve genellikle bilgi içerir.

Programın adı, amacı, sürümü ve yazarı hakkında
- program algoritmasının kısa bir açıklaması
- MK sonuçlarının amacı ve çalışma şekli, sigortalar hakkında açıklamalar
- derleyici, araçlar ve sürümleri
- belirtmeyi faydalı bulduğunuz diğer bilgiler

// 2. nokta harici dosyalar dahil

#katmak

/* derlemeden önce, derleyici ön işlemcisi bu satır yerine içeriği (metin) ekler başlık dosyası"hidera" mega16.h - bu dosya, ATmega16 MK'de bulunan kayıtların bir listesini ve bunların adlarının MK'deki fiziksel adreslerine karşılık gelmesini içerir. Derleyicideki proje özelliklerinde hangi MK'yi kullandığınızı belirtmelisiniz */

#katmak
/* derlemeden önce, derleyici önişlemcisi bu satır yerine "başlık" metnini ekler. Şimdi duraklatmak için tek yapmanız gereken şunu yazmak: */

/* duraklat N (sayı) mikrosaniye. Bir sabit olmalı - bir değişken DEĞİL!!!
Örneğin:

gecikme_us(12 + 7*3);
gecikme_us(117);

gecikme_ms(x); /* duraklat x misec
x - bir değişken, ifade veya sayı olabilir
0 ila 65535 (tür imzasız int)
Örneğin:

gecikme_ms(3280);
gecikme_ms(değişken);
gecikme_ms(değişken*4 + 760); */

//3. nokta kullanıcı tanımları

#tanımlamak ADC_MEŞGUL PINB.0
#tanımlamak NCONVST PORTB.1
/* bu iki satırdan sonra, derlemeden önce, derleyici önişlemcisi program metninde ADC_BUSY'yi PINB.0 ile ve NCONVST'yi PORTB.1 ile değiştirecektir.
Böylece, AD7896 meşgul pininin sizin PB0 pininize bağlı olduğunu hatırlamak yerine, anlamlı ADC_BUSY - "ADC meşgul" kavramının değerini kontrol edebilirsiniz. Ve soyut pin PB1'i (PORTB.1 aracılığıyla) kontrol etmek yerine - NCONVST - "yeni AD dönüşümünü başlat"ı kontrol edebilirsiniz.

#define - Kullanışlı! Ancak AT ALL gerekli değildir.
*/

Örneğin:

#tanımlamak invbit(p,n) (p=p^bit(n))

Burada değişkenler "p" ve "n" dir. Şimdi kayıttaki bit 5'i ters çevirmek için PORTB programa yazmanız yeterlidir:

davet( PORTB,5);

Ayrıca en sağda bu değişkenler aritmetik işlemlerle ilişkilendirilebilir ve bu tür birçok değişken olabilir.

algoritma

Herhangi bir programın geliştirilmesi, bir algoritmanın geliştirilmesiyle başlar. Bizim durumumuzda, algoritma şu şekildedir: ilk kurulum işlemlerinden sonra, mikrodenetleyici, düğmemize bağlı girişi yoklaması ve durumuna bağlı olarak LED'leri kontrol etmesi gereken sürekli bir döngüye girmelidir. Daha ayrıntılı olarak açıklayalım.

c programı

Bir C programı oluştururken, AVR derleyicisi için C PRO'yu kullanırız. Bu yazılım ortamı, AVR mikrodenetleyicileri için C programları geliştirmek üzere özel olarak tasarlanmıştır.

Herhangi bir modern programlama ortamı, yalnızca programın metni ile değil, aynı zamanda sözde proje.

Programcının görevi, yalnızca projede "c" uzantılı ayrı bir dosyanın tahsis edildiği programın metnini yazmaktır. Derleyici, kaynak programı mikrodenetleyicinin belleğine girmek (firmware) için onaltılık bir sisteme çevirir (bir Hex dosyası oluşturur).

Gelecekte, kurulum sürecini ayrıntılı olarak ele alacağız ve AVR yazılım ortamı için C PRO ile çalışacağız. Şimdi kurulduğunu ve başlatıldığını düşünüyoruz.

Derleyiciyi başlattıktan hemen sonra, tüm parametreler varsayılan değerlerine geri döner (tüm dahili cihazlar kapatılır, dahili G / Ç portları girişe ayarlanır, saat frekansı 4 MHz olan dahili bir osilatör kullanılır). sistem sıfırlandıktan sonra mikroişlemcinin ilk durumu. Henüz dokunmamız gerekmeyen parametrelere dokunmayacağız (varsayılan olarak bırakacağız).

C programı şöyle görünür:

1 #Dahil Et< Atmega 128.h >

2 Bit eski durum; // eski durum bayrağı

3 Void main() (

4 DDB0 bit=0 ; // pin PB0'ı giriş olarak ayarla

5 DDRC = 0xFF; // PC'yi çıkış olarak yapılandır

6 PORTC=0xAA; // kaynak kodu port C'ye yazılır

9 If (Button (& PINB,0,1,1)) ( // mantıksal olanı algıla

10 Eski durum=1; // bayrağı güncelle

11 if (eski durum && Düğmesi (& PINB, 0,1,0)) ( // 1'den 0'a geçişi algıla

12 PORTB= ~ PORTB; //PORTC'yi tersine çevir

13 eski durum=0; // bayrağı güncelle

14) iken(1); // sonsuz döngü

Kazakistan Cumhuriyeti Bilim ve Eğitim Bakanlığı

Multidisipliner Kolej

Kuzey Kazakistan Devlet Üniversitesi

akademisyen M. Kozybaev'in adını almıştır

Açıklayıcı not

ders projesine

disiplin: "Dijital cihazlar ve mikroişlemci sistemleri"

konu hakkında: "I 8086 mikroişlemciye dayalı bir mikroişlemci sistemi tasarlama"

Seçenek numarası 16

Tamamlandı: öğrenci gr. RES-k-09

Safronov S.V.

Kontrol eden: öğretmen

Mikhailova A.N.

Petropavlovsk 2010

1. Giriş

2. PAB'nin genel yapısı

3. 16-bit mikroişlemci i8086

3.1 Komut sistemi

4.İç yapı

5. Hafıza cihazları

6. Bellek. inşaat ilkeleri

7. Salt Okunur Bellek (ROM)

8. Dijital-analog dönüştürücüler (DAC)

9. Giriş / çıkış modülünün işlevsel bir diyagramının geliştirilmesi

10 Sonuç

Kaynakça

Ek A

1. Giriş

"Dijital cihazlar ve mikroişlemciler" disiplininin amacı, mantık öğelerinden mikroişlemciler ve mikrobilgisayarlara kadar çeşitli işlevsel karmaşıklığa sahip dijital cihazlar oluşturma ilkelerini incelemektir.

Kompakt mikroelektronik "bellek", modern elektronik cihazlarda çeşitli amaçlar için yaygın olarak kullanılmaktadır. Bir PC'de bellek, komutları ve işlenmiş verileri kaydetmek, depolamak ve yayınlamak için tasarlanmış işlevsel bir parça olarak tanımlanır. Belleğin işlevini yerine getiren teknik araçların kompleksine depolama aygıtı (bellek) denir. İşlemcinin (mikroişlemci) çalışmasını sağlamak için, bir programa, yani bir komut dizisine ve işlemcinin komutlar tarafından öngörülen işlemleri gerçekleştirdiği verilere ihtiyaç vardır. Komutlar ve veriler, çıktısında dijital bir temsil biçimi, yani O ve 1 kod kombinasyonları biçimi aldıkları giriş aygıtı aracılığıyla bilgisayarın ana belleğine girer. Ana bellek, kural olarak, iki oluşur operasyonel bellek türleri (RAM) ve kalıcı ( ROM).

Rastgele erişim belleği, değişken bilgileri depolamak için tasarlanmıştır; işlemcinin verilerle hesaplama işlemleri gerçekleştirmesi sırasında içeriğinin değiştirilmesine izin verir. Bu, işlemcinin komut kodunu ve verileri RAM'den seçebileceği (okuma modu) ve işledikten sonra sonucu RAM'e (yazma modu) yerleştirebileceği anlamına gelir.

Bu kurs çalışması, bellek bloğunun çalışmasına ayrılmıştır. Yani görev, belirli bir boyut ve yapılandırmada bir bellek alanı oluşturmaktır.

2. PAB'nin genel yapısı

Herhangi bir mikroişlemci sisteminin (MPS) merkezi parçası olan mikroişlemci (MP), bir aritmetik mantık birimi (ALU) ve komut döngüsünü uygulayan bir merkezi kontrol birimi (CCU) içerir. MP, yalnızca MP'ye ek olarak bellek, giriş / çıkış aygıtları, yardımcı devreler (saat üreteci, kesme denetleyicileri ve doğrudan bellek erişimi (DMA), veri yolu sürücüleri, mandallar vb.) içeren MPS'nin bir parçası olarak işlev görebilir.

Herhangi bir MPS'de aşağıdaki ana parçalar (alt sistemler) ayırt edilebilir:

    işlemci modülü;

  • harici cihazlar (harici depolama + giriş/çıkış cihazları);

    kesinti alt sistemi;

    doğrudan bellek erişim alt sistemi.

Şekil 1 - "Ortak veri yolu" arayüzüne sahip MPS'nin yapısı

İşlemci ve diğer MPS cihazları arasındaki iletişim, radyal bağlantı ilkelerine, ortak bir veri yoluna veya birleşik bir yönteme göre gerçekleştirilebilir. Tek işlemcili MPS'lerde, özellikle 8- ve 16-bit olanlarda, tüm cihazların arayüze aynı şekilde bağlandığı "Common bus" iletişim prensibi en yaygın şekilde kullanılmaktadır (Şekil 1).

Tüm arabirim sinyalleri üç ana gruba ayrılır - veri, adres ve kontrol. Çok sayıda "Ortak veri yolu" arayüzü çeşidi, ayrı veya çoklanmış hatlar (veriler) üzerinden iletim sağlar. Örneğin, çoğu i8080 tabanlı 8-bit MSM'nin birlikte çalıştığı Microbus arayüzü, adresi ve verileri ayrı yollarda iletir, ancak bazı kontrol sinyalleri veri yolunda gönderilir. DEC mikrobilgisayarlarında (yerli analog - K1801 serisi mikroişlemciler) kullanılan Q-bus arabirimi, bu bilgilerin zaman bölmeli olarak iletildiği çoklanmış bir adres/veri yoluna sahiptir. Doğal olarak, çoklanmış bir veri yolunun varlığında, veri yolu üzerindeki bilgi tipini tanımlayan kontrol hatlarına özel bir sinyal eklemek gerekir. Biri aktif diğeri pasif iki cihaz arasındaki arayüz üzerinden bilgi alışverişi yapılır. Aktif cihaz, pasif cihaz adresleri ve kontrol sinyalleri üretir. Aktif cihaz, kural olarak işlemcidir ve pasif cihaz, her zaman bellek ve bazı VU'lardır.

Bununla birlikte, bazen yüksek hızlı VU, bellekle alışverişi kontrol ederek arayüzde bir ana (aktif cihaz) görevi görebilir. "Ortak veri yolu" kavramı, tüm MPS cihazlarına tek bir adres alanından erişildiğini varsayar, ancak, adreslenebilir nesnelerin sayısını genişletmek için, bazı sistemlerde, bellek ve VU'nun adres alanları yapay olarak ayrılır ve hatta bazen program hafıza ve veri hafızası.

3.16 bit mikroişlemci i8086

İlk 16 bit i8086 işlemci, Intel tarafından 1978'de piyasaya sürüldü. Frekans - 5 MHz, performans - 16 bit işlenenli talimatlar için 0,33 MIPS (daha sonra 8 ve 10 MHz işlemciler ortaya çıktı). 3 mikron teknolojisi, 29.000 transistör. Adreslenebilir bellek 1 MB. Bir yıl sonra i8088 ortaya çıktı - aynı işlemci, ancak 8 bit veri yolu ile. IBM PC'nin tarihi, Intel işlemcilerin tüm diğer geliştirmeleriyle ayrılmaz bir şekilde bağlantılı olarak onunla başladı.IBM PC mimarisinin toplu dağıtımı ve açıklığı, büyük, orta ve küçük firmalar tarafından geliştirilen yeni yazılım çığına yol açtı. bekar meraklılar olarak. O zamanlar ve şimdi teknik ilerleme, işlemcilerin geliştirilmesi olmadan düşünülemezdi, ancak PC için mevcut çok sayıda yazılım göz önüne alındığında, geriye dönük yazılım uyumluluğu ilkesi o zaman bile ortaya çıktı - eski programlar yeni işlemciler üzerinde çalışmalıdır. Bu nedenle, sonraki işlemcilerin mimarisindeki tüm yeniliklerin mevcut çekirdeğe eklenmesi gerekiyordu.

i8086 16-bit MP, i8080 tarafından piyasaya sürülen tek çipli MP serisinin daha da geliştirilmesiydi. Bit derinliğindeki artışın yanı sıra i8086, bir dizi yeni mimari çözüm uygular:

komut sistemi genişletildi (bir dizi işlem ve adresleme yöntemiyle);

MP mimarisi, çok işlemcili çalışmaya yöneliktir. Çeşitli konfigürasyonlardaki multimikroişlemci sistemlerini düzenlemek için bir grup yardımcı LSI (denetleyiciler ve özel işlemciler) geliştirilmiştir;

çeşitli işlemler yapılırken üst üste binme yönünde hareket başlamıştır. MP, iki paralel cihaz içerir

bilgi işleme ve omurga üzerinden iletme süreçlerini zamanında birleştirmenize olanak tanıyan omurga ile veri işleme ve iletişim;

INTEL ailesinin tüm eski modellerinde daha fazla kullanılan yeni bir (i8080 ile karşılaştırıldığında) bellek organizasyonu tanıtıldı - bellek segmentasyonu. i8080 ile modelin sürekliliğini korumak için, i8086 iki çalışma modu sağlar - "minimum" ve "maksimum" ve minimum modda i8086, genişletilmiş komut sistemiyle oldukça hızlı bir 16-bit i8080 gibi çalışır. (i8086-min tabanlı MPS mimarisi, i8080 tabanlı mimariye benzer).

Maksimum mod, birkaç i8086 merkezi işlemciye ek olarak, özel i8089 giriş / çıkış işlemcilerinin, i8087 "kayan aritmetik" yardımcı işlemcilerin çalışabileceği multimikroişlemcili sistemlerde i8086 çalışması için tasarlanmıştır. Yukarıda tanıtılan kavramları daha açık bir şekilde tanımlayalım:

Merkezi işlemci - kendi komut döngüsünü sürdürür, sistem belleğinde depolanan bir programı yürütür, sistem sıfırlandığında kontrol genellikle merkezi işlemciye (veya sistemde birden fazla varsa CPU'lardan birine) aktarılır. Özel işlemci - kendi talimat döngüsünü korur, sistem belleğinde depolanan bir programı yürütür, ancak yalnızca CPU'dan gelen bir komutla başlatılır, programın sonunda CPU'ya işin tamamlandığını bildirir. Yardımcı işlemci kendi komut döngüsünü desteklemez, genel komut akışından CPU tarafından kendisi için seçilen komutları yürütür. Aslında, yardımcı işlemci CPU'nun bir uzantısıdır.

3.1 Komut sistemi

8086 mikroişlemci komut setinde 98 komut vardı: 19 veri aktarım komutu, 38 veri işleme komutu, çeşitli koşullu ve koşulsuz atlamalar için 24 komut ve 17 CPU kontrol komutu.

Her talimat bir işlem kodundan (işlem kodu olarak adlandırılır) ve işlenenlerden oluşuyordu. Genellikle, komutun ilk baytı ve ikinci baytın üç orta biti veya (tek baytlık bir komut durumunda) komutun ilk baytının yüksek kısmı işlem koduna atanır. Toplamda, i8086'da yaklaşık 4000 farklı komut seçeneği vardır.

Amaç olarak, I8086 mikroişlemci komutları 6 gruba ayrılır:

1 Veri aktarım komutları: MOV, XCHG, PUSH, POP, PUSHF, POPF, LEA, LDS, LES, LAHF, SAHF, XLAT, IN.

2 Aritmetik komut: ADD, ADC, INC, AAA, DAA, SUB, SBB, DEC, NEG, CMP, AAS, DAS, MUL, IMUL, DIV, IDIV, AAM, AAD.

3 Mantık komutu: NOT, SHL / SAL, SHR, SAR, ROL, ROR, RCL, RCR,

VE, TEST, VEYA, XOR.

4 Dize işleme komutları: CMPS, LODS, MOVS, REP, SCAS, STOS.

5 Aktarım komutları: JMP, CALL, RET, LOOP/LOOPE, LOOPZ, LOOPNE/LOOPNZ, JCXZ, JE/JZ, JNE/JNZ, JL/JNGE, JLE/JNG, JB/JNAE, JBE/JNA, JP/JPE , JNP/JPO, JO, JNO, JS, JNS, JG/JNLE, JGE/JNL, JA/JNBE, JAE/JNB.

6 İşlemci kontrol komutu: CLC, CMC, STC, CDL, STD, CLI, HLT WAIT, ESC , LOCK

4.İç yapı

MP i8086'nın blok şeması Şek. MP üç ana cihaz içerir:

UOD - veri işleme cihazı;

USM - otoyol ile iletişim cihazı;

UUS - kontrol ve senkronizasyon cihazı.

UOD, talimatları yürütmek için tasarlanmıştır ve 16 bitlik bir ALU, sistem kayıtları ve diğer yardımcı devreleri içerir; kayıt bloğu (RON, temel ve dizin) ve mikro program kontrol bloğu.

USM, belleğin 20 bit fiziksel adresinin ve VU'nun 16 bit adresinin oluşturulmasını, bellekten komutların seçilmesini, veri yolu aracılığıyla bellek, VU ve diğer işlemcilerle veri alışverişini sağlar. USM, bir adres toplayıcı, bir komut kuyruğu kayıtları bloğu ve bir segment kaydı bloğu içerir.

CUS, MP cihazlarının çalışmasının senkronizasyonunu, diğer cihazlarla değiş tokuş için kontrol sinyallerinin ve durum sinyallerinin üretilmesini, analizi ve diğer MPS cihazlarından gelen sinyallere uygun yanıtı sağlar.

MP, iki moddan birinde çalışabilir - "minimum" (min) ve "maksimum" (maks). Minimum mod, i8080 tabanlı MPS'ye benzer bir organizasyonla, ancak artırılmış bir adres alanı, daha yüksek performans ve önemli ölçüde genişletilmiş bir komut seti ile MPS'nin tek işlemcili bir yapılandırmasını uygulamak için tasarlanmıştır. Maksimum yapılandırma, sistemde birkaç MP'nin ve özel bir ana hakem bloğunun (Multibus arabirimini kullanarak) varlığını varsayar.

i8086 MP'nin harici çıkışlarında, sinyal çoğullama ilkesi yaygın olarak kullanılmaktadır - farklı sinyallerin ortak hatlar üzerinden zamana göre bölünerek iletilmesi. Ayrıca aynı pinler kullanılarak moda (min - max) bağlı olarak farklı sinyaller iletilebilir.donanım tasarımı...kurs projesi uygulandı mikroişlemci sistem Açık mikrodenetleyici tabanı - ... cihaz çalışması Açık temel cihaz özellikleri...

  • Tasarım mikroişlemci veri işleme cihazları

    Diğer >> Bilişim, programlama

    ödev tasarım dır-dir sistem verilerin toplanması ve işlenmesi, uygulanan Açık temel modern eleman tabanı - mikroişlemci ... Açık temel mimarilerdeki farklılıklarla ilişkili bazı özelliklere sahip olmasına rağmen, diğer MP benzerdir mikro işlemciler ...

  • Mikroişlemci sistemler

    Uygulama Raporu >> Bilişim

    İle eğitim uygulaması « Mikroişlemci sistemler" Seçenek No. 1 Gerçekleştirildi ... Otomatikleştirilmiş için BİLGİSAYAR tasarım, bilimsel araştırma, ... kimin bilmesi gerekiyor temel bilgiler evrenselin organizasyonu ve işleyişi... imleç sağa Açık bir pozisyon. Açık sembol...

  • Çevre birimlerinin donanım ve yazılımı sistemler sayaç okumalarının toplanması

    Özet >> Bilişim

    16 bit ile karşılaştırılabilir mikro işlemciler ve performans için mikrodenetleyiciler ve ... bilgi işlem teknolojisi tasarım Açık temel bilgi işlem makineleri güvenilir ... lehimleme yolu inşa etmek mikroişlemci sistemler Açık temel AVR bir satın almadır...

  • VT araçlarının eleman tabanındaki niteliksel ve niceliksel değişiklikler,

    tasarımlarının yerleşik ilkelerini değiştirmek (katı

    yapı, sıralı merkezi kontrol, hat organizasyonu

    bellek ve bilgisayarın yapısının özelliklerine uyum sağlayamama

    sorun çözülüyor).

    Bilgisayar sistemlerini organize etmenin klasik von Neumann ilkelerinin yerini, MPS'nin problem yönelimi, bilginin paralel ve ardışık olarak işlenmesi, tablo veri işleme yöntemlerinin kullanımı, MPS yapılarının düzenliliği ve tekdüzeliği ilkeleri aldı; gerçek olur

    uyarlanabilir-ayarlanabilir sistemler oluşturma fikrinin yanı sıra

    yazılım fonksiyonlarının donanım uygulaması. Bu nedenle, şu anda

    alınan MPS'ye dayalı bilgi işlem sistemlerinin tasarımında geçen süre

    sözde "3M" ilkesinin uygulanması: modülerlik, gövde,

    mikro programlanabilirlik.

    Modüler organizasyon ilkesi hesaplamalı yapıyı içerir ve

    MPS'yi bir dizi modüle dayalı olarak kontrol edin: yapısal, işlevsel ve

    bağımsız olarak yapmanıza izin veren elektriksel olarak eksiksiz bilgi işlem cihazları

    veya bu sınıftaki sorunları çözmek için diğer modüllerle birlikte. modüler

    mikrobilgisayarların ve sistemlerin tasarımındaki yaklaşım (olarak uygulandığında)

    evrensel ve özel modüller) ailelerin oluşturulmasını sağlar

    (satırlar) MPS, farklı işlevsellik ve özellikler,

    önemli bir uygulama yelpazesini kapsayan, azaltmaya yardımcı olur

    tasarım maliyetlerinin yanı sıra kapasite genişletmeyi basitleştirir ve

    sistemlerin yeniden yapılandırılması, bilgi işlemin eskimesini geri iter

    Bilgi alışverişinin omurga yöntemi organizasyondan farklı

    keyfi bağlantılar ("her biri ile" ilkesine göre) düzene koymanıza ve

    MPS'deki bağlantı sayısını en aza indirmek için. arasında bilgi alışverişini sağlar.

    kullanarak çeşitli seviyelerde işlevsel ve yapıcı modüller

    giriş ve çıkış otobüslerini birleştiren otoyollar. Bir, iki var,

    üç ve çok hatlı iletişim. ilişkisine dikkat edilmelidir

    uygulama sırasında ortaya çıkan devre ve yapısal çözümler

    Bu methodözel çift yönlü tampon oluşturma şeklinde değiş tokuş

    üç kararlı duruma ve geçici kullanıma sahip kaskadlar

    değişim kanallarının çoklanması.

    Ürün yazılımı kontrolü organize etmede en büyük esnekliği sağlar

    çok işlevli modüller ve sorun yönlendirmeye izin verir

    MPS, bunların yanı sıra makro işlemleri kullanmaktan daha verimlidir.


    standart rutinler. Ayrıca formdaki kontrollü kelimelerin iletimi

    şifrelenmiş kod dizileri, minimizasyon koşullarına karşılık gelir

    VLSI pinlerinin sayısı ve modüllerdeki ara bağlantıların sayısı azaltılır.

    Yukarıda listelenen MPS tasarımının ana özelliklerine ek olarak,

    düzenlilik anlamına gelen düzenlilik ilkesine dikkat edin.

    MPS yapısının elemanlarının tekrarlanabilirliği ve aralarındaki bağlantılar. Bunun uygulaması

    ilkesi, integral yoğunluğunu artırmanıza, bağların uzunluğunu azaltmanıza olanak tanır

    bir çip üzerinde, düzen ve devre tasarımı süresini azaltın

    LSI ve VLSI tasarımı, kavşak sayısını ve işlevsel türlerini azaltır

    ve yapısal elemanlar.

    MPS mimarisini geliştirirken (sistem aşaması), aşağıdakileri çözmek gerekir

    Bir sistemin işlevsel davranışının kavramsal yapısının bir tanımını verin.

    yapımında ve organizasyonunda kullanıcının çıkarlarını dikkate alan pozisyonlar

    içindeki bilgi işlem süreci;

    Yazılım yapısının yapısını, terminolojisini ve özelliklerini belirlemek ve

    üretici yazılımı;

    Özellikleri Tanımla iç organizasyon veri akışı ve kontrolü

    bilgi;

    Fiziksel yapının işlevsel yapısı ve özelliklerinin bir analizini yapmak

    sistem cihazlarının yazılım dengesi açısından uygulanması,

    mikro program ve donanım.

    MPS tasarımının ana aşamaları, şekil 2'de gösterilmiştir. 3.1.

    İlk tasarım aşamasında, MPS aşağıdakilerden birinde açıklanabilir:

    aşağıdaki kavramsal düzeyler: “kara kutu”, yapısal, program,

    mantıksal, şema.

    "Kara kutu" seviyesinde, MPS, harici spesifikasyonlarla tanımlanır; burada

    dış özellikler listelenir.

    Pirinç. 3.1. MPS tasarımının aşamaları

    Yapısal seviye, MPS'nin donanım bileşenleri tarafından oluşturulur.

    bireysel cihazların işlevlerini, ilişkilerini ve bilgilerini açıklar

    Canlı Yayınlar.

    Yazılım düzeyi iki alt düzeye ayrılır (işlemci yönergeleri ve

    dil) ve MPS, bir işleç dizisi olarak yorumlanır veya

    bazı veri yapılarında bir veya daha fazla eyleme neden olan komutlar.

    Mantıksal seviye, yalnızca ayrık sistemlerde bulunur ve bölümlere ayrılır:

    iki alt seviye: anahtarlama devreleri ve kayıt aktarımları.

    İlk alt seviye, kapılar (kombinasyon devreleri ve bellek elemanları) ve bunlara dayalı olarak oluşturulmuş veri işleme operatörlerinden oluşur. İkinci alt düzey, daha yüksek bir soyutlama derecesi ile karakterize edilir ve yazmaçların ve bunlar arasındaki veri aktarımının bir açıklamasıdır. İki içerir

    kısımlar: bilgi ve kontrol: ilki kayıtlardan oluşur,

    operatörler ve veri aktarım yolları, ikinci bağımlı sağlar

    Kayıtlar arasında veri transferini başlatan zaman sinyalleri.

    Devre seviyesi, ayrık cihazların elemanlarının çalışmasının açıklamasına dayanır.

    İÇİNDE yaşam döngüsü Herhangi bir ayrık sistem gibi MPS'nin de üç aşaması vardır:

    tasarım, üretim ve işletme.

    Aşamaların her biri, yapısal veya fiziksel arızaların meydana gelme olasılıklarının olduğu birkaç aşamaya bölünmüştür. Hatalar nedenlerine göre sınıflandırılır: eleman kusurlarından kaynaklanıyorsa fiziksel ve tasarım hatalarından kaynaklanıyorsa subjektif.

    Sübjektif hatalar, tasarım ve etkileşimli olarak ayrılır. Tasarım

    arızalar, çeşitli aşamalarda sisteme giren eksikliklerden kaynaklanır.

    orijinal görevin uygulanması. Etkileşimli hatalar oluşur

    servis personelinin (operatörün) hatası nedeniyle çalışma süreci. sonuç

    bir arızanın tezahürü bir hatadır ve bir arıza

    bir dizi hataya neden olur ve aynı hataya neden olabilir

    birçok hata.

    Bir kusur kavramı da var - parametrelerde fiziksel bir değişiklik

    kapsama alanı dışında kalan sistem bileşenleri. Kusurlar denir

    geçiciyse başarısızlıklar, kalıcıysa başarısızlıklar.

    Koşullar yaratılana kadar bir kusur tespit edilemez.

    sonucu kendi başına olması gereken bir arızanın meydana gelmesi

    kuyruk, yapmak için incelenen nesnenin çıktısına geçirilir

    gözlemlenebilir başarısızlık

    Sorun giderme, bir hatanın nedenini belirleme işlemidir.

    Test sonuçları.

    Hata ayıklama, hataları tespit etme ve belirleme işlemidir.

    MPS tasarımındaki testlerin sonuçlarına göre oluşum kaynakları.

    Hata ayıklama araçları, cihazlar, kompleksler ve programlardır. Bazen altında

    hata ayıklama, hataların tespitini, yerelleştirilmesini ve ortadan kaldırılmasını anlar. Başarı

    hata ayıklama, sistemin nasıl tasarlandığına bağlıdır.

    hata ayıklamayı kolaylaştıran özellikler ve kullanılan araçlar

    hata ayıklama için.

    Hata ayıklama için tasarlanan MPS'nin sahip olması gerekir

    kontrol edilebilirlik, gözlemlenebilirlik ve tahmin edilebilirlik özellikleri.

    yönetilebilirlik - davranışının uygun olduğu bir sistemin özelliği

    yönetim, yani sistemin çalışmasını durdurmak mümkündür.

    belirli bir durum ve sistemi yeniden başlatın.

    gözlenebilirlik- davranışı izlemenizi sağlayan bir sistem özelliği

    sistem, iç durumlarının değişmesinden sonra.

    Öngörülebilirlik– sistemi kurmanıza izin veren sistemin bir özelliği

    sonraki tüm durumların tahmin edilebileceği bir durum.

    MPS, karmaşıklıkları, gereksinimleri ve işlevleri açısından önemli ölçüde farklılık gösterebilir.

    çalışma parametreleri, yazılım miktarı, tip

    mikroişlemci seti vb. Sonuç olarak, tasarım süreci,

    sistemin gereksinimlerine göre değişir.

    Tasarım süreci yinelemeli bir süreçtir. Kabul testi aşamasında keşfedilen arızalar, spesifikasyonun düzeltilmesine neden olabilir ve

    bu nedenle, tüm sistemin tasarımının başlangıcına kadar. Bulmak

    arıza mümkün olduğu kadar erken gereklidir; kontrol edilmesi gerekiyor

    Geliştirmenin her aşamasında projenin doğruluğu. Aşağıdaki yöntemler var

    tasarım kontrolü: doğrulama (resmi yöntemler

    projenin doğruluğunun kanıtı); modelleme; test yapmak.

    Son zamanlarda, yazılım doğrulama konusunda birçok çalışma ortaya çıktı.

    yazılım, aygıt yazılımı, donanım. Ancak bu çalışmalar halen

    teorik karakter. Bu nedenle, pratikte modelleme daha sık kullanılır.

    soyutun çeşitli düzeylerinde nesne davranışı ve testi

    sistemin temsili.

    Sistem gereksinimlerinin resmileştirilmesi aşamasında, projenin doğruluğunun kontrolü

    özellikle gerekli çünkü birçok tasarım hedefi resmileştirilmemiş veya

    ilke olarak resmileştirilemez. fonksiyonel belirtim olabilir

    uzmanlardan oluşan bir ekip tarafından analiz edilmeli veya modellenip test edilmelidir.

    İstenen hedeflere ulaşılmasını belirlemek için deneysel düzen. Onaydan sonra

    fonksiyonel spesifikasyon, test programlarının geliştirilmesine başlar,

    uyarınca sistemin doğru çalışmasını sağlamak için tasarlanmıştır.

    spesifikasyonu. İdeal olarak, testler tamamen geliştirilir

    bu spesifikasyona dayalı ve herhangi bir doğrulamaya izin veren

    işlevleri yerine getirebileceği beyan edilen bir sistemin uygulanması

    şartnamede belirtilmiştir. Bu yöntem diğerlerinin tam tersidir.

    testlerin belirli uygulamalar için oluşturulduğu yer. Ancak pratikte

    test geliştirmeye genellikle daha düşük öncelik verilir

    proje, bu nedenle test programları ondan çok daha sonra görünür