.


:




:

































 

 

 

 


COM

 

, , , , , " . , . - (serial ports) .

, . , . ֳ Serial Interface Serial Port. , .

(, ) ' ', . : , , . - , ' '. - .

IRQ4 ( COM1 COM3) IRQ3 ( COM2 COM4). , IRQ11 ( IRQ4) IRQ10 ( IRQ3). , ( ) .

, ISA, , , .

.
.
.
ϳ
.
 
08-23-.010.00.000  
: RS-232C, RS-423A, RS-422A RS-485.

PC RS-232C. RS-485, RS-422A, .

RS-232C , ( ), (). ', , . ֳ DTE Data Terminal Equipment. , D Data Communication Equipment. ʳ ' DTE, ' . 1.1. ' DTE (), ' - (. 1.2).

 

. 1.1. ' RS-232C

 

. 1.2. ' RS-232C -

 

 

, , '. , OM- .

- , ' , ' , , Rs-232c. - , 3 - 4 - .

- (, ). . Serial Mouse - . (9-) -. ' ', , ' - - . - (security devices), . ֳ , , .

 

USB

 

.
.
.
ϳ
.
 
08-23-.010.00.000  
USB (Universal Serial Bus - . " ") - . USB ( 2.0 ) 4 - 2 2 - .

USB , . USB , . ' , . ( ) USB , ' . USB- USB-. - USB-, . USB- , '. ' USB-, USB- . - ( ), USB- . USB - ' , .

USB - ' ', , Ethernet- .

USB . (endpoint) . . . ʳ , , , 4 - (bulk), (control), (isoch) (interrupt). , , , .

.
.
.
ϳ
.
 
08-23-.010.00.000  

- . - 0, , , , .

, , /, - N . , ( / / ).

/ , N (1 low full speed, 8 high speed). - .

, ( ), . , , .

, 񳺿 . , , , .

, , ( ). , DMA DMA-, .

( ). ³ , U

.
.
.
ϳ
.
 
08-23-.010.00.000  
SB.

, -, USB Firewire. -: 1 璺, C2

-, , : , , ( ). -, (. 1.3). - - -, . -, ( 0), . , , . , -. , , . , . , 8 , - , , 5%. ( ) , . ( ), ' , ,

.
.
.
ϳ
.
 
08-23-.010.00.000  
. , , , . .

 

. 1.3.

 

:

, , - , - . .

, -, , - ( ).

, ( -) . . .

: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800,

.
.
.
ϳ
.
 
08-23-.010.00.000  
9600, 19200, 38400, 57600 115200 /. ʳ 5, 6, 7 8 (5- 6- ). ʳ - 1, 1,5 2. PC OM- RS-232C.

'. , . , . , , . , , , , .

- (. 1.4). , .


. 1.4 -

 

, :

1. DTR ' .

2. DSR '.

3. RTS ' .

4. CTS

.
.
.
ϳ
.
 
08-23-.010.00.000  
' .

5. CTS (, ) ' .

6. ³ CTS ' ( ' ).

7. RTS ' ( '), . '.

8. RTS CTS.

9. ' RTS .

10. .

11. ' .

12. .

13. ' DTR, ' ( ).

14. DSR '.

, (, NRZ), . - ', ( , , ). PC SDLC,

.
.
.
ϳ
.
 
08-23-.010.00.000  
. ' (mainframes) IBM ( ). V.35.

USB Intel, Microsoft, Philips, US Robotics. USB ' . :

'. ' (. legacy) (PS/2, , , , SCSI), '.

ϳ ' . , ' , .

. (, (COM) (LPT) ) , Plug and Play. 䳿 ' - , , , .

ϳ USB Windows 95, Windows 98. USB , Useless s

.
.
.
ϳ
.
 
08-23-.010.00.000  
erial bus - . , USB, 2000 .

Hewlett-Packard, Intel, Lucent ( Alcatel-Lucent), Microsoft, NEC Philips USB. USB 2.0 2000 , 2001 USB Implementers Forum. USB 2.0 USB.

, 2000- Apple FireWire, . iPod FireWire, USB . FireWire USB, FireWire . , , 90- , USB.

2000- BIOS' ' USB ( USB 90-). -, , , PS/2-. 20 USB - . COM LPT , ' ' COM- .

USB - , USB 2.0 - , . , 2008 . 4 , 5 . USB 3.0 2010 . 2012 USB 3.0 , ' . USB- ,

.
.
.
ϳ
.
 
08-23-.010.00.000  
USB 3.0. , USB 3.0 '.

: -, -, . : , -, -.

: 50, 75, 100, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 115 200 /. / (baud), , - . , ( ) ' ( ) () .

ʳ 5, 6, 7 8 (5- 6- ). ʳ - 1, 1,5 2 ( ).

- (-): , , (). ( -) - , , .

(flow control) RTS/CTS XON/XOFF. . (handshaking) , . .

X

.
.
.
ϳ
.
 
08-23-.010.00.000  
ON/XOFF (. 1.5) . : , , , , -. , , . , , .



. 1.5 XON/XOFF

 

, , 3 . , ( - XON), . , , ( ) , .

- Int 14h BIOS, :

1) ( , AL; ). DTR RTS ( );

2) -. DTR RTS;

.
.
.
ϳ
.
 
08-23-.010.00.000  

3) . 2400 /, 7 (even), 1 -.

.
.
.
ϳ
.
 
08-23-.010.00.000  
, Intel, USB Intel 440FX Pentium Pro Pentium II. USB Microsoft Windows 95 Windows NT 4.0. USB . .

USB 1.0 12 / . USB , , , 1998 Universal Serial Bus. 1.1 , , . USB 1.1 . 1,5 / 12 / .

ij USB 2000 High-Speed USB 2.0. 40 - 480 / . USB. 璺 璺 USB 2.0.

, USB 2.0, 2002 , . 480 / , : -, , MP 3-, .

ҳ USB 2.0 . 璺 , 璺 .

/ , USB 2.0, . SuperSpeed USB 3.0, USB .

2008 USB Implementers Forum USB 3.0. . USB 3.0. 5 / 500 /. , .


.
.
.
ϳ
.
 
08-23-.010.00.000  


2

.
.
.
ϳ
.
 
08-23-.010.00.000  
/ .

 

/, - (. I/O, input/output) (, ') , , - . , , , ( ). ( ) 䳿: / . - ( ) 䳿 '. , ' , ' . 䳿 ', , .

, . , - ( , 䳿 ), , '. '. , , '. , . - .

' ' ' ( ', ) ', , - ', , , -. - ', .

.
.
.
ϳ
.
 
08-23-.010.00.000  

, -. , . C++, Unix, , , . .

- . , .

(, , ), - .

, () .

( ).

', - ', ', , ' '.

- , , , , .

.

.
.
.
ϳ
.
 
08-23-.010.00.000  
, .

, .

- . , . , . , . -, , , . , .

- () () . - - , . , - - READ , . - , .

, , - . - , . - , , . .

.
.
.
ϳ
.
 
08-23-.010.00.000  

- (. 2.1):

,

,

,

.

 

. 2.1. - -

 

- , , ' . , -, . , , count = write (fd, buffer, nbytes), write ' . -. , . printf , , , , ASCII write

.
.
.
ϳ
.
 
08-23-.010.00.000  
. - , - .

- (spooling). - . , - . , ' , , . - , . , . , , . - , .

8- / . , ' /, :

' , , '. RS-232C RS-485;

' , . I2C, SPI, ;

' . ' I2C, RS-232C RS-485 . CAN.

' ( ), ( ) ( ).

ʳ , , (I2C, RS-232C, RS-485) (SPI, ). , . ( ) ,

.
.
.
ϳ
.
 
08-23-.010.00.000  
, , , .

, 8- , "-" - UART (Universal Asynchronous Receiver and Transmitter). UART - . UART, , .

UART . , Motorola , , UART, SCI (Serial Communication Interface). , SCI , UART. : ' SCI 6870516 - .

UART RS-232C, RS-422, RS-485, - , - SPI. Motorola : SCI RS-232C, RS-422A, RS-485 SPI.

(I2C CAN) . CAN . I2C , , ( 8952 Philips). I2C, PIC16 Microchip SPI: .

' CAN USB (Universal Serial Bus).

.
.
.
ϳ
.
 
08-23-.010.00.000  
, .


 

3 ++. .

3.1 Borland C++

.
.
.
ϳ
.
 
08-23-.010.00.000  
Borland C++, . , .

, ++ , , , . . Borland ++ , , , . / * : /* */, / // . ϳ ;.

. ϳ , # include (). h <_> "_" - : #include <windows.h>. main, , . main , main, : int main(). , , , , , , -

.
.
.
ϳ
.
 
08-23-.010.00.000  
, . ҳ , , main , . , , : { , }.

++ , return _, _ - ( 䒺 0), , . main int void.

(. stream) , , . Unix , C++, , .

, , ' . . C++ iostream . . , . , ' , , ( , ) . , , - ( ) , . Scheme , . , , . . - , ,

.
.
.
ϳ
.
 
08-23-.010.00.000  
, . - , , .

, COM-, MS DOS . Win32 . . , Windows , (i8055, 16450, 16550A) .

Win32 . CreateFile. Win32 API. :

HANDLE CreateFile(

LPCTSTR lpFileName,

DWORD dwDesiredAccess,

DWORD dwShareMode,

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

DWORD dwCreationDistribution,

DWORD dwFlagsAndAttributes,

HANDLE hTemplateFile

);

CreateFile , , , (CONIN $ CONOUT $), , , . , '. CreateFile (CONIN $). , ,

.
.
.
ϳ
.
 
08-23-.010.00.000  
(CONOUT $). AllocConsole.

COM-:

#include <windows.h>

//...

HANDLE Port;

//...

Port = CreateFile("\\\\.\\COM2", GENERIC_READ | GENERIC_WRITE, 0,

NULL, OPEN_EXISTING, 0, NULL);

if (Port == INVALID_HANDLE_VALUE) {

MessageBox(NULL, " ", "Error", MB_OK);

ExitProcess(1);

}

//...

CloseHandle(Port);

//...

2 , . , . , .

. , , . , :

CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL,

OPEN_EXISTING, 0, NULL);

dwFlagsAndAttributes 0. ϳ , ReadFile () WriteFile ().

.
.
.
ϳ
.
 
08-23-.010.00.000  

HANDLE port = CreateFile("COM1", GENERIC_READ |

GENERIC_WRITE, 0, NULL,OPEN_EXISTING, 0, NULL);

unsigned char dst[1024] = {0};

unsigned long size = sizeof(dst);

if(port!= INVALID_HANDLE_VALUE)

if(ReadFile(port,dst,size, &size,0))

printf("\nRead %d bytes",size);

, ReadFile (), . , . . CreateFile () dwFlagsAndAttributes FILE_FLAG_OVERLAPPED.

CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);

 

 

- .

. , . : , . , .

, 3.1.

.
.
.
ϳ
.
 
08-23-.010.00.000  

. 3.1 ³

 

1) __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner) { }.

2) 2,3,4,5,6,7 void __fastcall TForm1::Button N Click(TObject *Sender) N .

COM-. 4, . ϳ 5. ϳ , . 3.1.

. 3.1 COM-

-. 1, (. 3.1 2, . 3.2, 3.6) . , (. 3.5) .

 

. 3.2 -

 

, -. , (. 3.1 3, . 3.7), . , (. 3.5) . (. 3.3, 3._).

. 3.3 -

.
.
.
ϳ



<== | ==>
, | . USB COM
:


: 2016-09-06; !; : 838 |


:

:

, .
==> ...

1714 - | 1496 -


© 2015-2024 lektsii.org - -

: 0.169 .