powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / надо разобрать битовый поток на уровне логики
16 сообщений из 16, страница 1 из 1
надо разобрать битовый поток на уровне логики
    #37476293
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется битовый поток. В потоке "встречаются" блоки данных. Все блоки одинаковой длины. Блок всегда начинается нулем и заканчивается единичкой. Между блоками идет некое количество единичек (может вообще не быть).

Надо нарисовать логическую схему декодера этого потока. Можно использовать мультиплексоры, D-flip-flop'ы и простые AND/XOR/etc gates.

Не получается нарисовать синхронизатор. Спасите...
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37476322
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь сделать сигнал "блок готов" на основе (!start+stop) битов, но получается фигня...
Надо как-то блокировать сигнал готовности чтобы он после первого срабатывания выключался на 6 тактов (для 4-х битового блока) а потом снова взводился и ждал 0-1 на у себя на входе... Как это сделать? Как задать эти шесть тактов ожидания на сброс уже прочитанного блока?
Пока дорисовал до этого:
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37477889
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl...после первого срабатывания выключался на 6 тактов (для 4-х битового блока) а потом снова взводился и ждал 0-1 на у себя на входе......

как один из вариантов - поставить обычный счётчик. выходы которого завести практически на любую логику таким образом, что бы при наступлении нужного такта вырабатывался сигнальчик - вот его на ресэт и дело в шляпе.

по возможным счётчикам(да и вообще элементарной ТТЛ цифре) лучше подходит книга Шило, если с электроникой дружите.

удачи Вам
(круглый)
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478039
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0как один из вариантов - поставить обычный счётчик. выходы которого завести практически на любую логику таким образом, что бы при наступлении нужного такта вырабатывался сигнальчик - вот его на ресэт и дело в шляпе.Счетчик... хм... А как сделать счетчик? :)

kolobok0по возможным счётчикам(да и вообще элементарной ТТЛ цифре) лучше подходит книга Шило, если с электроникой дружите.Не очень... я больше по ЯП и БД.
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478043
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, почитайте например здесь .
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478095
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не понимаю...
Если на вход у нас идет поток: 111000111 Мы должны сидеть в некоем буфере и ждать пока первые три единички не закончатся и не появится ноль - старт-бит, после этого мы должны включить счетчик и выключить стартовый буфер. После окончания блока данных счетчик должен выключится и снова включиться буфер.
Так? Если так, то как сделать это переключение с буфера на счетчик и обратно? От чего при таком подходе запитать селектор у мультиплексора?
Или я слишком "инструктивно" рассуждаю?
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478539
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,

Если это синхропоток (судя по тактам)
Если блок, по условию, всегда состоит из нулей (ведь единица его закончит)
- достаточно посчитать количество нулей

АБЗАЦ! - то есть в потоке появляется время от времени известное количество нулей... - вот их и считай на мультиплексоре... схему нарисовать??

Буфер, кстати, вообще не нужен...
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478552
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, я могу быть не прав - приведи пример реальной последовательности, с разбивкой на "блоки" и "лишние" такты...
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37478610
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, извините, но мне лень щаз электронику вспоминать. Уже лет эдак 5-10 практически ничего не проектировал. Т.е. теоретически построить конечный автомат я смогу (хотя ориентировался бы на JK-триггеры и мелкую логику), но это займет много времени и усилий. Лучше всего вам видимо обратиться на форумы по цифровой схемотехнике и электронике. Здесь всеже аудитория несколько иная.
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37479174
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда, дайте примеры последовательностей которые необходимо детектировать. Это как раз по моей специальности (микросистемная техника). После окончания универа в прошлом году, по специальности не работал, но все же знания еще остались. Помогу чем смогу.
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37479294
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот пример потока с восми-битовыми блоками и разбор его на С.
Начинается с четырех единичек, потом блок данных, пять единичек пропустить, и второй блок данных. Третий блок вплотную прижат ко второму. Потом пропуск в два бита и плохой блок (вместо единички ноль) надо проигнорировать. Ждем один лишний ноль, две единички и четвертый блок. Пятый блок нача-... но не кончен - конец света, армагеддон и потоп.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
/* check input bit-stream,
 * stream consists of blocks of 8 bits with start-stop bits around them
 * start bit=0, stop bit=1
 *
 * stream should start with one or more 1s.
 * waiting period between blocks are filled with any number of 1s (zero or more).
 */
#include <stdio.h>

//                      good           good     good        bad            good  ba
//                  ^12345678$     ^12345678$^12345678$  ^12345678     ^12345678$^0
char *stream = "1111001101010111111001001000100001001011101110111100111011111111101";

int main(int argc, char **argv) {
	while(*stream) {
		// skip starting and in-between blocks set of 1s
		while(*stream=='1') stream++;

		stream++; // skip start bit

		int b= 0 ;
		unsigned char block= 0 ;
		while(b< 8  && *stream) {
			if(*stream=='1') block |=  1 <<b;
			stream++;
			b++;
		}

		if(*stream == '1') {
			stream++;  // skip stop bit
			printf("%X ", block);
		} else {
			// incorrect stop bit
			// assume that block was of incorrect size
			// wait for 1s as a reset signal
			while(*stream=='0') stream++;
		}
	}
	return  0 ;
}
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37479588
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, нарисовал нечто рассчитанное на четырех-битные блоки... Даже вроде работает.
Сверху вниз:
- shift-reg это полу-автоматический, полу-восстанавливаемый источник битового потока. Я рисовал в logisim, и не придумал другого способа как сделать битовый поток для тестов. Можно игнорировать
- счетчик битов на старт-стоповые биты и 4 значимых бита.
- собиратель блока. Лампочка под OR зажжется только если будет найден корректный блок 1001.
Можете ругать, и комментировать.
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37479777
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНадо нарисовать логическую схему декодера этого потока. Можно использовать мультиплексоры, D-flip-flop'ы и простые AND/XOR/etc gates.
А вы вариант с PIC-контроллером не рассматривали? Может это будет более простой вариант?
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37480467
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZP...А вы вариант с PIC-контроллером...

правельнее сказать...

А Вы вариант с микроконтроллером...

потому как это уже от задачи и условий. пики - это не всегда и везде.. Например под определённые задачи и атмель, либо от СТ... подойдут...стоимость, частоты опять жешь...

(круглый)
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37483222
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, теперь примерно понял...
Еще вопросик - а после bad-блока всегда нужно еще пропускать именно и только один ноль? или все нули (и потом, естественно, все единицы)?
...
Рейтинг: 0 / 0
надо разобрать битовый поток на уровне логики
    #37483229
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще - тебе что, нужен стандартный демодулятор асинхронного потока (при известной скорости, без контроля четности)?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / надо разобрать битовый поток на уровне логики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]