Раздел: Документация
0 ... 23 24 25 26 27 28 29 ... 55 wulle(fRI); Гbyte=SBUF; RI = 0; return(byte); } /********************** void main(void) { unsigned char c,lenl,lenh,a[80]; int i,l; initrs О; START: REN=1; lenl=inbyte(); lenh=inbyte(); l=lenh*256+lenl; for(i»0;i<l;i++){ a[i]=inbyte() ; } REN=0; for(i»0;i<l;i++){ outbyte(a[i] ) ; REN=1; c=inbyte(); if (c»=0x40) goto START; E: goto E; } 7. Применение интерфейса RS232 для загрузки памяти программ микроконтроллера 7.1. Предварительные замечания Вообще говоря, выражение "загрузка памяти программ микроконтроллера" не совсем удачно; существует еще термин "программирование микроконтроллера", который сейчас часто применяют. Однако мы умышленно не стали использовать в заглавии термин "программирование", так как он в последнее время стал чаще применяться именно как обозначение "загрузки внутренней памяти программ" микроконтроллера. Между тем, как известно, микроконтроллер может работать по программе, которая загружена не только в его внутреннюю память программ (иногда такой памяти программ микроконтроллер не имеет вовсе), но и во внешнюю. Подавляющее число микроконтроллеров (у которых присутствует внутренняя память программ довольно большого объема) оснащены аппаратными средствами, позволяющими управлять внешней памятью программ (точнее — выполнять команды программы, загруженной во внешнюю память). Этот механизм широко известен: микроконтроллер выставляет в порт р2 старший байт адреса программы, в порт рО - младший байт адреса, затем "защелкивает" младший байт адреса в каком-либо 8-разрядном регистре (например, KP1564HP33-SN75HCT573) с помощью сигнала ALE (Address Latch Enable - разрешение защелкивания адреса). Порт р2 напрямую подключается к адресным линиям старшего байта адреса микросхемы памяти с загруженной программой, выход регистра — к линиям младшего байта адреса. Затем на микросхему памяти подается сигнал PSEN (Programm Store ENable - разрешение чтения памяти), байт программы (с соответствующей командой) выставляется микросхемой памяти на линиях данных порта рО, вводится в микроконтроллер по этому же порту рО (который сигналом ALE переводится в высокоимпеданс-ное состояние) и затем выполняется. Этот механизм позволяет адресоваться к внешней памяти программ объемом 64 кбайт. Некоторые современные микроконтроллеры оснащены механизмом, позволяющим адресоваться к большему объему внешней памяти программ (до 16 Мбайт) с помощью еще двух байт адреса (например, ADUC8XX). 82 Необходимо отметить, что внешняя память программ может быть организована с применением как микросхем ПЗУ (ROM), так и микросхем ОЗУ (RAM). В первом случае предварительно запрограммированную с помощью программатора микросхему ПЗУ вставляют в панельку платы (или впаивают в нее) с микроконтроллером. Во втором - микросхема ОЗУ впаена в плату. Так вот - загрузить программу в эту микросхему ОЗУ (при наличии некоторых небольших дополнительных аппаратных средств) можно, применив интерфейс RS232. Недостатки применения ПЗУ известны: 1) программу невозможно защитить от несанкционированного доступа, так как ее легко считать и скопировать, 2) программу нельзя оперативно изменить. Достоинства ПЗУ - минимум аппаратных средств. Недостатки применения ОЗУ - наличие дополнительных аппаратных и программных средств. Достоинства ОЗУ: 1) возможность оперативного изменения программы, 2) несанкционированный доступ к программе значительно затруднен в связи с тем, что при выключении питания информация в ОЗУ теряется. Помимо загрузки внешней памяти программ в микроконтроллер, как уже говорилось, интерфейс RS232 можно использовать для загрузки внутренней памяти программ микроконтроллера или, как в настоящее время принято говорить, - его программирования. Программирование микроконтроллера возможно по нескольким последовательным интерфейсам: SPI (например, микроконтроллер AT89S8252 производства фирмы ATMEL), его разновидность JTAG (микроконтроллеры C8051FXXX производства фирмы CYGNAL, VERSA DSP производства фирмы Goal Semiconductor inc.), 12С (микроконтроллер VERSA DSP), а также по рассматриваемому здесь RS232 (микроконтроллеры DS5000(T), DS2250(T) производства фирмы Dallas Semiconductor, ADUC8XX производства фирмы Analog Devices, MSCT210YX производства фирмы Texas Instruments). Поскольку по сравнению с программированием по параллельному интерфейсу программирование по последовательному интерфейсу требует от микроконтроллера минимального числа выводов, данная операция применима к микроконтроллеру, расположенному на плате готового изделия. В связи с этим эту операцию в настоящее время называют еще "программированием в системе" (in-system-programming). Кстати, упомянутую выше загрузку внешней памяти программ (ОЗУ) микроконтроллера с помощью интерфейса RS232 также можно отнести к программированию в системе. Программирование в системе имеет два неоспоримых преимущества перед традиционным программированием микроконтроллера с помощью программатора. Первое - быстрое написание 6*83 0 ... 23 24 25 26 27 28 29 ... 55
|