| Предишната тема :: Следващата тема |
| Автор |
Съобщение |
SurchO Нов потребител

Регистриран на: 26 Юни 2004 Мнения: 41
|
Пуснато на: Съб Май 07, 2005 22:10 Заглавие: RS232 |
|
|
Здравейте
Трябва ми информация за комуникиране по сериер 232 опрт.
Пинове, Времедиаграми, формат на пакета .......
10x |
|
| Върнете се в началото |
|
 |
bai_tishan Опитен потребител


Регистриран на: 12 Фев 2005 Мнения: 5792 Местожителство: Велико Търново
|
Пуснато на: Съб Май 07, 2005 22:20 Заглавие: |
|
|
пишеш в GOOGLE -RS232 и инфо колкото щеш.  _________________ Хайде няма какво да се залъгваме, и по- хубави сме виждали и по- грозни сме е***и. |
|
| Върнете се в началото |
|
 |
SurchO Нов потребител

Регистриран на: 26 Юни 2004 Мнения: 41
|
Пуснато на: Съб Май 07, 2005 22:24 Заглавие: |
|
|
В момента сам се заровил в гуугала но вече час време попадем на разни саитове с повърхностни данни които не ми вършат работа  |
|
| Върнете се в началото |
|
 |
guitman Опитен потребител


Регистриран на: 26 Авг 2004 Мнения: 1470 Местожителство: Пловдив
|
|
| Върнете се в началото |
|
 |
Predator_MF Опитен потребител


Регистриран на: 29 Юли 2004 Мнения: 272 Местожителство: Русе
|
Пуснато на: Пон Май 09, 2005 10:35 Заглавие: |
|
|
Чак пък времедиаграми незнам за кво са ти...Ше се опитам да го обясня по най-простия начин, мисля че един път вече правих подобно обяснение тук (търси тема WinLIRC)...
В основите на RS232 протокола е асинхронното серийно предаване на данни. Серийно означава (в случая), че данните се предават с течение на времето (побитово - бит по бит ). Т.е. имаш едно число, примерно 10 (десет в десетично). Това ти число се предава серийно (побитово). В двоичен вид 10 се представя като 00001010. Има два начина да го предадеш, отзад напред или отпред назад... В RS232 се предава с LSb (Least Significant Bit - от най-десния бит към най-левия).
Асинхронно означава, че данните се предават с предварително уточнени времена (бодрейт). Ако ти е трудно да го схванеш, ще кажа че в синхронното предаване/приемане има един допълнителен крак (Clock - тактов) по който се синхронизира всеки бит.
Оттук подробно... За да предаде предавателя едно число, първо се подава Start бит. Приемника приема този бит, оттам нататък чака 8 бита които са самото число което ще се приема. Това число се предава от дясно -> наляво, т.е. 0-1-0-1-0-0-0-0. След предаването на този бит, предавателя генерира Stop бит. Толкова е просто .
Предполагам си го представи какво представлява пакета:
Start - bit0 - bit1 - bit2 - bit3 - bit4 - bit5 - bit6 - bit7 - Stop
Всеки от един от тия десет елемента се нарича бод (baud). Понятието бодрейт (baudrate) е величина, изразяваща колко такива бода има за една секунда, или с други думи - скоростта на трансфер. Например 9600bps (baud per second - бода за секунда) означава, че за една секунда се предават точно 9600 бода. Оттук е лесно да си обясниш колко време е нужно за един бод:
t = 1/9600 ~ 104us.
В първоначално състояние, линиите TX и RX (TX - transmit (предаване), RX - recieving (приемане)) са в състояние на лог.1. Старт бита представлява 0 с продължителност 104us, следват 8-те бита от числото, всеки от които е със същата продължителност и накрая идва стоп бит, който също е 104us.
Незнам доколко това обяснение ще ти свърши работа, ако имаш въпроси - питай  |
|
| Върнете се в началото |
|
 |
Surch0 Гост
|
Пуснато на: Сря Май 11, 2005 15:40 Заглавие: |
|
|
10x за обяснението..
Значи са кажа аз до каде сам стигнал...
значи като сложа осцилоскопа на РС порта на пц-то на ТХ пина наблиудавам тези импулси но не са ми ясни няколко неща..
1. Имам някаква програма за изпращане на текст през рс232 но несам сигурен дали тя работи коректно защото когато непращам нищо на изхода имам -12в а когато подам някакав знак изкарва импулси с амплитуда от +12в и като приключи пак остава на ниво -12в спрямо маса (пин5 на ДБ9 конектор)
2. незнам как ще изглежда пакета ако напримерно се изпратят няколко знака като дума например а не еденично число
Незная тази тъпа програма дето я имам дали числото 12 например го праща като 12 или като поредица от двете числа (1) и след това (2)
Ако имаш надежден Софтуер моляте прати ми го на [email protected]
10x |
|
| Върнете се в началото |
|
 |
RC Опитен потребител

Регистриран на: 22 Фев 2003 Мнения: 13214
|
Пуснато на: Сря Май 11, 2005 15:50 Заглавие: |
|
|
По т.1 - нормално е.
По т.2 - през порта се изпращат символи със седем (или осем) битова кодировка, а това как ще се интерпретират (като числа или букви ) е съвсем друг въпрос.
Ако програмата която ползваш е някакво емулиране на терминал (да речем ) и си написал числото 12, то това са два символа и би трябвало да видиш два пакета.
за какво? |
|
| Върнете се в началото |
|
 |
Predator_MF Опитен потребител


Регистриран на: 29 Юли 2004 Мнения: 272 Местожителство: Русе
|
Пуснато на: Сря Май 11, 2005 15:51 Заглавие: |
|
|
Ще ти отговоря на всички въпроси...не можеш да ме затапиш
1. Програма която да използваш - много са, даже аз съм писал една (аре няма да ти я давам щот е много проста). Препоръчвам ти да използваш "COM Port Toolkit 2.4" или "RealTerm". Ако не знаеш как да ги намериш (дата-бг, гугъл), ползвай HyperTerminal-а на Windows (Start>Programs>Accessoaries>Communications), също става но не е толкова добър колкото горните две.
2. Остави ги тия напрежения, това са TTL нива, 0 се води -12V, а 1 се води +12V. Купуваш си една интегрална схема - MAX232, намираш в гугъл какво да направиш с нея и тогава мери с осцилоскопа.
3. Това 12 зависи как го пращаш... От това дето го приказваш виждам че не си много в час с булеви алгебри и начини за представяне на числа. Значи има една таблица, наречена ASCII (пак google.com), прочети малко за нея и пак питай. Освен това зависи как го пращаш през COM порта - като ASCII код, шеснаисетично или десетично число...
Edit:
Ето нещо ако по-някаква случайност не си намерил в нета:
http://www.kevinro.com/cable.pdf |
|
| Върнете се в началото |
|
 |
Surch0 Гост
|
Пуснато на: Сря Май 11, 2005 22:20 Заглавие: |
|
|
Абре верно е че несам си играл мноо с компорт но нали за всичко си има начало
Та това с 2-та пакета го останових опитно с осцилоскопа като пуснах бодреита на 8бпс, но немога да запомня 20 стойност за 2 сек тоест немога да хвана каде свършва единия пакет и каде почва другия. За тази цел си направих един делител на напрежение и го вкарах в звуковата карта и с саундедитор мога да си запиша целия пакет и след това да си го разглеждам дано свърши работа понеже още на сам го пробвал ....
10x |
|
| Върнете се в началото |
|
 |
RC Опитен потребител

Регистриран на: 22 Фев 2003 Мнения: 13214
|
Пуснато на: Сря Май 11, 2005 22:28 Заглавие: |
|
|
Surch0, едно от другите имена на този интерфейс (и протокол) е Асинхронен - познай защо?  |
|
| Върнете се в началото |
|
 |
|