Sau khi đã xác định được hàm truyền của đối tượng và bằng các phương pháp tổng hợp bộ điều chỉnh ta đã xác định được bộ điều chỉnh cần thiết cho hệ thống. Việc tiếp thao ta phải xác định các tham số bộ điều chỉnh sao cho phù hợp với yêu cầu điều khiển.
Việc xác định các thông số của bộ điều chỉnh sẽ phụ thuộc vào đáp ứng quá độ mà ta tìm được. Do điều kiện không làm thực nghiệm được để xác định hàm truyền đối tượng. Nên việc xác định các thông số cho bộ điều chỉnh cũng chỉ nêu được về mặt lý thuyết.
4.3. KHẢO SÁT HỆ THỐNG ĐIỀU CHỈNH TỐC ĐỘ GIể
Qua các bước trên ta đã tìm được mô hình toán học của đối tượng, cùng với việc tìm được qui luật điều chỉnh. Đồng thời xác định được các tham số của bộ điều chỉnh hợp lý theo lý thuyết. Chúng ta tiến hành thí nghiệm mô phỏng xác định đặc tính của hệ thống xem ứng với các thông số của bộ điều chỉnh ta tổng hợp được. Ở đây sẽ sử dụng phần mềm MATLAB 6.5 để mô phỏng. Bằng việc xây dựng sơ đồ cấu trúc trên Simulink, chúng ta nhập các giá trị thông số điều
chỉnh với đầu vào là hàm bậc thang 1(t) ta sẽ thu được đặc tính quá độ điều chỉnh.
4.4.KẾT LUẬN CHƯƠNG 4
Ở chương 4 ta đã tìm hiểu được một số phương pháp nhận dạng đối tượng điều khiển. Áp dụng phương pháp nhận dạng thực nghiệm cho hệ thống thí nghiệm quá trình sấy để xác định hàm truyền của nó. Từ đó nghiên cứu các phương pháp tổng hợp bộ điều khiển PID.
Xong do điều kiện về trang thiết bị nên trong chương này chỉ nêu được phương pháp giải quyết bài toán chứ chưa tìm được số liệu thực tế.
CHƯƠNG V
XÂY DỰNG THIẾT KẾ SƠ ĐỒ MẠCH ĐIỀU KHIỂN 5.1. CẤU TRÚC SƠ ĐỒ MẠCH
Mục đích lắp mạch điều khiển để điều khiển tốc độ hỗn hợp dòng khí trong quá trình thí nghiệm.
Mạch bao gồm các khối sau:
- Khối xử lý trung tâm
- Khối giao tiếp bằng bàn phím - Khối cảm biến tốc độ
- Khối hiển thị tốc độ
Hình 5.1. Sơ đồ khối tổng quát mạch điều khiển 5.1.1. Khối xử lý trung tâm.
Đây là khối quan trọng nhất trong bản mạch, nó có nhiệm vụ tính toán, xử lý toàn bộ các hoạt động của mạch. Để nó có thể hoạt động theo ý muốn ta cần nạp vào nó chương trình điều khiển. Ở đây ta sử dụng vi điều khiển AT89C51.
*Vi điều khiển AT89C51
AT89C51 là một vi điều khiển 8 bit được chế tạo theo công nghệ CMOS, có chất lượng cao, công suất thấp với 4 KB Flash PEROM (Programmable and Erasable Read Only Memory). Thiết bị này được chế tạo bằng cách sử dụng kỹ
thuật bộ nhớ không bốc hơi mật độ cao của Atmel và tương thích với chuẩn công nghiệp MCS-51 về tập lệnh và các chân ra. AT89C51 là một vi điều khiển mạnh, cung cấp một sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển.
*Các đặc trưng chủ yếu của AT89C51
- Tương thích hoàn toàn với họ MCS-51 của Intel.
- Bộ nhớ chương trình 4 KB thuộc loại Flash Memory.
- Độ bền: 1000 lần ghi/xoá.
- Tần số hoạt động: 0Hz đến 24MHz.
- 3 chế độ khoá bộ nhớ.
- 128 x 8 bit RAM nội.
- 32 đường I/O lập trình được (4 port).
- 2 Timer/Counter 16bit.
- 6 nguồn ngắt.
- Giao tiếp nối tiếp lập trình được.
- Chế độ hạ nguồn và chế độ nhàn rỗi tiêu tốn công suất thấp.
* Sơ đồ chân
Hình 5.2. Sơ đồ chân vi điều khiển AT89C51
* Sơ đồ khối
Hình 5.3. Sơ đồ khối vi điều khiển AT89C51
• Mô tả chức năng các chân:
Vcc: chân cung cấp điện áp nguồn 5V cho chip.
GND: chân nối đất.
Port 0: Từ chân 32 đến chân 39 (P0.0 đến P0.7). Port 0 có hai chức năng, trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường I/O, đối với các thiết kế lớn có bộ nhớ ngoài, Port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp.
Để có thể vừa làm đầu vào, vừa làm đầu ra thì mỗi chân phải được nối tới một điện trở 10KΩ kéo lên bên ngoài. Sở dĩ như vậy là vì Port 0 có dạng cực máng hở, đây là điểm khác biệt so với các Port 1, 2, 3.
Port 1: Từ chân 1 đến chân 8 trên chip. Port 1 chỉ có chức năng xuất nhập nên nó được dùng để giao tiếp với thiết bị ngoại vi.
Port 2: Từ chân 21 đến chân 28. Port 2 cũng có hai công dụng, hoặc làm nhiệm vụ xuất nhập hoặc làm nhiệm vụ là byte địa chỉ cao của bus địa chỉ 16bit cho các thiết kế có bộ nhớ ngoài.
Port 3: Từ chân 10 đến chân 17, Port 3 ngoài chức năng xuất nhập nó còn có nhiều chức năng riêng. Mỗi chân có chức năng riêng liên quan đến các đặc trưng cụ thể của vi điều khiển.
Bảng 5.1. Chức năng của các chân của Port 3 Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của Port nối tiếp P3.1 TxD B1H Chân phát dữ liệu của Port nối tiếp P3.2 INT0 B2H Ngừ vào ngắt ngoài 0
P3.3 INT1 B3H Ngừ vào ngắt ngoài 1 P3.4 T0 B4H Ngừ vào của bộ định thời/đếm 0 P3.5 T1 B5H Ngừ vào của bộ định thời/đếm 1 P3.6 WR B6H Điều khiển ghi bộ nhớ dữ liệu ngoài P3.7 RD B7H Điều khiển đọc bộ nhớ dữ liệu ngoài Chân cho phép bộ nhớ chương trình PSEN (Program Store Enable).
PSEN là tín hiệu xuất trên chân 29. Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài. Chân này thường nối với chân cho phép xuất OE (Output Enable) của EPROM hoặc ROM để cho phép đọc các byte lệnh.
PSEN ở mức logic 0 trong thời gian tìm – nạp lệnh. Ngược lại, khi thực thi một chương trình chứa ở ROM nội thì nó được duy trì ở mức logic 1.
ALE (Address Latch Enable) - chân cho phép chốt địa chỉ:
AT89C51 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE để giải đa hợp bus dữ liệu và bus địa chỉ. Khi Port 0 được sử dụng làm bus địa chỉ/bus dữ liệu đa hợp, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của địa chỉ 16bit) vào một thanh ghi ngoài trong suốt 1/2 đầu của chu kỳ bộ nhớ. Sau khi
điều này đã được thực hiện, các chân của Port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt 1/2 thứ hai của chu kỳ bộ nhớ.
Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip vi điều khiển và có thể được dùng làm xung Clock cho phần còn lại của hệ thống.
EA (External Access) – chân truy xuất bộ nhớ ngoài:
Ngừ vào này (chõn 31 của AT89C51) cú thể được nối tới 5V (lụgic 1) hoặc với GND (logic 0). Nếu chân này nối lên 5V thì AT89C51 thực thi chương trình trong ROM nội. Nếu chân này nối tới GND (và chân PSEN cũng ở logic 0), chương trình cần thực thi chương trình chứa ở bộ nhớ ngoài.
Chõn RST(RESET): Ngừ vào RST (chõn 9) là ngừ vào xoỏ chớnh của AT89C51 để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngừ vào này được treo lờn mức logic 1 tối thiểu 2 chu kỳ mỏy, cỏc thanh ghi bên trong của chip được nạp lại các giá trị thích hợp cho việc khởi động lại hệ thống.
Hoạt động RESET được thể hiện bởi hai sơ đồ mạch sau:
Ở cả hai mạch này, khi ta cấp nguồn cho chip thì nó sẽ tự động được Reset.
Lý do là lúc này tụ C1 và C2 được coi là ngắn mạch nên tại chân 9 của AT89C51 sẽ có điện áp mức cao (logic 1) trong khoảng thời gian vừa đủ để AT89C51 RESET mạch nội bộ, nghĩa là nó khởi tạo giá trị ban đầu cho các
+5V
RST R1
100
R2 10K C1
Reset 10u
Manual reset
+5V
RST
R3 10K C2 10u
Power-on reset
thanh ghi đặc biệt SFR và đặt bộ đếm chương trình PC (Program Counter) trỏ đến địa chỉ 00h của bộ nhớ chương trình. Do tụ C1 được nạp với hằng số thời gian t = C1.R2 nên điện áp trên chân RST của AT89C51 giảm dần đến giá trị nhỏ hơn 0,5V thì quá trình RESET kết thúc.
Các chân XTAL1 và XTAL2: Vi điều khiển AT89C51 có một bộ dao động trên chip nhưng vẫn cần một bộ đồng hồ bên ngoài để kích hoạt. Bộ dao động thạch anh bên ngoài thường được nối tới các chân vào XTAL1 (chân 19) và XTAL2 (chân 18). Sơ đồ nối dao động ngoài như sau:
Ở đây ta cần hai tụ 33p và một bộ dao động thạch anh (thường dùng bộ dao động có tần số 11,0592MHz).
* Tổ chức bộ nhớ.
AT89C51 có không gian bộ nhớ riêng cho chương trình và dữ liệu. Cả hai bộ nhớ chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên ta có thể mở rộng bộ nhớ chương trình và bộ nhớ dữ liệu bằng cách sử dụng các chip nhớ bên ngoài với dung lượng tối đa là 64K cho bộ nhớ chương trình và bộ nhớ dữ liệu.
+ Bộ nhớ chương trình ROM
Có không gian cực đại là 64KB được đánh địa chỉ từ 0000h ÷ FFFFh. Trong đó có 4KB là bộ nhớ nội trú nằm trong chíp được đánh địa chỉ từ 0000h ÷ 0FFFh, còn 60KB mở rộng được đặt địa chỉ từ 1000h ÷ FFFFh. Tuỳ thuộc vào dung lượng chương trình mà bộ nhớ được thêm vào theo kích thước phù hợp.
XTAL2
XTAL1 CRY STAL C3
33p
C4
33p
Trong quá trình điều khiển việc lựa chọn bộ nhớ ROM nằm trong hay bên ngoài hoặc sử dụng cả hai, được thực hiện bằng cách nối đến chân EA. Ở vi điều khiển 8051 thì chân EA được nối tới dương nguồn Vcc.
Trình tự thực hiện chương trình trong ROM.
Sau khi nạp chương trình vào ROM thông qua bộ đốt ROM hay cổng COM, Chương trình sẽ có địa chỉ bắt đầu từ 0000h. Để xác định vị trí lệnh thực hiện bộ vi điều khiển sử dụng thanh ghi chương trình(bộ đếm chương trình PC), thanh ghi này có độ dài 16 bit. Khi 8051 được bật nguồn, bộ đếm chương trình PC có nội dung 0000h. Lúc này chương trình sẽ nạp lệnh trong ROM có địa chỉ 0000h.
Sau đó bộ đếm chương trình tăng lên trỏ đến lệnh tiếp theo được thiết lập trong ROM.
+ Bộ nhớ dữ liệu RAM
Trong vi điều khiển 8051 bộ nhớ dữ liệu RAM có kích thước 128 byte được định địa chỉ từ 00h ÷ 7Fh, nhưng ở một số như 8052 thì có 256 byte RAM.
128 byte RAM trong 8051 được chia thành từng nhóm như sau:
Hình 5.4. Tổ chức RAM của 8051
- Từ ngăn nhớ 00h đến 1Fh, tổng cộng 32 byte, được dành làm các băng thanh ghi và ngăn xếp.
- Từ ngăn nhớ 20h đến 2Fh, tổng cộng có 16 byte, được làm bộ nhớ đọc/ghi định địa chỉ được theo bit.
- Từ ngăn nhớ 30h đến 7Fh, tổng cộng 80 byte được dùng để lưu thông tin khi đọc và khi ghi.
* Các thanh ghi chức năng đặc biệt
Là các thanh ghi đảm nhận các chức năng khác nhau trong bộ vi điều khiển, chúng nằm bên trong vi xử lí chiếm vùng không gian nhớ là 128byte có địa chỉ từ 80h ÷ FFh.
+ Thanh ghi tích luỹ(thanh ghi chứa ACC)
Trong lập trình nó được viết tắt là thanh ghi A, đây là thanh ghi quan trọng nhất trong bộ vi điều khiển dùng để lưu trữ các toán hạng thực hiện các phép toán, đồng thời nó còn lưu trữ kết quả phép toán. Thanh ghi này có địa chỉ 0E0h và có kích thước 8bit.
+ Thanh ghi B
Thường được sử dụng khi thực hiện các phép toán nhân, chia. Đối với các lệnh khác có thể xem thanh ghi B là thanh ghi tạm thời có địa chỉ 0F0h.
+ Thanh ghi con trỏ ngăn xếp SP
Khi bắt đầu thực hiện lệnh con trỏ SP trỏ đến đỉnh Stack, giá trị của nó sẽ thay đổi tự động khi thực hiện các lệnh PUSH và POP. Khác với bộ vi xử lí đa năng, ở bộ vi điều khiển khi ta thực hiện lệnh PUSH dữ liệu vào ngăn xếp thì giá trị của con trỏ ngăn xếp tăng lên và ngược lại khi ta thực hiện lệnh POP giá trị của con trỏ ngăn xếp sẽ giảm đi.
Ngăn xếp có thể đặt ở bất kỳ vị trí nào trong RAM, nhưng thông thường sau khi ta khởi động lại hệ thống, con trỏ ngăn xếp sẽ mặc định trỏ đến địa chỉ khởi
đầu 07h, ngăn xếp bắt đầu từ địa chỉ 08h. Còn nếu trong quá trình lập trình ta muốn thay đổi vị trí của Stack ta phải gán giá trị địa chỉ mới vào thanh ghi SP.
+ Thanh ghi DPTR
Là thanh ghi 16bit gồm hai thanh ghi có độ dài 8bit hợp thành đó là thanh ghi byte cao DPH và thanh ghi byte thấp DPL. Con trỏ dữ liệu có thể sử dụng như một thanh ghi 16bit hoặc hai thanh ghi 8bit độc lập:
- DPH có địa chỉ 82h
- DPL có địa chỉ 83h
+ Từ trạng thái chương trình(thanh ghi cờ PSW)
Là thanh ghi 8bit có địa chỉ 0D0h mỗi bit đảm nhiệm một chức năng cụ thể.
Chức năng các bit thể hiện
Bit 7 6 5 4 3 2 1 0 Tên CY AC F0 RS1 RS0 OV - P
- Cờ nhớ CY: cờ này sẽ được thiết lập khi có nhớ từ bit D7 và là kết quả của lệnh cộng hoặc trừ 8bit. Có thể thiết lập trực tiếp cờ CY lên 1 hoặc xoá về 0 bằng lệnh “SETB” và “CLR”.
- Cờ nhớ phụ AC: cờ này báo có nhớ từ bit D3 sang D4 ở phép cộng ADD hoặc trừ SUB.
- Cờ bậc P: cờ bậc(cờ chẵn lẻ) phản ánh số bit 1 trong thanh ghi A là chẵn hay lẻ. Nếu thanh ghi A chứa một số chẵn các bit 1 thì P=0 còn chứa một số lẻ bit 1 thì P=1.
- Cờ tràn OV: cờ được thiết lập mỗi khi kết quả của phép tính số có dấu quá lớn làm cho bit cao bị tràn vào bit dấu.
- Cờ không F0: cờ này có thể cho người sử dụng tự định nghĩa một trạng thái nào đó trong lập trình điều khiển.
- RS1, RS2 là các cờ chỉ ra địa chỉ băng thanh ghi ta sử dụng. Trong bộ nhớ dữ liệu của vi điều khiển 8051 có một vùng nhớ gọi là vùng nhớ băng thanh
ghi. Có 4 băng thanh ghi được đánh số từ 0→ 3 trong mỗi băng thanh ghi lại có 8 thanh ghi đều được gọi tên từ R0→ R7. Trong lập trình có thể sử dụng tên R0→R7 để truy cập đến vùng nhớ đó.
+ Các thanh ghi Port: Các Port xuất nhập của 89C51 bao gồm Port 0 tại địa chỉ 80H, Port 1, 2, 3 tương ứng tại các địa chỉ là 90H, A0H và B0H. Các Port 0, 2, 3 không được dùng để xuất nhập nếu ta sử dụng bộ nhớ ngoài hoặc có một số đặc tính đặc biệt của 89C51 được sử dụng. Tất cả các Port đều định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh.
+ Các thanh ghi định thời: AT89C51 có hai bộ đếm/định thời (timer/counter) 16bit để định các khoảng thời gian hoặc để đếm các sự kiện.
Bảng 5.2. Các thanh ghi chức năng đặc biệt của bộ định thời SFR của bộ định
thời Mục đích Địa chỉ Định địa chỉ
bit
TCON Điều khiển 88H Có
TMOD Chọn chế độ 89H Không
TL0 Byte thấp của bộ định thời 0 8AH Không TL1 Byte thấp của bộ định thời 1 8BH Không TH0 Byte cao của bộ định thời 0 8CH Không TH1 Byte cao của bộ định thời 1 8DH Không Thanh ghi chế độ định thời TMOD (Timer Mode register): nằm tại địa chỉ 89H. TMOD chứa hai nhóm 4bit dùng để thiết lập chế độ hoạt động cho bộ định thời 0 và bộ định thời 1. TMOD không được định địa chỉ từng bit. TMOD được nạp một lần bởi phần mềm ở thời điểm bắt đầu của một chương trình để khởi động chế độ hoạt động của bộ định thời.
Bảng 5.3. Chức năng của các bit trong thanh ghi TMOD
Bit Tên Timer Mô tả
7 GATE 1 Bit điều khiển cổng. Khi được set lên 1, bộ định thời chỉ hoạt động trong khi INT1 ở mức cao
6 C/T 1
Bit chọn chức năng đếm hoặc định thời:
1 = đếm sự kiện.
0 = định thời trong một khoảng thời gian.
5 M1 1 Bit chọn chế độ thứ nhất
4 M0 1 Bit chọn chế độ thứ hai
3 GATE 0 Bit điều khiển cổng cho bộ định thời 0 2 C/T 0 Bit chọn chức năng đếm hoặc định thời
cho bộ định thời 0
1 M1 0 Bit chọn chế độ thứ nhất
0 M0 0 Bit chọn chế độ thứ hai
Thanh ghi điều khiển định thời TCON (Timer Control register): chứa các bit điều khiển và trạng thái của bộ định thời 0 và 1 được thể hiện như sau:
Bảng 5.4. Chức năng các bit trong thanh ghi TCON
Bit Ký hiệu
Địa chỉ
bit Mô tả
TCON.7 TF1 8FH
Cờ tràn của bộ định thời 1. Cờ này được set bởi phần cứng khi có tràn, được xoá bởi phần mềm
hoặc bởi phần cứng khi bộ vi xử lý trỏ đến trình phục vụ ngắt
TCON.6 TR1 8EH
Bit điều khiển của bộ định thời 1. Bit này được set hoặc được xoá bởi phần mềm để điều khiển bộ định thời hoạt động hay ngưng hoạt động TCON.5 TF0 8DH Cờ tràn của bộ định thời 0
TCON.4 TR0 8CH Bit điều khiển hoạt động của bộ định thời 0
TCON.3 IE1 8BH
Cờ ngắt bên ngoài 1 (kích khởi cạnh). Cờ này được set bởi phần cứng khi có cạnh âm (xuống)
xuất hiện trên chân INT1, được xoá bởi phần mềm, hoặc phần cứng khi CPU trỏ đến trình
phục vụ ngắt
TCON.2 IT1 8AH
Cờ ngắt bên ngoài 1(kích khởi cạnh hoặc mức) Cờ này được set hoặc xoá bởi phần mềm khi xảy ra cạnh âm (xuống) hoặc mức thấp tại chân
ngắt ngoài
TCON.1 IE0 89H Cờ ngắt bên ngoài 0(kích khởi cạnh).
TCON.0 IT0 88H Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức) + Các thanh ghi của Port nối tiếp: Bên trong AT89C51 có một Port nối tiếp để truyền thông với các thiết bị nối tiếp như các thiết bị đầu cuối hoặc modem, hoặc để giao tiếp với các IC khác có mạch giao tiếp nối tiếp. Một thanh ghi được gọi là bộ đệm dữ liệu nối tiếp SBUF (Serial Data Buffer) ở địa chỉ 99H lưu trữ