Отговори на тема  [ 10 мнения ] 
Манчестер - кодиране - синхронизация 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 16, 2005 9:46 am
Мнения: 29
Мнение Манчестер - кодиране - синхронизация
Въпросът ми е следния:
Как да направя синхронизацията при манчестер кодиране в приемника. Т.е. как да разбера, че преход 0-1 означава 0 и преход 1-0 означава 1? Не можах да намеря в нета го прочета. Просто за самата синхронизация или за някакъв алгоритъм не открих нищо.


Пет Юни 16, 2006 3:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
микрочип, фърли ме в музиката...
намяло нищо за манчестер де/кодери в нета... ти как търсиш?

като напишеш в гуглето "manchester encoder" първия документ е този
http://www.xilinx.com/bvdocs/appnotes/xapp339.pdf
отвори го, прочети го и ще си наясно.
ако не си наясно, продължи да четеш следващите линкове.
ако пак не си наясно... мииии незнам тогава

ПС: май трябва да смениш процесора, че ти оказва лошо влияние 8)


Пет Юни 16, 2006 4:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Дек 19, 2004 6:26 pm
Мнения: 1628
Местоположение: Сливен
Мнение 
http://www.atmel.com/dyn/resources/prod ... oc4661.pdf
тук има нещичко като алгоритми


Пет Юни 16, 2006 4:13 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 16, 2005 9:46 am
Мнения: 29
Мнение 
ДедоБоре, недей така, аз казах че не съм наясно със синхронизацията, а материали има много.

Благодаря!!!


Пет Юни 16, 2006 5:33 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Нед Юни 25, 2006 7:43 pm
Мнения: 101
Местоположение: Bay Area
Мнение 
Ъм, моя изглед е вместо да го мисля като изтискване на часовници и синхронизация че и после транзиции - аз виждам по просто:

Всяко битче е убезателно следващо от своето обратно. Как знаеш кое е кое - всяка рамка има документиран пре-ембъл който се повтаря нещо като 40 пъти и няма как да не го хванеш и от там да си знаеш кое е кое. Само не помня самата секвенция на тоя пре-ембъл - беше само нули или само 1 май, но не ме цитирай.


Сря Юни 28, 2006 9:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Re: Манчестер - кодиране - синхронизация
microchip написа:
Въпросът ми е следния:
Как да направя синхронизацията при манчестер кодиране в приемника. Т.е. как да разбера, че преход 0-1 означава 0 и преход 1-0 означава 1? Не можах да намеря в нета го прочета. Просто за самата синхронизация или за някакъв алгоритъм не открих нищо.

Какво му е сложното , принципно в самия код има 8 бита за синхронизация в началото на кода , намираш ги, запомняш дължината на импулса, поставяш го в таимер и го караш да ти прекъсва с това време и така имаш синхронизация до края на кода.
Винаги когато кода е 1 и 1 в синхро импулса означава 0 и винаги когато кода е 0 и 1 в синхро импулса е 1 , проста работа .
Още по прост вариант е да си вземеш един HCS4040 ,слагаш го на цифровия изход 8 извод на U2270, делиш на 64 и така имаш синхро импулс който е синхронизиран с данните , и си правиш още по елементарна програма :)


Сря Юни 28, 2006 4:31 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 16, 2005 9:46 am
Мнения: 29
Мнение 
Moga да споделя как го направих, не зная дали е така по правило, но става.
Алгоритъмът е следният:
Формата на предаването е следния.
1. 8 бита единици.
2. Байт H'A5'
3. Информационни байтове.
Приемане и декодиране.
При получаване на сигнал 8-те единици се кодират като меандър с тактова честота. Информационният фронт е 1-0, правя цинхронизацията и разбирам от кой фронт трябва да правя измерванията. Стартирам времезакъснение равно на 75% от продължителността на информациония период. През това време не се чете сигналът на информационния вход. След това се стартира времезакъснение равно на 50% от продължителността на информациония период и през това време се чака информационен фронт. По неговия вид - нарастващ или падащ се определя информационния бит 0 или 1. Ако през това време не дойде информациннен фронт програмата отива да чака нова синхронизация.
Постъпващите информационни битове ги прекарвам през клетка избутвайки ги от дясно на ляво. Като след всеки постъпил бит я чета тази клетка. Когато нейното съдържание стане H'A5', зная че вече започват да постъпват информационни битове. Пускам си един брояч на 8 и така отделям постъпилите вече информационни байтове.
Другото си е вече въпрос на съставяне на програма, дали на асемблер, дали на С няма значение.
Написах всичко подробно, защото може да помогне на някого, нали все пак сме в "АКАДЕМИЯ".

Ако някой има нещо друго по-рационално нека го сподели.


Сря Юни 28, 2006 8:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение 
microchip написа:
Moga да споделя как го направих, не зная дали е така по правило, но става.
Алгоритъмът е следният:
Формата на предаването е следния.
1. 8 бита единици.
2. Байт H'A5'
3. Информационни байтове.
Приемане и декодиране.
При получаване на сигнал 8-те единици се кодират като меандър с тактова честота. Информационният фронт е 1-0, правя цинхронизацията и разбирам от кой фронт трябва да правя измерванията. Стартирам времезакъснение равно на 75% от продължителността на информациония период. През това време не се чете сигналът на информационния вход. След това се стартира времезакъснение равно на 50% от продължителността на информациония период и през това време се чака информационен фронт. По неговия вид - нарастващ или падащ се определя информационния бит 0 или 1. Ако през това време не дойде информациннен фронт програмата отива да чака нова синхронизация.
Постъпващите информационни битове ги прекарвам през клетка избутвайки ги от дясно на ляво. Като след всеки постъпил бит я чета тази клетка. Когато нейното съдържание стане H'A5', зная че вече започват да постъпват информационни битове. Пускам си един брояч на 8 и така отделям постъпилите вече информационни байтове.
Другото си е вече въпрос на съставяне на програма, дали на асемблер, дали на С няма значение.
Написах всичко подробно, защото може да помогне на някого, нали все пак сме в "АКАДЕМИЯ".

Ако някой има нещо друго по-рационално нека го сподели.

По скоро са 8 нули :)
Малко не се разбира какви искаш да направиш , ако го начертаеш като блокова схема ще е по ясно , и после по лесно се прави програмата :lol:
Кледах в един пример в който четяха всичко и после си търсеха 8-те нули и от там си подреждат кода беше много тъпо направено :D


Чет Юни 29, 2006 12:57 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Нед Юни 25, 2006 7:43 pm
Мнения: 101
Местоположение: Bay Area
Мнение 
Виж как е изпълнен контролера в Verilog, доста неща обясява само да следиш кода - аз го намирам много уброзователно за мен. Описва 3 различни методи за синхронизация:

http://www.fpga4fun.com/10BASE-T0.html


Чет Юни 29, 2006 5:49 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Окт 16, 2005 9:46 am
Мнения: 29
Мнение 
"plameniv" задачката е проста, трябва да се предават 4 информационни байта по канал, кодирани Манчестер.
Дали ще се предаде в началото 8 единици или нули мисля, че няма значение, защото и при едните и при другите се знае кой е информационния фронт и лесно се отделя за синхронизация. Байтът H'A5' е индификатор, че след него следват информационните 4 байта. Мисля, че е просто. Написването на програмката вече е лесна работа.


Чет Юни 29, 2006 6:58 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 11 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни