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

Đồ án phải xây dựng được hệ xử lý cho việc thu thập và xử lý số liệu dựa trên công nghệ FPGA

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 (1.95 MB, 107 trang )

LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô trong
trường đại học Công nghệ thông tin và truyền thông Thái Nguyên đã tận tình
giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt
thời gian học tập tại trường.
Đặc biệt em xin được gửi lời cảm ơn chân thành đến thầy Lê Bá Dũng
người đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình
thực hiện đồ án tốt nghiệp.
Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều
kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa
học nghiêm túc, hiệu quả đây là những điều rất cần thiết cho em trong quá trình
học tập và công tác sau này.
Sau cùng em xin gửi lời cảm ơn chân thành tới gia đình bạn bè đã động
viên đóng góp ý kiến và giúp đỡ trong quá trình học tập nghiên cứu và hoàn
thành đồ án tốt nghiệp.

Thái Nguyên, ngày 19 tháng 06 năm 2012
Sinh viên thực hiện

Nguyễn Tất Quang

1


LỜI CAM ĐOAN
Em xin cam đoan nội dung đồ án của em là hoàn toàn do em tự nghiên
cứu và xây dựng, không sao chép của đồ án khác. Nếu sai em xin chịu trách
nhiệm hoàn toàn và chịu mọi kỷ luật của Khoa và Trường đề ra.

Thái Nguyên, ngày 19 tháng 06 năm 2012
Sinh viên thực hiện



Nguyễn Tất Quang

2


MỤC LỤC

LỜI CAM ĐOAN........................................................................................2
Em xin cam đoan nội dung đồ án của em là hoàn toàn do em tự nghiên
cứu và xây dựng, không sao chép của đồ án khác. Nếu sai em xin chịu
trách nhiệm hoàn toàn và chịu mọi kỷ luật của Khoa và Trường đề ra.2
.......................................................................................................................2
MỤC LỤC....................................................................................................3
DANH MỤC CÁC BẢNG BIỂU..............................................................15
LỜI NÓI ĐẦU...........................................................................................20
PHẦN MỞ ĐẦU........................................................................................21
.....................................................................................................................21
Chương 1....................................................................................................22
TỔNG QUAN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL..........22
1.3.1. Các hằng (constant)..................................................................27
1.3.2. Các biến (variable)...............................................................27
1.3.3. Các kiểu tín hiệu (signal).....................................................27
1.4.2. Kiểu nguyên..........................................................................28
1.4.3. Các kiểu dữ liệu tiền định nghĩa trong VHDL..................28
1.4.5. Kiểu Record..........................................................................29
1.4.6. Các kiểu STD_LOGIC........................................................29
Chương 2....................................................................................................33
TÌM HIỂU CHUNG VỀ BỘ KIT THỰC HÀNH FPGA FTKI_1.0.....33
2.1. Tổng quan về bộ KIT thực hành FPGA FTKI_1.0...................34

Hình 2.1. Sơ đồ khối bộ thực hành FPGA FTKI_1.0.......................................................................34
Hình 2.2 Vị trí các thành phần trên bộ thực hành FPGA FTKI_1.0................................................36

3


2.2. Tìm hiểu về một số linh kiện trong bộ thực hành Kit FPGA
FTKI_1.0.................................................................................................37
2.2.1. Cổng nối tiếp RS232............................................................37
Hình 2.3: Sơ đồ chân tín hiệu của RS232Ví trí các chân kết nối với FPGA XC3S250E:..................38
Bảng 2.1: vị trí các chân kết nối của RS232 với FPGA XC3S250E...................................................38

2.2.2. LCD Character 16 ký tự 2 hàng 1602M............................38
Hình 2.4: LCD Character 1602M.....................................................................................................39
Hình 2.5: Sơ đồ chân của LCD 1602M............................................................................................39
Bảng 2.2: Mô tả 16 chân của LCD 1602M......................................................................................40
Bảng 2.3: Vị trí và chức năng các chân kết nối giữa LCD và FPGA XC3S250E...............................41
Hình 2.6: DDRAM Memory của LCD 1602M..................................................................................41
Hình 2.7: Bảng ánh xạ giữa mã ký tự và mẫu ký tự.......................................................................42

2.2.3. Khối hiển thị gồm 3 LED 7 thanh:.....................................45
Hình 2.8: Sơ đồ kết nối chân của 1 đèn LED 7 segment................................................................45
Bảng 2.5: Bảng đối chiếu giá trị hiển thị và tín hiệu điều khiển hiển thị......................................46
Bảng 2.6: Vị trí các chân kết nối với FPGA của 3 LED 7 segment..................................................47

2.2.4. Bàn phím ma trận 4x5.........................................................47
Hình 2.9: Sơ đồ khối của bàn phím ma trận 4x5...........................................................................48
Bảng 2.7: Vị trí các chân kết nối của bàn phím ma trận vào FPGA...............................................49

2.2.5. Hiển thị LED và công tắc Jump.........................................49

Bảng 2.8: Vị trí các chân kết nối với FPGA của khối hiển thị LED và công tắc jump.....................50

2.2.6. Đầu vào Analog và chuyển đổi ADC..................................50
Bảng 2.9: Bảng các ngõ vào được chọn bởi bộ giải mã ADC0809.................................................52
Hình 2.12: Sơ đồ kết nối mạch của ADC 0809...............................................................................53
Bảng 2.10: Vị trí chân kết nối của ADC 0809 vào FPGA XC3S250E................................................54

4


2.2.7. Chân cắm mở rộng:.............................................................54
Bảng 2.11: Vị trí các chân của chân cắm mở rộng kết nối với FPGA XC3S250E............................55

2.2.8. Clock.....................................................................................55
Chương 3....................................................................................................56
CƠ SỞ LÝ THUYẾT MÃ HÓA NHIỆT ĐỘ, CÁC SAI SỐ VÀ THUẬT
TOÁN ĐIỀU KHIỂN PID........................................................................56
3.1. Cơ sở lý thuyết mã hóa nhiệt độ.................................................56
Bảng 3.1: Bảng mã hóa nhiệt độ của PT100..................................................................................60

3.2. Các sai số.......................................................................................60
3.3. Bộ điều khiển PID trong FPGA..................................................61
3.3.1. Thuật toán PID trong FPGA..............................................61
3.3.2. Thiết kế song song................................................................63
Hình 3.2 Kiến trúc mạch song song PID trong FPGA.....................................................................63

3.3.3. Thiết kế mạch nối tiếp.........................................................64
Hình 3.3 Kiến trúc mạch nối tiếp PID trong FPGA.........................................................................64

3.3.4. Sử dụng PID hiệu quả hơn..................................................65

Hình 3.4 Sơ đồ khối phương pháp DA...........................................................................................67

3.3.5 Module PID trong FPGA.....................................................68
Chương 4....................................................................................................71
ỨNG DỤNG KIT FPGA VÀ BỘ ĐIỀU KHIỂN PID CHO ĐIỀU
KHIỂN NHIỆT ĐỘ...................................................................................71
4.1. Mở đầu..........................................................................................71
4.2. Cấu trúc mạch điều khiển số sử dụng công nghệ FPGA..........71
4.2.1. Sơ đồ khối mạch điều khiển................................................71
Hình 4.1 Mạch điều khiển xây dựng trên công nghệ FPGA...........................................................71

5


Hình 4.2 Sơ đồ bộ Vi điều khiển.....................................................................................................72

4.2.2. Khối xử lý thiết bị đo...........................................................73
4.2.3. Khối bàn phím......................................................................73
4.2.4. Thuật toán điều khiển PID áp dụng trên FPGA...............73
4.2.5. Cơ cấu chấp hành................................................................73
Hình 4.4 Các tín hiệu thiết kế trong mạch.....................................................................................75

4.2.6. Phân tích hệ thống điều khiển nhiệt độ và thiết lập các
thông số PID...................................................................................75
Hình 4.5 Kết quả mô phỏng cho chọn các thông số P, Ti, Td.........................................................77

4.3. Thử nghiệm thuật toán PID trên KIT........................................77
Chương 5....................................................................................................78
THIẾT KẾ PHẦN MỀM..........................................................................78
5.1. Yêu cầu đối với phần mềm..........................................................78

5.2. Các giải thuật................................................................................78
5.2.1. Ý nghĩa của các thanh ghi được sử dụng và chức năng các
phím của bàn phím........................................................................78
Hình 5.1 Thuật toán quét ma trận bàn phím.................................................................................79

5.2.2. Giải thuật của chương trình chính.....................................80
Hình 5.2 Giải thuật chương trình chính.........................................................................................80

5.2.3. Giải thuật so sánh nhiệt độ đo và nhiệt độ đặt..................82
Hình 5.3 Giải thuật so sánh nhiệt độ đo và nhiệt độ đặt..............................................................82

5.2.4. Luồng chương trình kiểm tra phím nhấn..........................84
5.2.5. Lưu đồ hiển thị nhiệt độ thực ra màn hình.......................85
KẾT LUẬN................................................................................................88

6


Đồ án này đã trình bày một cách đầy đủ và hệ thống về quá trình thiết
kế, thực hiện hệ thống thu thập và xử lý số liệu trên công nghệ FPGA.
Trong đó, chương 1 giới thiệu tổng quan về ngôn ngữ mô tả phần cứng
VHDL. Chương 2 đi tìm hiểu về bộ Kit thực hành FPGA FTKI_1.0 .
Chương 3 trình bày về cơ sở lý thuyết mã hóa nhiệt độ, các sai số và
thuật toán điều khiển PID. Chương 4 là trình bày về ứng dụng kit
FPGA cho điều khiển nhiệt độ với thuật toán PID và chương 5 sẽ giới
thiệu về thiết kế phần mềm cho hệ thống chương này trình bày các giải
thuật được sử dụng trong mã của chương trình ứng dụng...................88
Đồ án này đã thực hiện được hệ thống cho phép thu thập nhiệt độ của
môi trường, cho phép đặt nhiệt độ từ bàn phím. Sau đó hệ thống sẽ
hiển thị nhiệt độ đo và nhiệt độ đặt ra màn hình LCD và so sánh giữa

nhiệt độ đo với nhiệt độ đặt để đưa ra những tín hiệu điều khiển thích
hợp..............................................................................................................88
Trong đồ án này có một vấn đề là nhiệt độ đo và hiển thị chỉ giới hạn
trong khoảng 00° ÷ 99°. Vấn đề này có thể giải quyết được nếu chúng
em có nhiều thời gian hơn.........................................................................88
Trong đồ án còn nhiều thiếu sót, chúng em kính mong nhận được sự
góp ý chỉnh sửa của các thầy cô giáo trong khoa và trong hội đồng để
có thể phát triển và ứng dụng vào thực tế...............................................88
Một lần nữa, chúng em xin chân thành cảm ơn thầy giáo PGS.TS Lê
Bá Dũng đã tận tình chỉ bảo, giúp đỡ chúng em hoàn thành đồ án này.
.....................................................................................................................88
.....................................................................................................................88
TÀI LIỆU THAM KHẢO........................................................................89
[1]. Tống Văn On, Thiết kế mạch số với VHDL & Verilog, NXB Lao
động xã hội.................................................................................................89
[2]. Douglas L.Perry, VHDL Programming by Example.......................89
[3]. VHDL cookbook..................................................................................89
[4]. Spartan-3E Generation FPGA User Guide. [Online] Spartan-3
Generation..................................................................................................89

7


FPGA User Guide......................................................................................89
Extended Spartan-3A,...............................................................................89
Spartan-3E, and Spartan-3.......................................................................89
FPGA Families...........................................................................................89
UG331 (v1.8) June 13, 2011......................................................................89
[5]. .........................................................................89
[6] ........................................................................89

[7]. Embedded Control Using FPGA......................................................89
PHỤ LỤC...................................................................................................90
MỘT SỐ HÌNH ẢNH VỀ KẾT QUẢ CỦA ĐỒ ÁN............................105

8


DANH MỤC CÁC HÌNH VẼ

LỜI CAM ĐOAN........................................................................................2
Em xin cam đoan nội dung đồ án của em là hoàn toàn do em tự nghiên
cứu và xây dựng, không sao chép của đồ án khác. Nếu sai em xin chịu
trách nhiệm hoàn toàn và chịu mọi kỷ luật của Khoa và Trường đề ra.2
.......................................................................................................................2
MỤC LỤC....................................................................................................3
DANH MỤC CÁC BẢNG BIỂU..............................................................15
LỜI NÓI ĐẦU...........................................................................................20
PHẦN MỞ ĐẦU........................................................................................21
.....................................................................................................................21
Chương 1....................................................................................................22
TỔNG QUAN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL..........22
1.3.1. Các hằng (constant)..................................................................27
1.3.2. Các biến (variable)...............................................................27
1.3.3. Các kiểu tín hiệu (signal).....................................................27
1.4.2. Kiểu nguyên..........................................................................28
1.4.3. Các kiểu dữ liệu tiền định nghĩa trong VHDL..................28
1.4.5. Kiểu Record..........................................................................29
1.4.6. Các kiểu STD_LOGIC........................................................29
Chương 2....................................................................................................33
TÌM HIỂU CHUNG VỀ BỘ KIT THỰC HÀNH FPGA FTKI_1.0.....33

2.1. Tổng quan về bộ KIT thực hành FPGA FTKI_1.0...................34
Hình 2.1. Sơ đồ khối bộ thực hành FPGA FTKI_1.0.......................................................................34
Hình 2.2 Vị trí các thành phần trên bộ thực hành FPGA FTKI_1.0................................................36

9


2.2. Tìm hiểu về một số linh kiện trong bộ thực hành Kit FPGA
FTKI_1.0.................................................................................................37
2.2.1. Cổng nối tiếp RS232............................................................37
Hình 2.3: Sơ đồ chân tín hiệu của RS232Ví trí các chân kết nối với FPGA XC3S250E:..................38
Bảng 2.1: vị trí các chân kết nối của RS232 với FPGA XC3S250E...................................................38

2.2.2. LCD Character 16 ký tự 2 hàng 1602M............................38
Hình 2.4: LCD Character 1602M.....................................................................................................39
Hình 2.5: Sơ đồ chân của LCD 1602M............................................................................................39
Bảng 2.2: Mô tả 16 chân của LCD 1602M......................................................................................40
Bảng 2.3: Vị trí và chức năng các chân kết nối giữa LCD và FPGA XC3S250E...............................41
Hình 2.6: DDRAM Memory của LCD 1602M..................................................................................41
Hình 2.7: Bảng ánh xạ giữa mã ký tự và mẫu ký tự.......................................................................42

2.2.3. Khối hiển thị gồm 3 LED 7 thanh:.....................................45
Hình 2.8: Sơ đồ kết nối chân của 1 đèn LED 7 segment................................................................45
Bảng 2.5: Bảng đối chiếu giá trị hiển thị và tín hiệu điều khiển hiển thị......................................46
Bảng 2.6: Vị trí các chân kết nối với FPGA của 3 LED 7 segment..................................................47

2.2.4. Bàn phím ma trận 4x5.........................................................47
Hình 2.9: Sơ đồ khối của bàn phím ma trận 4x5...........................................................................48
Bảng 2.7: Vị trí các chân kết nối của bàn phím ma trận vào FPGA...............................................49


2.2.5. Hiển thị LED và công tắc Jump.........................................49
Bảng 2.8: Vị trí các chân kết nối với FPGA của khối hiển thị LED và công tắc jump.....................50

2.2.6. Đầu vào Analog và chuyển đổi ADC..................................50
Bảng 2.9: Bảng các ngõ vào được chọn bởi bộ giải mã ADC0809.................................................52
Hình 2.12: Sơ đồ kết nối mạch của ADC 0809...............................................................................53
Bảng 2.10: Vị trí chân kết nối của ADC 0809 vào FPGA XC3S250E................................................54

10


2.2.7. Chân cắm mở rộng:.............................................................54
Bảng 2.11: Vị trí các chân của chân cắm mở rộng kết nối với FPGA XC3S250E............................55

2.2.8. Clock.....................................................................................55
Chương 3....................................................................................................56
CƠ SỞ LÝ THUYẾT MÃ HÓA NHIỆT ĐỘ, CÁC SAI SỐ VÀ THUẬT
TOÁN ĐIỀU KHIỂN PID........................................................................56
3.1. Cơ sở lý thuyết mã hóa nhiệt độ.................................................56
Bảng 3.1: Bảng mã hóa nhiệt độ của PT100..................................................................................60

3.2. Các sai số.......................................................................................60
3.3. Bộ điều khiển PID trong FPGA..................................................61
3.3.1. Thuật toán PID trong FPGA..............................................61
3.3.2. Thiết kế song song................................................................63
Hình 3.2 Kiến trúc mạch song song PID trong FPGA.....................................................................63

3.3.3. Thiết kế mạch nối tiếp.........................................................64
Hình 3.3 Kiến trúc mạch nối tiếp PID trong FPGA.........................................................................64


3.3.4. Sử dụng PID hiệu quả hơn..................................................65
Hình 3.4 Sơ đồ khối phương pháp DA...........................................................................................67

3.3.5 Module PID trong FPGA.....................................................68
Chương 4....................................................................................................71
ỨNG DỤNG KIT FPGA VÀ BỘ ĐIỀU KHIỂN PID CHO ĐIỀU
KHIỂN NHIỆT ĐỘ...................................................................................71
4.1. Mở đầu..........................................................................................71
4.2. Cấu trúc mạch điều khiển số sử dụng công nghệ FPGA..........71
4.2.1. Sơ đồ khối mạch điều khiển................................................71
Hình 4.1 Mạch điều khiển xây dựng trên công nghệ FPGA...........................................................71

11


Hình 4.2 Sơ đồ bộ Vi điều khiển.....................................................................................................72

4.2.2. Khối xử lý thiết bị đo...........................................................73
4.2.3. Khối bàn phím......................................................................73
4.2.4. Thuật toán điều khiển PID áp dụng trên FPGA...............73
4.2.5. Cơ cấu chấp hành................................................................73
Hình 4.4 Các tín hiệu thiết kế trong mạch.....................................................................................75

4.2.6. Phân tích hệ thống điều khiển nhiệt độ và thiết lập các
thông số PID...................................................................................75
Hình 4.5 Kết quả mô phỏng cho chọn các thông số P, Ti, Td.........................................................77

4.3. Thử nghiệm thuật toán PID trên KIT........................................77
Chương 5....................................................................................................78
THIẾT KẾ PHẦN MỀM..........................................................................78

5.1. Yêu cầu đối với phần mềm..........................................................78
5.2. Các giải thuật................................................................................78
5.2.1. Ý nghĩa của các thanh ghi được sử dụng và chức năng các
phím của bàn phím........................................................................78
Hình 5.1 Thuật toán quét ma trận bàn phím.................................................................................79

5.2.2. Giải thuật của chương trình chính.....................................80
Hình 5.2 Giải thuật chương trình chính.........................................................................................80

5.2.3. Giải thuật so sánh nhiệt độ đo và nhiệt độ đặt..................82
Hình 5.3 Giải thuật so sánh nhiệt độ đo và nhiệt độ đặt..............................................................82

5.2.4. Luồng chương trình kiểm tra phím nhấn..........................84
5.2.5. Lưu đồ hiển thị nhiệt độ thực ra màn hình.......................85
KẾT LUẬN................................................................................................88

12


Đồ án này đã trình bày một cách đầy đủ và hệ thống về quá trình thiết
kế, thực hiện hệ thống thu thập và xử lý số liệu trên công nghệ FPGA.
Trong đó, chương 1 giới thiệu tổng quan về ngôn ngữ mô tả phần cứng
VHDL. Chương 2 đi tìm hiểu về bộ Kit thực hành FPGA FTKI_1.0 .
Chương 3 trình bày về cơ sở lý thuyết mã hóa nhiệt độ, các sai số và
thuật toán điều khiển PID. Chương 4 là trình bày về ứng dụng kit
FPGA cho điều khiển nhiệt độ với thuật toán PID và chương 5 sẽ giới
thiệu về thiết kế phần mềm cho hệ thống chương này trình bày các giải
thuật được sử dụng trong mã của chương trình ứng dụng...................88
Đồ án này đã thực hiện được hệ thống cho phép thu thập nhiệt độ của
môi trường, cho phép đặt nhiệt độ từ bàn phím. Sau đó hệ thống sẽ

hiển thị nhiệt độ đo và nhiệt độ đặt ra màn hình LCD và so sánh giữa
nhiệt độ đo với nhiệt độ đặt để đưa ra những tín hiệu điều khiển thích
hợp..............................................................................................................88
Trong đồ án này có một vấn đề là nhiệt độ đo và hiển thị chỉ giới hạn
trong khoảng 00° ÷ 99°. Vấn đề này có thể giải quyết được nếu chúng
em có nhiều thời gian hơn.........................................................................88
Trong đồ án còn nhiều thiếu sót, chúng em kính mong nhận được sự
góp ý chỉnh sửa của các thầy cô giáo trong khoa và trong hội đồng để
có thể phát triển và ứng dụng vào thực tế...............................................88
Một lần nữa, chúng em xin chân thành cảm ơn thầy giáo PGS.TS Lê
Bá Dũng đã tận tình chỉ bảo, giúp đỡ chúng em hoàn thành đồ án này.
.....................................................................................................................88
.....................................................................................................................88
TÀI LIỆU THAM KHẢO........................................................................89
[1]. Tống Văn On, Thiết kế mạch số với VHDL & Verilog, NXB Lao
động xã hội.................................................................................................89
[2]. Douglas L.Perry, VHDL Programming by Example.......................89
[3]. VHDL cookbook..................................................................................89
[4]. Spartan-3E Generation FPGA User Guide. [Online] Spartan-3
Generation..................................................................................................89

13


FPGA User Guide......................................................................................89
Extended Spartan-3A,...............................................................................89
Spartan-3E, and Spartan-3.......................................................................89
FPGA Families...........................................................................................89
UG331 (v1.8) June 13, 2011......................................................................89
[5]. .........................................................................89

[6] ........................................................................89
[7]. Embedded Control Using FPGA......................................................89
PHỤ LỤC...................................................................................................90
MỘT SỐ HÌNH ẢNH VỀ KẾT QUẢ CỦA ĐỒ ÁN............................105

14


DANH MỤC CÁC BẢNG BIỂU

LỜI CAM ĐOAN........................................................................................2
Em xin cam đoan nội dung đồ án của em là hoàn toàn do em tự nghiên
cứu và xây dựng, không sao chép của đồ án khác. Nếu sai em xin chịu
trách nhiệm hoàn toàn và chịu mọi kỷ luật của Khoa và Trường đề ra.2
.......................................................................................................................2
MỤC LỤC....................................................................................................3
DANH MỤC CÁC BẢNG BIỂU..............................................................15
LỜI NÓI ĐẦU...........................................................................................20
PHẦN MỞ ĐẦU........................................................................................21
.....................................................................................................................21
Chương 1....................................................................................................22
TỔNG QUAN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL..........22
1.3.1. Các hằng (constant)..................................................................27
1.3.2. Các biến (variable)...............................................................27
1.3.3. Các kiểu tín hiệu (signal).....................................................27
1.4.2. Kiểu nguyên..........................................................................28
1.4.3. Các kiểu dữ liệu tiền định nghĩa trong VHDL..................28
1.4.5. Kiểu Record..........................................................................29
1.4.6. Các kiểu STD_LOGIC........................................................29
Chương 2....................................................................................................33

TÌM HIỂU CHUNG VỀ BỘ KIT THỰC HÀNH FPGA FTKI_1.0.....33
2.1. Tổng quan về bộ KIT thực hành FPGA FTKI_1.0...................34
2.2. Tìm hiểu về một số linh kiện trong bộ thực hành Kit FPGA
FTKI_1.0.................................................................................................37

15


2.2.1. Cổng nối tiếp RS232............................................................37
Bảng 2.1: vị trí các chân kết nối của RS232 với FPGA XC3S250E...................................................38

2.2.2. LCD Character 16 ký tự 2 hàng 1602M............................38
Bảng 2.2: Mô tả 16 chân của LCD 1602M......................................................................................40
Bảng 2.3: Vị trí và chức năng các chân kết nối giữa LCD và FPGA XC3S250E...............................41

2.2.3. Khối hiển thị gồm 3 LED 7 thanh:.....................................45
Bảng 2.5: Bảng đối chiếu giá trị hiển thị và tín hiệu điều khiển hiển thị......................................46
Bảng 2.6: Vị trí các chân kết nối với FPGA của 3 LED 7 segment..................................................47

2.2.4. Bàn phím ma trận 4x5.........................................................47
Bảng 2.7: Vị trí các chân kết nối của bàn phím ma trận vào FPGA...............................................49

2.2.5. Hiển thị LED và công tắc Jump.........................................49
Bảng 2.8: Vị trí các chân kết nối với FPGA của khối hiển thị LED và công tắc jump.....................50

2.2.6. Đầu vào Analog và chuyển đổi ADC..................................50
Bảng 2.9: Bảng các ngõ vào được chọn bởi bộ giải mã ADC0809.................................................52
Bảng 2.10: Vị trí chân kết nối của ADC 0809 vào FPGA XC3S250E................................................54

2.2.7. Chân cắm mở rộng:.............................................................54

Bảng 2.11: Vị trí các chân của chân cắm mở rộng kết nối với FPGA XC3S250E............................55

2.2.8. Clock.....................................................................................55
Chương 3....................................................................................................56
CƠ SỞ LÝ THUYẾT MÃ HÓA NHIỆT ĐỘ, CÁC SAI SỐ VÀ THUẬT
TOÁN ĐIỀU KHIỂN PID........................................................................56
3.1. Cơ sở lý thuyết mã hóa nhiệt độ.................................................56
Bảng 3.1: Bảng mã hóa nhiệt độ của PT100..................................................................................60

3.2. Các sai số.......................................................................................60
3.3. Bộ điều khiển PID trong FPGA..................................................61
3.3.1. Thuật toán PID trong FPGA..............................................61

16


3.3.2. Thiết kế song song................................................................63
3.3.3. Thiết kế mạch nối tiếp.........................................................64
3.3.4. Sử dụng PID hiệu quả hơn..................................................65
3.3.5 Module PID trong FPGA.....................................................68
Chương 4....................................................................................................71
ỨNG DỤNG KIT FPGA VÀ BỘ ĐIỀU KHIỂN PID CHO ĐIỀU
KHIỂN NHIỆT ĐỘ...................................................................................71
4.1. Mở đầu..........................................................................................71
4.2. Cấu trúc mạch điều khiển số sử dụng công nghệ FPGA..........71
4.2.1. Sơ đồ khối mạch điều khiển................................................71
4.2.2. Khối xử lý thiết bị đo...........................................................73
4.2.3. Khối bàn phím......................................................................73
4.2.4. Thuật toán điều khiển PID áp dụng trên FPGA...............73
4.2.5. Cơ cấu chấp hành................................................................73

4.2.6. Phân tích hệ thống điều khiển nhiệt độ và thiết lập các
thông số PID...................................................................................75
4.3. Thử nghiệm thuật toán PID trên KIT........................................77
Chương 5....................................................................................................78
THIẾT KẾ PHẦN MỀM..........................................................................78
5.1. Yêu cầu đối với phần mềm..........................................................78
5.2. Các giải thuật................................................................................78
5.2.1. Ý nghĩa của các thanh ghi được sử dụng và chức năng các
phím của bàn phím........................................................................78
5.2.2. Giải thuật của chương trình chính.....................................80
5.2.3. Giải thuật so sánh nhiệt độ đo và nhiệt độ đặt..................82

17


5.2.4. Luồng chương trình kiểm tra phím nhấn..........................84
5.2.5. Lưu đồ hiển thị nhiệt độ thực ra màn hình.......................85
KẾT LUẬN................................................................................................88
Đồ án này đã trình bày một cách đầy đủ và hệ thống về quá trình thiết
kế, thực hiện hệ thống thu thập và xử lý số liệu trên công nghệ FPGA.
Trong đó, chương 1 giới thiệu tổng quan về ngôn ngữ mô tả phần cứng
VHDL. Chương 2 đi tìm hiểu về bộ Kit thực hành FPGA FTKI_1.0 .
Chương 3 trình bày về cơ sở lý thuyết mã hóa nhiệt độ, các sai số và
thuật toán điều khiển PID. Chương 4 là trình bày về ứng dụng kit
FPGA cho điều khiển nhiệt độ với thuật toán PID và chương 5 sẽ giới
thiệu về thiết kế phần mềm cho hệ thống chương này trình bày các giải
thuật được sử dụng trong mã của chương trình ứng dụng...................88
Đồ án này đã thực hiện được hệ thống cho phép thu thập nhiệt độ của
môi trường, cho phép đặt nhiệt độ từ bàn phím. Sau đó hệ thống sẽ
hiển thị nhiệt độ đo và nhiệt độ đặt ra màn hình LCD và so sánh giữa

nhiệt độ đo với nhiệt độ đặt để đưa ra những tín hiệu điều khiển thích
hợp..............................................................................................................88
Trong đồ án này có một vấn đề là nhiệt độ đo và hiển thị chỉ giới hạn
trong khoảng 00° ÷ 99°. Vấn đề này có thể giải quyết được nếu chúng
em có nhiều thời gian hơn.........................................................................88
Trong đồ án còn nhiều thiếu sót, chúng em kính mong nhận được sự
góp ý chỉnh sửa của các thầy cô giáo trong khoa và trong hội đồng để
có thể phát triển và ứng dụng vào thực tế...............................................88
Một lần nữa, chúng em xin chân thành cảm ơn thầy giáo PGS.TS Lê
Bá Dũng đã tận tình chỉ bảo, giúp đỡ chúng em hoàn thành đồ án này.
.....................................................................................................................88
.....................................................................................................................88
TÀI LIỆU THAM KHẢO........................................................................89
[1]. Tống Văn On, Thiết kế mạch số với VHDL & Verilog, NXB Lao
động xã hội.................................................................................................89
[2]. Douglas L.Perry, VHDL Programming by Example.......................89

18


[3]. VHDL cookbook..................................................................................89
[4]. Spartan-3E Generation FPGA User Guide. [Online] Spartan-3
Generation..................................................................................................89
FPGA User Guide......................................................................................89
Extended Spartan-3A,...............................................................................89
Spartan-3E, and Spartan-3.......................................................................89
FPGA Families...........................................................................................89
UG331 (v1.8) June 13, 2011......................................................................89
[5]. .........................................................................89
[6] ........................................................................89

[7]. Embedded Control Using FPGA......................................................89
PHỤ LỤC...................................................................................................90
MỘT SỐ HÌNH ẢNH VỀ KẾT QUẢ CỦA ĐỒ ÁN............................105

19


LỜI NÓI ĐẦU
Theo phương pháp truyền thống, để có được một mạch điện tử số những
người thiết kế mạch phải thiết kế ra sơ đồ nguyên lý của mạch điện tử đó. Sau đó,
phải đi tìm những linh kiện điện tử số để lắp thành mạch đó. Người thiết kế rất bị
động trong việc tìm các linh kiện. Nếu trên thị trường không có một trong số các
linh kiện tạo nên mạch thì hoặc người thiết kế không thể thực hiện được mạch đó
hoặc người thiết kế phải đi tìm những linh kiện thay thế khác. Những linh kiện
thay thế này sẽ làm cho mạch phức tạp hơn.
Nhưng khi FPGA ra đời đã giải quyết được vấn đề trên cho người thiết kế.
Nó cho phép người thiết kế chủ động trong việc thiết kế và thực hiện mạch.
Người thiết kế bây giờ chỉ cần thiết kế ra sơ đồ nguyên lý của mạch rồi sử dụng
ngôn ngữ mô tả phần cứng cùng với các công cụ hỗ trợ để thực hiện mạch. Cả
mạch số bây giờ được nằm trong một Chip FPGA duy nhất. Để thực hiện cùng
một chức năng, mạch số được thực hiện dựa trên công nghệ FPGA đơn giản hơn
rất nhiều so với mạch số được thực hiện theo phương pháp truyền thống.
Như trên đã đề cập ngôn ngữ mô tả phần cứng được sử dụng để thực hiện
mạch số. Ngôn ngữ mô tả phần cứng gồm có VHDL và VERILOG. Hiện nay
VHDL được sử dụng phổ biến trên thế giới cũng như ở Việt Nam
Ở Việt Nam, sử dụng VHDL để lập trình cho FPGA vẫn còn là một công
việc khá mới mẻ. Để hiểu rõ hơn về ưu điểm của việc sử dụng FPGA cũng như
việc sử dụng VHDL để lập trình cho FPGA nên trong đồ án này chúng em quyết
định chọn đề tài: “ Thiết kế bộ điều khiển PID cho điều khiển nhiệt độ sử dụng
FPGA”

Chúng em xin chân thành cảm ơn PGS.TS Lê Bá Dũng – Bộ môn Robot
và điều khiển tự động đã tận tình hướng dẫn, giúp đỡ em trong quá trình làm đồ
án này.

20


PHẦN MỞ ĐẦU
Tổng thể đồ án phải xây dựng được hệ xử lý cho việc thu thập và xử lý số
liệu dựa trên công nghệ FPGA. Cụ thể là hệ xử lý này phải thu thập được dữ liệu
về nhiệt độ của môi trường, nhiệt độ này gọi là nhiệt độ đo, phải cho phép nhập
dữ liệu về nhiệt độ từ bàn phím nhiệt độ này gọi là nhiệt độ đặt. Sau đó hệ phải
hiển thị nhiệt độ đặt và nhiệt độ đo ra LCD và so sánh giữa nhiệt độ đặt và nhiệt
độ đo để đưa ra điều khiển thích hợp làm cho nhiệt độ đo bằng nhiệt độ đặt. Hệ
này bao gồm: khối mạch vào, khối bàn phím, khối hiển thị, khối chấp hành.
Trong những phần này chỉ có một phần của khối mạch vào là nằm ngoài KIT
Spartan-3E. Những khối còn lại sẽ nằm trên KIT.
Với khối mạch vào vấn đề đặt ra là phải biến đổi từ nhiệt độ thành điện
áp. Sau đó, từ điện áp biến đổi thành tín hiệu số để đưa vào bộ điều khiển xử lý
nó. Để biến đổi nhiệt độ sang điện áp đồ án này chúng em sử dụng cảm biến
nhiệt độ PT100. Bảng đặc tính của PT100 cho ta mối quan hệ giữa nhiệt độ và
điện trở của PT100. Bằng mạch phân áp đơn giản cho PT100 ta có mối quan hệ
giữa nhiệt độ và điện áp. Khi đã có điện áp sẽ cho vào đầu vào của bộ biến đổi
tương tự số trên KIT đầu ra của bộ biến đổi tương tự số là tín hiệu được đưa vào
khối trung tâm. Với PT100 thì dải nhiệt độ có thể đo được rất là rộng khoảng từ
-200° C đến 850°C nhưng trong phạm vi đồ án chỉ thực hiện đo và hiển thị dải
nhiệt độ từ 0°C đến 99°C

21



Chương 1
TỔNG QUAN VỀ NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL
1.1.

Giới thiệu ngôn ngữ mô tả phần cứng VHDL
VHDL là viết tắt của cụm từ Very High Speed Intergrated Circuit

Hardwaren Description Language – Ngôn ngữ miêu tả phần cứng cho mạch tích
hợp tốc độ cao. VHDL là ngôn ngữ miêu tả phần cứng được phát triển dùng cho
chương trình VHSIC của bộ quốc phòng Mỹ. Mục tiêu của việc phát triển VHDL
là có được một ngôn ngữ mô tả phần cứng tiêu chuẩn và thống nhất cho phép
phát triển thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa
các hệ thống đó vào ứng dụng trong thực tế. Ngôn ngữ VHDL được 3 công ty
Intermetics, IBM, Texas Intruments bắt đầu nghiên cứu, phát triển vào tháng 7
năm 1983. Phiên bản đầu tiên được công bố vào tháng 8 năm 1985. Sau đó
VHDL được đề xuất để tổ chức IEEExem xét thành một tiêu chuẩn. Năm 1987,
tiêu chuẩn về VHDL đã ra đời – tiêu chuẩn IEEE 1076-1987
VHDL được phát triển để giải quyết các khó khăn trong việc phát triển,
thay đổi và lập tài liệu cho các hệ thống số. Như ta đã biết một hệ thống số có rất
nhiều tài liệu mô tả. Để có thể vận hành, bảo trì và sửa chữa một hệ thống ta cần
tìm hiểu tài liệu đó kỹ lưỡng. Với một ngôn ngữ mô tả phần cứng việc xem xét
các tài liệu mô tả trở lên dễ dàng hơn vì bộ tài liệu đó có thể được thực thi để mô
tả hoạt động của hệ thống. Như thế ta có thể xem xét toàn bộ các phần tử của hệ
thống hoạt động trong một mô hình thống nhất.
Trước khi VHDL ra đời, có nhiều ngôn ngữ mô tả phần cứng được sử
dụng nhưng không có một tiêu chuẩn thống nhất. Các ngôn ngữ mô tả phần cứng
đó được phát triển để phục vụ các bộ mô phỏng của chúng. Vì các ngôn ngữ mô
tả phần cứng đó được các nhà cung cấp thiết bị phát triển nên mang các đặc trưng
gắn với các thiết bị của nhà cung cấp đó và thuộc quyền sở hữu của nhà cung

cấp.
Trong khi đó VHDL được phát triển như một ngôn ngữ độc lập không gắn
liền với bất kỳ phương pháp thiết kế, bộ mô phỏng hay công nghệ phần cứng

22


nào. Người thiết kế có thể tự do lựa chọn công nghệ , phương pháp thiết kế trong
khi vẫn sử dụng 1 ngôn ngữ duy nhất.
Một số ưu điểm của VHDL:
Tính công cộng: VHDL được phát triển dưới sự bảo trợ của chính phủ
Mỹ và hiện nay là tiêu chuẩn IEEE, VHDL không thuộc sở hữu của bất kỳ cá
nhân hay tổ chức nào. Do đó VHDL được hỗ trợ của nhiều nhà sản xuất thiết bị
cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống. Đây là ưu
điểm nổi bật của VHDL , giúp VHDL ngày càng phổ biến.
Khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế: VHDL cho
phép thiết kế bằng nhiều phương pháp như phương pháp thiết kế từ trên xuống
hay từ dưới lên dựa vào các thư viện sẵn có. VHDL cũng hỗ trợ cho nhiều loại
công nghệ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ ,
sử dụng ma trận lập trình được hay sử dụng mảng logic ngẫu nhiên. Như vậy
VHDL có thể phục vụ tốt cho nhiều mục đích thiết kế khác nhau, từ việc thiết kế
các phần tử phổ biến đến các IC ứng dụng đặc biệt
Độc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ chế tạo
phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được
chuyển thành các bản tổng hợp mạch khác nhau tùy thuộc vào công nghệ chế tạo
phần cứng nào được sử dụng. Đây cũng là một ưu điểm quan trọng của VHDL nó
cho phép người thiết kế không cần quan tâm đến công nghệ phần cứng khi thiết
kế hệ thống, như thế khi có một công nghệ chế tạo phần cứng ra đời nó có thể
được áp dụng ngay cho các hệ thống đã thiết kế
Khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần

cứng từ mức hệ thống đến mức cổng. VHDL có khả năng mô tả hoạt động của hệ
thống trên nhiều mức nhưng chỉ sử dụng một cú pháp thống nhất chặt chẽ cho
mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ thống
con được được mô tả ở mức cao và các hệ con được mô tả chi tiết
Khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp nhận,
nên một mô hình VHDL có thể chạy trên mọi bộ mô phỏng đáp ứng đươc tiêu
chuẩn VHDL. Các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết
kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo chuẩn VHDL. Cũng

23


như một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong
một hệ thống, trong khi các hệ con đó được thiết kế độc lập.
Khả năng hỗ trợ thiết kế lớn và tái sử dụng thiết kế: VHDL được phát
triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể sử dụng để thiết kế
một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn
ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế.
VHDL cũng cho phép sử dụng lại các phần đã có sẵn.
1.2. Cấu trúc cơ bản của ngôn ngữ VHDL
Các thành phần chính xây dựng trong ngôn ngữ VHDL được chia ra
thành năm nhóm cơ bản như sau:
-

Entity
Architecture
Package
Configuration
Library
Entity: Trong một hệ thống số, thông thường được thiết kế theo một sự


xếp chồng các modul, mà mỗi modul này tương ứng với một thực thể thiết kế
trong VHDL. Mỗi Entity bao gồm hai phần:
+ Khai báo thực thể (Entity)
+ Thân kiến trúc
Một khai báo Entity được dùng để mô tả giao tiếp bên ngoài của một phần
tử (component), nó bao gồm các khai báo các cổng đầu vào, các cổng đầu ra của
phần tử đó. Phần thân của kiến trúc được dùng để mô tả sự thực hiện bên trong
của thực thể đó.
Packages: Các đóng gói chỉ ra thông tin dùng chung, mà các thông tin này
được sử dụng bởi một vài Entity nào đó.
Configuration: Định cấu hình, nó cho phép gắn kết các thể hiện của phần
tử cần dùng nào đó của một thiết kế nào đó có dạng một cấu trúc và đưa các thể
hiện này vào trong cặp Entity và Architecture.
Nó cho phép người thiết kế có thể thử nghiệm để thay đổi các sự thực thi
khác nhau trong một thiết kế. Mỗi một thiết kế dạng VHDL bao gồm một vài đơn

24


vị thư viện, mà một trong các thư viện này được dịch sẵn và cất trong một thư
viện thiết kế.
1.2.1. Khai báo Entity
Đưa ra cái nhìn phía bên ngoài của một phần tử mà không cung cấp thông
tin về sự thực hiện của phần tử đó như thế nào.
Cú pháp:
Entity entity_name is
Port (signal_name: in signal_type ;
Signal_name: out signal_type);
End entity_name;

Có bốn kiểu cổng được sử dụng trong khai báo Port :
+ In: chỉ có thể đọc, nó chỉ được dùng cho các tín hiệu đầu vào
+ Out: chỉ được dùng để gán giá trị, nó chỉ được dùng cho các tín hiệu đầu
ra
+ Inout: có thể được dùng để đọc và gán giá trị,. Là một cổng hai hướng
+ Buffer: có thể được dùng để đọc và gán giá trị. Là một cổng không có
hướng.
1.2.2.

Architecture( kiểu kiến trúc)
Một kiểu kiến trúc đưa ra kết cấu bên trong của một Entity. Một Entity có

thể có nhiều hơn một kiến trúc, nó chỉ ra quan hệ giữa các đầu vào và đầu ra của
một Entity mà quan hệ này được diễn tả theo các thuật ngữ sau:
Kiểu hành vi hoạt động (Behavioral)
Architecture architecture_name of entity_name is
Khai báo các tín hiêu;
Định nghĩa hàm;
Định nghĩa thủ tục;
Begin
Các khối process;
Các phát biểu đồng thời;
End architecture_name;

25


×