| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Идея за софтуер за електронен шублер http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=3735 |
Страница 1 от 3 |
| Автор: | TheWizard [ Съб Фев 17, 2007 3:27 pm ] |
| Заглавие: | |
първо му разбери "неговия протокол" за обмен на данните - от там насетне е по лесно.... |
|
| Автор: | GTN [ Съб Фев 17, 2007 4:04 pm ] |
| Заглавие: | |
[quote="TheWizard"]първо му разбери "неговия протокол" за обмен на данните - от там насетне е по лесно....[/quote] Това е неговия протокол: "Даните се предават на 2*24бита с честота 90кHz (според данните, а според измерваният на моя 77k)Hz. Първите 24 бита са за абсолютната стойност, а вторите за относителната. Мен ме интересува относителната, т.е. тази която показва след като си натиснал "ZERO" и си измерил нещо. В началото и края на предаването има паузи от около 80мкс, а между двете поредици по 24бита - пауза около 160мкс." Разбрал съм го вече. Само забравих да спомена че 1 бит отговаря на 1/20480 от инча ≈ 0,00124мм Ето пример как става изчилсението: Нека разгледаме последната картинка, която е за 1,13мм. червените правоъгълници отговарят на лог "1". Шублера изпраща първо наи-младшият бит. В случая изпратеното число е 001010011100000000000000, но тъй-като както казах пържо е наи - младшия бит, то в действителност числото е 1110010100 = 916. делим го на 20480 и умножаваме по 25,4 за да стане в мм=1,136. В ралния софтуер, най-вероятно ще игнорирам най-младшите 3 бита, тъй-като те не оказват реално влияние върху резултат, 1 бит е прибл. 0,001, а точноста на шублера е 0,01, така че ще раделя на 8 цялото число и ще стане по-лесно. Също така моят шублер е до 150мм => 120945 максимално прието число. Т.е 17бит, като го разделя на 8 ще го събера в 8битови клетки. |
|
| Автор: | ДедоБоре [ Съб Фев 17, 2007 9:42 pm ] |
| Заглавие: | |
честно да си кажа - губи ми се целта на упражнението: само за кеф, искаш да си направиш шублер с индикатор 3х2метра, че да го вижда без очила дори кьоравия майстор в цеха или просто ще мериш 10,000 шийки на валове и трябва да ги паспортизираш всичките? |
|
| Автор: | Syrius-B [ Нед Фев 18, 2007 2:08 am ] |
| Заглавие: | |
Въпроса по-горе е коректен - каква е целта на упражнението. Аз също имамм подобен шублер, и ми е любопитен протокола му. Може и да ми свърши работа някой ден. Многократни измервания и усредняване се правят при аналогови сигнали. Цифровия сигнал, или го прочиташ, и е верен, или не го прочиташ. Дай малко обяснения |
|
| Автор: | GTN [ Нед Фев 18, 2007 12:26 pm ] | ||
| Заглавие: | |||
Целта за начало е просто да го подкарам. Просто да видя, че мога. Нямам си някаква спешна цел и задача. Но просто съм решил да се развивам. А само да стоиш и да четеш разни книжки не става. Трябва нещо практическо проектче да си намериш. Ами това е сегашното ми А относно филтрирането. Ако погледнете осцилограмата: това е шум или смущения. Най вероятно щото китайците са го правили. Не е само при мен проблема, а и друга хора които са се занимавали го споменават. Ако случйно ти се падне да прочетеш цифровия сигнал точно в него момент - ще прочетеш грешно.
|
|||
| Автор: | Cekins [ Нед Фев 18, 2007 1:01 pm ] |
| Заглавие: | |
Ами ти само го каза "щото е китайско". Едно CRC да му бяха сложили поне... Има една тема "Филтрация или апроксимация" или нещо подобно - в раздел програмиране е и е големичка - ще я видиш. Там има описани няколко метода. Иначе с три замервания нямаш гаранция че това чудо ще ти подаде три еднакви измервания - може второто да е с един бит по голямо и с просто сравняване няма да се получи. |
|
| Автор: | ToHu [ Нед Фев 18, 2007 1:09 pm ] |
| Заглавие: | |
Ами една малко еретична мисъл, т.е. те са две на обща основа, първата да запишеш всички данни в буфер а след това да ги обработваш, тези смущения лесно биха могли да бъдат елиминирани при обработката, втората е още по еретична, разбира се ... не знам дали се оправдава при теб но ... дискретизири сигнала и обрботи дискретита, там 100% можеш да отфилтрираш всички смущения, стига обаче да имаш достатъчно рам за да запазиш всички дискрети, но алтернатива на това е да го правиш в движение в-у блок да речем от 50 или 100 отчета, но затова си трябва и CPU по бързичко ..... |
|
| Автор: | Syrius-B [ Нед Фев 18, 2007 1:24 pm ] |
| Заглавие: | |
Пиковете в шината данни нямат значение, доколкото валидните данни са по определен фронт (или ниво) на клока. При четенето трябва само да се следи комплектността на данните |
|
| Автор: | ДедоБоре [ Нед Фев 18, 2007 1:32 pm ] |
| Заглавие: | |
ако е за сложни решения мога да предложа да мери ентропията в 1000 последователни семпъла и при достигане на минимум (нула на първа производна примерно) - това му е показанието. GTN, това не ми се струва да е шум, а някакъв проблем при компаратора - стръмност на фронтове, разлики в нива или нещо такова. гледам от картинката, че е един период на сигнала е 12-15us, а стръмносста на фронта е няколко us? можеш ли да щракнеш една по-разгъната картинка. какъв ти е компаратора? |
|
| Автор: | GTN [ Нед Фев 18, 2007 1:59 pm ] | ||
| Заглавие: | |||
Към ДедоБоре: Използвам компаратор ЛМ393. Извинявам се за грешката, постал съм снимка без компаратор, директно на шублера сигнала. Сега се поправям По мои сметки имам 8мкс. Смятам да го направя по следния начин: Ще се следи нарастващия фронт на Clk btfsc PORTA,d ;на портаА, пин d са данните incf danni_check,f ; временен регистър, ако той е >=2 (т.е. поне 2 от 3 измервание са били "1") приемам че резултата е 1 btfsc PORTA,d incf danni_check,f btfsc PORTA,d incf danni_check,f bcf STATUS,C btfsc danni_check,1 bsf STATUS,C rrf danni,f ;тук се записват данните, бит по бит през "С" общо 10 инструкция, при кварц >8МНz ще е достатъчно времето. А картинка с тези пикове по късно днес ще постна, сега съм го свалил долу шублера (а осилоскопа е на горния етаж) и смятам да пробвам да го подкарам. Ще потърся темата за филтрацията да видя там какво пише
|
|||
| Автор: | Syrius-B [ Нед Фев 18, 2007 2:26 pm ] |
| Заглавие: | |
От приложените картинки се вижда, че по едната фаза на клока имаш стабилни данни. Можеш да ги четеш и по SPI в слейв мод |
|
| Автор: | GTN [ Нед Фев 18, 2007 2:36 pm ] | |||||||||
| Заглавие: | ||||||||||
Ммдаааа, това изглежда интересно решение. Заслужава си да се опита |
||||||||||
| Автор: | ToHu [ Нед Фев 18, 2007 2:45 pm ] |
| Заглавие: | |
Въпроса тук е дали това е общо валидно или просто така се е случило,относно това за стабилността на данните. От друга страна смущенията са с малка широчина, хардуерния модул няма как да ги открие сам, но ако правиш обработката софтуерно може да го постигнеш доста леко. |
|
| Автор: | GTN [ Нед Фев 18, 2007 3:00 pm ] | |||||||||
| Заглавие: | ||||||||||
Тъй като навсякъде кадето четох хората се оплакват от тия пикове, предполагам че си е общовалидно. Не видях някакви хардуерни решения за да се отърват от тях. Така че мисля че само с софтуер ще се справя с тях |
||||||||||
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|