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

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

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

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

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

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

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

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

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

Буфер, кстати, вообще не нужен...
...
Рейтинг: 0 / 0
12.10.2011, 12:08
    #37478552
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
Впрочем, я могу быть не прав - приведи пример реальной последовательности, с разбивкой на "блоки" и "лишние" такты...
...
Рейтинг: 0 / 0
12.10.2011, 12:39
    #37478610
kDnZP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
White Owl, извините, но мне лень щаз электронику вспоминать. Уже лет эдак 5-10 практически ничего не проектировал. Т.е. теоретически построить конечный автомат я смогу (хотя ориентировался бы на JK-триггеры и мелкую логику), но это займет много времени и усилий. Лучше всего вам видимо обратиться на форумы по цифровой схемотехнике и электронике. Здесь всеже аудитория несколько иная.
...
Рейтинг: 0 / 0
12.10.2011, 16:58
    #37479174
Xordal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
Правда, дайте примеры последовательностей которые необходимо детектировать. Это как раз по моей специальности (микросистемная техника). После окончания универа в прошлом году, по специальности не работал, но все же знания еще остались. Помогу чем смогу.
...
Рейтинг: 0 / 0
12.10.2011, 18:01
    #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
12.10.2011, 21:22
    #37479588
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
Вот, нарисовал нечто рассчитанное на четырех-битные блоки... Даже вроде работает.
Сверху вниз:
- shift-reg это полу-автоматический, полу-восстанавливаемый источник битового потока. Я рисовал в logisim, и не придумал другого способа как сделать битовый поток для тестов. Можно игнорировать
- счетчик битов на старт-стоповые биты и 4 значимых бита.
- собиратель блока. Лампочка под OR зажжется только если будет найден корректный блок 1001.
Можете ругать, и комментировать.
...
Рейтинг: 0 / 0
13.10.2011, 01:10
    #37479777
kDnZP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
White OwlНадо нарисовать логическую схему декодера этого потока. Можно использовать мультиплексоры, D-flip-flop'ы и простые AND/XOR/etc gates.
А вы вариант с PIC-контроллером не рассматривали? Может это будет более простой вариант?
...
Рейтинг: 0 / 0
13.10.2011, 12:40
    #37480467
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
надо разобрать битовый поток на уровне логики
kDnZP...А вы вариант с PIC-контроллером...

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

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

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

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


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