
Kami menyimpulkan epik kami dengan terjemahan dokumentasi hak milik Cypress tentang UDB. Masalah terbaru - tentang penanganan UDB - ada di depan Anda.
Isi umum dari siklus “UDB. Apa ini? "
Bagian 1. Pendahuluan. Pld.Bagian 2. Datapath.Bagian 3. Datapath FIFO.Bagian 4. Datapath ALU.Bagian 5. Datapath. Hal-hal kecil yang bermanfaat.Bagian 6. Modul manajemen dan status.Bagian 7. Pengaturan waktu dan reset modul kontrolBagian 8. Mengatasi UDB. (Artikel saat ini)
21.3.5 Mengatasi UDB
Pasangan UDB memiliki tiga ruang alamat unik:
- Register kerja 8-bit - pengendali bus yang memiliki akses hanya 8 bit data per siklus bus dapat menggunakan ruang alamat ini untuk membaca atau menulis register kerja UDB. Ini termasuk register yang berinteraksi CPU dan DMA selama operasi normal.
- Register kerja 16-bit - Pengontrol bus 16-bit, seperti DMA atau PSoC 5LP Cortex-M3, dapat mengakses 16 bit dalam satu siklus bus untuk menyediakan transfer data ke fungsi yang membutuhkan 16 bit atau lebih. Terlepas dari kenyataan bahwa ruang alamat ini tidak terikat ke area di mana ruang 8-bit diikat, ia memiliki akses ke register yang sama, hanya untuk pasangan pada suatu waktu.
- Register konfigurasi 8- atau 16-bit - register ini mengkonfigurasi UDB untuk menjalankan suatu fungsi. Setelah konfigurasi, register biasanya diatur ke keadaan statis selama operasi UDB. Register ini mempertahankan statusnya setelah mode tidur.
Catatan PenerjemahEntah bagaimana semuanya dirumuskan dengan rumit. Menurut pendapat saya, untuk dua poin pertama lebih mudah untuk memperkenalkan konsep metode pengalamatan dengan kedalaman bit yang berbeda dari register kerja. Melalui register kerja 8-bit dan 16-bit masing-masing. Jika Anda bingung saat membaca paragraf ini, cobalah untuk mempertimbangkan teks dengan cara ini. Jendela berbeda di ruang alamat CPU, menyediakan pengalamatan yang sama melalui register bit yang bekerja. Itu saja.21.3.5.1 Ruang Alamat Daftar Kerja
Register kerja digunakan selama operasi normal dan termasuk baterai, register data, FIFO, register status dan kontrol, register penumpukan topeng, dan register kontrol bantu.
Gambar 21-43 menunjukkan peta register dari satu UDB.
Di sebelah kanan dalam Gambar 21-43 adalah alamat 16-bit yang selalu genap. Dalam hal ini, nomor UDB memiliki dimensi 5 bit, bukan 4, karena lokasi genap alamat. 4 bit tinggi masih menetapkan nomor register.
Gambar 21-43. Register bekerja UDB.Akses register kerja 8-bitDalam mode ini, akses ke semua register UDB adalah melalui alamat yang diluruskan pada batas byte. Dalam mode akses register 8-bit, seperti yang ditunjukkan pada Gambar 21-44, semua byte data yang ditulis dalam UDB diselaraskan dengan byte rendah dari bus UDB 16-bit.
Dalam mode ini, akses kapan saja hanya dapat diakses hingga satu byte.
Gambar 21-44. Akses ke register kerja 8-bit.Ruang Alamat Registrasi 16-Bit BekerjaRuang alamat 16-bit yang dirancang untuk akses DMA yang efisien dan menyediakan akses CPU terprogram dalam prosesor yang mendukungnya, seperti Cortex-M3 di PSoC 5LP. Ada dua mode akses ke register 16-bit: mode default dan mode concatenation. Seperti yang ditunjukkan pada Gambar 21-45, dalam mode default ia mengakses register yang ditentukan dalam UDB 'i' melalui byte rendah dan ke register yang sama di UDB 'i + 1' melalui byte tinggi. Ini membuat pemrosesan data 16-bit menjadi efisien dalam UDB yang berdekatan (sesuai urutan alamat) yang dikonfigurasi sebagai fungsi 16-bit.
Gambar 21-45. Akses ke register kerja 16-bit dalam mode default.Dalam mode penggabungan, register dari satu UDB digabungkan untuk membentuk register 16-bit, seperti yang ditunjukkan pada Gambar 21-46. Dalam mode ini, bus data 16-bit dari array UDB harus mengakses sepasang register dalam UDB dalam format yang ditunjukkan pada gambar. Misalnya, ketika mengakses register A0, akses ke A0 melalui byte rendah dan ke A1 melalui byte tinggi akan benar-benar terjadi.
Gambar 21-46. Akses ke register kerja 16-bit dalam mode gabunganPenggunaan DMA dibatasi oleh kedalaman bit register kerja 16-bit. Itu tidak cukup ketika bekerja dengan fungsi yang lebih besar dari 16 bit. Ini disebabkan oleh hamparan alamat, seperti yang ditunjukkan pada
tabel 21-25.
Tabel 21-25. Ruang alamat yang dioptimalkan untuk fungsi UDB 16-bit.
Ketika DMA mentransmisikan 16 bit ke alamat 0, byte rendah dan tinggi masing-masing ditulis ke UDB0 dan UDB1. Dalam transmisi DMA 16-bit berikutnya ke alamat 2, nilai dalam UDB1 ditimpa oleh byte rendah dari transmisi ini.
Untuk mencegah masalah yang terkait dengan organisasi memori tersebut, disarankan untuk fungsi yang kedalaman bitnya lebih dari 16 bit untuk memulai proses DMA untuk area dengan register kerja 8-bit.
21.3.5.2 Ruang Alamat Konfigurasi Konfigurasi
Konfigurasi dilakukan di tingkat pasangan UDB. Sepasang UDB terdiri dari dua UDB dan saluran pelacak terkait, seperti yang ditunjukkan pada Gambar 21-47.

Gambar 21-47. Skema alamat untuk mengonfigurasi pasangan UDB.
21.3.5.3 Ruang Alamat Konfigurasi UDB
Gambar 21-48 menunjukkan diagram konfigurasi alamat UDB tertentu. Seperti yang Anda lihat, ruang konfigurasi ini diduplikasi pada kedua UDB berpasangan. Secara total, 128 byte (7 bit alamat) dicadangkan untuk setiap konfigurasi UDB, yang dibagi menjadi segmen 16-bit. Perlu dicatat bahwa akses 16-bit ke batas ganjil tidak didukung. Membaca selalu menghasilkan 16 bit dalam ruang konfigurasi, dan byte yang tidak perlu dapat diabaikan.

Gambar 21-48. Ruang alamat konfigurasi UDB.
21.3.5.4 Ruang Alamat Konfigurasi Routing
Konfigurasi jejak UDB terdiri dari bit RAM tertanam untuk mengontrol status sakelar gateway, segmentasi, dan buffer input / output.
21.3.6 Koherensi Akses Bus Sistem
Register UDB memiliki mode akses ganda:
- akses ke bus sistem, di mana CPU atau DMA membaca atau menulis ke register UDB;
- Akses internal UDB, di mana fungsi UDB memperbarui atau menggunakan konten register
.
21.3.6.1 Akses Bus Sistem Simultan
Tabel di bawah ini berisi daftar kemungkinan peristiwa akses bersamaan dan perilaku yang diperlukan.
Tabel 21-26. Akses simultan ke bus sistem.
a. Register kapak dapat dibaca dengan aman menggunakan fungsi penangkapan perangkat lunak FIFO.
b. Dalam register Dx, FIFO hanya dapat ditulis secara dinamis. Dalam mode ini, pembacaan langsung register Dx tidak tersedia.
c. Register CNT hanya dapat dibaca dengan aman ketika dinonaktifkan. Alternatif untuk membaca nilai CNT secara dinamis adalah melacak output ke register SC (dalam mode transparan).
d. Bit register MC dapat dilacak ke input register status (dalam mode transparan) untuk pembacaan yang aman.
21.3.6.2 Akses Akumulator Koheren (Bacaan dan Tulisan Atom)
Baterai UDB adalah tujuan utama dari pemrosesan data. Oleh karena itu, membaca register ini secara langsung selama operasi normal memberikan hasil yang tidak ditentukan, seperti yang ditunjukkan pada tabel di atas. Namun, ada dukungan bawaan untuk pembacaan atom dalam bentuk penangkapan program yang diimplementasikan pada blok yang terhubung dalam rantai. Dalam model penggunaan seperti itu, membaca data transfer baterai penting terakhir dari semua blok yang terhubung dalam rantai ke FIFO terkait. Rekaman atom dalam FIFO dapat diimplementasikan secara terprogram. Operasi penulisan individual dapat dilakukan pada input FIFO, dan kemudian sinyal status FIFO yang menjadi tempat rekaman terakhir dapat diteruskan ke semua blok yang ditautkan, sedangkan data FIFO akan ditransfer ke register Dx atau Ax.
Kata penutup dari penerjemah
Siklus terjemahan ini dibuat sebagai tanggapan terhadap komentar pada artikel , di mana ia diusulkan pertama untuk menjelaskan secara singkat apa itu UDB. Sekarang sudah jelas bahwa untuk jawaban singkat perlu mengutip setidaknya setengah dari materi yang disajikan di sini, jika tidak jawabannya masih belum lengkap. Tetapi sekarang semua materi diterjemahkan dan disusun. Tugas selesai.
Sementara pekerjaan sedang berlangsung, kami juga menarik perhatian ke blok PSoC lain yang menarik, yang tidak diketahui siapa pun, tetapi penuh dengan kekuatan yang luar biasa. Ini adalah DFB, Blok Filter Digital. Benar, menakutkan untuk bergegas ke dalam terjemahan. Dari terjemahan tentang UDB jelas bahwa satu dokumentasi tidak cukup, oh, latihan diperlukan. Masalahnya adalah bahwa ada beberapa contoh yang sudah jadi tentang UDB, tetapi ada. Belum dimungkinkan untuk menemukan sesuatu yang berharga dari contoh-contoh di DFB (Cypress sendiri membuat filter digital dalam bentuk kotak hitam, itu berfungsi, tetapi tidak jelas caranya). Terjemahan tanpa contoh tidak masuk akal. Oleh karena itu, dengan memanfaatkan kesempatan ini, kami menarik perhatian pembaca pada blok ini. Mungkin seseorang di komentar akan memberikan tautan ke contoh yang baik. Jika kami berhasil menangani blok ini, akan ada kemungkinan untuk membuat siklus terjemahan dan artikel praktis di dalamnya. Sementara itu, itu saja.