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)
src = soc.iosource(hw,inputSourceName)

Описание

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

пример

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

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

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

Объект Hardware, заданный как объект 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 до 65 535. Объект читает UDP или данные о TCP, полученные на этом порте заданной аппаратной платы SoC.

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

Зависимости

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

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

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

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

Зависимости

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

Зависимости

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

Типы данных: 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 в вашей рабочей папке PC хоста. Можно считать этот файл при помощи объекта socFileReader в MATLAB™ или блока IO Data Source в модели Simulink.

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

removeSource(dr,'UDPDataReceived-Port25000')

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

ans =

  1×0 empty cell array                       

Смотрите также

|

Введенный в R2019a