Я сделал HDLC контроллер на Verilog. Отлажен и работает в реальных схемах на ПЛИС Actel (Ex256). Правда, он заточен под наши потребности (требовалось уложиться в минимальные ресурсы ПЛИС). Мы заменяли параллельную шину управления периферийными блоками на последовательную, и в качестве протокола этой последовательной шины выбрали HDLC, поскольку центральный процессор (MC68360) содержит контроллер HDLC. В том виде, в каком он реализован у меня, контроллер принимает пакеты из двух байт со стандартным CRC (первый байт – адрес и код команды, второй байт – данные), а передает пакеты фиксированного размера (16 байт + CRC). В принципе, несложно доработать до любого размера передаваемых и принимаемых пакетов. Мне просто негде было их хранить (ПЛИС-ка очень простая – Ex256), а контроллер, в простых блоках, мы не используем. Если интересно вышлю исходники.
|