Изобретаем жесткий диск. Настройка STM32F4 и Qt Creator

Рассказ про настройку связки ARM GCC + Qt Creator + stlink + Cube MX + STM32F4-DISCOVERY под операционную систему Alt linux версии 8 (8-ая платформа). Автор данного сериала выбрал не простой путь «перехода на Linux». Где-то получается… Где-то пока не очень. Да, open source, он такой… Зато, никому-ничего не должен 🙂

Надёжность автомобильных видеорегистраторов при ДТП

Благодарим магазин ТопРадар за предоставленные на тест видеорегистраторы.

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

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

В рамках работы над myDriveRecorder Recovery, предназначенном для восстановления данных, нами проводились эксперименты, в ходе которых, в числе прочего, из видеорегистраторов в процессе записи извлекались карты памяти. После чего с них снимались образы, которые затем изучались разработчиками программ для восстановления с видеорегистраторов, нашими партнёрами из SysDev Laboratories.

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

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

Ниже приведены краткие резюме специалиста, изучившего записи с тестировавшихся устройств:

BlackVue DR450-1CH

  • формат записи — mov (QTFF), кодек — h.264;
  • кодирование видео — с вынесенной конфигурацией AVCC (декодирование кадров вне контекста невозможно);
  • при вытаскивании флешки запись обрывается: есть заголовок файла, данные файла, но нет индексов (для чтения структуры) и конфигурации декодера, что делает проигрывание/восстановление вне контекста невозможным;
  • спец. софт восстанавливает видео в контексте (конфигурация видео предопределена в софте, также используется из «соседних» файлов);
  • точку обрыва видео оценить трудно, т.к. секундомер на записи не виден (похоже, что все записано на момент «потери» флешки; визуально потери составляют значительно менее секунды).

BlackVue DR750s-1CH

  • по формату и записи — практически аналогичен предыдущей модели (отличается интеграцией метаданных в mov-файл);
  • извлечение карты памяти выполнено на 28й секунде, тогда как запись обрывается на 23й; при этом последние 5МБ данных файла не записаны на флешку.

CNR-N9710

  • формат записи похож на BlackVue DR450-1CH; отличается вставками метаданных для «выравнивания потока»;
  • при обрыве записи на 11й секунде, восстанавливается видео до 09.66 секунды.

Garmin 45

  • формат записи похож на BlackVue DR450-1CH; отличается тем, что размер файла фиксирован (дополнен в конце нулями);
  • обрыв записи происходит тоже подобно; при вытаскивании карты на 36 секунде, восстанавливается до 34.55 секунды, т.е. возможна потеря последней секунды.

Garmin 55

  • конфиг и результат полностью аналогичен Garmin 45.

Hybrid mini

  • в целом, по формату записи, аналогичен Garmin;
  • но, в отличие от него, писал информацию до последнего момента (карта извлечена на 36й секунде, фактический обрыв записанного потока — на 35.20 секунде);
  • кроме этого, даже последний кадр частично записан (с повреждением); пока это самый надёжный регистратор в плане «аварийной записи».

Neoline wide S55

  • в отличие от BlackVue DR450-1CH, хранит метаданные видео в начале файла; пока файл не завершён — никакие метаданные файла не записываются вообще;
  • заголовок файла пишется отдельно от файла, что делает «черновое восстановление» файлов (в случае «формата» флешки) очень сложным (невозможным без ручной работы либо спец. софта);
  • в случае «потери» флешки, заголовок файла (все метаданные) не пишется вообще; т.е. без спец. софта/ручной работы восстановление невозможно в принципе;
  • после «потери флешки» — последний кадр не записан полностью, хотя время на записи 39.20 сек при заявленном изъятии на 41й секунде (скорей всего потеряна последняя секунда).

Trendvision TDR-719

  • по формату хранения данных похож на предыдущий;
  • восстановлено до 40.1 сек. при извлечении карты на 41й секунде (похоже, что все данные успевают записаться).

Trendvision TDR-708

  • аналогично Trendvision TDR-719 (восстановление 30.67сек при извлечении на 31й секунде).

 

Выводы

С точки зрения надёжности видеофиксации в условиях нашего эксперимента лучшие результаты показали:

  • Hybrid mini
  • Trendvision

Сложности при восстановлении данных:

  • Все протестированные устройства не позволяют восстанавливать видео без контекста (нужен хотя бы один «живой» файл для получения конфигурации кодека, либо конфиг должен быть в базе софта).
  • Восстановление с первых шести возможно в «черновом режиме» с последующей пост-обработкой «битых» данных (без конфига и индекса).
  • Последние два можно восстанавливать только покадрово (конфиг сохраняется отдельно от видео, отдельным фрагментом ФС, в случае сбоя в записи из-за ДТП не сохраняется вообще).

Отвечаю на вопросы аудитории. Часть 1.

Комментарии к видео: https://youtu.be/mZe_tzGsqeU

Рассохся диск?! Это как? Стекло-металло-керамика?
Изменилась геометрия начались промахи… там же соленоид стоит, который следит за дорожкой. Он то как может начать промахиваться?

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

Но это еще не все 🙂 Есть еще высота полета головки, которая зависит от параллельности вертикальной оси пакета дисков и оси закрепления поворотного механизма головки. Тут возможна ситуации: а) головка летит выше, чем нужно; читать может, но уже не пишет; б) летит слишком высоко, то ни писать ни читать не может; в) летит низко и начинает пилить/царапать диск. И вот когда диск перекашивает все вышесказанное начинает вылазить. Если просто разобрать и собрать диск, то писать он уже точно не будет и будет покрываться BAD-блоками.

Отключение какой функции SMART приводило к восстановлению производительности? На ролике отключается все подряд, интересно узнать какая именно функция приводила к деградации и почему?

Автор сегейты так глубоко не разбирал, но отключать нужно все, что включено. Так как, скорее всего, реакция на термические нестабильности подключена к каждой «галочке», а именно она и вызывает такое поведение. В случае WD известно точно, что все это буйство зависаний и торможений происходит именно из-за попытки побороть термические нестабильности. Но там (прошлый ролик) это решается очисткой списка (модуль 32h) с подозрительными нестабильными местами магнитной поверхности. 

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

Изобретаем жесткий диск. Часть 10. Работаем с макетами.

Итак, новости проекта. Вначале по закупкам и розыскам материалов.

1) Пришел генератор на 100 МГЦ и диоды из «чип и дип» — можно запустить АЦП AD6645. Параллельно нашел, что генератор на 106 МГц можно выпаять из старых Fibre Channel дисков.

2) Раздобыл еще 3 диска из того же семейства, что и изначальный WD21000. Вот какие диски и версии ПЗУ сейчас есть:

62-602111-064 WD21000

62-602202-062 WD21200

62-602111-064 WD31600 — эту разбираем

62-602111-065 WD31600

Дополнил схему WD21000 на GitHub’е. Обновленный файл схемы: https://github.com/rlabru/WD21000/blob/master/sch/WD21000sch.pdf

Исходные файлы схемы в Kicad: https://github.com/rlabru/WD21000/blob/master/sch/WD21000sch.rar

Видео ролик по отпайке цифровых микросхем с пояснениями:

В ближайших сериях автор запланировал попробовать подключить STM32 к подготовленной плате WD31600 и попробовать запустить плату АЦП AD6645.

Замена USB платы на SATA для дисков Samsung

Не далее как недавно автор (он же ваш покорный слуга) купил на близлежащей барахолке жесткий диск Samsung HM502HX на 500 Гб. При подключении по USB диск не отвечает. Но при этом слышно, что по подаче питания запуск двигателя и перемещение головок происходят нормально. Некоторое время ранее, на той же барахолке, был куплен диск HM250HI из этого же семейства, только 250 Гб и с платой SATA. Тогда же, в процессе его диагностики, выяснилось, что у диска некоторое количество BAD-блоков. Так как диски Samsung не являются специализацией автора, то скрытие их BAD-блоков нельзя назвать желанным занятием в часы досуга. Это обстоятельство привело к тому, что диск спокойненько пылился, дожидаясь своего звездного часа использования как донора запчастей, что, собственно, ныне и случилось.

Внешний вид пациента:

070_pic1

Continue reading

Изобретаем жесткий диск. Часть 8. Серводемодулятор.

А вот и потерявшаяся часть 8, которая идет после 9-ой!

В нашем распоряжении имеется документация от микросхемы AD7775, но в исследуемом нами диске установлена ADSC900JR с виду очень напоминающая первую. Есть ли между ними схожие функции и отличающиеся? Давайте разбираться.

Микросхема ADSC900JR установленная на плате WD 21000

Микросхема ADSC900JR установленная на плате WD 21000

Continue reading

Изобретаем жесткий диск. Часть 9. Первый орден/макет.

Как обычно, орда/империя хочет похитить секрет бессмертия/магнитной записи у заокеанских и не очень джедаев 🙂

После некоторого перерыва продолжаем разбирать старый WD21000 емкостью аж целый гигабайт! Но теперь мы, кроме как разбирать, будем рядом еще постепенно собирать обратно. Правда, автор еще пока не располагает достаточным количеством дисков из семейства нашего подопытного. Но, думаю, это решится в ближайшие месяц/два. А пока есть много, что еще поделать.

В таком вот акцепте, я запланировал собрать два макета.

Первый макет нужен для непрерывного считывания большого потока информации, как цифровой, так и аналоговой в персональный компьютер (около 100-150 мегабайт/сек) через USB 3.0.

Для аналогового сигнала был выбран АЦП Analog Device AD6645 для которого на Aliexpress продается отличная демонстрационная плата. Она там одна, так что кому нужно без труда ее найдут.

Вот так она пришла от продавца:

Посылочка с Aliexpress

Посылочка с Aliexpress

Continue reading

PC 3000: зависающие HDD на примере Seagate

Сегодня мы продолжим разговор про проблему зависающих дисков и рассмотрим жесткий диск Seagate. Посмотрим как он себя ведет.

Pic01

Continue reading