Линии последовательной передачи данных

Слайд 2

RS-232 G – генератор сигнала (передатчик); R – приемник; A1, A2

RS-232

G – генератор сигнала (передатчик); R – приемник;
A1, A2 – сигнальные

проводники;
GND – земля
Слайд 3

RS-422 G – генератор сигнала (передатчик); R – приемник; A1, B1,

RS-422

G – генератор сигнала (передатчик); R – приемник;
A1, B1, A2, B2

– сигнальные проводники;
GND – земля;
RН – сопротивление нагрузки

UAB

t

0

+0.2В

-0.2В

-6В

+6В

0

1

Слайд 4

RS-485 (четырехпроводная схема)

RS-485 (четырехпроводная схема)

Слайд 5

RS-485 (двухпроводная схема)

RS-485 (двухпроводная схема)

Слайд 6

Кодирование сообщений

Кодирование сообщений

Слайд 7

Режимы кодирования Режимы бита четности: код с проверкой на четность; код

Режимы кодирования

Режимы бита четности:

код с проверкой на четность;
код с проверкой на

нечетность;
бит четности не передается.
Слайд 8

Открытие порта последовательной передачи данных (Windows) void* CreateFile( const char *Name,

Открытие порта последовательной передачи данных (Windows)

void* CreateFile(
const char *Name, //

”COM1”, ”COM2”, …
long AccessFlags, // GENERIC_READ|GENERIC_WRITE
long ShareMode, // 0
void *Ptr, // 0
long CreateFlags, // OPEN_EXISTING
long Flags, // FILE_FLAG_WRITE_THROUGH
void *TemplateH // 0
);

void *Hnd;
Hnd = CreateFile( ”COM1”, GENERIC_READ|GENERIC_WRITE,
0, 0, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, 0 );
if( Hnd == INVALID_HANDLE_VALUE ) {
printf("Open error\n");
}

Слайд 9

Установка режима приема/передачи bool SetCommState( void *Hnd, DCB *dcb ); struct

Установка режима приема/передачи

bool SetCommState( void *Hnd, DCB *dcb );

struct DCB

{
long DCBlength; // sizeof(DCB)
long BaudRate; // скорость передачи в бодах
long fBinary : 1; // 1
long fParity : 1; // вкл./откл. бит четности
long fDtrControl : 2; // DTR_CONTROL_DISABLE
long fRtsControl : 2; // RTS_CONTROL_ENABLE
char ByteSize; // 5, 6, 7, 8
char Parity; // 0-нет, 1-нечетн., 2-четн.
char StopBits; // 0-1, 1-1.5, 2-2

};
Слайд 10

Установка режима приема/передачи (пример) DCB dcb; memset( &dcb, 0, sizeof(dcb) );

Установка режима приема/передачи (пример)

DCB dcb;
memset( &dcb, 0, sizeof(dcb) );
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate

= CBR_9600;
dcb.fBinary = true;
dcb.ByteSize = 8;
dcb.fParity = true;
dcb.Parity = EVENPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fRtsControl = RTS_CONTROL_ENABLE;
if( !SetCommState(Hnd,&dcb) ) {
printf("SetCommState error\n");
}