ENSIKLOPEDIA ELEKTRONIK RADIO DAN KEJURUTERAAN ELEKTRIK Mereka bentuk sistem kawalan capaian automatik. Ensiklopedia elektronik radio dan kejuruteraan elektrik Ensiklopedia elektronik radio dan kejuruteraan elektrik / Pengawal mikro Hari ini, pasaran komponen elektronik menyediakan banyak peluang untuk mencipta sistem untuk pelbagai tujuan. Walau bagaimanapun, persoalan timbul: bagaimana untuk memilih komponen optimum untuk sistem tertentu? Artikel yang diterbitkan membincangkan reka bentuk sistem kawalan capaian automatik menggunakan komponen yang tersedia secara meluas dan murah. Jadi di mana hendak bermula? Pembangunan mana-mana sistem bermula dengan merangka senarai keperluan yang mesti dipenuhi. Untuk sistem yang diterangkan dalam artikel, senarai mungkin kelihatan seperti ini. Sistem harus:
Mari tentukan komponen apa yang harus terkandung dalam sistem. Untuk melakukan ini, pertimbangkan keperluan yang disenaraikan di atas. Dari titik 1, satu baris input/output diperlukan untuk mengawal mekanisme buka/tutup pintu dan satu peranti untuk memasukkan pengecam. Pilihan teknologi pengenalan pengguna (klausa 2) secara signifikan mempengaruhi ciri sistem seperti keselamatan (untuk menghalang pihak ketiga daripada mengakses objek dengan memilih kunci/kod elektronik), kemudahan penggunaan (masa yang pengguna akan gunakan untuk pengenalan proses), kos sistem itu sendiri dan operasi selanjutnya. Contoh penyelesaian yang mungkin di sini termasuk memasukkan kata laluan melalui papan kekunci, menggunakan kad dengan jalur magnetik dan kekunci elektronik iButton dari Dallas Semiconductor [1,2]. Memasukkan kata laluan melalui papan kekunci adalah yang paling mudah dan paling murah untuk dilaksanakan, walaupun ia tidak begitu mudah atau selamat, kerana pengguna mungkin terlupa kata laluan atau orang lain boleh mengintipnya. Di samping itu, dengan akses kerap ke premis, memasukkan gabungan kod mengambil masa yang agak lama. Kad plastik lebih mudah digunakan, dan sistem sedemikian lebih sukar untuk "digodam", bagaimanapun, pelaksanaannya memerlukan peranti tambahan untuk membaca maklumat dari kad, serta peralatan khas untuk merekodkan maklumat mengenainya, yang akan digunakan apabila menambah pengguna baharu. Ini meningkatkan kos sistem akhir dengan ketara. Mari kita pertimbangkan pilihan terakhir. Kekunci iButton ialah litar bersepadu yang ditempatkan dalam perumah tablet MicroCan logam dengan diameter 18 dan ketinggian 6 mm. Rangkaian produk yang dihasilkan dalam reka bentuk ini agak luas: jam masa nyata, penderia suhu, memori tidak meruap dan banyak lagi. iButton adalah murah (kira-kira $2) dan pelaksanaan pembaca juga agak mudah - pada asasnya, bas data disambungkan terus ke satu talian I/O port mikropengawal. Dalam kes ini, hanya perlu melaksanakan protokol 1-Wire dalam perisian. Kemudahan penggunaan sistem sedemikian juga jelas - agar kod dibaca, pengguna hanya perlu menyentuh pad kenalan dengan "tablet". Untuk sistem yang diterangkan, pengubahsuaian DS1990 telah dipilih, yang tidak melaksanakan sebarang fungsi lain selain daripada pengenalan, iaitu cip hanya mengandungi kod unik yang boleh dibaca dengan menghantar arahan khas kepada peranti. Mari kembali kepada keperluan fungsi. Ia berikutan daripada perenggan 3 bahawa anda perlu menjejaki masa dan merekodkan maklumat tentang akses pengguna kepada objek keselamatan. Sememangnya, adalah perlu untuk menyediakan kemungkinan gangguan bekalan elektrik, jadi masa dan mekanisme pembalakan mesti tahan terhadap masalah seperti ini. Memandangkan DS1990 dipilih sebagai pengecam pengguna dan dalam apa jua keadaan anda perlu melaksanakan protokol 1-Wire secara pemrograman, masuk akal untuk menggunakan pengubahsuaian iButton lain - DS1994 - sebagai jam masa nyata. Cip ini mengandungi bateri litium terbina dalam yang memastikan jam berjalan selama 10 tahun. Untuk menyimpan log pas, satu siri memori Flash daripada Atmel AT45 telah dipilih [3]. Membaca/menulis data ke dalam memori jenis ini dijalankan menggunakan protokol SPI bersiri, jumlah baris input/output yang terlibat ialah 7. Daripada litar mikro yang tersedia bagi siri ini, AT45D041 dengan kapasiti memori 4 Mbit telah dipilih. Papan kekunci diperlukan untuk mengurus tetapan sistem. Dalam kes ini, matriks 3x4 butang dengan nombor 0...9 dan simbol “*” dan “#” sudah memadai. Papan kekunci sedemikian akan memerlukan 3+4=7 lagi barisan I/O mikropengawal. Perkara terakhir yang anda perlu ada dalam sistem ialah paparan kecil untuk melihat log laluan dan mengkonfigurasi sistem. Julat paparan murah yang dihasilkan pada masa ini agak luas, tetapi dalam kes kami output grafik tidak diperlukan, jadi LCD adalah mencukupi untuk memaparkan maklumat abjad angka. Yang paling popular hari ini ialah LCD berdasarkan pengawal HITACHI HD44780 [4]. Mereka dibezakan dengan kemudahan sambungan dan kos rendah. Data dihantar melalui antara muka lapan atau empat bit (bergantung pada mod yang digunakan), ditambah tiga lagi talian I/O diperlukan untuk menghantar isyarat kawalan. Untuk menyimpan talian I/O, antara muka empat bit telah dipilih, oleh itu, jumlah bilangan baris I/O untuk kawalan LCD juga adalah 7. Ini melengkapkan pemilihan persisian. Kini anda perlu memilih mikropengawal yang boleh mengawal semua peranti di atas dengan berkesan. Mula-mula, mari kita hitung bilangan baris input/output yang diperlukan yang akan digunakan dalam sistem (Jadual 1). Keputusan yang diperolehi bukanlah muktamad, kerana pada masa hadapan (semasa operasi) baris input/output tambahan mungkin diperlukan, contohnya, untuk menyambungkan LED, kepala pembesar suara dinamik, dsb. Oleh itu, adalah dinasihatkan untuk memilih mikropengawal dengan lebih banyak input / garis keluaran daripada yang dinyatakan dalam jadual 1. Dari sudut pengaturcaraan, mikropengawal yang melaksanakan apa yang dipanggil teknologi ISP (IP-System Programming - pengaturcaraan dalam litar) sangat menarik. Untuk memuatkan kod program baharu ke dalam mikropengawal, ia tidak perlu dikeluarkan dari papan: pengaturcaraan dilakukan dalam litar melalui pin khas. Selain itu, untuk beberapa pengubahsuaian anda tidak memerlukan pengaturcara - "perisian tegar" dijalankan melalui port selari komputer. Sememangnya, penyelesaian yang paling boleh diterima ialah menggunakan mikropengawal sedemikian dalam sistem, yang tidak memerlukan dana tambahan untuk perisian tegar. Untuk melaksanakan tugas ini, mikropengawal AT89S8252 telah dipilih, yang serasi sepenuhnya dalam kod dan susun atur pin dengan mikropengawal keluarga 8051. Ia mempunyai 8 KB memori program kilat boleh atur cara dalam litar dengan sumber 1000 kitaran tulis semula, 2 KB daripada EEPROM terbina dalam (memori baca sahaja yang boleh diprogramkan secara elektrik), 256 bait RAM, 32 talian I/O, tiga pemasa, pemasa pengawas, perkakasan menyokong antara muka SPI. Kekerapan jam - Kira-kira...24 MHz (satu kitaran mesin dilakukan dalam 12 kitaran jam, oleh itu, prestasi maksimum ialah dua juta operasi sesaat). Pilihan mikropengawal tertentu ini adalah wajar seperti berikut. Pengawal mikro siri 8051 mempunyai set arahan yang luas, yang menjadikannya mudah untuk memprogram pada tahap rendah (contohnya, operasi pada bit individu disokong [5]). Teknologi ISP mempercepatkan penyahpepijatan dan memudahkan pembangunan; sokongan perkakasan untuk antara muka SPI membolehkan anda menyambungkan memori kilat siri AT45 yang dipilih tanpa pengaturcaraan tambahan protokol ini. 2 KB EEPROM terbina dalam boleh digunakan untuk menyimpan maklumat, keselamatannya mesti dipastikan tanpa mengira kehadiran kuasa luaran. 32 talian I/O sudah cukup untuk melaksanakan sistem yang diterangkan. Kehadiran pemasa membolehkan pelaksanaan fleksibel protokol 1-Wayar, kerana ia memerlukan kelewatan masa yang tepat. Pemasa pengawas memastikan kefungsian sistem apabila terdedah kepada gangguan elektromagnet yang kuat, yang boleh menyebabkan pengawal membeku. Pemasa pengawas ialah subsistem bebas dalam mikropengawal yang menyemak keadaan satu bit dalam daftar status mikropemproses setiap kitaran jam N. Jika bit ini ditetapkan, mikropengawal ditetapkan semula kepada keadaan asalnya, dan jika ia ditetapkan semula, ia ditetapkan kepada 1 dan ujian berhenti. Sehubungan itu, program yang dilaksanakan mesti menetapkan semula bit ini pada selang waktu tidak lebih daripada N kitaran jam. Jika ini tidak berlaku, ini bermakna pengendalian mikropengawal telah terganggu oleh gangguan luaran dan apabila pemasa pengawas dicetuskan seterusnya, mikropengawal akan ditetapkan semula kepada keadaan asalnya. Sebelum beralih kepada pelaksanaan perisian, mari kita beralih sekali lagi kepada seni bina dari sudut pandangan keberkesanannya dalam melaksanakan fungsi segera sistem. Sistem yang direka bentuk akan menyokong dua cara memasukkan maklumat: menggunakan papan kekunci (arahan untuk menyediakan sistem, melihat log pas) dan melalui pad kenalan antara muka 1-Wayar. Memandangkan tujuan utama sistem ialah kawalan capaian, masa untuk mengundi pad 1-Wayar hendaklah melebihi masa yang diperuntukkan untuk mengundi papan kekunci. Memandangkan spesifikasi protokol 1-Wire, anda boleh melihat bahawa dua situasi asas yang berbeza mungkin: yang pertama, apabila terdapat hanya satu peranti pada talian, dan yang kedua, apabila terdapat lebih banyak daripada mereka. Untuk menentukan bilangan peranti pada talian dan pengecamnya, terdapat mekanisme carian khas yang dinyatakan dalam spesifikasi protokol 1-Wire. Ia terdiri daripada penyaringan berurutan peranti pada talian dan pengimbasan sedikit demi sedikit ruang alamat (ruang pengecam "Butang". Selain itu, prosedur ini mesti dilakukan semula selepas setiap kitaran komunikasi dengan peranti yang disambungkan (sejak komposisinya boleh berubah). Seperti yang telah disebutkan, sistem kami merancang untuk mempunyai satu talian 1-Wayar, yang akan digunakan untuk menyambung kedua-dua jam masa nyata dan kunci pengenalan, dan jam masa nyata, yang merupakan sebahagian daripada sistem, akan disambungkan pada sepanjang masa. Ini bermakna kita mempunyai situasi di mana terdapat lebih daripada satu peranti pada talian. Dengan mengambil kira perkara di atas dan kehadiran talian percuma port input/output, adalah munasabah untuk memperuntukkan talian dalam sistem untuk protokol 1-Wire: jam masa nyata disambungkan secara kekal kepada salah satu daripadanya, dan yang kedua ialah digunakan hanya untuk mempersembahkan pengecam pengguna. Konfigurasi ini memastikan bahawa terdapat hanya satu peranti pada setiap baris pada bila-bila masa, sangat memudahkan pelaksanaan sistem, mengurangkan masa tindak balas dan menjimatkan ruang memori program. Jam masa nyata DS1994 mempunyai pembilang lima bait yang meningkat 256 kali sesaat. Apabila ia melimpah, kira detik diteruskan dari sifar. 5 bait sudah cukup untuk 136 tahun operasi sebelum kaunter melimpah. Disebabkan oleh fakta bahawa pengguna perlu memaparkan masa dalam format yang sesuai untuknya, dan ia juga perlu untuk menyediakan keupayaan untuk menetapkan jam, sistem terbenam mesti menyokong penukaran tarikh dan masa daripada format dalaman kepada format teks dan sebaliknya. Tarikh yang dipilih sebagai titik rujukan ialah 01.01.2000/00/00 00:2136:XNUMX, yang menjamin jam dan operasi pembalakan sehingga kira-kira XNUMX. Dan satu lagi perkara yang perlu anda perhatikan. Kami bersetuju bahawa log pas akan disimpan dalam memori kilat luaran, tetapi kami masih perlu menentukan tempat untuk menyimpan senarai hak akses. Apabila menerangkan mikropengawal, EEPROM 2 KB terbina dalam telah disebutkan. Ia sesuai untuk tujuan ini, kerana senarai akses lebih berharga daripada log pas, dan jika, sebagai contoh, yang terakhir boleh dialih keluar (secara fizikal) daripada sistem dengan mengeluarkan cip yang sepadan dari papan, maka senarai hak capaian hanya boleh dialih keluar dengan mengalih keluar mikropengawal, tanpanya sistem tidak boleh beroperasi. Dalam sistem yang diterangkan, jumlah memori yang ditentukan sudah cukup untuk menampung 168 akaun, iaitu, bilangan maksimum pengguna ialah 168. Log pas dilaksanakan sebagai senarai pekeliling, dan apabila ia melimpah, entri tertua akan dipadamkan. Saiz satu entri log ialah 12 bait (4 bait untuk masa transit dan 8 bait untuk pengecam). Ini bermakna bahawa memori log akan mencukupi untuk log kira-kira 45 pas sebelum limpahan log pertama berlaku. Semasa proses pembangunan, komponen lain telah ditambahkan ke sistem - suis buluh pada pintu. Ia adalah perlu supaya sistem dapat menentukan sama ada pintu sedang dibuka atau ditutup, serta untuk mematikan sementara kuasa ke elektromagnet. Algoritma berikut untuk membuka pintu dilaksanakan: voltan digunakan pada gegelung solenoid, dan sistem menunggu sehingga pintu dibuka atau sehingga kelewatan masa 5 s telah tamat, selepas itu bekalan voltan berhenti. Gambarajah skematik peranti yang dibangunkan ditunjukkan dalam rajah. Seperti yang anda lihat, sebagai tambahan kepada mikropengawal DD1, ia mengandungi cip memori Flash DS1, papan kekunci 12-butang SB1 - SB12 dan LCD HG1. Kekerapan jam mikropengawal ditetapkan oleh resonator kuarza ZQ1 pada 24 MHz. Port P0 digunakan untuk memasukkan maklumat daripada jam iButton (disambungkan ke soket X1) dan pengecam (disambungkan ke X2), mengawal geganti (melalui kunci transistor) yang membekalkan kuasa kepada elektromagnet kunci, LED HL1, yang memberi isyarat pintu dibuka, dan daftarkan keadaan ditetapkan pada suis buluhnya. Maklumat ditukar dengan cip memori Flash DS1 melalui port P1. Papan kekunci disediakan oleh port P2, penunjuk HG1 ialah port P5. Peranti ini dikuasakan oleh voltan stabil 16 V. Untuk menggerakkan geganti yang mengawal operasi elektromagnet, sumber voltan 20...XNUMX V diperlukan. Peranti dipasang pada papan dengan dimensi yang sesuai. Untuk menyambungkan mikropengawal DD1 dan cip memori DS1, adalah dinasihatkan untuk menggunakan soket yang sesuai. Papan yang dipasang diletakkan di dalam bekas plastik atau logam, dan papan kekunci dan paparan LCD diletakkan pada panel hadapan. Peranti dipasang di dalam kawasan terlindung. Kod perisian tegar mikropengawal dan kod sumber program Selepas menghidupkan peranti, senarai item menu yang ditunjukkan dalam jadual dipaparkan pada LCD. 2. Memandangkan penunjuk hanya mempunyai dua baris, kekunci “#” dan “*” digunakan untuk menatal secara mendatar. Untuk melaksanakan mana-mana arahan ini, keistimewaan pentadbir diperlukan, dan selepas memilih item menu dengan menekan kekunci yang sesuai, anda mesti membentangkan kunci dengan hak pentadbir, jika tidak perintah yang diminta diabaikan. Semasa bekerja pada peranti, masalah timbul pada pelbagai peringkat pembangunan. Saya ingin mengambil perhatian perkara berikut. Bahagian perkakasan. Mana-mana mikropemproses mempunyai nilai maksimum yang dibenarkan untuk arus input dan output port input/output. Sebagai contoh, jika anda perlu menggunakan LED dalam sistem, maka kebanyakan mikropengawal tidak akan dapat membekalkan arus yang diperlukan ke port I/O jika keadaan aktif adalah log. 1. Dalam kes sedemikian, adalah perlu untuk menjadikan keadaan log aktif. 0 dengan menyambungkan anod LED ke bas kuasa. Kita juga tidak boleh lupa tentang mengehadkan arus dengan menyambungkan perintang dengan rintangan kira-kira 2 kOhm secara bersiri dengan beban. Jika anda masih perlu menggunakan log. 1 sebagai keadaan aktif, dan beban terlalu besar, maka suis transistor harus digunakan untuk menghidupkan beban. Apabila melaksanakan bas 1-Wayar, adalah perlu untuk "menarik" bas data melalui perintang kepada voltan bekalan. Ini adalah perlu supaya semasa peralihan dari keadaan rendah ke keadaan tinggi, garisan cepat mencapai ambang pensuisan ke log. 1. Nilai perintang hendaklah dalam lingkungan 4,7...5,1 kOhm. Jika wayar cukup panjang (beberapa meter), rintangan perintang boleh dikurangkan. Kita tidak sepatutnya melupakan arus maksimum yang boleh digunakan oleh semua peranti yang disambungkan ke port mikropengawal. Ia adalah perlu untuk mempertimbangkan kes apabila kesemuanya berada dalam keadaan aktif dan mengira sama ada mikropengawal boleh memberikan kuasa output tersebut. Jika ia melebihi nilai maksimum yang dibenarkan, peranti tidak akan dihidupkan pada masa yang betul. Bahagian perisian. Kebanyakan proses pembangunan bergantung pada pengkompil yang digunakan, sejauh mana ia mengoptimumkan kod dan meletakkannya dalam ingatan, sama ada ia membenarkan anda menyahpepijat atur cara pada emulator anda sendiri, dan juga menjejaki masa pelaksanaan program, dsb. Jika program menggunakan pemalar rentetan, maka, kerana jumlah RAM yang terhad, perlu menggunakan arahan khas untuk menunjukkan kepada pengkompil bahawa ia harus ditempatkan di kawasan memori program. Sebagai contoh, untuk pengkompil Keil uVision ia kelihatan seperti ini: 'const char code sz[6] = "Hello"', di mana "kod" pengubah suai memberitahu pengkompil bahawa rentetan harus diletakkan dalam memori program. Untuk operasi kritikal masa, lebih baik menggunakan pemasa, kerana dalam kes ini pengikatan kepada kekerapan jam berlaku dengan memperkenalkan satu pemalar, yang boleh diselaraskan dengan mudah jika frekuensi berubah. Anda tidak seharusnya membuat fungsi dengan sejumlah besar parameter yang diluluskan, kerana apabila ia dipanggil, pemindahan berlaku melalui daftar (dan apabila terdapat terlalu banyak parameter, melalui kawasan tetap dalam ingatan). Setiap panggilan sedemikian memerlukan kod tambahan untuk menyimpan nilai daftar sebelum memanggil fungsi dan untuk mendapatkan semula parameter tersebut dalam fungsi. Penyelesaian mungkin menggunakan pembolehubah global, tetapi berhati-hati jika fungsi yang dipanggil seterusnya memanggil fungsi yang menggunakan parameter yang sama. Jika anda menggunakan bahasa peringkat tinggi untuk pengaturcaraan, adalah berguna untuk menilai kod pemasangan yang terhasil dari sudut pandangan optimum (jika anda berhadapan dengan masalah memori rendah). Penyusun moden menjana kod pemasangan yang agak padat dan pantas apabila menulis program dalam bahasa peringkat tinggi, jadi tidak perlu menulis semua kod dalam bahasa himpunan. Walau bagaimanapun, penggunaan pemasang adalah munasabah dalam prosedur kritikal masa (dari segi kelajuan dan ketepatan). Sememangnya, sistem yang diterangkan dalam artikel boleh diperbaiki dalam beberapa arah. Contohnya, tambahkan sekatan akses berdasarkan masa dalam sehari, log percubaan akses tanpa kebenaran (persembahan pengecam tanpa hak akses), tambah sokongan untuk kawalan akses kepada objek kedua (ini akan memerlukan tambahan tiga baris input/output), walau bagaimanapun, seperti yang anda tahu, tiada had untuk kesempurnaan, tetapi jumlah memori program dalam mikropengawal adalah terhad. Matlamat utama artikel adalah untuk menunjukkan, menggunakan contoh khusus, kitaran penuh mencipta sistem terbenam, serta memberi beberapa nasihat praktikal tentang menyelesaikan masalah yang mungkin dihadapi semasa pembangunannya. Kesusasteraan
Pengarang: A. Rantsevich, Minsk Lihat artikel lain bahagian Pengawal mikro. Baca dan tulis berguna komen pada artikel ini. Berita terkini sains dan teknologi, elektronik baharu: Mesin untuk menipis bunga di taman
02.05.2024 Mikroskop Inframerah Lanjutan
02.05.2024 Perangkap udara untuk serangga
01.05.2024
Berita menarik lain: ▪ Teres Kelas Samsung Full Sun Neo QLED 4K TV Luar Kalis Air ▪ Mengecas peranti boleh pakai daripada nafas pengguna ▪ Gentian lingkaran pada cip mikro ▪ Pendengaran yang hebat untuk manusia ▪ Cip logik pintu tunggal yang kecil Suapan berita sains dan teknologi, elektronik baharu
Bahan-bahan menarik Perpustakaan Teknikal Percuma: ▪ bahagian laman web Bahan Elektroteknikal. Pemilihan artikel ▪ pasal Tanah Terjanji. Ungkapan popular ▪ artikel Apa itu mawar angin? Jawapan terperinci ▪ Artikel Merchandiser. Deskripsi kerja ▪ artikel Transformasi dalam kotak mancis. Fokus rahsia
Tinggalkan komen anda pada artikel ini: Semua bahasa halaman ini Laman utama | Perpustakaan | artikel | Peta Laman | Ulasan laman web www.diagram.com.ua |