ФОРМАТЫ ФАЙЛОВ
Программирование микроконтроллера или ПЗУ практически всегда проходит через стадию сохранения двоичного файла в одном из наиболее распространенных форматов.
Существует три таких формата, два из которых были разработаны производителями микропроцессоров. Самым простым является собственно двоичный формат, в котором байты сохраняются один за другим в форме последовательности. Он воспринимается многими программами, но для него не существует стандартного расширения, которое добавляется к имени файла при его сохранении. Часто используется расширение. bin, но оно не является универсальным. Два другие распространенных формата, созданных компанией Motorola, — это формат S19 (расширение. sl9) и так называемый формат Intel (расширение. hex). В этих форматах данные сохраняются в форме кода ASCII и обычно через каждые 16 байт добавляется контрольная информация (checksum — проверка суммы). Для ее формирования выполняется сложение этих байтов. Результат сложения, превышающий FFH, делится на 256 или 16 (в зависимости от формата) и в соответствующем виде сохраняется в начале или в конце строки. Каждая строка предваряется адресом, по которому байты строки будут располагаться в ЗУ. В этих условиях размер сохраняемого файла во многом зависит от структуры программы. Например, если объем ЗУ равен 8 Кб, то для сохранения 10 байт полезной информации при компактном размещении данных потребуется файл размером 8 Кб в двоичном формате и приблизительно 25 байт в других форматах. В этом случае файл будет содержать адрес, за которым следует 10 байт информации, предназначенной для хранения.
На практике обычно выбирают один из двух более совершенных форматов — скорее, по причине их стандартизации, а не из-за других свойств, которые в конечном итоге обеспечивают лишь незначительную экономию объема памяти при разработке небольших программ.
Рассмотрим представление информации в различных форматах.
Пусть устройство памяти объемом 8 Кб должно содержать по адресу 01 00Н следующие 16 байт:
9В А6 FF В7 04 В7 05 А6 F7 В7 06 11 00 15 00 13
В двоичном формате файл займет 8192 байт, включая 256 (FFH) пустых байтов, после которых размещаются 16 байт данных, и затем опять 7920 пустых байтов.
В формате S19 файл будет записан таким образом:
В кодах ASCII получим последовательность, занимающую в шестнадцатеричной форме 43 байта:
53 31 31 31 33 30 31 30 30 39 42 41 36 46 46 42 37 30 34 42 37 30 35 41 36 46 37 42 37 30 36 31 31 30 30 31 35 30 30 31 33 41 35
Эквивалентная запись в формате Intel имеет вид:
Соответствующая последовательность кодов ASCII в шестнадцатеричной форме займет 42 байта:
31 30 30 31 30 30 30 30 39 42 41 36 46 46 42 37 30 34 42 37 30 35 41 36 46 37 42 37 30 36 31 31 30 30 31 35 30 30 31 33 41 35
ЭНЕРГОНЕЗАВИСИМОЕ ОПЕРАТИВНОЕ ЗАПОМИНАЮЩЕЕ УСТРОЙСТВО
Сохранение данных в устройстве памяти при отключении напряжения питания можно обеспечить путем использования специальных компонентов. В случае применения классических компонентов оперативной памяти тот же результат достижим при организации бесперебойного питания ЗУ.
В первом варианте используются постоянные ЗУ, представляющие собой программируемые устройства, в которых информация стирается не оптическим, а электрическим способом. Недостатками таких ЗУ являются относительная сложность их применения (требуется специальное программное обеспечение, рассматриваемое ниже), довольно большое время доступа, недостаточная емкость наиболее распространенных моделей и высокая стоимость.
Есть микросхемы энергонезависимых ОЗУ, которые в своем несколько увеличенном корпусе содержат статическую память и одну или две батарейки питания. В этом случае основным недостатком также является высокая стоимость и невозможность замены израсходованных батареек. Следует, однако, отметить, что батарейки теоретически имеют очень большой срок службы.
В технической документации указывается, что подобные ЗУ можно монтировать в существующие системы, но в действительности это достаточно рискованно, поскольку в момент снятия напряжения (или при его повторном включении) возможно появление ошибочной записи. Поэтому разумнее использовать классические схемы статических ЗУ на дискретных элементах или (что предпочтительнее) монолитные ИС.
Читать дальше