exponenta event banner

soc.iosource

Источник ввода на аппаратной плате SoC

Описание

Создание soc.iosource объект для подключения к источнику ввода на аппаратной плате SoC. Пройти soc.iosource объект в качестве аргумента для addSource функции soc.recorder объект.

Источники, доступные в проекте, работающем на плате SoC, соответствуют блокам, включенным в модель Simulink ®. При запуске SoC Builder он соединяет логику FPGA с соответствующим интерфейсом платы.

ИсточникБлокДействие
'TCP Receive'Чтение TCP

Считывайте данные UDP (протокол пользовательских дейтаграмм) из буфера сокетов Linux ®.

'UDP Receive'Чтение UDP

Считывание данных TCP/IP из буфера сокетов Linux.

'AXI Register Read'Регистрация Прочитано

Считывание регистров из ядра IP с помощью интерфейса AXI.

'AXI Stream Read'Чтение потока

Считывание данных потока AXI-4 с помощью IIO.

Создание

Описание

availableSources = soc.iosource(hw) возвращает список источников ввода, доступных для регистрации данных на аппаратной плате SoC, подключенной через hw. hw является socHardwareBoard объект.

пример

src = soc.iosource(hw,inputSourceName) создает исходный объект, соответствующий inputSourceName на плате SoC, подключенной через hw.

Входные аргументы

развернуть все

Аппаратный объект, указанный как socHardwareBoard объект, представляющий подключение к аппаратной плате SoC.

Имя доступного источника ввода на аппаратной плате SoC, определяемое как символьный вектор. Для получения списка источников ввода, доступных для регистрации данных на указанной плате аппаратных средств SoC, вызовите soc.iosource функция без аргументов.

Пример: 'Получение UDP'

Типы данных: char

Выходные аргументы

развернуть все

Список источников входных данных, доступных для регистрации данных на указанной аппаратной плате SoC, возвращаемых в виде массива ячеек. Каждая ячейка содержит символьный вектор с именем доступного источника входных данных для регистрации данных на указанной плате SoC. Используйте одно из этих имен в качестве inputSourceName при создании исходного объекта.

Исходный объект для указанного входного источника, возвращенный как soc.iosource.

Свойства

развернуть все

Имя базового IP-устройства, указанное как символьный вектор.

Пример: 'mwipcore0:s2mm0'

Зависимости

Чтобы включить это свойство, создайте регистр AXI или исходный объект потока AXI.

Типы данных: char

Смещение от базового адреса ядра IP к регистру, указанное как положительный скаляр.

Зависимости

Чтобы включить это свойство, создайте исходный объект регистра AXI.

Типы данных: uint32

IP-порт на аппаратной плате, где принимаются данные UDP или TCP, указан как скаляр от 1 до 65535. Объект считывает данные UDP или TCP, полученные на этом порте указанной платы SoC.

Для объекта TCP с NetworkRole свойство для 'Client', комплект LocalPort кому -1 назначение любого произвольного доступного порта на плате аппаратных средств в качестве локального порта.

Зависимости

Чтобы включить это свойство, создайте исходный объект TCP или UDP.

Типы данных: uint16

Сетевая роль, указанная как вектор символов.

Пример: 'Клиент'

Зависимости

Чтобы включить это свойство, создайте исходный объект TCP.

Типы данных: enumerated string

IP-адрес удаленного сервера, с которого принимаются данные, указанный как четверное выражение с точками.

Зависимости

Чтобы включить это свойство, создайте исходный объект TCP.

Типы данных: char

Номер IP-порта удаленного сервера, с которого принимаются данные, указан как целое число от 1 до 65535.

Зависимости

Чтобы включить это свойство, создайте исходный объект TCP.

Типы данных: double

Максимальная длина пакета данных UDP или TCP или длина слова вектора данных регистра AXI, заданного как положительный скаляр.

Типы данных: double

Размер вектора данных, считанного из ядра IP, указанный как неотрицательный скаляр.

Зависимости

Чтобы включить это свойство, создайте исходный объект потока AXI.

Типы данных: double

Тип полученных данных, указанный как 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'double' или 'single'.

Типы данных: char

Внутренний размер буфера объекта, указанный как массив.

Зависимости

Чтобы включить это свойство, создайте исходный объект TCP или UDP.

Типы данных: double

Время выборки (в секундах), при котором требуется получить данные, указанное как неотрицательный скаляр.

Типы данных: double

Примеры

свернуть все

Создайте соединение MATLAB с указанной платой аппаратных средств SoC с использованием IP-адреса, имени пользователя и пароля платы.

hw = socHardwareBoard('Xilinx Zynq ZC706 evaluation kit','hostname','192.168.1.18','username','root','password','root');

Создайте сеанс записи данных на плате SoC с помощью hw объект. Получающееся soc.recorder объект представляет сеанс записи данных на аппаратной плате SoC.

dr = soc.recorder(hw)
dr = 

  DataRecorder with properties:

          HardwareName: 'Xilinx Zynq ZC706 evaluation kit'
               Sources: {}                            
             Recording: false                         

Список источников ввода, добавленных в сеанс записи данных.

dr.Sources(hw)
ans =

  1×0 empty cell array                       

По умолчанию soc.recorder объекты не имеют добавленных источников ввода. Чтобы добавить источник ввода в сеанс записи данных, сначала создайте объект источника ввода с помощью soc.iosource функция. В этом примере создайте исходный объект протокола пользовательских дейтаграмм (UDP).

udpSrc = soc.iosource(hw,'UDP Receive')
udpSrc = 

  soc.iosource.UDPRead with properties:

   Main
              LocalPort: 25000
             DataLength: 1
               DataType: 'uint8'
      ReceiveBufferSize: -1
           BlockingTime: 0
    OutputVarSizeSignal: false
             SampleTime: 0.1000
         HideEventLines: true

  Show all properties

Добавьте этот исходный объект UDP в сеанс записи данных с помощью addSource объектная функция.

addSource(dr,udpSrc,'UDPDataReceived-Port25000')

Проверьте результат, проверив Sources имущества soc.recorder объект.

dr.Sources
ans =

  1×1 cell array

    {'UDPDataOnPort25000'}                        

Вызовите функцию установки для инициализации всех аппаратных периферийных источников ввода, добавленных в сеанс записи данных, и запустите процесс записи данных.

setup(dr)

Запишите данные на плату SoC в течение 60 секунд.

record(dr, 60);

Проверьте состояние сеанса записи данных с помощью isRecording объектная функция. Состояние записи при выполнении записи данных: 1.

recordingStatus = isRecording(dr)
recordingStatus =

  logical

   1

Состояние записи по завершении записи данных: 0.

isRecording(dr)
recordingStatus =

  logical

   0

Сохранение записанных данных в файле, сжатом в формате TGZ.

save(dr,'UDPDataReceived','UDP Data Testing',{'Recorded On Zynq Board'})

Эта функция сохраняет записанные данные в виде файла UDPDataReceived.tgz в рабочей папке хост-компьютера. Вы можете прочитать этот файл с помощью socFileReader объект в MATLAB™ или блок источника данных ввода-вывода в модели Simulink.

Удалите добавленный источник из сеанса записи данных с помощью removeSource объектная функция.

removeSource(dr,'UDPDataReceived-Port25000')

Проверьте результат, проверив Sources имущества soc.recorder объект.

ans =

  1×0 empty cell array                       

См. также

|

Представлен в R2019a