XJAPI это простой в использовании API (DLL Application Program Interface), задача которого предоставить низкоуровневый доступ к JTAG-цепи через адаптер XJLink2 или PXI-XJLink2 и облегчить интеграцию с различными сторонними системами, такими как испытательные стенды, измерительные системы и так далее…
Возможность взаимодействия с JTAG-цепью через USB из собственного приложения на языке C/C++ реализована в виде комплекса, состоящего из аппаратной части, в виде адаптера XJLink2, и программной части, в виде библиотеки функций XJAPI.
Возможность взаимодействия с JTAG-цепью через инфраструктуру PXI из собственного приложения на языке C/C++ реализована в виде комплекса, состоящего из аппаратной части, в виде высокоскоростного адаптера PXI XJLink2, и программной части, в виде библиотеки функций XJAPI.
Компания XJTAG LTD выполняет заказные разработки приложений с использованием XJAPI.
Выгоды
- Высокая скорость работы: USB (480 Mbps), JTAG (60 Mbps peak)
- При использовании с USB-адаптером: получившаяся система будет маленькой, лёгкой и портативной — идеально как для исследовательских лабораторий, так и для работы в «в поле»
- При использовании с PXI-адаптером: полная программная совместимость с вариантом с USB-адаптером (3U/32 bit PXI/c PCI bus interface)
- При использовании аппаратного лицензирования, лицензии авторизуются адаптером, что позволяет использовать систему XJTAG с одним адаптером множестве ПК (не одновременно)
- Настраиваемая цоколёвка, что обеспечивает совместимость с ARM, Xilinx, Altera и так далее
- Простота использования
Возможности
- Совместимость со стандартами серии JTAG/IEEE 1149.x
- Высокоскоростной интерфейс USB 2.0 (480 Mbps), обратно совместимый с USB 1.0 и USB 1.1
- Питание адаптеров от USB (дополнительных блоков питания не требуется)
- Возможность подать питание на тестируемую плату (3.3 В, <100 мА)
- Настраиваемая частота TCK вплоть до 60 МГц
- Регулируемое согласование JTAG-сигналов
- Автоматический контроль задержек (signal skew)
- Программно-настраиваемая цоколёвка
- JTAG-сигналы адаптера совместимы с +5-ти вольтовой логикой
- Незадействованные контакты 20-ти контактного разъёма на адаптере могут быть использованы для управления какими-то элементами, например, выдавать основной Reset тестируемой платы или включать/выключать её питание
- Поставляется со всеми необходимыми файлами, библиотеками и примерами
- Разработано для использования из приложений, написанных на C и C++
- Для обучения предусмотрена демонстрационная плата
- Работает в ОС Windows® 10 / 8.1 / 8 / 7
XJAPI functions
- Initialise, set up and terminate the API.
- Low level functions to set up JTAG scans, perform low level JTAG accesses.
- High level JTAG functionality.
The full C header file is available for download: XJAPI.h
The following is a summary of the functions:
Initialising / Terminating Functions
Function to set up the hardware and the pin mapping. Specify the desired frequency in Hertz (XJAPI will set to the nearest MHz), the required pin mapping and whether the power should be applied to the board.
XJAPI_HardwareSetup( frequency, pinMap, powerOn );
Function to release the hardware. Must be called before exiting.
XJAPI_HardwareRelease( );
Function to set the pin map — This function takes a parameter which is an array of 20 elements, corresponding to the 20 pins. Each value i should be the type of pin i+1, with the exception of the fixed pins:
- pin 1 — VCC
- pin 2 — NC
- pin 4 — GND
- pin 20 — GND
N.B. The array starts at 0 but the pins at 1, so the setting for pin 10 would be written in array[9].
XJAPI_SetPinMap( pinMapping, pinTypes[20], powerOn );
Low Level JTAG Access
Function to set the frequency — must be between 100 KHz and 60 MHz.
XJAPI_SetFrequency( frequency );
Function to apply TMS reset.
XJAPI_TmsReset( );
Function to go to a specific JTAG state.
XJAPI_GotoState( state );
Function to set the final state that the system goes to after a DR or IR scan operation. By default, both scans go to the JTAG_IDLE state.
XJAPI_SetEndState( endir, enddr );
Function to clock the JTAG chain a specific number of times.
XJAPI_ClockChain( count );
High Level Scan Functions
Function to execute a JTAG DR/IR scan cycle. By default, it will leave the system in the JTAG_IDLE state after the scan. To specify a different end state, use XJAPI_SetEndState.
The type of scan (DR or IR) is specified, the number of bits to scan, and the addresses of data buffers: «outData» is the data to be shifted out, bit 0 of byte 0 first; «inData» is the data shifted in, bit 0 of byte 0 first.
XJAPI_Scan( scanType, length, outData, inData );
Function to implement multiple scanning. This function is used to scan multiple (nScans) chains of mixed type (DR and IR scans) and of mixed length.
N.B. «scanTypes», «length», «outData» and «inData» are all arrays of length «nScans».
XJAPI_ScanMultiple( nScans, scanTypes, length, outData, inData );
For support, or for a quote on any part of the XJTAG system, please contact us.