Захват информации в Java с ПЛИС в реальном времени
Захват информации в Java с ПЛИС в реальном времени
Стандартная схема взаимодействия инструментальной программы и некоторой цифровой системой - это интерфейс USB+UART(например FTDI chip). Однако у UART всегда ограничена скорость (до единиц мегабит). Иногда бывает необходимо записать гораздо больше информации, снимаемой за маленькие промежутки времени(менее 1 мс). Если процесс конечен, можно обойтись емким ОЗУ ПЛИС - записать период, и потом вывести в UART постепенно. Но для случая когда процесс идет в реальном времени, и информация необходима детальная, тогда без скоростных интерфейсов не обойтись. Следует помнить, что любая программа на обычной ОС компьютера работает в НЕреальном времени. Это означает, что поток выполняется с перерывами в несколько миллисекунд, и не может поймать все события в микросекундном масштабе.
Для организации любых физических процессов, с использованием производительных источников информации (конвейерных АЦП) экономичным решением захвата и записи большого объема информации может стать применение платы DE10-NANO. Её стоимость менее 10т.р., но присутствует Циклон 5 с HPS и 512 м.б. оперативки.
Главный смысл работы в том, что запускается программа на Линукс, с которой создается сокет-соединение с инструментальной программой на компьютере, и которая может большими порциями загребать информацию из ОЗУ ПЛИС. ПЛИС работает в реальном времени (взаимодействует с аппаратурой, АЦП, другими ПЛИС) и поставляет информацию в ОЗУ. Из сокета Java программа выбирает информацию и по укладывает и динамические переменные, файлы или в БД.
Проект в ПЛИС может быть абсолютно любым, но для связи с компьютером используется двухпортовое ОЗУ