Буферизует ли модуль HC-05 полученные данные?

Я использую модуль bluetooth HC-05 для отправки больших данных(80-100 Кб) с моего телефона на arduino-uno. Я обнаружил, что этот модуль имеет флэш-чип 8 Мбит (SST39VF800A), но в спецификации HC-05 нет ничего о буферизации передаваемых или принимаемых данных. Мне нужна ясность в отношении буферизации данных, чтобы я мог изменить скорость передачи данных с телефона для лучшей связи.

, 👍0

Обсуждение

М-м-м, интересный вопрос. Поскольку сам bluetooth упакован, я думаю, что модуль должен, по крайней мере, буферизировать несколько пакетов. [Это answer](https://stackoverflow.com/questions/17419036/what-is-the-maximum-packet-size-to-send-data-over-bluetooth-in-android) утверждает, что максимальный размер пакета может составлять около 1 КБ. Но чтобы быть уверенным, нужно было бы прочитать код прошивки или спросить того, кто это написал. Я не уверен, что это прошивка с открытым исходным кодом., @chrisl


1 ответ


1

Я также не нашел никакой помощи ни в одном листе данных, который смог найти. Поэтому я бы предложил простой эксперимент, отправляя все более большие пакеты, прежде чем другая сторона попытается что-либо прочитать, пока некоторые данные не пропадут. Пакеты даже не должны быть очень сложными, если все, что вы хотите знать, это то, является ли N_received == N_sent и для какого максимума 'N'.

Обновление:

Все байты были приняты правильно, если нет задержки, но с увеличением задержки чтения из HC-05 данные были получены не полностью, а с задержкой более 800 мс было получено только 63 Байта.

Если вы собираете данные по мере их поступления, то вы не можете измерить буферизацию. Когда вы ждете, пока все данные будут установлены, прежде чем пытаться их прочитать, количество байтов, которые вы получаете, является размером буфера. Это звучит как 63-байтовый буфер, вероятно, только то, что аппаратный UART HC-05 может буферизировать, не используя для этого никакой своей памяти.

,

Я сделал эксперимент, отправив 100B и 1000B данных отдельно, которые заняли 4 мс и 70 мс соответственно. Все байты были получены правильно, если нет задержки, но с увеличением задержки при чтении из HC-05 данные были получены не полностью и с задержкой более 800 мс было получено только 63Байта., @Gamma Ray

Я думаю, что буфер является FIFO, так как полученные данные были ПЕРВЫМИ 63 байтами., @Gamma Ray