Задача состояла в разработке и тестировании программного кода для коммуникационного процессора, обеспечивающего все функции, связанные с банкоматами. Проект включал:
- изучение аналогичных коммуникационных процессоров, включая Atomizer, Power QUICC II, другие
- обзор соответствующих стандартов
- определение функций, которые должны быть реализованы во встроенном ПО (см. список функций ниже)
- разработка архитектуры встроенного ПО и структур данных
- разработка функциональной модели встроенного ПО в ANSI C
- разработка прототипа хост-драйвера
- разработка набора тестов для проверки функциональности
- разъяснение аппаратной архитектуры чипа
- разработка имитатора целевого оборудования (включая коммуникационный процессор ISS, контроллеры и модели каналов передачи данных)
- преобразование модели C в проприетарный язык ассемблера
- тестирование встроенного ПО на симуляторе и улучшение охвата тестированием
- разработка тестов производительности оценка производительности встроенного ПО с помощью симулятора
- разработка инструментов оптимизации кода встроенного ПО
- дополнительная ручная оптимизация кода в соответствии с требованиями к размеру и производительности
- проверка кода на модели процессора Verilog
- тестирование функциональности на реальном процессоре
- создание проекта документа "Руководство пользователя встроенного ПО банкомата".
Проект был завершен в срок. Определенная функциональность была полностью реализована в прошивке. Тесты прошивки были успешно проведены на реальном оборудовании.
Встроенное по укладывается в 8 тысяч слов инструкций. По завершении проекта для обслуживания было зарезервировано около 200 слов инструкций. Цель по производительности ADSL достигнута. Производительность VDSL достигнута с учетом ограничений (дескрипторы хранятся в локальной памяти).
Особенности встроенного ПО
Список основных функций разработанного микропрограммного обеспечения включает в себя:
-
UTOPIA Level 2 Master interface up to 31 PHYs supported
- FIFO full and periodical timer transmit rate modes.
- Supports up to 256 connection descriptors in local memory up to 8K connection descriptors in external memory
- No restrictions on buffer alignment
- Buffer management
-
AAL0
- switch mode
- optional CRC10 insertion/check.
-
AAL1
- configurable support of partially-filled cells
- configurable support for structured data transfer
- structured pointer synchronization
- sequence number check
- lost/misinserted cells detection dummy cells insertion
- SRTS generation, clock recovery.
-
AAL2
- CPCS (as per ITU-T I.363.2) implemented in firmware
- support for different asynchronous data sources (e.g. DSP)
- Optional Combined Use timer support.
- AAL5
-
ATM Forum Traffic Management 4.1 support:
- CBR, UBR, VBR (type 1, 2), GFR traffic types
- UBR+ (UBR with minimum desired cell rate specified) support
- ABR support, resource management cells handled in firmware
- Static (CBR-only) and dynamic scheduling algorithms implemented.
-
ITU-T I.610 (02/99) OAM
- F4 and F5 flow support
- I.610 Performance Monitoring implemented in firmware
- In-band OAM cell transmission.
- Statistics gathering.