Методика обеспечения сбоеустойчивости программируемой логической интегральной схемы для ракетно-космического применения

Разработка методики обеспечения сбоеустойчивости при проектировании логики для программируемой логической интегральной схемы. Программное обеспечение на языке Си++. Расчет сверхбольшой интегральной схемы на основе применения кодов хемминга и арифметики.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.08.2016
Размер файла 530,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

"НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

"ВЫСШАЯ ШКОЛА ЭКОНОМИКИ"

Московский институт электроники и математики

Инжиниринг в электронике

по направлению подготовки 11.04.04 Электроника и наноэлектроника

Выпускная квалификационная работа - магистерская диссертация

Методика обеспечения сбоеустойчивости ПЛИС для ракетно-космического применения

Студент И.Н. Костарев

Руководитель В.В. Жаднов

Содержание

Аннотация

  • Введение
  • Глава 1. Разработка схемы ПЛИС, обеспечивающую ее работоспособность при воздействии ТЗЧ
    • 1.1 Описание существующей проблемы сбоев работы ПЛИС
    • 1.2 Источники проблемы сбоев, - ионизирующие излучения
    • 1.3 Результаты воздействия ИИ на интегральные микросхемы
    • 1.4 Зависимость параметров ПЛИС от параметров ИИ
    • 1.5 Критерии сбоеустойчивости
    • 1.6 Математическое описание модели зависимости параметров ПЛИС от параметров ИИ
    • 1.7 Анализ существующих решений сбоеустойчивости ПЛИС
    • 1.8 Постановка задачи на разработку схемы ПЛИС
    • 1.9 Математическое описание разработанной схемы
    • 1.10 Расчет надежности разработанной схемы
    • 1.11 Разработка схемы ПЛИС
  • Глава 2. Разработка программного обеспечения
    • 2.1 Постановка задачи на разработку программного обеспечения
    • 2.2 Разработка состава программы
    • 2.3 Разработка алгоритма программы
    • 2.4 Кодирование и тестирование программы
    • 2.5 Интеграция программы в Actel Libero IDE
  • Глава 3. Методика обеспечения сбоеустойчивости ПЛИС
    • 3.1 Разработка методики обеспечения сбоеустойчивости ПЛИС
    • 3.2 Пример использования методики
  • Заключение
  • Список литературы

Аннотация

В данной работе объектом исследования являются программируемая интегральная схема и ее сбое устойчивость к ионизирующему излучению космического пространства. Цель работы - разработка методики обеспечения сбое устойчивости при проектировании логики для ПЛИС. В процессе работы была изучена методы повышения сбое устойчивости СБИС на основе применения кодов хемминга и модулярной арифметики. Разработано программное обеспечение на языке Си++ на основе библиотеки Qt5 для интеграции метода в Libero IDE. Проведен расчет надежности схемы метода сбое устойчивости и выявлено повышение надежности схемы на ПЛИС. Сделаны рекомендации к применению на основе микросхемы 5577ХС1Т.

Failure Tolerance Methodics of FPGA for Rocket-Space Applications

by

__________ (Student's Name)

Abstract

In this paper, the research object is a programmable integrated circuit and its failure resistance to ionizing space radiation. Purpose - to develop a methodology to ensure the stability of failure in the design logic to the FPGA. In the process, it has been studied methods to improve fault VLSI sustainability through the use of modular arithmetic and Hamming codes. The software is developed in C ++ based Qt5 library for integration method in Libero IDE. Made the calculation of fault resilience circuit reliability and showed an increase reliability circuit on the FPGA. Made recommendations for use on the basis of 5577HS1T chip.

Supervisor: Prof. ______

  • Введение
  • На сегодняшний день существует проблема в отсутствии определенного исполнения специализированных отечественных программируемых микросхем для ракетно-космической электроники. Такими микросхемами являются программируемые логические интегральные схемы с энергонезависимой памятью конфигурации с технологией типа Antifuse(прожигаемой перемычки) или радстойкие Radiation-hardened FPGA высокой степени интеграции.
  • Существует множество зарубежных производителей программируемых логических интегральных микросхем(ПЛИС), применяемых в электронике ракетно-космической техники, с разной технологией, стоимостью, логической емкостью, быстродействием, степенью защищенностью от воздействия условий космического пространства(КП). Однако среди отечественных производителей и производителей бывших стран СНГ, такая микросхема всего одна, и является копия старой зарубежной ПЛИС малой степени интеграции, рассчитанная для проектирование схемы в зарубежном САПРе.
  • Применение микросхем малой степени интеграции удовлетворяя современные вычислительные требования возможно на системном уровне применения. В этом случае задействуется большее количество микросхем, что в итоге уменьшает надежность прибора в целом. Увеличить надежность в таком случае можно увеличив надежность отдельного элемента, т.е уменьшив интенсивность отказов или сбоев путем введения дополнительной отказоустойчивости.
  • В данной работе предлагается метод сбоеустойчивости разработанный в процессе работы на ОАО РКК Энергия совместно с ИППМ РАН. Метод основан на внесении на уровне проектирования логики для ПЛИС троирования и мажорирования дискретного библиотечного логического элемента без потери логических связей и оптимизации посредством соответствующего изменения файла EDIF на всем маршруте проектирования.
  • В процессе работы была разработана программное обеспечение для интеграции метода в процесс проектирования прошивки ПЛИС и методика использования метода сбоеустойчивости ПЛИС. Также согласована программа и методика испытаний совместно с НИИЯФ и на их научно-исследовательской базе, а также согласованы требования ВВФ для бортовой аппаратуры МКС.
  • Глава 1. Разработка схемы ПЛИС, обеспечивающую ее работоспособность при воздействии ТЗЧ
    • 1.1 Описание существующей проблемы сбоев работы ПЛИС
    • Проблема отсутствия специализированных микросхем под определенное воздействие КП с оптимальной отказоустойчивостью в ракетно-космической электронике может парироваться путем использования специализированного инструментария для создания отказоустойчивой структуры логики ПЛИС или путем использования микросхем с отказоустойчивой технологией. Поскольку условия внешнего воздействия комического пространства имеют определенную статистическую модель, то по маршруту и орбите изделия, т.е по степени воздействия условий КП, можно найти самый оптимальный вариант степени отказоустойчивости, т.е степени избыточности отказоустойчивой логики или степени актуальности использования микросхем с отказоустойчивой технологией.
    • На данный момент отечественной радиационно-стойкой ПЛИС нет, но есть радиационно-стойкая() ПЛИС производства республики Беларусь, которая используется в рамках этой работы и есть сбоеустойчивые-радстойкие процессоры 1907ВМ028 с технологией изготовления 0.25 КНИ, 150 МГц, а также 1907ВМ038 с технологией 0,25 КНИ, 125МГц, а также троированный микропроцессор 1990ВМ2Т с повышенными характеристиками по сбое устойчивости и радиационной стойкости с технологией КМОП КНИ 0,35, 66Мгц производства НИИСИ РАН. Кроме того есть отечественные рад стойкие ИМС(микроконтроллеры), - 8-разрядный микроконтроллер с повышенной стойкостью к СВ ВВФ 1830ВЕ32У, 1830ВЕ32АУ , 16-разрядный микроконтроллер с повышенной стойкостью к СВВФ 1874ВЕ05Т c характеристиками стойкости изделия к специальным видам внешних воздействующих факторов производства ОАО "НИЭТ".
    • На сегодняшний день существуют дорогие отказоустойчивые и есть менее дорогие ПЛИС, которые для применения в бортовой аппаратуре КА требуют внесения сбоеустойчивости на логическом уровне, которая является частичной по причине оптимизации избыточности, вносимой дополнительными схемами мажорирования и резервирования.
    • 1.2 Источники проблемы сбоев, - ионизирующие излучения
    • Ионизирующее излучение у поверхности Земли складывается из космического излучения, излучения от радионуклидов, содержащихся в земной коре, почве и других объектах внешней среды. Космическое излучение подразделяют на первичное и вторичное. Первичное космическое излучение - поток атомных ядер высокой энергии галактического и солнечного (~90%) происхождения, в основном протонов, б - частиц и ядер более тяжелых элементов, падающих на Землю из мирового пространства. Состав ядер первичного космического излучения приведен в следующей таблице для широты 51° с.ш. (для широты 41° с.ш. поток протонов около 610 м-2 с-1).
    • Средняя энергия первичных космических лучей около 104 Мэв, а отдельные частицы могут иметь энергию 1013 Мэв и более. Поток первичных частиц на границе атмосферы в высоких широтах при минимуме солнечной активности 0,7 - 1,0 см-2 с-1, а на уровне моря в среднем 1,7•10-2 см-2 с-1 и слабо зависит от солнечной активности. Большинство первичных космических частиц испытывают неупругие столкновения с ядрами атомов воздуха в верхних слоях земной атмосферы, образуя вторичное излучение.
    • Вспышки на Солнце являются ближайшим к Земле источником первичного космического излучения. Практически все, даже самые слабые вспышки, генерируют частицы высоких энергий и космическое излучение с энергией от нескольких десятков Кэв до 104 Мэв. Причем поток частиц с энергией E зависит от нее как E-n, где n = 2 ч 6 (меняется от вспышки к вспышке). Состав космического излучения солнечного происхождения совпадает практически с составом солнечной хромосферы, где и рождаются вспышки.
    • На границе атмосферы число частиц с энергией более 10 Мэв составляет ~ 104 см-2 с-1, а за время вспышки полный поток составляет порядка 109 см-2. Около 80% всех вспышек на Солнце в космическом излучении сопровождаются вспышками радиоизлучения. Такая радиационная обстановка вызывает сбои или эффекты одиночных событий(далее ЭОС) и отказы микросхемы и других активных компонентов бортовой аппаратуры.
    • Наибольшую опасность с точки зрения генерации ЭОС представляют высокие орбиты ( ГСО, ВЭО ). В таблице представлена классификация типовых орбит полета КА для установления требований по стойкости РЭА КА по ЭОС
    • Тип частиц

      Диапазоны высот типовых орбит, км

      < 600

      600 - 1200

      1200 - 6000

      6000 - 10000

      >10000

      ГСО

      ВЭО

      Высоты, км, для которых устанавливаются спектры ЗЧ

      СКЛ

      3000

      3000

      3000

      ГСО

      ГСО

      ГСО

      ГСО

      ГКЛ

      ГСО

      ГСО

      ГСО

      ГСО

      ГСО

      ГСО

      ГСО

      ЕРПЗ

      600

      1200

      3000

      6000

      -

      -

      -

      • Типовые толщины защиты 0.1, 0.5, 1.0, 3.0, 10.0 г.см-2
        • 1.3 Результаты воздействия ИИ на интегральные микросхемы

      При воздействии отдельных ТЗЧ и протонов КП на РЭА КА в комплектующих ее ИЭТ возникают одиночные радиационные эффекты, которые могут приводить к нарушению штатного функционирования аппаратуры и ее отказу, если в ней не применены необходимые схемотехнические и программно - алгоритмические методы парирования сбоев и защиты ИЭТ от отказов.

      Основной причиной сбоев ИЭТ являются следующие радиационные одиночные эффекты:

      - одиночный обратимый сбой в БИС с регулярной логикой, проявляющийся в виде потери информации в отдельных ячейках;

      - одиночный эффект функционального прерывания;

      - переходная ионизационная реакция, вызванная

      - одиночный эффект функционального прерывания;

      - переходная ионизационная реакция, вызванная

      попаданием ЗЧ КП в чувствительную область БИС. Этот эффект может проявляться в виде импульсов тока в выходных цепях в аналоговых ИЭТ и в ИЭТ смешанного типа, а также может привести к искажению информации в высокочастотных оптических линиях передачи информации.

      Основной причиной, приводящей к отказам ИЭТ, являются следующие радиационные одиночные эффекты:

      - одиночное событие радиационного защелкивания, вызванное включением паразитных тиристорных структур при попадании в чувствительный объем БИС отдельных заряженных частиц;

      - одиночный микродозовый эффект, связанноеый с локальным выделением энергии в чувствительном объеме активных элементов БИС при попадании ЗЧ КП с последующим "дозовым" отказом данного элемента. Возможно восстановление работоспособности после длительной выдержки в резерве;

      - одиночный эффект выгорания в мощных n-МОП -транзисторах, связанный с открыванием паразитного биполярного транзистора при попадании ЗЧ КП;

      - одиночный эффект пробоя подзатворного диэлектрика в МДП-структурах при попадании ЗЧ КП;

      - одиночный эффект вторичного пробоя в n-МОП-транзисторах.

      Обратимые события или сбои в БИС непосредственно не ведут к катастрофическим отказам в РЭА.

      Для восстановления нормального функционирования аппаратуры не нужно отключать питание. Однако такие сбои

      могут быть серьезной помехой для нормального функционирования аппаратуры, если в ней отсутствуют специальные меры по сбоеустойчивости. При этом, если в РЭА не предусмотрено восстановление штатного функционирования цифровой БИС (СБИС) с искаженной информацией, то это является отказом РЭА. Причиной отказа может также послужить и ложно воспринятый импульс тока в аналоговых микросхемах.

      Необратимые эффекты в изделиях без специальных схемотехнических мер защиты могут привести к их катастрофическим отказам и, соответственно, к отказу РЭА.

      Одиночные события главным образом возникают вследствие взаимодействия высокоэнергетичных протонов и ТЗЧ с БИС. Источниками ЗЧ, вызывающих одиночные эффекты в БИС, являются ГКЛ и СКЛ, представляющие собой потоки протонов и ТЗЧ (атомный номер Z2), и протоны ЕРПЗ.

      Эффекты одиночных событий как правило классифицируют на:

      1) Обратимые эффекты:

      - Одиночные сбои или "мягкие ошибки" (SEU)

      - Множественные сбои (MBU)

      - Функциональный отказ (SEFI)

      - Обратимый переходной процесс (SET)

      2) Необратимые отказы:

      - "Жесткие ошибки" (SHE)

      - Тиристорный эффект (SEL)

      - Прокол (SESB)

      - Вторичный пробой (SEB)

      Разрушение подзатворного окисла (SEGR

      Типы одиночных радиационных эффектов в цифровых СБИС

      Таблица 1.3 - Типы ОРЭ в цифровых интегральных микросхемах

      ОРЭ

      Характеристика ОРЭ

      Характер отказа

      Одиночные сбои в элементах памяти и регистровых структурах SEU (Single Event Upset)

      Одиночный сбой, проявляющийся в виде инвертирования логического состояния запоминающей ячейки. Данные сбои могут иметь кратный характер при воздействии одиночной частицы.

      Сбой

      Одиночный тиристорный эффект

      SEL (Single Event Latch-up

      Отказ изделия полупроводниковой электроники, обусловленный включением паразитных четырехслойных полупроводниковых структур (тиристорных структур) вследствие взаимодействия одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия. Данный отказ, как правило, сопровождается резким возрастанием тока потребления и полной или частичной потерей работоспособности изделия и восстановлением работоспособности после отключения и повторном включении питания в случае отсутствия пережогов и пробоев р-п переходов.

      Катастрофический отказ или принудительно восстанавливаемый отказ в зависимости от конструктивно-технологических параметров изделия полупроводниковой электроники

      Одиночный микродозовый эффект

      SEHЕ (Single Event Hard Error)

      Отказ отдельного транзистора или элемента памяти изделия полупроводниковой электроники, связанный с локальным накоплением радиационно-индуцированного заряда в подзатворных и изолирующих диэлектриках.

      Катастрофический отказ

      Одиночный эффект

      прерывания

      функционирования SEFI (Single Event Functional Interrupt)

      Принудительно восстанавливаемый отказ изделия полупроводниковой электроники, который вызывает потерю функционирования изделия, для восстановления которой требуется перезагрузка выполняемой программы или конфигурации и обусловленный возникновением одиночных сбоев в элементах памяти или регистровых структурах блоков управления вследствие взаимодействия одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия.

      Принудительно восстанавливаемый отказ

      Переходная ионизационная реакция

      DSET (Single Event Transient)

      Переходная ионизационная реакция в виде импульсов напряжения, которые могут распространяться как ложные цифровые сигналы в последующих электрических цепях.

      Сбой

      Одиночный эффект вторичного пробоя SESB (Single Event Snapback)

      Одиночный эффект вторичного пробоя в n-МДП-КНИ транзисторах.

      Катастрофический отказ

      Одиночный эффект про-боя подзатворного диэ-лектрика SEGR (Single Event Gate Rapture)

      Одиночный эффект пробоя подзатворного диэлектрика в МДП-структурах.

      Катастрофический отказ

      Методы взаимного пересчета параметров моделей одиночных сбоев больших и сверхбольших интегральных схем при воздействии тяжелых заряженных частиц галактических и солнечных космических лучей и протонов космического пространства

      В данной работе мы рассматриваем одиночные сбои или "мягкие ошибки" (SEU) которые вызывают заряженные частицы и тяжелые заряженные частицы

      Различные виды излучения, испускаемого при радиоактивном распаде, - это примеры ионизирующего излучения. Слово "ионизирующее" означает, что кинетическая энергия частиц или фотонов достаточно высока, чтобы вызывать ионизацию, то есть удалить электрон из атома. Теоретически нижний предел энергии ионизации составляет около 100 эВ. Если энергия меньше, то её не хватит для ионизации. Другие виды ионизирующего излучения - это, например, заряженные частицы, разогнанные ускорителями, и космическое излучение. Рентгеновские лучи так же являются ионизирующим излучением.

      Заряженные частицы, такие как электроны, протоны, альфа-частицы и т. д., называются первично (непосредственно) ионизирующим излучением, в то время как нейтроны и фотоны в основном являются вторично (косвенно) ионизирующим излучением. Вторичная ионизация проходит в два этапа, сперва испускается заряженная частица, такая как электрон, которая затем непосредственно ионизирует вещество.

      Когда ионизирующее излучение проходит через вещество, оно теряет энергию и, в конце концов, будет полностью поглощено. Энергия потерянная излучением поглощается материалом, например, телом. Процессы поглощения первично ионизирующиго и вторично ионизирующиго излучений различаются. Так же они различаются для тяжелых и легких заряженных частиц и для фотонов.

      Когда заряженная частица, такая как альфа-частица, протон или электрон, проходит сквозь вещество, она теряет энергию, взаимодействуя с орбитальными электронами. Такое взаимодействие называется столкновением, хотя ,на самом деле, никакого настоящего столкновения частиц не происходит, а взаимодействуют только электрические поля, окружающие эти частицы. Энергия, сообщённая орбитальному электрону, при таком взаимодействии может быть достаточной, чтобы электрон покинул атом. Более того, кинетическая энергия выбитого электрона может быть настолько высока, что он сам будет действовать как ионизирующая частица. Такой электрон называется дельта-частицей.

      Тяжелые заряженной частицы, такие как альфа-частица (которая имеет массу около 7300 раз больше массы электрона) теряют только малую часть своей энергии при каждом столкновении. Благодаря своей массе они не меняют направление при столкновениях с легкими электронами. Изменить направление движения тяжелой частицы может только столкновение с тяжелым ядром. С одной стороны, такие столкновения должны быть очень редкими, потому что объем ядра намного меньше, чем объем атома. С другой стороны, благодаря дальнему диапазону действия электрического поля, тяжелые заряженные частицы буквально долбятся о каждый встречный атом. В результате трек альфа-частицы прямой, а диапазон в материале весьма мал и четко определен.

      Лёгкая заряженная частица (электрон или позитрон) может терять до половины своей энергии при каждом столкновении с орбитальным электроном. Возможность передачи большой энергии при каждом столкновении означает что энергичных дельта-лучей будет произведено больше, чем в случае тяжелых заряженных частиц. При столкновении лёгкие частицы также легко меняют направление движения, в результате чего их путь будет нерегулярным и извилистым. Благодаря своим небольшим размерам, электрон может также пройти несколько атомов, не теряя энергии или теряя только малую её часть. Таким образом, электрон может проникать в вещество существенно глубже,

      чем тяжелые заряженные частицы. Из-за хаотического трека у лёгких частиц глубина проникновения в веществе не будет так предсказуема как у тяжелых частиц.

      Если лёгкая частица является позитроном, то она аннигилирует, когда она останавливается. Позитрон рекомбинирует с электроном, и их массы преобразуется в энергию, которая излучается в виде двух фотонов, испущенных в противоположных направлениях, каждый из которых имеет энергию 511 кэВ. Это аннигиляционное излучение используется в позитронно-эмиссионной томографии (ПЭТ), поэтому в ПЭТ могут использоваться только радионуклиды распадающиеся с испусканием позитронов (?+).

      Когда электрон приближается к ядру, он меняет направление из-за электростатических сил, действующих на него. При каждом таком отклонении электрон теряет энергию, испуская тормозное электромагнитное излучение (bremsstrahlung). В зависимости от расстояния между электроном и ядром энергия излучаемого фотона может варьироваться от нуля до полной кинетической энергии электрона. Распределение энергий фотонов тормозного излучения представляет собой сплошной спектр с интенсивностью монотонно уменьшающейся от нулевой энергии до полной энергии налетающих электронов.

      Потеря энергии заряженными частицами, проходящими через вещество описывается удельной тормозной способностью вещества, которая равна потере энергии на единицу длины, деленную на плотность поглотителя. Таким образом, размерность этой величины МэВ*см2/г. Её значение зависит от типа частиц и их энергии. Тормозная способность вследствие столкновений называется линейной передачей энергии. Тяжелые заряженные частицы обычно называются радиацией высокой ЛПЭ, а легкие заряженные частицы - радиацией низкой ЛПЭ.

      Для фотонов (рентген, гамма-излучение) существуют три основных типа взаимодействия с веществом: фотоэлектрический эффект, эффект Комптона и рождение электронно-позитронных пар. Во всех этих трех процессах создаются или испускаются первично ионизирующие электроны или позитроны.

      Фотоэлектрический эффект - это когда падающий фотон передает всю свою энергию тесно связанному орбитальному электрону в одной из внутренних оболочек атома. Этот электрон покидает атом с кинетической энергией равной энергии фотона минус энергия связи электрона. Вакансии в электронной оболочке заполняются, и при этом испускается характеристическое излучение.

      В эффекте Комптона падающий фотон сталкивается со слабо связанным электроном из внешних оболочек атома. При столкновении падающий фотон передаёт часть своей энергии электрону, который покидает атом, а фотон меняет направление своего движения после столкновения. Таким образом результатом взаимодействия будет рассеянный фотон с уменьшенной энергией и электрон отдачи.

      Рождение электронно-позитронных пар происходит, только если падающий фотон имеет очень высокую энергию. Когда такой фотон взаимодействует с сильным полем вокруг ядра, он исчезает, а его энергия превращается в электрон-позитронную пару. Так как сумма их масс эквивалентна энергии 1022 кэВ, то только фотоны, энергия которых равна или превышает 1022 кэВ, могут взаимодействовать с веществом путем рождения электронно-позитронных пар.

      Теоретически, фотон может пройти через вещество вообще без каких-либо взаимодействий. Мы можем только определить вероятность того, что фотон провзаимодействует с веществом одним из трех описанных выше процессов. Эта вероятность на единицу длины называется линейным коэффициентом поглощения, который обычно делится на плотность поглотителя, что дает удельный коэффициент поглощения, которых имеет размерность см2/г. Полный удельный коэффициент поглощения представляет собой сумму коэффициентов для каждого из трех режимов взаимодействия. Доминирующий процесс будет зависеть от энергии фотона и атомного номера поглотителя. Для человеческих мягких тканей со средним атомным номером 7,8 доминирующим механизмом взаимодействия будет эффект Комптона для всех энергий фотонов используемых в медицинских целях (25 КэВ - 25 МэВ).

      Поглощенная доза

      Фундаментальная дозиметрическая величина D, определяемая

      следующим образом:

      где d - это средняя энергия, переданная ионизирующим излучением веществу в элементе объема, а dm - это масса материи в этом элементе объема. Энергия может быть усредненена по любому объему. Тогда средняя доза равна полной энергии поглощенной объемом, деленной на массу в этом объеме. Единицой СИ поглощенной дозы является джоуль на килограмм (J/kg), и она называется Грей (Гр).

      Коллективная доза

      -выражение для суммарной дозы излучения, полученной населением. Определяется как произведение числа лиц, подвергшихся облучению и их средней дозе радиации. Коллективная доза выражается в человеко-зивертах (человекЗв).

      Эффективная доза

      Величина Е, определяемая как сумма эквивалентных доз тканей/органов, умноженных на соответствующий весовой коэффициент:

      E = WT HAT

      T

      где HT - это эквивалентная доза для ткани/органа T, а WT - это взвешивающий коэффициент (коэффициент радиационного риска) для ткани T. Из определения эквивалентной дозы следует, что:

      E = WT WR DT,R = WR WT DT,R

      T R R T

      где WR является взвешивающим коэффициентом (коэффициентом качества) для излучения R, а DT,R - это средняя поглощенная доза в органе или ткани Т. Единица эффективной дозы J/kg, называется зиверт (Зв).

      Эквивалентная доза

      Величина Н, определяемая следующим образом:

      H = DT WR

      где DT - это поглощенная доза излучения типа R, усредненная по ткани или органу T, а WR является взвешивающим коэффициентом (коэффициентом качества) для излучения R

      Если полное излучение состоит из различных видов излучения с различными значениями WR, то эквивалентная доза:

      H = WR DT

      R

      Единица эквивалентной дозы J/kg называется зиверт (Зв).

      Для аппаратуры, укомплектованной КМОП и биполярными ЭРИ, необратимые изменения ее параметров при воздействии электронов и протонов моделируют последовательным облучением аппаратуры гамма- и нейтронным излучениями [3].

      При таком моделировании требования к РЭА КА в виде потоков электронов и протонов КП и их спектрально-энергетических характеристик пересчитывают в дозы, поглощенные в процессах ионизации и структурных повреждений

      Эффекты - 1.ионизация. 2. Структурные повреждения

      В настоящем документе применены следующие термины с соответствующими определениями:

      3.1 высокоэнергетический протон: Протон с энергией более 10 МэВ.

      3.2 тяжелая заряженная частица: Ионы и ядра любого химического элемента с зарядом ядра более 1 и энергией более 1 МэВ на нуклон.

      3.3 одиночный радиационный эффект: Любое нарушение в функционировании или отказ изделия полупроводниковой электроники, вызванное взаимодействием одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия.

      3.4 одиночный отказ: Необратимый отказ изделия полупроводниковой электроники, вызванный взаимодействием одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия.

      3.5 одиночный сбой: Любой самоустраняющийся отказ изделия полупроводниковой электроники, вызванный взаимодействием одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия.

      3.6 одиночный сбой в элементах памяти и регистровых структурах: Инвертирование логического состояния бистабильных цифровых схемотехнических элементов и элементов памяти любых других типов, вызванное взаимодействием отдельного (одного) высокоэнергетического протона или отдельной (одной) тяжелой заряженной частицы с материалом чувствительной области элемента.

      3.7 одиночный тиристорный эффект: Отказ изделия полупроводниковой электроники, обусловленный включением паразитных четырехслойных полупроводниковых структур (тиристорных структур) вследствие взаимодействия одиночного высокоэнергетического протона или одиночной тяжелой заряженной частицы с материалом чувствительной области изделия. Данный отказ, как правило, сопровождается резким возрастанием тока потребления и полной или частичной потерей работоспособности изделия и восстановлением работоспособности после отключения и повторном включении питания в случае отсутствия пережогов и пробоев р-п переходов.

      Причиной одиночного сбоя или отказа ИПЭ является импульсная токовая помеха, которая появляется в электрических цепях ИПЭ в результате создания неравновесных носителей заряда при прохождении одной ТЗЧ в чувствительных областях цифровых схемотехнических элементов.

      5.2 Рассматривают два механизма возникновения ОС и ОО:

      - от воздействия ТЗЧ КП (прямой механизм возникновения ОРЭ),

      - от воздействия вторичных ТЗЧ (продуктов ядерных взаимодействий), образующихся при взаимодействии ВЭП КП, с ядрами конструкционных материалов ИПЭ (ядерный механизм возникновения ОС и ОО).

      ТЗЧ, входящие в состав ГКЛ и СКЛ, в основном, ответственны за прямой механизм возникновения ОС и ОО ИПЭ на борту КА, а ВЭП, входящие в состав ГКЛ, СКЛ и ЕРПЗ _ за ядерный механизм.

      5.3 Показателями стойкости ИПЭ к возникновению ОС и ОО служат:

      - частота (интенсивность) ОС или ОО , представляющая собой количество ОС или ОО в единицу времени, например, в секунду;

      - вероятность возникновения ОС или ОО, которая определяется по формуле

      , (5.1)

      где Т _ время, в течение которого ИПЭ во включенном состоянии подвергается воздействию ВЭП и ТЗЧ КП.

      5.4 Для определения значений показателей стойкости ИПЭ на борту КА при воздействии ВЭП и ТЗЧ КП, применяют расчетно-экспериментальные методы. логика программный интегральной хемминг

      • 1.4 Зависимость параметров ПЛИС от параметров ИИ
        • Существует зависимость быстродействия от энергия излучения, увеличение значения fanout цепей.
        • Параметры ПЛИС:
        • - быстродействие, а именно максимальная глобальная тактовая частота;
        • - потребление;
        • - Задержка глобального тактового сигнала
        • - Задержка распространения сигнала вход-выход
        • - Время установки глобального тактового сигнала
        • Параметры ИИ:
        • - переданная энергия;
        • - поглощенная доза;
        • - кинетическая энергия(керма);
        • - сечение взаимодействия ионизирующих частиц;
        • - коэффициент ослабления;
        • - коэффициент передачи энергии;
        • - коэффициент поглощения энергии;
        • - ионизация;
        • Таким образом доза смещает заряды МОП-структуры, что приводит к изменения порогового напряжения, задержкам распространения сигнала, и соответственно задержкам глобального тактового сигнала что приводит к снижению быстродействия и к образованию асинхронной логики уязвимой к сбоям. К тому же происходит в кристалле необратимые радиационные дефекты. Энергия переданная частицей вызывает переключения МОП-структуры, а также ее изменение вследствие ее трека, что приводит как следствие к сбоям обратимым и не обратимым отказам. В этом случае изменяется потребление микросхемы в сторону увеличения.
        • 1.5 Критерии сбоеустойчивости
        • В работе были выбраны следующие критерии сбоеустойчивости:
        • -Троирование элементов схемы;
        • - мажорирование схем обработки входных сигналов,
        • - резервирование
        • Все эти критерии выражаются в итоге в требования стойкости к внешнем воздействующим фактора, которые выржаються в том что микросхемы должны быть работоспособны:
        • - при и после воздействия ионизирующих излучений:
        • 1) заряженных частиц естественных радиационных поясов Земли;
        • 2) солнечных и галактических космических лучей, создающих полную дозу за массовой толщиной защиты 0,5, 1,0 и 3 г/см2 не более 1,2*104 , 3,0 *103 , 4,4*102 рад соответственно и полную дозу внутри на критичном элементе не более 3*103 рад при коэффициенте запаса по дозе 3;
        • - при и после воздействия суммарной максимальной плотности потока протонов СКЛ, ЕРПЗ с энергией более 30 МэВ за массовой толщиной защиты 0,3 г/см2 не более 1,1*105 протон*см-2 *с-1;
        • - при и после воздействия суммарного потока протонов ЕРПЗ, ГКЛ и СКЛ с энергией более 30 МэВ (за полетный ресурс) за массовой толщиной
        • защиты 0,3 г/см2 не более 9,0*109 протон*см-2 и суммарного потока ТЗЧ ГКЛ и СКЛ с ЛПЭ более 1 МэВ*см2 /мг (за полетный ресурс) за массовой толщиной
        • защиты 0, 3 г/см2 не более 1,8 *105 частиц*см-2;
        • Приведенные выше данные по коэффициенту запаса по дозовым эффектам и работоспособности аппаратуры по одиночным эффектам при и после воздействия потоков протонов и ТЗЧ СКЛ и ГКЛ подтверждены расчетом радиационной стойкости аппаратуры в соответствии с ОСТ-134-1034-2003 (дозовые эффекты) и РД-134-0139-2005 (одиночные эффекты).

      Вывод о стойкости РЭА к воздействию ЗЧ КП по одиночным эффектам делается на основе:

      - анализа возможности возникновения сбоев и отказов ИЭТ и последствий их влияния на работоспособность и функционирование РЭА с учетом примененных средств защиты, алгоритмов и программ, используемых для обнаружения и устранения сбоев, срыва тиристорного эффекта

      и пробоя, времени восстановления штатного функционирования, влияния перерыва в работе составных частей РЭА на работоспособность и функционирование КА;

      - результатов расчета частоты сбоев РЭА и вероятности ее отказа по данным о параметрах чувствительности ИЭТ к одиночным эффектам.

      При проведении оценки РЭА КА разбивается на ряд функционально замкнутых узлов (схем обработки сигналов, реализации алгоритмов, программ управления). В каждом из них проводится анализ номенклатуры ИЭТ и определяются возможные одиночные сбои и отказы различного типа.

      По каждому узлу проводится анализ влияния одиночных сбоев на штатное функционирование РЭА КА в целом и оценивается допустимость (не допустимость) одиночных сбоев. Допустимость одиночных сбоев оценивается с учетом принятых мер сбоеустойчивости - алгоритмов и программ, используемых для обнаружения и устранения сбоя, влияния перерыва в работе РЭА на работоспособность и функционирование КА. По результатам этого анализа определяется также максимально - возможная частота одиночных сбоев либо по каждому замкнутому узлу, либо по аппаратуре в целом с учетом принятых мер сбоеустойчивости (в дальнейшем будем ее называть максимально - допустимой частотой сбоя соответствующего узла РЭА).

      По узлам, в которых одиночные сбои ИЭТ недопустимы, должны быть приняты меры по сбоеустойчивости.

      По каждому узлу проводится анализ защиты ИЭТ, чувствительных к различного типа отказам, и определяется наличие (отсутствие) систем их защиты, не позволяющим

      привести к их катастрофическим отказам (например, схемотехнические меры не допускающие развития или срыва тиристорного эффекта, не допускающие пробоя и т.п.).

      После проведенного выше анализа по каждому из узлов, в котором одиночные эффекты в ИЭТ влияют на функционирование и работоспособность РЭА в целом, проводится оценка частоты сбоев и вероятности возникновения катастрофического отказа.

      В методах оценки стойкости РЭА к воздействию ЗЧ КП по одиночным эффектам приняты следующие допущения:

      -проведение испытаний (как метод оценки стойкости РЭА по одиночным эффектам во всем диапазоне ЛПЭ ТЗЧ КП) практически нереализуемо, поэтому при проведении оценки стойкости РЭА к одиночным эффектам используют расчетно-экспериментальный метод, основанный на экспериментальных данных о параметрах чувствительности ИЭТ к одиночным эффектам (о порогах эффектов и их сечениях), расчете частоты

      сбоев и вероятности отказов ИЭТ с последующим учетом влияния примененных методов парирования сбоев и предотвращения отказов ИЭТ;

      -достоверность результатов расчетно-экспериментальной оценки стойкости аппаратуры по одиночным эффектам может быть подтверждена испытаниями наиболее чувствительных узлов РЭА на на ускорителях протонов с энергией 200МэВ-1ГэВ только в ограниченном диапазоне ЛПЭ ТЗЧ (до7- 8 МэВ.см2.мг-1).

      • 1.6 Математическое описание модели зависимости параметров ПЛИС от параметров ИИ
        • Математическое описание в случае дозы интегральная основано на интегральной составляющей, в случае эффектов, экспоненциальной. Таким образом задержки распространения проявляются с течением времени, а увеличение потребления, например вследствие эффекта защелки лавинообразно.
        • 1.7 Анализ существующих решений сбоеустойчивости ПЛИС
        • Существующие решения сбоеустойчивости ПЛИС можно разделить на 2 типа:
        • 1. Логические(схемотехнические)
        • 2. Технологические
        • Логические решения основываются на введения избыточности в схеме такой как мажорирование, резервирование.Для СБИС и ПЛИС высокой степени интеграции применяют помехоустойчивое кодирование на языках проектирования логических интегральный схем, таких как VHDL, verilog, в самых ответственных местах, таких как обращение к памяти. Такое кодирование в основном заключается в применении кодов Хемминга, Рида-Соломона, но в последнее время находит применение модулярная арифметика.
        • Технологические способы подразумевают использование специализированных техпроцессов изготовления СБИС и специализированных техпроцессов изготовления СБИС и специализированных материалов ("кремний на сапфире"(КНС), "кремний на изоляторе"(КНИ), использование гетероструктур и.т.п.), а также применению отказоустойчивых ячеек, таких как на рисунке, от фирмы Microsemi
        • Однако на данный отказоустойчивые на уровне технологии ПЛИС только зарубежного производителя и они труднодоступные и дорогие. Есть менее дорогие и более доступные, однократно программируемые, на основе технологии прожигаемых перемычек anti-fuse. Такие перемычки стойкие к переключению, т.е сбоям, поэтому с целью экономической эффективности целесообразно делать надстройку по сбоеустойчивости на основе таких микросхем. АО Интеграл, Беларусь является производителем подобной ПЛИС, - 5577ХС1Т.
        • 1.8 Постановка задачи на разработку схемы ПЛИС
        • В рамках данной работы по разработке схемотехнического метода повышения сбоеустойивости ПЛИС поставлены следующие задачи:
        • 1. Создание сбоеустойчивой логики для ПЛИС, аналог радстойких FPGA на базе ПЛИС типа "Flash" или "anti-fuse".
        • 2. Создание на основе отечественной ПЛИС или ПЛИС со дружественного государства.
        • 3. Создание сбоеустойчивой логики минимальной избыточности без применения методов помехоустойчивого кодирования.
        • Таким образом была выбрана микросхема 5577ХС1Т производства АО ИНТЕГРАЛ с характеристиками представленными в таблице 1.8
        • Таблица 1.8
        • Условное обозначение микросхемы

          Основное функциональное назначение

          Классификационные параметры в нормальных климатических условиях, буквенное обозначение, единица измерения

          5577ХС1Т

          Однократнопрограммируемая логическая схема

          Количество коммутируемых эквивалентных вентилей, n 1200

          Максимальное количество входов/выходов, nI/O 57

          Напряжение питания, UCC, В 5 ± 10 %

          Ток потребления, ICC, мА, при UCC = 5,5 B не более 10

          • 1.9 Математическое описание разработанной схемы
            • Математическое описание разработанной схемы может быть выражено посредством логических выражений.
            • где a, b - входные сигналы для логических вентилей, D - входные данные для триггера, CLK, - тактирующий сигнал для триггера.
            • Длч привемера математическое описание вентиля И
            • Y = ((((A&B)&(A&B)) | (A&B)) ^ (((A&B)&(A&B)) | (A&B))) | ((A&B)&(((A&B)&(A&B)) | (A&B)))
            • Предлагаемый способ резервирования основан на схеме троирования с мажорированием логического библиотечного элемента ПЛИС с возможностью переключения на исходный сигнал при возникновении сбоев в самой схеме резервирования и мажорирования.
            • 1) Библиотечный элемент AND
            • 2) Библиотечныйэлемент OR
            • 3) Библиотечный элемент XOR
            • 4) Библиотечный элемент D-триггер
            • Для обобщенного описания всех схем на рис 1.9 представлена обобщенная структурная схема.
            • Рис.1.9
            • При отказу 1 компонента, отказа схемы не будет поскольку есть еще одно типные 2 и 3 компоненты которые мажроитарными элементами 4,5 выберут сигнал 2 из 3-х
            • При отказу 2 и 3 компонента, ситуация такая же, поскольку 1,2,3 однотипны и замещают друг друга
            • При отказе 4 компонента отказа схемы не будет поскольку при какой либо неисправности 4,5 компонентов будет схемой переключение на состояние без мажорирования
            • При отказе 5 компонента ситуация такая же как и в случае 4 компонента, поскольку компоненты одинкавы
            • При отказе 6 элемента ситуация будет неопределенная но отказа схемы не будет поскольку 7 компонент будет в каком либо из 2-х состояний и переключит на схему либо без мажорирования либо с махорированием
            • При отказе 7 элемента будет отказ схемы, но 7 компонент самый простой, его габариты и связи минимальны.
            • 1.10 Расчет надежности разработанной схемы
            • Исходя из логики работы схемы, см. пункт 2.1, можно сформулировать следующие критерии отказов:
            • - Отказ любых 2-х элементов из 1,2,3;
            • Отказ 4-го элемента и отказ 6-го или 7-го элементов
            • Отказ 5-го элемента и отказ 6-го или 7-го элементов
            • Отказ 7-го элемента
            • Соответствующая этим критериям отказов структурная схема надежности приведена на рис.1.10
            • Первая часть структурной схеме относиться к резервированию РЭА из 1 основного и 2-х резервных элементов, резерв нагруженный -
            • Где - число сочетаний из "N" по "i", - интенсивность отказов элементов
            • Тогда в нашем случае
            • P(t)=0.999702
            • Принимаем P каждой ячейки равной 0,99
            • Вторая секция является резервом нагруженным последовательной РЭА из 2-х элементов
            • Тогда в этом случае
            • = 0,999801
            • Итоговая вероятность будет последовательная
            • P = 0,999702*0.9998012*0.99 = 0,989311
            • Вследствие большего количества элементов в разработанной схеме по сравнению с одним эквивалентным вентилем вероятность безотказной работы уменьшилась, но добавились элементы для мажорирования и переключения.
            • Альтернативным методом резервирования является резервирование самих микросхем по схеме мажорирования, приведенной на рисунке 1.11
            • Рис.1.11
            • Тогда расчет вероятности безотказной работы будет производиться по формуле
            • Где - значение интенсивности отказов кристалла для ПЛИС с емкостью до 200 базовых ячеек, поскольку после применения схемы сбоеустойчивости логическая емкость ПЛИС уменьшилась с 1200 в 8 раз.
            • Кt- расчет коэффициента режима в зависимости от температуры кристалла, равен 1.23819
            • - расчет интенсивности отказов корпуса микросхемы
            • Кэ - значения коэффициента жесткости условий для интегральных схем
            • Расчет интенсивности отказов корпуса в зависимости от количества выводов
            • Для корпуса SMT 2,8*10-4*N1.08
            • Математическая модель для расчета эксплуатационной интенсивности отказов микросхем
            • =0,043980046*10-6
            • Кэ = 0.5 для группы 5.1 и 5.2
            • Кпр = 0.25
            • Тогда = 0.00576062*10-6
            • Вероятность безотказной работы микросхемы
            • Надежность альтернативного метода рассчитывается для мажоритарной схемы
            • - интенсивность отказов D1-D3, - интенсивность отказов D4
            • D1-D3 это такие же микросхемы, как и в основном случае, D4, - микросхемы с большим количеством выводов и соответственно большей логической емкостью
            • Для D4, , Кт = 1.7846, = 0.13306107*10-6
            • Таким образом можно сделать вывод что при применении разработанной схемы сбоеустойчивости надежность уменьшилась по сравнению с надежностью одного логического вентиля в 1.0006064 раз, а при применении мажорирования микросхем надежность уменьшалась в 1,0011265 раз по сравнению с надежностью одной микросхемы.
            • 1.11 Разработка схемы ПЛИС
            • Разработка схемы ПЛИС производилась для ПЛИС 5577XC7Т. Она является аналогом зарубежной микросхемы A1010 Actel(ныне Microsemi). Поэтому инструментарий для проектирования логической схемы ПЛИС использовался Actel Libero IDE. Интегрированная среда разработки Microsemi (Actel) Libero IDE включает в себя полный набор инструментов для создания, отладки и верификации, синтеза и физической имплементации проектов, а так же генерации файлов прошивки под все семейства ПЛИС фирмы Microsemi (Actel).
            • Поток проектирования в этой среде представлен на рисунке 1.12
            • Рис. 1.12
            • Где Design Entry Tools, - набор схемного рекдакторов и компиляторов с языков VHDL, Verilog.
            • Synthesis - Программа логического синтезатора
            • Place&Root - тополог
            • Simulation - симулятор, верификатор
            • Programming - программатор
          • Глава 2. Разработка программного обеспечения
            • 2.1 Постановка задачи на разработку программного обеспечения
            • Для того чтобы предлагаемая схема была интегрирована в САПР, который не имеет функции интеграции стороннего программного обеспечения, перед разработкой были поставлены следующие задачи:
            • 1. Разработка программного обеспечения на основе бесплатного инструментария
            • 2. Разработка программного обеспечения на основе Си++
            • 3. Разработка программного обеспечения для работы с текстовыми файлами
            • Таким образом наиболее подходящим под поставленные требования подошла библиотека QT5.x и ее оболочка QT Creator.
            • Программное обеспечение должно считывать EDIF файл и менять его в библиотечные элементы на разработанную схему без потери связей вентиля. Сам Исходный вентиль должен остаться и стать частью схемы.
            • 2.2 Разработка состава программы
            • Предлагаемый способ резервирования основан на схеме троирования с можорированием логического библиотечного элемента ПЛИС с возможностью переключения на исходный сигнал при возникновении сбоев в самой схеме резервирования и мажорирования.
            • Для осуществления подобного способа разработано программное обеспечение позволяющее на RTL уровне автоматически сделать преобразование логической схемы использую стандартный компоненты любого синтезатора, так называемый EDIF(Electronic Design Interchange Format) файл. Это программное обеспечение интегрируется в Libero IDE на уровне изменения выходных файлов.
            • Функции предлагаемого программного обеспечения преобразования EDIF файла следующие:
            • 1. Нахождение в исходном файле библиотечный элемент требуемый резервирования
            • И добавление предлагаемой выше схемы резервирования и мажорирования с переключением
            • (cell or2 (cellType GENERIC)
            • (view netlist (viewType NETLIST)
            • (interface
            • (port a (direction INPUT))
            • (port b (direction INPUT))
            • (port y (direction OUTPUT))
            • )
            • )
            • )
            • 2. Нахождение в исходном файле связанных с резервируемым элементом цепей и добавлением к ним цепей схемы резервирования и мажорирования
            • (instance (rename Z__1I6_ "\$1I6\") (viewRef netlist (cellRef or2 (libraryRef &54SXA)))
            • (net (rename Z__1N17_ "\$1N17\") (joined
            • (portRef y (instanceRef Z__1I3_))
            • (portRef b (instanceRef Z__1I6_))
            • ))
            • (net (rename Z__1N22_ "\$1N22\") (joined
            • (portRef y (instanceRef Z__1I4_))
            • (portRef a (instanceRef Z__1I6_))
            • ))
            • (net C_c (joined
            • (portRef y (instanceRef Z__1I6_))
            • (portRef d (instanceRef C_pad))
            • ))
            • 3. Создания базы данных исходных цепей и резервированных
            • 4. Добавление элементов и цепей схемы резервирования и мажорирования согласно связей исходных цепей
            • Программное обеспечение представляет собой исполняемый файл, при запуске которого запускается интерфейс, в котором есть возможность подкрепить существующий EDIF файл, указать его путь и указать путь генерируемого EDIF файла
            • Разработанное программное обеспечение на RTL уровне позволяет автоматически деть преобразование логической схемы используя стандартные компоненты любого синтезатора, на основе так называемого EDIF(Electronic Design Interchange Format) файла. Интерфейс этого программного обеспечения приведен на рисунке 2.2.
            • Рис.2.2

          Для чтения и записи текстовых данных, Qt предоставляет класс QTextStream. Он может использоваться как для чтения/записи простого текста, так и для файлов с другими текстовыми форматами, такими как HTML, XML и файлов с исходными текстами программ. Он принимает на себя обязательства по преобразованию кодировки символов между Unicode и 8-ми битными кодировками, а так же по разному обрабатывает признак окончания строки, в соответствии с соглашениями, принятыми в различных операционных системах.

          В качестве фундаментального типа данных, QTextStream использует QChar. В дополнение к символьным и строковым данным, QTextStream поддерживает базовые числовые типы языка C++, конвертируя их в/из строки.

          Ниже приводится исходный текст функции saveText(), которая сохраняет список картин в простой текстовый файл:

          bool Gallery::saveText(const QString &fileName)

          {

          QFile file(fileName);

          if (!file.open(IO_WriteOnly | IO_Translate)) {

          ioError(file, tr("Cannot open file %1 for writing"));

          return false;

          }

          QTextStream out(&file);

          out.setEncoding(QTextStream::UnicodeUTF8);

          list<Drawing>::const_iterator it = drawings.begin();

          while (it != drawings.end()) {

          out << *it;

          ++it;

          }

          if (file.status() != IO_Ok) {

          ioError(file, tr("Error writing to file %1"));

          return false;

          }

          return true;

          }

          При открытии файла используется флаг IO_Translate, чтобы корректным образом перевести символ перевода строки в последовательность символов, которая соответствует используемой операционной системе ("/r/n" -- для Windows, "/r" -- для Mac OS X). Затем устанавливается кодировка символов UTF-8, совместимая с ASCII. После этого, в цикле, в файл выводятся описания картин, с помощью перегруженного оператора "<<":

          QTextStream &operator<<(QTextStream &out, const Drawing &drawing)

          {

          out << drawing.myTitle << ":" << drawing.myArtist << ":"

          << drawing.myYear << endl;

          return out;

          }

          Теперь перейдем к функции чтения файла:

          bool Gallery::loadText(const QString &fileName)

          {

          QFile file(fileName);

          if (!file.open(IO_ReadOnly | IO_Translate)) {

          ioError(file, tr("Cannot open file %1 for reading"));

          return false;

          }

          drawings.clear();

          QTextStream in(&file);

          in.setEncoding(QTextStream::UnicodeUTF8);

          while (!in.atEnd()) {

          Drawing drawing;

          in >> drawing;

          drawings.push_back(drawing);

          }

          if (file.status() != IO_Ok) {

          ioError(file, tr("Error reading from file %1"));

          return false;

          }

          return true;

          }

          Все самое интересное в этой функции, заключено внутри цикла while. Он выполняет чтение данных, с помощью оператора ">>", до тех пор, пока не будет достигнут конец файла.

          Реализация оператора ">>" не так тривиальна, поскольку представление текстовых данных не так однозначно. Рассмотрим следующий пример:

          out << "alpha" << "bravo";

          Если исходить из того, что out -- это экземпляр класса QTextStream, то в файл фактически будет записана одна строка "alphabravo". Мы не сможем прочитать данные, просто написав:

          in >> str1 >> str2;

          Фактически, в переменную str1 будет записана строка "alphabravo", а в переменную str2 -- ничего.

          За один раз читается целая строка и затем разбивается на элементы, с помощью функции QStringList::split() :

          QTextStream &operator>>(QTextStream &in, Drawing &drawing)

          {

          QString str = in.readLine();

          QStringList fields = QStringList::split(":", str);

          if (fields.size() == 3) {

          drawing.myTitle = fields[0];

          drawing.myArtist = fields[1];

          drawing.myYear = fields[2].toInt();

          }

          return in;

          }

          При считывание файла данные проходят предварительную обработку, например:

          wholeFile.replace("&", "&amp;");

          wholeFile.replace("<", "&lt;");

          wholeFile.replace(">", "&gt;");

          Чтобы записать данные в файл за одно обращение, можно сначала разместить их в переменной, а затем вывести на диск:

          QString Gallery::saveToString()


Подобные документы

  • Разработка на программируемой логической интегральной микросхеме арифметико-логического устройства для выполнения операций над числами. Описание его функционирования. Коды команд АЛУ. Реализация действия RS триггера. Структура, тело и работа программы.

    курсовая работа [697,1 K], добавлен 16.12.2014

  • Принцип микропрограммного управления. Управляющие автоматы с жесткой и программируемой логикой. Граф-схемы алгоритмов. Синтез управляющего автомата по граф-схеме алгоритма. Построение управляющего автомата с программируемой логикой на основе ПЗУ.

    курсовая работа [263,8 K], добавлен 25.01.2011

  • Понятие степени дисперсности многопроцессорной архитектуры. История создания транспьютеров, общие сведения об их архитектуре как интегральной микросхемы сверхбольшой степени интеграции. Особенности интерфейсов транспьютеров, сфера их применения.

    доклад [744,0 K], добавлен 04.04.2014

  • Разработка плана здания с помощью графического редактора AutoCAD. Описание предметной области и схемы модели данных. Разработка приложения, позволяющего работать с базой с помощью диалогового окна Windows. Программный код формы, прописывание кодов.

    курсовая работа [2,2 M], добавлен 30.07.2010

  • Теоретические основы, адаптация и практическое применение методики интегральной атаки для использования против усеченного варианта блочного симметричного шифра Crypton. Основные требования к механизмам системы, обеспечивающим конфиденциальность.

    дипломная работа [642,7 K], добавлен 19.06.2011

  • Технико-экономическая характеристика ОАО "ТТЗ". Обоснование проектных решений информационного обеспечения комплекса задач. Описание информационной модели (схемы данных). Технологическое, программное обеспечение. Расчет экономической эффективности проекта.

    дипломная работа [81,3 K], добавлен 28.09.2009

  • Этапы разработки модели базы данных: составление логической схемы и создание на ее основе физической формы графическим инструментарием Erwin. CASE-технологии для проектирования прикладного программного обеспечения и конфигурационного управления проектом.

    контрольная работа [370,7 K], добавлен 03.01.2011

  • Схемы взаимодействия между заказчиком и разработчиком программного обеспечения. Качество программного обеспечения и определение основных критериев его оценка на современном этапе, особенности управления на стадиях жизненного цикла, анализ достаточности.

    презентация [114,7 K], добавлен 14.08.2013

  • Разработка алгоритма работы. Выбор и обоснование структурной схемы. Разработка функциональной схемы блока ввода и блока вывода. Проектирование принципиальной схемы блока ввода и блока вывода, расчет элементов. Разработка программного обеспечения.

    курсовая работа [1,7 M], добавлен 25.12.2011

  • Навыки использования теоретического материала и практического опыта для решения задач проектирования и разработки программного обеспечения для систем различного назначения на языке Паскаль. Описание логической структуры, входные и выходные данные.

    курсовая работа [647,0 K], добавлен 23.04.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.