1. Огляд системи

 

Необхідність логічного аналізатора як помічника при налагодженні послідовних ліній зв'язку, наприклад, I2C, 1-Wire і паралельних шин, наприклад, інтерфейсу поширених індикаторів DataVision, очевидна. Однак професійні логічні аналізатори, наприклад, що випускаються під маркою Techtronics і Adgilent, не по кишені не тільки радіоаматорові-розробнику, але навіть і не дуже великим фірмам. Застосування ж аналогового осцилографа обмежується тим, що для спостереження необхідно зациклювати посилку команди, що не завжди приводить до стійкої картинці, особливо якщо в мікроконтролері для якихось інших потреб використовується апаратне переривання, що призводить до неоднаковості часу між посилками і, як наслідок, тремтіння картинки. У той же час, з огляду на поширеність ПЛІС, виготовлення простого аналізатора для налагодження не надто швидкісних шин представляється досить реальним.
Запропонований аналізатор має 16 вхідних каналів, перші 8 з яких використовуються для завдання події, за яким спрацює тригер запису в пам'ять, і статичну пам'ять на 32К 16-розрядних слів. Час вибірки сигналів визначається швидкодією ПЛІС та пам'яті; приміром, Altera з speedgrade 10 при проведенні тимчасового аналізу програмою Max + II показала частоту 1955 МГц, що відповідає часу вибірки (з запасом) в 25МГц (контролер статичної пам'яті витрачає два такту на запис в пам'ять). Можливий спрощений варіант, який можна бачити на розташованій нижче фотографії, при якому ПЛІС тактіруются частотою, що знімається з виходу XTAL2 мікроконтролера – цей варіант використовувався на увазі того, що пам'ять з часом доступу 70нс не дозволяла реалізувати максимально можливу швидкість. При використанні більш високошвидкісної пам'яті на плату встановлюється кварцовий генератор відповідної частоти.
Аналізатор з'єднується з ЕОМ по інтерфейсу RS-232C, передаючи дані для відображення на екрані. Команди та операції передаються від ЕОМ по тому ж інтерфейсу.

2. Опис апаратної частини аналізатора


 

Рис. 1 Макетна Налагоджувальна плата аналізатора Макетна плата аналізатора представлена на малюнку 1. Цифрами на малюнку позначені: 1 – контролер послідовності сигналів на мікросхемі EPM7064, 2 – статична пам'ять 32Кх8 UT62256, 3 – контролер статичної пам'яті на мікросхемі EPM7032, 4 – перетворювач рівнів TTL-RS232C HIN202, 5 – мікроконтролер AT90S2313, 6 – формувач фронтів тактової частоти на инвертор 7404, 7 – кнопка запуску аналізатора, 8 – колодка для підключення досліджуваних сигналів.
Застосування мікроконтролера було продиктоване наявністю в ньому універсального асинхронного прийомопередатчика, що дозволяє здійснювати зв'язок з комп'ютером. Тактіруется мікроконтроллер від кварцу частотою 8 МГц. З контролером последоватльностей мікроконтроллер (МК) пов'язаний двобічної восьмирозрядний шиною, що дозволяє записувати конфігураційні регістри контролера послідовностей і читати його стотояніе.
Контролер послідовностей (КП) здійснює аналіз вхідних даних і в залежності від конфігурації видає ті чи інші керуючі послідовності на контролер пам'яті (КСП). Також КП кожен такт замикається вхідні сигнали, направляючи їх на шину даних пам'яті. Команди та адресу на пам'ять подаються з КСП.
КСП реалізований окремої мікросхемою як через брак вільних висновків і місця в мікросхеми EPM7064, так і тим, що пам'ять може бути замінена на іншу, з певними часовими діаграмами, таким чином, КП не вимагав би заново налагодження.
Для індикації режиму роботи на платі передбачені три світлодіоди: жовтий показує, що харчування на плату подано, червоний – що йде передача даних в ЕОМ, зелений показує, що аналізатор або чекає приходу комбінації заданих сигналів, або зайнятий передачею даних.
Кнопка 7 дозволяє після завантаження конфігураційних регістрів запустити аналізатор на очікування. Якщо управляюча комбінація не змінилася, то для повторного запуску буде достатньо знову натиснути кнопку, не перезавантажуючись регістри заново.

3. Робота з програмною частиною аналізатора


 

Рис 2. Основне вікно програми

На малюнку 2 показано головне вікно програми роботи з логічним аналізатором. Програма була написана на Borland C + + Builder і відтестувати під ОС WinXP. Помічений недолік при роботі з даною ОС – повільне виконання функцій API, тобто від моменту натискання кпопкі до пересилання даних у порт проходить відчутний час.
На вікні програми розташовані: зліва – кнопки управління аналізатором, внизу – радіокнопки завдання умови спрацьовування аналізатора і кнопки управління маркерами. На вікні діаграм відображаються 16 ліній і складена з цих ліній шина. Назви ліній можна змінювати у вікні налаштувань, жовтим підсвічується та лінія, за якою здійснюється пошук перепаду.
Кожній з восьми перших ліній відповідають три радіокнопки: високий рівень, байдуже і низький рівень. Кнопки об'єднуються по "І", тобто якщо задано високий рівень на 5-му каналі і низький на першому, аналізатор спрацює за умовами канал-5 у високому рівні І канал-1 в низькому ". Сигнали на інших лініях будуть ігноруватися КП при аналізі умови спрацьовування. При комбінації радіокнопок, показаної на рис.2, аналізатор спрацьовує при наявності низького рівня на 0-му каналі незалежно від того, в якому стані знаходяться інші лінії.
Кнопка "Запуск" ініціює передачу конфінурірующей послідовності в аналізатор. Аналізатор може працювати в двох режимах: непреивного записування і очікування. Режим очікування включається вибором квадратика "Чекати" під кнопкою запуску перед натисканням цієї кнопки. Режим очікування означає те, що за спрацьовуванні тригера умови КП запускає КСП, відбувається запис в пам'ять і після цього аналізатор зупиняється до прийняття наступної команди. Режим безперервної розгортки означає, що запис в пам'ять відбувається постійно після натискання кнопки 7 на платі аналізатора, по спрацьовуванні ж тригера пам'ять дозапісивается до кінця і аналізатор зупиняється. Кнопка "Перервати" служить для виходу з режиму очікування послідовності (при цьому на платі гасне зелений світлодіод). Кнопка "Вважати" ініціює передачу даних в ЕОМ та відображення їх на тимчасовій діаграмі.


 

Рис 3. Форма налаштувань

У вікно налаштувань можна потрапити або натисканням іконки з молоточком, або через меню Вид / Настройка. У цьому вікні можна змінити колір діаграм, вибрати порт, з яким працює аналізатор, і вказати використовувану частоту дискретизації для правильного відображення тимчасових відміток і вимірювання часових інтервалів на вікні діаграм. Для перейменування назви лінії, виберіть її серед ліній списку "Назви ліній ", введіть нову назву і натисніть клавішу" Enter ". Список автоматично перейде на наступну лінію, нове ж назва буде збережено і відобразиться після натискання кнопки" ОК ".

Рис. 4. Пошук перепадів.

Тимчасову діаграму можна зберегти на диск і потім переглянути або через меню "Файл", або натисканням відповідної іконки. Діаграма збережеться на диску файлом з розширенням *. lan.
Для вимірювання часових інтервалів призначені два маркера. Перший переміщається клацанням лівої клавіші або переміщенням миші з натиснутою лівою клавішею за відповідним місцем діаграми. Аналогічно другий маркер пов'язується з правою кнопкою миші. Внизу показазивается точне положення маркера. Тимчасові мітки на діаграмі для зменшення захаращення мають довжину в чотири символи, тому орієнтуватися слід на зазначену внизу під словами "Відлік №" величину. На рис. 4 показаний приклад округлення величини, зазначеної на тимчасовій мітці. Якщо на діаграмі присутні обидва маркера, то додатково відображається різниця між маркерами. Діаграму при цьому для зручності можна укрупнити, або зменшити, натиснувши відповідні іконки.
Для пошуку наступного перепаду слід спершу виділити сигнал на діаграмі, клацнувши на ньому правою кнопкою миші (назва сигналу засвітяться жовтим і з'явиться маркер), а потім вибрати, в яку сторону від маркера слід шукати перепад. Вибір здійснюється або натисканням сответсвующей іконки (рис. 4), або через меню "Вид", або стрілками курсора "Вліво" або "Вправо", утримуючи клавішу "Alt".

4. Додаток

Тут знаходиться архів у форматі ZIP розміром 360 Кб, в якому зберігаються наступні файли:

  • logic_a.v
  • sram_cnt.v
  • logican.c
  • logican.h
  • schLA.gif
  • LogicAn.sch
  • WaveFormViewer.exe
  • logic_a.pof
  • sram_cnt.pof
  • logican.hex

Файли logic_a.v і sram_cnt.v представляють собою опис КП та КСП на мові Verilog, файли з тією ж назвою, але розширенням *. pof є файлами прошивки Altera. Файли logican.h і logican.c є заголовні та програмний файлами для IAR EW, це програма роботи мікроконтролера. logican.hex – відкомпільований файл для завантаження мікроконтролера у форматі Intel HEX. Файл schLA.gif – Графічний файл із зображенням схеми, LogicAn.sch – схема у форматі програми ACCEL EDA – для підвищення розбірливості. І файл WaveFormViewer.exe – програма, робота якої пояснювалася в п.3.

Автор проекту: Олександр Корніленко (E-mail: seagull@mail.ru )