Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ phương pháp truyền thông

mã tài liệu 301000100006
nguồn huongdandoan.com
đánh giá 5.0
mô tả 100 MB Bao gồm tất cả file step,.... thuyết minh, quy trình sản xuất, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, SourceCode và nhiều tài liệu liên quan kèm theo đồ án này
giá 989,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ phương pháp truyền thông, thuyết minh ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ SCADA, bộ điều khiển lập trình SCADA, Ngôn ngữ lập trình SCADA, Thực thi chương trình , LẬP TRÌNH SourceCode

CHƯƠNG I:
Giới thiệu một số phương pháp truyền thông

A     GIỚI THIỆU TỔNG QUÁT VỀ MẠNG MÁY TÍNH.
I.  Tổng quát:
Mạng máy tính là  một tập hợp các máy tính được nối với nhau bởi các đường truyền vật lý theo một kiến trúc nào đó. Và ngày nay mạng máy tính đã trở thành một lĩnh vực nghiên cứu phát triển và ngày càng được ứng dụng rộng rãi trong cuộc sống.
Đuờng truyền vật lý và kiến trúc mạng:
  1. Đường truyền vật lý:
Đường truyền vật lý dùng để truyền tín hiệu điện tử giữa các máy tính . Các tính hiệu điện tử đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân. Tất cả các tín hiệu được truyền giữa các máy tính đều thuộc 1 dạng sóng điện từ nào đó, trải từ các tần số radio tới các sóng cực ngắn(vi ba) và tia hồng ngoại. Tuỳ theo tần số của sóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền tín hiệu.
Các tần số radio có thể truyền bằng cáp điện ( dây đôi xoắn hoặc đồng trục ) hoặc bằng phương tiện quảng bá (radio broadcasting).
o    Sóng cực ngắn (vi ba) thường được dùng để truyền giữa các trạm mặt đất và các vệ tinh.
o    Tia hồng ngoại là lý tưởng đối với nhiều loại truyền thông mạng. Nó có thể dùng để truyền giữa hai điểm hay từ một điểm đến nhiều máy thu.
o    Khi xem xét lựa chọn đường truyền chúng ta cần chú ý đến các đặc trưng cơ bản như : giải thông , độ suy hao, và độ nhiễm từ.
2..Kiến trúc mạng:
Kiến trúc mạng máy tính thể hiện qua cách nối các máy tính với nhau ra sao và tập hợp các quy tắc mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theo để cho mạng hoạt động tốt. Cách kết nối các máy tính gọi là hình trạng(topology), quy tắc quy ước truyền thông thì gọi là giao thức (protocol).
v    Topology mạng : có hai kiểu nối mạng chủ yếu là point-to-point và quảng bá theo kiểu point-to-point, các đưởng truyền nối thành cặp nút với nhau và mỗi nút đều có trách nhiệm lưu trữ tạm thời sau đó chuyển dữ liệu đi cho đến đích.
      Theo kiểu quảng bá, tất cả các nút phân chia chung một đường truyền vật lý. Dữ liệu được gởi đi từ một nút nào đó có thể được tiếp nhận bởi tất cả các nút còn lại. Nơi nhận kiểm tra xem địa chỉ đích gởi đến có phải là của mình hay không để có thể tiếp tục thực hiện việc giao tiếp hay không giao tiếp.
v    Giao thức mạng :
Việc truyền tín hiệu trên mạng cũng cần phải tuân theo những quy tắc, quy ước về nhiều mặt, từ khuôn dạng (cú pháp, ngữ nghĩa) của dữ liệu tới các thủ tục gởi, nhận dữ liệu kiểm soát có hiệu quả và chất lượng truyền tin cũng như xử lý các lỗi sự cố. Tập hợp tất cả các quy tắc đó gọi là giao thức (protocol) của mạng.
Phân loại mạng máy tính:
Có nhiều cách phân loại mạng khác nhau tuỳ thuộc vào các yếu tố chính  làm chỉ tiêu phân loại mạng. Nếu lấy khoảng cách làm chỉ tiêu phân loại mạng thì ta có các loại sau:
v    Mạng cục bộ: Là mạng được cài đặt trong phạm vi tương đối nhỏ với khoảng cách lớn nhất giữa các máy tính cũng chỉ vài chục km trở lại.
Một mạng cục bộ bao gồm cả phần cứng và phần mềm. Phần mềm của nó bao gồm chương trình điều khiển và hệ điều hành mạng. Còn phần cứng bao  gồm :
o    Máy chủ (File server-FS ).
o    Các trạm làm việc .
o    Các thiết bị ngoại vi.
o    Card mạng.
v    Mạng đô thị: ( Metropolian Area Networds-MAN ) là mạng được sử dụng (cài đặt ) trong phạm vi một đô thị hay một trung tâm kinh tế –chính trị xã hội có bán kính trong phạm vi khoảng 100km trở lại.
v    Mạng diện rộng: (Wide Area Networds-WAN ) Có phạm vi vượt biên giới của một quốc gia.
v    Mạng toàn cầu: (Global Area Networds-GAN ) phạm vi của mạng trải khắp bề mặt của trái đất.

B     Giao tiếp máy tính với ngoại vi:

Như ta đã biết, để ghép nối với máy tính ta có ba khả năng để trọn:
i.    Ghép nối qua cổng máy in hay còn gọi là cổng song song
ii.    Ghép nối qua rãnh cắm mở rộng trên bản mạch chính.
iii.    Ghép nối qua cổng nối tiếp.
Mỗi phương pháp  đều có những ưu nhược điểm riêng lên đến bây giờ tất  cả các phương pháp đều tồn tại. Tùy theo kinh nghiệm , công việc khác nhau mà ta có sự lưa trọn khác nhau. Ở phần này em chỉ giới thiệu qua về hai phương pháp đầu và đi sâu hơn vào phương pháp thứ ba.
I    Cổng song song:
1.    Cấu trúc của cổng song song:
Cổng song song có 2 loại :
    Ổ cắm 36 chân
    O cắm 26 chân
Ngày nay hầu hết các máy tính PC đều trang bị cổng song song 25 chân nên ta chỉ cần quan tâm đến cổng 25 chân.
Ở dạng truyền song song, các bit dữ liệu được truyền đồng thời trên các đường khác nhau. Ưu điểm lớn nhất của việc truyền song song là tốc độ truyền cao, các đường dẫn đều tương thích TTL . Nhược điểm là dễ bị nhiễu.

2.    Sơ đồ chân:
   Bảng mô tả sự bố trí các chân ở cổng nối với máy in:

CHÂN     KÝHIỆU    CHIỀU    MÔ TẢ    
1    STROBE    Lối ra    BYTE được in    
2  9    D0  D7    Lối ra    Đường dữ liệu D0  D7    
10    ACK    Lối vào    Acknowledge (Xác nhận)    
11    BUSY    Lối vào    Logic 1: Máy in bận    
12    PE    Lối vào    Hết giấy    
13    SLCT    Lối vào    Select ( lựa chọn)    
14    AF    Lối ra    Auto feed ( tự nạp)    
15    ERROR    Lối vào    Error ( lỗi)    
16    INIT    Lối ra    Logic 0: Đặt lại máy in    
17    SLCTIN    Lối ra    Select in    
18  25    GND        Nối đất    

q    Cổng nối với máy in hay thường gọi là giao diện Centronics. Cổng này không chỉ nối với máy in mà còn ghép nối với các thiết bị ngoại vi khi sử dụng máy tính vào mục đích đo lường và điều khiển.
q    Cổng có 25 chân. Ngoài 8 bit dữ liệu còn có những đường dẫn tín hiệu khác, tổng cộng có thể trao đổi một cách riêng biệt với 17 đường dẫn, gồm 12 đường dẫn ra và 5 đường dẫn vào. 8 đường dẫn dữ liệu D0  D7 không phải là đường dẫn hai chiều trong tất cả các loại máy tính nên trên bảng mô tả chỉ xem như là lối ra. Các lối ra kác nữa là STROBE, AUTOFED ( AF), INIT và SELECT IN (SLCTIN). Khi trao đổi thông tin với máy in, các đường dẫn này có những chức năng xác định. Thí dụ, INIT = 0 thực hiện một quá trình khởi động lại (Reset) ở máy in, còn STROBE có nhiệm vụ ghi các bit dữ liệu đã được gửi từ máy in bằng một xung Low vào trong bộ nhớ của máy in.
q    Cổng của máy in cũng có những đường dẫn lối vào, nhờ vậy mà sự bắt (chéo) tay giữa máy tính và máy in được thực hiện. Chẳng hạn, khi mà máy in không còn đủ chỗ trong bộ  nhớ thì máy in sẽ gửi đến máy tính một bit trạng thái (BUSY = 1); điều đó có nhgĩa là máy in tại thời điểm này đang bận, không nên gửi thêm các byte dữ liệu khác đến nữa.Khi hết giấy ở máy in thì máy tính sẽ thông báo là PAPER EMPTY (PE). Đường dẫn lối vào tiếp theo là ACKNOWLEDGE (ACK), SELECT (SLCT) và ERROR.
Tổng cộng máy tính PC có 5 lối vào hướng tới máy in.

3.    Sự trao đổi với các đường dẫn tín hiệu:
Các tín hiệu được trao đổi qua cổng song song thông qua 3 thanh ghi:
q    thanh ghi dữ liệu
q    thanh ghi trạng thái
q    thanh ghi điều khiển.
   
    Thanh ghi dữ liệu

Được định vị ở địa chỉ cơ sở của cổng.

.................................................................

Ở các máy tính PC được chế tạo gần đây, địa chỉ cơ bản của cổng máy in được sắp xếp như sau:

     LPT1 (Cổng máy in thứ nhất)        Địa chỉ cơ bản = 378H.
     LPT2 (Cổng máy in thứ hai)       Địa chỉ cơ bản = 278H.

Các địa chỉ cơ bản của cổng máy incủa máy tính PC được đặt ở những địa chỉ bộ nhớ xác định và có thể được đọc ra bằng một chương trình viết bằng phần mềm. Địa chỉ cơ bản của LPT1 đúng như giá trị 16 bit được cất trong bộ nhớ có địa chỉ 408H và 409H, còn 40AH và 40BH chứa đụng địa chỉ cơ bản của LPT2.
2    Rãnh cắm mở rộng:
Rãnh cắm mở rộng ở đây là nói đến các Bus đã được để sẵn trên bản mạch chính. Từ trước đến nay đã có đến tám kiểu Bus mở rộng được sử dụng cho máy tính cá nhân (gần đây có thêm bus AGV). Việc phân loại các Bus mở rộng thường dựa trên sô các bit dữ liệu ,à chúng xử lý đồng thời. Đó là các bus
q    Bus PC(còn gọi là ISA 8 bit)
q    Bus EISA(32 bit)
q    Bus VESA Local(32bit)
q    Bus SCSI(16/32bit)
q    Bus ISA(16bit)
q    Bus MCA(32 bit)
q    Bus PCI(32/64 bit)
q    Bus PC/MCA(16 bit)
Tuy nhiên, cho tới nay, phần lớn các card ghép nối dùng trong kỹ thuật đo lường và điều khiển đều được chế tạo theo tiêu chuẩn ISA.

v    Rãnh cắm theo tiêu chuẩn ISA:

.................................................................

CHƯƠNG II:
Truyền Thông Qua Cổng Nối Tiếp

I.    Vài nét về nguồn gốc :
Sau một thời gian lưu hành không chính thức, đến năm 1962, Hiệp hội các Nhà Công nghiệp Điện Tử (EIA: The Electronics Industries Association) đã ban hành tiêu chuẩn RS-232 áp dụng cho cổng nối tiếp. Các chữ RS viết tắt từ Recommended Standard(Tiêu chuẩn đã giới thiệu)
Có 2 phiên bản RS-232 được lưu hành trong thời gian tương đối dài là RS-232B va RS-232C. Cho đến nay chỉ còn RS-232C còn tồn tại mà chúng ta quen gọi là RS-232. Ngày nay, hầu hết các máy tính đều trang bị một hoặc hai cổng nối tiếp RS-232, và tất cả đều có khả năng sử dụng RS-232, ít nhất là như một khả năng tùy chọn từ nhà sản xuất máy tính hoặc từ phía người sử dụng máy tính. Từ chuẩn RS-232 ban đầu đó cho đến nay EIA đă phát hành thêm nhiều chuẩn truyền thông khác mang họ RS như RS-422, RS-423, RS-485, các giao diện này đều có những ưu nhược khác nhau mà tùy theo điều kiện sản xuất mà có những áp dụng khác nhau. Do đó tất cả các chuẩn này vẫn tồn tại song song.

II    Đặc tính giữa các chuẩn RS-232C, RS-422, RS-423, RS-485 :

1. Bảng thông số:

Thông số    RS-232    RS-422    RS-423    RS-485    
Cable
Length(max)    15m
(50ft)    1.2km
(4000ft)    1.2km
(4000ft)    1.2km
(4000ft)    
Baud Rate
(tốc độ baud)    20Kbps/15m    10Mbps/12m
1Mbps/120m
100Kbps/1.2m    100Kbps/9m
10Kbps/90m
1Kbps/1.2m    10Mbps/12m
1Mbps/120m
100Kbps/1.2km    
Mode    Unbalanced    Balance
Differential    Unbalanced
Differential    Balance
Differential    
Driver No.    1    1    1    32    
Receiver No.    1    10    10    32    
Logic 0    +5+15    +2+5    +3.6+6    +1.5+5    
Logic 1    -5-15    -2-5    -3.6-6    -1.5-5    
Communiy    2V    1.8V    3.4V    1.3V    
Cable/Signal
(Cáp /tín hiệu)    1    2    2    2    
Methode
(Phương thức)    Simplex
Half-Duplex
Full- Duplex    Simplex
Half-Duplex
Full- Duplex    Simplex
Half-Duplex
Full- Duplex    Simplex
Half-Duplex
Full- Duplex    
Short circuit
Current    500mA    150mA    150mA    150mA    

Chuẩn RS-232C :
Là chuẩn của EIA ( Electronics Industries Association ) nhằm định nghĩa giao điện vật lý giữa DTE ( Data terminal Equipment : thiết bị đầu cuối dữ liệu ) và DCE ( Data Communications Equipment : thiết bị cuối kênh dữ liệu ) (ví dụ giữa 1 máy tính và một modem). Chuẩn này sử dụng đầu nối 25 chân, tuy nhiên chỉ có 1 số ít chân là cần thiết cho việc liên kết. Về phương diện điện, chuẩn này quy định mức logic 1 và mức logic 0 tương ứng với các mức điện áp nhỏ hơn –3V và lớn hơn +3V. Tốc độ đường truyền không vượt quá 20Kb/sản phẩm với khoảng cách dưới 15m.
v    Chuẩn RS-232 có thể chấp nhận phương thức truyền song công (full-duplex).
v    Một trong những yêu cầu quan trọng của RS-232 là thời gian chuyển từ mức logic này sang mức logic khác không vượt quá 4% thời gian tồn tại của 1 bit. Giả sử với tốc độ truyền 19200 baud thì thời gian chuyển mức logíc phải nhỏ hơn 0.04/19200=2.1µs,điều này làm giới hạn chiều dài đường truyền .Với tốc độ 19200 baud ta có truyền tối đa 50ft (Gần bằng 15.24m).

Một trong những vấn đề cần lưu ý khi sử dụng RS-232 là mạch thu phát không cân bằng ( đơn cực, tức là điện áp vào so với đất ).
 Chuẩn RS-489 và RS-423A : Vào năm 1978-1979, EIA đưa ra 2 chuẩn giao tiếp mới để khắc phục các nhượt điểm trên của RS-232 là RS-444 ( cân bằng ) và RS-423 (không cân bằng).
Sự chọn lựa giữa truyền cân bằng và không cân bằng được quyết định bởi tốc độ truyền tín hiệu. Khi tốc độ truyền vượt quá 20Kbps thì hầu hết các mạch sử dụng truyền cân bằng, ngược lại ta sử dụng truyền không cân bằng. Với chuẩn RS-449, tốc độ truyền có thể trên 20Kbps.
Với chuẩn RS-423, tốc  độ truyền có thể lên tới 100Kbps và khoảng cách truyền lên đến 1km. Tiêu chuẩn này sử dụng các IC kích phát, thu MC3488 và MC3486.
Chuẩn RS-422A : Một cải tiến nữa của chuẩn RS-232 là chuẩn RA-422A. Với chuẩn này độ lợi được gia tăng và sử dụng việc truyền tín hiệu sai biệt ( Differential data ) trên những đường truyền cân bằng. Một dữ liệu sai biệt yêu cầu hai dây, một cho dữ liệu không đảo (noninverted ), một cho dữ liệu đảo( inverted ). Dữ liệu được truyền trên đường dây cân bằng, thường là cặp dây xoắn với một điện trở ở  đầu cuối. Một IC lái ( Driver ) biến đổi các mức logic thông thường thành một cặp tín hiệu sai biệt để truyền. Một bộ phận biến đổi tín hiệu sai biệt ngược lại thành các mức logíc. Dữ liệu nhận là phần khác nhau giữa tín hiệu không đảo ( A ) và tín hiệu đảo (  ). Chú ý rằng không cần nối đất giữa thiết bị thu và thiết bị phát. Các IC lái RS-422A hầu hết hoạt động với điện áp nguồn +5V như các chip logic. Với chuẩn này tốc độ truyền, khoảng cách truyền được cải thiện rất nhiều.
 Chuẩn RS-485 :  Giao tiếp EIA RS_485 dựa trên chuẩn RS-422A , nó là một cải tiến của chuẩn này. Đặc tính điện của nó giống như RS_422A . RS-485 là chuẩn truyền vi sai, sử dụng hai dây cân  bằng, có thể đạt tốc độ 10Mbps và chiều dài truyền thông có thể lên tới 4000 feet (khoảng 1.2km). Điện áp vi sai ngõ ra khoảng +1.5 đến  +5V nếu là logic “0” va từ –3V đến –1.5V cho mức logic “1”. Một sự khác biệt quan trọng của RS-485 là nó cung cấp đến 32 drivers. Và 32 reicever trên cùng 1 đường truyền. Điều này cho phép tạo ra một mạng cục bộ. Để có khả năng như vậy thì ngõ ra của driver RS-485 là ngõ ra trạng thái. Nó có thể ở mức tổng trở cao để bus không bị chập khi có một driver truyền.
Card giao tiếp RS_485 với PC được chế tạo sẳn và sử dụng kết nối DB9 như chuẩn RS-422A. Trên car có 1 tín hiệu điều khiển để treo ngõ ra của driver lên mức tổng trở cao khi nó nhường đường truyền cho 1 driver khác. Thông thường người ta dùng tín hiệu DTR để làm việc này khi đường tín DTR không được dùng để giao tiếp bên ngoài. Đồng thời một giao thức mềm  đựơc sử dụng để xác định địa chỉ một driver được phép truyền tại một thời điểm, các driver ở trạng thái tổng trở cao.
Chuẩn RS-485 thường được dùng trong mạng có quan hệ Master-Slave. Chỉ có duy nhất một trạm là Master  ( bộ điều khiển mạng ), còn những trạm khác là các Slave. Master được tryuyền bất cứ lúc nào, nó sẽ chỉ định một Slave bất kỳ giao tiếp với nó tại một thời điểm. Slave chỉ có thể truyền khi nhận một lệnh thích hợp từ Master. Mỗi Slaver có một địa chỉ trên đường truyền và sẽ không được phép truyền nếu không được Master yêu cầu.

III.  Các phương pháp truyền thông :

1. Đơn công :( Simplex Communication ) truyền thông một chiều, dữ liệu chỉ có thể truyền theo một chiều từ máy tính tới thiết bị ngoại vi mà không có chiều ngược lại

......................................................................

       Máy tính                                Ngoại vi
v    Truyền thông tuần tự :
Hầu hết các máy tính lưu trữ và thao tác và lưu trữ dữ liệu theo kiểu song song. Nghĩa là khi gởi 1 byte từ bộ phận này tới bộ phận khác của máy tính, không phải truyền tuần tự từng bít mà truyền đồng thời nhiều bít trên cùng các mạch dây song song. Số các bit gởi đi cùng một lúc thay đổi tuỳ theo mỗi loại máy tính khác nhau nhưng thường là 8 hoặc bội của 8. Vì thế máy tính làm việc thường nhiều byte cùng lúc, ít nhất là một byte.
Nhưng truyền thông từ máy tính đến một máy tính khác hay thiết bị ngoại vi thì được làm tuần tự, dữ liệu được gởi từng bit. Bộ giao tiếp tuần tự nhận những byte trên những mạch dây song song và gởi các bít đi một cách riêng biệt.
Dữ liệu trên đường truyền chỉ ở trạng thái điện thế dương( MARK ) hoặc  điện thế âm ( SPACE ). Bất kỳ dữ liệu được truyền nào, trước tiên phải chuyển thành 1 dãy thứ tự các MARK và SPACE, MARK tương ứng với logic 1, SPACE tương ứng với logic 0.
Có hai hình thức truyền thông tuần tự
v    Truyền thông bất đồng bộ : ( Asynchronous Communication )
Ký tự được truyền theo các Frame, mỗi frame gồm các start bit, các bít dữ liệu của ký tự được truyền, parity bit ( để kiểm tra lỗi đường truyền), stop bit. Xử lý truyền và nhận dữ liệu theo phương thức này sử dụng các vi mạch thu phát không đồng bộ vạn năng UART ( Universal Asynchronous Receiver Transmitter ). Nhượt điểm của phương pháp này là tốc độ truyền khá chậm vì phải truyền thêm các bit start , bit stop, parity. Muốn loại bỏ các bit này để nâng cao số bit dữ liệu được truyền, người ta sử dụng phương thức truyền dữ liệu đồng bộ (Synchronous ).

........................................................................

Start      D0    D1    D2    D3    D4     D5       D6      D7 Parity  Stop  Stop  
Trạng thái nổi
o    Hình vẽ trên minh họa giao thức truyền dữ liệu không đồng bộ ( Asynchronouns Transmission Protocol). Nếu kênh truyền không có ký tự nào được truyền , nó sẽ ở mức cao. Khi có ký tự được truyền, kênh truyền sẽ được hạ xuống mức thấp ( Start bit ) để báo cho phía thu là có 1 ký tự được truyền tới, tiếp đó là các bít của ký tự ( có thể là 5,6 ,7 hay 8 bit – trong ví dụ trên là 8 bit )
o     Để kiểm tra lỗi đường truyền người ta sử dụng bít chẳn lẻ ( parity bit ), tức là kiểm tra chẳn lẻ số bit 1. Nếu kiểm tra chẳn, nghĩa là tổng số bit 1 trong ký tự ( từ D0  D7 ) và bít chẳn lẻ phải chẳn. Ngược lại nếu kiểm tra số bit 1 trong ký tự là lẻ thì bit chẳn lẻ phải lẻ. Bit stop được sử dụng để báo cho phía thu biết rằng việc truyền ký tự đã kết thúc. Số bit stop thường được dùng là 1, 1.5, 2 bit. Như vậy trong phương pháp truyền bất đồng bộ, các bit dữ liệu sẽ được đóng khung cùng với các bit start, stop, và bit parity tạo thành 1 Frame.
v    Truyền thông đồng bộ : ( Synchronous communications )
Phương thức truyền này không dùng các bít start, stop để đóng khung mỗi ký tự mà chèn các ký tự đặc biệt như SYN ( Synchronization ), EOT ( End of Transmission ) hoặc 1 cờ giữa các dữ liệu của người sử dụng để báo hiệu cho người nhận dữ liệu biết rằng dữ liệu đã hoặc đang đến.
Truyền thông đồng bộ thường được tiến hành với tốc độ 4800bps, 9600bps hoặc thậm chí còn cao hơn. Trong phương pháp này, một khi đã đồng bộ, các Modem vẫn tiếp tục gởi ký tự để duy trì đồng bộ, ngay cả lúc không phát dữ liệu. Một ký tự IDLE được gởi đi khi không có dữ liệu phát. Phương pháp truyền đồng bộ khác phương pháp truyền bất đồng  bộ ở khoảng thời gian truyền giữa hai ký tự luôn giống nhau.
Truyền đồng bộ đòi hỏi các xung clock trong máy thu và phát phải duy trì đồng bộ những khoảng thời gian dài.
Trong phương pháp truyền đồng bộ các ký tự truyền sẽ được kèm theo một ký tự đồng bộ SYN (mã ASCII là 22 ). Xử lý truyền và nhận là các vi mạch USART ( Universal Synchronous Asynchronous Receiver Transmitter ), vi mạch này cho phép hoạt động trong cả hai chế độ truyền.

SOH    Header    SXT    Text    EXT    BCC    

                     Thông tin điều khiển             dữ liệu
o    SOH (Start of header ) : Phần bắt đầu của 1 đơn vị thông tin chuẩn.
o    SXT ( Start of text ) : Chỉ sự kết thúc của header và bắt đầu phần dữ liệu.
o    EXT (End of text ): ký tự kết thúc phần dữ liệu hay văn bản.
o    BCC ( Block check character ) : ký tự kiểm tra khối.
o    TEXT : thân dữ liệu hay văn bản.
o    HEADER : phần đầu.

CHƯƠNG III:

Vi mạch UART ( Universal Asynchronous Receiver ) 8250A, 16450.

I.  Địa chỉ Port và IRQs:
   1. Bảng địa chỉ PORT tiêu chuẩn :  trình bày ở dưới :

Tên     Địa chỉ    IRQ    
COM 1    3F8H    4    
COM 2    2F8H    3    
COM 3    3E8H    4    
COM4    2E8H    3    
Ở trên là bảng địa chỉ chuẩn. Nếu có vấn đề về thu phát khi sử địa chỉ các cổng Com trên chúng ta có thể xem từ vùng hệ thống BIOS .
 2.  Bảng địa chỉ cổng Com trong vùng dữ liệu BIOS : trình bày ở dưới.

Địa chỉ     Chức năng    
0000:0400    Địa chỉ nền của Com 1    
0000:0402    Địa chỉ nền cua Com 2    
0000:0404    Địa chỉ nền cua Com 3    
0000:0406    Địa chỉ nền cua Com 4    

 Bảng trên trình bày của cổng Com mà chúng ta có thể tìm thấy trong vùng dữ liệu BIOS của PC. Mỗi địa chỉ gồm hai Byte.
II.  Tổng quan :
 Vi mạch 8250A ( hoặc 16450 ) của Intel là một UART được dùng rất rộng rãi trong các PC. UART 8250A có các chức năng chính như sau:
v    Biến đổi dữ liệu song song từ CPU thành dạng nối tiếp để truyền đi, đồng thời thu dòng dữ liệu nối tiếp và đổi chúng thành các ký tự song song.  Sau đó gởi đến vi xử lý (µp).
v    Thêm các bit Start, stop, parity vào từng ký tự trước khi phát đi và tách các bit này ra khỏi ký tự nhận được.
v    Bảo đãm các bit kỳ tự truyền đi với tốc độ được lập trình trước, kiểm tra để phát hiện lỗi tương ứng : lỗi ký tự, lỗi parity.
o    Set tín hiệu bắt tay phần cứng thích hợp và cho biết trạng thái của tín hiệu.
   1.  Các thanh ghi của UART :
v    Các thanh ghi điều khiển chính (Control Register : CR ) nhận được lệnh từ CPU.
o    Thanh ghi điều khiển đường truyền ( Line Control Register : LCR ): dùng để đặt các thông số truyền .
o    Thanh ghi điều khiển Modem ( Mode Control Register : MCR ) : điều khiển tín hiệu bắt tay gởi từ UART.
o    Thanh ghi cho phép ngắt ( Interrupt Enable Register : IER ) :
v    Thanh ghi trạng thái ( Status Register : SR ) : thông báo cho CPU biết hoạt động của UART.
o    Thanh ghi trạng thái đường truyền ( Line Status Register : LSR ) : chứa thông tin về truy xuất dữ liệu.
o    Thanh ghi trạng thái Modem ( Modem Status Register : MSR ) : chứa thông tin về trạng thái của những đường bắt tay.
o    Thanh ghi định danh ngắt ( Interrupt Identification Register : IIR ) : chứa thông tin về trạng thái hiện tại của ngắt gởi đến.
v    Thanh ghi đệm ( Buffer Register : BR ) : phục vụ cho việc trao đổi dữ liệu.
o    Thanh ghi giữ phát ( Transmitter Holding Register : THR ) : giữ dữ liệu kế tiếp trước khi phát đi.
o    Thanh ghi đệm thu ( Receiver Buffer Register : RBR ) : giữ kí tự thu được sau cùng.
o    Ở bảng dưới địa chỉ nền có thể là ( 2F8H, 3F8H, 2E8H, 3E8H ) tuỳ theo cách chọn của người lập trình.

Địa chỉ nền    DLAB    A2    A1    A0    Chọn ra    

+0
    0    0    0    0    Thanh ghi đệm thu (RBR ), thanh ghi giữ phát (THR)    
+1    0    0    0    1    Thanh ghi cho phép tạo yêu cầu ngắt (IER).    
+0    1    0    0    0    Thanh ghi cho số chia phần thấp (LSB).    

+1    1    0    0    1    Thanh ghi cho số chia phần cao (MSB).    

+2    X    0    1    0    Thanh ghi nhận dạng nguồn gốc yêu cầu ngắt(IIR).    
+3    X    0    1    1    Thanh ghi điều khiển đường dây (LCR ).    
+4    X    1    0    0    Thanh ghi điều khiển Modem (MCR ).    
+5    X    1    0    1    Thanh ghi trạng thái đường dây(LSR ).    
+6    X    1    1    0    Thanh ghi trạng thái Modem ( MSR ).    
+7    0

    1    1    1    Thanh ghi nháp (dành cho CPU, ít khi sử dụng ).    

·    Trong bảng trên bạn phải chú ý cột DLAB . Khi DLAB đặt lên 0
hoặc1 thì một vài thanh ghi sẽ thay đổi. Có thể thấy như thế này, UART cho phép 12 thanh ghi, trong khi đó chỉ có 8 port địa chỉ. DLAB dùng truy cập bit chốt chia, khi DLAB đặt lên1 trong thanh ghi điều khiển đường truyền (bit thứ 7 cùa thanh ghi này),  thì hai thanh ghi trở nên có giá trị ( Divisor Latch Low Byte : Reg+0, Divisor Latch High Byte : Reg +1 ), sau đó chúng ta dùng hai thanh ghi này dùng cho việc đặt tốc độ truyền thông. Ví dụ như sau :

Tốc độ
( Baud )    Divisor    Byte chốt chia cao(DLHB)    Byte chốt chia thấp(DLLB)    
50    2304    09H    00H    
300    384    01H    80H    
600    192    00H    C0H    
2400    48    00H    30H    
4800    24    00H    18H    
9600    12    00H    0CH    
19200    6    00H    06H    
38400    3    00H    03H    
57600    2    00H    02H    
115200    1    00H    01H    

3.   Vi mạch 8250A được thể hiện trên hình vẽ ở dưới:
Vi mạch 8250A có 3 tín hiệu chọn chip để tạo điều kiện thuận lợi cho người sử dụng trong việc giải mã địa chỉ cơ bản. Các chân địa chỉ cơ bản A1, A2, A0, giúp ta chọn các thanh ghi bên trong của UART ( xem bảng ở dưới)
....................................................................

CHƯƠNG V:
Giao Tiếp Máy Tính Với Vi Xử Lý.


I.   Truyền nhận qua cổng  nối tiếp :
Việc truyền nhận qua cổng nối tiếp được thực hiện bởi UART. Nguyên tắc cho chip UART hoạt động như sau:
v    Để truyền đi một ký tự, đầu tiên ký tự đó sẽ được đưa vào thanh ghi đợi truyền ( Transmit Holding Register ), sau đó được đưa qua thanh ghi dịch của bộ phát ( transmit Shift Register ). Sau khi ký tự trước đã truyền xong, từng bit của ký tự đươc truyền sẽ dịch vào kênh dữ liệu.
v    Khi nhận một ký tự, đầu tiên các bit của nó lần lượt được nạp vào thanh ghi dịch của bộ thu ( Transmit Shift Register), sau đó chúng được đưa vào thanh ghi dữ liệu của bộ thu ( Receive Data Register ) sau khi đã loại bỏ các bit start, stop, parity.
v    Để thực hiện việc truyền dữ liệu qua cổng nối tiếp ta phải thực hiện các bước sau:
o    Chọn cổng truyền Com 1, hay Com 2. Địa chỉ của Com 1 thường là 3F8H, còn Com 2 là 2E8H. Đối với một số loại máy tính thì địa chỉ của cổng Com có thể vào BIOS để set lên, nên khi viết chương trình truyền cần vào BIOS để xem địa chỉ cổng Com cụ thể. Nếu ta chọn COM 1 là 3F8 H, Com 2 là 2F8 H thì địa chỉ các thanh ghi khác là:

Thanh ghi    Địa chỉ Com 1    Địa chỉ Com 2    
Data register    3F8H        2F8H    
Interrupt enable register    3F9H    2F9H    
Interrupt identification register    3FAH    2FAH    
Line control register    3FBH    2FBH    
Modem control register    3FCH    2FCH    
Line status register    3FDH    2FDH    
Modem control register    3FEH    2FEH    

o    Đặt tốc độ baud
o    Đặt cấu hình truyền : data bit, stop bit, parity (em chọn 8 bit data, 1 bit stop, không có parity).
o    Cho phép ngắt nếu sử dụng.
v    Để thực hiện việc truyền dữ liệu trước hết chúng ta phải khởi động cổng COM, sau đó thực hiện việc truyền phát với chương trình truyền và phát trình bày ở dưới đây dược viết theo kiểu API:
o    Chương trình khởi động cổng COM: Chọn Com 2 với đia chỉ 2F8H để thực hiện việc truyền dữ liệu. Cần chú ý  đến Bit DLAB.
(………………………………………………………………………….)
 const
     pathsl ='c:\my documents\delphi\';
     com2=$2F8;
     Reg2F8=com2+0;
     Reg2F9=com2+1;
     Reg2FA=com2+2;
     Reg2FB=com2+3;
     Reg2FC=com2+4;
     Reg2FD=com2+5;
(………………………………………………………………………….)
procedure Tform2.Initcom;
 begin
  xuat(Reg2FB,$80);{DLAP=1}
  xuat(Reg2F8,$30);{baudrate=2400}
  xuat(Reg2F9,$00);{khong su dung ngat}
  xuat(Reg2FB,$03);{8 bit data, 1 bit stop, no parity}
 end;
(………………………………………………………………………….)

o     Nhập dữ liệu với hàm nhập viết bằng pascal.
(………………………………………………………………………….)
function Tform2.nhap(addr:word):byte;
var
   TEMP : byte;
   begin
        asm
        PUSH Ax
        PUSH DX
        MOV  DX,addr
        IN   AL,DX
        MOV  TEMP,AL
        POP  AX
        POP  Dx
     end;
(………………………………………………………………………….)

o       Xuất dữ liệu với hàm xuat:
(………………………………………………………………………….)
procedure Tform2.xuat(addr:word;data:byte);
     begin
       asm
       PUSH  AX
       PUSH  DX
       MOV   DX,addr
       MOV   AL,DATA
       OUT   DX,AL
       POP   AX
       POP   DX
       end;
     end;
(………………………………………………………………………….)
o      Trong việc truyền dữ liệu nếu sử dụng các tín hiệu RTS, CTS … thì chúng ta cần phải viết chương trình cho chúng . Trong việc truyền tín hiệu cho đề tài của em có sử dụng tín hiệu RTS,  được viết như sau:
(………………………………………………………………………….)

procedure Tform2.setRTS;
  var
    a: byte;
  begin
       a:=nhap(Reg2FC);
       a:=a or $02;
       xuat(Reg2FC,a);
  end;
procedure Tform2.RESETRTS;
  var
    a : byte;
    begin
     a:=nhap(Reg2FC);
     a:=a and $FD;
     xuat(Reg2FC,a);
    end;
(………………………………………………………………………….)
    
v    Có hai phương pháp để điểu khiển việc thu phát dữ liệu qua UART: phương pháp hỏi vòng và phương pháp tạo ra một trình điều khiển tạo ngắt. Phương pháp hỏi vòng chờ dữ liệu nhận xong hoặc phát xong, tốc độ chậm khoảng 34.8 Kbps.
o     Phát ký tự: Với phương pháp hỏi vòng, khi gởi đi 1 ký tự ta phải kiểm tra xem thanh ghi đợi truyền có rỗng hay không bằng cách xem Bit 6 của thanh ghi LSR ( Line Status Register ) có bằng một hay không. Chương trình viết cụ thể bằng Delphi 5.0 như sau:
(…………………………………………………………)
repeat
         test3:=nhap(Reg2FD);
         application.ProcessMessages;
 until (test3 and $40)=$40;
       xuat(Reg2F8,t);
(…………………………………………………………)
o      Để thu một ký tự : Để biết có ký tự vào hay chưa kiểm bit 0 của thanh ghi LSR ( Line Status Register ). Nếu bằng 1 thì có một ký tự nhận vào. Với chương trình cụ thể viết như sau:
(………………………………………………………………………….)
                
repeat
                    begin
                          test6:=nhap(Reg2FD);
                        test6:=test6 and $01;
                    end;
                  until (test6=$01);
(………………………………………………………………………….)
v    Tuy nhiên ta có thể sử dụng nhũng cách khác để thực hiện việc truyền dữ liệu với phương pháp đơn giản hơn về giải thuật.
Sau đây là một phương pháp có thể sử dụng mà em tham khảo được trong
giáo trình Lập trình ghép nối máy tính trong Windows  của tác giả Ngô Diên Tập
    Để thực hiện việc mở cổng Com ta chỉ việc gõ một lệnh đơn giản là
            OpenCom(pchar(còm:9600,N,8,1));
    Để truyền dữ liệu đi:
            SendByte();
    Để nhận dữ liệu về:
            Temp:=ReadByte;
    Xuất trực tiếp ra các đường dẫn
            DTR();
            RTS();
            …
Dể thực hiện được nhũng lệnh trên trong Delphi chúng ta phải có một tệp tin tài nguyên hỗ trợ có tên là port.dll do tác giả cung cấp. Sau đó ta phải soạn một unit (được chỉ dẫn rất rõ trong giáo trình) để giúp Delphi nhận ra được tài nguyên này. Hơi rắc rối một tý nhưng mà bù lại ta sẽ gặp rất nhiều thuận lợi trong lập trình.
    Trong luận văn này, em sử dụng một phương pháp khác đó là dùng MSComm. Phương pháp này lập trình rất đơn giản và hỗ trợ rất mạnh và được nhiều người sử dụng. Trong Visual Basic MSComm đã được nhà lập trình cung cấp sẵn. Còn trong Delphi muốn sử dụng thì ta phải” dùng ké” tài nguyên này của VB bằng cách copy têp tin “mscom.ocs” vào trong system của Window sau đó vào Component của Delphi để khai báo.
    Về phương pháp khai báo và sử dụng sẽ đươc trình bày cụ thể ở trong phần phụ lục của em.
II.  Các phương pháp kết nối :
1.  Kết nối máy tính với một Kit vi xử lý: Khi máy tính giao tiếp với một kít vi xử lý thì ta chỉ dùng RS-232 là đủ , vì nó cho phép chuyển đổi từ +12V đến +5V phù hợp với nguồn cung cấp cho kit vi xử lý.  Nhưng điểm hạn chế của phương
pháp này là khoảng cách truyền ngắn , tối đa chỉ 15 m. Biểu diễn giao tiếp ở hình dưới :

.........................................

1.    Nguyên tắc hoạt động của RS-485 :
a)    Mức áp yêu cầu:
Giao tiếp RS – 485 điển hình sử dụng nguồn cung cấp đơn +5V nhưng mức logic tại đầu phát và đầu thu không phải là mức TTL hay mức CMOS, để có mức ra thích hợp thì VA – VB  1.5V
Điện áp giữa mỗi đầu ra và đất không xác định bằng việc trừ mà mode điện áp chung phải nằm trong tầm 7V. Nếu như giao tiếp cân bằng một cách hoàn hảo thì các đầu ra offset bằng một nửa với nguồn cung cấp. Bất cứ sự cân bằng nào cũng làm tăng hay giảm mức offset.
Hình bên dưới chỉ áp ra A và B của một bộ điều khiển  RS-485. Biên độ đầu ra gần 3V thay đổi từ +1  +4V hoặc –1V  -4V so với đất. Nguồn cung cấp cho bộ điều khiển là +5V

 Ngỏ ra của bộ phát RS-485

Hình bên dưới chỉ mức điện áp vi sai giữa dây A và B ở đầu ra của Driver. Biên độ đỉnh đỉnh của áp ra là 6V gấp hai lần biên độ đỉnh đỉnh của điện áp trên mỗi đường dây.




Ngỏ ra vi phân của bộ phát RS-485

Nếu như một đầu ra đóng mở trước một đầu ra khác thì điện áp đầu ra vi sai đóng mở chậm hơn và điều này giới hạn tốc độ truyền của mạng. Thời gian lệch ( Skew ) là khoảng thời gian  đóng mở chênh lệch giữa 2 đầu ra. Các Driver của RS-485 được thiết kế sao cho tối thiểu thời gian lệch.
Tại Receiver, điện áp 2 đầu vào A và B chỉ cần 200mV. Nếu VA - VB  0.2V thì đầu thu sẽ đọc là mức logic 1, ngược lại là mức logic 0. nếu như điện áp vi sainày < 0,2V thì mức logic không xác định
  Sự khác nhau giữa điện áp Driver và Receiver là giới hạn nhiễu cho phép 1,3V. điện áp vi sai có thể yếu đi hoặc bị nhiễu kí sinh khoảng 1,3 V thì đầu thu vẫn nhận được mức logic đúng.
Trong hầu hết các mạng, điện áp đầu ra bộ phát lớn hơn 1,5V. Do đó giới hạn nhiễu lớn hơn. Một bộ Driver cần cấp nguồn 3V cũng có thể có áp ra vi sai giữa 2 đầu ra là 1,5 V
TIA/EIA – 485 định nghĩa : B > A  mức 1; A > B  mức 0 . Sử dụng định nghĩa này các chip giao tiếp RS-485 thì làm ngược lại.
b)    Dòng yêu cầu:
Dòng tổng trong RS-485 thay đổi theo trở kháng vào của thành phần trong mạng gồm: các bộ phát, các đầu thu, cáp và các thành phần đầu cuối.
Trở kháng ra của bộ phát thấp và trở kháng của cáp thấp cho phép việc đóng mở được nhanh hơn và bảo đảm bộ thu sẽ nhận được tín hiệu với tốc độ cao nhất có thể. Nếu trở kháng của đầu thu cao thì nó sẽ làm giảm dòng trong mạng và kéo dài tuổi thọ của bộ nguồn.
Việc sử dụng thành phần đầu cuối sẽ có lợi đối với dòng trong mạng. Khi không có các thành phần đầu cuối thì trở kháng vào của các bộ thu sẽ ảnh hưởng lớn đối với điện trở tổng nối tiếp. Tổng trở kháng vào thay đổi theo các bộ thu và trở kháng vào của chúng.
Một bộ phát RS-485 có thể lái đến 32 đơn vị tải. TIA/EIA – 485 xác định một đơn vị tải dưới dạng dòng yêu cầu. Một bộ thu tương đương một đơn vị tải, mà tải này không kéo nhiếu hơn một lượng dòng xác địmh tại đầu vào và điện áp được xác định theo tiêu chuẩn. Khi áp tại đầu thu là 12V thì một đơn vị tải – Bộ thu sẽ không kéo nhiều hơn 1mA. Để đạt được yêu cầu này thì một bộ thu phải có một điện trở đầu vàu ít nhất là 12 K, mắc giữa mỗi đầu vi sai với Vcc hay GND tùy thuộc vào chiều dòng điện. Nếu thêm một bộ thu thì điện trở tương là 6000 . Nếu có 32 đơn vị tải thì R tương đương là 375  
2.    Chuyển đổi sang TTL:
a)    Song công ( Full-Duplex ):
RS-485 được thiết kế để dùng cho hệ thống nhiều node ( multi-drop). Hầu hết mạng RS-485 là bán song công sử dụng nhiều bộ phát và bộ thu, cùng chia sẽ một đường truyền tín hiệu. Nhưng chúng ta cũng có thể sử dụng RS-485 ở dạng song công, ở đó mỗi hướng sẽ có đường truyền tín hiệu riêng của nó. Việc chuyển đổi mạng RS-232 sang RS-485 song công dễ dàng thực hiện bằng phần mềm.
Với mạng loại này ta có thể sử dụng SN75179B ở hai đầu bộ phát và bộ thu. Mạng này gồm 1 bộ phát dùng chuyển đổi 5V TTL sang RS-485 và một bộ thu dùng chuyển RS-485 sang 5V TTL
Đây là một giải pháp đơn giản khi ta muốn tạo một mạng song công, khoảng cách xa giữa các vi điều khiển. Các chip giao tiếp RS-485 nhỏ hơn, đơn giản và rẻ hơn trong việc chuyển đổi sang RS-232  

Hình 1.5: Kết nối song công nhiều node

Trong một mạng gồm có chủ và tớ, ở đó node chủ dùng để điều khiển mạng và  cho phép việc thu phát của thành phần khác. Một cặp dây dùng để nối bộ phát của con chủ với bộ thu của các con tớ,  còn một cặp dây khác  nối bộ phát của các con tớ với bộ thu của con chủ
Tất cả các con tớ phải được thông tin từ con chủ để biết con nào được cho phép. Việc định địa chỉ của con tớ được xác định bằng cặp dây đối lặp. Thuận lợi của phương pháp này là tiết kiệm thời gian cho các con tớ bởi vì chúng không đọc thông tin trả lời của các con tớ khác. Nếu tất cả các node cùng chia sẽ một đường dữ liệu thì các con tớ phải đọc tất cả mọi thông tin lưu thông  trên đường mạng để lấy thông tin từ con chủ gởi tới.
b)    Bán song công:
Rất nhiều mạng dùng kết nối 485 là bán song công với nhiếu bộ phát và thu cùng chia sẽ một đường tín hiệu.
Khi một mạng có 3 hay nhiều node thì tại một thời điểm chỉ có một node được thu hay phát. Việc sử dụng 2 đường truyền tín hiệu là thuận lợi khi chỉ có 2 thiết bị ( một chủ, một tớ ) vì mỗi node có thể thu phát bất kì lúc nào mà không sợ có sự xung đột. Nhưng nếu có nhiều hơn một bộ phát trên cùng một cặp dây thì không có sự đảm bảo rằng đường truyền tín hiệu là “ rỗng”(free) khi bộ phát cần truyền
Trên các vi điều khiển cho phép xây dựng các bit port như là đầu vào hay đầu ra, chúng ta có thể gởi hay nhận một bit đơn , tái tạo lại bit khi cần thiết. Chúng ta cũng có thể làm điều này để sử dụng ít nhất số bit port có thể hoặc sử dụng bán song công để tiết kiệm dây
 

Close