Tải bản đầy đủ (.doc) (70 trang)

CHUẨN TRUYỀN THÔNG RS485 VÀ ADAPTER CHUYỂN ĐỔI RS232 RS485

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (381.91 KB, 70 trang )

LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

CHƯƠNG II :

CHUẨNTRUYỀNTHÔNG RS485
VÀ ADAPTER CHUYỂN ĐỔI RS232
- RS485
I. Giới thiệu:
Những tổ chức tiêu chuẩn quốc tế chính cho
truyền thông là ITU ( International Communication Union) ,
EIA (Electronic Industry Association ) và ISO ( International
Standards Organisaton) . Những tiêu chuẩn của ITU liên
quan tới truyền thông nối tiếp được đònh nghóa trong
đặc điểm kỹ thuật của V-series . Sau đây là một số
chuẩn truyền thông thường dùng trong công nghiệp
 RS-232C
 RS-449 , RS-422A , RS-423A
 RS-485
II. RS-232c :
 Chuẩn RS-232C lần đầu tiên được giới thiệu vào
năm 1962 do hiệp hội kỹ thuật điện tử EIA như là
chuỗi giao tiếp truyền thong giữa máy tính và một
thiết bò ngoại vi ( modem , máy tính khác , máy vẽ ,
mouse …)
 Cổng giao tiếp RS-232C là giao diện phổ biến rộng
rãi nhất . Máy tính PC thường dùng chuột cho cổng
COM1 , COM2 để trống cho các ứng dụng khác .
Cùng với cổng máy in , cổng nối tiếp RS-232C được


sử dụng rất thuận tiện cho mục đích đo lường và
điều khiển .
 Việc truyền dữ liệu qua RS-232C được tiến hành theo
cách nối tiếp , nghóa là các bit dữ liệu được gửi
nối tiếp nhau trên một đường truyền dẫn . Trước
hết , vì loại truyền này có thể dùng cho những
khoảng cách lớn hơn do khả năng gây nhiễu nhỏ
đáng kể so với dùng cổng song song. Mặt khác ,
việc dùng cổng song song có một nhược điểm đáng
kể là cáp truyền dùng quá nhiều sợi và vì vậy
làm tăng chi phí . Hơn nữa , tín hiệu nằm trong
khoảng 0-5V không thích hợp với khoảng cách lớn.
 Tốc độ baud thông thường có giá trò : 300, 1200 ,
4800 , 9600 , 19200 baud
SVTH : PHẠM NGỌC CƯỜNG
31


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

9 chân 25 chân
Chức năng
1
8
DCD – Data Carrier Detect (ngõ và
2
3

RXD – Receive Data ( ngõ vào)
3
2
TXD – Transmit Data( ngõ ra)
4
20
DTR – Data Terminal Ready ( ngõ ra
5
7
GND – Ground ( nối đất)
6
6
DSR – Data Set Ready ( ngõ vào
7
4
RTS – Request To Send ( ngõ ra)
8
5
CTS – Clear To Send ( ngõ vào)
9
22
RI – Ring Indicator ( ngõ ra)
Bảng 1.1 Sắp xếp chân của cổng nối tiếp ở
máy tính
 Mức tín hiệu nhận và truyền qua chân RXD và TXD
thông thường nằm trong khoảng –12V đến +12V ,
mức logic tín hiệu được đảo ngược lại .Mức điện áp
đối với mức High nằm giữa –3V và –12V , mức Low
nằm giữa +3V và +12V
 Ở trạng thái tónh trên đường vẫn có điện áp –

12V , một bít khởi động ( startbit) sẽ mở đầu cho việc
truyền dữ liệu , tiếp sau đó là đến các bit dữ liệu ;
trong đó các bit có giá trò thấp được gửi trước tiên .
Số các bit dữ liệu thay đổi giữa 5 và 8 . Cuối cùng
là một bit dừng ( stop bit) đặt lại trạng thái lối ra (
-12V).
 Một trong những yêu cầu quan trọng của RS-232 là
thời gian chuyển từ mức logic này tới một mức logic
khác không vượt quá 4% thời gian 1 bit . Vì thế , ở
tốc độ 19200 baud , thời gian chuyển mức logic phải
nhỏ hơn 0.04/19200=2,1s. Vấn đề này làm giới hạn
chiều dài đường truyền . Với tốc độ truyền 19200
baud ta có thể truyền xa nhất là 50ft ( khoảng 15m).
 Một trong những vấn đề quan trọng cần chú ý khi
sử dụng RS-232C là mạch thu phát không cân bằng
( đơn cực ). Điều này có nghóa là tín hiệu vào ra
SVTH : PHẠM NGỌC CƯỜNG
32


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

được so với đất. Vì vậy , nếu điện thế tại hai điểm
đất của hai mạch thu phát không bằng nhau thì sẽ
có dòng điện chạy trên trên dây đất. Kết quả là
sẽ có áp rơi trên dây đất ( V=I.R) sẽ làm suy yếu
tín hiệu logic.

 Nếu truyền tín hiệu đi xa , điện trở R sẽ tăng dẫn
đến áp rơi trên đất sẽ lớn dần đến lúc tín hiệu
logic sẽ rơi vào vùng không xác đònh và mạch thu
sẽ không đúng dữ liệu được truyền từ mạch phát.
Chính sự không cân bằng trên mạch thu phát là một
trong những nguyên nhân giới hạn đường truyền.

III. RS-422/485 :
Khi thực hiện thông tin ở tốc độ cao , hoặc qua
một khoảng cách lớn trong môi trường thực , phương
pháp đơn cực (single-ended) thường không thích hợp .
Việc truyền dẫn dữ liệu vi sai ( hay tín hiệu vi sai cân
bằng) cho kết quả tốt hơn trong phần lớn trường hợp .
Tín hiệu vi sai có thể loại bỏ ảnh hưởng do sự thay
đổi trong việc nối đất và giảm nhiễu có thể xuất
hiện như điện áp chung trên mạng
RS422 được thiết kế dùng cho khoảng cách và
tốc độ Baud rates lớn hơn so với RS232 , mức tín hiệu
có thể lên đến 100K bít/giây và khoảng cách có
thể đạt 4000ft. RS422 cũng có thể tạo thành mạng
multi-drop network với một bộ truyền và khoảng 10 bộ
nhận
Tuy nhiên , một mạng multi-network thực sự gồm
nhiều mạch phát và nhận cùng nối vào một đường
dây bus chung , mỗi node đều có thể phát và nhận
SVTH : PHẠM NGỌC CƯỜNG
33


LUẬN VĂN TỐT NGHIỆP

NGHĨA

GVHD : NGUYỄN CHÍ

data. RS485 đáp ứng các yêu cầu này. Chuẩn RS485
cho phép 32 mạch truyền và mạch nhận cùng nối
vào đường dây bus đơn (với bộ repeater tự động và
các bộ truyền / nhận trở kháng cao, giới hạn này có
thể mở rộng lên đến hàng trăm node trên một
mạng). Bên cạnh đó , RS485 còn có thể chòu được
các xung đột data(data collision) và các điều kiện lỗi
trên đường dây bus.
Để giải quyết vấn đề xung đột data thường xuất
hiện trên mạng multi-drop network , các đơn vò phần
cứng( converters, repeaters , micro-processor controls )
được thiết kế để luôn duy trì ở trạng thái nhận cho
đến khi chúng đã sẵn sàng truyền data. Một node
master sẽ kích khởi một yêu cầu truyền đến một
slave node bằng cách đònh đòa chỉ node đó. Phần cứng
phát hiện bit start của ký tự được truyền và tự động
cho phép bộ truyền làm việc. Sau khi một ký tự được
truyền , phần cứng sẽ trở về trạng thái nhận sau
một vài micro giây. Khi có ký tự mới cần gửi , bộ
truyền sẽ tự động được kích lại. Như vậy , một slave
node được đònh đòa chỉ có thể đáp ứng ngay lập tức
mà không cần thực hiện một khoảng delay dài để
tránh xung đột .
Những ưu điểm của RS485 so với RS232 :
 Chi phí thấp . Bộ truyền và bộ nhận thường không
quá đắt và chỉ đòi hỏi một nguồn đơn +5V ( hoặc

thấp hơn) để tạo ra mức áp tối thiểu là 1,5V tại
ngõ ra vi sai. Ngược lại , ngõ ra tối thiểu của RS232
là 5V cần một nguồn cung cấp kép hoặc một chip
có chi phí đáng kể để tạo ra các nguồn này.
 Khả năng nối mạng . Thay vì giới hạn ở 2 đơn vò ,
RS485 là giao diện có thể cung cấp cho việc kết nối
có nhiều bộ truyền và nhận .Với bộ nhận có trở
kháng cao , RS485 có thể cho kết nối lên đến 256
node.
 Đường dây kết nối dài. Một mạng RS485 có thể
dài đến 4000 feet so với RS232 có giới hạn từ 50
đến 100 feet.
 Tốc độ nhanh. RS485 có thể cho tốc độ lên đến
10 Megabits/giây.

SVTH : PHẠM NGỌC CƯỜNG
34


LUẬN VĂN TỐT NGHIỆP
NGHĨA

SVTH : PHẠM NGỌC CƯỜNG
35

GVHD : NGUYỄN CHÍ


LUẬN VĂN TỐT NGHIỆP
NGHĨA


GVHD : NGUYỄN CHÍ

IV. Full Duplex :
Giao diện RS485 được thiết kế để sử dụng trong
hệ thống có nhiều node , với một hoặc nhiều bộ
truyền hoặc nhận . Phần lớn các kết nối RS485 đều
là bán song công , trong đó bộ truyền và nhận dùng
chung một đường tín hiệu. Tuy nhiên , ta cũng có thể
dùng RS485 dưới dạng song công , mỗi hướng truyền
dùng một đường tín hiệu riêng. Đây là giải pháp đơn
giản khi ta muốn tạo một kết nối dài , song công
giữa các microcontrollers. Các chip dùng cho RS485
cũng nhỏ hơn , đơn giản hơn và rẻ hơn so với RS232.
Thuận lợi của cách kết nối này là nó tiết kiệm
thời gian cho các slave ( bộ nhận) vì chúng không
phải đọc tín hiệu trả lời ( master) từ các slave được
hỏi. Tuy nhiên , nếu dùng đường dây dài , chi phí sẽ
tăng đáng kể.
V. Half Duplex :
Nhiều liên kết RS485 ở dạng bán song công ,
với nhiều bộ nhận và truyền dùng chung một đường
tín hiệu. Khi một liên kết có 3 node hoặc nhiều hơn, ta
chú ý rằng chỉ có một đường tín hiệu và chỉ có
một node được truyền tại mỗi thời điểm. Do đó cần
bảo đảm đường truyền đang ở trạng thái free khi một
node muốn truyền.
* Mạch bảo vệ bên trong :
Trong kết nối bán song công , chỉ có một bộ
truyền được cho phép tại một thời điểm nhưng cho dù

được thiết kế cẩn thận đến đâu , vẫn có thể có
trường hợp tại một thời điểm nào đó hai hoặc nhiều
bộ truyền đều được enable cùng một lúc. Khi điều
này xảy ra, nếu các driver kéo đường dây theo các
trạng thái ngược nhau , tín hiệu trên đường dây sẽ ở
mức logic không xác đònh , hiện tượng này gọi là sự
tranh chấp trên đường dây (line contention)
Tất cả các chip RS485 đều có giới hạn dòng
(curent limiting) và tự động shutdown do quá nhiệt
(thermal shutdown) để bảo vệ chip nếu có nhiều hơn
một bộ nhận được cho phép cùng lúc. Giới hạn dòng
hạn chế dòng ra của bộ truyền. Theo chuẩn TIA/EIA485 mức giới hạn này phải dưới 250mA. Nếu ngõ ra
output tiếp tục đưa ra dòng cao , nhiệt độ của chip sẽ
SVTH : PHẠM NGỌC CƯỜNG
36


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

tăng lên và cuối cùng mạch bảo vệ quá nhiệt bên
trong chip sẽ chuyển ngõ ra sang trạng thái trở kháng
cao( high-impedance state). Điều này cũng đồng nghóa
với việc ngõ ra sẽ không thể sử dụng cho tới khi nó
được hạ nhiệt , nhưng bảo đảm linh kiện sẽ không bò
hư.

VI. Các Phương Pháp Truyền Thông

 Đơn công ( Simplex Communication) : truyền thông
một chiều. Dữ liệu chỉ có thể truyền đi theo một
chiều từ thiết bò này sang thiết bò khác mà không
có chiều ngược lại(hình 1.2).
 Bán song công ( Half Duplex Communication ) : tại một
thời điểm chỉ có một node truyền và một node
nhận . Cho phép truyền hai chiều(hình 1.3).
 Song công ( Full Duplex Communication ) : cho phép
truyền dữ liệ đồng thời giữa hai thiết bò(hình 1.4).
Chuẩn RS-232C được đònh nghóa là một chuẩn giao
tiếp giữa một DTE ( Device Terminal Equipment – thường
là computer) và một DCE ( Device Communication
Equipment – các thiết bò ngoại vi) với khoảng cách
truyền tối đa là 50ft ( khoảng 15m ) và tốc độ tối đa
là 20kps.

SVTH : PHẠM NGỌC CƯỜNG
37


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

Chương III :

BUS I2C
I. Hoạt Động Của Bus I2C :
Bus I2C (viết tắt từ Inter-Ic-Bus) là một mối liên

kết dữ liệu 2 dây giữa một hoặc nhiều bộ xử lý
(Master) và những khối ngoại vi cụ thể (slave).Tất cả
các vi mạch đều liên kết trực tiếp với bus và được
trao đổi dưới đòa chỉ của từng vi mạch. Các đòa chỉ
và dữ liệu được truyền trên chính các đường dẫn.
Bus I2C cho phép hình thành một mối liên kết đơn giản
giữa nhiều vi mạch và cho phép dễ dàngù mở rộng
thêm.
Tất cả các vi mạch tham gia bus, khống chế giao
thức theo một cách riêng . Bên cạnh các bộ nhớ
RAM, EEPROM, các vi mạch mở rộng cổng, các bộ
biến dổi A/D và D/A cũng như các vi mạch đồng hồ
còn có nhiều vi mạch chuyên dụng, chẳng hạn bộ
đệm hiển thò hoặc các vi mạch dùng trong kỹ thuật
truyền hình . Tất cả các vi mạch này đều có thểû
điều khiển dễ dàng và trực tiếp qua hai đường dẫn
của dao diện song song với máy tính PC. Chỉ cần bổ
sung thêm rất ít các vi mạch, cổng nối tiếp cũng có
thể được sử dụng.
II . Truyền Dữ Liệu và Đònh Đòa Chỉ :
Bus I2C sử dụng 2 đường dẫn:
 Đường dẫn dữ liệu nối tiếp SDA
 Đøng dẫn giữ nhòp SCL
Giống như ở thanh ghi dòch, dữ liệu và đòa chỉ
được truyền cùng theo một nhòp .Cả hai đường dẫn
đều có thể được sử dụng theo từng hướng dữ liệu.
Mỗi đường dẫn đều có một điện trở nối lên
SVTH : PHẠM NGỌC CƯỜNG
38



LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

nguồn(Pull-up) và có thể được mỗi thành viên kéo
xuống mức LOW qua các lối ra cực góp hở hoặc cực
máng hở. Thành viên bus không kích hoạt ở trạng
thái có điện trở cao, nhưng vẫn luôn giám sát các
tín hiệu truyền trên bus. Khi chỉ có một vi mạch chủ
được sử dụng, vi mạch này tự xuất ra tín hiệu giữ nhòp
để sủ dụng. Dữ liệu có thể đến từ vi mạch chủ
cũng như từ vi mạch tớ.
Giao thức bus I2C nhận biết một dẵy các tình
huống đẵ được đònh nghóa chính xác, các tình huống
này giới thiệu từng thành viên bus, để nhận dạng
chỗ bắt dầu và kết thúc của một cuộc truyền
cũng như cách đònh đòa chỉ có thể có của nó.
 Trạng thái yên tónh: SDA và SCL ở mức HIGH và do
vậy là không kích hoạt.
 Điều kiện bắt đầu( Start): SDA được vi mạch master
chuyển sang mức thấp, trong khi SCL giữ nguyên ở
mức HIGH.
 Điều kiện dừng (Stop) : SDA chuyển từ trạng thái LOW
sang HIGH, trong khi SCL giữ nguyên ở mức HIGH.
 Truyền dữ liệu : Mỗi bộ truyền xếp tám bít dữ liệu
lên đường dẫn dữ liệu SDA, bằng các xung giữ nhòp
các bít này được vi mạch chủ(master) đẩy tiếp lên
đường giữ nhòp SCL. Việc truyền dữ liệu bắt đầu với

bít có giá trò lớn nhất.
 Xác nhận (Acknowledge):Mỗi bộ nhận kết thúc qúa
trình nhận môït byte bằng một mức LOW ở đường dẫn
SDA, cho đến khi vi mạch chủ tạo ra xung đồng hồ thứ
chín ở đường dẫn SCL. Việc xác nhận đồng thời có
nghóa là một byte tiếp theo cần được nhận. Việc kết
thúc cuộc truyền theo mong muốn cần phải được báo
trước bằng việc không xuất hiện sự xác nhận. Sự
kết thúc thật sự của cuộc truyền được đạt tới bằng
điều kiện dừng(Stop).
Các đòa chỉ được truyền và kết thúc giống hệt
như dữ liệu. Trong trường hợp đơn giản nhất là cuộc
truyền dữ liệu từ vi mạch chủ tới một vi mạch
tớ(slave) chẳng hạn tới một cổng lối ra, các qúa
trình diễn ra sau: Vi mạch chủ (master) tạo ra diều kiện
bắt đầu và truyền đòa chỉ của vi mạch cổng vào
các bit 7 đến 1 và hướng mong muốn truyền dữ liệu
SVTH : PHẠM NGỌC CƯỜNG
39


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

vào bit 0, cụ thể là 0 đối với trường hợp "ghi" và 1
đối với trường hợp "đọc". Việc truyền đòa chỉ được
kết thúc bởi vi mạch tớ (slave) cần trao đổi. Sau đó vi
mạch chủ (master) gửi byte dữ liệu và cũng là để

kết thúc một qúa trình truyền. Vi mạch chủ có thể
chấm dứt mối liên kết bằng điều kiện Stop hoặc
gửi các byte tiếp theo tới chính các vi mạch ấy.
Các đòa chỉ chỉ vi mạch có độ dài 7 bit,trong đó
còn một bit hướng dữ liệu được truyền bổ sung sau
cùng. Thông thương các đòa chỉ vi mạch được qui đònh
để chỉ rõ loại trong 4 bit cao hơn và có thể được lựa
chọn tự do trong 3 bit thấp hơn (A0 - A2) bằng mạch điện
bên ngoài. Nhiều vi mạch cùng một loại cũng có thể
hoạt động trên cùng một bus. Tổng cộng có thể có
đến 128 vi mạch có thể được sử dụng trên cùng một
bus.
Đòa chỉ bus I2C với hướng dữ liệu
A6

A5

A4

A3

A2

A1

A0

R/W

Khi cần đọc dữ liệu từ một vi mạch tớ (slave), đòa

chỉ cần phải được truyền bằng bit hướng dữ liệu đẵ
được đặt. Vi mạch chủ xuất ra từng nhóm tám xung
đồng hồ và nhận được tám bit dữ liệu. Cho đến khi
nó xác nhận cuộc nhận dữ liệu bằng Acknowledge,
ở xung đồng hồ thú chín, vi mạch này có thể nhận
các byte tiếp theo.Cuối cùng, cuộc truyền được vi
mạch chủ kết thúc bằng việc không đưa ra tín hiệu
xác nhận (Nacknowledge ) và kèm theo là điều kiện
dừng.
Mỗi mạch I2C đều có một đòa chỉ đẵ được quy
đònh, đòa chỉ này một phần được quy đònh để đặc
trưng cho từng loại còn một phần khác được thay đổi
qua các đường dẫn đòa chỉ được dẫn ra ngoài. Điều
đó có nghóa là,chẳng hạn với ba đường đòa chỉ được
dẫn ra ngoài có tới tám vi mạch cùng loại có thể
được đấu nối vào bus.
Tốùc độ giữ nhòp cực đại dùng cho bus I 2C bằng
100 KHz. Các chương trình được giới thiệu dưới đây sử
dụng thời gian chờ bằng 10ms, để tránh tình trạng vượt

SVTH : PHẠM NGỌC CƯỜNG
40


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

qúa tốc độ cưc đại khi cho chạy trên các máy tính

nhanh.
III. Bus I2C Dùng SEEPROM AT24C0X
Đây là 1 bộ nhớ cố đònh (permanent),có thể
được xoá và ghi bằng điện mà không cần cung cấp
điện áp làm việc phụ thêm.
 24C01
128 bytes
 24C02
256 bytes
 24C03
512 bytes
 24C04
1024 bytes
 24C08
2048 bytes
Các bộ nhớ SEEPROM có dung lượng nhỏ thường
được sử dụng để thiết lập các dữ liệu đònh chuẩn
hoặc một lương dữ liệu không đáng kể khác một
cách độc lập với nguồn cung cấp vào một hệ
thống. Các vi mạch này bảo đảm việc lưu trữ dữ
liệu được trên 10 năm. Một ưu điểm khác là việc
thiết kế mạch đơn giản,đồng nghóa với việc không
cần đến điện áp bổ sung dùng cho bộ nạp chương
trình,bởi vì một điện áp cao hơn đã được tạo ra ngay
trên chip.

SVTH : PHẠM NGỌC CƯỜNG
41



LUẬN VĂN TỐT NGHIỆP
NGHĨA

Vcc

7
3
2
1

AT24C02
WP

VCC

A2
A1
A0

SDA
SCLK
GND

GVHD : NGUYỄN CHÍ
39
38
37
36
35
34

33
32
1
2
3
4
5
6
7
8

8
5
6
4

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

19
18
9
31


P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
XTAL1
XTAL2
RST
EA/VPP
AT89C51

SVTH : PHẠM NGỌC CƯỜNG
42

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO

P3.5/T1
P3.6/WR
P3.7/RD
PSEN
ALE/P ROG

21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
29
30


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ


Viết AT24C0X : Xóa ghi EEPROM,max 2 bytes
S

Đòa chỉ
Slave

0

A

Đòa chỉ
bộ nhớ

Viết

A

Viết
byte 1

A

Viết
byte 2

A

S


Ack của Slave

Đọc AT24C0X :

S

Đòa chỉ
Slave

0

A

Đòa chỉ
bộ nhớ

Viết

Đọc byte
1

A

Đọc byte
2

A

S


Đòa chỉ
Slave

1

A

Ack của Slave

A

Ack của Master

Đọc byte
n

NACK

S

không có NACK

Khi đọc ra,sau đòa chỉ vi mạch,trước hết là đòa chỉ
byte của byte đầu tiên mong muốn phải được chỉ đònh
. Sau đó,điều kiện ngừng cần phải được xuất ra để
trao đổ với vi mạch theo hướng đọc ra. Trên đó nhiều
byte có thể đïc đọc ra một cách tùy ý. Một bộ
đệm đòa chỉ bên trong tự động tăng thêm một.
Khi lập trình (viết) cấn chú ý là sau đòa chỉ vi
mạch,đòa chỉ byte mong muốn cần được chuyển giao.

Sau đó,tiếp theo là byte dữ liệu cần được lập
trình.Cũng có thể xảy ra trường hợp hai byte được
truyền kế tiếp nhau. Khi đó,quá trình lập trình và xoá
thực tế bắt đầu ngay sau điều kiện ngừng.
SVTH : PHẠM NGỌC CƯỜNG
43


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

III. CHƯƠNG TRÌNH VIẾT EEPROM AT24C0X TỪ
PC :
1. Chương trình vi xử lí :
ORG 0000H
MEM1 EQU 30H
MEM2 EQU 31H
MEM19 EQU 50H
MEM20 EQU 51H
MAIN:
MOV SCON,#01010010B
CLR TR1
MOV TMOD,#21H
MOV TH1,# -3
SETB TR1
LOOP:
;Nhan tin hieu tu PC
ACALL INCHAR

CJNE A,#79,NEXT
;CT write a byte
ACALL INCHAR
MOV MEM1,A
; Address 24C02
ACALL INCHAR
MOV MEM2,A
; Data 24C02
ACALL VIETROM
;Delay thoi gian de nap Rom
ACALL DELAY100MS
;Goi CT con docrom
NEXT:
CJNE A,#79,LOOP
;CT Read a byte
;Khai bao cac CT con
ACALL INCHAR
SVTH : PHẠM NGỌC CƯỜNG
44


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

MOV MEM1,A
; Address 24C02
ACALL DOCROM
;Phat len PC gia tri rom doc duoc

ACALL OUTCHAR
;Xuat ra P2 de kiem tra
MOV P2,A
SJMP LOOP
INCHAR:
JNB RI,$
CLR RI
MOV A,SBUF
RET
OUTCHAR:
JNB TI,$
CLR TI
MOV SBUF,A
RET
I2CINIT:
SETB P1.6 ;SDA = 1
SETB P1.7 ;SCL = 1
RET
I2CSTART:
CLR P1.6 ;SDA = 0
SETB P1.7 ;SCL = 1
CLR P1.7 ;SCL = 0
RET
I2CSTOP:
CLR P1.6 ;SDA = 0
CLR P1.7 ;SCL = 0
SETB P1.7
;SCL = 1
SETB P1.6
;SDA = 1

RET
ACK:
CLR P1.6 ;SDA = 0
CLR P1.7 ;SCL = 0
SETB P1.7
;SCL = 1
CLR P1.7 ;SCL = 0
NACK:
SETB P1.6
;SDA = 1
CLR P1.7 ;SCL = 0
SETB P1.7
;SCL = 1
CLR P1.7 ;SCL = 0
SVTH : PHẠM NGỌC CƯỜNG
45


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

RET
XUATRA:
MOV MEM20,A
;BO NHO TRUNG GIAN
MOV A,#8
MOV MEM19,A
;BO DEM DUNG CHO 8 BIT

LAP:
MOV A,MEM20
ANL A,#128
;CHE BIT 7
RR A
;SAU BIT 6 (SDA)
ADD A,#3FH
MOV P1,A
SETB P1.7
CLR P1.7
MOV A,MEM20
RL A
;BIT TIEP THEO
MOV MEM20,A
DJNZ MEM19,LAP
;BO DEM GIAM 1
SETB P1.6
CLR P1.7
SETB P1.6
SETB P1.7
CLR P1.7
RET
DOCVAO:
SETB P1.6
;SDA = 1
CLR P1.7
;SCL = 0
MOV MEM20,#0
MOV MEM19,#8
LAP1:

SETB P1.7
;SCL = 1
MOV A,MEM20
RL A
MOV B,A
MOV A,P1
ANL A,#64
;DOC SDA
SVTH : PHẠM NGỌC CƯỜNG
46


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

RL A
RL A
;BIT 0
ADD A,B
MOV MEM20,A
;LUU TRU
CLR P1.7
;SCL = 0
DJNZ MEM19,LAP1 ;8 LAN
RET
VIETROM:
ACALL I2CSTART
MOV A,#10100000B

ACALL XUATRA
MOV A,#0
ACALL XUATRA
MOV A,MEM2
ACALL XUATRA
ACALL I2CSTOP
ACALL DELAY100MS
RET
DOCROM:
ACALL I2CSTART
MOV A,#10100000B
;DIA CHI AT24C02,VIET
ACALL XUATRA
MOV A,#0
;DIA CHI BAT DAU 0
ACALL XUATRA
ACALL I2CSTOP
ACALL I2CSTART
MOV A,#10100001B
;DIA CHI AT24C02,DOC
ACALL XUATRA
ACALL DOCVAO
ACALL NACK
ACALL I2CSTOP
RET
DELAY100MS:
PUSH B
MOV B,#2
LAP2:
MOV TL0,#LOW(-50000)

MOV TH0,#HIGH(-50000)
SVTH : PHẠM NGỌC CƯỜNG
47


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ B,LAP2
POP B
RET
END
2. Chương trình Visual Basic :
Dim
Dim
Dim
Dim
Dim
Dim

Dataout(0) As Byte
Datain() As Byte
Transfer As Byte
Timeout As Boolean

str As String
Buffer As Variant

Private Sub CmdRead_Click()
'Phat tin hieu read a byte
Dataout(0) = 80
Buffer = Dataout()
MSComm1.Output = Buffer
MSComm1.InBufferCount = 0
'Truyen dia chi
str = Text2.Text
Transfer = Val(str)
Dataout(0) = Transfer
Buffer = Dataout()
MSComm1.Output = Buffer
MSComm1.InBufferCount = 0
tmrError.Enabled = True
Timeout = False
Do
DoEvents
Loop Until MSComm1.InBufferCount = 1 Or Timeout
= True
If Timeout = False Then
Buffer = MSComm1.Input
Datain() = Buffer
Text3.Text = Datain(0)
SVTH : PHẠM NGỌC CƯỜNG
48



LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

Text4.Text = "Data read successfully !"
Else
Text4.Text = "Not response from 89C51"
End If
End Sub
Private Sub cmdWrite_Click()
'Phat tin hieu write a byte
Dataout(0) = 79
Buffer = Dataout()
MSComm1.Output = Buffer
MSComm1.InBufferCount = 0
''Truyen dia chi
str = Text2.Text
Transfer = Val(str)
Dataout(0) = Transfer
Buffer = Dataout()
MSComm1.Output = Buffer
MSComm1.InBufferCount = 0
'Truyen data
str = Text1.Text
Transfer = Val(str)
Dataout(0) = Transfer
Buffer = Dataout()
MSComm1.Output = Buffer
MSComm1.InBufferCount = 0

tmrError.Enabled = True
Timeout = False
Text4.Text = "Data and Address are transfering"
Do
DoEvents
Loop Until MSComm1.InBufferCount = 1 Or
Timeout = True
If Timeout = False Then
Buffer = MSComm1.Input
Datain() = Buffer
If Datain(0) = Val(Text1.Text) Then
Text4.Text = "Data writed successfully !"
Else
Text4.Text = "Data Error"
End If
SVTH : PHẠM NGỌC CƯỜNG
49


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

Else
Text4.Text = "Not response from 89C51"
End If
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"

MSComm1.CommPort = 2
MSComm1.InputLen = 0
tmrError.Interval = 2000
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub tmrError_Timer()
tmrError.Enabled = False
Timeout = True
End Sub

Chương IV :

GIỚI THIỆU DÂY CHUYỀN SẢN
XUẤT
I.Yêu Cầu Của Công Việc Đối Với Dây
Chuyền Sản Xuất :
 Sản phẩm sau khi qua giai đoạn cơ bản,nó phải
qua các công đoạn phụ. Sau khi làm đã đủ các công
đoạn phụ này,nó sẽ trở thành sản phẩm hoàn
chỉnh để đưa đến người tiêu dùng. Các công đoạn
phụ này có đặc điểm là chúng không phụ thuộc
vào nhau,công đoạn này có thể làm trước hoặc làm
sau bất kỳ công đoạn nào,không cần theo thứ tự.
Trong dây chuyền sản xuất này có công đoạn cuối
SVTH : PHẠM NGỌC CƯỜNG
50



LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

cùng để lấy sản phẩm hoàn chỉnh đã làm đủ các
công đoạn phụ ra khỏi dây chuyền đồng thời cho
phép đưa sản phẩm mới vào (sản phẩm chưa làm
công đoạn phụ nào)
 Mục đích sau cùng là làm sao phân bố đều
công việc đến các công đoạn phụ,tại mỗi thời điểm
ở các công đoạn đều có sản phẩm để làm. Khi đó
dây chuyền sản xuất sẽ đạt năng suất và hiệu quả
cao nhất.
* Em cũng xin giới thiệu dây chuyền sản xuất
đang được ứng dụng tại xí nghiệp may Việt Tiến. Sản
phẩm ở đây là áo quần các loại. Các công đoạn
phụ bao gồm: vào cổ,đơm nút,may túi,may cánh tay...
II.Dây Chuyền Sản Xuất:
 Dây chền sản xuất ở đây có băng tải
chuyển động tròn đều với vận tốc không đổi ( vận
tốc của băng tải tương đối thấp khoảng10cm/s). Sau
khi chuyển động được một vòng, nó sẽ trở về vò trí
ban đầu.
 Băng tải ở đây có nhiệm vụ chuyển động
để đưa các sản phẩm sau khi đã hoàn thành bất kỳ
công đoạn nào hoặc đưa sản phẩm mới vào dây
chuyền sản xuất.
 Vấn đề đặt ra là quản lý số sản phẩm có

trên băng tải, đồng thời biết được các sản phẩm
đó đã làm công đoạn nào và chưa làm công doạn
nào. Từ đó cho phép điều khiển vào,ra tại các vò trí
vào ra của các công đoạn.
 Do đó cấu tạo của băng tải sẽ gồm một số
rãnh cố đònh ( ký hiệu là n, n = const, n có thể lên
đến hàng ngàn). Mỗi rãnh của băng tải có hai trạng
thái: chứa một bánh xe dùng để treo sản phẩm
hoặc trống ( không có sản phẩm).
 Băng tải có thể cho phép các bánh xe( dùng
để treo sản phẩm) vào hoặc ra tại các vò trí cho phép
vào ra của các công đoạn. Khi có tín hiệu điều khiển
vào thì ngay lập tức băng tải sẽ đẩy bánh xe ra khỏi
dây chuyền, đồng thời khi có tín hiệu điều khiển ra
thì băng tải sẽ cho phép bánh xe chứa sản phẩm đã
làm xong công đoạn nào đó đang chờ vào dây
chuyền tức thì.
SVTH : PHẠM NGỌC CƯỜNG
51


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ


1



2
4

11

5
6
10

1

9
7

2


4


3

3

8

Hình : Dây Chuyền Sản Xuất
1. Băng chuyền chính

4. Truyền động chính


2. Băng chuyền rẽ nhánh

5. Thiết bò rẽ nhánh
phụ
6. Thiết bò nhận dạng

3. Bàn làm việc

7. Tủ điều khiển băng chuyền chính
chính truyền động.
8. Tủ điều khiển băng chuyền rẽ nhánh
phẩm chờ
9. Cột trung gian

SVTH : PHẠM NGỌC CƯỜNG
52

10. Cột
11. Sản


LUẬN VĂN TỐT NGHIỆP
NGHĨA

Sp

GVHD : NGUYỄN CHÍ

Sp

Sp

Mặt cắt ngang Băng Chuyền
làm việc

Cột trung gian

Bàn

Cột

truyền động chính
III.Cách Nhận Biết Các Bánh Xe (các sản
phẩm):

SVTH : PHẠM NGỌC CƯỜNG
53


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

Vấn đề đặt ra làm thế nào để nhận biết được
các bánh xe khi chúng vào và ra khỏi băng tải của
dây chuyền không theo một thứ tự, quy đònh nào. Do
đó để nhận biết các bánh xe ta sẽ gắn một con
SEEPROM (AT24C0X). Mỗi một con AT24C0X sẽ được nạp
một giá trò cố đònh ( mã ROM).

VÍ DỤ: giả sử băng tải của dây chuyền có 1000
rãnh thì ta sẽ dùng 1000 con ROM gắn trên 1000 bánh
xe. Vì vậy để phân biệt được bánh xe (sản phẩm)
này thì các con SEEPROM sẽ được nạp các giá trò từ 1
đến 1000 (2 bytes).
IV. Đọc Dữ Liệu Từ Serial EEPROM :
 Như ta đã giới thiệu ở phần bus I2C để đọc dữ
liệu từ SEEPROM tại mỗi công đoạn ta sẽ dùng 1 con
VXL AT89C51
 Nếu dây chuyền sản xuất có n công đoạn ,ta
sẽ dùng (n+1) con VXL .Con VXL sau cùng dùng cho việc
lấy sản phẩm đã làm xong n công đoạn ra và đưa
sản phẩm mới vào.
V. Điều Khiển Vào và Điều Khiển Ra :
 Tại mỗi công đoạn sẽ có 2 vò trí đặc biệt :
 Vò trí cho phép vào (MEMIN) : Cho phép bánh
xe chứa sản phẩm rẽ vào băng chuyền rẽ nhánh để
làm.
 Vò trí cho phép ra (MEMOUT) : Cho phép bánh
xe chứa sản phẩm làm xong đang chờ chạy vào băng
chuyền chính.
 Các vò trí MEMIN & MEMOUT của cùng 1 công
đoạn và giữa các công đoạn sẽ cách nhau 1 khoảng
cách cố đònh do cấu tạo cơ khí và cách bố trí các
công đoạn của dây chuyền sản xuất.
 Điều khiển vào : điều kiện
 MEMIN # 0 : có bánh xe (sản phẩm).
 Không có tín hiệu báo đầøy từ công đoạn
đang xét
Điều khiển ra : điều kiện

 MEMOUT # 0 :không có sản phẩm.
 Có sản phẩm làm xong đang chờ
Ghi chú : Khi có sản phẩm làm xong đang
chờ cho ra để vào băng tải. Khi có tín hiệu Điều
SVTH : PHẠM NGỌC CƯỜNG
54


LUẬN VĂN TỐT NGHIỆP
NGHĨA

GVHD : NGUYỄN CHÍ

Khiển ra thì bánh xe ( AT24C02 ) sẽ được cấp nguồn và
2 chân SDA và SCL tiếp xúc P1.6 và P1.7 , VXL sẽ đọc
được dữ liệu từ AT24C02 được cấp nguồn và phát
lên PC.
VI. Sơ Đồ Nguyên Lý Điều Khiển :

PC

VXL1

ĐK
Vào&R
a

Đọc
EEPROM


VXL2

ĐK
Vào&R
a

Đọc
EEPROM

SVTH : PHẠM NGỌC CƯỜNG
55

VXL n

ĐK
Vào&R
a

VXL
n+1

Đọc
EEPROM

ĐK
Vào&R
a

Đọc
EEPROM



×