Bir oz urish - Bit banging

Yilda kompyuter muhandisligi va elektrotexnika, ozgina urish ning har qanday usuli uchun jargon ma'lumotlar uzatish uzatilgan signallarni ishlab chiqarish yoki qabul qilingan signallarni qayta ishlash uchun maxsus apparat o'rnini bosuvchi dasturiy ta'minotdan foydalanadi. Dastur to'g'ridan-to'g'ri o'rnatadi va namunalar shtatlari GPIOlar (masalan, a. ustidagi pinlar mikrokontroller ), va barcha vaqt talablariga javob berish va signallarning ketma-ket ketma-ketligini ta'minlash uchun javobgardir. Bitlarni urishdan farqli o'laroq, maxsus jihozlar (masalan, UART, SPI interfeysi ) ushbu talablarni qondiradi va agar kerak bo'lsa, beradi ma'lumotlar buferi dasturiy ta'minotning vaqt talablarini yumshatish. Bitlarni portlatish juda arzon narxlarda amalga oshirilishi mumkin va odatda ishlatiladi o'rnatilgan tizimlar.[1]

Bitni zarb qilish qurilmaga turli xil protokollarni minimal darajada yoki hech qanday apparat o'zgarishsiz amalga oshirishga imkon beradi. Ba'zi hollarda, bitni portlatish yangi, tezroq protsessorlar tomonidan amalga oshiriladi, chunki so'nggi apparat standart aloqa protokollari yaratilgan paytdagi qurilmalarga qaraganda ancha tez ishlaydi.

C kodi misoli

Quyidagi C tili kod misoli ma'lumotlar baytini an-ga uzatadi SPI avtobus.

// baytni ketma-ket uzatish, avval MSBbekor send_8bit_serial_data(imzosiz char ma'lumotlar){   int men;   // qurilmani tanlang (faol past)   output_low(SD_CS);   // 7..0 bitlarni yuboring   uchun (men = 0; men < 8; men++)   {       // eng chap tomonni ko'rib chiqing       // bit 1 bo'lsa, satr baland, bit 0 bo'lsa past       agar (ma'lumotlar & 0x80)           chiqish_high(SD_DI);       boshqa           output_low(SD_DI);       // bit qiymatini o'qish kerakligini ko'rsatish uchun soat holatini urib qo'ying       output_low(SD_CLK);       kechikish();       chiqish_yuqori(SD_CLK);       // baytni chapga siljiting, shunda keyingi bit chapda bo'ladi       ma'lumotlar <<= 1;   }   // qurilmani bekor qilish   chiqish_yuqori(SD_CS);}

Mulohazalar

Bitlarni portlashni qo'llash kerakmi yoki yo'qmi degan savol, bir tomondan yuk, ishlash va ishonchlilik, ikkinchidan, apparat alternativasining mavjudligi. Dasturiy ta'minotni taqlid qilish jarayoni maxsus jihozlarni qo'llab-quvvatlashdan ko'ra ko'proq ishlov berish quvvatini sarflaydi. Mikrokontroller ko'p vaqtlarini boshqa vazifalar hisobiga pimlarga yuborish yoki pinlarga yuborish yoki qabul qilish uchun sarflaydi. Ishlab chiqarilgan signal odatda ko'proq narsalarga ega chayqalish yoki nosozliklar, ayniqsa, protsessor aloqa paytida boshqa vazifalarni ham bajarayotgan bo'lsa. Ammo, agar bit-banging dasturi bo'lsa uzmoq signal bilan boshqarilsa, bu juda muhim ahamiyatga ega emas, ayniqsa, masalan, boshqaruv signallari bo'lsa RTS, CTS, yoki DCD mavjud. Dasturiy ta'minotni amalga oshirish, maxsus apparat ta'minoti mavjud bo'lmaganda yoki undan qimmatroq mikrokreditlagichni talab qilganda echim bo'lishi mumkin.

Shuningdek qarang

Adabiyotlar

  1. ^ Predko, Maykl (2000). PICmicro mikrokontrolrlarini dasturlash va sozlash (2-nashr). McGraw-Hill Professional. pp.10 –12. ISBN  978-0-07-136172-9.

Tashqi havolalar

Asenkron ketma-ket (RS-232)
I²C avtobus
SPI avtobusi