Отговори на тема  [ 40 мнения ]  Отиди на страница 1, 2, 3  Следваща
Идея за софтуер за електронен шублер 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение Идея за софтуер за електронен шублер
Здравейте, имам следното питане. Занимвал съм се малко с ПИК, определено не бих казал че съм специалист, но всякакви по елементарни работи съм си правил с тях - LCD, стъпокови мотори, аларми и подобни.
Скоро си купих цифров шублер. От евтините - китайските. Искам да го включа към един ПИК и от там на LCD. Шублера има възможност да предава измерванията по сериен канал. Използва си негов си протокол. Даните се предават на 2*24бита с честота 90кHz (според данните, а според измерваният на моя 77k)Hz. Първите 24 бита са за абсолютната стойност, а вторите за относителната. Мен ме интересува относителната, т.е. тази която показва след като си натиснал "ZERO" и си измерил нещо. В началото и края на предаването има паузи от около 80мкс, а между двете поредици по 24бита - пауза около 160мкс. Измерванията се предават автоматично (дори и при изключен шублер 8O ), без заявка, в два режима с честота 3Hz и 30Hz. За начало ще използвам бавния режим защото е по-точен (макар че с тези шублери не може да очакваш невероятна точност :wink: ). Възможно е да се предава и отрицателно число което се кодира с 23 бит, които е за знак, но аз ще ползвам само положителни числа. Евентуално в последствие ще го доусъвършенствам и за отрицателни. Това е като цяло информацията.
А сега въпроса ми.
Заради многото шумове хората препоръчват да се правят по 3 измервания и да се усредни резултата.
Бих бил благодарен на идеи от вида:
- приемането на данните да става с прекъсвание или непрекъснато сканиране на входa където е закачен Clk на шублера
- идеи за това 3но, ако може 5но измерване на всеки бит, или евентуално цифрово филтриране
- други интересни идеи които може да са ми от полза

Вероятно и без помощ ще се справя, но с помоща на опитните колеги от форума мисля че ще науча доста ценни съвети и идеи.

А иначе сигнала шублера съм го включил през два компаратора за да го направят TTL ниво.
Ето и няколко осцилограми за да се визуализират сигналите :)


Прикачени файлове:
Коментар на файл: Сигнала който се изпраща - по добре се вижда
011.JPG
011.JPG [ 69.96 KiB | Прегледано 6579 пъти ]
Коментар на файл: Сигнала който се изпраща
012.JPG
012.JPG [ 64.12 KiB | Прегледано 6535 пъти ]
Коментар на файл: примерни измервания и изчисления,
Канал1 Clk - шублер
Канал2 Clk - след компаратор
Канал3 Data - шублер
Канал4 Data - след компаратор

Graphic1.jpg
Graphic1.jpg [ 803.69 KiB | Прегледано 6583 пъти ]


Последна промяна GTN на Съб Фев 17, 2007 4:07 pm, променена общо 1 път

Съб Фев 17, 2007 2:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
първо му разбери "неговия протокол" за обмен на данните - от там насетне е по лесно....


Съб Фев 17, 2007 3:27 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
[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 4:04 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
честно да си кажа - губи ми се целта на упражнението: само за кеф, искаш да си направиш шублер с индикатор 3х2метра, че да го вижда без очила дори кьоравия майстор в цеха или просто ще мериш 10,000 шийки на валове и трябва да ги паспортизираш всичките?


Съб Фев 17, 2007 9:42 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение 
Въпроса по-горе е коректен - каква е целта на упражнението.
Аз също имамм подобен шублер, и ми е любопитен протокола му.
Може и да ми свърши работа някой ден. :)
Многократни измервания и усредняване се правят при аналогови сигнали.
Цифровия сигнал, или го прочиташ, и е верен, или не го прочиташ.
Дай малко обяснения


Нед Фев 18, 2007 2:08 am
Профил WWW
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Целта за начало е просто да го подкарам. Просто да видя, че мога. Нямам си някаква спешна цел и задача. Но просто съм решил да се развивам. А само да стоиш и да четеш разни книжки не става. Трябва нещо практическо проектче да си намериш. Ами това е сегашното ми :D . В последствие ще си направя устройство - най-вероятно като средство за събиране и обработка на информацията. Правиш 200 измервания на еди си какво, устроиството ги събира. Накрая го закача на СОМ порта и ти ги праща в Excel. Това е едно приложение. Друг вариант, който просто ми идва през ум, е да си направя нещо като машинка за разпробиване на платките, с два шублера да ми прави обратна връзка - отново само за спорта. Виждал съм и по-лесни решения, така че това не е задължително. И трето решение нещо подобно на това: http://www.shumatech.com/dro-350/index.htm

А относно филтрирането. Ако погледнете осцилограмата: това е шум или смущения. Най вероятно щото китайците са го правили. Не е само при мен проблема, а и друга хора които са се занимавали го споменават. Ако случйно ти се падне да прочетеш цифровия сигнал точно в него момент - ще прочетеш грешно.


Прикачени файлове:
021.JPG
021.JPG [ 71.83 KiB | Прегледано 6525 пъти ]
Нед Фев 18, 2007 12:26 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Ами ти само го каза "щото е китайско". Едно CRC да му бяха сложили поне... Има една тема "Филтрация или апроксимация" или нещо подобно - в раздел програмиране е и е големичка - ще я видиш. Там има описани няколко метода. Иначе с три замервания нямаш гаранция че това чудо ще ти подаде три еднакви измервания - може второто да е с един бит по голямо и с просто сравняване няма да се получи.


Нед Фев 18, 2007 1:01 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Ами една малко еретична мисъл, т.е. те са две на обща основа, първата да запишеш всички данни в буфер а след това да ги обработваш, тези смущения лесно биха могли да бъдат елиминирани при обработката, втората е още по еретична, разбира се ... не знам дали се оправдава при теб но ... дискретизири сигнала и обрботи дискретита, там 100% можеш да отфилтрираш всички смущения, стига обаче да имаш достатъчно рам за да запазиш всички дискрети, но алтернатива на това е да го правиш в движение в-у блок да речем от 50 или 100 отчета, но затова си трябва и CPU по бързичко .....


Нед Фев 18, 2007 1:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение 
Пиковете в шината данни нямат значение, доколкото валидните данни са по определен фронт (или ниво) на клока.
При четенето трябва само да се следи комплектността на данните


Нед Фев 18, 2007 1:24 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
ако е за сложни решения мога да предложа да мери ентропията в 1000 последователни семпъла и при достигане на минимум (нула на първа производна примерно) - това му е показанието. :P

GTN, това не ми се струва да е шум, а някакъв проблем при компаратора - стръмност на фронтове, разлики в нива или нещо такова.
гледам от картинката, че е един период на сигнала е 12-15us, а стръмносста на фронта е няколко us? можеш ли да щракнеш една по-разгъната картинка.

какъв ти е компаратора?


Нед Фев 18, 2007 1:32 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Към ДедоБоре:
Използвам компаратор ЛМ393. Извинявам се за грешката, постал съм снимка без компаратор, директно на шублера сигнала. Сега се поправям :) Каналите които са след компаратора са 2ри и 4ти.
По мои сметки имам 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 ще е достатъчно времето.


А картинка с тези пикове по късно днес ще постна, сега съм го свалил долу шублера (а осилоскопа е на горния етаж) и смятам да пробвам да го подкарам.

Ще потърся темата за филтрацията да видя там какво пише :)


Прикачени файлове:
vreme.jpg
vreme.jpg [ 110.46 KiB | Прегледано 6538 пъти ]
Нед Фев 18, 2007 1:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Яну 30, 2006 2:48 am
Мнения: 1248
Местоположение: София
Мнение 
От приложените картинки се вижда, че по едната фаза на клока имаш стабилни данни.
Можеш да ги четеш и по SPI в слейв мод


Нед Фев 18, 2007 2:26 pm
Профил WWW
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
Syrius-B написа:
От приложените картинки се вижда, че по едната фаза на клока имаш стабилни данни.
Можеш да ги четеш и по SPI в слейв мод



Ммдаааа, това изглежда интересно решение. Заслужава си да се опита :)


Нед Фев 18, 2007 2:36 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Въпроса тук е дали това е общо валидно или просто така се е случило,относно това за стабилността на данните. От друга страна смущенията са с малка широчина, хардуерния модул няма как да ги открие сам, но ако правиш обработката софтуерно може да го постигнеш доста леко.


Нед Фев 18, 2007 2:45 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Пет Яну 26, 2007 5:05 pm
Мнения: 310
Местоположение: из България
Мнение 
ToHu написа:
Въпроса тук е дали това е общо валидно или просто така се е случило,относно това за стабилността на данните. От друга страна смущенията са с малка широчина, хардуерния модул няма как да ги открие сам, но ако правиш обработката софтуерно може да го постигнеш доста леко.


Тъй като навсякъде кадето четох хората се оплакват от тия пикове, предполагам че си е общовалидно. Не видях някакви хардуерни решения за да се отърват от тях. Така че мисля че само с софтуер ще се справя с тях :) Наистина са с малка широчина пиковете, така че най-много на едит от отчетите да повлияят. Надявам се да е така :oops:


Нед Фев 18, 2007 3:00 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 40 мнения ]  Отиди на страница 1, 2, 3  Следваща

Кой е на линия

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


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

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