Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
-70 / 9 / 1
Регистрация: 18.09.2020
Сообщений: 1,612

Флешка плюс опрос портов

08.10.2025, 07:07. Показов 2857. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасте.
Хочу сделать прибор - собирающий данные с портов или АЦП и выгружающий на комп по USB файло: пример про HID-USB я нашёл, но это ещё не флешка - как сделать флешку? - посоветуйте пример.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2025, 07:07
Ответы с готовыми решениями:

МК-51. Опрос содержимого ячейки с адресом 05h
Ребят, помогите пожалуйста, совсем не понимаю ассемблер, но лабу сдать нужно. Составить на...

ATtiny2313. ASM. Динамический опрос матричной клавиатуры
Помогите написать программу на асм для микроконтроллера аттини 2313 или атмега8 динамический опрос...

Опрос 64-х датчиков на К1830ВЕ51
Всем привет, кто знает помогите!!! Карта опроса 64 датчиков (битовая информация) записана в ячейки...

56
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 15:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы же хвастались, будто читали документацию. Там прямым текстом указываются применения этих точек.
Да - применять их надо там, где требуется гарантированная передача. Уже 100500 раз написал это.
Из этого следуют все варианты применения. Вы документации USB не видели или не способны понять написанного там, потому для вас все аргументы - пустой звук. Всё равно что слепому объяснять как выглядит солнце.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Перевожу: приперли к стенке, аргументы кончились, но признать свою неправоту ну вот совсем не хочется.
Куда именно вы там что-то "припёрли"? Вы игнорируете все неудобные вам аргументы, перевираете высказывания, передёргиваете... Обычная практика тролля.

Вывод из всего этого один: Для реалтайм-потоков данных, наиболее разумно - использовать изохронные точки.
Точка. Я всё сказал. Кто не понял - я не виноват.
0
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 15:28
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Неужели разработчики USB-шины все поголовно идиоты, раз зачем-то придумали такую "ненужную" вещь как изохронные точки?
да все гораздо проще ты сам выбираешь какой режим юзать
изохронный. Он предназначен для передачи данных, критичных к времени доставки, однако не гарантирует ее успешность. Самый классический пример — аудиоустройства
если не нужен не используй.
1
Нарушитель
445 / 886 / 106
Регистрация: 23.11.2021
Сообщений: 5,204
Записей в блоге: 19
10.10.2025, 15:38
Nname100, "прикол" в том, что в осциллографе нафиг не нужна гарантия времени доставки. Обязательна гарантия целостности пакета: вряд ли тебе понравится, что на экране компьютера ты будешь видеть в осциллограмме провалы и недостающие пакеты.
Поэтому изохронные точки в таких вещах и не используют - передают bulk, к каждому пакету прикрепляют временнýю метку.
И в любой научной аппаратуре важно не время доставки, а целостность данных. Астроном, например, спокойно может подождать пять минут, пока сливается кадр с ПЗС-матрицы (он знает, что если хотя бы в 2 раза повысить скорость считывания, шумы возрастут значительно).
А вот когда мы слушаем музыку, то, наоборот: пропуск некоторых пакетов не влияет на прослушивание (конечно, если их не 10% и больше), а вот изохронность важна. Поэтому всякие плееры и пользуют изохронные пакеты. Аналогично с видео.

Вот и определились: изохронные пакеты важны для непрерывных потоков аудио и видео, больше их некуда применить.

Не по теме:

Валяется у меня USB'шная плата видеозахвата, купленная в свое время на ибее. Думал использовать для подключения старой emCCD-камеры (к сожалению, сейчас такие либо не делают, либо они жутко дорогие) - у нее был только аналоговый интерфейс (замечательный бред, да? снять с камеры цифровые данные и переделать их в аналог, чтобы потом обратно в цифру отконвертить). А там как раз использовался не изохронный интерфейс, а тупо буферизация и bulk. Уж не знаю, какой размер буфера ядро под v4l2 выделяет, но через полчаса работы эта зараза выдавала видео с запозданием около 30 секунд!

0
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,086
10.10.2025, 15:38
Цитата Сообщение от jcxz Посмотреть сообщение
Да - применять их надо там, где требуется гарантированная передача. Уже 100500 раз написал это.
"Применять единственный тип точек, который не гарантирует доставки там, где требуется гарантированная доставка". Гениально!
Цитата Сообщение от jcxz Посмотреть сообщение
Вы документации USB не видели или не способны понять написанного там
Ну вот кого конкретно вы пытаетесь обмануть-то? Даже в этой теме вас минимум трижды ткнули носом в ваши "знания".
Цитата Сообщение от jcxz Посмотреть сообщение
Вы игнорируете все неудобные вам аргументы
А. Это, видимо, я не сумел продемонстрировать реальную пропускную способность своего устройства и свято верю, что изохронная точка по волшебству все обеспечит.
Это, видимо, я свято уверен, что bulk транзакция может быть лишь единственной за кадр.
Это, видимо, я свято уверен, что стоит в хаб воткнуть LS-устройство, как он тоже станет LS-устройством.
Это, видимо, я напрочь игнорирую опыт производителей железа.
---
Кстати, как вы думаете, может ли быть больше одной изохронной транзакции за фрейм? Подсказываю: я об этом в данном треде уже говорил.
Цитата Сообщение от jcxz Посмотреть сообщение
Кто не понял - я не виноват.
Кто не понял - таки может хоть немного ознакомиться с материалом.
Цитата Сообщение от Nname100 Посмотреть сообщение
да все гораздо проще ты сам выбираешь какой режим юзать
изохронный. Он предназначен для передачи данных, критичных к времени доставки, однако не гарантирует ее успешность. Самый классический пример — аудиоустройства
если не нужен не используй.
Позвольте, угадаю. Вы не читали начало темы?
1
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 15:48
Цитата Сообщение от Nname100 Посмотреть сообщение
изохронный. Он предназначен для передачи данных, критичных к времени доставки, однако не гарантирует ее успешность. Самый классический пример — аудиоустройства
Да, именно так. Аудиоустройства - это частный случай потоковых устройств. А не единственное недоразумение предназначение USB (как считают некоторые местные персонажи).
В общем случае: "потоковые устройства", это любые устройства, требующие передачи реал-тайм потока данных. Именно для того и были созданы изохронные точки. Поток данных с АЦП - это тоже потоковый режим работы.
И вся инфраструктура и самих изохронных точек и кода, их обслуживающего в USB-стеках и драйверах хоста - она строится именно с прицелом потокового реалтайм-применения. Достаточно посмотреть API соответствующих пакетов: cyusb, libusbk, ... И обслуживать изохронные точки драйвер хоста обязан каждый USB-фрейм, а не "как карта ляжет".

Даже в микроконтроллерах: Во многих из них изохронные точки могут работать только исключительно в режимах с двойной буферизацией. В отличие от других типов точек. Что уже само по себе намекает, что предназначены они в первую очередь - для реал-тайм потоков. И что реал-тайм потоки нужно передавать именно через них.

Костылинг передачи реал-тайм потоков через не предназначенные для этого интерфейсы - это именно костылинг. Который говорит только об уровнях компетенции костыле-строителя. Когда дело доходит до работы в реальных условиях, эти костыли ломаются, а костыле-строители скрываются в тумане.
0
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 15:49
и так как изохронный гарантирует реал тайм то поэтому вся сложность верней запутанность этого режима
во первых двойная буферизация, нельзя сделать одну изохронной, а другую управляющей. и по итогу адрес будет отличаться от установленого.короче гемор еще тот но исключительно для своих целей
но ни кто запрещает взять контроль реал тайма на себя
0
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 15:52
Цитата Сообщение от Nname100 Посмотреть сообщение
но ни кто запрещает взять контроль реал тайма на себя
Точно! Никто не запрещает переписать системный драйвер USB-хоста операционки.
0
Нарушитель
445 / 886 / 106
Регистрация: 23.11.2021
Сообщений: 5,204
Записей в блоге: 19
10.10.2025, 15:53
Что двойная, что одинарная - а все равно буферизация ☺
И превращается этот изохронный поток…
Почти аналогичную штуку можно сделать на USB CDC: просто не дожидаться, пока предыдущий пакет хост примет, а отклонять запись текущего пакета. Привяжи эту отправку к получению SOF - вуаля ☺
0
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 16:08
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Позвольте, угадаю. Вы не читали начало темы?
каюсь
прочитал назваание но дискуссия уважаемых донов плавно перешла в формат пикеровки а ты это читал , а я читал, но ты невнимательно читал а я очень читал.
и отвечу словами т Шарикова - Позвольте узнать, что вы можете сказать по поводу прочитанного. Шариков пожал плечами. - Да не согласен я. - С кем? С энгельсом или с каутским? - С обоими, — ответил Шариков. - Это замечательно, клянусь богом. "Всех, кто скажет, что другая…" А что бы вы со своей стороны могли предложить? - Да что тут предлагать?.. А то пишут, пишут… Конгресс, немцы какие-то… Голова пухнет. Взять все, да и поделить…
Подробнее на livelib.ru:
https://www.livelib.ru/quote/9... l-bulgakov

Добавлено через 10 минут
Цитата Сообщение от jcxz Посмотреть сообщение
Точно! Никто не запрещает переписать системный драйвер USB-хоста операционки
а для чего.

вот пример как у меня реализовано Цапе (хотя можно было использовать USB audio)

по шнурку дата данные бегут в 1 буфер а цапа кушает с буфера 2 когда его опустошит перейдет на первый а второй будет заполнятся и так по кругу очень древнее решение,
и ничего сложного.
1
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 16:14
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Что двойная, что одинарная - а все равно буферизация ☺
И точно - мальчик, девочка - да какая в *опу разница!?
И эти люди (не понимающие главного смысла двойной буферизации) ещё тут чего-то доказывают с пеной у рта....

Цитата Сообщение от Eddy_Em Посмотреть сообщение
Почти аналогичную штуку можно сделать на USB CDC: просто не дожидаться, пока предыдущий пакет хост примет, а отклонять запись текущего пакета. Привяжи эту отправку к получению SOF - вуаля ☺
Ну-ка, ну-ка - подробнее! Как это "не дожидаться, пока предыдущий пакет хост примет"? Что такое "отклонять запись текущего пакета"? Поделитесь мастерством!

Цитата Сообщение от Nname100 Посмотреть сообщение
и отвечу словами т Шарикова - Позвольте узнать, что вы можете сказать по поводу прочитанного. Шариков пожал плечами. - Да не согласен я. - С кем? С энгельсом или с каутским? - С обоими, — ответил Шариков. - Это замечательно, клянусь богом. "Всех, кто скажет, что другая…" А что бы вы со своей стороны могли предложить? - Да что тут предлагать?.. А то пишут, пишут… Конгресс, немцы какие-то… Голова пухнет. Взять все, да и поделить…
"...взять всё да и через CDC запердолить!"
1
 Аватар для COKPOWEHEU
4149 / 2727 / 433
Регистрация: 09.09.2017
Сообщений: 12,086
10.10.2025, 16:35
Цитата Сообщение от jcxz Посмотреть сообщение
Точно! Никто не запрещает переписать системный драйвер USB-хоста операционки.
Чем некоторые из здесь присутствующих персонажей и занимаются. Городят механизмы восстановления пакетов вместо того чтобы воспользоваться стандартными средствами.
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Почти аналогичную штуку можно сделать на USB CDC
Если бы бульк и изохронные точки были взаимозаменяемыми, то возможно, и опрос АЦП делали не на бульках.
Им ведь и правда полоса выделяется по остаточному принципу.
Это, конечно, не отменяет того, что и изохронные не могут захватить всю полосу.
Цитата Сообщение от jcxz Посмотреть сообщение
"...взять всё да и через CDC запердолить!"
Несомненно, лучше "взять все и через изохронные запердолить". Правда, вместо стандартного протокола придется городить свой, ни с чем несовместимый. Правда, в отсутствие аппаратного контроля целостности пакетов придется городить софтовые костыли. Но это все мелочи! Главное верить, что хост обеспечит 150% пропускной способности шины!
1
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 16:38
Цитата Сообщение от jcxz Посмотреть сообщение
Костылинг передачи реал-тайм потоков через не предназначенные для этого интерфейсы - это именно костылинг. Который говорит только об уровнях компетенции костыле-строителя. Когда дело доходит до работы в реальных условиях, эти костыли ломаются, а костыле-строители скрываются в тумане.
все кроется в названии USB универсальная шина для этого она создана. те одну и туже задачу можно решить разными способами. и с одним и тем же результатом. просто надо учитывать реальную ситуацию.
0
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 17:00
Цитата Сообщение от Nname100 Посмотреть сообщение
одну и туже задачу можно решить разными способами.
Вот пример реальной задачи реал-тайм потока данных АЦП(МК)->USB->хост(ПК): МК через АЦП получает непрерывный поток данных от чипа цифрового радио и передаёт его в хост. На хосте (ПК или планшет) - демодулятор/декодер потока. Скорость потока скажем = ~800 кБ/с. USB-FS. МК - довольно слабый, не имеет многомегабайтного буфера. Приём - непрерывный: идёт непрерывный поиск сигнала в эфире и демодуляция/декодирование найденных пакетов по потоку сэмплов из АЦП. Кроме того - большой буфер в приёмнике не только труден, но и в принципе невозможен, так как задержка тракта передачи от цифрового радио до декодера на хосте, должна быть минимальной длительности и строго детерминированной по задержке. Так как программа на хосте по результатам декодирования приёмного потока, ищет окна, в которые устройство может выходить в эфир. Окна должны вычисляться с точностью до единиц мсек (лучше если = десятки/сотни мкс). (Промах выхода своего передатчика в эфир не должен превышать одной, двух мс)
Вот тут изохронная точка необходима. Так как имеет гарантированное и строго детерминированное время передачи. Более того - окна для передачи можно вычислять прямо по USB-кадрам. Никакие bulk-и тут в принципе не применимы.

PS: И не надо писать галиматью про осциллографы: ликбез для кухарок, не знающих "что такое осциллограф и как он работает": Осциллограф - это не реал-тайм потоковое устройство. Так как его работа не нарушится, если поток будет на какое-то время приостановлен. Потому - для него изохронная точка не обязательна.
0
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 17:29
Цитата Сообщение от jcxz Посмотреть сообщение
Вот пример реальной задачи реал-тайм потока данных
хороший пример
в первом случае все будет работать пока система позволит если это win а (реал тайм потоки не на осрм это как-то не комильфо)
всмысле не решит выделить время на другую задачу.
и приложение придется зааускать с мах приорететом(в случае обвала(потери контроля хоть на 10ms 100% потеря связи на ХЗ какое время.так как не ты хозяин потока а OS. и все процедура инициализвции и захвата потока заново

второй случай уже декодированный поток идет по USB-audio риск тот-же востановление связи не потребуется всмысле поток не прервется, просто звука не будет и все

Добавлено через 2 минуты
под
Цитата Сообщение от Nname100 Посмотреть сообщение
USB-audio
имеется ввиду внешняя звуковуха
0
349 / 147 / 10
Регистрация: 19.07.2024
Сообщений: 826
10.10.2025, 17:40
Цитата Сообщение от Nname100 Посмотреть сообщение
в первом случае все будет работать пока система позволит если это win а (реал тайм потоки не на осрм это как-то не комильфо)
Было требование кросс-платформенности: хост мог быть любой - win, линух или Андроид.

Цитата Сообщение от Nname100 Посмотреть сообщение
всмысле не решит выделить время на другую задачу.
и приложение придется зааускать с мах приорететом
Не всё так страшно: Базовая станция непрерывно транслирует в эфир командные пакеты, оставляя окна для передатчиков терминальных устройств. Положение окна передачи указывается в одном из командных кадров заранее - задолго до самого окна. Минимальное прогнозируемое время выхода в эфир относительно принятого командного кадра: не менее 1сек (от +1 сек до +несколько десятков сек).
Даже если задача демодулятора на хосте будет приостановлена на сотню-две миллисекунд, то ничего страшного - потом нагонит. Главное чтобы синхронность потока кадров от приёмника не была нарушена. По ним и выполняется вся синхронизация и привязка по времени: ведь знаем что каждую миллисекунду обязательно передаётся один кадр. Ни больше ни меньше. Вне зависимости от загрузки системы на уровне приложений. Значит демодулятор всегда может сообщить модулятору точку синхронизации для выхода в эфир в окне передачи.

Ну и естественно - система на хосте не должна быть загружена посторонними задачами на 100%. Тогда всё успеет даже под win.
0
24 / 50 / 2
Регистрация: 23.02.2023
Сообщений: 168
10.10.2025, 18:33
Цитата Сообщение от jcxz Посмотреть сообщение
Ну и естественно - система на хосте не должна быть загружена посторонними задачами на 100%.
я это и имел ввиду

а так да согласен
0
Эксперт по электронике
7203 / 3380 / 346
Регистрация: 28.10.2011
Сообщений: 13,310
Записей в блоге: 7
15.10.2025, 01:34
Цитата Сообщение от jcxz Посмотреть сообщение
Вот пример реальной задачи реал-тайм потока данных АЦП(МК)->USB->хост(ПК): МК через АЦП получает непрерывный поток данных от чипа цифрового радио и передаёт его в хост.
Одна из реализаций этого примера https://ftp.radio.ru/pub/2020/06/tuner.zip
Описание конструкции в журнале Радио №6 2020.
Если кратко, STM32 из АЦП / I2S передает семплы по USB в комп.
Но там большая скорость не нужна и используется обычный HID. Его достаточно для 2-ух каналов с частотой семплирования 44100, 16 бит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2025, 01:34

Периодический опрос кнопок на MCS-51
Если ДД1=1 и ДД2=1, то ДСИ=0 и ДСИ2=0, если ДД1=0 и ДД2=0, то ДСИ1=1, ДСИ2=1, если ДД1 ≠ДД2,...

Опрос порта на нажатие кнопки (ASM, ATMega16)
Не могу разобраться в чем дело, в моем проекте порт РС настроен как приемник к каждой ножке будет...

Опрос клавиатуры 3х4 и вывод нажатой кнопки AT90S8515
Написана программа на С, для такой вот схемы писал честно говоря не я, но для этой схемы. Суть...

Опрос DS18B20 (ATmega328P, Algorithm Builder)
Добрый день. Срочно нужно сделать датчик температуры. За основу взял DS18B20 и Arduino nano...

Опрос кнопок (PIC16F877)
Здравствуйте, недавно начал заниматься программированием платы PIC16F877. Написал программу по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru