Thực hiện ứng dụng nhúng này, chúng ta có thế biết nhiều hơn về Matlab và xử lý ảnh, vi xử lý, truyền thông giữa vi xử lý và Matlab, về động cơ bước, xây dựng mô hình cơ khí...Tóm lại ứn
Trang 1thuậttoán để Đưa rabức
ảnhnâng
imshow Hiến thị bức ảnh trên màn hìnhimrezise Thay đôi độ phân giải của hình ảnhim2bw Chuyển ảnh mức xám sang ảnh đen trắngimcomplement Hoán đổi bức ảnh trắng đen
bwmorph Làm mảnh biên của bức ảnh
Chương I TỔNG QUAN VỀ ĐỀ TÀI
1.1 Tầm quan trọng của đề tài
Động cơ bước và các ứng dụng liên quan đến động cơ bước ngày nay trở nênquá quen thuộc đổi với các sinh viên khối kỹ thuật, nhất là đối với những người đam mê
chế tạo máy móc, Robot Nguyên nhân là việc điều khiến chúng khá đơn giản tuynhiên mang lại một sự chính xác cao, vì vậy nên việc lựa chọn động cơ bước cho cácứng dụng trở nên phố biến Nhất là các ứng dụng có liên quan tới điều khiển vị trí Đốivới các máy móc phức tạp đòi hỏi sự chính xác của cả cơ khí và điện tử, mà cụ thế hơn
là các ứng dụng có liên quan đến động cơ, thì việc lựa chọn động cơ bước là một nhucầu thiết yếu Bên cạnh đó thì còn có động cơ Servo DC, tuy nhiên khuyết điểm lớnnhất của loại động cơ này là về khó điều khiến chính xác về mặt vị trí nhung về mặt tốc
độ và công suất thì hơn hẳn động cơ bước
Nhằm mục đích tìm hiếu và cũng giúp các bạn hiếu nhiều hơn về động cơ bước
và cách điều khiến chúng thông qua việc nhúng chúng vào một ứng dụng cụ thế có liênquan tới vị trí Chẳng hạn như sử dụng chúng trong máy in, máy photocopy, máyCNC và một ứng dụng thực tế nữa là “vẽ ảnh”, vì vậy chúng tôi đã lựu chọn đề tàithực hiện việc vẽ lại bức ảnh chụp được từ Webcam thông qua giao diện matlab và viđiều khiển Thực hiện ứng dụng nhúng này, chúng ta có thế biết nhiều hơn về Matlab và
xử lý ảnh, vi xử lý, truyền thông giữa vi xử lý và Matlab, về động cơ bước, xây dựng
mô hình cơ khí Tóm lại ứng dụng điều khiển động cơ bước thông qua một giao diệnđiều khiển từ máy tính vào các ứng dụng đòi hỏi độ chính xác cao của động cơ là một
đề tài cần phải được phát triển trong tương lai
1.2 Cơ sở lý luận
1.2.1 Đối tượng nghiên cứu
- Mạch điều khiến động cớ bước
- Truyền dữ liệu thông qua RS232 giữa vi xử lý và Matlab
- Các thuật toán xử lý ảnh trong matlab
1.2.2 Dàn ý nghiên cứu
- Lý thuyết về ảnh và xử lý ảnh trong Matlab
- Lý thuyết về động cơ bước
- Sơ lược về vi xử lý (P89V51 Rx2)
- Tóm tắt sơ lựơc về nguyên lý hoạt động của từng khối (nêu ra các khối, chứcnăng của từng khối )
- Cơ sở tính toán thiết kế
1.3 Phương pháp, phương tiện nghiên cúư
1.3.1 Phương pháp
Tìm hiếu về động cơ bước và cách điều khiển chúng, từ đó thiết kế sơ đồ khối Sau
đó thiết kế tùng khối thành sơ đồ mạch điện, cuối cùng ghép chúng lại thành sơ đồmạch điện cụ thế Khâu cuối cùng vẽ mạch in và thi công mạch
Đồng thời tìm hiểu xử lý ảnh trong matlab và phương pháp truyền dữ liệu qua lạigiữa matlab và vi xử lý đế có thể lập trình điều khiển
Ngoài ra còn phải lập trình vi xử lý đế có các tín hiệu điều khiến các bộ phận chấphành một cách chính xác và ổn định
1.3.2 Phương tiện
Thông qua các tài liệu nói về động cơ bước, các sách viết về truyền động điện, tựđộng khống chế truyền động điện, điện tử công suất, kỹ thuật xung, kỹ thuật số, lậptrình vi điều khiển 8051, lập trình matlab và quan trọng nhất là tài liệu về xử lý ảnhtrong matlab
Chương II Cơ SỞ LÝ THUYẾT
2.1 Ánh và xử lý ảnh trong Matĩab2.1.1 Ánh và thu nhận ảnh:
Thông qua các thiết bị ngoại vi thu nhận ảnh như Camera, Webcam màhình ảnh bên ngoài được số hoá, lưu trữ và hiển thị trên màn hình Một bức ảnhthu vào là tập hợp của 3 ma trận màu cơ bản (RGB) R:red; G:Green; B:Blue
Mứcxám của mồi màu tại một toạ độ của mỗi ma trận là khác nhau tạo nên những màu
khác nhau
Giá trị của mức xám của tòng màu có thế thay đối từ 0 đến 255 (ảnh 8 bit)
Vì vậy mà chúng ta có thể biếu diễn tất cả các màu chỉ thông qua 3 ma trận này
Ánh đen trắng là một ma trận ảnh 2 chiều, giá trị tại mỗi tọa độ chỉ có 2 mức 0 và
1 với 0:màu đen ; 1: màu trắng Neu như giá trị mức xám 0 -> 255 thì đây không
còn được gọi là ảnh trắng đen nữa mà được gọi là ảnh xám Mồi toạ độ của matrận này được gọi là 1 điếm ảnh (pixel)
Kích thước bức ảnh thu được được gọi là độ phân giải, độ phân giải nàycàng lớn nghĩa là kích thước bức ảnh càng lớn
Ví dụ: Một bức ảnh với độ phân giải 240x320 nghĩa là bức ảnh này có kích thước 240
điếm ảnh theo chiều dọc và 320 điếm ảnh theo chiều ngang
Chất lượng bức ảnh thu được tùy thuộc nhiều vào các thiết bị thu ảnh, giải thích
sai lệch lớn Vì vậy lựa chọn sử dụng một thiêt bị thu nhận ảnh có chât lượng ôn định làmột trong những bước quan trọng trong việc xử lý ảnh
2.1.2 Xử lý ảnh thu được qua Matlab:
thành chủ yếu dựa vào tổng hợp các tập lệnh của các ngôn ngữ khác nhưC,C++,VB Cấu trúc các hàm và tập lệnh khá đơn giản, dế hiếu, đặc biệt Matlab
hổ trợ mạnh công cụ Help, các ví dụ minh họa trực quan giúp người dùng có thể
Xử lý bức ảnh thu được phải thông qua các công việc sau:
Một vài hàm cơ bản trong công cụ xử lý ảnh của Matlab đế thực hiện các
công việc trên:
Trang 2KÝ
Như vậy ta đã có được một bức ảnh như mong muốn, công việc còn lại là
xử lý tọa độ của bức ảnh đế tạo ra các dữ liệu điều khiến cho thiết bị ngoại vi, các
dữ liệu này sẽ được gởi qua thiết bị thông qua chuấn giao tiếp RS232
Tóm lại nhóm đã chọn Matlab đế thực hiện đồ án có liên quan tới xử lýảnh Việc thu nhận và xử lý ảnh được diễn tả qua sơ đồ khối sau:
Thu nhận ảnh tĩnh thông
qua
Tiền xử lý ảnh bức ảnh thu
được(lộc nhiễu, làm trơn ảnh )
Xử lý toạ độ bức ảnh đổ đưa ra
các
dừ liệu điều khiến cho thiết bị
chấpHình 2.1.2.2 Sơ đồ thực hiện xử lý ảnh thu được
2.2 Matlab và truyền thông nối tiếp RS2322.2.1 GIỚI THIỆU PHƯƠNG THỨC TRUYỀN DỮ LIỆU NỐI TIẾP.Trong truyền dữ liệu nối tiếp, nơi gửi sẽ gửi từng bit dữ liệu nối tiếp nhau trên
một đường truyền Một liên kết nối tiếp chỉ có hai thiết bị thì phải có đường dẫndành cho mỗi chiều truyền hoặc là nó chỉ có một đường dẫn được chia sẻ bởi cảhai thiết bị với thoả thuận của hai thiết bị này Khi mà có nhiều hơn hai thiết bị, tất
cả các thiết bị này thường dùng chung một đường dẫn, thì giao thức mạng quyếtđịnh xem thiết bị nào có quyền truyền nhận dữ liệu
Việc truyền nhận dữ liệu được điều khiến bởi tín hiệu xung clock Nơi truyền
và nơi nhận dùng xung clock để quyết định khi nào gửi và khi nào nhận dữ liệu
Có hai dạng truyền dữ liệu: truyền đồng bộ và truyền bất đồng bộ, và mồi phươngthức truyền sử dụng các xung clock khác nhau
2.2.1.1 Truyền đồng bộ nối tiếp
Trong truyền đồng bộ nối tiếp, sự đồng bộ được thực hiện bởi một xung clock
được phát ra bởi một thiết bị hoặc từ một nguồn xung ngoài Xung clock có thể
dựa vào sự chuyển đối của xung( như tăng hoặc giảm của sường xung) Nơi nhậndùng sự chuyến đối xung đế quyết định khi nào đọc các bit truyền tới
Trong quá trình truyền chỉ truyền data, không cần thêm tín hiệu đồng bộ vào
chuỗi data nên tốc độ truyền nhanh Nhưng phải thêm kênh thứ hai để truyền tín
Hình 2.2.1.1- Sơ đò truyền đồng bộ nối tiếp.
2.2.1.2 Truyền bất đồng bộ nối tiếp
Trong truyền bất đồng bộ nổi, dữ liệu không bao gồm đường xung clock, bởi
vì mỗi điểm đầu cuối của liên kết đã có xung clock cho riêng từng thiết bị Mồithiết bị truyền nhận sẽ cần phải có cùng một tần số xung clock hoặc chỉ khác nhau
một vài % nhỏ Mỗi byte dữ liệu truyền đi bao gồm một bit Start đế đồng bộ xung
clock và một hoặc hai bit Stop là tín hiệu báo kết thúc việc truyền dữ liệu (Trongtrường hợp nếu nơi nhận đòi hỏi phải có một thời gian kiếm tra dữ liệu nhận đuợc,
nơi truyền sẽ kéo dài độ rộng của bít Stop ra nhiều bit, có thể là 1,5 hoặc 2).Việc truyền dữ liệu bất đồng bộ cho phép truyền ngẫu nhiên không cần truyềnliên tục Phải thêm vào trước mỗi kí tự' một bit START và phía sau 1 hoặc 2 bitSTOP nên tốc độ truyền chậm nhưng đơn giản và kinh tế hơn Tốc độ 75,110, -10V
Mark +10V
-Mức 1Start L
8 bit dữ liệu Pairlybít
Hình 2.2 ỉ.2 Sơ đồ truyền bất đồng bộ nổi tiếp.
2.2.2.2.2.2
GIAO TIẾP VỚI MÁY TÍNH BẰNG CỔNG NỐI TIẾP
Giới thiệu cổng COM
cổng nối tiếp có đặc tính hoạt động song công (thu và phát đồng thời), và bộđệm nhận (thu ) cho phép một kí tụ’ được nhận và giữ trong bộ đệm trong khi đó
kí tụ’ thứ hai được thu Neu CPU đọc kí tự’ thú' nhất trước khi kí tự’ thú’ hai được
nhận đầy đủ thì dữ liệu vẫn không bị mất
Việc truyền dữ liệu qua cống COM được tiến hành theo cách nối tiếp, nghĩa là
các bit dữ liệu được truyền đi nối tiếp nhau trên một đường dẫn Phương thứctruyền dữ liệu này có khả năng dùng cho những ứng dụng có yêu cầu truyền dữliệu trên khoảng cách lớn bởi vì các khả năng gây nhiễu là nhở hơn nhiều so vớiviệc truyền dữ liệu qua cổng song song
Cống COM không phải là một hệ thống bus cho phép dễ dàng tạo ra liên kếtdưới hình thức điểm với điếm giữa hai thiết bị cần trao đổi thông tin với nhau, một
thành viên thú’ ba không thế tham gia vào việc trao đối thông tin này
Các chân và đường dẫn được mô tả như sau:
Trang 3Việc truyền dữ liệu xảy ra trên hai đường dẫn Qua chân cắm TXD từ máy tính
gửi dữ liệu đến Kit Vi điều khiến(VĐK) ( Các thiết bị nhận), trong khi đó các dữliệu mà máy tính nhận được lại được gửi trên chân RXD các tín hiệu khác đóngvai trò như là tín hiệu hỗ trợ khi trao đổi thông tin vì thế không phải trong mọitrường hợp ta đều sử dụng hết các chân của nó
Trong thực tế người ta thường sử dụng cổng COM1 (DB9) cho việc truyền dữliệu nối tiếp, các cổng COM khác được dùng vào những ứng dụng khác nhau
Quá trình truyền nhận dữ liệu được thực hiện như sau:
❖
—’ Đầu dữ liệu sẵn sàng DTR: khi thiết bị đầu cuối (máy tính và VĐK) đượcbật thì sau khi tự kiểm tra nó gửi một tín hiệu DTR báo rằng nó sẵn sàng chotruyền thông Neu có trục trặc với cổng COM thì tín hiệu này không được kíchhoạt Đây là tín hiệu tích cực mức thấp và có thế được dùng đế báo cho Kit VĐK(modem) biết rằng máy tính đang hoạt động và đang sẵn sàng truyền thông
— Đầu dữ liệu sẵn sàng DSR: khi DCE( data communication equipment) được
bật lên và đã chạy xong chương trình tự kiểm tra thì nó đòi hỏi DSR đế báo rằng
đã sẵn sàng cho truyền thông Do vậy, nó là đầu ra của DCE và là đầu vào củaDTE Đây là tín hiệu tích cực mức thấp
—’ Yêu cầu gửi RTS: DTE sẽ gửi tín hiệu RTS đến DCE khi nó có một byte dữ
liệu cần gửi RTS là đầu ra tích cực mức thấp
—’ Tín hiệu xóa để gửi CTS: DCE sẽ gửi tín hiệu này đến DTE đế báo rằng nó
có thể nhận dữ liệu Tín hiệu đầu vào này tới DTE dùng đế khởi động việc truyền
dữ liệu
— Phát hiện tín hiệu mang dữ liệu DCD: Modem yêu cầu tín hiệu DCD báocho DTE biết rằng đã phát hiện tín hiệu mang dữ liệu hợp lệ và rằng kết nổi giữa
nó có thế nhận dữ liệu
❖ Tốc độ truyền: còn gọi là tốc độ Bau-rate, được xác định như tông số lần
thay đổi tín hiệu trong một giây Neu tín hiệu truyền đi là nhị phân thì tốc độtruyền tương ứng với số Bit truyền trong một giây Các kênh thông tin đượcđánh giá bằng tốc độ truyền Neu tín hiệu truyền đi ngoài khả năng của kênhtruyền sẽ xảy ra lỗi, bên thu sẽ nhận không đúng thông tin mà bên truyền gửi
❖ Thiết bị được sử dụng trong truyền thông nối tiếp:ƯART(Universal Asynchronous Receiver Transmitter)
UART là một phần không thể thiếu trong việc điều khiển truyền thông nối tiếp
Trang 4Hàm Chức năng
OOh Khởi tạo khối ghép nối tiếp
Olh Gửi một kí tự
02h Nhận một kí tụ’
03h Đọc trạng thái của khối ghép nối tiếp
04h Khởi tạo cống nối tiếp mở rộng
05h Điều khiển truyền thong của cổng nổi tiếp mở rộng
Khối ghcp nối Địa chỉ cơ sở Ngắt cứng IRQ
Một chiều khác, UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối
tiếp thành dạng dữ liệu song song cho CPU có thế đọc vào bus hệ
Fig 56 LPC2300 UARTO, 2 and 3 block diagram
Hình 2.2.2 ỉ.b - Sơ đồ khối của UART
Nhìn vào sơ đồ khối ta có thể thấy UART gồm có 4 bộ chính :
• Bộ Interrupt: điều khiến việc interrupt, lun trữ status và khi nào cóinterrupt sẽ đưa dữ liệu ra chân UnlNTR
• Bộ điều khiển Clock UnBRG điều khiển việc sinh ra CLK từ hai dữ liệu
vào là UnDLL và UnDLM
• Bộ truyền dữ liệu : UnTX có hai thanh ghi : thanh ghi chứa dữ liệu vàthanh ghi truyền serial ra ngoài thông qua chân TXD
• Bộ nhận dữ liệu : UnRX gồm có hai thanh ghi là thanh ghi chứa dữ liệu
và thanh ghi truyền serial Dữ liệu nhận vào ở chân RXD sẽ đẩy vào thanh ghitruyền serial rồi đua vào thanh ghi nhận dữ liệu
Trong PC, hệ điều hành và ngôn ngữ lập trình hỗ trợ cho lập trình liên kết nối
tiếp mà không cần phải hiểu rõ chi tiết cấu trúc UART Đế mở liên kết, ứng dụnglựa chọn một tần số dữ liệu hoặc là thiết lập khác hoặc cho phép truyền thông tạicác cống Đe gửi 1 byte, ứng dụng ghi byte này vào bộ đệm truyền của cống được
lựa chọn, và UART gửi dữ liệu này, tùng bit một, trong định dạng yêu cầu, thêmbit Start, bit Stop, bit chẵn lẻ khi cần Trong một cách đơn giản, byte nhận được tự’
động được lun trữ trong bộ đệm UART có thể dùng nhanh một ngắt để báo choCPU và các ứng dụng biết dữ liệu đang nhận được và các sự kiện khác
♦> Giói thiêu INT 14h của Bios
Trang 5COM4 2E8h IRQ3
2.2.2.1 Chuẩn giao tiếp RS232
là chuẩn giao tiếp đuợc sử dụng rỗng rãi trong truyền thông nối tiếp
Có hai phiên bản RS232 được lưu hành trong thời gian tương đổi dài làRS232B và RS232C Cho đến nay, RS232B là phiên bản đã cũ, nay đã ít được sửdụng Còn RS232C hiện vẫn còn tồn tại và thường được gọi là chuẩn RS232.2.2.2.1 b Đặc điểm chuẩn RS232
Chuẩn RS232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark),mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng
từ 10 mA đến 20 mA
Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch
Chuẩn RS232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu
cáp truyền đủ ngắn có thể lên đến 115.200 bps
Chuấn RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sửdụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất Các cổng của RS 232 có
ngưỡng điện áp qui ước là -15V tới -3V, và 3V tới 15V (hoặc -5V, +5V, sự khácbiệt giữa hai giá trị 3V, và 5V này được gọi là noise magin ( biên độ dao động củanhiễu)
• Tín hiệu có áp lớn +3V được coi là mức logic 0 hoặc có giá trị cao (H)
• Tín hiệu có áp nhở hơn -3 V được coi là mức logic 1 hoặc giá trị thấp (L)
• Điện áp từ -3V tới +3V là mức điện áp không có ý nghĩa
Chính vì tù' - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợpthay đối giá trị logic tù' thấp lên cao hoặc tù' cao xuống thấp, một tín hiệu phải vượt
qua quãng quá độ trong một thời gian ngắn hợp lý Điều này dẫn đến việc phải hạn
chế về điện dung của các thiết bị tham gia và của cả đường truyền Tốc độ truyềndẫn tối đa phụ thuộc vào chiều dài của dây dẫn Đa số các hệ thống hiện nay chỉ
hồ trợ với tốc độ 19,2 kBd (chiều dài cho phép 30 - 50 m)
Trang 6Obj Tên đối tượng (tên cống)
A Dữ liệu dạng Decimal tự’ động đối sang Binary khi truyền
Precision Số Bit được gởi thông
Mode Mở rộng chức năng gởi đồng bộ hay bất đồng bộ
Các mạch có tính năng như vậy gọi là mạch lái đường dây, Các IC có tính năngnày MAX232, MCI488, MC1489, DS275
Vi mạch Max232 của hãng MAXIM là vi mạch chuyên dùng trong giao tiếp
nối tiếp với máy tính Nó có nhiệm vụ chuyến đổi qua lại giữa các mức tính hiệu
TLT và RS232
Chuẩn RS232.
❖Mức thấp (logic 0) có trị số từ +3v đến +25vMức cao (logic 1) có trị số từ -3v đến -25V
Chuẩn TLT.
❖Ngõ vào:
Mức thấp (logic 0) là Ov đến +0.8vMức cao (logic 1) là +2v đến +5vMiền giữa 0.8v đến +2 V không hợp lệNgõ ra:
Mức thấp (logic 0) là Ov đến 2.5vMức cao (logic 1) là +2.7v đến +5v
v+
C1 -C2 +C2 -
GND
TI OUT
RI IN
RI OUT
TI IN
Hình 2.2.2 l.b- Dạng dóng gói của MAX232
2.2.3 GIAO TIẾP VI ĐIỀU KHIỂN ỴỚI MÁY TÍNH BẰNG MATLAB
2.2.3.1 Matlab trong truyền thông nối tiếp
Cũng như các phần mềm của Microsoft (Visuall basic , c ,c++) thì Matlabcũng là một trong nhũng phần mềm hỗ trợ đầy đủ các tính năng truyền thông quacổng nối tiếp Với Matlab ta có thể thiết kế giao diện điều khiến dễ dàng, thiết lập
các thuộc tính cho cống nổi tiếp tương đối đơn giản
2.2.3.2 Các hàm cơ bản của Matlab trong truyền thông nổi tiếp
Sau đây là một sổ hàm cơ bản của Matlab trong truyền thông nối tiếp
+ obj = serialCport’) tạo một cổng nối tiếp mới, nếu cổng không được mở
hay nó đang được sử dụng thì chúng ta không thế kết nối nó tới thiết bị truyền
thông
Ví dụ:
» sl = serial ('COM1') //tạo cổng COM1
Serial Port Object: Seriaỉ-COMI
Communication Settings
BaudRate: 9600 Communication State Status: cỉosed RecordStatus: off
+ obj = serial(fportf, 'PropertyNameProperty Value, ) tạo ra một cổng
nối tiếp mới với tên cống, thuộc tính và giá trị thuộc tính đuợc chỉ rõ Neu tên
hay một trong những thuộc tính của nó bị sai thì cống nối tiếp không đuợc mở
Ví dụ:
s2 = serial ('COM2', 'Baudrate', 9600, 'DataBits',8, 'StopBits',1)
+ fopen(serial) mở cổng nối tiếp để kết nổi tới thiết bị truyền thông.
Truyền dữ liệu ( kết nối các đối tượng ) qua cổng nối tiếp.
Sau khi đã mở cổng nối tiếp, ta tiếp hành kết nổi máy tính với thiết bị truyềnthông, thực hiện quá trình trao đối thông tin
+ fwrite (serial) truyền các giá trị binary tới các thiết bị truyền thông.
Cú pháp:
fwrite(obj,A)fwrite(obj,A,'precision')fwrite(obj,A,'mode')
Ví dụ :fwrite(s 1,254) // truyền giá trị nhị phân của số 254 qua cổng sl
+ fprintf (serial) truyền các giá trị dạng ASCII tói các thiết bị truyền
thông
Đọc dữ liệu (truy vấn các thiết bị) qua cống nối tiếp.
Các hàm hay dùng trong giao tiếp nối tiếp:
+fread(serial)ỉ đọc dữ liệu dạng Binary, hiển thị dạng số Decimal từ port nối tiếp
Ví dụ:
Trang 7Dữ liệu đọc vào và lưu vào biến Data giá trị tù' port nối tiếp
+fscanf(serial): đọc dữ liệu dạng ASCII từ port nổi tiếp.
ByíesToOutpuí: số byte hiện thời trong bộ đệm phát dữ liệu của máy tính.
BytesAvailable : số byte hiện có trong bộ đệm nhận dữ liệu.
+OutputBufferSỉze\ Dung lượng của bộ đệm phát, mặc định là 512 byte +InputBufferSize: Dung lượng của bộ đệm nhận, mặc định là 512 byte.
+ Timeout :thời gian chờ để đọc hay gởi dữ liệu ra port nối tiếp, mặc định là
10(giây) Het thời gian timeout mà không có dữ liệu truyền, nhận thì Matlab sẽbáo lỗi
+ ValuesSent: Tổng số byte đã gởi qua cổng nối tiếp.
+ ValuesReceỉved\ Tổng số byte đã nhận qua cống nổi tiếp.
Một số hàm quan trọng trong giao tiếp:
+BytesAvailableFcnCount: So sánh số byte trong bộ đệm nhận nếu giá trị này
giá trị được thiết lập trong hàm thì sẽ tạo ra một sự kiện trong port nối tiếp Dựa
vào sự kiên này ta sẽ thực hiện một vài chức năng mong muốn
+BytesAvaiIableFcnMode: Dạng dữ liệu trong bộ đệm nhận để tạo ra sự kiện.
Dạng dữ liệu thường được chọn là ‘Byte’
+BytesAvaiIableFcn: Đây là một Hàm đáp ứng sự kiện ở port nối tiếp Hàm này
sẽ được gọi khi có sự kiện xảy ra ở port nối tiếp Nghĩa là có dữ liệu được truyền
Trang 8Cách 2:
Đọc dữ liệu dựa vào sự kiện của port nổi tiếp, nghĩa là hàm đáp ứng sự kiệncủa port Cách hay được dùng vì rất thích hợp cho những ứng dụng phức tạp đòihỏi tốc độ đồng bộ nhanh giữa 2 thiết bị
Tới đây là công việc điều khiển cơ bản đã hoàn thành, vấn đề còn lại ta sẽthi công các phần tử chấp hành các tín hiệu điều khiển này Cụ thể ở đây là Motorbước trong mô hình cơ khí, do vậy chúng ta bắt đầu tìm hiểu đến động cơ bước vàmạch điều khiển chúng
- Trục quay của động cơ xoay tròn tăng dần số bước khi các xung điềukhiến cấp vào mạch theo thứ tự’ hợp lí
- Động cơ bước đặc biệt sử dụng trong các ứng dụng điều khiến vì ta có thếbiết chính xác vị trí của trục động cơ (motor shaft) mà không cần sử dụngcác thiết bị cảm ứng Chúng cho phép điều khiển bất kỳ sự chuyến độngnào với sự chính xác cao bằng việc đếm số bước của động cơ Góc bướcđược xác định bởi số cực rotor và stator
- Động cơ bước thường được chia thành 3 loại: động cơ bước nam châm vĩnh
Trang 9Động cơ nam châm vĩnh cửu hay còn gọi là động cơ bước kiểu tác dụng sử
dụng nam châm vĩnh cửu làm Roto Hình 2.3.1.1 minh hoạ động cơ bướcnam châm vĩnh cửu đơn giản:
HỊB '
\Statorconaists of I|*« pe>«
Hình 2.3.1.1 Cấu tạo động cơ bước nam châm vĩnh cửu
- Hoạt động của loại động cơ này như sau: giả thuyết rằng rotor đang nằm ở
vị trí với cực nam của nam châm quay lên trên Khi cuộn dây Stator 1 được
cấp điện, cực nam của Rotor bị hút về phía nó Sau đó, ngắt điện cuộn 1 vàtiếp tục cung cấp điện vào cuộn Stator 2, do lực hút giữa tù’ trường của nam
châm và từ trường của cuộn dây Stator, Rotor lại thắng hàng với cuộnStator 2 Như vậy, Rotor sẽ quay 90° mỗi bước cho mỗi lần kích liên tiếptheo trình tự của các cực Stator Ta có thế đảo chiều động cơ nếu thay đốitrình tụ’ kích các cực Stator
- Một đặc tính của loại động cơ này là Rotor luôn có khuynh hướng thẳnghàng với Stator ngay cả khi không cấp điện cho Stator Ta có thế cảm nhậnđược lực kéo của tù' trường khi xoay nhẹ Rotor bằng tay, nó gọi là lực hãm
Một ưu điểm của động cơ bước là nó có thể sử dụng trong điều khiển vòng
Trang 10- Động cơ bước 2 pha lưỡng cực có 2 cuộn dây nhưng có 4 cực từ.
- Động cơ bước nam châm vĩnh cửu 2 pha lường cực được sử dụng trongthực tế có sơ đồ như Hình 2.3.1.2 Trong Hình 2.3.1.2, cuộn dây 1 gồm 2cực la và lb nằm đối diện nhau đế khi cấp điện qua cuộn 1 với cực tính+ la -lb, cực la và lb lần lượt đóng vai trò là từ trường bắc và từ trườngnam, tạo lực hút và đấy rotor sắp thằng hàng (vị trí 1) Cách đơn giản nhất
đế điều khiến động cơ loại này là cấp điện vào lần lượt hoặc cuộn 1 hoặccuộn 2 của stator Neu muốn động cơ quay ngược chiều kim đồng hồ(CCW) tù’ vị trí 1, tiếp tục cấp điện cho cuộn 2 với cực tính +2a -2b, lúc này
lực từ trường sẽ tạo lực hút rotor quay đến vị trí 2 Ke tiếp, ta tiếp tục cấpđiện vào cuộn 1 nhưng lần này đảo cực tính của 2 cực la và lb: -la +lb, tù'trường làm rotor quay đến vị trí 3 Thuật ngũ' lưỡng cực được sử dụng vì có
sự đảo cực tính 2 cực của mỗi cuộn (dòng điện lần lượt chảy theo 2 chiềutrên mỗi cuộn) Chuỗi điện áp cung cấp đế quay động cơ được minh hoạ
Neu đọc bảng trên theo trình tự’ tù' trên xuống, chuồi điện áp lần luợt cungcấp vào các cuộn dây sẽ làm cho động cơ quay ngược chiều kim đồng hồ(CCW) Nguợc lại, nếu đọc từ dưới lên trên, chuỗi điện áp lần lượt cungcấp vào các cuộn dây sẽ làm cho động cơ quay theo chiều kim đồng hồ
(CW).
Phương pháp này gọi là phương pháp điều khiến theo kiểu 1 bước (wavedirve) Ngoài ra đế điều khiển động cơ 2 pha lường cực, ta có thể kích vào
2 cuộn dây cùng một lúc Trong chế độ này, rotor được hút tới giũa 2 cực
kế bên gần nhất Phương pháp này gọi là phương pháp điều khiển theo kiếubước đủ (full drive) Bảng sau và Hình 2.3.1.3 sẽ minh hoạ cho chuồi điện
áp kích theo phương pháp này:
Hình 2.3.1.3
- Trong kiểu điều khiển này, 2 cuộn dây được kích cùng lúc Điều này sẽ tạonhiều momen xoắn hơn kiểu điều khiển một bước Tuy nhiên, dòng cungcấp cho động cơ sẽ tăng gấp 2 lần và việc điều khiến khó khăn hơn so vớiphương pháp điều khiển một bước
- Cả hai phương pháp trình bày ở trên gồm 4 bước điều khiển (quay 4 bướctrên 1 vòng) Bằng cách kết hợp 2 phương pháp trên, động cơ quay lần lượt
đến các vị trí 1, r, 2, 2’, 3, 3’, 4, 4’, 1, r,2 đây gọi là phương pháp điềukhiến theo kiếu nửa bước (hafl step) Khi điều khiến theo phương pháp này,
động cơ chạy 8 bước trên một vòng Phương pháp điều khiến theo kiếu nửa
kích 360°1.8°= 200 bước ở chế độ wave drive Khi điều khiến bằng phươngpháp half-step (nửa bước), ta cần phải kích 400 bước với góc quay 0.9°.Hình 2.3.1.4 sẽ minh hoạ cho phương pháp half-step
Trang 112.3.1 b Động cơ bước nam châm vĩnh cửu 4 pha đơn cực.
Hỉnh 2.3.1.6 Động cơ nam châm vĩnh cửu đơn cực
- Bốn pha đơn cực là loại động cơ bước được sử dụng phổ biến nhất
- Động cơ bước nam châm vĩnh cửu đơn cực có 5 hay 6 đầu dây thường dùng
sơ đồ như Hình 2.3.1.7 có kết nối giữa cho mỗi dây Khi sử dụng các kếtnối giữa của cuộn dây thường được cấp vào nguồn dương và hai đầu củamỗi cuộn dây được nối xuống đất, tuỳ thuộc vào đầu vào nối đất ta sẽ xácđịnh chiều quay rotor Gọi là động cơ 4 pha vì động cơ có 4 cuộn dây được
cung cấp điện một cách độc lập và thuật ngữ đơn cực được sử dụng vì
la
- Cách đơn giản để điều khiển động cơ bước 4 pha đơn cực là cung cấp điệncho một pha tại một thời điếm theo trình tự’ nhất định (phương pháp wavedrive)
- Bảng điều khiển sau sẽ minh hoạ cho quá trình điều khiển kiểu một bước:
Hình 2.3.1.8 Giản đồ xung ở các đầu dây tương ứng: la, lb, 2a, 2b
- Việc điều khiển động cơ bước 4 pha đơn cực thì đơn giản hơn động cơbước 2 pha lưỡng cực Mạch driver cho động cơ bước 4 pha đơn cực đơngiản là đóng và ngắt các cực của Stator một cách tuần tự, nó không phảiđảo cực tính của cuộn dây Stator Tuy nhiên, động cơ bước 2 pha lưỡng cực
tạo nhiều momen xoắn hơn do có lực đấy và kéo ở cùng một lúc
- Lực xoắn của động cơ bước 4 pha đơn cực có thế được tăng lên nếu 2 cuộn
dây kề nhau được cung cấp năng lượng cùng một lúc, tạo momen làm chorotor quay đến nằm giữa 2 cực của 2 cuộn dây Tuy nhiên, cách này sẽ tiêuhao dòng điện gấp 2 lần so với động cơ bước 2 pha lưỡng cực nhưng cũngchỉ làm momen xoắn tăng khoảng 40% Bảng sau sẽ minh hoạ cho phương
Hình 2.3.1.9 Giản đồ xung ở các đầu dây tương ứng: la, lb, 2a, 2b
- Bằng cách xen kẽ các bước trong 2 chế độ điều khiến một bước và bước đủ,
ta có thế điều khiển động cơ quay với góc bước nhỏ hơn 2 lần góc bướcdanh định của nó Bảng sau sẽ minh hoạ cho kiếu điều khiến half-step này:
Trang 12Dựa vào cấu tạo của động cơ bước 2 pha lưỡng cực và 4 pha đơn cực, tathấy rằng có thế chuyển chế độ dùng động cơ 4 pha đơn cực thành 2 phalưỡng cực và ngược lại bằng cách :
+ Neu muốn chuyển thành động cơ 4 pha từ động cơ 2 pha, ta có thể lấy
ra ở mỗi cuộn 1 đầu dây chung (common), đầu dây chung này được nối
vào điếm giữa 2 cực của mỗi cuộn dây Hai đầu dây common (2 và 5)được kết nối như Hình 2.3.1.10:
+ Nếu muốn sử dụng ở chế độ 2 pha lưỡng cực thì 2 đầu dây common (2
và 5) không dùng
Ngày nay, hầu hết các động cơ bước nam châm vĩnh cửu có góc bước rấtnhỏ Những loại động cơ có góc bước nhỏ này được làm bằng cách ghépchồng hai rotor đa cực như Hình 2.3.1.11:
Trang 132.3.2 Động cơ bước có tù’ trở biến thiên (động cơ bước biến tù’ trở).
- Động cơ biến từ trở hay còn gọi là động cơ phản kháng Rotor của loạiđộng cơ này không sử dụng nam châm vĩnh cửu, thay vào đó nó sử dụngmột bánh răng bằng sắt Vì không sử dụng nam châm vĩnh cửu-không đòihỏi rotor phải tù' ho á- nên rotor có thế chế tạo với nhiều hình dạng khácnhau Vì được làm bằng sắt nên mồi răng rotor sẽ bị hút về phía cực statorđược cấp điện gần nhất nhưng với lực hút yếu hơn loại nam châm vĩnh cửu
Điều này làm cho momen xoắn của động cơ biến từ trở nhỏ hơn momenxoắn của động cơ nam châm vĩnh cửu
(a) Symbol (b) Construcbon
Hình 2.3.2.1 Động cơ bước biến từ trở loại 3 pha
Trang 14Động cơ biến từ trở thông thường có 3 hoặc 4 pha Hình 2.3.2.1 minh hoạcho loại động cơ biến từ trở 3 pha Sator của loại động cơ này có 3 mạch
từ: ệ\, Ộ2 và 03 Mỗi mạch từ gồm 4 cực từ Như vậy Stator của động cơ
như hình 3 có 12 cực từ Chú ý, rotor có 8 răng trong khi stator có tất cả 12
răng Đây là cấu tạo đặc biệt của động cơ này Bởi vậy, răng cuả rotor sẽkhông bao giờ thẳng hàng tòng đôi 1-1 với răng của sator, điều này đóngvai trò quan trọng trong hoạt động của loại động cơ này
Hoạt động của loại động cơ này như sau:
(a) Pote 01 energized (b) Pote 02 energized
Hình 2.3.2.2 Động cơ bước biến từ trở 3 pha 15°
+ Khi mạch từ ộ\ được cung cấp năng lượng, răng A của rotor sẽ di chuyến đến thẳng hàng với cực của ộ\.
+ Ke tiếp, khi Ộ2 được cấp điện, răng B gần nhất sẽ di chuyển về phía nó + Nếu tiếp tục cấp điện cho Ộ2, rotor sẽ tiếp tục quay 15° theo hướng ngược chiều kim đồng hồ bằng cách hút răng c thắng hàng với Ộ3>.
Góc bước của động cơ bước biến tù’ trở là hiệu số giữa góc 2 cực rotor gần
nhất và góc 2 cực stator gần nhất Góc bước của động cơ được minh hoạnhư hình 3 đươc xác đinh là: = 45° -30° =15°
Trang 15Bằng cách sử dụng lối thiết kế này, động cơ bước biến từ trở có thể đạtđược những góc bước rất nhỏ, thậm chí nhỏ hơn 1° Góc bước càng nhỏgiúp cho việc điều khiển vị trí càng chính xác hơn.
- Động cơ bước biến từ trở có sự khác biệt so với động cơ nam châm vĩnhcửu Vì rotor của động cơ bước biến từ trở không được từ hoá nên lực xoắn
của nó yếu hơn lực xoắn của động cơ nam châm vĩnh cửu có cùng gócbước Mặc dầu vậy, nó sẽ không có lực xoắn hãm (detent torque) khi tắtnguồn như động cơ nam châm vĩnh cửu Có góc bước nhỏ và không có lựcxoắn hãm nên động cơ biến từ trở dễ bị mất bước Đây là vấn đề cần đượcxem xét khi động cơ đang vận hành ở chế độ vòng hở Vì thế, nên dùng các
bộ điều khiển vòng kín cho loại động cơ này
2.3.3 Động cơ bước hỗn hợp (động cơ bước dạng ghép)
- Trong các loại động cơ bước kế trên thì động cơ bước hỗn hợp được sửdụng nhiều hơn cả vì loại động cơ này kết hợp những ưu điếm của loạiđộng cơ bước nam châm vĩnh cửu và động cơ bước biến tù’ trở
- Rotor có các răng cho phép động cơ quay với góc bước nhỏ (có loại quayvới góc bước 1.8°) và nó có một nam châm vĩnh cửu tạo lực xoắn hãm nhỏngay cả khi không cấp điện cho động cơ
- Chúng ta thấy rằng việc từ hoá các cực rotor của động cơ bước nam châmvĩnh cửu tương đối khó khăn nên góc bước của loại động cơ này thường bịhạn chế Neu như động cơ bước biến từ trở có góc bước nhỏ nhờ rotor được
cấu tạo bởi bánh răng bằng sắt thì lực quay và lực xoắn hãm của nó lại yếuhơn động cơ bước nam châm vĩnh cửu Động cơ bước hỗn hợp tù' hoá mộtcách hợp lý các cực của rotor và như vậy nó sẽ có những ưu điếm của
Trang 16Nam châm vinh cửu
Hình 2.3.3.1 Cấu tạo động cơ bước hỗn hợp (hybrid stepper motor)
- Động cơ bước hỗn họp có cấu tạo tương đổi phức tạp hơn động cơ namchâm vĩnh cửu Rotor bao gồm 2 vòng bánh răng và một nam châm vĩnhcửu được đặt ở giữa 2 vòng bánh rănh này-một vòng bánh răng ở cực bắc
và vòng còn lại ở cực nam của nam châm vĩnh củu Với mỗi bước, 2 răngđối nhau trên bánh răng nằm ở cực bắc sẽ bị hút tới 2 cực nam của cuộndây Stator và 2 răng đối nhau trên bánh răng nằm ở cực nam sẽ bị hút tới 2cực bắc của cuộn dây Stator cấu tạo bên trong tương đối phức tạp songviệc điều khiến lại đơn giản hơn động cơ nam châm vĩnh cửu và biến từ trở
- Theo lý thuyết hoạt động của động cơ bước hồn hợp cũng giống như hoạtđộng của động cơ biến từ trở, rotor và stator có số răng khác nhau, trongmỗi bước khi cực của stator được cấp điện thì răng rotor gần nhất sẽ quayxếp thẳng hàng với cực này Tuy nhiên, do nguyên lý của lực từ trường màtrong bất kì lúc nào một nửa số cực của stator là cực bắc, nửa số cực còn lại
là cực nam Đe cân bằng lực từ, mồi cực của stator cần có khả năng
Trang 17- Ảnh hưởng của tải.
- Vì điều khiển theo kiểu vòng hở nên đòi hỏi mỗi bước phải thật chính xác,nhưng nếu tải quá lớn, động cơ không đủ momen để quay bước Khi cóxung điều khiển đặt vào, rotor chỉ quay nhẹ rồi bị kéo trở lại vị trí gốc, hiện
tượng này gọi là ‘bị kẹt’ (stalling)
- Trong mỗi bước, momen luôn thay đối bởi vì step motor phụ thuộc vào góc
của trục, thật vậy, khi rotor hướng thẳng hàng với cuộn dây được kích từ thì
Hình 2.3.4.1 Sự thay đổi momen theo góc quay
- Vấn đề này dẫn đến một trạng thái là rotor có thể bị dừng tại một vị trí nào
đó mà tại đó momen quay cân bằng với momen cản Neu tải vượt quámomen cực đại của động cơ sẽ làm động cơ bị trượt nhanh Hình 1.4 cho ta
hai vấn đề khi ta cho rotor trễ đi một xung kích hay cho xung kích tới sớmhơn như ở hình 1.4 b vấn đề thứ nhất là tại đây có momen rất nhỏ hoặc
Trang 18không có momen sinh ra, vấn đề thứ hai là tại đây rotor sẽ bị cân bằng và ta
không biết chắc rằng rotor sẽ quay trái hay quay phải
Hình 2.3.4.2 Minh họa vấn đề xảy ra khi cho rotor trễ một xung so với xung
- Do đó bản thân rotor không cho phép trễ quá 1/2 kích thước một bước.Trong thực tế, momen động (dynamic torque : là momen có ích khi động cơ
quay) chỉ bằng một nửa momen giữ (holding torque: momen giúp giữ rotorkhi dừng)
Kết luận:
- Từ những đặc điếm phân tích ở trên, ta thấy được những un điếm lớn củastep motor , thứ nhất là điều khiển vòng hở, thứ hai là xác định vị trí theogóc bước một cách chính xác vấn đề ở đây là phải tính toán momen quaysao cho phù hợp với tải, đế khi điều khiến không xảy ra hiện tượng trượtbước
Công thức tính momen tông quát: momen=lực*tay đòn
Trang 19Công thức tính mo men xoắn đối vối động co bước:
- Với đề tài này, ta không chọn động cơ DC vì thứ nhất cần phải có hồi tiếp
về khi hệ thống hoạt động, khi đó ta phải dùng encorder, do đó sẽ phát sinh
chi phí thiết kế, thứ hai là khi dừng, động cơ DC không dừng một cách tứcthời như step motor, khi đó đòi hỏi ta phải có một phương pháp điều khiếnhọp lí, vì trong đề tài của ta vấn đề vị trí của tòng điếm rất quan trọng nêntính chất dừng tóc thời của step motor rất phù họp
2.4 Vi điều khiển AT89C51
2.4.1 Giới thiệu
Hình 2.4.1.1 Vi điều khiển AT89C51
- Vi điều khiến viết tắt của từ micro- controller, là mạch tích hợp trên chip cóthể lập trình, được dùng để điều khiển một hệ thống hoạt động theo mong
Trang 20muốn của mình Hệ thống bao gồm cả phần cứng lẫn phần mềm, phần cứng
và phần mềm phải có quan hệ với nhau; vi điều khiển có tập lệnh, khi nguời
lập trình nạp vào vi điều khiển, vi điều khiến tiến hành đọc chương trình,lưu trữ chương trình, xử lí chương trình, đo thời gian tiến hành đóng mởmột cơ cấu nào đó
Vi điều khiển được sử dụng trong các tivi, máy giặt, lò vi-ba, điện
thoại trong lĩnh vực tự động hóa thì vi điều khiển cũng được sử dụngkhá phô biến như trong robot, trong các băng chuyền, các bộ điều khiến tựđộng, và vi điều khiến còn ứng dụng trong nhiều thiết bị khác nữa
Do họ MCS-51TM đã trở thành chuấn công nghiệp nên có rất nhiều hãngsản xuất ra nó, điển hình là ATMEL Corporation Hãng này đã kết hợp rấtnhiều tính năng dựa trên nền tảng kỹ thuật của mình đế tạo ra các vi điềukhiến tương thích với MCS-51TM nhưng mạnh mẽ hơn
AT89C51 cung cấp những đặc tính chuẩn như sau: 4 KB bộ nhớ chỉ đọc cóthể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2TIMER/COETNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Portnối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao độngON-CHIP Thêm vào đó, AT89C51 được thiết kế với logic tĩnh cho hoạtđộng đến mức không tần số và hỗ trợ hai phần mềm có thế lựa chọn nhũngché độ tiết kiệm công suất, chế độ chờ (IDLE MODE) sẽ dừng CPU trongkhi vẫn cho phép RAM, timer/counter, port nối tiếp và hệ thống ngắt tiếptục hoạt động Chế độ giảm công suất sẽ lưu nội dung RAM nhưng sẽ treo
bộ dao động làm mất khả năng hoạt động của tất cả những chức năng kháccho đến khi Reset hệ thống
Các đặc điếm của 89C51 được tóm tắt như sau:
+ 4 KB bộ nhớ có thế lập trình lại, có khả năng tới 1000 chu kỳ ghi xoá.+ 2 bộ Timer/counter 16 Bit
Trang 21+ 128 Byte RAM nội.
+ 4 Port xuất /nhập 1/0 8 bit
+ Giao tiếp nối tiếp
.1 (A
□ PSẼN
2
7 (AHình 2.4.2.1 Sơ đồ chânAT89C51
Trang 22Bit Tên Địa
2.4.3 Chức năng các chân AT89C51
- Chân 40: Cung cấp điện áp Vcc
- Chân 20: Chân nối đất
Port 0 (32 - 39): Là một port 2 chức năng 8 bit Data Bus & 8 bit thấpAddress Bus khi có bộ nhớ mở rộng Khi port 0 là port xuất nhập dữ liệuphải sử dụng điện trở kéo lên bên ngoài
- Port 1 ( 1 - 8 ) : Là một port I/O-xuất nhập dữ liệu Sử dụng hoặc không sửdụng bộ nhớ ngoài
- Port 2 (21 - 28): Là một port có 2 chúc năng vừa làm port I/O khi không sửdụng bộ nhớ ngoài, vừa là 8 bit cao Address Bus khi sử dụng bộ nhớ ngoài
- Port 3 (10 - 17): Là một port có 2 chức năng vừa là port xuất nhập dữ liệukhi không sử dụng bộ nhớ ngoài vừa là các tín hiệu điều khiển khi sử dụng
bộ nhớ ngoài hoặc thực hiện những chức năng đặc biệt
- PSEN (Program Store Enable), (chân 29): Là tín hiệu điều khiển đế chophép bộ nhớ chương trình mở rộng và thường được nối đến chân OE(output enable) của một EPROM để cho phép đọc các byte mã lệnh
- PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh Các mãlệnh của chương trình được đọc từ EPROM qua bus dữ liệu và được chốtvào thanh ghi lệnh bên trong 8951 đê giải mã lệnh Khi 8951 thi hànhchương trình trong ROM nội PSEN sẽ ở mức logic 1
- ALE (Address Latch Enable), (chân 30): Khi 8951 truy xuất bộ nhó' bênngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách cácđường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu
Trang 23điều khiển đế giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúngvới IC chốt.
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vaitrò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động Các xung tín hiệuALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùnglàm tín hiệu clock cho các phần khác của hệ thống Chân ALE được dùnglàm ngõ vào xung lập trình cho Eprom trong 8951
EA (Extemal Access), (chân 31): Tín hiệu vào EA nếu ở mức cao thì thựchiện chuông trình từ ROM nội Neu ở mức thấp, chưong trình chỉ được thihành tù’ bộ nhó' mở rộng
RST (reset), (chân 9): 8951 sẽ được reset khi RST ở mức cao
Hình 2.4.3.1 Reset tổng hợp( Reset bằng tay và reset khi cấp nguồn )
Khi ngõ RST này được đưa lên cao (trong ít nhất hai chu kì máy), cácthanh ghi bên trong AT89C51 được tải những giá trị thích hợp đế khởi
Trang 24< mâcđinh choRO-R7Ì
Các ngõ vào bộ dao động (chân 18, 19): XTAL1 và XTAL2 là hai ngõ vào
và ra của một bộ khuếch đại dao động nghịch được cấu hình đế dùng nhưmột bộ dao động trên chip
XTAL2
XTAL1
GND
Note: C1, C2 = 30 pF ± 10 pF for Crystals
= 40 pF ± 10 pF for Ceramic Resonators
Hỉnh 2.4.3.2 Kết nối bộ tạo dao động
FF0EDBAA999890
8382SỉHỉnh 2.4.1 Bộ nhớ dữ liệu trên AT89C51RAM nội:
ACCPS\V
IP
P3
IEP2SBUFSCON
P1
THI
+ Bank thanh ghi (00H - 1FH): 8951 hồ trợ 8 thanh ghi (RO - R7), cáclệnh dùng thanh ghi RO - R7 thì sẽ ngắn hơn các lệnh tương ứngnhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu được dùng thườngxuyên nên dùng một trong các thanh ghi này Bank thanh ghi tíchcực có thê chuyên đôi băng cách thay đôi các bit chọn bank thanhghi trong PSW
+ RAM địa chỉ hóa từng bit (20H - 2FH)
+ RAM đa dụng-đa chức năng (30H - 7FH)
- Các thanh ghi chức năng đặc biệt (80H - FFH) bao gồm:
+ Thanh ghi từ trạng thái chương trình PSW:
+ Cờ nhớ
Cờ nhó' (CY) có công dụng kép Thông thường nó được dùng cho cáclệnh toán học : nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộnghoặc có một số mượn bởi phép trừ Ví dụ, nếu thanh ghi tích lũy chứa0FFH, thì lệnh ADD A, #1 sẽ trả về thanh ghi tích lũy kết quả 00H vàset cờ nhớ trong PSW
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi
hành trên bit
Trang 25+ Cờ nhớ phụ
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4bit thấp trong khoảng OAH đến 0FH Neu các giá trị được cộng là số
BCD, thì sau lệnh cộng cần có DA A (hiệu chỉnh thập phân thanhghi tích lũy) để mang kết quả lớn hơn 9 vào nibble cao
+ Cờ 0 Cờ 0 (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của ngườidùng
+ Các bit chọn bank thanh ghi
Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghiđược tích cực Chúng được xóa sau khi reset hệ thống và được thayđối bằng phần mềm nếu cần Ví dụ, ba lệnh sau cho phép bank thanh
ghi 3 và di chuyến nội dung của thanh ghi R7 (địa chỉ byte 1FH) đến
thanh ghi tích lũy :
+ Cờ tràn
Cờ tràn (OV) được set sau một lệnh cộng hoặc trừ nếu có một phéptoán bị tràn Khi các số có dấu được cộng hoặc trừ với nhau, phầnmềm có thể kiểm tra bit này đế xác định xem kết quả có nằm trongtầm xác định không Khi các số không dấu được cộng, bit ov có thể
Trang 26Thanh ghi Trạng thái
7 GATE 1 Bit (mở) cống, khi lên 1, timer chỉ chạy
khi 1NT1 ở mức cao6
C/T 1 Bit chọn chế độ counter/timer
1 = bộ đếm sự kiện
0 = Bộ định khoảng thời gian
00=chế độ 0: timer 13 bit01=chế độ 1: timer 16 bit10=chế độ 2: tự’ động nạp lại 8 bit
+ Con trỏ ngăn xếp (SP: 81H): Con trỏ ngăn xếp (SP) là một thanh ghi
8 bit ở địa chỉ 81H Nó chứa địa chỉ của byte dữ liệu hiện hành trênđỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các thao tác cất
dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữliệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy
dữ liệu ra khỏi ngăn xếp sẽ đọc dữ liệu và giảm SP
+ Con trỏ dữ liệu (DPTR: 83H - 82H): được dùng để truy xuất bộ nhớngoài, là một thanh ghi 16 bit ở địa chỉ 82H (DPL : byte thấp) và83H (DPH : byte cao) Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa
chỉ 1000H :MOV A, #55HMOV DPTR, #1000HMOVX @DPTR, ALệnh đầu tiên dùng địa chỉ tức thời đế tải dữ liệu 55H vào thanh ghitích lũy Lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữliệu 16 bit 1000H vào con trỏ dữ liệu Lệnh thứ ba dùng địa chỉ giántiếp để di chuyến dữ liệu trong A (55H) đến RAM ngoài ở địa chỉđược chứa trong DPTR (1000H)
+ Các thanh ghi port I/O: port 0, port 1, port 2, port 3+ Các thanh ghi Timer: timer 0: 8CH - 8AH ; timer 1: 8DH - 8BH ;TMOD: 89H ; TCON: 88H
+ Các thanh ghi port nối tiếp SBUF: 99H ; SCON: 98H+ Các thanh ghi ngăt: 8951 có 5 nguồn ngắt được cho phép băng thanhghi IE: A8H
+ Thanh ghi điều khiển công suất PCON: 87H
Khi có hoạt động reset, trạng thái của các thanh ghi:
2.4.5 Một số chức năng của AT89C512.4.5.aBỘ định thời Timer
- 8951 có hai timer 16 bit, mỗi timer có 4 cách làm việc Người ta sử dụngcác timer đế: định khoảng thời gian; đếm sự kiện hoặc tạo tốc độ baud choport nối tiếp trong 8951
- Truy xuất các timer của 8951 dùng 6 thanh ghi chức năng đặc biệt chotrong bảng sau:
- Thanh ghi chế độ Timer (TMOD):
Trang 27Bit Ký hiệu Địa chỉ Mô tả
TCON.7 TF1 8FH Cờ báo tràn Timer 1 Đặt bởi phần cứng khitràn, được xóa bởi phần mềm hoặc phần cúng
khi bộ xử lý chỉ đến chương trình phục vụ ngắt
TCON.6 TRI 8EH Bit điều khiến timer 1 chạy Đặt/xóa bằng phần
mềm để cho timer chạy/ngưngTCON.5 TF0 8DH Cờ báo tràn timer 0
TCON.4 TRO 8CH Bit điều khiến timer 0 chạy
TCON.3
IE1 8BH Cờ cạnh ngắt 1 bên ngoài Đặt bởi phần cứng
khi phát hiện một cạnh xuống ở 1NT1; xóa bằng
phần mềm hoặc bằng phần cứng khi CPU chỉđến chương trình phục vụ ngắt
TCON.2
IT1 8AH Cờ kiểu ngắt 1 bên ngoài Đặt/xóa bằng phần
mềm đế ngắt ngoài tích cực cạnh xuống/mứcthấp
TCON.l IEO 89H Cờ cạnh ngắt 0 bên ngoài
TCON
O ITO 88H Cờ kiểu ngắt 0 bên ngoài
1 0 2 UART 9 bit Cố định (Fosc chia cho 12 hoặc 64)
Bit Ký hiệu Địa chỉ bit Mô tả (l=cho phép, 0=cấm)
Thanh ghi điều khiển Timer (TCON)
2.4.5.b Serial port (Port nối tiếp)
- AT89C51 có một port nổi tiếp trong chip có thể hoạt động ở nhiều chế độtrên một dải tần số rộng Chức năng chủ yếu của port nối tiếp là thực hiệnchuyển đối song song sang nổi tiếp đối với dữ liệu xuất, và chuyển đối nối
tiếp sang song song với dữ liệu nhập
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến portnối tiếp là: SBUF và SCON Viết vào SBUF để nạp dữ liệu sẽ được phát,
và đọc SBUF đế truy xuất dữ liệu thu được
Thanh ghi điều khiển port nối tiếp:
- Các chế độ port nối tiếp:
2.4.6 Ngắt (Interrupt)
- Một ngắt là sự xảy ra một điều kiện - một sự kiện - mà nó gây ra treo tạmthời chương trình trong khi điều kiện đó được phục vụ bởi một chươngtrình khác Chương trình giải quyết ngắt được gọi là chương trình phục vụngắt (1SR: Interrupt Service Routine) Khi ngắt xảy ra, chương trình chínhtạm thời bị treo và rẻ nhánh đến 1SR: 1SR thực thi và kết thúc bằng lệnh trở
về tù' ngắt, chương trình chính tiếp tục thực thi ở chỗ mà nó tạm dừng
- Tổ chức ngắt ở 8951: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp.Tất cả các ngắt đều mặc nhiên bị cấm sau khi reset hệ thống và được chophép từng cái một bằng phần mềm Khi có hai hoặc nhiều ngắt đồng thời,hoặc một ngắt xảy ra trong khi một ngắt khác đang được phục vụ, có cả hai
sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng đế xác định việc thựchiện các ngắt
- Cho phép và cấm các ngắt thông qua thanh ghi chức năng đặt biệt IE(Interrupt Enable)
Trang 28IE.2 EX1 AAH Cho phép ngắt ngoài 1
Bit Ký hiệu Địa chỉ
bit
Mô tả (l=mức cao hơn, 0= mức thấp)
IP.4 PS BCH Ưu tiên cho ngắt từ port nối tiếp
IP.3 PT1 BBH Ưu tiên cho ngắt tù' Timer 1
IP.l PTO B9H Ưu tiên cho ngắt tù' Timer 0
Port nối tiếp
NGUỒNĐỘNG
Cơ 12V
VI XỬ
ĐIỀUKHIỂNĐỘNGCơ
THIẾT
BI THU
ẰNH
ĐÔNGCơBƯỚC MÔ HÌNHCơ KHÍ
Số thứ tự Các chi tiết cơ khí Thông số Vật liệu Chức năng
Thanh trược <ỊA (mm) Inox Đế trược cho 3 trục X,Y,Z
- Ưu tiên ngắt: mỗi nguồn ngắt được lập trình riêng vào một trong hai mức
ưu tiên qua thanh ghi chức năng đặc biệt IP (Interrupt Priority):
- Hỏi vòng tuần tự: các bit cờ tạo các ngắt được tóm tắt ở bảng sau
- Xử lý ngắt: Khi ngắt xảy ra và đuợc CPU chấp nhận, chương trình chính bịngắt quãng Những hoạt động sau xảy ra:
* Lệnh hiện hành hoàn tất việc thực thi
Chương III THIẾT KÉ PHẦN CỨNG VÀ PHẦN MỀM3.1 Thiết kế phần cứng
Phân tích sơ đồ khối của hệ thống đế tiến hành thực hiện các công việc:
3.1.1 Mô hình và các thông số tính toán cho phần cơ khí
3.1.1 aCác chi tiết cơ khí
Bảng liệt kê các chi tiêt cơ khí sử dụng trong mô hình
Trang 29Bánh răng 37 (răng)
Ộ5 (mm)
Nhựa tổng hợp Truyền chuyển động quay cl
thanh xoắn của 3 trụcThanh xoắn Ộ5 (mm)
Ẳ = 1 (mm)
Inox Chuyển chuyển động quay s
chuyển động ngangDây đai có răng ^8 (mm) Cao su tổng hợp
Công tắc hành trình 3 chân Nhựa tổng hợp Reset các trục về vị trí ban đ
Trang 30Số thứ tự Thông số Chi tiết
Định dạng thu được JPG
3.1.1 cThông số động cơ bước sử dụng trong đề tài
3.1.1 d Thiêt bị thu nhận ảnh trong đê tài
Thiết bị thu nhận ảnh chính trong đề tài này loại Webcam với chuấn USB của hãng
Trang 31Parameter Symbol Rating unit
Operating temperature Tọnr -30 to +100 °c
Storage temperature Tstg -55 to+125 °c
Parameter Symbol Condition MIN TYP MAX Unit
cơ, còn Mos-fet như là một khóa đóng/ ngắt.
Thông sổ của opto PC817
Absolute maximum ratings (Giá trị định mức)
❖ Electro-optical characteristics (đặc tính quang-điện)
❖