Обработка входящих пакетов
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. |