Введите источник на аппаратной плате 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. |
возвращает список входных источников, доступных для регистрации данных на аппаратной плате SoC, соединенной через availableSources = soc.iosource(hw)hw. hw socHardwareBoard объект.
создает исходный объект, соответствующий src = soc.iosource(hw,inputSourceName)inputSourceName на аппаратной плате SoC, соединенной через hw.
hw — Объект HardwaresocHardwareBoard объектОбъект Hardware в виде socHardwareBoard объект, который представляет связь с аппаратной платой SoC.
inputSourceName — Имя доступного входного источника на аппаратной плате SoCИмя доступного входного источника на аппаратной плате SoC в виде вектора символов. Чтобы получить список входных источников, доступных для регистрации данных на заданной аппаратной плате SoC, вызовите soc.iosource функция без аргументов.
Пример: 'UDP получает'
Типы данных: char
availableSources — Список источников входных данных, доступных для регистрации данныхСписок источников входных данных, доступных для регистрации данных на заданной аппаратной плате SoC, возвращенной как массив ячеек. Каждая ячейка содержит вектор символов с именем доступного источника входных данных для регистрации данных на заданной аппаратной плате SoC. Используйте одно из этих имен как inputSourceName аргумент, когда вы создаете исходный объект.
src — Исходный объект для заданного входного источникаsoc.iosource объектИсходный объект для заданного входного источника, возвращенного как soc.iosource.
DeviceName — Имя основного устройства IPИмя основного устройства IP в виде вектора символов.
Пример:
'mwipcore0:s2mm0'
Чтобы включить это свойство, создайте регистр AXI или потоковый исходный объект AXI.
Типы данных: char
RegisterOffset — Возместите от базового адреса ядра IP, чтобы указатьВозместите от базового адреса ядра IP к регистру в виде положительной скалярной величины.
Чтобы включить это свойство, создайте исходный объект регистра AXI.
Типы данных: uint32
LocalPort — Порт IP на аппаратной плате, где данные о UDP или TCP получены (UDP) (значение по умолчанию) | -1 (TCP) | целое число от 1 до 65 535Порт IP на аппаратной плате, где данные о UDP или TCP получены заданные как скаляр от 1 до 65 535. Объект читает UDP или данные о TCP, полученные на этом порте заданной аппаратной платы SoC.
Для объекта TCP с NetworkRole свойство к 'Client', установите LocalPort к -1 присваивать любой случайный доступный порт на аппаратной плате как локальный порт.
Чтобы включить это свойство, создайте исходный объект UDP или TCP.
Типы данных: uint16
NetworkRole — Сетевая роль'Client' (значение по умолчанию) | вектор символовСетевая роль в виде вектора символов.
Пример: 'Клиент'
Чтобы включить это свойство, создайте исходный объект TCP.
Типы данных: enumerated string
RemoteAddress — IP-адрес удаленного сервера, из которого получены данные (значение по умолчанию) | точечно-квадратическое выражениеIP-адрес удаленного сервера, из которого данные получены в виде точечно-квадратического выражения.
Чтобы включить это свойство, создайте исходный объект TCP.
Типы данных: char
RemotePort — Номер порта IP удаленного сервера, из которого получены данныеНомер порта IP удаленного сервера, из которого данные получены в виде целого числа от 1 до 65 535.
Чтобы включить это свойство, создайте исходный объект TCP.
Типы данных: double
DataLength — Длина пакета данных или вектора данных регистра (значение по умолчанию) | положительная скалярная величинаМаксимальная длина UDP или пакета данных о TCP или размера слова AXI указывает вектор данных в виде положительной скалярной величины.
Типы данных: double
SamplesPerFrame — Размер вектора данных считан из ядра IPРазмер вектора данных, считанного из ядра IP в виде неотрицательного скаляра.
Чтобы включить это свойство, создайте потоковый исходный объект AXI.
Типы данных: double
DataType — Тип данных полученных данных'uint8' (значение по умолчанию) | 'uint16' | 'uint32' | 'int8' | 'int16' | 'int32' | 'double' | 'single'Тип данных полученных данных в виде 'uint8'uint16uint32int8int16int32'double' или 'single'.
Типы данных: char
ReceiveBufferSize — Внутренний buffer size объекта (значение по умолчанию) | массивВнутренний buffer size объекта в виде массива.
Чтобы включить это свойство, создайте исходный объект UDP или TCP.
Типы данных: double
Sample Time Размер шага (значение по умолчанию) | неотрицательный скалярШаг расчета, в секундах, в которые вы хотите получить данные в виде неотрицательного скаляра.
Типы данных: 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
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.