soc.iosource

Входной источник на аппаратной плате SoC

Описание

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

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

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

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

'UDP Receive'UDP Read

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

'AXI Register Read'Register Read

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

'AXI Stream Read'Stream Read

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

Создание

Описание

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

пример

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

Входные параметры

расширить все

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

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

Пример: 'UDP Receive'

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

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

расширить все

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

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

Свойства

расширить все

Имя IP-ядра, заданное как вектор символов.

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Зависимости

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

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

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

Пример: 'Client'

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

Чтобы включить это свойство, создайте исходный объект 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)

Запись данных в течение 60 секунд на аппаратную плату SoC.

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™ или IO Data Source блоке в модели Simulink.

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

removeSource(dr,'UDPDataReceived-Port25000')

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

ans =

  1×0 empty cell array                       

См. также

|

Введенный в R2019a