Обработка входящих пакетов
Version 1 (Dmitry Smekhov, 02/26/2012 11:04 pm)
| 1 | 1 | h1. Обработка входящих пакетов | |
|---|---|---|---|
| 2 | 1 | ||
| 3 | 1 | Обработку входящих пакетов выполняет компонент *prq_pkg_receiver* | |
| 4 | 1 | В него входят: | |
| 5 | 1 | **BLOCK_SYNC_SM* - синхронизация алгоритма 64/67 | |
| 6 | 1 | **DESCRAMBLER* - перекодировка | |
| 7 | 1 | ||
| 8 | 1 | После снятия сигнала reset компонет *BLOCK_SYNC_SM* периодически формирует *rx_gearbox_slip*. После проведения синхронизации формируется сигнал *block_sync* и разрешается обработка пакетов. | |
| 9 | 1 | Процесс *pr_is_control_word* проводит поиск слова с HEADER=01 (служебное слово). Если слово найдено, формируется *is_control_word*=1 и начинается подсчёт контрольной суммы. Если в следующем слове обнаружена правильная контрольная сумма, то значение передаётся в *rx2link.control_word* и формируется *rx2link.control_word_we*; | |
| 10 | 1 | Если в слове команды установлен SOF=1 и контрольная сумма правильная, то принимаемые данные передаются в DPRAM: | |
| 11 | 1 | * *rx2link.dpram_data* - шина данных | |
| 12 | 1 | * *rx2link.dpram_we* - сигнал записи в DPRAM | |
| 13 | 1 | * *rx2link.dpram_adr* - адрес памяти | |
| 14 | 1 | Разряды 7..0 адреса формируется счётчиком. Разряды 9..8 определяются из поля BUF_NUM в слове команды. | |
| 15 | 1 | Конец пакета с данными определяется по наличию служебного слова (поле EOF не анализируется). В конце пакета формируется сигнал *rx2link.pkg_eot*. Если контрольная сумма CRC2 правильная, то сигнал *rx2link.pkg_good* устанавливается в 1, если контрольная сумма неправильная, то устанавливается 0. |