soc.iosource

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

Описание

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

Источники, доступные на проекте, работающем на аппаратной плате 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.

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

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

Объект 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'uint16uint32int8int16int32'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 объект. Получившийся DataRecorder объект представляет сеанс записи данных на аппаратной плате 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