Почему скорость, с которой мой USB-порт USB считывает данные, зависит от того, какой ноутбук подключен?
Резюме
Я читаю последовательные данные через порт USB, и когда ноутбук заряжается, COM-порт получает около 60 обновлений в секунду, а когда ноутбук не заряжается, COM-порт получает около 1 обновления в секунду.
Фон (я не уверен, какая информация полезна)
Я работаю над проектом, в котором набор датчиков взаимодействует с микропроцессором, а микропроцессор подключен к ноутбуку. Поскольку мне нужны данные для управления в реальном времени, важна скорость, с которой ноутбук получает информацию от микропроцессора.
Как правило, мне удавалось получать около 60 обновлений от микропроцессора в секунду. Однако я часто сталкиваюсь с замедлением без видимой причины. Сегодня произошло одно из этих замедлений, и я понял, что когда ноутбук не заряжался активно, обновления в секунду были очень медленными, но когда ноутбук заряжался, он получал обновления на полной скорости.
Обратите внимание, что микропроцессор не питается от ноутбука.
Редактировать 1: Мой план питания настроен на баланс.
Изменить 2: я сделал следующие изменения, чтобы попытаться улучшить производительность
- Я установил для своих критических процессов приоритет в реальном времени
- установить мой план питания на высокую производительность
- Я выводил данные в консольное окно довольно быстро, поэтому я уменьшил консольную печать
- Я отключил выборочную приостановку USB
- Ранее я изменил таймер задержки COM-порта на 1 мс, а прием (байты) - на 128, чтобы попытаться устранить проблемы со связью с этим устройством.
Я думал, что это исправило это, но после нескольких минут работы замедление произошло снова.
Глядя на диспетчер задач, когда программа работает должным образом, загрузка процессора составляет около 50%, а использование памяти составляет около 50%. В тот момент, когда произошло замедление, загрузка ЦП снизилась примерно до 25%, использование памяти осталось неизменным.
Похоже, что количество потоков и дескрипторов, отображаемых в диспетчере задач, неуклонно растет с течением времени, примерно до 4000 потоков и 98000 дескрипторов. Когда я закрыл свои программы, количество потоков уменьшилось до 3000, а число обработчиков - до 90000.
Изменить 3:
Я вошел в BIOS и изменил Intel Speedstep на отключенный, а управление состояниями C на отключенный. Это, похоже, ничего не исправило. Я сделал это по совету этой веб-страницы: http://smallbusiness.chron.com/prevent-drops-cpu-speed-70828.html
Редактировать 4: Я использовал Docklight, чтобы подтвердить, что микропроцессор отправляет информацию достаточно быстро. Так что проблема определенно на стороне ноутбука
0 ответов на вопрос
Похожие вопросы
-
8
Ожидание ноутбука в Linux / Ubuntu
-
3
Почему отключение моего флэш-накопителя приводит к синему экрану?
-
3
Как максимально использовать время автономной работы ноутбука на ПК с Windows?
-
-
7
Какой эффект всегда спит ноутбук? Это плохо для батарей или что-то еще?
-
11
Подключение 2 внешних мониторов к ноутбуку?
-
8
Загрузка Linux с USB-накопителей
-
3
Ноутбук просыпается, когда я отключаю / выключаю любые USB-устройства
-
3
Есть ли способ соединить два компьютера через USB?
-
10
USB-адаптер Wi-Fi не работает в Windows Vista
-
3
Как я могу увеличить глобальный срок службы батареи?