I. Cơ sở lý thuyết
2.3 Khối điều khiển
2.3.1. Chức năng của khối
- Nhận biết tín hiệu vào từ khối cảm biến và đánh dấu thời điểm tín hiệu xuất hiện.
- Nhận các tín hiệu điều khiển từ nút bấm để lấy thông tin về độ trễ cho tín hiệu đầu ra.
- Hiển thị các thông số hiện trong hệ thống lên màn hình LCD.
2.3.2 Đặc tả khối tạo trễ
a. Luồng dữ liệu vào ra
Signals I/O Active Reg Bit range Description
clk I
Xung đồng hồ ngoài hệ thống
rst I Low
Tín hiệu đưa các tín hiệu khác về trạng thái ban đầu
data in I Tín hiệu được delay
select frequency 0 I Yes [1:0] Lựa chọn tần số hoạt động select frequency 1 I Yes [1:0] nt
select delay clk 0 I Yes [2:0]
Lựa chọn trễ bao nhiêu chu kì
select delay clk 1 I Yes [2:0] nt
data out 0 O Tín hiệu trễ
data out 1 O nt
54
Bảng 3 đã mô tả các luồng vào ra của khối tạo trễ được minh họa trên hình 33. b. Thiết kế các khối con
Sơ đồ thiết kế các khối con được trình bày trên hình 34.
c. Mô tả hoạt động
- Tín hiệu vào (1) xuất hiện sẽ được ghim lại và tạo trễ nhờ khối detect signal - Lựa chọn tần số và độ trễ chu kì cho tín hiệu đầu ra bằng 2 bus select frequency
0 và select delay clk 0 cho đầu ra thứ nhất rồi tính toán độ trễ cho đầu ra thứ 2bằng 2 bus còn lại.
2.3.3 Bộ chốt tín hiệu
Gồm một flip-flop và một vài cổng logic cơ bản được ghép lại với nhau. a. Luồng dữ liệu vào ra
Bảng 4 đã mô tả các luồng vào ra của bộ chốt tín hiệu được minh họa trên hình 35.
55
Bảng 4. Bảng mô tả các luồng vào ra của bộ chốt tín hiệu
Signals I/O Active Reg Bit range Description
clk I Xung đồng hồ ngoài hệ thống
rst I Low
Tín hiệu đưa các tín hiệu khác về trạng thái ban đầu
data in I Tín hiệu được phát hiện
data out O Tín hiệu bị ghim lại
b. Thiết kế phần cứng
Kiến trúc của bộ chốt tín hiệu được minh họa trên hình 36
c. Mô tả hoạt động
Hình 35. Luồng dữ liệu vào ra của bộ chốt tín hiệu
56
- Khi có tín hiệu 1 vào đủ lâu ( 2 clk ), nó sẽ bị ghim lại và xuất ra chân data out và không thể thay đổi theo dữ liệu vào (data in) do clk bị ngắt
- Muốn khối hoạt động trở lại phải cấp 1 tín hiệu reset cho module.
Mô phỏng hoạt động của bộ chốt tín hiệu được thực hiện trên phần mềm mô phỏng Modelsim như trên hình 37.
2.3.4 Bộ tạo trễ (create delay )
a. Luồng dữ liệu vào ra
Bảng 5 đã mô tả các luồng vào ra của bộ tạo trễ được minh họa trên hình 38.
Hình 37. Mô phỏng hoạt động của bộ chốt tín hiệu
57 b. Thiết kế phần cứng
Signals I/O Active Reg Bit range
Description
clk I Xung đồng hồ ngoài hệ thống
rst I Low
Tín hiệu đưa các tín hiệu khác về trạng thái ban đầu
data in I Tín hiệu được delay
select frequency I Yes [1:0] Lựa chọn tần số hoạt động select delay clk I Yes [2:0] Lựa chọn trễ bao nhiêu chu kì
data out O Tín hiệu trễ
Bảng 5.Bảng mô tả luồng vào ra của bộ tạo trễ
58 b. Thiết kế phần cứng
Kiến trúc của bộ tạo trễ được trình bày trên hình 39. c. Mô tả hoạt động
- Tín hiệu thu được từ bộ chốt đẩy vào chân data in của khối create delay - select frequency: + 00 tần số chia 10 + 01 tần số chia 100 + 10 tần số chia 1000 + 11 tần số chia 10000 - Select delay clk: + 000 trễ 9 clk … + 111 trễ 2 clk
- Ví dụ: có 1 xung clk với tần số vào 100MHz tương ứng chu kì 10ns
Muốn trễ 0,06ms tương ứng với 60000 ns - Chọn tần chia cho 10000 select frequency : 11 - Chọn trễ 3 clk select delay clk : 110
2.3.5 Bộ chia tần số ( divide frequency 10 )
- Cấu tạo: Các bộ đếm 2, đếm 4, đếm 8, đếm 10 và đếm 16
- Với bộ đếm 4, 8, 16 chỉ cần xác định bit MSB để tạo xung đồng hồ ( một nửa số lượng giá trị đếm có bit MSB bằng 0 và một nửa còn lại có bit MSB bằng 1 tương ứng với nửa dương và nửa âm của xung đồng hồ) .
- Với bộ đếm 10, các giá trị từ 0 tới 4 sẽ cho tín hiệu bằng 0 và 5 tới 9 cho tín hiệu ra bằng 1. Khi giá trị nhảy lên 10 nó sẽ bị reset về 0 và tiếp tục đếm. a. Luồng dữ liệu vào ra
59 b. Thiết kế phần cứng
Kiến trúc của bộ chia tần số 10 lần được trình bày trên hình 41. Signals I/O Active Reg Bit range Description
clk I Xung đồng hồ ngoài hệ thống
clk_out O
Xung đồng hồ sau khi chia tần số xuống 10 lần
Bảng 6. Bảng mô tả luồng vào ra của bộ chia tần số
Hình 40. Sơ đồ luồng dữ liệu vào ra của bộ chia tần số
60 c. Mô tả hoạt động
- Bộ đếm xung clk với độ rộng 4 bit - Giá trị từ 0 tới 4, output = 0
- Giá trị từ 5 tới 10, output = 1 - Sau giá trị 10, bộ đếm bị reset lại
- Sau 10clk thì tạo được 1 clk mới ở output. Hình 42 mô phỏng tín hiệu đầu ra của bộ chia 10.
2.3.5 Bộ tạo chu kỳ trễ
Cấu tạo: gồm các thanh ghi dịch ghép nối tiếp với nhau kết hợp bộ Mux để lựa chọn trễ bao nhiêu chu kỳ đồng hồ.
a. Luồng dữ liệu vào ra Bảng 7 đã mô tả các luồng vào ra của bộ tạo chu kỳ trễ được minh họa trên hình 43.
b. Thiết kế phần cứng Kiến trúc phần cứng của bộ tạo chu kỳ trễ được trình bày trên hình 44.
Hình 42. Hoạt động của bộ chia tần số 10 lần
61 c. Mô tả hoạt động
- Bộ đệm 8 con D-FF nối tiếp nhau sẽ có độ trễ tương ứng từ 2 tới 9 clk
- Dữ liệu sau khi đẩy vào chân data in và lựa chọn chu kỳ trễ cho nó bằng bus
select delay clk sẽ tạo được độ trễ từ 1 tới 8 chu kỳ đồng hồ.
Signals I/O Active Reg Bit range Description
clk I Xung đồng hồ
rst I Low
Tín hiệu đưa các tín hiệu khác về trạng thái ban đầu
data in I Tín hiệu được delay
select delay
clk I Yes [1:0]
Lựa chọn tần số hoạt động
data delay O
Tín hiệu trễ theo chu kỳ đồng hồ
Bảng 7. Bảng mô tả luồng dữ liệu vào ra của bộ tạo chu kỳ trễ
62
2.3.6 Bộ điều khiển hiển thị
- Từ tần số đo được bằng vi điều khiển và các tín hiệu từ khối vào ra (bàn phím) mà bộ vi điều khiển sẽ tính toán sai số về tần số thông qua bộ khuếch đại và mạch LC, các trạng thái của mạch và IC được thu lại và hiển thị.
63
Chân Ký hiệu Mô tả
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với
GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch, nối chân này với
VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
5 R/W Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic
“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
6 E
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to- low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
7 - 14 DB0 - DB7
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
15 - Nguồn dương cho đèn nền
16 - GND cho đèn nền
64
- Tín hiệu từ vi điều khiển sẽ được đẩy ra màn hình LCD bằng cách lập trình và nạp xuống.