Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите правильно организовать прием и обработку пакетов
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 07:39:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите правильно организовать прием и обработку пакетов
СообщениеДобавлено: Ср июл 25, 2018 18:51:46 
Родился

Зарегистрирован: Ср ноя 29, 2017 00:14:49
Сообщений: 17
Рейтинг сообщения: 0
Здравствуйте. Хочу сделать свой простенький протокол. Будут всего один-два провода для данных, но в целом вопросы не про это. В общем по таймеру или прерыванию МК будет получать биты пакета. Хотелось бы что бы они по приходу попадали в какой-либо буфер, а основная программа бы в любой момент (возможно даже по среди приема очередного пакета) могла их от туда забрать и передать в процедуру обработки пакета. Я так понял, что для этого обычно используют кольцевой буфер, но возникли некоторые вопросы:
1. Возможно ли в с кольцевым буфером работать по битам? Или мне нужно при приеме накопить сначала восемь бит и только потом отправить их в буфер? Если нужна переменная, то как это сделать? Просто две переменный сделать (одну под счетчик, другую под биты) и после записи если счетчик равен восьми, то обнуляю счетчик и байт отправить в кольцевой?
2. Если не ошибаюсь, то чтение из буфера занимает не один такт. Что будет если посреди чтения сработает прерывание и в этом прерывании начнется процедура записи? Могут ли так потеряться, исказиться или остаться необработанными данные в буфере? Может нужно сделать флаг, который запретит записывать в буфер, пока идет процедура чтения? Или потеря данных таки образом исключена?

Ну и вообще подход правильный? Может советы какие есть. Свой протокол делаю что бы просто научится. В основном интересует
только правильная организация буфера (физический уровень протокола и процедура обработки пакетов - это другой вопрос), поскольку и чтение и запись могут начаться в абсолютно любой момент (даже одновременно), а организовать желательно так, что бы я ничего не потерял (ну не считая переполнения буфера конечно же).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите правильно организовать прием и обработку пакето
СообщениеДобавлено: Ср июл 25, 2018 20:39:28 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Сдаётся мне ТС UART изобретает?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите правильно организовать прием и обработку пакето
СообщениеДобавлено: Ср июл 25, 2018 20:41:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
поскольку минимальная порция данных, обрабатываемая АЛУ "за раз" это байт, вам придется накапливать порции по 8 битов, "упаковывая" их в последовательность байтов. пока не представляю ситуации, когда "протокол" будет именно БИТОВЫМ.
думаю, прежде чем городить свой протокол, вам стоит ознакомиться со стандартными последовательными синхронными и асинхронными протоколами.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Помогите правильно организовать прием и обработку пакето
СообщениеДобавлено: Чт июл 26, 2018 10:20:41 
Открыл глаза

Карма: 1
Рейтинг сообщений: 19
Зарегистрирован: Вс сен 03, 2017 19:43:57
Сообщений: 42
Рейтинг сообщения: 0
Если пакет содержит признак начала пакета и/или контрольную сумму, то принимать надо сразу весь пакет в буфер, проверять контрольную сумму и передавать на обработку. В таком случае речи о кольцевом буфере идти не может. Нужен только счётчик принятых байтов (ну или битов, как вы хотели) - указатель на место в буфере.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y