Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Пращане на byte?
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=1203
Страница 1 от 1

Автор:  bigboy [ Съб Ное 05, 2005 7:33 pm ]
Заглавие:  Пращане на byte?

Здравейте,
Искам малко помощ как да предам един байт серийно от един на друг пик ( например между две 12-ки) без да използвам някакъв протокал от сорта на I2C, RS232 и др. Просто да прехвърля байта по един проводник. В "CCS C" има разни примери, ама само за протоколите.
За да съм точен ме интересува не само как да го пратя, но и как да го приема.

Автор:  ToHu [ Съб Ное 05, 2005 8:03 pm ]
Заглавие: 

Е ... то не ползваш протокол няма как да сатне, каквото и д анаравиш то ще е протокол щом предаваш данни. Ползвай софтуерен RS232 ако има време за това, друг вариант по един проводник е 1-wire протокола, ама то с RS голяма разлика нема.
Ако имаш два пина вече си отиваш на SPI ....щото SPI си е точно подаване на клок и дата.
ако искаш максимално бързо предавай го паралелно :), то няма как все някак тия нули и единицки от единиа трябва да отидат до другия.
Естествено има и други методи, но те са сходни с горните, примерно нулата ти е импулс х а единицата импулс 2х ....ама не знам струва ли си да се мориш с такива упражнения в твоя случай, това се ползва ако няма как да синхронизираш с клок и не може да си сигурен че двтата ще имат стабилна честота за да ползваш RS232. Мначестър също е само синхронизиращ се код .....

Автор:  bateAz [ Съб Ное 05, 2005 8:06 pm ]
Заглавие: 

RS232, ako ти е свободен модулът. По-лесно няма.

Автор:  bigboy [ Съб Ное 05, 2005 8:34 pm ]
Заглавие: 

Абе момчета, не може да не става, защото съм виждал устройства ( едното предавател, а другото приемник-например за аларма за кола), невиждам разлика дали сигнала ще мине по жица или не, ще то във втория случай само са добавени модулатор и демодулатор(ВРЪЗКАТА Е ЕДНОПОСОЧНА ! КАКЪВ ПРОТОКОЛ ВИЖДАТЕ ТУК! НЯМА И ТАКТОВ СИГНАЛ!

Автор:  Gogo [ Съб Ное 05, 2005 8:51 pm ]
Заглавие: 

Ами ако някой китаец ти каже нещо на китайски, дали ще го разбереш? Да не говорим, че има и няколко вида китайски. За да го разбереш, трябва да ти го каже на език, който разбираш. Е тва е протокол... без значение дали връзката е еднопосочна или трипосочна :D Протокол винаги има (някакъв).

Автор:  vasil [ Съб Ное 05, 2005 8:52 pm ]
Заглавие: 

Най добре да дефинираш какво за теб означава " протокол ".Лично аз за такива нужди ползвам UART ( всеки контролер го има )

Автор:  bigboy [ Съб Ное 05, 2005 9:11 pm ]
Заглавие: 

Ами, доколкото съм учил, протокол е набор от правила по които се предават данните, за да нестане "каша", но не съм наясно как да го направя в тоя случай, а и това което го гледах беше 12c509- не виждам UART 8O
Аре светнете ме как да стане!!!

Автор:  ToHu [ Съб Ное 05, 2005 9:29 pm ]
Заглавие: 

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

putc(byte);

и това е, байта ти е предаден, от другата страна ще получиш прекъсване че имаш нови данни

byte=getc();

и другия процесор е получилбайта, какъв е тук проблема не виждам, 12-ка, 15-ка, 23-ка .... и 181-ца да е все тая .....

Друг вариант SPI, предимство имаш такт гълта още един кабел, но пък може да го рзтягаш във времето ак имаш по спешни задачи, ако е софтуерна поддръжката му де, ако е хардуерно няма ниаква разлика, той процесора си го мисли.

spi_write(byte);

от другата страна ...

byte=spi_read();

p.s. та не рабзирам какво те притеснява,нужно ли е да имаш хардуерна поддържка за д аимаш протокол, не не е нужно ..... вземи разучи различните протоколи за да ти светне малко, тук не знам дали е удачно д аседнем да пишем страници обеснения при условие че отдавна ги има.

Автор:  bigboy [ Нед Ное 06, 2005 10:29 am ]
Заглавие: 

Ами за пръв път ми се налага да правя такова нещо. От това което съм видял за протоколите, е че имат tx, rx, а някои и clock -(най общо казано). Никой не спори, че наборът от правила е задължителен! Ако го напиша както е дадено стандартно " и баба знае". Тогава да питал в реда
#use rs232(baud=9600, float_high, bits=9, xmit=PIN_B0, rcv=PIN_B0)
не мога ли да задам само tx за предавателя и rx за приемника? Искам да направя възмажно най-простия вариант без обратна връзка между двете устройства. И наиститна жиците са кът, повече от една не мога да отпусна. Понеже не съм правил такоз нещо незная дали може да се реализира със стандартен протокол. За мен това е нещо като частен случай. :oops:

Автор:  ToHu [ Нед Ное 06, 2005 11:05 am ]
Заглавие: 

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

Автор:  VSU [ Нед Ное 06, 2005 10:04 pm ]
Заглавие: 

Мале мале колко много приказки а накрая нищо ето ти линк за IR протокол http://www.ustr.net/infrared/infrared1.shtml а сигурно и някаде по примерите ще намериш нещо за RC5 ili RC6 протокол тъкмо като го направиш ще можеш после и дистанционно да си спретнеш ако ти потрябва някой ден :lol:

Автор:  ToHu [ Нед Ное 06, 2005 10:22 pm ]
Заглавие: 

Ами това на пръв бегъл поглед си е баш манчестър ... ама не е лошо хората д се поразтърсват малко, а не всичко наготово да вземат. А м-у два процесора на фисксирана честота може да мине само с най-обикновенно предаване, стига да не с далче един от друг, на фиксиран интервал от време предава бит 0/1 ....

Автор:  VSU [ Пон Ное 07, 2005 2:38 am ]
Заглавие: 

еее другия нали трябва да знае кога какво приема ами ако загуби интервала по някаква причина ама и нали 12ц509 е там май няма много място за писане :roll:

Автор:  Predator_MF [ Пон Ное 07, 2005 3:27 am ]
Заглавие: 

bigboy написа:
Абе момчета, не може да не става, защото съм виждал устройства ( едното предавател, а другото приемник-например за аларма за кола), невиждам разлика дали сигнала ще мине по жица или не, ще то във втория случай само са добавени модулатор и демодулатор(ВРЪЗКАТА Е ЕДНОПОСОЧНА ! КАКЪВ ПРОТОКОЛ ВИЖДАТЕ ТУК! НЯМА И ТАКТОВ СИГНАЛ!

30 реда код - аз ли да ги напиша :D
Колелото на ново едва ли ще можеш да откриеш...Kakвото и да напишеш по 1 жица трябва да разгънеш тия 8 бита в сериен вид, т.е. трябва да ги подаваш последователно във времето. Това си е протокол, също както в дистанционните управления за модели, аларми, телевизори и пр. RS232 се пише с 30-ина реда код на ASM, едва ли ще ти отнеме и кой знае колко време, не можах да разбера каква е целта да бягаш от лесното, опитваш се да скриеш данните които ще текат ли? Щото ако е така пусни някакъв нестандартен baudrate или криптирай с просто XOR-ване (1 допълнителна инструкция).

Автор:  bigboy [ Пон Ное 07, 2005 12:22 pm ]
Заглавие: 

Цитат:
30 реда код - аз ли да ги напиша
Колелото на ново едва ли ще можеш да откриеш...Kakвото и да напишеш по 1 жица трябва да разгънеш тия 8 бита в сериен вид, т.е. трябва да ги подаваш последователно във времето. Това си е протокол, също както в дистанционните управления за модели, аларми, телевизори и пр. RS232 се пише с 30-ина реда код на ASM, едва ли ще ти отнеме и кой знае колко време, не можах да разбера каква е целта да бягаш от лесното, опитваш се да скриеш данните които ще текат ли? Щото ако е така пусни някакъв нестандартен baudrate или криптирай с просто XOR-ване (1 допълнителна инструкция).


Аре нема нужда! Сам си го написах !!! Само да стане раздумка за протоколи, да не съм пропуснал нещо ново из тях. 8)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/