Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Структуры данных | Макросы | Определения типов | Перечисления | Функции
Файл mkpd.h

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем МКПД. Подробнее...

#include "types.h"

См. исходные тексты.

Структуры данных

struct  MKPD_T
 Структура для доступа к регистрам МКПД. Подробнее...
 
struct  Command_Word_Bits
 Структура командного слова (КС) Подробнее...
 
union  Command_Word
 Структура для доступа к командному слову (КС) Подробнее...
 
struct  Reply_Word_Bits
 Содержимое ответного слова (ОС) Подробнее...
 

Макросы

#define MKPD_BCONE0_SUB_ADDR1(x)   ((uint32_t)((x & 0x1F) << 0))
 Макросы для регистра BCONE0. Подробнее...
 
#define MKPD_BCONE0_EP_ADDR1(x)   ((uint32_t)((x & 0x1F) << 5))
 
#define MKPD_BCONE0_NUM(x)   ((uint32_t)((x & 0x1F) << 10))
 
#define MKPD_BCONE0_SUB_ADDR0(x)   ((uint32_t)((x & 0x1F) << 16))
 
#define MKPD_BCONE0_EP_ADDR0(x)   ((uint32_t)((x & 0x1F) << 21))
 
#define MKPD_BCONE2_TYPE_TRANS(x)   ((uint32_t)((x & 0x0F) << 0))
 Макросы для регистра BCONE2. Подробнее...
 
#define MKPD_BCONE2_MANAGE_CODE(x)   ((unsigned int)((x & 0x01) << 4))
 
#define MKPD_BCONE2_ENA   ((uint32_t)(1 << 8))
 
#define MKPD_BCONE2_COM_DATA(x)   ((uint32_t)((x & 0xFFFF) << 16))
 
#define MKPD_BCONE3_REPLY_WORD(x)   ((uint32_t)(x & 0xFFFF))
 Макросы для регистра BCONE3. Подробнее...
 
#define MKPD_BCONE3_REPLY(x)   ((uint32_t)((x >> 16) & 0xFFFF))
 
#define MKPD_BCONE4_STATUS   ((uint32_t)(1 << 0))
 Макросы для регистра BCONE4. Подробнее...
 
#define MKPD_BCONE4_ERROR   ((uint32_t)(1 << 8))
 
#define MKPD_BCONE4_TIMEOUT   ((uint32_t)(1 << 16))
 
#define MKPD_BCTWO0_SUB_ADDR1(x)   ((uint32_t)((x & 0x1F) << 0))
 Макросы для регистра BCTWO0. Подробнее...
 
#define MKPD_BCTWO0_EP_ADDR1(x)   ((uint32_t)((x & 0x1F) << 5))
 
#define MKPD_BCTWO0_NUM(x)   ((uint32_t)((x & 0x1F) << 10))
 
#define MKPD_BCTWO0_SUB_ADDR0(x)   ((uint32_t)((x & 0x1F) << 16))
 
#define MKPD_BCTWO0_EP_ADDR0(x)   ((uint32_t)((x & 0x1F) << 21))
 
#define MKPD_BCTWO2_TYPE_TRANS(x)   ((uint32_t)((x & 0x0F) << 0))
 Макросы для регистра BCTWO2. Подробнее...
 
#define MKPD_BCTWO2_MANAGE_CODE   ((uint32_t)(1 << 4))
 
#define MKPD_BCTWO2_ENA   ((uint32_t)(1 << 8))
 
#define MKPD_BCTWO2_COM_DATA(x)   ((uint32_t)((x & 0xFFFF) << 16))
 
#define MKPD_BCTWO3_REPLY_WORD(x)   ((uint32_t)(x & 0xFFFF))
 Макросы для регистра BCTWO3. Подробнее...
 
#define MKPD_BCTWO3_REPLY(x)   ((uint32_t)((x >> 16) & 0xFFFF))
 
#define MKPD_BCTWO4_STATUS   ((uint32_t)(1 << 0))
 Макросы для регистра BCTWO4. Подробнее...
 
#define MKPD_BCTWO4_ERROR   ((uint32_t)(1 << 8))
 
#define MKPD_BCTWO4_TIMEOUT   ((uint32_t)(1 << 16))
 
#define MKPD_EP1_FEP1   ((uint32_t)(1 << 0))
 Макросы для регистра EP1. Подробнее...
 
#define MKPD_EP1_MAN   ((uint32_t)(1 << 1))
 
#define MKPD_EP1_FEP0   ((uint32_t)(1 << 2))
 
#define MKPD_EP1_BUSY   ((uint32_t)(1 << 3))
 
#define MKPD_EP1_RXGROUP   ((uint32_t)(1 << 4))
 
#define MKPD_EP1_RESERV(x)   ((uint32_t)((x & 0x03) << 5))
 
#define MKPD_EP1_SREQ   ((uint32_t)(1 << 8))
 
#define MKPD_EP1_ERROR   ((uint32_t)(1 << 8))
 
#define MKPD_EP1_RDATA(x)   ((uint32_t)((x & 0xFFFF) << 16))
 
#define MKPD_EP2_EP_COM_ERR   ((uint32_t)(1 << 0))
 Макросы для регистра EP2. Подробнее...
 
#define MKPD_EP2_EP_COM_TIMEOUT   ((uint32_t)(1 << 1))
 
#define MKPD_EP3_EP_COM_DATA(x)   ((uint32_t)(x & 0xFFFF))
 Макросы для регистра EP3. Подробнее...
 
#define MKPD_EP3_EP_COM(x)   ((uint32_t)((x >> 16) & 0xFFFF))
 
#define MKPD_SETTING0_EP_ADDR(x)   ((uint32_t)((x & 0x1F) << 0))
 Макросы и типы для регистра SETTING0. Подробнее...
 
#define MKPD_SETTING0_SYS_CLK(x)   ((uint32_t)((x & 0xFF) << 24))
 
#define MKPD_SETTING1_EDGE(x)   ((uint32_t)((x & 0xFF) << 8))
 Макросы для регистра SETTING1. Подробнее...
 
#define MKPD_SETTING1_RWAIT(x)   ((uint32_t)((x & 0xFF) << 16))
 
#define MKPD_SETTING1_TIME(x)   ((uint32_t)((x & 0x0F) << 24))
 
#define MKPD_SETTING2_500NS(x)   ((unsigned int)((x & 0xFF) << 0))
 Макросы и типы для регистра SETTING2. Подробнее...
 
#define MKPD_SETTING2_INVTX(x)   ((unsigned int)((x & 0x01) << 8))
 
#define MKPD_SETTING2_INCWITH(x)   ((unsigned int)((x & 0x01) << 9))
 
#define MKPD_SETTING2_DECDIS(x)   ((unsigned int)((x & 0x0F) << 10))
 
#define MKPD_SETTING2_NOACTTIME(x)   ((unsigned int)((x & 0xFF) << 16))
 
#define MKPD_SETTING2_BCWAITREPLY(x)   ((unsigned int)((x & 0xFF) << 24))
 
#define MKPD_SETTING2_NOACTTIME(x)   ((uint32_t)((x & 0xFF) << 16))
 
#define MKPD_SETTING2_BCWAITREPLY(x)   ((uint32_t)((x & 0xFF) << 24))
 
#define MKPD_SETTING3_1250NS(x)   ((uint32_t)((x & 0xFF) << 0))
 Макросы для регистра SETTING3. Подробнее...
 
#define MKPD_SETTING3_1500NS(x)   ((uint32_t)((x & 0xFF) << 8))
 
#define MKPD_SETTING3_1750NS(x)   ((uint32_t)((x & 0xFF) << 16))
 
#define MKPD_SETTING3_2250NS(x)   ((uint32_t)((x & 0xFF) << 24))
 
#define MKPD_INTERRUPT_BC_INT   ((uint32_t)(1 << 0))
 Макросы для регистра INTERRUPT. Подробнее...
 
#define MKPD_INTERRUPT_EP_INT0   ((uint32_t)(1 << 1))
 
#define MKPD_INTERRUPT_EP_INT1   ((uint32_t)(1 << 2))
 
#define MKPD_INTERRUPT_MON_INT   ((uint32_t)(1 << 3))
 
#define MKPD_MAX_WORD_IN_PACKET   32
 Макросы, относящиеся к логике работы контроллера Подробнее...
 
#define MKPD_EP_SUBADDR_COUNT   32
 
#define MKPD_MANAGE_MODE_MASK   0xF
 
#define MKPD_EP_GROUP_ADDR   0x1F
 

Определения типов

typedef union Command_Word Command_Word_T
 Структура для доступа к командному слову (КС) Подробнее...
 

Перечисления

enum  MKPD_SETTING0_MODE_T { MKPD_SETTING0_MODE_DISABLED = ((uint32_t)(0 << 8)), MKPD_SETTING0_MODE_BC = ((uint32_t)(1 << 8)), MKPD_SETTING0_MODE_EP = ((uint32_t)(2 << 8)), MKPD_SETTING0_MODE_M = ((uint32_t)(3 << 8)) }
 
enum  MKPD_SETTING0_CHANNEL_T { MKPD_SETTING0_CHANNEL_A = ((uint32_t)(0 << 16)), MKPD_SETTING0_CHANNEL_B = ((uint32_t)(1 << 16)) }
 
enum  MKPD_DECDIS_MODE_T { MKPD_SETTING2_DECDIS_A = ((uint32_t)(1 << 10)), MKPD_SETTING2_DECDIS_B = ((uint32_t)(1 << 11)), MKPD_SETTING2_DECDIS_C = ((uint32_t)(1 << 12)), MKPD_SETTING2_DECDIS_D = ((uint32_t)(1 << 13)) }
 
enum  MKPD_TX_T { TX_ONE, TX_TWO }
 Выбор интерфейса передачи для контроллера шины Подробнее...
 

Функции

void MKPD_Set_System_Clock (MKPD_T *pMKPD, uint32_t sys_clk)
 Установка значения системной частоты Подробнее...
 
static void MKPD_Set_Channel (MKPD_T *pMKPD, uint32_t channel)
 Установка рабочего канала для контроллера шины. Подробнее...
 
static void MKPD_Set_Mode (MKPD_T *pMKPD, uint32_t mode)
 Установка режима работы блока. Подробнее...
 
static void MKPD_Set_BC_Transaction_Format2 (MKPD_T *pMKPD, MKPD_TX_T index, unsigned int type_trans, unsigned int manage_code)
 Установка формата транзакции Подробнее...
 
static void MKPD_Set_EP_Address (MKPD_T *pMKPD, uint32_t ep_addr)
 Установка адреса оконечного устройства. Подробнее...
 
void MKPD_Set_Interpacket_Time (MKPD_T *pMKPD, uint32_t time)
 Установка временного интервала между передачей пакетов Подробнее...
 
void MKPD_Set_Wait_Time (MKPD_T *pMKPD, uint32_t rwait)
 Установка времени ожидания ОС или СД в режиме работы КШ и ОУ Подробнее...
 
void MKPD_Set_Edge_Time (MKPD_T *pMKPD, uint32_t edge)
 Установка времени запрещенного состояния дифференциального сигнала Подробнее...
 
static void MKPD_Set_IncWith (MKPD_T *pMKPD, unsigned int IncWith)
 Настройка сигнала разрешения передачи Подробнее...
 
static void MKPD_Set_DecoderDisable (MKPD_T *pMKPD, unsigned int Disable_mask)
 Программное отключение декодеров Подробнее...
 
static void MKPD_Set_NoActivity_Time (MKPD_T *pMKPD, unsigned int Noacttime)
 Настройка времени ожидания отсутствия активности на линии, не менее 1.3 мкс Подробнее...
 
static void MKPD_Set_BCWaitReply_Time (MKPD_T *pMKPD, unsigned int Bcwaitreply)
 Настройка времени ожидания ОС в режиме КШ Подробнее...
 
static void MKPD_Set_Clk_500NS (MKPD_T *pMKPD, unsigned int Clk)
 Тонкая настройка количества тактов системной частоты в 500 нс Подробнее...
 
static void MKPD_Set_Clk_1250NS (MKPD_T *pMKPD, unsigned int Clk)
 Тонкая настройка количества тактов системной частоты в 1250 нс Подробнее...
 
static void MKPD_Set_Clk_1500NS (MKPD_T *pMKPD, unsigned int Clk)
 Тонкая настройка количества тактов системной частоты в 1500 нс Подробнее...
 
static void MKPD_Set_Clk_1750NS (MKPD_T *pMKPD, unsigned int Clk)
 Тонкая настройка количества тактов системной частоты в 1750 нс Подробнее...
 
static void MKPD_Set_Clk_2250NS (MKPD_T *pMKPD, unsigned int Clk)
 Тонкая настройка количества тактов системной частоты в 2250 нс Подробнее...
 
static int MKPD_BC_IsReady (MKPD_T *pMKPD, MKPD_TX_T index)
 Определяет готовность контроллера шины к новой транзакции Подробнее...
 
uint32_t MKPD_Get_Interrupt (MKPD_T *pMKPD)
 Установка приёмной частоты сигнала Подробнее...
 
void MKPD_Set_Inverting (MKPD_T *pMKPD, uint32_t invert_params)
 Настройка параметров инвертирования дифференциального сигнала Подробнее...
 
void MKPD_Loopback_Enable (MKPD_T *pMKPD)
 Включение местного заворота линии Подробнее...
 
void MKPD_Loopback_Disable (MKPD_T *pMKPD)
 Отключение местного заворота линии Подробнее...
 
static void MKPD_Set_BC_TX_Params (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t ep_addr0, uint32_t sub_addr0, uint32_t ep_addr1, uint32_t sub_addr1, uint32_t num)
 Установка параметров транзакции Подробнее...
 
static void MKPD_Set_BC_DMA_Address (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t dma_addr)
 Установка адреса DMA. Подробнее...
 
static void MKPD_ConfigBusController (MKPD_T *pMKPD, uint32_t address_one, uint32_t address_two, uint32_t channel)
 Настройка контроллера шины Подробнее...
 
void MKPD_Set_BC_COM_Data (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t com_data)
 Установка слова данных для передачи в транзакциях формата 6 или 10. Подробнее...
 
void MKPD_Set_BC_Transaction_Format (MKPD_T *pMKPD, MKPD_TX_T index, uint32_t type_trans)
 Установка формата транзакции Подробнее...
 
static void MKPD_BC_Start_Transaction (MKPD_T *pMKPD, MKPD_TX_T index)
 Установка формата транзакции Подробнее...
 
FlagStatus MKPD_BC_IsWaiting (MKPD_T *pMKPD, MKPD_TX_T index)
 Определяет, находится ли транзакция в очереди на передачу Подробнее...
 
FlagStatus MKPD_BC_IsSending (MKPD_T *pMKPD, MKPD_TX_T index)
 Определяет, передается ли транзакция в настоящий момент Подробнее...
 
FlagStatus MKPD_BC_IsError (MKPD_T *pMKPD, MKPD_TX_T index)
 Возвращает значение флага ошибки транзации Подробнее...
 
FlagStatus MKPD_BC_IsTimeout (MKPD_T *pMKPD, MKPD_TX_T index)
 Возвращает значение флага таймаута транзации Подробнее...
 
uint32_t MKPD_BC_Reply_Word (MKPD_T *pMKPD, MKPD_TX_T index)
 Возвращает ответное слово, полученное от ОУ Подробнее...
 
uint32_t MKPD_BC_Reply_Data (MKPD_T *pMKPD, MKPD_TX_T index)
 Возвращает ответные данные, полученные от ОУ (для транзакций формата 5) Подробнее...
 
static unsigned int MKPD_StartMessage (MKPD_T *pMKPD, MKPD_TX_T index, unsigned int type_trans, unsigned int ep_addr0, unsigned int sub_addr0, unsigned int ep_addr1, unsigned int sub_addr1, unsigned int num, unsigned int timeout, unsigned int manage_code)
 Передача сообщения от КШ Подробнее...
 
static void MKPD_Set_Endpoint_DMA_Address (MKPD_T *pMKPD, uint32_t dma_ep)
 Установка адреса первого байта области памяти ОУ Подробнее...
 
static void MKPD_ConfigEndpoint (MKPD_T *pMKPD, uint32_t address, uint32_t ep_address)
 Настройка оконечного устройства Подробнее...
 
void MKPD_Set_Endpoint_RDATA (MKPD_T *pMKPD, uint32_t rdata)
 Установка слова данных для передачи от ОУ Подробнее...
 
static void MKPD_Set_Endpoint_Attributes (MKPD_T *pMKPD, uint32_t attributes)
 Установка признаков в ОС ОУ Подробнее...
 
void MKPD_Set_InvTX (MKPD_T *pMKPD, unsigned int invTX)
 Установка инвертирования дифференциального сигнала на передаче Подробнее...
 
uint32_t MKPD_Get_Endpoint_COM_Data (MKPD_T *pMKPD)
 Возвращает принятое от КШ слово данных Подробнее...
 
FlagStatus MKPD_Get_Endpoint_COM_Timeout (MKPD_T *pMKPD)
 Возвращает значение флага таймаута Подробнее...
 
FlagStatus MKPD_Get_Endpoint_COM_Error (MKPD_T *pMKPD)
 Возвращает значение флага ошибки в слове данных (используется в транзакциях №6, 10) Подробнее...
 
uint32_t MKPD_Get_Endpoint_Command_Word (MKPD_T *pMKPD)
 Возвращает командное слово, принятое ОУ Подробнее...
 
void MKPD_Set_Monitor_DMA_Address (MKPD_T *pMKPD, uint32_t dma_monitor_addr)
 Задание начального адреса DMA для монитора Подробнее...
 
void MKPD_Set_Monitor_Memory_Size (MKPD_T *pMKPD, uint32_t memory_size)
 Задание размера буфера монитора Подробнее...
 
void MKPD_Set_Monitor_Threshold (MKPD_T *pMKPD, uint32_t threshold)
 Задание порогового значения для монитора Подробнее...
 
void MKPD_ConfigMonitor (MKPD_T *pMKPD, uint32_t address, uint32_t size, uint32_t threshold)
 Настройка монитора Подробнее...
 

Подробное описание

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с аппаратным модулем МКПД.

Заметки
МКПД - Мультиплексный канал передачи данных, согласно ГОСТ Р 52070-2003 Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.

См. определение в файле mkpd.h

Макросы

§ MKPD_BCONE0_EP_ADDR0

#define MKPD_BCONE0_EP_ADDR0 (   x)    ((uint32_t)((x & 0x1F) << 21))

адрес оконечного устройства, которому предназначается командное слово

См. определение в файле mkpd.h строка 72

§ MKPD_BCONE0_EP_ADDR1

#define MKPD_BCONE0_EP_ADDR1 (   x)    ((uint32_t)((x & 0x1F) << 5))

адрес оконечного устройства для второго командного слова

См. определение в файле mkpd.h строка 69

§ MKPD_BCONE0_NUM

#define MKPD_BCONE0_NUM (   x)    ((uint32_t)((x & 0x1F) << 10))

количество передаваемых или принимаемых слов данных

См. определение в файле mkpd.h строка 70

§ MKPD_BCONE0_SUB_ADDR0

#define MKPD_BCONE0_SUB_ADDR0 (   x)    ((uint32_t)((x & 0x1F) << 16))

подадрес оконечного устройства, которому предназначается командное слово

См. определение в файле mkpd.h строка 71

§ MKPD_BCONE0_SUB_ADDR1

#define MKPD_BCONE0_SUB_ADDR1 (   x)    ((uint32_t)((x & 0x1F) << 0))

Макросы для регистра BCONE0.

подадрес оконечного устройства для второго командного слова

См. определение в файле mkpd.h строка 68

§ MKPD_BCONE2_COM_DATA

#define MKPD_BCONE2_COM_DATA (   x)    ((uint32_t)((x & 0xFFFF) << 16))

слово данных для передачи

См. определение в файле mkpd.h строка 80

§ MKPD_BCONE2_ENA

#define MKPD_BCONE2_ENA   ((uint32_t)(1 << 8))

запуск начала транзакции

См. определение в файле mkpd.h строка 79

§ MKPD_BCONE2_MANAGE_CODE

#define MKPD_BCONE2_MANAGE_CODE (   x)    ((unsigned int)((x & 0x01) << 4))

код транзакции

См. определение в файле mkpd.h строка 78

§ MKPD_BCONE2_TYPE_TRANS

#define MKPD_BCONE2_TYPE_TRANS (   x)    ((uint32_t)((x & 0x0F) << 0))

Макросы для регистра BCONE2.

код транзакции

См. определение в файле mkpd.h строка 77

§ MKPD_BCONE3_REPLY

#define MKPD_BCONE3_REPLY (   x)    ((uint32_t)((x >> 16) & 0xFFFF))

ответное слово на командное слово транзакции

См. определение в файле mkpd.h строка 86

§ MKPD_BCONE3_REPLY_WORD

#define MKPD_BCONE3_REPLY_WORD (   x)    ((uint32_t)(x & 0xFFFF))

Макросы для регистра BCONE3.

слово данных, которое передается с ответным словом

См. определение в файле mkpd.h строка 85

§ MKPD_BCONE4_ERROR

#define MKPD_BCONE4_ERROR   ((uint32_t)(1 << 8))

маска для бита ошибки

См. определение в файле mkpd.h строка 92

§ MKPD_BCONE4_STATUS

#define MKPD_BCONE4_STATUS   ((uint32_t)(1 << 0))

Макросы для регистра BCONE4.

маска для бита статуса

См. определение в файле mkpd.h строка 91

§ MKPD_BCONE4_TIMEOUT

#define MKPD_BCONE4_TIMEOUT   ((uint32_t)(1 << 16))

маска для бита тайм-аута

См. определение в файле mkpd.h строка 93

§ MKPD_BCTWO0_EP_ADDR0

#define MKPD_BCTWO0_EP_ADDR0 (   x)    ((uint32_t)((x & 0x1F) << 21))

адрес оконечного устройства, которому предназначается командное слово

См. определение в файле mkpd.h строка 102

§ MKPD_BCTWO0_EP_ADDR1

#define MKPD_BCTWO0_EP_ADDR1 (   x)    ((uint32_t)((x & 0x1F) << 5))

адрес оконечного устройства для второго командного слова

См. определение в файле mkpd.h строка 99

§ MKPD_BCTWO0_NUM

#define MKPD_BCTWO0_NUM (   x)    ((uint32_t)((x & 0x1F) << 10))

количество передаваемых или принимаемых слов данных

См. определение в файле mkpd.h строка 100

§ MKPD_BCTWO0_SUB_ADDR0

#define MKPD_BCTWO0_SUB_ADDR0 (   x)    ((uint32_t)((x & 0x1F) << 16))

подадрес оконечного устройства, которому предназначается командное слово

См. определение в файле mkpd.h строка 101

§ MKPD_BCTWO0_SUB_ADDR1

#define MKPD_BCTWO0_SUB_ADDR1 (   x)    ((uint32_t)((x & 0x1F) << 0))

Макросы для регистра BCTWO0.

подадрес оконечного устройства для второго командного слова

См. определение в файле mkpd.h строка 98

§ MKPD_BCTWO2_COM_DATA

#define MKPD_BCTWO2_COM_DATA (   x)    ((uint32_t)((x & 0xFFFF) << 16))

содержит слово данных

См. определение в файле mkpd.h строка 110

§ MKPD_BCTWO2_ENA

#define MKPD_BCTWO2_ENA   ((uint32_t)(1 << 8))

запуск начала транзакции

См. определение в файле mkpd.h строка 109

§ MKPD_BCTWO2_MANAGE_CODE

#define MKPD_BCTWO2_MANAGE_CODE   ((uint32_t)(1 << 4))

формат признака режима управления в командном слове

См. определение в файле mkpd.h строка 108

§ MKPD_BCTWO2_TYPE_TRANS

#define MKPD_BCTWO2_TYPE_TRANS (   x)    ((uint32_t)((x & 0x0F) << 0))

Макросы для регистра BCTWO2.

код транзакции

См. определение в файле mkpd.h строка 107

§ MKPD_BCTWO3_REPLY

#define MKPD_BCTWO3_REPLY (   x)    ((uint32_t)((x >> 16) & 0xFFFF))

ответное слово на командное слово транзакции

См. определение в файле mkpd.h строка 116

§ MKPD_BCTWO3_REPLY_WORD

#define MKPD_BCTWO3_REPLY_WORD (   x)    ((uint32_t)(x & 0xFFFF))

Макросы для регистра BCTWO3.

слово данных, которое передается с ответным словом

См. определение в файле mkpd.h строка 115

§ MKPD_BCTWO4_ERROR

#define MKPD_BCTWO4_ERROR   ((uint32_t)(1 << 8))

маска для бита ошибки

См. определение в файле mkpd.h строка 122

§ MKPD_BCTWO4_STATUS

#define MKPD_BCTWO4_STATUS   ((uint32_t)(1 << 0))

Макросы для регистра BCTWO4.

маска для бита статуса

См. определение в файле mkpd.h строка 121

§ MKPD_BCTWO4_TIMEOUT

#define MKPD_BCTWO4_TIMEOUT   ((uint32_t)(1 << 16))

маска для бита тайм-аута

См. определение в файле mkpd.h строка 123

§ MKPD_EP1_BUSY

#define MKPD_EP1_BUSY   ((uint32_t)(1 << 3))

признак «Абонент занят» в ОС оконечного устройства. При сбросе равен 1

См. определение в файле mkpd.h строка 131

§ MKPD_EP1_ERROR

#define MKPD_EP1_ERROR   ((uint32_t)(1 << 8))

признак «Ошибка в сообщении»

См. определение в файле mkpd.h строка 135

§ MKPD_EP1_FEP0

#define MKPD_EP1_FEP0   ((uint32_t)(1 << 2))

признак «Неисправность абонента» в ОС оконечного устройства

См. определение в файле mkpd.h строка 130

§ MKPD_EP1_FEP1

#define MKPD_EP1_FEP1   ((uint32_t)(1 << 0))

Макросы для регистра EP1.

признак «Неисправность оконечного устройства» в ОС оконечного устройства

См. определение в файле mkpd.h строка 128

§ MKPD_EP1_MAN

#define MKPD_EP1_MAN   ((uint32_t)(1 << 1))

признак «Принято управление интерфейсом» в ОС оконечного устройства

См. определение в файле mkpd.h строка 129

§ MKPD_EP1_RDATA

#define MKPD_EP1_RDATA (   x)    ((uint32_t)((x & 0xFFFF) << 16))

содержит слово данных

См. определение в файле mkpd.h строка 136

§ MKPD_EP1_RESERV

#define MKPD_EP1_RESERV (   x)    ((uint32_t)((x & 0x03) << 5))

резерв в ОС оконечного устройства

См. определение в файле mkpd.h строка 133

§ MKPD_EP1_RXGROUP

#define MKPD_EP1_RXGROUP   ((uint32_t)(1 << 4))

признак «Принята групповая команда»

См. определение в файле mkpd.h строка 132

§ MKPD_EP1_SREQ

#define MKPD_EP1_SREQ   ((uint32_t)(1 << 8))

признак «Запрос на обслуживание» в ОС оконечного устройства

См. определение в файле mkpd.h строка 134

§ MKPD_EP2_EP_COM_ERR

#define MKPD_EP2_EP_COM_ERR   ((uint32_t)(1 << 0))

Макросы для регистра EP2.

маска для бита ошибки

См. определение в файле mkpd.h строка 141

§ MKPD_EP2_EP_COM_TIMEOUT

#define MKPD_EP2_EP_COM_TIMEOUT   ((uint32_t)(1 << 1))

маска для бита тайм-аута

См. определение в файле mkpd.h строка 142

§ MKPD_EP3_EP_COM

#define MKPD_EP3_EP_COM (   x)    ((uint32_t)((x >> 16) & 0xFFFF))

контрольное слово принятое оконченным устройством

См. определение в файле mkpd.h строка 148

§ MKPD_EP3_EP_COM_DATA

#define MKPD_EP3_EP_COM_DATA (   x)    ((uint32_t)(x & 0xFFFF))

Макросы для регистра EP3.

маска для принятого слова данных

См. определение в файле mkpd.h строка 147

§ MKPD_EP_GROUP_ADDR

#define MKPD_EP_GROUP_ADDR   0x1F

Значение группового адреса

См. определение в файле mkpd.h строка 232

§ MKPD_EP_SUBADDR_COUNT

#define MKPD_EP_SUBADDR_COUNT   32

См. определение в файле mkpd.h строка 230

§ MKPD_INTERRUPT_BC_INT

#define MKPD_INTERRUPT_BC_INT   ((uint32_t)(1 << 0))

Макросы для регистра INTERRUPT.

прерывание контроллера шины - прерывание окончания транзакции в контроллере шины

См. определение в файле mkpd.h строка 221

§ MKPD_INTERRUPT_EP_INT0

#define MKPD_INTERRUPT_EP_INT0   ((uint32_t)(1 << 1))

прерывание оконечного устройства - прерывание по приёму командного слова

См. определение в файле mkpd.h строка 222

§ MKPD_INTERRUPT_EP_INT1

#define MKPD_INTERRUPT_EP_INT1   ((uint32_t)(1 << 2))

прерывание оконечного устройства - прерывание окончания транзакции в оконечном устройстве

См. определение в файле mkpd.h строка 223

§ MKPD_INTERRUPT_MON_INT

#define MKPD_INTERRUPT_MON_INT   ((uint32_t)(1 << 3))

прерывание монитора - прерывание срабатывает, когда указатель записи достигает адреса в памяти DMA_MONITOR_ADDR + THRESHOLD

См. определение в файле mkpd.h строка 224

§ MKPD_MANAGE_MODE_MASK

#define MKPD_MANAGE_MODE_MASK   0xF

Содержимое поля "Режим управления" в командном слове, в случае передачи команд управления

См. определение в файле mkpd.h строка 231

§ MKPD_MAX_WORD_IN_PACKET

#define MKPD_MAX_WORD_IN_PACKET   32

Макросы, относящиеся к логике работы контроллера

максимальное допустимое количество слов данных в пакете

См. определение в файле mkpd.h строка 229

§ MKPD_SETTING0_EP_ADDR

#define MKPD_SETTING0_EP_ADDR (   x)    ((uint32_t)((x & 0x1F) << 0))

Макросы и типы для регистра SETTING0.

задает адрес оконечного устройства

См. определение в файле mkpd.h строка 153

§ MKPD_SETTING0_SYS_CLK

#define MKPD_SETTING0_SYS_CLK (   x)    ((uint32_t)((x & 0xFF) << 24))

системная частота в МГц

См. определение в файле mkpd.h строка 169

§ MKPD_SETTING1_EDGE

#define MKPD_SETTING1_EDGE (   x)    ((uint32_t)((x & 0xFF) << 8))

Макросы для регистра SETTING1.

задает время запрещенного состояния дифференциального сигнала в тактах системной частоты блока

См. определение в файле mkpd.h строка 174

§ MKPD_SETTING1_RWAIT

#define MKPD_SETTING1_RWAIT (   x)    ((uint32_t)((x & 0xFF) << 16))

задает время ожидания ответного слова или слова данных в режиме работы контроллера шины и оконечного устройства

См. определение в файле mkpd.h строка 175

§ MKPD_SETTING1_TIME

#define MKPD_SETTING1_TIME (   x)    ((uint32_t)((x & 0x0F) << 24))

задает время паузы между сообщениями в микросекундах

См. определение в файле mkpd.h строка 176

§ MKPD_SETTING2_500NS

#define MKPD_SETTING2_500NS (   x)    ((unsigned int)((x & 0xFF) << 0))

Макросы и типы для регистра SETTING2.

задает количество тактов системной частоты равное 0.5 мкс

См. определение в файле mkpd.h строка 183

§ MKPD_SETTING2_BCWAITREPLY [1/2]

#define MKPD_SETTING2_BCWAITREPLY (   x)    ((unsigned int)((x & 0xFF) << 24))

задает время ожидания ОС в режиме работы КШ, должно быть не менее 35 мкс

время ожидания ОС в режиме работы КШ

См. определение в файле mkpd.h строка 204

§ MKPD_SETTING2_BCWAITREPLY [2/2]

#define MKPD_SETTING2_BCWAITREPLY (   x)    ((uint32_t)((x & 0xFF) << 24))

задает время ожидания ОС в режиме работы КШ, должно быть не менее 35 мкс

время ожидания ОС в режиме работы КШ

См. определение в файле mkpd.h строка 204

§ MKPD_SETTING2_DECDIS

#define MKPD_SETTING2_DECDIS (   x)    ((unsigned int)((x & 0x0F) << 10))

отключает и включает декодеры

См. определение в файле mkpd.h строка 189

§ MKPD_SETTING2_INCWITH

#define MKPD_SETTING2_INCWITH (   x)    ((unsigned int)((x & 0x01) << 9))

задает режим появления сигнала разрешения передачи

См. определение в файле mkpd.h строка 187

§ MKPD_SETTING2_INVTX

#define MKPD_SETTING2_INVTX (   x)    ((unsigned int)((x & 0x01) << 8))

бит инвертирования дифференциального сигнала при передаче

См. определение в файле mkpd.h строка 185

§ MKPD_SETTING2_NOACTTIME [1/2]

#define MKPD_SETTING2_NOACTTIME (   x)    ((unsigned int)((x & 0xFF) << 16))

задает время, в течение которго декодер определяет, что на линии нет активности

время, в течение которого декодер определяет, что на линии нет активности

См. определение в файле mkpd.h строка 203

§ MKPD_SETTING2_NOACTTIME [2/2]

#define MKPD_SETTING2_NOACTTIME (   x)    ((uint32_t)((x & 0xFF) << 16))

задает время, в течение которго декодер определяет, что на линии нет активности

время, в течение которого декодер определяет, что на линии нет активности

См. определение в файле mkpd.h строка 203

§ MKPD_SETTING3_1250NS

#define MKPD_SETTING3_1250NS (   x)    ((uint32_t)((x & 0xFF) << 0))

Макросы для регистра SETTING3.

количество тактов системной частоты, равное 1,25 мкс.

См. определение в файле mkpd.h строка 213

§ MKPD_SETTING3_1500NS

#define MKPD_SETTING3_1500NS (   x)    ((uint32_t)((x & 0xFF) << 8))

количество тактов системной частоты, равное 1,5 мкс.

См. определение в файле mkpd.h строка 214

§ MKPD_SETTING3_1750NS

#define MKPD_SETTING3_1750NS (   x)    ((uint32_t)((x & 0xFF) << 16))

количество тактов системной частоты, равное 1,75 мкс.

См. определение в файле mkpd.h строка 215

§ MKPD_SETTING3_2250NS

#define MKPD_SETTING3_2250NS (   x)    ((uint32_t)((x & 0xFF) << 24))

количество тактов системной частоты, равное 2,25 мкс.

См. определение в файле mkpd.h строка 216

Типы

§ Command_Word_T

Структура для доступа к командному слову (КС)

Перечисления

§ MKPD_DECDIS_MODE_T

Элементы перечислений
MKPD_SETTING2_DECDIS_A 

отключает декодер А

MKPD_SETTING2_DECDIS_B 

отключает декодер B

MKPD_SETTING2_DECDIS_C 

отключает декодер C

MKPD_SETTING2_DECDIS_D 

отключает декодер D

См. определение в файле mkpd.h строка 195

§ MKPD_SETTING0_CHANNEL_T

Элементы перечислений
MKPD_SETTING0_CHANNEL_A 

задаёт рабочий канал A

MKPD_SETTING0_CHANNEL_B 

задаёт рабочий канал B

См. определение в файле mkpd.h строка 163

§ MKPD_SETTING0_MODE_T

Элементы перечислений
MKPD_SETTING0_MODE_DISABLED 

задаёт режим работы - блок отключен

MKPD_SETTING0_MODE_BC 

задаёт режим работы - контроллер шины (КШ)

MKPD_SETTING0_MODE_EP 

задаёт режим работы - оконечное устройство (ОУ)

MKPD_SETTING0_MODE_M 

задаёт режим работы - монитор (М)

См. определение в файле mkpd.h строка 155

§ MKPD_TX_T

enum MKPD_TX_T

Выбор интерфейса передачи для контроллера шины

Элементы перечислений
TX_ONE 

передача по первому интерфейсу контроллера шины

TX_TWO 

передача по второму интерфейсу контроллера шины

См. определение в файле mkpd.h строка 237

Функции

§ MKPD_BC_IsError()

FlagStatus MKPD_BC_IsError ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Возвращает значение флага ошибки транзации

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
SET or RESET - состояние ожидания транзакции

См. определение в файле mkpd.c строка 196

§ MKPD_BC_IsReady()

static int MKPD_BC_IsReady ( MKPD_T pMKPD,
MKPD_TX_T  index 
)
inlinestatic

Определяет готовность контроллера шины к новой транзакции

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
SET or RESET - состояние готовности к передаче

См. определение в файле mkpd.h строка 471

§ MKPD_BC_IsSending()

FlagStatus MKPD_BC_IsSending ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Определяет, передается ли транзакция в настоящий момент

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
SET or RESET - состояние ожидания транзакции

См. определение в файле mkpd.c строка 178

§ MKPD_BC_IsTimeout()

FlagStatus MKPD_BC_IsTimeout ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Возвращает значение флага таймаута транзации

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
SET or RESET - состояние ожидания транзакции

См. определение в файле mkpd.c строка 214

§ MKPD_BC_IsWaiting()

FlagStatus MKPD_BC_IsWaiting ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Определяет, находится ли транзакция в очереди на передачу

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
SET or RESET - состояние ожидания транзакции

См. определение в файле mkpd.c строка 160

§ MKPD_BC_Reply_Data()

uint32_t MKPD_BC_Reply_Data ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Возвращает ответные данные, полученные от ОУ (для транзакций формата 5)

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
Содержимое ответного слова, 16 бит

См. определение в файле mkpd.c строка 250

§ MKPD_BC_Reply_Word()

uint32_t MKPD_BC_Reply_Word ( MKPD_T pMKPD,
MKPD_TX_T  index 
)

Возвращает ответное слово, полученное от ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращает
Содержимое ответного слова, 16 бит

См. определение в файле mkpd.c строка 232

§ MKPD_BC_Start_Transaction()

static void MKPD_BC_Start_Transaction ( MKPD_T pMKPD,
MKPD_TX_T  index 
)
inlinestatic

Установка формата транзакции

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
Возвращаемые значения
None

См. определение в файле mkpd.h строка 624

§ MKPD_ConfigBusController()

static void MKPD_ConfigBusController ( MKPD_T pMKPD,
uint32_t  address_one,
uint32_t  address_two,
uint32_t  channel 
)
inlinestatic

Настройка контроллера шины

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
address_oneначальный адрес в памяти для хранения слов данных интерфейса 1
address_twoначальный адрес в памяти для хранения слов данных интерфейса 2
channelномер рабочего канала. Параметр channel может принимать значения:
  • MKPD_SETTING0_CHANNEL_A: рабочий канал для КШ - А
  • MKPD_SETTING0_CHANNEL_B: рабочий канал для КШ - B
Возвращаемые значения
None

См. определение в файле mkpd.h строка 591

§ MKPD_ConfigEndpoint()

static void MKPD_ConfigEndpoint ( MKPD_T pMKPD,
uint32_t  address,
uint32_t  ep_address 
)
inlinestatic

Настройка оконечного устройства

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
addressначальный адрес в памяти для хранения слов данных
ep_addressадрес оконечного устройства (0..31)
Возвращаемые значения
None

См. определение в файле mkpd.h строка 743

§ MKPD_ConfigMonitor()

void MKPD_ConfigMonitor ( MKPD_T pMKPD,
uint32_t  address,
uint32_t  size,
uint32_t  threshold 
)

Настройка монитора

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
addressначальный адрес в памяти для хранения слов данных
sizeколичество 32-битных слов, выделенных для монитора
thresholdколичество записанных слов, при котором срабатывает прерывание монитора
Возвращаемые значения
None

См. определение в файле mkpd.c строка 360

§ MKPD_Get_Endpoint_COM_Data()

uint32_t MKPD_Get_Endpoint_COM_Data ( MKPD_T pMKPD)

Возвращает принятое от КШ слово данных

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
Содержимое ответного слова, 16 бит

См. определение в файле mkpd.c строка 284

§ MKPD_Get_Endpoint_COM_Error()

FlagStatus MKPD_Get_Endpoint_COM_Error ( MKPD_T pMKPD)

Возвращает значение флага ошибки в слове данных (используется в транзакциях №6, 10)

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
SET or RESET - состояние готовности к передаче

См. определение в файле mkpd.c строка 304

§ MKPD_Get_Endpoint_COM_Timeout()

FlagStatus MKPD_Get_Endpoint_COM_Timeout ( MKPD_T pMKPD)

Возвращает значение флага таймаута

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
SET or RESET - состояние готовности к передаче

См. определение в файле mkpd.c строка 294

§ MKPD_Get_Endpoint_Command_Word()

uint32_t MKPD_Get_Endpoint_Command_Word ( MKPD_T pMKPD)

Возвращает командное слово, принятое ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
SET or RESET - состояние готовности к передаче

См. определение в файле mkpd.c строка 314

§ MKPD_Get_Interrupt()

uint32_t MKPD_Get_Interrupt ( MKPD_T pMKPD)

Установка приёмной частоты сигнала

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
clkrxчастота (в МГц).
Заметки
Приёмная частота должна превышать частоту передатчика более чем в 5 раз
Возвращаемые значения
NoneВозвращает значение прерывания
Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
Считывает содержимое регистра прерываний. Возможны возвращаемые значения: MKPD_INTERRUPT_BC_INT: прерывание окончания транзакции в КШ MKPD_INTERRUPT_EP_INT0: прерывание ОУ, по приёму КС MKPD_INTERRUPT_EP_INT1: прерывание ОУ, по окончанию транзакции MKPD_INTERRUPT_MON_INT: прерывание монитора, по достижению порога

Установка приёмной частоты сигнала

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращает
Считывает содержимое регистра прерываний. Возможны возвращаемые значения: MKPD_INTERRUPT_BC_INT: прерывание окончания транзакции в КШ MKPD_INTERRUPT_EP_INT0: прерывание ОУ, по приёму КС MKPD_INTERRUPT_EP_INT1: прерывание ОУ, по окончанию транзакции MKPD_INTERRUPT_MON_INT: прерывание монитора, по достижению порога

См. определение в файле mkpd.c строка 106

§ MKPD_Loopback_Disable()

void MKPD_Loopback_Disable ( MKPD_T pMKPD)

Отключение местного заворота линии

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращаемые значения
None

§ MKPD_Loopback_Enable()

void MKPD_Loopback_Enable ( MKPD_T pMKPD)

Включение местного заворота линии

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
Возвращаемые значения
None

§ MKPD_Set_BC_COM_Data()

void MKPD_Set_BC_COM_Data ( MKPD_T pMKPD,
MKPD_TX_T  index,
uint32_t  com_data 
)

Установка слова данных для передачи в транзакциях формата 6 или 10.

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
com_dataсодержимое слова данных, 16 бит
Возвращаемые значения
None

См. определение в файле mkpd.c строка 119

§ MKPD_Set_BC_DMA_Address()

static void MKPD_Set_BC_DMA_Address ( MKPD_T pMKPD,
MKPD_TX_T  index,
uint32_t  dma_addr 
)
inlinestatic

Установка адреса DMA.

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
dma_addrадрес первого байта в области памяти КШ
Возвращаемые значения
None

См. определение в файле mkpd.h строка 568

§ MKPD_Set_BC_Transaction_Format()

void MKPD_Set_BC_Transaction_Format ( MKPD_T pMKPD,
MKPD_TX_T  index,
uint32_t  type_trans 
)

Установка формата транзакции

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
type_transформат транзакции (1..10)
Возвращаемые значения
None

См. определение в файле mkpd.c строка 138

§ MKPD_Set_BC_Transaction_Format2()

static void MKPD_Set_BC_Transaction_Format2 ( MKPD_T pMKPD,
MKPD_TX_T  index,
unsigned int  type_trans,
unsigned int  manage_code 
)
inlinestatic

Установка формата транзакции

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
index: Номер интерфейса для передачи. TX_ONE либо TX_TWO
type_trans: Формат транзакции, доступны значения до 1 до 10 в соответствии с ГОСТ Р 52070-2003
manage_code: Формат признака режима управления в командном слове. 0 = 00000 либо 1 = 11111

См. определение в файле mkpd.h строка 329

§ MKPD_Set_BC_TX_Params()

static void MKPD_Set_BC_TX_Params ( MKPD_T pMKPD,
MKPD_TX_T  index,
uint32_t  ep_addr0,
uint32_t  sub_addr0,
uint32_t  ep_addr1,
uint32_t  sub_addr1,
uint32_t  num 
)
inlinestatic

Установка параметров транзакции

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
ep_addr0адрес ОУ, которому предназначено КС
sub_addr0подадрес ОУ (признак режима управления), которому предназначено КС
ep_addr1адрес ОУ для второго КС
sub_addr1подадрес ОУ для второго КС
numколичество передаваемых или принимаемых СД. В режиме управления также содержит код команды
Возвращаемые значения
None

См. определение в файле mkpd.h строка 538

§ MKPD_Set_BCWaitReply_Time()

static void MKPD_Set_BCWaitReply_Time ( MKPD_T pMKPD,
unsigned int  Bcwaitreply 
)
inlinestatic

Настройка времени ожидания ОС в режиме КШ

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Bcwaitreply: Время ожидания ОС, в тактах системной частоты, в мкс

См. определение в файле mkpd.h строка 410

§ MKPD_Set_Channel()

static void MKPD_Set_Channel ( MKPD_T pMKPD,
uint32_t  channel 
)
inlinestatic

Установка рабочего канала для контроллера шины.

Заметки
Имеет значение только в режиме работы КШ.
Аргументы
pMKPDуказатель на структуру с регистрами MKPD.
channelномер рабочего канала. Параметр channel может принимать значения:
  • MKPD_SETTING0_CHANNEL_A: рабочий канал для КШ - А
  • MKPD_SETTING0_CHANNEL_B: рабочий канал для КШ - B
Возвращаемые значения
None

См. определение в файле mkpd.h строка 299

§ MKPD_Set_Clk_1250NS()

static void MKPD_Set_Clk_1250NS ( MKPD_T pMKPD,
unsigned int  Clk 
)
inlinestatic

Тонкая настройка количества тактов системной частоты в 1250 нс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Clk: Количество тактов системной частоты

См. определение в файле mkpd.h строка 430

§ MKPD_Set_Clk_1500NS()

static void MKPD_Set_Clk_1500NS ( MKPD_T pMKPD,
unsigned int  Clk 
)
inlinestatic

Тонкая настройка количества тактов системной частоты в 1500 нс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Clk: Количество тактов системной частоты

См. определение в файле mkpd.h строка 440

§ MKPD_Set_Clk_1750NS()

static void MKPD_Set_Clk_1750NS ( MKPD_T pMKPD,
unsigned int  Clk 
)
inlinestatic

Тонкая настройка количества тактов системной частоты в 1750 нс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Clk: Количество тактов системной частоты

См. определение в файле mkpd.h строка 450

§ MKPD_Set_Clk_2250NS()

static void MKPD_Set_Clk_2250NS ( MKPD_T pMKPD,
unsigned int  Clk 
)
inlinestatic

Тонкая настройка количества тактов системной частоты в 2250 нс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Clk: Количество тактов системной частоты

См. определение в файле mkpd.h строка 460

§ MKPD_Set_Clk_500NS()

static void MKPD_Set_Clk_500NS ( MKPD_T pMKPD,
unsigned int  Clk 
)
inlinestatic

Тонкая настройка количества тактов системной частоты в 500 нс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Clk: Количество тактов системной частоты

См. определение в файле mkpd.h строка 420

§ MKPD_Set_DecoderDisable()

static void MKPD_Set_DecoderDisable ( MKPD_T pMKPD,
unsigned int  Disable_mask 
)
inlinestatic

Программное отключение декодеров

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Disable_mask: 4 бита, по одному на декодер, запись 1 отключает декодер, запись 0 включает: бит 0 - А, бит 1 - B, бит 2 - C, бит 3 - D

См. определение в файле mkpd.h строка 390

§ MKPD_Set_Edge_Time()

void MKPD_Set_Edge_Time ( MKPD_T pMKPD,
uint32_t  edge 
)

Установка времени запрещенного состояния дифференциального сигнала

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
edgeвремя (в тактах системной частоты). Допустимые значения от 0 до 255
Возвращаемые значения
None

См. определение в файле mkpd.c строка 90

§ MKPD_Set_Endpoint_Attributes()

static void MKPD_Set_Endpoint_Attributes ( MKPD_T pMKPD,
uint32_t  attributes 
)
inlinestatic

Установка признаков в ОС ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
attributesнабор признаков. Параметр attributes может принимать значения:
  • MKPD_EP1_FEP1: неисправность ОУ
  • MKPD_EP1_MAN: принято управление интерфейсом
  • MKPD_EP1_FEP0: неисправность абонента
  • MKPD_EP1_BUSY: абонент занят
  • MKPD_EP1_RES(x): задание значения резервного поля
  • MKPD_EP1_SREQ: запрос на обслуживание
Возвращаемые значения
None

См. определение в файле mkpd.h строка 771

§ MKPD_Set_Endpoint_DMA_Address()

static void MKPD_Set_Endpoint_DMA_Address ( MKPD_T pMKPD,
uint32_t  dma_ep 
)
inlinestatic

Установка адреса первого байта области памяти ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
dma_epадрес. Для всех подадресов используется общая память
Возвращаемые значения
None

См. определение в файле mkpd.h строка 732

§ MKPD_Set_Endpoint_RDATA()

void MKPD_Set_Endpoint_RDATA ( MKPD_T pMKPD,
uint32_t  rdata 
)

Установка слова данных для передачи от ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
rdataсодержимое слова данных, 16 бит
Возвращаемые значения
None

См. определение в файле mkpd.c строка 272

§ MKPD_Set_EP_Address()

static void MKPD_Set_EP_Address ( MKPD_T pMKPD,
uint32_t  ep_addr 
)
inlinestatic

Установка адреса оконечного устройства.

Заметки
Имеет значение только в режиме работы ОУ.
Аргументы
pMKPDуказатель на структуру с регистрами MKPD
ep_addrадрес ОУ (0..31)
Возвращаемые значения
None

См. определение в файле mkpd.h строка 344

§ MKPD_Set_IncWith()

static void MKPD_Set_IncWith ( MKPD_T pMKPD,
unsigned int  IncWith 
)
inlinestatic

Настройка сигнала разрешения передачи

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
IncWith: 1 - расширенная передача сигнала; 0 - одновременно с диф. сигналом

См. определение в файле mkpd.h строка 379

§ MKPD_Set_Interpacket_Time()

void MKPD_Set_Interpacket_Time ( MKPD_T pMKPD,
uint32_t  time 
)

Установка временного интервала между передачей пакетов

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
timeвремя (в мкс). Допустимые значения от 4 до 15
Возвращаемые значения
None

См. определение в файле mkpd.c строка 60

§ MKPD_Set_Inverting()

void MKPD_Set_Inverting ( MKPD_T pMKPD,
uint32_t  invert_params 
)

Настройка параметров инвертирования дифференциального сигнала

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
invert_paramsпараметры инвертирования. Параметр invert_params может принимать значения:
  • MKPD_LOOPBACK_INVTX: инвертирование диф. сигнала при передаче
  • MKPD_LOOPBACK_INVRX0: инвертирование диф. сигнала в приёмнике 0 канала
  • MKPD_LOOPBACK_INVRX1: инвертирование диф. сигнала в приёмнике 1 канала
  • MKPD_LOOPBACK_AUTO_ENA: включение автоопределения линии диф. сигнала в приёмнике
Возвращаемые значения
None

§ MKPD_Set_InvTX()

void MKPD_Set_InvTX ( MKPD_T pMKPD,
unsigned int  invTX 
)

Установка инвертирования дифференциального сигнала на передаче

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
invTX: 1 - инвертировать сигнал на передаче; 0 - не инвертировать

См. определение в файле mkpd.c строка 39

§ MKPD_Set_Mode()

static void MKPD_Set_Mode ( MKPD_T pMKPD,
uint32_t  mode 
)
inlinestatic

Установка режима работы блока.

Аргументы
pMKPDуказатель на структуру с регистрами MKPD.
channelномер рабочего канала. Параметр channel может принимать значения:
  • MKPD_SETTING0_MODE_DISABLED: блок отключен
  • MKPD_SETTING0_MODE_BC: блок функционирует в режиме КШ
  • MKPD_SETTING0_MODE_EP: блок функционирует в режиме ОУ
  • MKPD_SETTING0_MODE_M: блок функционирует в режиме М
Возвращаемые значения
None

См. определение в файле mkpd.h строка 316

§ MKPD_Set_Monitor_DMA_Address()

void MKPD_Set_Monitor_DMA_Address ( MKPD_T pMKPD,
uint32_t  dma_monitor_addr 
)

Задание начального адреса DMA для монитора

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
dma_monitor_addrначальный адрес в памяти для записи
Возвращаемые значения
None

См. определение в файле mkpd.c строка 325

§ MKPD_Set_Monitor_Memory_Size()

void MKPD_Set_Monitor_Memory_Size ( MKPD_T pMKPD,
uint32_t  memory_size 
)

Задание размера буфера монитора

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
memory_sizeколичество 32-битных слов, выделенных для монитора
Возвращаемые значения
None

См. определение в файле mkpd.c строка 336

§ MKPD_Set_Monitor_Threshold()

void MKPD_Set_Monitor_Threshold ( MKPD_T pMKPD,
uint32_t  threshold 
)

Задание порогового значения для монитора

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
thresholdколичество записанных слов, при котором срабатывает прерывание монитора
Возвращаемые значения
None

См. определение в файле mkpd.c строка 347

§ MKPD_Set_NoActivity_Time()

static void MKPD_Set_NoActivity_Time ( MKPD_T pMKPD,
unsigned int  Noacttime 
)
inlinestatic

Настройка времени ожидания отсутствия активности на линии, не менее 1.3 мкс

Аргументы
pMKPD: Указатель на структуру с регистрами MKPD
Noacttime: Время ожидания, в тактах системной частоты

См. определение в файле mkpd.h строка 400

§ MKPD_Set_System_Clock()

void MKPD_Set_System_Clock ( MKPD_T pMKPD,
uint32_t  sys_clk 
)

Установка значения системной частоты

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
sys_clkчастота (в МГц)
Возвращаемые значения
None

См. определение в файле mkpd.c строка 49

§ MKPD_Set_Wait_Time()

void MKPD_Set_Wait_Time ( MKPD_T pMKPD,
uint32_t  rwait 
)

Установка времени ожидания ОС или СД в режиме работы КШ и ОУ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
rwaitвремя (в мкс). Допустимые значения от 34 до 255
Возвращаемые значения
None

См. определение в файле mkpd.c строка 75

§ MKPD_StartMessage()

static unsigned int MKPD_StartMessage ( MKPD_T pMKPD,
MKPD_TX_T  index,
unsigned int  type_trans,
unsigned int  ep_addr0,
unsigned int  sub_addr0,
unsigned int  ep_addr1,
unsigned int  sub_addr1,
unsigned int  num,
unsigned int  timeout,
unsigned int  manage_code 
)
inlinestatic

Передача сообщения от КШ

Аргументы
pMKPDуказатель на структуру с регистрами MKPD
indexномер интерфейса для передачи (TX_ONE/TX_TWO)
type_transформат транзакции, доступны значения (1..10)
ep_addr0адрес ОУ, которому предназначено КС
sub_addr0подадрес ОУ, которому предназначено КС
ep_addr1адрес ОУ для второго КС
sub_addr1подадрес ОУ для второго КС
numколичество передаваемых или принимаемых СД. В режиме управления содержит код команды
timeoutтаймаут на передачу сообщения
Возвращает
Успешная передача сообщения - 0; Транзакция не начата - 1; Транзакция не завершилась - 2

См. определение в файле mkpd.h строка 697