Програмисти и програмиране на микроконтролери
Радиолюбителските дизайни на микроконтролери, които са станали често срещани днес, завладяват с простотата на схемата и широките възможности. Въпреки това, преди сглобеното устройство да работи, микроконтролерът, за разлика от традиционните интегрални схеми, произведени от завода „готови за употреба“, трябва да бъде „обучен“. За да направите това, трябва да въведете програма в нейната памет - последователност от команди, изпълняващи коя микроконтролер ще направи всичко, което се изисква.
Програмата обикновено се компилира паралелно с разработването на схемата и дизайна на устройството и накрая се отстранява чрез тестване на готовия продукт. Няма да се задълбочаваме в многото проблеми, които възникват с това. Нашата задача е да научим как да въведем готова програма в микроконтролера.
Какво ще запишем
Обикновено в описанието на устройството програмата, според която трябва да работи микроконтролерът, е представена с таблица с кодове - те трябва да бъдат въведени в паметта на микроконтролера. Ето фрагмент от такава таблица в така наречения HEX-формат (Таблица 1):
маса 1
: 1000C000A60C2618652805126728051600003F2093
: 1000D000A60C26186D2805126F28051600003F2073
: 1000E000A60C2618752805127728051600003F2053
: 1000F000A60C26187D2805127F28051600003F2033
: 10010000A60C2618852805128728051600003F2012
: 100110000000000000000000000005163F203F2006
: 10012000000000000000000000000800FF3FFF3F4B
Спомнете си, че микроконтролерите работят в двоична бройна система, като разграничават само две състояния (0 и 1) на всеки от техните изходи, множество клетки на паметта и други вътрешни възли. Повечето бинарни клетки-битове за бързина и удобство при извършване на различни операции върху тяхното съдържание се комбинират в групи - осем битови байта и по-дълги думи. В публикуваните таблици, само за удобство на човешкото възприятие, те поставят не двоични, а шестнадесетични изображения на програмни кодове. На всеки четири двоични цифри се заменят с една шестнадесетична:
0000 - 0 0100 - 4 1000 - 8 1100 - С
0001 - 1 0101 - 5 1001 - 9 1101 - D
0010 - 2 0110 - 6 1010 - A 1110 - E
0011 - 3 0111 - 7 1011 - B 1111 - F
Програмист = адаптер + програма за управление
Преди да продължим историята, нека разберем малко в терминологията. Думата „програмист“ се използва днес поне в две значения. Първо, това е устройство, с което компютър (източник на данни) е свързан към микросхема, в която тези данни трябва да бъдат въведени. По-правилно е това устройство да се нарича адаптер за програмиране. На второ място, програмистът е програма, при която компютърът генерира всички сигнали, необходими за запис на данни в микроконтролера на изходите на един от неговите портове (този, към който е свързан адаптерът).
Объркването в понятията често води до взаимно недоразумение в споровете кой програмист е по-добър. Човек твърди, че програмист А може да бъде сглобен за един ден. Второто е, че програмистът B е по-удобен за използване. Всъщност адаптер А е много прост, но придружаващата програма А е неудобна. Адаптер B, който е труден за производство, работи под контрола на програма B, оборудвана с много сервизни функции. Така че и двамата са прави. Но не е необичайно спорещите да не знаят, че адаптер А може да работи с програма Б и обратно. Именно тази ситуация ще бъде разгледана по-долу.