1 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP LUẬN VĂN THẠC SỸ KỸ THUẬT NGHIÊN CỨU, ỨNG DỤNG VI ĐIỀU KHIỂN
CHO HỆ ĐIỀU CHỈNH VÀ ỔN ĐỊNH TỐC ĐỘ
ĐỘNG CƠ ĐIỆN MỘT CHIỀU
KÍCH TỪ ĐỘC LẬP
Chƣơng I: Vi điều khiển và ứng dụng vi điều khiển
trong truyền động điện 9
1.1 Giới thiệu chung về bộ vi điều khiển 9
1.1.1 Khái niệm về vi điều khiển 9
1.1.2 Lịch sử phát triển của bộ vi điều khiển 10
1.1.3 Tổng quan về các hệ thống vi điều khiển 12
1.1.4 Phần mềm của vi điều khiển 16
1.2 Các họ vi điều khiển thông dụng 18
1.2.1 Vi điều khiển trong máy tính 18
1.2.2 Các vi điều khiển sử dụng trong công nghiệp 18
1.2.3 Giới thiệu họ vi điều khiển MCS-51 (AT89C52) 19
1.2.3.1 Sơ lƣợc về phần cứng của AT89C52 19
1.2.3.2 Cấu trúc bên trong của AT89C52 20
1.2.3.3 Sơ đồ chân và chức năng AT89C52 21
1.2.3.4 Tổ chức bộ nhớ 23
1.2.3.5 Các thanh ghi chức năng đặc biệt 27
1.2.3.6 Bộ nhớ ngoài 34
1.2.3.7 Lệnh Reset 38
1.2.3.8 Tập lệnh của AT 89C52 39
1.3 Ứng dụng vi điều khiển trong truyền động điện 42
1.3.1 Sơ đồ khối tổng quát của hệ truyền động điện 42
1.3.2 Điều khiển số truyền động điện 43
1.3.3 Ƣu điểm của điều khiển số 45
3 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3.1.4 Cảm biến vị trí tốc độ (Encoder) 72 4 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3.2 Sơ đồ cấu trúc hệ điều khiển số 75
3.2.1 Tổng hợp hệ thống 76
3.2.2 Xác định tính ổn định hệ thống 81
3.2.3 Chất lƣợng của hệ truyền động 84
3.3 Tính toán và khảo sát cho hệ truyền động PWM-D 87
3.3.1 Xét ổn định mạch vòng dòng điện 87
3.3.2 Xét ổn định mạch vòng tốc độ 89
3.3.3 Chất lƣợng của hệ truyền động 92
3.3.2.1 Khảo sát chất lƣợng dùng chƣơng trình pascal 92
3.3.2.2 Khảo sát chất lƣợng hệ thống bằng
phần mềm Matlab Simulink 95
Kết quả luận án và hƣớng phát triển của đề tài 101
Tài liệu tham khảo 102
Phụ lục 103
: Điện áp chủ đạo.
U
đk
: Điện áp điều khiển.
U
rc
: Điện áp răng cƣa.
U
SS
: Điện áp so sánh.
U
SX
: Điện áp sửa xung.
U
đb
: Điện áp đồng bộ.
FXCĐ : Khối phát xung chủ đạo.
SRC : Khối tạo xung răng cƣa.
SS : Khối so sánh.
TXPCX : Khối tạo xung và phân chia xung.
U
ω
: Tín hiệu điện áp chủ đạo đặt tốc độ.
T : Chu kỳ lấy mẫu (hay gọi thời gian lƣợng tử).
M
S1
: Tín hiệu phản hồi âm tốc độ.
M
S2
: Tín hiệu phản hồi âm dòng điện.
7
điều khiển cho hệ điều chỉnh và ổn định tốc độ động cơ điện một chiều
kích từ độc lập” 8 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Do thời gian và trình độ có hạn nên bản luận văn không tránh khỏi sai
sót và có nhiều vấn đề cần phải hoàn thiện thêm. Em rất mong nhận đƣợc
những ý kiến đóng góp, sự chỉ dẫn của các thầy cô giáo và các đồng nghiệp.
Em xin đƣợc bày tỏ biết ơn chân thành tới PGS.TS Võ Quang Lạp đã
hƣớng dẫn tận tình và chỉ bảo cặn kẽ để em hoàn thành luận văn này. Xin
đƣợc gửi lời cảm ơn tới tất cả các Thầy cô Khoa sau đại học, Khoa điện và
các bạn đồng nghiệp lớp TĐH K11 trƣờng ĐHKT công nghiệp Thái Nguyên.
Thái Nguyên, ngày 30 tháng 07 năm 2010
Tác giả luận văn
Đỗ Mạnh Tuấn
chíp có thể lập trình đƣợc, dùng để điều khiển hoạt động của hệ thống.
Phần cứng chỉ đóng vai trò thứ yếu, phần mềm (chƣơng trình) đóng vai trò
chủ đạo đối với các chức năng cần thực hiện. Nhờ vậy vi điều khiển có sự mềm dẻo
hóa trong các chức năng của mình. Ngày nay vi điều khiển có tốc độ tính toán rất
cao và khả năng xử lý rất lớn.
Vi điều khiển có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và
xuất dữ liệu ra ngoài sau khi đã xử lý. Và chức năng chính của Vi điều khiển chính
là xử lý dữ liệu, chẳng hạn nhƣ cộng, trừ, nhân, chia, so sánh.v.v.
Vi điều khiển hoạt động cần có chƣơng trình kèm theo, các chƣơng trình này
điều khiển các mạch logic và từ đó vi điều khiển xử lý các dữ liệu cần thiết theo yêu
cầu. Chƣơng trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh đƣợc lƣu
trữ trong bộ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã
lệnh và thực hiện lệnh sau khi đã giải mã.
Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn trong truyền
động điện nhƣ điều khiển động cơ, hiển thị kí tự trên màn hình đòi hỏi phải kết
hợp vi điều khiển với các mạch điện giao tiếp với bên ngoài đƣợc gọi là các thiết bị
I/O (nhập/xuất) hay còn gọi là các thiết bị ngoại vi. Bản thân các vi điều khiển khi
đứng một mình không có nhiều hiệu quả sử dụng, nhƣng khi là một phần của một
máy tính, thì hiệu quả ứng dụng của Vi điều khiển là rất lớn. Vi điều khiển kết hợp
với các thiết bị khác đƣợc sử trong các hệ thống lớn, phức tạp đòi hỏi phải xử lý
một lƣợng lớn các phép tính phức tạp, có tốc độ nhanh.
10 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
các thiết bị ngoại vi. Bản thân các vi xử lý khi đứng một mình không có nhiều hiệu
quả sử dụng, nhƣng khi là một phần của một máy tính, thì hiệu quả ứng dụng của Vi
xử lý là rất lớn. Vi xử lý kết hợp với các thiết bị khác đƣợc sử trong các hệ thống
lớn, phức tạp đòi hỏi phải xử lý một lƣợng lớn các phép tính phức tạp, có tốc độ 11 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
nhanh. Chẳng hạn nhƣ các hệ thống sản xuất tự động trong công nghiệp, các tổng
đài điện thoại, hoặc ở các robot có khả năng hoạt động phức tạp v.v
Bộ Vi xử lý có khả năng vƣợt bậc so với các hệ thống khác về khả năng tính
toán, xử lý, và thay đổi chƣơng trình linh hoạt theo mục đích ngƣời dùng, đặc biệt
hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ,
tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần
cân nhắc. Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các
khối mạch điện giao tiếp phức tạp nhƣ nhau. Các khối này bao gồm bộ nhớ để chứa
dữ liệu và chƣơng trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và
điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện đƣợc
công việc. Để kết nối các khối này đòi hỏi ngƣời thiết kế phải hiểu biết tinh tƣờng
về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống đƣợc tạo ra khá
phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ
ngƣời thiết kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để
áp dụng cho các hệ thống nhỏ.
Để khắc phục các tồn tại trên, năm 1976 Intel giới thiệu bộ vi điều khiển
(microcontroller) 8748, một chip tƣơng tự nhƣ các bộ vi xử lý và là chip đầu tiên
trong họ MCS-48. Độ phức tạp, kích thƣớc và khả năng của Vi điều khiển tăng
thêm một bậc quan trọng vào năm 1980 khi intel tung ra chip 8051, bộ Vi điều
đƣợc bổ sung thêm nhiều chức năng tiện lợi hơn cho ngƣời dùng.
1.1.3 Tổng quan về các hệ thống vi điều khiển
Trong khối vi điều khiển bao gồm các khối ghép trong hình vẽ H.1-1
H.1-1: Sơ đồ khối của bộ vi điều khiển
(MCU)
Bộ Vi
điều
khiển
Bộ đệm
và bộ
đổi
Mạch
đồng hồ
trình, đây là bộ nhớ bổ xung cho bộ nhớ chính đã chứa trong MCU của bộ vi điều
khiển MCU (MicroController Unit) là đơn vị trung tâm của bộ vi điều khiển.
Ta xét ví dụ một bộ vi điều khiển MCU (MicroController Unit) theo sơ đồ
khối của bộ MCU có cấu trúc nhƣ hình H.1-2 dƣới đây Cổng vào-ra
H.1-2: Sơ đồ khối của bộ vi điều khiển điển hình 1 chíp (CPU)
ROM RAM EPROM
Or
EEPROM
điều khiển có các thanh ghi vào ra I/O và các thanh ghi CPU; các thanh ghi đƣợc
chia làm 3 loại: thanh ghi dữ liệu, thanh ghi điều khiển và thanh ghi trạng thái. Các
thanh ghi này cùng với CPU và cổng I/O đƣợc sử dụng trong các hoạt động vào ra.
Mỗi thanh ghi dữ liệu I/O lƣu giữ các số liệu vào ra gắn với cổng I/O tƣơng
ứng. Cổng I/O là tập hợp các chân I/O của chíp ứng với số liệu, thông thƣờng các
cổng I/O có 8 đƣờng truyền byte dữ liệu; các cổng này có thể lập trình địa chỉ vào,
ra hoặc cả hai chiều vào – ra . Các chiều vào, ra luôn xét đối với chíp (VD: “Input”
có nghĩa dữ liệu từ bên ngoài vào)
Hoạt động đƣa dữ liệu vào nhƣ sau: Bộ cảm biến lấy tín hiệu (nhƣ nhiệt độ,
tốc độ ) đƣợc nối với cổng vào ra. Dữ liệu từ bộ cảm biến đƣợc truyền vào thanh
ghi của cổng, bộ vi điều khiển gửi nội dung của thanh ghi này vào CPU để xử lý,
Một khả năng khác là gửi dữ liệu này vào bộ nhớ để lƣu trữ. Hoạt động lấy ra cũng
tƣơng tự; CPU gửi byte dữ liệu tới thanh ghi ở cổng ra. Byte này đƣợc truyền tới
thiết bị ngoại vi đƣợc nối tới.
Các thanh ghi điều khiển và thanh ghi trạng thái điều khiển, chỉ thị quá trình
vào – ra của bộ vi điều khiển. Ví dụ nhƣ bộ vi điều khiển đo tốc độ động cơ bàng
cách đếm xung do bộ cảm biến tốc độ gửi tới trong một khoảng thời gian nhất định,
thanh ghi giữ liệu đếm số xung theo sƣờn trƣớc hoặc sƣờn sau của xung. 15 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Bộ vi điều khiển có bộ thời gian bên trong, mỗi lần đặt (set) và đặt lại (Reset)
có một bit đặc biệt gọi là bit trạng thái; Trong thanh ghi trạng thái khi chu kỳ thời
gian đƣợc lập trình đã kết thúc, trạng thái của bit này sẽ thay đổi.
Khi chƣơng trình phát hiện sự thay đổi bit trạng thái, nó đọc thanh ghi dữ
liệu thích hợp để xem có bao nhiêu xung đã đƣợc gửi tới, từ đó tính ra tốc độ và xử
(CPU)
ROM RAM EPROM
Or
EEPROM
BUS dữ liệu trong
Mạch
địa chỉ
Bộ
đệm
dữ
liệu
Các thanh ghi điều
khiển và trang thái
Đồng hồ
Các đƣờng
điều khiển
V
Các loại ngôn ngữ bậc cao thƣờng dùng ngôn ngữ chung, không phụ thuộc
vào phần cứng, do vậy máy không hiểu và thực hiện đƣợc. Nhờ chƣơng trình dịch
(Compiler) ngôn ngữ bậc cao đƣợc dịch thành ngôn ngữ máy. Các loại ngôn ngữ
bậc cao thông dụng là BASIC, FORTRAN, ADA, COBOL, C Đối với vi điều
khiển thì C là ngôn ngữ thông dụng nhất vì nó vừa mang tính chất của ngôn ngữ
bậc cao vừa có tính chất của hợp ngữ. Với hợp ngữ, ngƣời lập trình có thể điều
khiển trực tiếp bộ vi điều khiển.
Hệ cơ số 16 ( HEXADECIMAL)
Các bộ vi điều khiển thƣờng đựoc lập trình dƣới dạng hợp ngữ và dùng hệ cơ
số 16 đẻ biểu diễn các thông tin. bảng biểu diễn hệ số 16 coi một nhóm 4 bít mã nhị
phân tƣơng ứng với 16 số và ký tự từ 0 đến 9 và từ A đến F nhƣ bảng dƣới đây:
17 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Dạng nhị phân
Dạng Hexa
Dạng thập phân
0000
0
0
0001
1
1
0010
2
12
1101
D
13
1110
E
14
1111
F
15
Nhƣ vậy dãy số nhị phân ở trên đƣợc nhóm theo 4 bít có biểu diễn dạng
hexa đƣợc ký hiệu là $B65 theo Motorola với dấu $ chỉ dạng henxa, hoặc Ox B65,
hoặc B65H theo ngôn ngữ chuẩn.
101101100101
Tƣơng tự thập phân của BC4 là B
6
5
B
C
4
B * 16
2
VD: câu lệnh hợp ngữ ORG $ E000 (với ORG chữ viết tắt của Origin khởi
đầu địa chỉ xuất phát là $E000).
Đối vi điều khiển thƣờng chạy chƣơng trình Assembler và Linker trên máy
tính mà không chạy chính trong bộ vi điều khiển. Các chƣơng trình này tạo lên mã
máy mà bộ vi điều khiển có thể thực hiện đƣợc.
1.2 Các họ vi điều khiển thông dụng
1.2.1 Vi điều khiển trong máy tính
Máy vi tính hiện nay với các thế hệ Pentum thế hệ mới có tốc độ xử lý nhanh
hơn, nhiều lệnh. Nếu biết khi thác ứng dụng các máy vi tính trong lĩnh vực công
nghiệp, truyền động điện sẽ tiếp tục nâng cấp đƣợc hệ thống truyền động sẵn có ở
nƣớc ta. Trong máy tính có vi xử lý nhƣ 80286, 8088…. Việc ứng dụng các vi xử lý
này sẽ tăng tốc độ xử lý tín hiệu gấp 2 lần so với các bộ vi xử lý chuyên dùng khác.
1.2.2 Các vi điều khiển sử dụng trong công nghiệp
* Họ vi điều khiển AMCC.
* Họ vi điều khiển Atmel. 19 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
* Họ vi điều khiển Cypress MicroSystems.
* Họ vi điều khiển Freescale Semiconductor.
* Họ vi điều khiển Fujitsu.
* Họ vi điều khiển Intel.
* Họ vi điều khiển Microchip.
* Họ vi điều khiển National Semiconductor.
* Họ vi điều khiển STMicroelectronics.
* Họ vi điều khiển Philips Semiconductors.
Tần số hoạt động: 0 Hz đến 24 MHz.
3 chế độ khóa bộ nhớ.
256 x 8-Bit RAM nội.
32 đƣờng I /O lập trình đƣợc (4 port).
3 timer/counter 16-bit.
8 nguồn ngắt.
Chế độ hạ nguồn và chế độ lƣời tiêu tốn công suất thấp
1.2.3.2 Cấu trúc bên trong của AT89C52
Cấu trúc của vi điều khiển AT89C52 là bộ xử lý trung tâm (CPU) và đƣợc
thể hiện theo sơ đồ khối H.1-4: H.1-4: Sơ đồ khối vi điều khiển AT89C52 21 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1.2.3.3 Sơ đồ chân và chức năng AT89C52
Họ MSC-51 có nhiều kiểu đóng vỏ khác nhau, chẳng hạn nhƣ hai hàng chân
DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng
chíp không có chân đỡ LLC (Leadless Chip Carrier) và đều có 40 chân cho các
chức năng khác nhau nhƣ vào ra I/0, đọc , ghi , địa chỉ, dữ liệu và ngắt. Tuy nhiên,
vì hầu hết đóng vỏ 40 chân với hai hàng chân DIP, nên chúng ta cùng khảo sát vi
điều khiển AT89C51 với 40 chân dạng DIP nhƣ hình vẽ H.1-5 dƣới đây.
Ngõ vào nhận dữ liệu nối tiếp
P3.1
TxD
Ngõ xuất dữ liệu nối tiếp
P3.2
INT0
Ngõ vào ngắt cứng thứ 0
P3.3
INT1
Ngõ vào ngắt cứng thứ 1
P3.4
T0
Ngõ vào của Timer/Counter thứ 0
P3.5
T1
Ngõ vào của Timer/Counter thứ 1
P3.6
WR
Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7
RD
Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0
T2
Ngõ vào của Timer/Counter thứ 2
P1.1
T2X
Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
+ Chân RESET (RST) : Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để
thiết lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ đƣợc thiết lập lại các giá
Ghi chú: khi không sử dụng có thể bỏ trống chân này.
+ Chân EA : Chân EA dùng để xác định chƣơng trình thực hiện đƣợc lấy từ
ROM nội hay ROM ngoại.
Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chƣơng trình lấy từ
bộ nhớ nội.
Khi EA nối với logic 0 (0V) thì Vi điều khiển thực hiện chƣơng trình lấy từ
bộ nhớ ngoại.
1.2.3.4 Tổ chức bộ nhớ
Khảo sát tổ chức bộ nhớ 8952
AT 89C52 có bộ nhớ đƣợc tổ chức theo cấu trúc Harvard: có những vùng bộ
nhớ riêng biệt cho chƣơng trình và dữ liệu.
Nhƣ đã nói ở trên, cả chƣơng trình và dữ liệu có thể ở bên trong ; dù vậy
chúng có thể đƣợc mở rộng bằng các thành phần ngoài lên đến tối đa 64 Kbytes bộ
nhớ chƣơng trình và 64 Kbytes bộ nhớ dữ liệu. 24 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Bộ nhớ bên trong bao gồm ROM và RAM trên chip bao gồm nhiều thành
phần: Phần lƣu trữ đa dụng, phần lƣu trữ địa chỉ hóa từng bit, các bank thanh ghi và
các thanh ghi chức năng đặc biệt.
FFFF
0000 0000
Bộ nhớ trên chip Bộ nhớ mở rộng
H.1-7: Tóm tắt các vùng bộ nhớ của AT89C52
Hai đặc tính cần lƣu ý là:
Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và có thể
được truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.
Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoài so với bộ xử lí
khác.
Chi tiết về bộ nhớ RAM trên chip
Nhƣ sẽ thấy trong hình sau, RAM bên trong AT89C52 đƣợc phân chia thành
các bank thanh ghi (00H – 1FH), RAM địa chỉ hóa bit (20H – 2FH), RAM đa dụng
(30H – 7FH) và các thanh ghi chức năng đặc biệt trong khoảng (80H – FFH).
RAM đa dụng: Mặc dù trên hình cho thấy 80 bytes RAM đa dụng chiếm các
địa chỉ từ 30H – 7FH, 32 bytes dƣới cùng từ 00H – 1FH cũng có thể đƣợc dùng với
mục đích tƣơng tự (mặc dù các địa chỉ này đã có mục đích khác). 25
E4
E3
E2
E1
E0
ACC D0
D7
D6
D5
D4
D3
D2
_
D0
PSW
30
B8
_
_
_
B5
B4
B3
B2
B1
B0
P3
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
A8
AF
A7
A6
A5
A4
A3
A2
A1
A0
P2
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
30
25
2F
2E
2D
2C
2B
2A
29
28
90
97
96
95
94
93
92
91
90
P1
24
27
26
25
24
23
22
0F
0E
0D
0C
0B
0A
09
08
8B
không đƣợc địa chỉ hóa bit
TL1
20
07
06
05
04
03
02
01
00
8A
không đƣợc địa chỉ hóa bit
TL0
1F
BANK 3
89
không đƣợc địa chỉ hóa bit
TMOD
18
(Mặc định cho R0 – R7 M)
81
không đƣợc địa chỉ hóa bit
SP
00
80
87
86
85
84
83
82
81
80
P0
Mọi địa chỉ trong vùng RAM đa dụng đều có thể đƣợc truy xuất tự do dùng
cách đánh địa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở địa chỉ 5FH của
RAM nội vào thanh ghi tích lũy, lệnh sau sẽ đƣợc dùng:
MOV A, 5FH
Lệnh này di chuyển 1 byte dữ liệu dùng cách đánh địa chỉ trực tiếp để xác
định “địa chỉ nguồn” (5FH). Đích nhận dữ liệu đƣợc ngầm xác định trong mã lệnh
là thanh ghi tích lũy A.
RAM bên trong cũng có thể đƣợc truy xuất dùng cách đánh địa chỉ gián tiếp
qua R0 hay R1. Ví dụ, hai lệnh sau thi hành cùng nhiệm vụ nhƣ lệnh đơn ở trên:
H.1-8: Cấu trúc bộ nhớ RAM bên trong AT89C52