НТЦ Метротек: як це було. Частина перша (2004-2006)

Вступ
За наполегливим проханням Des333 (чому всі пишуть, а ви ні?) публікую історію «НТЦ Метротек».


Не так давно в Санкт-Петербурзі був такий інститут — ЛОНИИС (Ленінградський галузевої НДІ зв'язку), в якому розробляли різні корисні та некорисні речі, що мають відношення до зв'язку. Зокрема, там був створений повний аналог фінської цифрової телефонної станції DX-200, але на вітчизняних компонентах і називався цей аналог «АТСЦ-90». Хто ж тоді знав, що нашу електроніку чекає? Крім того, в дев'яності роки НДІ активно займався сертифікацією зарубіжного обладнання: від телефонів до офісних АТС, що приносило гарний прибуток і давало можливість розвивати інші напрямки. Наприклад, вимірювання і тестування каналів зв'язку і протоколів сигналізації в телефонії. Був організований доступ як до російських, так і міжнародним стандартам, можна було придбати будь-яке програмне забезпечення і засоби розробки. Крім того, досвід створення цифрової телефонної станції давав можливість робити своє обладнання будь-якої складності. Загалом, було круто. Майже точно так само, як у Стругацьких «Понеділок починається в суботу».
Зараз ЛОНИИСа вже немає, а є Ленінградське відділення Центрального НДІ Зв'язку, тобто ЛО ЦНИИС. На початку «нульових» один директор змінювався іншим, почалися підкилимні війни, і світанок, як це завжди буває, змінився заходом.

Початок і перший млинець
Четверо впевнених у своїх силах і знаннях інженерів вирішили організувати свою компанію по розробці і виробництву вимірювальної техніки для телекомунікацій. Знайшли партнерів, гроші, зареєстрували юрособа, зняли так зване офісне приміщення, відремонтували його і почали випускати новий супер-прилад для аналізу сигналізації СКС-7 і DSS1 на базі надолонника від Compaq iPAQ 3950. Ось такого:

Це чотирипортовий аналізатор протоколів сигналізації СКС-7 і DSS1/PRI. Деталі розробки я опущу, але скажу, що по тим часам (2004 рік) це було досить сміливе рішення (Жалість і вогнемети! Слабоумство і відвага!), тому що існували тоді аналізатори протоколів виглядали приблизно так:

Досить великий ящик з ISA-платами, які підключалися до тестованим трактах ІКМ/E1. А наш дівайс легко поміщався в кишені. Втім, це виявилося одним з чинників, що зіграли фатальну роль у його долі. По-перше, у клієнтам складно було уявити, що пристрій в десять разів менша за розмірами може виконувати ті ж функції, що і здоровенний комп'ютер. По-друге, нам прямим текстом повідомили: «Та ви що, хлопці? Його ж вкрадуть на другий день використання!» Іншою природною причиною невдачі стало те, що надолонні комп'ютери програли битву за користувача і виробники зняли їх з виробництва. А який був зручний у iPAQ 100-піновий роз'єм для підключення зовнішніх пристроїв!

На картинці вище — так званий sleeve з платою інтерфейсів і аналізатора, який ми розробили, всередині. Використаний корпус від CompactFlash-розширення. Тоді запросто можна було замовити будь-які запчастини на Foxconn'е. Втім, незважаючи ні на що, близько 30 дівайсів вдалося цілком вдало прилаштувати.

Тестуємо E1
Треба визнати, що в 2005 році ми мало що знали про тестування ІКМ, але, так як середовищем передачі для сигналізації, яку ми вміли аналізувати, були тракти E1, то нами було прийнято рішення зробити недорогий аналізатор для їх (трактів) вимірювань. Так на світ з'явився аналізатор 2048 кбіт/с Беркут-E1. У процесі розробки наші програмісти дізналися багато нового і цікавого, стандарти були вивчені вздовж і впоперек, забіг по граблях був більш ніж захоплюючий. Помилка у виборі смуги пропускання АЦП для отримання форми імпульсу дала можливість освоїти методи аналізу фізичного сигналу з допомогою стробоскопа; недостатньо уважне читання документації по процесору допомогло згодом розібратися з механізмом brownout детектора, а також з ефектом гістерезису, в результаті якого цей механізм не працював; був написаний контролер дисплея 320x240 на fpga… Та багато чого було! І було здорово.
Тут шматочок ChangeLog'а
2004/08/20
* video.c: вміємо писати букви в задану позицію. лаємося матом [fam]
2004/08/19
+ mem.c: для тестування пам'яті
+ video.c: операції виводу на дисплей. в якості тесту малюємо синусоїду.
* service.c: завантаження програм в epcs вимагає виключення fpga допомогою
виклику epcs_nconf_clr() і epcs_nce_set() [fam]
2004/08/18
* epcs.c: завантаження epcs з flash'а [fam]
* fpga.c: завантаження fpga з epcs [fam]
2004/08/17
* xmodem.c: usart0 знову працює не по перериваннях
xmodem нормально приймає файли [fam]
* service.c: файли записуються в DataFlash, контрольні суми при прийомі
і читанні з flash'а збігаються [fam]
2004/08/12
+ init.c: процедура ініціалізації портів
* timer?.?: ініціалізація таймерів
* flash.c: ура! вміємо записувати в DataFlash. уважно стежимо за
очепятками [fam]
* defines.h: упорядковані іменування інтерфейсів, висновків і портів. defines
для них тепер виглядають так:
DDR_XX -- data direction register для функції XX (DDRB)
DD_XX -- біт напрямки DDR (DDB1)
PORT_XX -- порт (PORTB, наприклад)
IPORT -- input порт (PINB)
XX - власне, функціональна ніжка процесора (PB1)
PIN_XX -- ніжка для input (PINB1) [fam]
2004/08/11
* з'ясовується, що проініціалізувати spi недостатньо. потрібно ще й порти
налаштувати відповідним чином. мучимося. [fam]
2004/08/10


Як би те ні було, прилад ми випустили в mass production, навіть трошки зробили на експорт, а також він став стандартом де-факто для вимірювань ІКМ у вітчизняній телефонії. Судячи з усього, вдалося-таки спіймати удачу за хвіст на спаді хвилі. І це дало нам можливість рухатися далі.

Робимо свій «надолонник»
А тим часом, як я вже говорив, надолонники знімали з виробництва і ми вирішили, що не буде великою складністю зробити що-небудь аналогічне своїми силами. Сказано — зроблено. І почалася розробка приладу на базі процесора Intel PXA270. Своїх сил вже не вистачало, тому залучили Тимура Ташпулатова, який люб'язно погодився допомогти з схемотехнікою і розведенням плати, незважаючи на те, що раніше такими речами не займався. У результаті вийшло ось що:

Експонат в музей компанії, з лінукс інсайд, той же Opie, який ми встановлювали на iPAQ, він же «Беркут-C», виправленими косяками в завантажувачі і qt-додатком в якості прикладу виведення на екран. Як не дивно, все запрацювало майже з першого разу. Найскладніше було, напевно, змусити правильно працювати jtag-інтерфейс.

А потім ми розробили нову плату, яку встановили в міцний металевий корпус. Дизайн корпусу був змодельований в 3-d редакторі Blender за пару ночей, а потім покупці стали говорити: «Хочемо ось цей прилад, модний, з хвилею».
Власне, ось так він виглядав:
image
Тут можна прочитати про приладі трохи більш докладно. Про те, що він модульний, з великим екраном, з батареєю великої ємності. Але є дещо, про що ви по посиланню не дізнаєтеся. Про те, що всередині і що таке добре, а що таке погано з позиції розробника дівайсу. Тому що зараз, дивлячись назад, можна сміливо розповідати про те, що ми зробили добре, а що ні, що категорично не можна було робити, навіщо винаходили велосипед і які завдання треба було вирішувати по-іншому. Але про це, сподіваюся, напишу наступного разу.

Спасибі, що дочитали цю частину історії до кінця.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.