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.

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

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

Объект 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 объект. Получившийся 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