You are on page 1of 102

Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:1

GIỚI THIỆU ĐỀ TÀI

Ngày nay với tốc độ phát triển nhanh của công nghệ vi điện tử kỹ thuật
truyền thông và công nghệ phần mềm. Trong những năm gần đây đã tạo ra sự
chuyển biến cơ bản trong hướng đi, mà được ứng dụng thực triển trong đời sống,
trong khoa học kỹ thuật mà công nghệ vi xử lí đem đến.Ví dụ như điều khiển một
toà nhà, các thiết bị sinh hoạt, tự động báo cháy ...v..v…
Trong lĩnh vực tự động hoá công nghiệp từ đơn giản điều khiển trực tuyến
trên một đơn vị xử lý cho tới kết hợp của nhiều vi xử lý để điều khiển một hệ
thống phức tạp.Vậy với em là sinh viên của nghành tự động điều khiển với đề tài
được giao là "Nghiên cứu và thiết kế mạng RS485" để ứng dụng vào thực tế cho
công việc chuyên môn, em sẽ đi sâu vào phát triển và ứng dụng mạng RS485 để
phục vụ cho công việc chuyên môn của em (nói riêng) và trong nghành công
nghiệp (nói chung).
Với đề tài được giao là nghiên cứu và thiết kế mạng RS485 ứng dụng cho
đề tài ở đây là dùng phương pháp Master và Slave (chủ và tớ) đề tài phát triển
gồm:
1. Trạm chủ ( Master ) và hai trạm tớ (Slave ).
2. Trạm tớ 1 dùng để điều khiển Led thông qua đường truyền RS 485.
3. Trạm tớ 2 cũng giống như trạm tớ1 nhưng có thêm điều khiển động cơ.
- Đường truyền RS485 là chuẩn giao tiếp nối tiếp bất đồng bộ cân bằng
sử dụng điện áp chênh lệch đối xứng giữa hai đầu dây dẩn. Dùng mạng Half -
Duplex (bán song công) tức là tại một thời điểm bất kỳ trên dây truyền chỉ có thể
là một thiết bị hoặc là truyền hoặc là nhận.
- RS 485 cho phép 32 bộ truyền trên Bus tạo thành mạng cục bộ (mạng
Lan ).
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:2

PHẦN I

CƠ SỞ LÝ THUYẾT

Chương I: CHẾ ĐỘ TRUYỀN TẢI

I:Truyền bit song song và truyền bit nối tiếp.

1: Truyền bit song song :

- Phương pháp truyền bit song song được dùng phổ biến trong các bus nội
máy tính, bus giữ liệu, bus địa chỉ, bus điều khiển, tốc độ truyền tải phụ thuộc vào
số các kênh dẫn hay chính là độ rộng của bus song song.

VD: 8 bit, 16 bit, 32 bit hay 64 bit.

- Phương pháp truyền này chỉ hạn chế ở khoảng cách nhỏ, có yêu cầu rất
cao về thời gian và tốc độ truyền .

2: Truyền bit nối tiếp :

- Với phương pháp này từng bit được chuyển đi một cách tuần tự qua một
đường truyền duy nhất, tốc độ bit vì thế hạn chế, nhưng cách thực hiện lại đơn
giản, độ tin cậy của dữ liệu cao. Tất cả các mạng truyền thông đều sử dụng
phương pháp này .

II: Truyền đồng bộ và không đồng bộ.

- Sự phân biệt giữa chế độ truyền đồng bộ và không đồng bộ chỉ liên quan
tới phương thức truyền bit song song, vấn đề đặt ra ở đây là đồng bộ hoá giữa bên
gửi và bên nhận dữ liệu .

- Trong chế độ truyền đồng bộ các đối tác truyền thông làm việc theo cùng
một nhịp, tức với cùng tần số và độ lệch pha cố định có thể quy định một trạm có
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:3

vai trò tạo nhịp và dùng một đường dây riêng mang nhịp đồng bộ cho các trạm
khác .

- Với chế độ truyền không đồng bộ bên gửi và bên nhận không làm việc
theo một nhịp chung, dữ liệu trao đổi thường được chia thành từng nhóm 7 hoặc 8
bit gọi là ký tự, các ký tự được chuyển đi vào các thời điểm không đồng đều. Vì
vậy cần thêm 2 bit để đánh dấu khởi đầu và kết thúc cho mỗi 1 ký tự.

III: Truyền một chiều, hai chiều toàn phần và gián đoạn.

- Một đường truyền dữ liệu hoặc làm việc theo chế độ hai chiều toàn phần
hoặc hai chiều gián đoạn .

- Trong chế độ truyền một chiều, thông tin chỉ được truyền đi theo một
chiều, một trạm chỉ có thể đóng vai trò hoặc bên phát hoặc bên nhận thông tin
trong suốt quá trình giao tiếp.

- Chế độ truyền hai chiều gián đoạn cho phép mỗi trạm có thể tham gia
gửi hoặc nhận thông tin nhưng không cùng một lúc, nhờ vậy mà thông tin được
trao đổi theo cả hai chiều luân phiên trên cùng một đường truyền vật lý.

- Với chế độ truyền hai chiều toàn phần mỗi trạm đều có thể gửi và nhận
thông tin cùng một lúc. Phương pháp này sử dụng hai đường truyền riêng biệt cho
thu và phát .

IV: Truyền tải dải cơ sở, truyền tải dải mang và truyền tải dải
rộng.

1: Truyền tải dải cơ sở :

- Một tín hiệu mang một nguồn thông tin có thể biểu diễn bằng tổng của
nhiều dao động có tần số khác nhau nằm trong một phạm vi hẹp được gọi là dải
tần cơ sở hay dải hẹp. Tín hiệu được truyền đi cũng chính là tín hiệu được tao ra
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:4

sau khi mã hoá bit. Mọi thành viên trong mạng phải phân chia thời gian để sử
dụng đường truyền vì trong một nhịp chỉ có thể truyền đi một bít .

2: Truyền tải dải mang :

- Trong một số trường hợp dải tần cơ sở không tương thức trong môi
trường làm việc .

VD: Tín hiệu có tần số, có thể bức xạ nhiễu ảnh hướng tới các thiết bị
khác hoặc ngược lại bị các thiết bị khác gây nhiễu. Để khắc phục tình trạng này ta
sử dụng tín hiệu mang dải tần này lớn hơn nhiều so với tần số nhịp, dữ liệu cần tải
sẽ dùng để kiềm chế tần số, biên độ pha tín hiệu mang, bên nhận sẽ thực hiện quá
trình giải điều chế để phục hồi thông tin nguồn .

3: Truyền tải dải rộng :

- Một tín hiệu có thể chứa đựng nhiều nguồn thông tin khác nhau, bằng
cách sử dụng kết hợp một cách thông minh nhiều thông số thông tin. Sau khi nhiều
nguồn thông tin khác nhau được mã hóa bit, một tín hiệu được tạo ra sẽ dùng để
điều biến một tín hiệu khác thường có tần số lớn hơn nhiều gọi là tín hiệu mang,
các tín hiệu mang đã được điều biến có tần số khác nhau nên có thể pha trộn xếp
chồng thành tín hiệu duy nhất có phổ tần trải rộng, tín hiệu này cuối cùng lại được
dùng để điều biến một tín hiệu mang khác, tín hiệu thu được từ khâu này mới được
truyền đi, đây chính là kỹ thuật dùng kênh phân tần.

V: Cấu trúc mạng bus:

- Được sử dụng một đường dẫn chung cho hệ thống, các thành viên tham
gia vào mạng được nối trực tiếp qua đường dẫn chung này, đây là một kết cấu của
cấu trúc đơn giản có ưu điểm về mặt tiết kiệm dây dẫn, dễ lắp đặt.

- Trong cấu trúc bus này ta có thể chia làm ba cấu trúc sau: như được mô
tả ở hình vẽ 1.3 (trang bên).
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:5

+ Daisy-chain, Trunk-line/Drop-line và Mạch vòng không tích cực.

+ Ở hai cấu trúc đầu Daisy-chain và Trunk-line/Drop-line các thành viên


tham gia vào mạng được nối với nhau theo cấu trúc đường thẳng bởi vì hai đầu
của đường thẳng không khép kín.

+ Đối với Daisy-chain các trạm được nối theo phương pháp nối tiếp
nhau bởi những dây dẫn không nối qua đoạn dây phụ như cấu trúc của Trunk-
line/Drop-line.

+ Phương pháp nối mạng trong cấu trúc của Trunk-line/Drop-line thì
ngược lại so với Daisy-chain, mỗi thành viên nối mạng không nối trực tiếp như
trên mà phải qua một đoạn dây dẫn phụ gọi là Drop-Line để kết nối vào bus tới
một đường dẫn chính gọi là Trunk-line.

+ Mạch vòng không tích cực cũng tương tự như cách nối Trunk-
Line/Drop-Line, cũng nối qua một đoạn dây dẫn phụ Drop-Line để đến trục chính
nhưng khác nhau ở chỗ trục chính khép kín thành một vòng gọi là mạch vòng. Tất
cả được minh họa ở hình vẽ dưới dây.
Caùc ñoaïn daây daãn Trunk- line

Drop-line Drop-line Drop-line

Trunk-line/Drop-line
Daisy-chain

Maïch voøng khoâng tích

Hình 1 : Cấu trúc bus


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:6

- Đối với hệ thống bus này ngoài những ưu điểm đơn giản như dễ kết nối và
những tính năng ưu việt của chúng, bên cạnh đó có sự tiện lợi trong việc thay thế,
sửa chữa, thêm bớt một thành viên vào trạm không làm ảnh hưởng đến hệ thống,
nên đối với hệ thống này thường được sử dụng rộng rãi trong hệ thống mạng điều
khiển công nghiệp. Bên cạnh những ưu điểm trên việc sử dụng chung một đường
truyền cũng đặt ra một giải pháp hợp lý, nhất là số lượng thành viên của mạng
tăng lên đó là sự đòi hỏi phân chia kênh truyền theo thời gian thật phù hợp để
tránh xung đột xảy ra khi nhiều trạm cùng thu phát một lúc, thì gọi là phương pháp
truy cập bus. Bên cạnh những ưu điểm ấy cấu trúc bus cũng có những khuyết điểm
sau:

- Một tín hiệu gởi đi sẽ tới tất cả các trạm có mặt trên mạng do đó không
kiểm soát được nếu không thực hiện việc gán địa chỉ cho trạm cần truyền, trong
thực tế việc gán địa chỉ sẽ gây ra không ít khó khăn.

- Tất cả các trạm đều có khả năng phát cũng như luôn kiểm tra đường truyền
xem có dữ liệu gởi cho mình hay không, do đó hệ thống phải thiết kế sao cho đủ
tải để thực hiện công việc này ở mỗi trạm, dẫn đến sự hạn chế số lượng thành viên
tham gia mạng.

- Chiều dài dây dẫn cũng tương đối dài, vì vậy đối với cấu trúc đường thẳng
thường xảy ra phản xạ giữa các mối nối làm suy giảm chất lượng tín hiệu, do đó
một vấn đề cần phải khắc phục tại điểm này.

- Trường hợp dây dẫn đứt hay ngắn mạch trong phần kết nối bus của một
trạm bị hư hỏng đều dẫn đến ngưng hoạt động hệ thống mà việc định vị cũng gặp
nhiều khó khăn.

VI: Cấu trúc mạch vòng ( tích cực):

- Để tìm hiểu cấu truc này trước hết ta khảo sát qua mô hình của cấu trúc
bằng hình vẽ dưới đây.(Hình 1)
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:7

MASTER

Khoâng coù ñieàu khieån Coù ñieàu khieån


trung taâm trung taâm

Hình 2 : Cấu trúc mạch vòng.

- Cấu trúc mạch vòng tích cực là cấu trúc các thành viên tham gia vào
mạng được kết nối một cách tuần tự từ thành viên này đến thành viên kia sao cho
chúng liên lạc với nhau theo một vòng khép kín. Mỗi thành viên tự tham gia tích
cực vào việc kiểm soát đường truyền để nhận biết một dòng dữ liệu, và mỗi trạm
nhận dữ liệu từ một trạm đứng trước và chuyển tiếp cho trạm đứng sau nó theo
một chiều cố định hướng trước cho đến khi dòng dữ liệu này trở về điểm xuất phát
ban đầu từ máy phát dòng dữ liệu đó và được máy này thu nhận trở lại và hủy bỏ.
Ưu điểm ở đây là mỗi một trạm vừa có chức năng thu vừa có chức năng phát lại,
do dó tránh được sự suy giảm của tín hiệu, bởi mỗi lần một trạm thu được thì đồng
thời phát lại dòng dữ liệu nên được xem như đã được khuếch đại trở lại tín hiệu
ban đầu, do đó đối với cấu trúc này có thể truyền được với khoảng cách khá lớn và
nhiều trạm có thể được kết nối hơn so với cấu trúc bus, một ưu điểm nữa là dòng
dữ liệu được di chuyển theo một hướng nhất định, do đó cũng là một vấn đề góp
phần tích cực vào việc khắc phục xung đột trên đường truyền, đối với kiểu mạch
vòng có hai cấu trúc, đó là cấu trúc có điều khiển trung tâm và không có điều
khiển trung tâm được minh họa ở hình vẽ trên (Hình 2 ).
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:8

- Với mạch vòng không có điều khiển trung tâm thì các thành viên tham gia
liên kết mạng là như nhau không có sự ưu tiên trước hay sau, do đó mỗi thành viên
trên mạng tự phân chia kiểm soát đường dẫn.

- Đối với mạch vòng có điều khiển ở trung tâm thì việc kiểm soát đường
dẫn thuộc trách nhiệm của trạm chủ đảm nhiệm.

- Cấu trúc mạch vòng được xây dựng trên cơ sở của cấu trúc điểm - điểm vì
vậy rất thích hợp cho việc sử dụng công cụ truyền thông hiện đại như cáp quang,
tia hồng ngoại.v.v Việc gán địa chỉ cho các phần tử trên mạng cũng có thể do trạm
chủ điều khiển một cách tự động. Ưu điểm tiếp theo là đối với các thành viên tham
gia nối mạng một cách tuần tự vừa thu vừa phát. Do đó việc khắc phục khi có sự
cố xảy ra ở trên đường truyền như đứt dây, ngắng mạch cũng trở nên dễ dàng để
xác định, tuy nhiên để sự hoạt động của mạng được liên tục ta có thể kết hợp một
đường dây dự phòng được mô tả khái quát qua những hình vẽ dưới đây (Hình 3 )

1 2 1 2
8 3 8 3

7 4 7 4
6 5 6 5

By-pass söï coá ñöôøng daây giöõa 1 vaø 2 Ñaáu taét do söï coá taïi traïm 3

Hình 3: Xử lý sự cố trong mạch vòng.

- Trong trường hợp thứ nhất ở trên hình By-pass sự cố đường dây giữa 1 và
2 được mô tả như sau: khi xảy ra sự cố tại một điểm các trạm lân cận tại điểm sự
cố tự phát hiện lỗi đường truyền và chuyển mạch qua đường dẫn phụ đi vòng qua
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:9

vị trí bị sự cố. Trong trường hợp ở trên hình Đấu tắt do sự cố tại trạm 3 khi một
trạm bị sự cố các trạm lân cận tự đấu tắt qua nó đi vòng lại như hình vẽ minh họa.

VII. Cấu trúc sao:

- Là cấu trúc mà ở đó tất cả các trạm tham gia vào mạng phải được liên kết
qua một mạng trung tâm, trạm này đóng vai trò như một trung tâm giao tiếp giữa
các trạm, điều khiển truyền thông cho toàn bộ mạng, sự giao tiếp giữa các thành
viên khác nhau trên mạng đều thông qua trạm này, nếu như trạm trung tâm đóng
vai trò tích cực thì nó sẽ kiểm soát toàn bộ việc truyền thông của mạng, ngược lại
chúng được xem như một bộ chuyển mạch thông thường cho các trạm khác bắt tay
nhau. Xét về mặt kiến trúc liên kết vật lý thì được xem mạng như một liên kết
điểm - điểm thông thường, nhưng về mặt logic vẫn có thể là điểm - nhiều điểm.

- Các nhược điểm của cấu trúc sao là:

+ Nhược điểm thứ nhất là: trạm trung tâm đòi hỏi phải có độ tin cậy
cao, đối với trạm này nó giống như một bộ não của mạng.

- Nhược điểm thứ hai là: Nếu khoảng cách giữa các trạm nhỏ hơn nhiều so
với từ các trạm đến trạm trung tâm thì quả là tốn kém dây dẫn, do đó đối với hệ
thống mạng sử dụng trong công nghiệp đôi khi có phần hạn chế. Trên hình dưới
đây có thể mô tả một cấu trúc dạng sau:

Traïm trung taâm

Hình 4 : Cấu trúc hình sao


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:10

VIII. Cấu trúc cây (Tree):

- Cấu trúc cây cũng được sử dụng rộng rãi trong kỹ thuật tự động hóa công
nghiệp nó có thể được diễn tả như một chuỗi các liên kết đường thẳng liên kết lại
với nhau tạo thành cấu trúc cây. Trong trường hợp này các phần tử dùng để nối
các phần tử đường thẳng lại với nhau có ý nghĩa đặc biệt.

- Các phần tử kết nối các dạng cấu trúc đường thẳng để tạo thành cấu trúc
dạng cây có thể đơn giản là các bộ lặp (Repeater) để kết nối các phần tử có cùng
kiểu, hay là các Router, Bridge, Gateway cho các trường hợp kết nối cho các mạng
có kiểu khác nhau. Hình vẽ dưới đây là mô hình một kiểu cấu trúc dạng cây:

R Repeater

Hình 5 : Cấu trúc cây

IX. Kiến trúc giao thức :

- Để tìm hiểu kiến trúc của giao thức trước hết ta cần hiểu khái niệm dịch
vụ truyền thông là gì.
- Vậy dịch vụ truyền thông là gì: Là một dịch vụ chứa các qui tắt, qui ước
mà các thành viên tham gia nối mạng cần có để sử dụng, các dịch vụ đó được sử
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:11

dụng với các yêu cầu khác nhau như trao đổi thông tin dữ liệu, giám sát thiết bị,
tạo lập cấu hình v.v Các dịch vụ truyền thông này được cung cấp bởi các nhà cung
cấp hệ thống truyền thông, bởi phần cứng hoặc phần mềm chuyên dụng, mà đòi
hỏi người sử dụng phải khai thác phù hợp cho mục đích và yêu cầu riêng của mình
để tham gia nối mạng, việc khai thác các dịch vụ đó từ phía người sử dụng phải
thông qua một phần mềm giao diện mạng. Chẳng hạn để xây dựng một phần mềm
ứng dụng nào đó như trong điều khiển giám sát SCADA, phần mềm lập trình vi
điều khiển, phần mềm lập trình điều khiển như Delphi kết hợp với các thư viện
phần mềm có sẵn để tạo ra một chương trình ứng dụng truy xuất dữ liệu đến các vi
xử lý hay các PLC v.v Tất cả đều thiết lập sẵn trên các công cụ phần mềm chuyên
dụng mà chúng ta cần hiểu và khai thác chúng một cách có mục đích cho một yêu
cầu nào đó như trong lĩnh vực tự động hóa chẳng hạn thì được gọi là dịch vụ
truyền thông.
- Những hệ thống truyền thông khác nhau có thể qui định một chủng riêng
biệt về các yêu cầu dịch vụ truyền thông của mình. Một hệ thống truyền thông
không nhất thiết phải hỗ trợ đầy đủ các dịch vụ truyền thông, ví dụ một công cụ
phần mềm SCADA ta có thể khai thác dữ liệu từ các cảm biến ở các PLC nhưng
không nhất thiết phải hỗ trợ phần mềm lập trình cho PLC vì phần mềm này luôn đi
kèm theo PLC khi ta có được.
- Ta cũng có thể phân loại dịch vụ truyền thông theo các cấp độ khác nhau,
như các dịch vụ sơ cấp có thể là cách tạo lập ngắt nối của một phần tử trên mạng
thông thường, và các dịch vụ cấp thấp như sự trao đổi dữ liệu của các phần tử và
cuối cùng các dịch vụ cấp cao. Một dịch vụ ở cấp cao luôn luôn được hỗ trợ bởi
dịch vụ ở cấp thấp hơn nó, để thực hiện chức năng của riêng mình chẳng hạn như
tạo lập cấu hình hệ thống, hay báo cáo trạng thái có thể sử dụng dịch vụ cấp dưới
nó đó là dịch vụ trao đổi dữ liệu để thực hiện, ngoài cách để trao đổi dữ liệu cũng
cần cách tạo lập và ngắt nối của dịch vụ sơ cấp. Việc phân cấp dịch vụ truyền
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:12

thông góp phần rất quan trọng trong việc sử dụng dịch vụ dẫn đến sự tiện lợi cho
người sử dụng.

X. Giao thức:

- Trong thực tiễn cuộc sống sự giao tiếp giữa người với người cũng đặt ra
một yêu cầu làm sao để hiểu được ngôn ngữ của nhau, để nhận biết mục đích yêu
cầu cũng như hành động trong giao tiếp, mở rộng hơn vấn đề ở đây ta nói đến sự
giao tiếp của máy móc thiết bị cũng cần có một ngôn ngữ chung. Vậy trong kỹ
thuật truyền thông công nghiệp cũng như một mạng máy tính rộng lớn để có sự
giao tiếp như vậy thì yêu cầu đặt ra là bên cung cấp dịch vụ cũng như bên sử dụng
dịch vụ phải tuân thủ những qui tắc, thủ tục nhất định trong phần giao tiếp giữa
các phần tử với nhau. Việc tuân thủ những qui tắc qui ước đó được gọi là giao
thức. Vậy giao thức chính là cơ sở cho việc sử dụng các dịch vụ truyền thông.
Một qui định chuẩn giao thức bao gồm các thành phần sau:
+ Cú pháp (Syntax): Cú pháp là một tiêu chuẩn qui định về cấu trúc của
một dòng dữ liệu được sử dụng khi trao đổi cho nhau trong đó chứa đựng đầy đủ
các qui định để tạo thành một gói dữ liệu hợp lệ, chẳng hạn như một gói dữ liệu
phải có phần thông tin hữu ích gọi là dữ liệu, thông tin điểm đến được gọi là địa
chỉ, thông tin điều khiển, thông tin kiểm lỗi .v.v
+ Ngữ nghĩa (Semantic): Qui định ý nghĩa từng phần của một gói dữ liệu,
như phương pháp định địa chỉ, phương pháp bảo toàn dữ liệu, thủ tục điều khiển
thông tin, xử lý lỗi.
+ Định thời (Timing): Qui định về trình tự thủ tục giao tiếp, chế độ truyền
đồng bộ hay bất đồng bộ, tốc độ truyền .v.v
+ Việc thực hiện một dịch vụ truyền thông trên cơ sở của một giao thức
tương ứng gọi là xử lý giao thức bên gởi, và giải mã xử lý giao thức bên nhận.
Việc thực hiện ở tầng giao thức tương ứng cũng giống như việc xử dụng các dịch
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:13

vụ truyền thông theo các cấp cũng có sự phân chia giao thức theo từng cấp và sự
hỗ trợ của các giao thức cho nhau.
+ Giao thức cấp cao gần gũi với nguời sử dụng và thường được thực hiện
bằng phần mềm, một số ví dụ giao thức cấp cao là FTP (File Transfer Protocol)
dùng trong trao đổi file từ xa, HTTP (Hypertext Transfer Protocol) dùng để trao
đổi các trang HTML trong các ứng dụng Web, MMS (Manufactoring Message
Specification) dùng trong tự động hóa công nghiệp.
+ Giao thức cấp thấp gần gũi với thiết bị phần cứng thường được thực hiện
trực tiếp trên các mạch điện tử, một số ví dụ về giao thức cấp thấp như sau:
TCP/IP (Transmission Control Protocol/Internet Protocol) được dùng phổ biến
trong Internet, HART (Highway Adressable Remote Transducer) dùng trong điều
khiển quá trình, HDLC (High Level Data-link Control) làm cơ sở cho nhiều giao
thức khác và UART dùng trong đa số các giao diện vật lý của các hệ thống bus.
Hai giao thức nói sau HDLC và UART có vai trò quan trọng trong truyền thông
công nghiệp do đó được giới thiệu sơ lược ở đây:
+ Giao thức HDLC:
HDLC cho phép chế độ truyền nối tiếp đồng bộ hoặc không đồng bộ. Một bức
điện hay còn gọi là một khung (Frame) có cấu trúc sau:

01111110 8/16 bit 8 bit n bit 16/32 bit 01111110

Côø Ñòa chæ Ñieàu khieån Döõ lieäu FCS Côø

- Mỗi khung được mở đầu và kết thúc bằng một cờ hiệu (Flag) với dãy bit
01111110. Dãy bit này được đảm bảo không bao giờ xuất hiện trong các phần
thông tin khác qua phương pháp nhồi bit (Bit Stuffing), tức cứ sau một dãy 5 bit
có giá trị 1 (11111) thì một bit 0 được bổ sung vào.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:14

- Ở địa chỉ tiếp theo chứa địa chỉ bên gởi và bên nhận tùy theo cách gán
địa chỉ 4 hoặc 8 bit tương ứng với 32 hoặc 256 địa chỉ khác nhau, ô này có chiều
dài là 8 hay 16 bit.

- Trong HDLC có ba lọai bức điện được phân biệt ở ô thông tin điều khiển
8 bit, đó là:

+ Information Frames: khung thông tin (I-Format)

+ Supervisory Frames: khung giám sát vận chuyển dữ liệu (S-Format)

+ Unmunbered Frames: khung bổ trợ kiểm soát các mối liên kết giữa các
trạm

+ Cấu trúc các ô thông tin điều khiển được qui định như sau:

1 2 3 4 5 6 7 8

I-Format 0 N (S) P/F N (R)

S-Format 1 0 S P/F N (R)

U-Format 1 1 M P/F M

Trong đó các ký hiệu viết tắc có ý nghĩa như sau:

+ N (S) : Số thứ tự khung đã được gởi chia Module cho 8

+ N (R) : Số thứ tự khung chờ nhận được chia Module cho 8

+ P/F : bit chỉ định kết thúc quá trình truyền

+ S, M : Các bit có chức năng khác

- Ở thông tin có độ dài biến thiên, cũng có thể để trống nếu như bức điện
không dùng vào mục đích vận chuyển dữ liệu. Sau ô thông tin là đến dãy bít kiểm
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:15

lỗi FCS (Frame Check Sequence), dùng vào mục đích bảo toàn dữ liệu. Tốc độ
truyền thông tiêu biểu đối với HDL từ 9,6 Kbit/s đến 2Mbit/s.

Giao thức UART:

- UART (Universal Asynchronous Receiver/Transmitter) là một mạch vi


điện tử sử dụng rất rộng rãi cho việc truyền bit nối tiếp cũng như chuyển đổi song
song - nối tiếp giữa đường truyền và bus máy tính. UART cho phép lựa chọn giữa
chế độ truyền một chiều, hai chiều đồng bộ hoặc hai chiều không đồng bộ. Việc
truyền tải được thực hiện theo từng ký tự 7 hoặc 8 bit, được bổ sung hai bit đánh
dấu đầu cuối và một bít kiểm tra chẳn lẻ P (Parity Bit). Ví dụ với ký tự 8 bit được
minh họa dưới đây.

Start 0 1 2 3 4 5 6 7 p Stop

0 LSB MSB 1

- Bít khởi đầu (Start bit) bao giờ cũng là 0 và bit Stop (Stop bit) bao giờ
cũng là 1. Các bit trong một ký tự bao giờ cũng được truyền thứ tự từ bit thấp
LSB tới bit cao MSB. Giá trị của bit chẳn lẻ P phụ thuộc vào cách chọn:

+ Nếu chọn parity chẳn, thì P bằng 0 khi tổng số bit 1 chẳn.

+ Nếu chọn parity lẻ thì P bằng 0 khi tổng số bit 1 lẻ.

- Như tên của nó đã thể hiện, chế độ truyền không đồng bộ được sử dụng ở
đây, từ không có một tín hiệu riêng phục vụ cho việc đồng bộ hóa giữa bên gởi và
bên nhận. Dựa vào các bit đầu cuối và tốc độ truyền thông đã được đặt trước cho
cả hai bên, bên nhận thông tin phải tự chỉnh nhịp lấy mẫu của mình để đồng bộ với
bên gởi.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:16

XI. Mô hình lớp :

- Việc trao đổi thông tin trên mạng đòi hỏi có một giải pháp hợp lý, làm
sao chúng có thể hiểu nhau bắt tay nhau trong giao tiếp và hiểu được ý nghĩa yêu
cầu thông tin, do đó đòi hỏi phải có sự tương tát rất phức tạp giữa các thành viên
trên mạng, một yêu cầu trừu tượng khá cao giữa các thiết bị phần cứng cũng như
phần mềm, để đơn giản thay vì phải xử lý toàn bộ trên một nền tảng duy nhất, ta
có thể chia nhỏ công việc thành những lớp và xử lý một cách độc lập trên những
lớp đó thì gọi là mô hình lớp.

- Để thực hiện một dịch vụ truyền thông của một gói giữ liệu được gởi đi,
được xử lý qua nhiều lớp ở bên gởi và bên nhận trên cơ sở các giao thức qui định
được gọi là xử lý giao thức theo mô hình lớp, mỗi lớp ở đây có thể thực hiện bằng
các chức năng của phần cứng hay phần mềm. Mỗi một trạm được xem như một hệ
thống đa tần, trong đó mỗi tần được xây dựng trên cơ sở tần trước nó, số lượng các
tần cũng như tên và chức năng của các tần đều phụ thuộc vào nhà thiết kế và mục
đích của mỗi tần là cung cấp dịch vụ cho tần cao hơn từ phía bên gởi cũng như bên
nhận, dữ liệu sẽ được thêm vào những thông tin hổ trợ khi đi qua xử lý của tần đó
đối với bên gởi, ở bên nhận sẽ thực hiện ngược lại dữ liệu được xác lập và tách ra
khi đi qua các tần xử lý tương ứng ở tần đó, hình vẽ dưới đây mô tả quá trình thực
hiện ở các lớp bên gởi và bên nhận.

Lớp N+1 Döõ lieäu


Döõ lieäu

Lớp N N Döõ lieäu Döõ lieäu


N

Lớp N-1 N-1 Döõ lieäu N-1 Döõ lieäu


N N

Hình 6 :Ñöôøng truyeàn vaät lí


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:17

- Nguyên tắc của kiến trúc phân lớp trong một mạng là: mỗi một hệ thống
trong một mạng đều phải có một cấu trúc lớp, tức là số lượng lớp cũng như chức
năng của mỗi lớp là như nhau vì lý do để thực hiện một thông tin trên một mạng
đòi hỏi phải có hai hay nhiều đối tác tham gia, vậy việc tạo lập một thông tin chỉ
được thực hiện khi các đối tác thực hiện truyền thông trong các lớp tương ứng, sử
dụng chung một ngôn ngữ , chung một giao thức thì có thể trao đổi thông tin cho
nhau, nếu sự truyền thông có sự khác biệt về giao thức, chẳng hạn như giữa hai
mạng khác nhau thì điều cần thiết ở đây là dùng một bộ chuyển đổi hiểu cả hai
giao thức như Bridge hay Gateway. Vấn đề mấu chốt ở đây để có thể thực hiện
được việc chuyển đổi là sự thống nhất về dịch vụ truyền thông, xuất phát từ yêu
cầu này đã ra đời các kiến trúc giao tiếp chuẩn sau đây:

XII : Kiến trúc tiêu chuẩn OSI :

- Nhiều nhà sản xuất đã theo mô hình ISO (International Standards


Organization) là tổ chức tiêu chuẩn quốc tế cho OSI (Open Systems
Interconnection) là kết nối các hệ thống mở. Mô hình này đã được định nghĩa vào
năm 1979 để giải quyết việc truyền thông giữa các thốngmạng không giống nhau.

A B

User program User program

Application Application
Presentation Presentation
Session Session
Transport Transport
Nerwort Nerwort
Data link Data link
Physical Physical

Moâi tröôøng truyeàn

Hình 7: Moâ hình ISO


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:18

- Mô hình chuẩn ISO như sau: nếu dữ liệu được truyền giữa hai thiết bị
qua một mạng chung thì ta cần phải định nghĩa giao thức và kỹ thuật truy cập.
Các thông tin liên quan ví dụ như thiết lập link cũng phải được xác định. Do đó tổ
chức chuẩn hóa quốc tế ISO định nghĩa mô hình 7 lớp như sau:

- Các lớp 1, 2 và 4 tuyệt đối cần thiết cho việc truyền thông tin cậy, đầy
đủ. Lớp 1 định nghĩa các điều kiện vật lý như các mức dòng điện và điện áp.
Trong lớp 2 được định nghĩa cơ chế truy cập và địa chỉ của trạm. Điều này bảo
đảm chỉ có một trạm có thể gởi dữ liệu qua mạng ở bất cứ thời điểm nào.

- Độ tin cậy và sự tương thích dữ liệu chỉ được đảm bảo bằng các chức
năng của lớp 4 lớp vận chuyển. Xuất phát từ điều khiển vận chuyển, lớp vận
chuyển cũng thực hiện các chức năng điều khiển luồn dữ liệu, cấm và ghi nhận.

- Các link được thiết lập nhằm để có được chức năng này.

- Lớp thứ 7 là lớp ứng dụng chứa các dịch vụ truyền thông ví dụ được mô
tả ở hình vẽ dưới đây.

- Mô hình chuẩn định nghĩa ở các lớp mà trong đó người ta định nghĩa
đáp ứng của các cộng sự truyền thông. Các lớp này được sắp xếp theo lớp này trên
lớp kia và lớp thứ 7 là lớp cao nhất và chỉ những lớp đồng dạng nhau truyền thông
với nhau.

- Cách cài đặt các lớp riêng trong trường hợp thực thi không xác định theo
mô hình chuẩn mà phụ thuộc vào cài đặt cụ thể. Trong những trường hợp như
PROFIBUS thì không sử dụng các lớp 3 và 6 để có đựoc sự truyền thông với tốc
độ cao với khả năng thời gian thực và các chức năng thiết yếu được tích hợp trong
lớp 1, 2 và lớp 7.

- Ý nghĩa của các lớp như bản sau đây:


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:19

Lôùp Teân goïi Chöùc naêng Ñaëc tính

Caùc chöùc naêng öùng duïng Caùc dòch vuï


Lôùp öùng duïng cung caáp caùc dòch vuï truyeàn thoâng.
7
(Application layer) truyeàn thoâng chuyeân Ví duï:

duïng Read/Write

Giôùi thieäu döõ lieäu


chuyeån ñoåi daïng giôùi
Lôùp giôùi thieäu Ngoân ngöõ thoâng
6 thieäu chuaån cuûa heä thoáng
(Presentation layer) thöôøng.
truyeàn thoâng sang daïng
phuï thuoäc thieát bò.

Lôùp kieåm soaùt noái Ñoàng boä hoùa môû ñoùng vaø
5 Ñieàu phoái phieân
(Session layer) giaùm saùt moät phieân.

Keát noái – ngaét keát noái


Vaän chuyeån
Lôùp vaän chuyeån caùc link laäp laïi caùc
4 khoâng coù lỗõi caùc
(Transport layer) packet, saép xeáp thöù töï
goùi döõ lieäu .
caùc packet, ñoùng goùi.

Ñònh ñòa chæ cuûa maïng


Lôùp maïng Truyeàn thoâng
3 khaùc routing, ñieàu khieån
(Network layer) giöõa hai maïng
luoàn.

Lôùp lieân keát döõ lieäu Caùc kyõ thuaät truy caäp caùc Kieåm tra CRC,
2
(Data link layer) bieân giôùi khoái döõ lieäu, taken passing
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:20

vaän chuyeån döõ lieäu


khoâng loãi, phaùt hieän loãi
xöû lyù loãi.

Caùc khía caïnh vaät lyù cuûa


chuyeån döõ lieäu, moâi
Lôùp vaät lyù tröôøng truyeàn, toác ñoä
1 Caùp daãn
(Physical layer) baud, qui caùch kyõ thuaät
veà caùc tham soá ñieän cô,
vaø chöùc naêng cuûa bus.

Bảng 1 : Ý nghiã các lớp trong mô hình OSI

Lớp vật lý (Physical layer):

- Lớp này bảo đảm các bit được truyền qua môi trường vật lý theo thứ tự
mà lớp này nhận được từ lớp liên kết dữ liệu. Các đặc tính điện và cơ cũng như
kiểu cách truyền cũng được định nghĩa ở đây.

+ Các chi tiết về cấu trúc mạng như bus, cây, sao.

+ Chuẩn truyền dẫn như RS232, RS485

+ Phương pháp mã hóa

+ Chế độ truyền tải

+ Các tốc độ truyền cho phép

+ Giao diện cơ học như phích cắm.

+ Lớp liên kết dữ liệu (Data Link Layer):

- Trách nhiệm của lớp này là truyền các chuỗi bit giữa hai hệ thống. Việc
này cũng bao gồm việc điều khiển, việc truy cập môi trường truyền dẫn, bảo toàn
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:21

dữ liệu, lớp liên kết dữ liệu cũng bảo đảm truy cập độc quyền môi trường truyền.
Do đó lớp này được chia làm hai lớp nhỏ là lớp điều khiển truy cập môi trường
MAC (Medium Access Control), và lớp điều khiển logic LLC (Logic Link
Control). Trong một số hệ thống, lớp liên kết dữ liệu có thể đảm nhiệm thêm các
chức năng khác như việc kiểm soát lưu thông và đồng bộ hóa việc chuyển giao các
khung dữ liệu.

- Để thực hiện chức năng bảo toàn dữ liệu, thông tin nhận được từ lớp phía
trên được đóng gói có chiều dài hợp lý (frame). Các khung dữ liệu này chứa các
thông tin bổ sung phục vụ mục đích kiểm lỗi, kiểm soát lưu thông và đồng bộ hóa.
Lớp liên kết dữ liệu bên phía nhận thông tin sẽ dựa vào các thông tin này để xác
định tính chính xác của dữ liệu, sắp xếp các khung lại theo đúng trình tự và khôi
phục lại thông tin để chuyển tiếp lên lớp trên nó.

+ Lớp mạng (Network layer):

- Lớp này có trách nhiệm truyền dữ liệu giữa hai thiết bị đầu cuối dữ liệu
(Data Terminal). Các data terminal là các máy gởi (phát) và máy nhận (thu) dữ
liệu mà có thể đi qua nhiều hệ thống chuyển tiếp.

- Một hệ thống truyền thông diện rộng như mạng Internet hay mạng viễn
thông, là sự liên kết giữa các mạng hoàn toàn độc lập, mỗi mạng đều có một
không gian địa lý riêng và cách xác lập địa chỉ khác nhau, sử dụng công nghệ
truyền thông khác nhau. Vậy một gói dữ liệu đi từ đối tác này đến đối tác khác của
hai mạng khác nhau có thể qua nhiều đường khác nhau, thời gian khác nhau,
quãng đường vận chuyển và chất lượng đường truyền cũng khác nhau thì lớp
mạng này có trách nhiệm tìm đường đi tối ưu nhất, giải phóng sự phụ thuộc của
các lớp bên trên vào phương thức chuyển giao dữ liệu và công nghệ chuyển mạch
dùng để kết nối các hệ thống khác nhau.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:22

- Có thể nhận thấy đối với lớp này không có ý nghĩa trong một hệ thống
mạng trong công nghiệp sản xuất, bởi ở đây không có nhu cầu trao đổi dữ liệu
giữa hai mạng khác nhau.

- Lớp vận chuyển (Transport Layer):

- Lớp này có trách nhiệm cung cấp cho người sử dụng một liên kết tin cậy
từ đầu này đến đầu kia. Khi một gói dữ liệu được chuyển đi thành từng gói thì cần
đảm bảo các gói đến đích và đúng thứ tự ban đầu. Vậy chức năng của lớp vận
chuyển là cung cấp dịch vụ cho việc vận chuyển một cách tin cậy bao gồm cả khắc
phuc lỗi và điều khiển lưu thông trên mạng. Nhờ vậy mà các lớp trên chỉ thực thi
chức năng riêng của nó mà không cần quan tâm đến cơ chế vận chuyển dữ liệu.

- Để thực hiện việc vận chuyển một cách hiệu quả tin cậy, một gói dữ liệu
vận chuyển được chia thành những phần nhỏ trước khi vận chuyển và được đánh
dấu thứ tự kiểm soát trước khi bổ sung các thông tin kiểm soát lưu thông.

- Do đặc tính riêng của mạng trong lĩnh vực công nghiệp nên một số nhiệm
vụ cụ thể của lớp vận chuyển trở nên không cần thiết, ví dụ như việc dồn kênh
hay kiểm soát lưu thông. Một số các ứng dụng còn lại của lớp này kết hợp với lớp
ứng dụng để tiện việc thực hiện cho người sử dụng chọn phương pháp tối ưu nâng
cao hiệu suất truyền thông.

-Lớp kiểm soát nối (Session layer):

Một quá trình truyền thông giữa hai nút mạng, chẳng hạn như việc trao đổi chương
trình thì được tiến hành qua nhiều giai đoạn. Cũng giống như sự giao tiếp giữa hai
người thì cũng có sự xếp đặt trước. Vậy giữa hai đối tác truyền thông cũng cần có
sự hỗ trợ tổ chức liên kết. Lớp này có chức năng kiểm soát mối liên kết truyền
thông giữa các chương trình ứng dụng, bao gồm các việc tạo lập, quản lý và kết
thúc các đường nối giữa các ứng dụng đối tác. Và mối liên kết giữa các chương
trình ứng dụng mang tính chất logic, thông qua một mối liên kết vật lý giữa hai
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:23

trạm, giữa hai nút mạng có thể tồn tại song song nhiều mối liên kết logic. Thông
thường kiểm soát nối thuộc chức năng hệ điều hành. Để thực hiện các đường nối
giữa hai ứng dụng đối tác, hệ điều hành có thể tạo các quá trình tính toán song
song. Như vậy, nhiệm vụ đồng bộ hóa các quá trình tính toán này đối với việc sử
dụng chung một giao diện mạng cũng thuộc chức năng của lớp kiểm soát nối.

- Lớp giới thiệu (Presentation layer):

Trong các hệ thống mạng có kiểu khác nhau, thường sử dụng các ngôn ngữ khác
nhau, như sử dụng hệ điều hành khác nhau do đó cách biểu diễn dữ liệu của chúng
cũng rất khác nhau, hoặc cách sắp xếp các baye khác nhau trong một kiểu baye,
hoặc sử dụng bản mã khác nhau. Lớp giới thiệu sẽ đảm nhiệm chức năng này dịch
những ngôn ngữ khác nhau này sang một ngôn ngữ chung có cú pháp trừu tượng.

Vậy chức năng chính của lớp giới thiệu là chuyển đổi các dạng dữ liệu khác nhau
về cú pháp thành một dạng chuẩn, nhằm tạo điều kiện cho các đối tác tham gia
truyền thông có thể hiểu được nhau mặc dù chúng có thể sử dụng ngôn ngữ hoàn
toàn khác nhau. Nói một cách khác lớp giới thiệu giải phóng sự phụ thuộc của lớp
ứng dụng vào các phương pháp biểu diễn dữ liệu khác nhau.

- Lớp ứng dụng (Application layer):

Lớp ứng dụng là lớp trên cùng của mô hình OSI, có chức năng cung cấp dịch vụ
cấp cao trên cơ sở của giao thức cấp cao cho người sử dụng và các chương trình
ứng dụng. Chuẩn quan trọng nhất trong tự động hóa là MMS (Manufacturing
Message Specification) hay gọi là đặc tả thông điệp sản xuất.

Các dịch vụ của lớp ứng dụng được thực hiện hầu hết bằng phần mềm. Thành
phần phần mềm này có thể được tích hợp sẵn trong các linh kiên giao diện mạng,
hoặc dưới dạng phần mềm điều khiển có thể nạp lên khi cần thiết, hoặc một thư
viện cho ngôn ngữ lập trình chuyên dụng hay ngôn ngữ lập trình phổ thông. Để có
khả năng sử dụng cho một chương trình ứng dụng, chẳng hạn như điều khiển cơ sở
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:24

hay điều khiển giám sát, nhiều hệ thống cung cấp dịch vụ này thông qua một các
khối hàm đối với các thiết bị trường thông minh , các khối hàm này không đơn
giản thuần mang tính chất dịch vụ truyền thông, mà còn tích hợp cả chức năng xử
lý thông tin thậm chí cả điều khiển tại chỗ. Đây cũng chính là xu hướng mới trong
việc chuẩn hóa lớp ứng dụng cho các hệ thống bus trường, hướng tới kiến trúc
điều khiển phân tán triệt để.

XIII . Phương pháp truy cập bus :

- Trong tất cả các hệ thống mạng như mạng máy tính rộng lớn, hay một
mạng trong phạm vi hẹp như mạng điều khiển trong công nghiệp, thì bất cứ hệ
thống nào cũng có thể sử dụng cấu trúc mạng bus, nhưng đặc biệt hơn là hệ thống
cấu trúc dạng mạng bus và mạng mạch vòng đóng vai trò rất quan trọng và thường
được sử dụng trong hệ thống mạng công nghiệp sản xuất, bởi những ưu điểm của
nó trong tự động hóa công nghiệp ở chỗ là: đơn giản về cấu trúc, thích ứng cho
một mạng nhỏ và vừa chi phí ít cho dây dẫn, dễ lắp đặt và rất linh hoạt trong sản
xuất.

- Đối với cấu trúc bus về mặt kỹ thuật phân chia thời gian cho kênh truyền
là một yêu cầu cao, vì trong một khoảng thời gian nào đó nhất định chỉ có một
trạm duy nhất trên mạng được phép tham gia truy cập bus không thể có hai trạm
cùng tham gia một lúc, đối với tất cả các trạm còn lại phải chờ cho tới khi đến lượt
mình, vì vậy đòi hỏi phải có sự phân chia đường truyền một cách hợp lý để tránh
lãng phí thời gian cũng như khả năng đáp ứng về mặt xử lý điều khiển của cả hệ
thống. Trong một mạng có cấu trúc bus các trạm đòi hỏi phải có sự phân chia nhau
thời gian truy cập bus để tránh hiện tượng xung đột tín hiệu xảy ra trên đường dẫn,
dẫn đến sai lệch thông tin, tại mỗi thời điểm trên bus chỉ được phép duy nhất một
dòng dữ liệu gởi đi tương ứng với điều này cũng có nghĩa là có một trạm được
phép gởi thông tin, còn số lượng các trạm muốn nhận tin thì không hạn chế, đây là
một trong những vấn đề ảnh hưởng đến năng suất của hệ thống.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:25

- Đối với những cấu trúc dạng khác như dạng mạch vòng, mạch sao không
phải không có sự xung đột mà vấn đề xung đột này cũng có thể xảy ra tuy không
như ở cấu trúc bus, ví dụ một cấu trúc vòng mỗi trạm không phải bao giờ cũng
khống chế được dòng dữ liệu đi qua nó hoàn toàn, hay ở cấu trúc sao phần tử xử lý
trung tâm không đóng vai trò chủ động mà nó có nhiệm vụ như một bộ chia tín
hiệu thì vấn đề xung đột vẫn có thể xảy ra, do đó những cấu trúc này cũng dùng
phương pháp phân chia quyền truy cập nhưng có phần đơn giản hơn so với một
cấu trúc dạng bus.

Phương pháp truy cập bus là một vấn đề của một hệ thống dạng bus mà đòi hỏi
phải có sự hợp lý ở đây, và mỗi phương pháp kỹ thuật của mỗi cấu trúc hệ thống
khác nhau đều được quan tâm đến, đó là một đặc tính của khả năng hoàn thiện hệ
thống. Vì vậy đối với cấu trúc dạng bus để hệ thống có tính năng hoàn thiện thì
các đặc điểm sau đây cần được đáp ứng khi xử lý phương pháp truy cập. Đó là độ
tin cậy của dữ liệu, tính năng thời gian thực và hiệu suất sử dụng đường truyền.
Tính năng thời gian thực có nghĩa là khả năng đáp ứng và xử lý thông tin một cách
kịp thời không có sự trì hoãn vì một lý do nào khác, ví dụ như sự chậm trễ vì đảm
đương nhiều công việc cùng một lúc thì được xem là thời gian không thực, chẳng
hạn như một máy tính (PC) đang xử lý một lệnh hay đang chạy một chương trình
mà phải dừng lại khi có một tình huống mới phát sinh như sự phát hiện tín hiệu di
chuyển của chuột hay sự tác động của bàn phím dẫn đến thời gian xử lý lệnh hay
chương trình nói trên bị gián đoạn vì lúc này máy tính phải đảm đương công việc
bởi những sự tác động này dẫn đến thời gian bị trì hoãn không đáp ứng kịp thời và
được xem là thời gian không thực.

- Hiệu xuất của đường truyền là một yếu tố có khả năng làm tăng hoặc giảm
tốc độ đáp ứng của mạng. Nó là một đại lượng phụ thuộc vào sự lưu thông và
phương pháp truy cập. Nếu mật độ lưu thông thấp dẫn đến hiệu xuất thấp, ngược
lại mật độ lưu thông cao không có sự kiểm soát cũng dẫn đến ùn tắt gây ra sự gián
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:26

đoạn làm giảm hiệu suất đường truyền, để khai thác hiệu suất tối đa ta phải có
những phương pháp thích hợp để tìm ra những giải pháp nâng cao hiệu xuất đường
truyền trên cơ sở phương pháp truy cập bus. Ta có thể đưa ra hai phương pháp
truy cập đó là phương pháp tiền định và ngẫu nhiên như sau:

+ Phương pháp tiền định: trình tự truy cập bus được qui định trước một
cách chặt chẽ theo một trình tự được giám xác như phương pháp truy cập
Master/Slave, hay theo sự qui định trước về thời gian TDMA hoặc phương pháp
phân tán bởi các thành viên Token passing.

+ Phương pháp ngẫu nhiên: trong phương pháp này trình tự truy cập bus
không có sự qui định trước mà hoàn toàn xảy ra một cách tự phát theo tính chất
nhu cầu riêng. Khi xảy ra tình huống yêu cầu của từng trạm, mỗi thành viên tự
giám sát đường truyền nếu thấy đường truyền rảnh lập tức chiếm lấy để truy cập.
Trong phương pháp này có khả năng xảy ra xung đột, vì vậy để loại trừ tác hại
xung đột có thể sử dụng những phương pháp nhận biết xung đột như CSMA/CD
hoặc CSMA/CA. Nguyên tắt hoạt động của các phương pháp này là khi nhận biết
có xung đột xảy ra thì ít nhất có một trạm ngưng gởi tín hiệu. Ta đi vào tìm hiểu
các phương pháp cụ thể như sau.

XIV. Phương pháp truy cập Master/Slave:

- Phương pháp truy cập Master/Slave hay còn gọi là phương pháp Chủ/ Tớ,
ở đây trạm chủ có vai trò chủ động tích cực còn các trạm tớ là các phần tử tiêu cực
bị động, tất cả các trạm tớ này đều chịu sự chi phối bởi trạm chủ. Trạm chủ được
xem như trái tim mạch máu của hệ thống trạm chủ (Master) có trách nhiệm chủ
động phân chia quyền truy cập bus cho các trạm tớ (Slave), các trạm tớ thụ động
chỉ có quyền truy cập bus để nhận hay gởi dữ liệu đi khi nhận được sự yêu cầu từ
phía trạm chủ, ngược lại chúng phải đợi sự yêu cầu từ trạm chủ hay thực hiện một
công việc nào đó của riêng chúng. Vậy đối với trạm chủ có thể dùng phương pháp
để kiểm soát toàn bộ hoạt động mạng của mình như phương pháp hỏi tuần tự
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:27

(polling) theo chu kỳ, nhờ vậy mà dữ liệu từ trạm chủ có thể gởi đến tất cả các
trạm tớ theo một thủ tục tuần tự một vòng luân phiên trên mạng, để yêu cầu trả lời
các thông tin kỹ thuật từ phía trạm tớ hay nhận những thông tin điều khiển từ phía
trạm chủ gởi đến trạm tớ.

- Để đảm bảo cho một hệ thống hoạt động tốt. Trong một số hệ thống các
trạm tớ hoàn toàn chịu sự giám sát chặt chẽ từ phía trạm chủ, tất cả mọi hoạt động
nảy sinh từ phía các trạm tớ với nhau đều phải thông qua trạm chủ, chẳng hạn sự
trao đổi dữ liệu cần thiết của hai trạm tớ không được thực hiện bởi chúng mà nhất
thiết phải có sự phân bổ của trạm chủ. Do đó nếu hoạt động giao tiếp theo phương
pháp hỏi tuần tự chu kỳ, thì nếu một yêu cầu được gởi dữ liệu của một trạm tớ
đến cho trạm tớ khác thì trạm chủ yêu cầu dữ liệu từ phía trạm tớ gởi sau đó trạm
chủ gởi cho trạm tớ nhận, như vậy trạm chủ đóng vai trò trung gian trong việc giao
tiếp giữa hai trạm tớ với nhau. Do đó khi có yêu cầu trao đổi dữ liệu bất thường
của trạm tớ này với trạm tớ khác thì trước hết trạm tớ muốn gởi phải thông báo
yêu cầu của mình khi trạm chủ hỏi đến và sau đó chờ cho đến khi được phục vụ.

- Trình tự thủ tục truy cập bus của hệ thống mạng nào đó với mô hình chủ
tớ. Phương pháp truy cập cũng như cách thức truyền dữ liệu giữa các trạm đều
được xây dựng một cách có qui định được gọi là tiền định hay định trước do người
tạo lập mạng tạo ra bằng các công cụ để tạo lập một cấu hình của một mạng có mô
hình một trạm chủ duy nhất và nhiều trạm tớ. Thời gian cần thiết để trạm chủ hoàn
thành công việc hỏi tuần tự một vòng cũng chính là thời gian tối thiểu của một chu
kỳ bus. Như vậy ta cũng có thể tính toán trước được một cách tương đối chắc chắn
của một chu kỳ bus, vì tất cả những thành viên tham gia về mặt số lượng ta có thể
biết trước cũng như chiều dài tối đa của một khung dữ liệu tốc độ đường truyền
(Boud), do đó ta có thể xác định được chu kỳ bus. Tốc độ đáp ứng của chu kỳ bus
chính là một tính năng thời gian thực của hệ thống, mà tính năng này đóng một vai
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:28

trò quan trọng trong hệ thống điều khiển công nghiệp. Ta có thể mô tả một mô
hình chủ tớ (Master/Slave) qua hình vẽ dưới đây:

Master

Slave Slave Slave

Hình 8 : Mô hình chủ tớ (Master/Slave).

- Phương pháp chủ tớ thích hợp cho một hệ thông điều khiển. Bởi lẽ tính
đơn giản kết nối, khả năng thêm bớt số lượng thành viên và lắp đặt. Toàn bộ kỹ
thuật của mạng hầu như tập trung vào trạm chủ, các trạm tớ chỉ đóng một vai trò
như một thiết bị có thể dễ dàng thêm vào hay bớt đi.

- Một nhược điểm của phương pháp chủ tớ là phương pháp kiểm soát tập
trung bởi trạm chủ, điều này là một nhược điểm làm giảm hiệu suất thông tin, khi
một yêu cầu trao đổi dữ liệu giữa hai tớ phát sinh sẽ không được thực hiện nếu
không qua trung gian trạm chủ. Chính vì lý do này khi xuất hiện một nhu cầu trao
đổi dữ liệu giữa hai phần tử tớ với nhau như các vi xử lý hay PLC nhất định phải
được thực hiện với thời gian tối thiểu dài hơn một chu kỳ bus.

- Để khắc phục tình trạng này có thể sử dụng một hệ thống cho phép các
phần tử tớ có thể thông tin trực tiếp cho nhau nhưng trong một chừng mực nào đó
được kiểm soát nhất định có thể minh họa ở đây qua hình vẽ (hình 9 ).
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:29

Master Slave(A) Slave(B)

Receive -Request

Send-Request

Send-Data

Receive – Send –Completed


Completed

Hình 9 : Mô tả sự trao đổi dữ liệu giữa hai trạm tớ.

- Vậy khi có một yêu cầu trao đổi dữ liệu giữa trạm tớ B cho trạm tớ A,
trong khi đó một yêu cầu từ phía trạm chủ yêu cầu tạm tớ A nhận dữ liệu
(Receive-Request) và trạm B gởi dữ liệu (Send-Request) thì trạm B gởi trực tiếp
cho trạm A (Send-Data), sau khi nhận được sự kết thúc (Send -Completed) từ
phía trạm B thì trạm A có trách nhiệm thông báo lại (Receive -Completed) cho
trạm chủ như được minh họa ở hình vẽ. Như vậy việc truy cập đường truyền cũng
không chồng chéo nhau mà hai trạm tớ vẫn thực hiện trao đổi dữ liệu được với
nhau trong một chu kỳ bus.

- Một nhược điểm thứ hai là: đối với phương pháp này độ tin cậy của hệ
thống hoàn toàn phụ thuộc vào trạm chủ, nếu trong một trường hợp nào đó gây sự
cố ở trạm chủ thì toàn bộ hệ thống mạng ngưng hoạt động dẫn đến ảnh hưởng tiến
độ sản xuất trong phạm vi tự động hóa công nghiệp. Vậy ta cần có biện pháp khắc
phục trong trường hợp này đó là phương pháp sử dụng một trạm tớ có vai trò đóng
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:30

một trạm chủ khi cần thiết, ví dụ như nếu có sự cố xảy ra thì trạm tớ này có khả
năng thay thế trạm chủ tạm thời.

XV. Phương pháp TDMA:

- Phương pháp TDMA hay còn gọi là phương pháp đa truy cập phân chia
theo thời gian (Time Division Multiple Access), mỗi một trạm được phân chia một
khoảng thời gian truy cập bus nhất định. Tất cả các trạm trao đổi thông tin cho
nhau trong một khoảng thời gian luân phiên được cho phép của mình, theo một qui
ước đã phân chia trước, việc phân chia này được xây dựng trên một hệ thống mạng
mà người xây dựng mạng tạo lập ra nó gọi là cơ chế tiền định, nghĩa là có sự sắp
xếp qui định trước. Ở đây nó có đặc điểm khác với mô hình chủ tớ ở chỗ là có thể
có trạm chủ hoặc không có trạm chủ nào, nếu có trạm chủ thì trạm chủ này chỉ có
một vai trò hạn chế đó là mức độ kiểm soát các trạm tuân thủ đúng vai trò phân
chia thời gian của mình không làm ảnh hưởng khoảng thời gian của các thành viên
khác trên mạng, và mỗi trạm chủ động trong vai trò giao tiếp với các trạm khác.

- Dưới đây để minh họa cho phương pháp phân chia theo thời gian TDMA
cho một chu kỳ bus được vẽ ở hình 10 :

1 2 ··· N Yeâu caàu rieâng

Hình 10 : Chu kỳ bus TDMA

Moät chu kyø bus

- Như hình vẽ mỗi khoảng thời gian này tương ứng dành riêng cho một
trạmvà mỗi trạm chỉ có quyền trao đổi thông tin cho nhau trong khoảng thời gian
tương ứng của mình được đánh dấu từ 1 đến N, các trạm sẽ trao đổi thông tin luân
phiên sau mỗi thời gian N lần, không có sự ưu tiên dành riêng cho trạm nào. Ngoài
những khoảng thời gian phân chia từ 1 đến N còn có một khoảng thời gian dành
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:31

cho các thông tin riêng vì một lý do nào đó xảy ra. Ví dụ như thông tin cảnh báo,
yêu cầu thay đổi cấu hình.

- Đối với nguyên tắc chung phân chia thời gian từng khoảng từ 1 đến N của
TDMA thì có những cách truy cập khác nhau như sau: chẳng hạn có thể phân chia
theo thứ tự truy cập bus hay phân chia theo địa chỉ hay theo chức năng của từng
trạm, và cũng có thể dùng phương pháp kết hợp giữa TDMA và phương pháp chủ
tớ (Master/slave) nhưng ở đây có sự cho phép các trạm tớ liên lạc với nhau, trạm
chủ chỉ có vai trò giám sát khoảng thời gian cho từng trạm thích hợp.

XIV. Phương pháp Token Passing:

- Token (thẻ bài) là một thông điệp không chứa dữ liệu có cấu trúc đặc biệt
khác với một khung dữ liệu thông thường, nó được xem như một chìa khóa luân
chuyển từ trạm này đến tạm khác trên mạng, Token cho phép một trạm có quyền
truy cập bus trao đổi thông tin giữ liệu trong thời gian trạm đó nhận Token, vậy
Token là một bức thông điệp đóng vai trò phân chia quyền truy cập bus cho các
trạm. Nếu một trạm nào đó nhận được Token nhung không có nhu cầu truy cập
bus thi trạm đó nhường Token lại cho trạm khác theo một trình tự nhất định. Nếu
trình tự này đúng với trình tự sắp xếp vật lý trong một mạch vòng (tích cực hoặc
không tích cực) ta dùng khái niệm Token Ring. Còn nếu trình tự được qui định chỉ
có tính chất logic như ở cấu trúc bus, ví dụ như theo thứ tự địa chỉ, ta dùng khái
niệm Token Bus. Trong mỗi trường hợp đều hình thành một mạch vòng logic.

- Một trạm đang dữ Token chẳn những có quyền truy cập bus và gởi thông
tin dữ liệu mà còn đóng vai trò đặc biệt đó là kiểm soát các trạm khác, chẳng hạn
như nếu một trạm nào đó có sự cố, đối với các trạm còn lại không giữ Token cũng
có khả năng tham gia kiểm soát, chẳng hạn sau một thời gian nhất định không
nhận được Token có thể là mất hay một sự cố bởi trạm nào đó đang giữ Token, thì
lúc này một trạm đảm nhiệm chức năng tạo ra Token mới và tiếp tục luân chuyển
trên mạng thay thế Token cũ. Chính vì vậy Token Passing được xếp vào phương
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:32

pháp kiểm soát phân tán. Do thời gian được quyền giữ Token hạn chế dẫn đến việc
tính toán được thời gian phản ứng cũng như chu kỳ bus tối đa. Các hệ thống sử
dụng phương pháp truy nhập này cũng có khả năng thời gian thực.

Traïm 1

Traïm 1 Traïm 2 Traïm 3

Traïm2 Token Traïm4

Traïm 4 Traïm 5 Traïm 6


Traïm 3

Token ring Token Bus

Hình 11 : Hai dạng của phương pháp Token Passing

- Trong thời gian xác lập cấu hình, các trạm có thể dự tính về thời gian
dùng Token của mình, từ đó đi tới thỏa thuận một chu kỳ bus thích hợp để tất cả
các trạm đều có quyền tham gia gởi thông tin và kiểm soát hoạt động truyền thông
của mạng. Việc kiểm soát bao gồm các việc sau:

+ Giám sát Token: nếu do một lỗi nào đó mà Token bị mất hoặc gia
bội, cần phải thông báo xóa các Token cũ và tạo một Token mới.

+ Khởi tạo Token: sau khi khởi động một trạm có trách nhiệm tạo
một Token mới.

+ Tách trạm ra khỏi mạch vòng logic: một trạm có sự cố phải được
phát hiện và tách ra khỏi trình tự nhận Token.

+ Bổ sung trạm mới: một trạm mới được kết nối mạng, một trạm cũ
được thay thế hoặc đưa trở lại sử dụng phải được bổ sung vào mạch vòng logic để
có quyền nhận Token.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:33

- Token Passing cũng có thể sử dụng kết hợp với phương pháp chủ/tớ, trong
đó mỗi trạm có quyền giữ Token là một trạm chủ, hay còn gọi là trạm tích cực.
Phương pháp kết hợp này còn được gọi là Multi - Master. Các trạm chủ này có thể
là các bộ điều khiển (PLC, PC), còn các trạm tớ (trạm không tích cực) là các bộ
vào/ra phân tán, các thiết bị trường thông minh.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:34

Chương II : CHUẨN TRUYỀN DẪN

- Truyền dữ liệu nối tiếp, không đồng bộ là phương pháp dùng chủ yếu
trong truyền thông công nghiệp, với phương pháp này các bit được truyền từ bên
gửi đến bên nhận một cách tuần tự trên cùng một đường truyền, cũng chính vì
không có một đường dây riêng biệt mang tín hiệu nhịp nên việc đồng bộ hoá thuộc
trách nhiệm bên gửi và bên nhận thỏa thuận trên cơ sở giao thức truyền thông .
- Các chuẩn truyền dẩn TIA/EIA là hiệp hội đã xây dựng và phát triển một
số giao diện cho truyền thông công nghiệp, trong đó có có các truyền dẩn nối tiếp
theo nghĩa truyền thống. Một chuẩn truyền dẩn nối tiếp trước hết được hiểu là các
qui định được thống nhất về giao diện vật lý giữa các thiết bị cuối xử lý dữ liệu và
các thiết bị truyền dữ liệu.
I: Phương thức truyền dẫn tín hiệu:
- Tín hiệu được dùng để truyền tải thông tin không kể tới môi trường truyền
dẫn thì thành phần cơ bản trong hệ thống gồm có bộ phát và bộ thu, một thiết bị
vừa có khả năng thu và phát được gọi vơi cái tên là (Transceiver).
- Có hai phương thức truyền dẫn tín hiệu trong hệ thống truyền thông công
nghiệp đó là chênh lệch đối xứng và phương thức không đối xứng.
+ Truyền dẫn không đối xứng
Truyền dẫn không đối xứng tín hiệu số, sự liên quan giữa trạng thái logic
của một tín hiệu với trạng thái logic của dãy bit mang thông tin được truyền phụ
thuộc vào phương pháp mã hoá bit, tức là giá trị logic của tín hiệu tại một thời
điểm không nhất thiết phải đồng nhất với giá trị logic của bit tương ứng mang
thông tin.
+Truyền dẫn chênh lệch đối xứng.
Truyền dẫn chênh lệch đối xứng sử dụng điện áp giữa hai dây dẩn biểu diễn
trạng thái logic 1 và logic 0 của tín hiệu không phụ thuộc vào đất. Khái niệm
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:35

chênh lệch đối xứng được thể hiện qua cân xứng về điện áp của hai dây đối với đất
trong điều kiện bình thường. Một tác động nhiễu ở bên ngoài sẽ làm tăng hay giảm
tức thời điện áp ở cả hai dây một giá trị gần tương đương, vì thế tín hiệu ít bị sai
lệch. Sự khác nhau về điện áp đất giữa các thiết bị tham gia truyền thông cũng hầu
như không bị ảnh hưởng trực tiếp tới việc đánh giá giá trị logic của tín hiệu. Một
nguyên nhân gây nhiểu khác là xuyên âm cũng được loại trừ đáng kể .
- Thông thường một tín hiệu được phát đi khi tới một đầu dây sẽ phản xạ
ngược trở lại giống như hiện tượng phản xạ ánh sáng khi tốc độ truyền tương đối
thấp hoặc dây dẩn tương đối ngắn, sao cho thời gian Tb lớn hơn gấp nhiều lần so
với thới gian lan truyền tín hiệu Ts, tín hiệu phản xạ sẽ bị suy giảm và bị triệt tiêu
sau một vài lần qua lại không gây ảnh hưởng tới chất lượng của tín hiệu mang bit
dữ liệu vì vậy ngươì ta dùng trở đầu cuối để hấp thụ tín hiệu ban đầu .

II: Đặc điểm của các công nghệ truyền dẩn RS-232, RS-422,
RS485:
Thoâng soá RS-232 RS-422 RS-423 RS-485

Chieàu daøi caùp 15m 1.2km 1.2km 1.2km


Length (max) (50 ft) (4000ft ) (4000ft) (4000ft)

Baud rate 20Kbs/15m 10M bs/12m 100Kbs/9m 10Mbs/12m


(Toác ñoä 1Mbs/120m 10Kbs/90m 1Mbs/120m
Baud) 100Kbs/1.2km 1Kbs/1.2km 100Kbs/1.2km

Mode Unbalanced Balanced Balanced Balanced


Differential Differential Differential

Driver No. 1 1 1 32

Receiver 1 10 10 32

Logic 0 +3V - +2V->+5V +3.6V->+6V +1.5V->+5V


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:36

>+25V

Logic 1 -3V ->-25V -2V-> -5V -3.6V ->-6V -1.5V ->-5V

Community 2V 1.8V 3.4V 1.3V

Cable/signal 1 2 2 2

Methode Simplex Simplex Simplex Simplex

Phöông thöùc Half- Half-duplex Half-duplex Half-duplex


duplex Full-duplex Full-duplex Full-duplex
Full-duplex

Short circuit 500mA 150 mA 150mA 150 mA


current

Baûng 1: Thoâng soá cho 232, 422, 423, 485

III: Chuẩn RS-232 :

- Là chuẩn của EIA nhằm định nghĩa giao diện vật lý giữa DTE và DCE (ví
dụ như giữa một 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ó một số ít chân là thực sự cần thiết cho việc liên kết. Về phương
diện điện, chuẩn này quy định các mức logic 0 và 1 tương ứng với các điện thế
nhỏ hơn -3V và lớn hơn +3V. Tốc độ đường truyền không được vượt quá 20Kbs
và khoảng cách nhỏ hơn 15m.
- Chuẩn RS-232C có thể chấp nhận phương thức truyền song công (Full-
Duplex).
- Một trong những yêu cầu quan trọng của RS-232C 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 một
bit. Giả sử với tốc độ truyền 19200 baud thì thời gian chuyển mức logic phải nhỏ
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:37

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ó thể truyền xa nhất là 50ft (15.24m ).
- Một trong những vấn đề quan trọng cần chú ý là khi sử dụng RS-232C là
mạch thu phát không cân bằng (đơn cực), tức là tín hiệu vào và ra được so với đất.
IV: RS-422A:
- Một cải tiến quan trọng của chuẩn RS-232C là chuẩn RS-422A. Chuẩn
này sử dụng việc truyền dữ liệu sai lệch Differential Data trên những đường truyền
cân bằng. Một dữ liệu sai lệch cần hai dây, một cho dữ liệu không đảo (Non-
Inverted) và một đường 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 trở ở đầu cuối. Một IC lái
(Driver) sẽ biến đổi các mức logic thông thường thành một cặp tín hiệu sai lệch để
truyền. Bên nhận sẽ có một mạch chuyển đổi tín hiệu sai lệch thành các mức logic
tương ứng. Các IC lái RS-422A hầu hết hoạt động với nguồn +5V như các chíp
logic khác. Với chuẩn mới này, tốc độ cũng như khoảng cách truyền được cải
thiện rất nhiều.
V: RS 485 :
- Chuẩn RS-232 dùng đường truyền không cân bằng vì các tín hiệu đều lấy
điểm chuẩn là đường mass chung, do đó tốc độ truyền và khoảng cách truyền bị
giới hạn. Khi cần tăng khoảng cách và tốc độ truyền phương pháp dùng hai dây trở
nên hửu hiệu hơn vì hai dây có đặt tính giống nhau, tín hiệu truyền đi là hiệu số
điện áp giữa hai dây. Do đó, loại trừ được nhiễu chung.
- Tín hiệu từ máy tính theo chuẩn RS-232 có mức điện áp là ±12V phải đổi
sang mức TTL 0 -> 5V dùng vi mạch MAX 232, sau đó tín hiệu đơn được đổi
sang tín hiệu vi sai dùng vi mạch MAX 485. Điện áp vi sai phải lớn hơn 200mV.
Nếu Vab > 200mV ta coi như logic 1 được truyền còn nếu Vab < -200mV thì logic
0 đươc truyền.
- Truyền RS-485 là công nghệ truyền được sử dụng thường xuyên bởi
PROFIBUS. Các lĩnh vực ứng dụng bao gồm tất cả các lĩnh vực mà trong đó cần
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:38

lắp đặt không đắt tiền, đơn giản và truyền tốc độ cao. Người ta dùng cáp đồng
xoắn kép có bọc (STP).
- Công nghệ truyền RS-485 thì dể xử lý. Lắp đặt cáp xoắn kép (TP) không
cần kiến thức chuyên gia. Kiến trúc Bus cho phép thêm và lấy đi các trạm mà
không làm ảnh hưởng đến các trạm khác. Những mở rộng sau này không làm ảnh
hưởng đến các trạm đang hoạt động.
- Giao tiếp EIA RS-485 là một cải tiến của chuẩn RS-422A. Đặc tính điện
của nó giống như chuẩn RS-422A. RS-485 là chuẩn truyền vi sai, sử dụng hai dây
cân bằng. Với RS-485 tốc độ truyền có thể đạt đến 10Mbs và chiều dài cáp có thể
lên đến 1.2km. Điện áp vi sai ngõ ra từ +1.5V -> +5V nếu là logic mức 0 và mức
logic 1 sẽ là từ -1.5V -> -5V. Một đặc điểm quan trọng của RS-485 là có thể cung
cấp đến 32 Drivers và Receivers trên cùng một đường truyền. Điều này cho phép
tạo thành một mạng cục bộ. Để có khả năng như vậy, ngõ ra Driver RS-485 phải là
ngõ ra 3 trạng thái. Và do đó một Slave sẽ ở trạng thái tổng trở cao khi nó không
được chọn để giao tiếp cùng với Master.
- Chỉ có một trạm được chọn làm Master, các trạm còn lại đều là Slave.
Master được quyền truyền bất cứ lúc nào, nó sẽ chỉ định một Slave bất kì giao
tiếp với nó. Slave chỉ có thể truyền sau khi nhận được lệnh của Master. Mọi Slave
có một địa chỉ riêng trên đường truyền và sẽ không được phép truyền nếu không
có yêu cầu từ Master..
+ Đặc điểm :
- P RS _485 là chuẩn giao tiếp nối tiếp bất đồng bộ cân bằng, sự truyền
thông tin trên.
- P dây xoắn đôi bán song công (Half _ Duplex), nghĩa là tại một thời điểm
bất kì trên dây truyền chỉ có thể là một thiết bị hoặc là truyền hoặc là nhận.
- RS_485 cho phép 32 bộ truyền trên bus.
- RS_485 có ngõ ra 3 trạng thái.
- RS_485 cho phép tốc độ truyền tối đa là 10Mbps.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:39

VI: Cách lắp đặt RS-485:


Tất cả các thiết bị được nối vào cấu trúc Bus tối đa 32 trạm (Master hay
Slave) có thể được nối vào một Sement (đoạn). Bus được kết thúc bằng Bus tích
cực (Active Bus Terminator) ở đầu và cuối mỗi Segment. Để đảm bảo hoạt động
không có lỗi thì cả đầu kết thúc Bus luôn luôn được có điện.

R2 R1

4 120 2
DI 120 RE
3 6 7 1
DE A B RO
1 7 6 3
2 RO B A DE 4
RE DI

MAX485 MAX485
6

7
MAX485 MAX485
A

B
RO

RO
DE

RE

DE

RE
DI

DI
4
3

1
2

4
3

1
2

Hình 1 : Sô ñoà maïng Half_ Duplex RS485:


U4
U4
4 9 R2 R1 11 3
DE Y B RE
5 10 120 12 2
DI Z 120 A RO
2 12 R4 R3 10 5
RO A Z DI
3 11 9 4
RE B 120 120 Y DE

MAX489 MAX489
10

12

11

10

12

11
9

U4 U4
A

B
Z

Z
Y

MAX489
MAX489
RO

RO
DE

RE

DE

RE
DI

DI
4

Hình 2 : Sô ñoà maïng RS485 Full_Duplex:


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:40

Trong tröôøng hôp treân 32 traïm hoaëc ñeå môû roäng maïng, ngöôøi ta söû duïng
caùc Repeatrer ñeå lieân keát caùc ñoaïn Bus rieâng laïi. Chieàu daøi toái ña cuûa caùp phuï
thuoäc vaøo toác ñoä truyeàn: toác ñoä truyeàn caøng cao thì chieàu daøi caùp caøng giaûm.

BAUDRATE MAX. SEGMENT MAX. EXPANSION


LENGTH

9,6 1000 m 10000 m

19.2 1000 m 10000 m

93.75 1000 m 10000 m


187.5 1000 m 10000 m

500 400 m 4000 m

1500 200 m 2000 m


3000 100 m 1000 m

6000 100 m 1000 m

12000 100 m 1000 m

Toác ñoä truyeàn vaø chieàu daøi caùp truyeàn RS-485

Ñeå taêng chieàu daøi caùp truyeàn , ta coù theå duøng boä Repeater nhö sau:
U1

2 12 R1
RO A
3 11 DATA IN
RE B 120
4 9 R2
DE Y
5 10 DATA OUT
DI Z 120

MAX491

- Bộ Repeater hay gọi là bộ tiếp sức, có chức năng làm khuếch đại tín hiệu
dữ liệu trên cáp LAN, ta cần RS-485 Repeater khi ta muốn gắn hơn 32 nút vào
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:41

mạng hoặc chiều dài đoạn cho phép được vượt quá. Tối đa 9 Repeater có thể được
sử dụng giữa hai nút bất kỳ.

- Chú ý là việc tăng kích thước mạng bằng Repeater có thể dẩn đến thời
gian truyền dài hơn và có thể kể đến khi cài đặt cấu hình mạng.

VII: Topology của mạng RS-485:

- Tốc độ truyền, ta có thể chọn một trong các tốc độ truyền sau:

9,6 Kbps,19,2 Kbps, 45,45 Kbps, 93,75 Kbps, 187,5 Kbps, 500 Kbps, 1,5 Mbps

Các thành phần gắn vào Bus được chia làm hai nhóm:

+ Các thành phần có tốc độ độ truyền từ 9.6 Kbps đến tối đa 1.5Mbps.

+ Các thành phần có tốc độ độ truyền từ 9.6 Kbps đến tối đa 12Mbps.

- Gắn nút: Các nút được gắn vào Bus qua các bộ kết nối Bus (Bus
Connector) Bus Rerminnal hay RS485 Repeater.

Kết thúc cáp:

- Mỗi Sub Segment phải được kết thúc ở hai đầu bằng tổng trở đặc tính của
nó. Bộ kết thúc cáp này (Bus Terminator) được tích hợp trong RS485 Repeater,
Bus Terminal, ILM và các Bus Connector và có thể kích hoạt nếu cần.

- Trước khi kích hoạt Bus Terminal này thì phải cung cấp nguồn cho các
thành phần mạng này. Với các bus Terminal và các Bus Connecter thì nguồn điện
này được cung cấp bởi DTE được kết nối, trái lại RS485 Repeater, ILM và
Terminal luôn có nguồn điện riêng cho mình.

- Kỹ thuật truyền RS-485 cho phép gắn tối đa là 32 thiết bị (các DTE và các
Repeater) trên Bus Segment. Chiều dài cáp tối đa được cho phép bởi Segment phụ
thuộc vào tốc độ truyền và cáp LAN được sử dụng.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:42

- Mạng RS-485 em thiết kế trong đề tài này là mạng bán song công (Half-
Duplex): Dữ liệu chỉ đi từ Master đến các vi xử lý hay từ các vi xử lý đến Master.
Tại một thời điểm trên mạng chỉ có một phần tử truyền và cho phép các phần tử
khác có thể nhận thông điệp đó. Có điều quan trọng ta nên chú ý là với sơ đồ mạch
RS-485 được thiết kế như trên thì chỉ có thể giao tiếp giữa Master (PC) và các vi
xử lý nhưng giữa các vi xử lý không thể liên lạc trực tiếp với nhau. Chúng giao
tiếp với nhau nếu có thể đó thuộc một dạng giao tiếp khác.

VIII. Các phương thức truyền thông:

- Có 3 phương pháp truyền được dùng trong mục đích truyền thông tin:
Đơn công, bán song công, và song công. Ta sẽ lần lượt khảo sát các phương pháp
truyền trên.

+ Đơn công:

Đường truyền đơn công có khả năng truyền dữ liệu chỉ theo một hướng.
Nguyên nhân không phải do tính chất của đường dây đơn giản, chỉ vì một đầu cuối
chỉ có một máy phát và đầu cuối kia cũng chỉ có một máy thu. Cấu hình này ít
được sử dụng trong các máy tính vì không có cách nào để máy thu phát tín hiệu
nhận biết tới máy phát cho biết thông điệp đã nhận đúng. Phát thanh và truyền
hình là một trong những thí dụ về đơn công.

+ Bán song công (Half-duplex Communication).

Đường truyền bán song công có thể phát và nhận dữ liệu theo cả hai hướng
không đồng thời. Trong suốt một cuộc truyền, một modem là máy phát và modem
còn lại sẽ là máy thu. Ví dụ như một thiết bị A là máy phát gởi dữ liệu đến thiết bị
B là máy thu, sau đó A và B đổi vai trò cho nhau, B là máy phát gởi tín hiệu báo
dữ liệu nhận được có lỗi hay không đến máy thu A. Nếu không có lỗi thì A và B
sẽ lại đổi vai trò cho nhau và A tiếp tục gởi dữ liệu đến máy thu B. Nếu máy thu B
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:43

báo dữ liệu có lỗi thì máy phát A sẽ gởi lại dữ liệu cũ cho đến khi B báo là dữ liệu
không có lỗi.

Nhược điểm của phương pháp này là thời gian cần để chuyển đường truyền
bán song công từ hướng này sang hướng khác có thể dài gấp nhiều lần thời gian
truyền một kí tự. Sự chuyển động của xe trên đường ray là một ví dụ về phương
pháp này.

- Song công ( Full-duplex Communication):

Ngược lại so với truyền bán song công, đường truyền song công có khả
năng phát và nhận dữ liệu đồng thời theo cả hai hướng. Một cách khái quát, đường
truyền song công tương đương với 2 đường truyền đơn công, một đường cho mỗi
hướng.

- Vì hai đường truyền có thể tiến hành song song, một đường cho mỗi
hướng, nên truyền song công có thể phát nhiều thông tin hơn truyền bán song công
với cùng tốc độ truyền dữ liệu. Truyền song công không mất thời gian để thay đổi
hướng truyền.

IX. Truyền thông tuần tự:

- Hầu hết các máy tính lưu trữ dữ liệu và thao tác dữ liệu theo cách song
song. Nghĩa là khi gởi một byte từ bộ nhận này tới bộ nhận khác của máy tính, nó
không truyền từng bit một mà một lúc một byte trên những cáp sợi song song
nhau. Số các bit truyền đi cùng một lúc thay đổi tùy thuộc vào từng máy tính
nhưng thông thường là 8 hoặc bội của 8.

- Tuy nhiên việc truyền dữ liệu từ máy tính này đến máy tính hay một thiết
bị khác thì xảy ra theo kiểu tuần tự, nghĩa là dữ liệu được gởi đi từng bit một. Một
bộ giao tiếp tuần tự sẽ đảm nhận nhiệm vụ chuyển đổi dữ liệu từ song song sang
nối tiếp trước khi chúng gởi đi hoặc đổi từ nối tiếp sang song song khi chúng nhận
về.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:44

- Có hai hình thức truyền thông tuần tự: truyền thông đồng bộ và không
đồng bộ.

- Truyền thông bất đồng bộ (Asynchronous Communication): Khoảng thời


gian giữa hai kí tự truyền đi không cố định, mặc dù khoảng thời gian giữa hai bit
liên tiếp trong một kí tự là không thay đổi nhưng khoảng thời gian giữa hai kí tự
liên tiếp không phải là hằng số. Sự biến thiên tốc độ này làm nảy sinh vấn đề là
phải làm sao máy thu phân biệt được giữa bit 0 và không có dữ liệu.

- Để giải quyết vấn đề trên, người ta phát trực tiếp một bit Start ngay trước
một kí tự và một hoặc hai Stop bit ngay sau mỗi kí tự được truyền đi.

- Để kiểm tra lỗi đường truyền, người ta sử dụng bit chẳn lẻ (Parity bit), tức
kiểm tra tổng số bit trong 1 byte dữ liệu được truyền. Phương thức này thường
được sử dụng trong các máy tính PC vì tính đơn giản của nó. Hạn chế của phương
pháp này là tốc độ truyền thấp do phải truyền thêm một số bit Start, bit Stop và bit
Parity.

- Truyền thông đồng bộ ( Synchronous Communications):

- Phương thức truyền này không dùng các bit 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 một cờ giữa các dữ liệu của người sử dụng để báo hiệu cho
bên nhận biết rằng có dữ liệu đang đến hay đã đến.

- Truyền đồng bộ thường được tiến hành ở tốc độ dưới 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 các 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. Trong phương pháp
truyền đồng bộ không giống như phương pháp truyền bất đồng bộ, khoảng thời
gian giữa hai kí tự luôn bằng nhau.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:45

Chương III: GIỚI THIỆU AVRATMEGA32

I: Giới thiệu AVRATMEGA32 :

- VARATMega32 là của công ty Hoa Kỳ đây là loại vi điều khiển mới rất
mạnh có rất nhiều ưu điểm so với các vi điều khiển khác như vi điều khiển 89C5x
hay 89C5x vv
- Công ty Atmel là nhà xuất hàng đầu về vi mạch (IC) là một kiến trúc phổ
biến của các bộ vi sữ lý hiện đại .
- Kiến trúc RISC với hầu hết các lệnh có chiều dài cố định, truy nhập bộ
nhớ nạp lưu trữ (Load-Store), và 32 thanh ghi đa năng .
- Kiến trúc đường ống lệnh kiểu hai tầng (Two-Stageinstructionpipeline)
cho phép làm tăng tốc độ thực thi lệnh .
- Có chứa nhiều bộ phận ngoại vi ngay trên chíp bao gồm cổng I/O số, bộ
biến đổi ADC, bộ nhớ EEPROM, bộ định thời, UART, bộ định thời RTC, bộ điều
chế độ rộng xung (PWM) vv đặc điểm này được xem là nổi bật so với vớ nhiều họ
vi điều khiển khác vì trong khi nhiều bộ vi xử lý khác phải tạo bộ truyền nhận
UART hoặc giao diện SPI bằng phần mền hay máy ảo thì trên vi điều khiển
AVRATMega32 lại được thực hiện bằng phần cứng trên các vi điều khiển
AVRATMega32 đã tích hợp sẵn .
II: Đặc điểm chung:
- Là một vi điều khiển 8 bit mạnh, chỉ tiêu chất lượng cao tiêu thụ năng
lượng thấp.
- Kiến trúc RISC (Reduce Instruction Set Computer) cao cấp.
- Với 132 lệnh mạnh hầu hết các lệnh được thực thi trong một chu kỳ máy.
- Có 32 thanh ghi 8bit đa năng.
- Tốc độ xử lý lên đến 16 triệu lệnh trong 1 giây (gấp 16 lần 89 C51x ) .
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:46

III: Bộ nhớ dữ liệu và bộ nhớ trương trình không tự mất dữ liệu


(Nonvolatile )

- 32 Kb bộ nhớ dành cho việc lập trình chịu được 10 ngàn lập trình/ xoá
- 1024 byte EEPROM, chịu được 10 ngàn lần viết/ xoá.
- 2 Kb SRAM.
- Chế độ bảo mật cho chương trình lập trình được.
- Giao diện JTAG .

IV: Có nhiều thiết bị ngoại vi được tích hợp sẵn.

- Hai Timer trên bộ đếm 8 bit, với chế độ chia tầng riêng biệt và chế độ so
sánh .
- Bộ đếm thời gian thực với chế độ giao động riêng biệt.
- Một Timer trên bộ đếm 16 bit với chế độ chia tầng riêng biệt và chế độ so
sánh.
- Bốn kênh PWM.
- 8 kênh, 10 bit AĐC.
- 8 kênh biến đổi AĐC đơn cực.
- 2 kênh biến đổi vi sai với độ khuyếch đại 1,1 hay 200 lần.
- Giao tiếp 12C.
- Chế độ USART lập trình được.
- Giao diện chủ/tớ SPI.
- Bộ Watchdog Timer lập trình được với dao động riêng lẻ.
- Bộ so sánh Analog trên Chip.
V: Những điểm đặc biệt.
- Tự Reset khi cấp nguồn.
- Có bộ giao động RC bên trong chíp.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:47

- Các nguồn ngắt trong và ngắt ngoài.


- Có 6 chế độ nghỉ (Sleep): Dừng (Idle), tiết kiệm năng lượng (Power save),
nguồn giảm (Power Down), giảm nhiều khi biến đổi ADC chế độ chờ (Standby ),
và chế độ chờ mở rộng.
VI: Số lượng I/O và dạng đóng gói:

- Có 32 đường I/O lập trình được với các chức năng khác nhau.
- 40 chân kiểu đóng gói PDIP, 44 chân kiểu TQFP, và 44 chân kiểu MLF

VII: Nguồn cung cấp.

- Từ 2.5 Volt đến 5.5 Volt đối với ATMega 32L


- Từ 4.5 Volt đến 5.5 Volt đối với ATMega 32L

VIII: Thạch anh dao động:

- Từ 0 đến 8MHz cho ATMega 32L


- Từ 0 đến 16MHz cho ATMega 32

IX: Năng lượng tiêu thụ ở chế độ giao động 1MHz, 3 Volt, 25 0C
đối với ATMega 32L

- Chế độ làm việc : 1.1 mA.


- Chế độ dừng (Idle): 0.35mA
- Chế dộ nguồn giảm < 1uA
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:48

X: Hỗ trợ tốt cho các trình biên dịch bằng C như IamgeCreft C,
Code VisionAVR, IAR ...

Hình1: Sô ñoà chaân cuûa ATMega32


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:49

Hình 2: Sơ đồ khối của ATMega32

XI: Mô tả các chân :

- VCC: Chân cấp nguồn V+


- GND: Chân cấp nguồn V-
- PortA (PA0..PA7): PortA có chức năng là các đầu vào của bộ biến đổi
A/D.
- PortA cũng có chức năng như là một cổng xuất nhập 8 bit, hai hướng. Nếu
chức năng biến đổi A/D không được sử dụng thì các chân của PortA có thể có khả
năng cung cấp các điện trở kéo lên bên trong (có khả năng lựa chọn cho từng bit).
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:50

Khi PortA được sử dụng chức năng là các cổng xuất, các bộ đệm xuất nhập của nó
có một tính năng đối xứng là có khả năng hút hoặc cấp nguồn cao.
- Khi PortA được xử dụng như những chân (Input), chúng sẽ có khả năng
hút dòng rất mạnh nếu những điện trở kéo xuống bên trong được kích hoạt. Các
chân của PortA sẽ ở trạng thái Tri-Stated khi chế độ Reset được kích hoạt, thậm
chí nếu xung đồng hồ bị ngưng.
- PortB (PB0..PB7): PortB có chức năng như là một cổng xuất nhập 8 bit,
hai hướng. PortB có thể có khả năng cung cấp các điện trở kéo lên bên trong ( có
khả năng lựa chọn cho từng bit ). Khi PortB được sử dụng chức năng là các cổng
xuất, các bộ đệm xuất nhập của nó có một tính năng đối xứng là có khả năng hút
hoặc cấp nguồn cao.
Khi PortB được xử dụng như những chân (Input), chúng sẽ có khả năng hút dòng
rất mạnh, nếu những điện trở kéo xuống bên trong được kích hoạt. Các chân của
PortB sẽ ở trạng thái Tri-Stated khi chế độ Reset được kích hoạt, thậm chí nếu
xung đồng hồ bị ngưng. Ngoài ra PortB cũng có chức năng đặc biệt khác.
- PortC (PC0..PC7): PortC có chức năng như là một cổng xuất nhập 8 bit,
hai hướng . PortC có thể có khả năng cung cấp các điện trở kéo lên bên trong ( có
khả năng lựa chọn cho từng bit ). Khi PortC được sử dụng chức năng là các cổng
xuất, các bộ đệm xuất nhập của nó có một tính năng đối xứng là có khả năng hút
hoặc cấp nguồn cao.
Khi PortC được xử dụng như những chân (Input), chúng sẽ có khả năng hút
dòng rất mạnh, nếu những điện trở kéo xuống bên trong được kích hoạt. Các chân
của PortC sẽ ở trạng thái Tri-Stated khi chế độ reset được kích hoạt , thậm chí nếu
xung đồng hồ bị ngưng.
- Nếu giao diện JTAG được cho phép, các điện trở kéo lên trên các chân
PC5(TDI), PC3(TMS), PC2(TCK), sẽ được kích hoạt thập chí nếu có reset xay ra.
Ngoài hai chức năng là xuất nhập và giao diện JTAG thì PortC còn có các chức
năng đặc biệt khác.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:51

- PortD (PD7..PD0): Cũng như PortA, PortB, PortC, PortD cũng có chức
năng xuất nhập tương tự như các Port khác, ngoài ra PortD cũng có chức năng là
một giao diện nối tiếp USART, và chân vào của các ngắt ngoài. Về chức năng
USART thì sẽ nói chi tiết ở phần sau.
Reset: Khi một mức điện áp thấp được đặc vào được đặt vào chân này kéo
dài hơn một thời gian tối thiểu thì trái thái Reset sẽ được kích hoạt , thậm ch1 nếu
xung đồng hồ bị ngưng, xung có thời gian ngăn hơn thời gian tối thiểu không được
đảm bảo sẽ phát sinh ra Reset.
XTal1: lối vào của bộ khuyếch đại dao động đảo và là lối vào của xung đồng hồ để
VĐK hoạt động.
Xtal2: lối ra từ bộ khuyếch đại đảo.
AVCC:là nơi cung cấp nguồn cho bộ biến đổi A/D bên trong VĐK, măc dù nếu ta
không sử dụng chế độ biến đổi A/D thì ta cũng nên mắc chân này lên VCC.
AREF: Là chân Vref của bộ biến đổi ADC

XII: Giao diện nối tiếp USART.

- Tổng quang giao diện nối tiếp USART


- Giao diện nối tiếp USART (Universal Synchronous And Asynchonous
Serial Receiver And Transmitter) là một bộ truyền nhận nối tiếp linh động cao
được tích hợp sẵn trong VĐK có các chức năng chính là:
+ Chế độ truyền phát song công hoàn chỉnh (các thanh ghi truyền
nhận là những thanh ghi độc lập với nhau)
+ Chế độ truyền nhận đồng bộ và không đồng bộ
+ Chế độ hoạt động đồng bộ với các thiết bị chủ tớ
- Độ phân giải cao về các tốc độ baud.
- Hổ trợ kích thước các khung truyền là: 5,6,7,8 hoặc 9 bit dữ liệu và một
hay 2 bit Stop.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:52

- Tự động phát bit kiểm tra chẳn lẻ và tự kiểm tra chẳn lẻ.
- Tự động dò khi dữ liệu bị tràn.
- Tự động dò lổi khung truyền.
- Chế độ lọc nhiễu gồm lổi bit Start, và bộ lọc thông thấp số.
- Hổ trợ ba ngắt riêng biệt: TX (ngắt khi truyền xong), RX (ngắt khi thu xong),
ngắt khi thanh ghi truyền rỗng.
- Hổ trợ chế độ thông tin đa VĐK .
- Hổ trợ tốc độ truyền gấp đôi ở chế độ truyền bất đồng bộ.

Hình 3 : Sơ đồ khối của bộ USART

XIII: Tốc độ baud:

Tốc độ baud phụ thuộc vào tần số thạch anh chuẩn mắc vào VĐK ta có thể
sử dụng những giá trị chuẩn để gán giá trị cho thạch anh phù hợp với tốc độ baud.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:53

Hình 4: Sơ đồ khối cách phát tốc độ baud

- Txclk: xung clock phát (tín hiệu bên trong)


- Rxclk: xung clock thu (tín hiệu bên trong)
- Fosc: Tần số dao động của hệ thống.
- Cách thông dụng nhất để đặt tốc độ baud là cài đặt các giá trị tương ứng
với tốc độ baud mà ta mong muốn vào thanh ghi tốc độ baud UBRR.Bảng ví dụ
dưới đây cho ta các giá trị tương ứng với tốc độ baud mà ta muốn đặt trong trường
hợp sử dụng một số thạch anh thông dụng.

Baûng1: Phaùt toác ñoä baud.


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:54

Baûng 2 : Phaùt toác ñoä baud.

Baûng 3: Phaùt toác ñoä baud.

XIV: Bộ biến đổi ADC bên trong chíp:

- Trong phần lớn các bộ vi điều khiển AVR điều có bộ biến đổi ADC được
tích hợp sẵn bên trong chíp, đây có thể xem là phần nổi trội hơn các vi điều khiển
khác VD: như 89C51…vv.
- Đặc điểm của bộ biến đổi ADC bên trong vi điều khiển ATMEGA32 :
+ Độ phân giải lên đến 10 bit .
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:55

+ Thời gian chuyển đổi từ 13 dến 260us .


+ 8 kênh biến đổi ADC đơn cực .
+ 7 kênh vi sai .
+ Điện áp biến dổi từ 0VCC .
+ Có thể lựa chọn mức Vref là 2,56 volt .
+ Hai kênh nhập vào vi sai với chế độ lựa chọn bộ khuyếch đại là 10x đến
200x .
+ Hổ trợ ngắt khi hoàn thành việc biến đổi ADC .
+ Hổ trợ chế độ giảm nhiểu .

Hình 5: Sô ñoà khoái boä bieán ñoåi ADCtrong vi ñieàu khieån ATMega32.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:56

PHẦN II
THIẾT KẾ VÀ THI CÔNG
I: Mạch nguồn :

5V
7805
17 35 V 0,1

VCC
3

2 Q1A
R
1

R3

LED

Hình 1: Sơ đồ nguồn ổn áp 5V.

Dùng IC ổn áp 3 chân 78xx loại này cho ra điện áp có định được chỉ ra
bằng hai số cuối của IC. Ví dụ 7805 ổn áp 5V, 7812 (+12V), 7815 (+15V), 7824
(+24V); ở đầu ra thông thường mắc thêm tụ C = 0,1 uF để cải thiện quá trình quá
độ và dữ cho điện trở ra của mạch đủ nhỏ.

Hình 1: Mạch hiển thị Led


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:57

II: Mạch hiển thị Led:


Để hiển thị trạng thái nhận được của các Vi Điều Khiển ta xử mạch hiển thị
bởi các Led được mắc vào mạch như hình trên. Khi có tín hiệu kích vào cực B
Transistor làm cho Transistor dẫn, lúc này dòng điện chạy từ Vcc qua mối nối CE
qua R3 qua Led và xuống mas làm cho Led sáng.
Ta có:
Vcc = 5V;
Vce = 0,2V;
Vled = 0,7V; dòng chạy qua Led tối đa là: Iled = 15mA;
Từ sơ đồ mạch ta có :
Vcc = Vce + Vled + R3* Iled;
R3* Iled = Vcc -Vce -Vled
III: IC MAX RS485 :

Hình 3: Sô ñoà chaân Max 485


Nguồn 5volt .
Chuẩn EIA .
Tốc độ truyền dữ liệu 5mb/s .
Bảo vệ nhiệt và ngắn mạch .
Thời gian trễ khi truyền là 10ns và nhận là 20ns .
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:58

Chaân
Teân Chöùc naêng
IP/SO MAX
RO Ngoõ ra boä thu :
1 3 Neáu A > B laø200mV, RO laø cao.
Neáu A < B laø 200mV , RO laø thaáp.
/RE Cho pheùp ngoõ ra boä thu :
2 4 RO ñöôïc cho pheùo khi /RE laø thaáp.
RO laø trôû khaùng cao khi /RE laø cao.
DE Cho pheùp ngoõ ra laùi :
Caùc ngoõ ra laùi A vaø B ñöôïc cho pheùp khi DE cao.
Caùc ngoõ ra laùi A vaø B laø trôû khaùng cao khi DE thaáp.
3 5 Neáu nhöõng ngoõ ra laùi ñöôïc cho pheùp thì töøng ngoõ coù chöùc
naêng nhö laøcaùc ñöôøng laùi.
Khi chuùng laø trôû khaùng cao, chöùc naêng cuûa chuùng nhö laø
caùc ñöôøng thu cuûa boä thu neáu /RE laø thaáp.
DI Ngoõ vaøo boä laùi :
4 6 DI thaáp thì A thaáp vaø B cao
DI cao thì A cao vaø B thaáp.

5 7 GND Noái mass.

6 8 A Ngoõ vaøo voä thu vaø ngoõ ra boä laùi ñeàu khoâng ñaûo.

7 1 B Ngoõ vaøo boä thu vaø ngoõ ra boä laùi ñeàu ñaûo.
8 2 Vcc Nguoàn cung caáp döông 4.75V  Vcc  5.25V
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:59

Chöùc naêng cuûa caùc ñöôøng ñieàu khieån :

Truyeàn :

Tín hieäu vaøo Tín hieäu ra

/RE DE DI B A

X 1 1 0 1

X 1 0 1 0

0 0 X High Z High Z

1 0 X High Z High Z

Nhaän:

Tín hieäu vaøo Tín hieäu ra

/RE DE A-B RO

0 0  200mV 1

0 0  200mV 0

0 0 Ngoõ vaøo hôû 1


maïch

1 0 X High Z

IV: MASTER VÀ SLAVE :

Phương pháp truy cập cho hệ thống mạng của đề tài này. Theo hương pháp
Master/ Slave thì: trạm chủ (Master) có trách nhiệm chủ động trong việc phân chia
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:60

quyền truy cập bus cho hệ thống, đặc biệt tránh sự xung đột khi có hai trạm tớ
cùng phát dữ liệu lên đường truyền một lúc đây là một điểm yếu có thể làm mất dữ
liệu được gởi, hay có thể làm sai lệch nội dung .

+ Trạm chủ Master có trách nhiệm phân chia quyền truy cập bus cho trạm
tớ.

+ Trạm chủ có thể dùng phương pháp hỏi tuần tự đến các trạm tớ.

+ Các trạm tớ đóng vai trò thụ động, chỉ có quyền truy cập khi nhận được
yêu cầu từ trạm chủ.

+ Các trạm tớ sẽ gởi dữ liệu lên đường truyền về trạm chủ khi có yêu cầu,
ngược lại thực thi công việc của riêng mình cho đến khi trạm chủ hỏi tiếp sau mỗi
chu kỳ.

+ Tất cả các trạm tớ không có quyền liên lạc với nhau.

Dựa vào các tính chất này ta xây dựng phương pháp chủ tớ (Master/ Slave)
. Để đảm bảo tại một thời điểm chỉ có một trạm tớ duy nhất tức các Vi Xử
Lý có quyền truy cập bus, việc này được đảm nhiệm bỡi trạm chủ (Master) phải có
một phương pháp điều khiển các trạm tớ thích hợp, mặt khác tất cả các trạm tớ
nhận dữ liệu tư ( Master) gởi đi, hay truyền dữ liệu về cho (Master) đều phụ thuộc
vào các lệnh nhận được từ (Master). Để thực hiện những yêu cầu này thì đồi hổi
trạm chủ phải có kỹ thuât quản lý đương truyền, cũng như đáp ứng đúng tính chất
của phương pháp chủ tớ (Master/ Slave) . như hình 4 :
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:61

MASTER

SALAVE SALAVE

. . .

Rs485

Hình 4: Sô ñoà khoái maïng RS485

V: Trạm chủ (Master ) :

- Dùng vi sử lý ATMega32 :

- Port A từ PA0 - PA7 dùng xuất giá trị hiển thị Led.

- Port B từ PB1 - PB5 điều khiển quét Led, PB6 và PB7 được
dùng để hiển thị Led cho động cơ, PB0 được nối với chân số 2 và
chân số 3 của 485, mục đích điều khiển việc truyền nhận dữ liệu.

- Port C từ PC0 - PC7 dùng suất ra để điều khiển phím theo


phương pháp ma trận , có bốn hàng bốn cột .

- PC0- PC3 sử dụng làm hàng .

- PC4 -PC7 sử dụng làm cột .

-Chân Reset nối nguồn VCC, qua bề tụ .

- Port PD0 và PD7 sử giao tiếp nối tiếp. Trong đó chân PDO là
chân RXD tức là chân nhận dữ liệu của Port nối tiếp, chân PD1 là
chân TXD tức là chân truyền dữ liệu của Port nối tiếp. Hai chân này
được nối RS485 tương ứng với chân RXD được nối với chân số 1 là
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:62

chân R của Max 485, chân TXD được nối với chân số 4 là chân D của
Max 485 được thể hiện ở hình 5:

VCC

U2

10
VCC 40

VCC
C1 PA0 39
12 PA1 28
R4 XTAL2 PA2 37
PA3
R Y1 PA4
36
35
T N
PA5 34
13 PA6 33

.
XTAL1 PA7

C 9
RESE
C2 16 Q5 Q5 Q5 Q5 Q5
C 17 PD2 8
18 PD3 PB7 7
19 PD4 PB6 6
20 PD5 PB5 5
VCC VCC 21 PD6 PB4 4
VCC PD7 PB3 3
32 PB2 2
30 AREF PB1
AVCC
8

6 2 1 29
VCC

A RE 3 PB0 PC7 28
DE PC6
R
1 32
PD0(RXD) PC5
27
26
3 4 8
7 PC4 25
GND

B 4 15 PC3 24
D PD1(TXD) PC2 23
GND

GND

PC1
PC0
22 2 5 9
5

11

31

1 6 r s
MAX485 ATMega32
Enter
0 7

Hình 5: Sơ đồ thiết kế trạm chủ (Master )

Phương pháp truyền nhận dữ liệu của master :


Trạm chủ gởi đi một khung dữ liệu gồm các byte sau :
Dc (địa chỉ ), byte Dl ( dữ liệu ), có lệnh truyền và nhận ( R , S ), byte động cơ
ĐC (địa chỉ ) Byte đầu tiên byte này là byte địa chỉ nhận diện ..
L (lệnh ) Byte thứ hai là Byte lệnh gồm hai lệnh, đó là yêu cầu nhận dữ
liệu hay yêu cầu gởi dữ liệu về master .
DL (dữ liệu ) Byte thứ ba là Byte dữ liệu.
Byte thứ 4: là byte điều khiển động cơ nếu trạm có động cơ hoặc byte thêm
vào cho đủ khung dữ liệu 4 byte đối với trạm không có động cơ.
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:63

Bắt đầu

Khởi động Port nối


tiếp.
Đặt tốc độ baud.

Quét Led.

Quét phím
≤4

Byte = 4
Gởi khung dữ liệu
gồm 4 byte

Rx Counter < 4
Kiểm tra bộ đếm
nhận

Rx Counter = 4
Nhận khung dữ
liệu gồm 4 byte

Xử lí khung dữ
liệu

Kết thúc

Hình 6: Lưu đồ giải thuật Master


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:64

VI: Khái quát về các trạm tớ :

- Gồm có một trạm chủ (Master ) và hai trạm tớ ( Slave).

- Các Vi Xử Lý (các trạm) lấy Byte đầu tiên hay gọi là byte địa chỉ so sánh
với địa chỉ của mình nếu đúng thì xử lý tiếp các Byte còn lại, nếu không thì bỏ
khung truyền vừa nhận được và đợi nhận khung tiếp theo

- Nếu đúng là địa chỉ của mình thì Vi Xử Lý kiểm tra Byte lệnh nếu là lệnh
nhận thì

Vi Xử Lý nhận Byte thứ ba làm Byte dữ liệu đối với trạm có địa chi là 8 thì byte
thứ 4 là byte điều khiển động cơ, đối với trạm có địa chỉ là 4 thì byte thứ 4 là byte
thêm vào cho đủ khung dữ liệu (khung dữ liệu là 4 byte).

- Nếu là lệnh gởi :

Nếu là lệnh gởi thì vi sử lí kiểm tra dữ liệu của mình và gởi khung dũ liệu
về cho trạm chủ thông qua đường truyền RS485

Vậy theo phương pháp này tại một thời điểm chỉ có một Vi Xử Lý truy cập
đường truyền để gởi dữ liệu về cho trạm chủ, khi Vi Xử Lý nhận được lệnh, đối
với các Vi Xử Lý còn lại không được xác định địa chỉ thì bỏ khung và thực thi
công việc của riêng chúng không truy cập đường truyền, vậy không thể xảy ra hiện
tượng tại một thời điểm có hai hay nhiều trạm tớ cùng truyền dữ liệu lên đường
truyền, do đó không thể có xung đột xảy ra ở đây. Toàn bộ hệ thống được trạm
chủ quoản lý và chỉ có trạm tớ nào có yêu cầu gởi dữ liệu thì mới có quyền truy
cập bus .
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:65

VII: Trạm tớ 1( địa chỉ 4 )

Sơ đồ mạch điện được thể hiện ở hình 8 trạm này thì đơn giản dữ liệu
nhận được từ trạm chủ gởi tới và so sánh với địa chỉ của mình là 4 nếu đúng thì
xác định byte thứ hai là lệnh gì nếu là lệnh nhận thì nó lấy byte dữ liệu là byte thứ
3 đồng thời đưa giá trị này ra Prot A. Nếu là lệnh gởi thì nó đọc giá trị của Port A
hiện có của nó và gởi giá trị này về cho trạm chủ. Dưới đây là sơ đồ mạch được
thể hiện ở hình 8: Và lưư đồ giải thụât được thể hiện ở hình 9:

U2
10

VCC 8
C1 PB7 7
VCC

12 PB6 6
R4 XTAL2 PB5 5
PB4 4
R Y1 PB3 3
PB2 2
13 PB1
XTAL1 40
PA0 39
C 9 PA1 28
RESE PA2 37
C2 16 PA3 36
C 17 PD2 PA4 35
18 PD3 PA5 34
19 PD4 PA6 33
20 PD5 PA7
VCC 21 PD6
PD7 VCC

32
AREF
8

30
6 2 1 AVCC 29
A RE 3 PB0 PC7 28
VCC

DE 1 32 PC6 27
R PD0(RXD) PC5 26
7 PC4 25
B PC3
GND

4 15 24
D PD1(TXD) PC2 23
PC1
GND
GND

22
PC0
5

11
31

MAX485 ATMega32
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:66

Hình 8: Sô ñoà thieát keá traïm (Slave 1 )

Bắt đầu

Khởi động Port nối


tiếp.

Nhận khung dữ liệu


4 byte

Sai
Kiểm tra địa chỉ

Đúng
Kiểm tra lệnh
(2 lệnh RS)

Nhận byte dữ liệu,


làm dữ liệu

Gởi khung dữ liệu

Kết thúc

Hình 9: Lưu đồ giải thuật Trạm 1


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:67

VIII: Trạm Slave (trạm tớ 2 ) :

Cũng dùng vi sử lý ATMega32 được thiết kế phần cứng gần giống như
trạm 1. Khác ở chổ là có thêm phần động cơ. Phần mềm được lập trình để thu
nhận và xử lý dữ liệu từ trạm chủ gởi đến và được hiển thị các trạng thái nhận
được bởi các LED. Ngoài ra ta còn có mạch điều động cơ trên trạm này, và được
điều khiển trực tiếp bởi trạm chủ. khi trạm tớ này nhận được lệnh điều khiển từ
trạm chủ gởi tới, mạch điều khiển động cơ hoạt động như sau :
Khi nhận được lệnh kích khởi động động cơ theo chiều thuận từ trạm chủ
(Master), thì trạm tớ kích hoạt chân PC1 làm cho Q3 dẫn điện đồng thời Q2 cũng
có điện (vì Q2 và Q3 ở trạng thái luôn luôn dẩn ) nên dòng điện qua động cơ đến
D1 qua Q3 về Mass, (trong mạch Q2, Q1 luôn dẫn bảo hòa). Khi có lệnh khởi
động theo chiều ngược lại theo yêu cầu của trạm chủ, thì lúc này chân PC0 được
kích hoạt, dòng điện chạy từ Q1 qua động cơ, đến D2 qua Q4 về Mass, lúc này
dòng chạy qua động cơ theo chiều ngược lại do đó động cơ đựơc khởi động theo
chiều ngược lại.
Cũng dùng bốn byte :
- ĐC (địa chỉ )
- L (lệnh )
- DL (dữ liệu )
- Đ ( động cơ )
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:68

VCC

U2

10
VCC
C1

VCC
40
12 PA0 39
R4 XTAL2 PA1 28
PA2 37
R Y1 PA3 36
PA4 35
13 PA5 34
XTAL1 PA6 33
PA7
C 9 8
RESE PB7 7
C2 16 PB6 6
C 17 PD2 PB5 5
18 PD3 PB4 4
19 PD4 PB3 3
20 PD5 PB2 2 VCC
21 PD6 PB1
VCC VCC
PD7 32
AREF 30
AVCC
R1 R2
A
8

29 R R
6 2 1 PC7 28
A RE PB0 PC6 27
VCC

3 Q3 Q2
R5 DE 1 32 PC5 26
R R PD0(RXD) PC4 25
7
B
PC3 24
PC2 23
B D2 D1
GND

4 15
D PD1(TXD) PC1 22 . DC .
PC0
GND
GND

DIODE DIODE
A B
5

Q2
31

Q1
11

R R

MAX485 ATMega32

Hình 10: Sô ñoà thieát keá traïm (salave 2 )


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:69

Bắt đầu

Khởi động Port nối


tiếp.

Nhận khung dữ liệu


4 byte

Sai
Kiểm tra địa chỉ

Đúng
Kiểm tra lệnh S (Lệnh gởi)
(2 lệnh RS)

Nhận R
Nhận byte dữ liệu
và byte động cơ

Gởi khung dữ liệu

Kết thúc

Hình 11: Lưu đồ giải thuật Trạm tớ 2


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:70

CHƯƠNG TRÌNH VIẾT CHO CÁC TRẠM

Traïm chuû Master.

This program was produced by the


CodeWizardAVR V1.24.7d Professional
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Project :
Version :
Date : 6/3/2006
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega32
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:71

char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:72

#endif
// USART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif
// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:73

unsigned char j,k,chuso[4],bay[8],tr,i,ma[4],n,p,bd,x,tam1,tam2,tam3;


unsigned char nhan0,nhan1,nhan2,nhan3,z,nt,truyen=1,nhan,ks;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=Out Func0=Out
// State7=T State6=T State5=1 State4=1 State3=T State2=T State1=1 State0=1
PORTA=0x33;
DDRA=0xFF;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=1 State0=1
PORTB=0x03;
DDRB=0xFF;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=1
PORTC=0x01;
DDRC=0xFF;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:74

// Input Capture on Falling Edge


// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:75

UBRRL=0x19;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
rx_counter=0;
rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
rx_buffer[5]=0;
rx_buffer[6]=0;
rx_buffer[7]=0;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
k=0;
z=0;
while (1)
{
// Place your code here
delay_ms(10);
UCSRB=0x00;
if (truyen==1)
{
for ( i=0; i<=3; i++) //quet phim
{
x=1;
p=x<<i;
DDRC=0x0f;
PORTC=p;
delay_ms(5);
n=PINC;
if (n==129)
{
bd=1;
delay_ms(100);
}
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:76

if ((z!=1) & (n==17))


{

chuso[j]=126;
ma[j]=0;
delay_ms(100);
j++;
}
if ((z!=1) & (n==18))
{

chuso[j]=18;
ma[j]=1;
delay_ms(100);
j++;
}
if ((z!=1) & (n==20))
{
chuso[j]=61;
ma[j]=2;
delay_ms(100);
j++;
}
if ((z!=1) & (n==24))
{
chuso[j]=109;
ma[j]=3;
delay_ms(100);
j++;
}
if ((z!=1) & (n==40))
{
chuso[j]=75;
ma[j]=4;
delay_ms(100);
j++;
}
if ((z!=1) & (n==36))
{
chuso[j]=103;
ma[j]=5;
delay_ms(100);
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:77

j++;
}
if ((z!=1) & (n==34))
{
chuso[j]=119;
ma[j]=6;
delay_ms(100);
j++;
}
if ((z!=1) & (n==33))
{
chuso[j]=76;
ma[j]=7 ;
delay_ms(100);
j++;
}
if ((z!=1) & (n==72))
{
chuso[j]=127;
ma[j]=8;
delay_ms(100);
j++;
}
if ((z!=1) & (n==68))
{
chuso[j]=111;
ma[j]=9;
delay_ms(100);
j++;
}
if ((z==1) & (n==130))
{
chuso[j]=103;
ma[j]=4;
delay_ms(100);
j++;
}
if ((z==1) & (n==66))
{
chuso[j]=95;
ma[j]=8;
delay_ms(100);
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:78

j++;
}

}//for ( i=0; i<=3; i++)

tam1=chuso[0];
tam2=chuso[1];
tam3=chuso[2];
if (j==0); // QUET chu so 0;
{
DDRB=0xFF;
PORTB=0x04;
DDRA=0xff;
PORTA=chuso[0];
delay_ms(5);
}
if (j==1); // Quet chu so 1
{
DDRB=0xFF;
PORTB=0x08;
DDRA=0xff;
PORTA=chuso[1];
delay_ms(5);
}
if (j==2); // quet chu so thu 2
{
DDRB=0xFF;
PORTB=0x20;
DDRA=0xff;
PORTA=chuso[2];
delay_ms(5);
}
if(z==0)// dia chi DC.
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=177;
delay_ms(5);
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:79

}
if (z==1)// chu lenh (L).
{
PORTB=0x01;
DDRB=0xff;
PORTA=178;
delay_ms(1);
}
if(z==2)//du lieu (DL)
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=50;
delay_ms(5);
}
if (z==3) //dong co (D)
{
PORTB=0x01;
DDRB=0xff;
PORTA=121;
delay_ms(1);
if ((chuso[0]==18)&&(chuso[1]==126))
bay[3]=1;
if ((chuso[0]==18)&&(chuso[1]==18))
bay[3]=2;
if ((chuso[0]==126)&&(chuso[1]==126))
bay[3]=0;
tr=1;
}
else
{
bay[3]=255;
tr=1;
}
// doan chuong trinh tinh gia tri cua bay.
if ((tam1!=32)&&(tam2==32)&&(tam3==32)&&(bd==1)&&(k<=2))
{
bay[k]=ma[0];
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:80

chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
if ((tam1!=32)&&(tam2!=32)&&(tam3==32)&&(bd==1)&&(k<=2))
{
bay[k]=((ma[0]*10)+ma[1]);
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
if ((tam1!=32)&&(tam2!=32)&&(tam3!=32)&&(bd==1)&&(k<=2))
{
bay[k]=(ma[0]*10+ma[1])*10+ma[2];
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
z++;
k++;
bd=0;
}
//Ket thuc doan chuong trinh tinh gia tri cua bay.
// doan chuong trinh truyen
if ((tr==1)&&(bd==1))
{
PORTB=16;
DDRB=0xff;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;
j=0;
UCSRB=0x48;
putchar(bay[0]);
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:81

putchar(bay[1]);
putchar(bay[2]);
putchar(bay[3]);
delay_ms(10);
UCSRB=0x00;
delay_ms(10);
UCSRB=0x90;
PORTB=0;
delay_ms(100);
z=0;
k=0;
tr=0;
bd=0;

} //ket thuc truyen


}//fi truyen
// doan nhan
if (rx_counter>=4)
{

truyen=0;
nhan=1;
nhan0=getchar();
nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nt=nhan2;
PORTA=nt;
DDRA=0xFF;
PORTB=2;
rx_counter=0;
rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;
rx_buffer[5]=0;
rx_buffer[6]=0;
rx_buffer[7]=0;
UCSRB=0x00;

} // ket thuc nhan


PORTC=0;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:82

while (nhan==1) // su ly quet led nhan


{
int A[4],B,i2,j=0;

if (nhan0==8)
{
PORTB=0x01;
DDRB=0xff;
PORTA=127;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=1;
delay_ms(5);
}

if (nhan0==4)
{
PORTB=0x01;
DDRB=0xff;
PORTA=75;
delay_ms(5);
PORTB=0x02;
DDRB=0xff;
PORTA=1;
delay_ms(5);
}
if (nhan3==1)
{
PORTB=128;
delay_ms(5);
}
if (nhan3==2)
{
PORTB=64;
delay_ms(5);
}
if (nt>=100) // chuong trinh tinh gia tri nhan ve
{
A[0]=nt/100;
B=nt-A[0]*100;
A[1]=B/10;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:83

A[2]=B-A[1]*10;
i2=2;
}
if ((nt<100)&&(nt>=10))
{
A[0]=nt/10;
A[1]=nt-A[0]*10;
i2=1;
}
if (nt<10)
{
A[0]=nt;
i2=0;
}
// ket chuong trinh tinh gia tri nhan ve

for ( i=0; i<=i2;i++ )


{

if (A[i]==0)
{
chuso[j]=126;
j++;
}
if (A[i]==1)
{
chuso[j]=18;

j++;
}
if (A[i]==2)
{
chuso[j]=61;
j++;
}
if (A[i]==3)
{
chuso[j]=109;
j++;
}
if (A[i]==4)
{
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:84

chuso[j]=75;
j++;
}
if (A[i]==5)
{
chuso[j]=103;
j++;
}
if (A[i]==6)
{
chuso[j]=119;
j++;
}
if (A[i]==7)
{
chuso[j]=76;
j++;
}
if (A[i]==8)
{
chuso[j]=127;
j++;
}
if (A[i]==9)
{
chuso[j]=111;

j++;
}
}
if (j==0); // QUET chu so 0;
{
DDRB=0xFF;
PORTB=0x04;
DDRA=0xff;
PORTA=chuso[0];
delay_ms(5);
}
if (j==1); // Quet chu so 1
{
DDRB=0xFF;
PORTB=0x08;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:85

DDRA=0xff;
PORTA=chuso[1];
delay_ms(5);
}
if (j==2); // quet chu so thu 2
{
DDRB=0xFF;
PORTB=0x20;
DDRA=0xff;
PORTA=chuso[2];
delay_ms(5);
}
// quay lai tu dau (thoat)
PORTC=1;
ks=PINC;
if (ks==65)
{
nhan=0;
truyen=1;
chuso[0]=32;
chuso[1]=32;
chuso[2]=32;

}
}// while (nhan==1)
};
}

Traïm tôù 1 :

program was produced by the


CodeWizardAVR V1.24.7d Professional
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:86

Project :
Version :
Date : 6/7/2006
Author : F4CG
Company : F4CG
Comments:

Chip type : ATmega32


Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 512
*****************************************************/

#include <mega32.h>
#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)


#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer


#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:87

// This flag is set on USART Receiver buffer overflow


bit rx_buffer_overflow;

// USART Receiver interrupt service routine


interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART Transmitter buffer


#define TX_BUFFER_SIZE 8
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:88

char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif

// USART Transmitter interrupt service routine


interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif

// Standard Input/Output functions


#include <stdio.h>
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:89

// Declare your global variables here


unsigned char nhan1,nhan2,nhan3,nhan4,tr1,tr2,tr3,tr4;
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization


// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=1 State6=0 State5=0 State4=0 State3=1 State2=0 State1=0 State0=1
PORTA=0x89;
DDRA=0xFF;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0xFF;
DDRB=0xFF;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:90

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization


// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x00;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:91

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts


#asm("sei")

while (1)//tram dia chi 4


{
// Place your code here

delay_ms(10);
PORTB=0;
;
UCSRB=0x90;
UCSRB=0x90;
if (rx_counter>=4)
{
nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nhan4=getchar();
delay_ms(10);
UCSRB=0x00;

rx_counter=0;
rx_buffer[1]=0;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:92

rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;

if ((nhan1==4)&(nhan2==4))
{
PORTA=nhan3;
DDRA=0xff;
}
if ((nhan1==4)&(nhan2==8))
{
UCSRB=0x00;
delay_ms(50);
PORTB=1;
delay_ms(50);
// dl100
tr1=4;
tr2=255;
tr3=PINA;
tr4=55;
UCSRB=0x48;
putchar(tr1);
putchar(tr2);
putchar(tr3);
putchar(tr4);
delay_ms(10);
PORTB=0;
UCSRB=0x00;

}
};
Traïm tôù 2 :

This program was produced by the


CodeWizardAVR V1.24.7d Professional
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:93

Project :
Version :
Date : 6/3/2006
Author : F4CG
Company : F4CG
Comments:

Chip type : ATmega32


Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 512
*****************************************************/

#include <mega32.h>

#include <delay.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)


#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer


#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:94

#endif

// This flag is set on USART Receiver buffer overflow


bit rx_buffer_overflow;

// USART Receiver interrupt service routine


interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART Transmitter buffer


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:95

#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif

// USART Transmitter interrupt service routine


interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif

// Standard Input/Output functions


Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:96

#include <stdio.h>

// Declare your global variables here


unsigned char nhan1,nhan2,nhan3,nhan4,tr1,tr2,tr3,tr4;
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization


// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=1 State2=0 State1=0 State0=0
PORTA=0x03;
DDRA=0xFF;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x01;
DDRB=0xFF;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:97

OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization


// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:98

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts


#asm("sei")

while (1)// tram dc8


{
// Place your code here
delay_ms(10);
PORTB=0;
UCSRB=0x90;
UCSRB=0x90;
if (rx_counter>=4)
{

nhan1=getchar();
nhan2=getchar();
nhan3=getchar();
nhan4=getchar();
delay_ms(10);
UCSRB=0x00;

rx_counter=0;
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:99

rx_buffer[1]=0;
rx_buffer[2]=0;
rx_buffer[3]=0;
rx_buffer[4]=0;

if ((nhan1==8)&(nhan2==4))
{
PORTA=nhan3;
DDRA=0xff;
PORTC=nhan4;
DDRC=0xff;
}
if ((nhan1==8)&(nhan2==8))
{
UCSRB=0x00;
delay_ms(50);
PORTB=1;
delay_ms(50);
// dl100
tr1=8;
tr2=255;
tr3=PINA;
tr4=PINC;
UCSRB=0x48;
putchar(tr1);
putchar(tr2);
putchar(tr3);
putchar(tr4);
;
;
delay_ms(10);
PORTB=0;
UCSRB=0x00;

};
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:100

TÀI LIỆU THAM KHẢO


1: Mạng truyền thông công nghiệp.
Hoàng Minh Sơn - NXB KHKT 2001
2: Vẽ và thiết kế mạch in với ORCAD 9.0
KS Quang Huy-KS Nguyển Đức Hiệp
NXB Đà Nẵng 2002
3: Data sheet của hãng ATMEL
4: Một số tài liệu, tạp chí trên mạng INTERNET.
5: Vi điều khiển với AVR
Ngô Diên Tập
Nhà xuất bản khoa học và kỹ thuật.
Hà Nội - 2003
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:101

MỤC LỤC
Trang
Nhiệm vụ luận văn tốt nghiệp: ......................................................... 1
Lịch trình làm luận văn tốt nghiệp: ................................................... 2
Phiếu đánh giá:................................................................................. 3
Lời cảm ơn: ...................................................................................... 4
Giới thiệu đề tài: .............................................................................. 5
PHẦN I ....................................... 6
CƠ SỞ LÝ THUYẾT...................... 6
Chương I: CHẾ ĐỘ TRUYỀN DẪN: .................................................. 6
I: Truyền bít song song và truyền bít nối tiếp:........................................ 6
1: Truyền bít song song: ............................................................. 6
2: Truyền bít nối tiếp: ................................................................. 6
II: Truyền đồng bộ và không đồng bộ: ................................................... 6
III: Truyền 1 chiều 2 chiều toàn phần và gián đoạn: .............................. 7
IV: Truyền tải dải cơ sở truyền tải dải mang và truyền tải dải rộng: ...... 7
1: Truyền tải dải cơ sở : .............................................................. 7
2: Truyền tải dải mang: ............................................................... 8
3: Truyền tải dải rộng: ................................................................ 8
V: Câu trúc mạng bus: ........................................................................... 8
VI: Cấu trúc mạch vòng :..................................................................... 10
VII: Cấu trúc sao: ................................................................................ 12
VIII: Cấu trúc cây: ............................................................................... 13
IX: Kiến trúc giao thức: ....................................................................... 14
X: Giao thức ....................................................................................... 16
XI: Mô hình lớp:.................................................................................. 20
XII: Kiến trúc tiêu chuẩn OSI: ............................................................. 21
XIII: Phương pháp truy cập bus: .......................................................... 28
XIV: Phương pháp truy cập Master/Slaver: ......................................... 30
XV: Phương pháp TDMA: .................................................................. 34
XIV: Phöông phaùp token passing ................................................................. 35
Chương II: CHUẨN TRUYỀN DẪN ................................................. 38
I: Phương thức truyền dẫn tín hiệu: ...................................................... 38
II: Đặc điểm của các công nghệ truyền dẫn:......................................... 39
III: Chuẩn RS 232: .............................................................................. 40
IV: RS 422 A....................................................................................... 41
V: RS 485 ............................................................................................ 41
VI: Cách lắp đặt RS 485: ..................................................................... 43
VII: Topolgy của mạng RS 485: .......................................................... 45
VIII: Phương thức truyền thông: .......................................................... 46
IX: Truyền thông tuần tự: .................................................................... 47
Đề tài: NGHIÊN CỨU VÀ THIẾT KẾ MẠNG RS 485 Trang:102

Chương III: TỔNG QUAN AVRATMEGA32: ................................. 49


I: Giới thiệu: ........................................................................................ 49
II: Đặc điểm chung: ............................................................................. 49
III: Bộ nhớ dữ liệu và bộ nhớ chương trình: ........................................ 50
IV: Có nhiều thiết bị ngoại vi được tích hợp sẳn: ................................. 50
V: Những điểm đặc biệt:...................................................................... 50
VI: Số lượng I/O và dạng đóng gói: ..................................................... 51
VII: Nguồn cung cấp: .......................................................................... 51
VIII: Thạch anh dao động: ................................................................... 51
IX: Hổ trợ các trình biên dịch: ............................................................. 52
X: Mô tả các chân:............................................................................... 53
XI: Giao diện nối tiếp: ......................................................................... 55
XII: Tốc độ baud: ................................................................................ 56
XIII: Bộ biến đổi ADC bên trong chíp: ................................................ 58
PHẦN II ................................. 60
THIẾT KẾ VÀ THI CÔNG .............. 60
I: Mạch nguồn: .................................................................................... 60
II: Mạch hiển thị Led: .......................................................................... 61
III: IC MAX RS 485: ........................................................................... 61
IV: Maxter và Slaver: .......................................................................... 64
V: Trạm chủ: ...................................................................................... 65
VI: Khái quát về các trạm tớ: ............................................................... 68
VII: Trạm tớ 1: .................................................................................... 69
VIII: Trạm tôù 2: .................................................................................. 71
Chương trình viết cho các trạm: ........................................................ 74
Tài liệu tham khảo: ............................................................................ 104

You might also like