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

ứng dụng mạng vi xử lí điều khiển dây chuyền sản xuất

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 (347.4 KB, 73 trang )

LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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 GVHD : NGUYỄN CHÍ NGHĨA
9 chân 25 chân Chức năng
1 8 DCD – Data Carrier Detect (ngõ vào)
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 đượ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.
SVTH : PHẠM NGỌC CƯỜNG 32
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA

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 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
SVTH : PHẠM NGỌC CƯỜNG 33
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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 GVHD : NGUYỄN CHÍ NGHĨA
SVTH : PHẠM NGỌC CƯỜNG 35
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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/EIA-485 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ẽ 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ư.
SVTH : PHẠM NGỌC CƯỜNG 36
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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 GVHD : NGUYỄN CHÍ NGHĨA
Chương III :
BUS I
2
C
I. Hoạt Động Của Bus I
2
C :
Bus I
2
C (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 I
2
C 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 I
2
C 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 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 I
2

C 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ó.
SVTH : PHẠM NGỌC CƯỜNG 38
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
 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 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 (A
0
- A
2
) 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 I
2
C với hướng dữ liệu

SVTH : PHẠM NGỌC CƯỜNG 39
A6 A5 A4 A3 A2 A1 A0 R/W
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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 I
2
C đề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
2
C 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 qúa tốc độ cưc đại khi cho chạy trên các máy tính nhanh.
III. Bus I
2
C 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 40
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
Vcc
AT24C0 2
1

2
3
4
5
6
7 8
A0
A1
A2
GND
SDA
SCLK
WP VCC
AT 8 9 C51
9
18
19 29
30
31
1
2
3
4
5
6
7
8
21
22
23

24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XT AL2
XT AL1 PSEN
ALE/PROG
EA /VPP
P1.0
P1.1
P1.2
P1.3

P1.4
P1.5
P1.6
P1.7
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/T XD
P3.2/INT O
P3.3/INT 1
P3.4/TO
P3.5/T 1
P3.6 /WR
P3.7/RD
P0 .0 /AD0
P0 .1/AD1
P0 .2/AD2
P0 .3/AD3
P0 .4/AD4
P0 .5/AD5
P0 .6 /AD6
P0 .7/AD7
SVTH : PHẠM NGỌC CƯỜNG 41
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA

Viết AT24C0X : Xóa ghi EEPROM,max 2 bytes
Viết Ack của Slave
Đọc AT24C0X :
Viết Ack của Slave
Ack của Master 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
SVTH : PHẠM NGỌC CƯỜNG 42
S Đòa chỉ Slave 0 A òa chỉ bộ nhớ Viết byte 1 A Viết byte 2 A S
S Đòa chỉ Slave 0
A
òa chỉ bộ nhớ A
Đọc byte 1 A
S
Đòa chỉ Slave 1
Đọc byte 2 A Đọc byte n NACK S
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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.
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
SVTH : PHẠM NGỌC CƯỜNG 43
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
;Goi CT con docrom
NEXT:
CJNE A,#79,LOOP
;CT Read a byte
;Khai bao cac CT con
ACALL INCHAR
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
SVTH : PHẠM NGỌC CƯỜNG 44

LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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
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
SVTH : PHẠM NGỌC CƯỜNG 45
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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
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
SVTH : PHẠM NGỌC CƯỜNG 46
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
;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)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ B,LAP2
POP B
RET
END
2. Chương trình Visual Basic :
Dim Dataout(0) As Byte
Dim Datain() As Byte
Dim Transfer As Byte
Dim Timeout As Boolean
Dim str As String
Dim Buffer As Variant
Private Sub CmdRead_Click()
'Phat tin hieu read a byte
SVTH : PHẠM NGỌC CƯỜNG 47
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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)
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()
SVTH : PHẠM NGỌC CƯỜNG 48
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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

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
SVTH : PHẠM NGỌC CƯỜNG 49
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
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 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.
SVTH : PHẠM NGỌC CƯỜNG 50
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
 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ì.
Hình : Dây Chuyền Sản Xuất

SVTH : PHẠM NGỌC CƯỜNG 51
10
1
2
3
6
9
7
8
5
4
CĐ1 CĐ2
CĐ4 CĐ3
11
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA

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ụ
3. Bàn làm việc 6. Thiết bò nhận dạng

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


Sp Sp

Sp
Mặt cắt ngang Băng Chuyền Bàn làm việc
SVTH : PHẠM NGỌC CƯỜNG 52
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
Cột trung gian 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):
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 I
2
C để đọc dữ liệu từ SEEPROM
tại mỗi công đoạn ta sẽ dùng 1 con VXL AT89C51
SVTH : PHẠM NGỌC CƯỜNG 53
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
 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 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 :
SVTH : PHẠM NGỌC CƯỜNG 54
PC
VXL1 VXL2 VXL n VXL n+1
ĐK
Vào&Ra
Đọc
EEPROM
ĐK
Vào&Ra
Đọc
EEPROM
ĐK
Vào&Ra
Đọc

EEPROM
ĐK
Vào&Ra
Đọc
EEPROM
LUẬN VĂN TỐT NGHIỆP GVHD : NGUYỄN CHÍ NGHĨA
 VXL 1 đến n : có nhiệm vụ
Nhận từ PC tín hiệu :
 Điều khiển vào
 Điều khiển ra
Phát PC tín hiệu :
 Báo bận tại các công đoạn
 Mã SEEPROM
 VXL (n+1) : có nhiệm vụ
Nhận từ PC tín hiệu :
 Điều khiển vào (sản phẩm đã làm đủ n công đoạn)
 Điều khiển ra (đưa sản phẩm mới vào)
Phát PC tín hiệu :
SVTH : PHẠM NGỌC CƯỜNG 55

×