ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA saaasd
I.3.3 Giới thiệu các công cụ lập trình của hãng Xilink 9
I.3.4 Sơ lược cách sử dụng phần mềm ISE Foundation 9.2i 11
Phần II : GIỚI THIỆU VỀ BÀN PHÍM PS2, LCD VÀ SDRAM 15
II.1 Giới thiệu về bàn phím PS2 15
II.1.1 Tổng quan về bàn phím PS2 15
II.1.2 Giao tiếp bàn phím với kit Spartar-3E thông qua cổng PS2 17
II.2. Giới thiệu về LCD: 19
II.2.1 Giới thiệu chung 19
II.2.2 Nguyên lý hoạt động 20
II.2.3. Các thuận lợi và bất lợi của LCD 21
II.2.4 Sơ đồ chân chức năng 22
II.2.5. Tập lệnh của LCD 25
II.2.6 Bảng mã của LCD 29
II.3 SDRAM (kit Spartan-3E) 31
Phần III : CHI TIẾT THIẾT KẾ VÀ THI CÔNG 34
III.1 Truyền dữ liệu từ bàn phím PS2: 35
III.1.1 Module ps2_rx 36
III.1.2 Module key_code 38
III.1.3 Module chuyển mã ASCII 38
III.1.4 Module hiển thị & test PS2 38
III.2 LCD controller : 39
III.2.1 Sơ đồ khối của module LCD_controller 39
III.2.2 Hoạt động của module LCD_controller 41
Phần IV: KẾT QUẢ 45 Báo cáo hệ thống nhúng
2 Nhóm 9
Báo cáo hệ thống nhúng
3 Nhóm 9
Phần I GIỚI THIỆU VỀ SPARTAN -3E KIT BOARD
VÀ MÔI TRƯỜNG LẬP TRÌNH ISE 9.2I
I.1 Hãng Xilinx
Xilinx là nhà phát triển hàng đầu hiện nay trong lĩnh vực chip khả
trình, được thành lập bởi Ross Freeman, Bernie Vonderschmitt, và Jim
Barnett, và có trụ sở tại thung lũng Silicon. Trụ sở chính hiện nay ở San
Jose, California. Là thành viên của nhóm 100 công ti hàng đầu thế giới
hiện nay do tạp chí Fortune bình chọn.
Xilinx là nhà phát triển FPGA, CPLD được sử dụng rộng rãi trong
những ứng dụng truyền thông, tự động hóa, mật mã và các lĩnh vực
khác. Các sản phẩm phần cứng của Xilin gồm có các dòng CPLD :
CoolRunner, các họ FPGA như Spartans, Virtex
Xilinx còn cung cấp các phần mềm hỗ trợ lập trình FPGA, CPLD như
ISE, EDK, LogicCore, System Generator. Các công cụ này hỗ trợ rất nhiều
cho quá trình lập trình FPGA, giúp giảm thời gian và công sức thiết kế. Các
phiên bản phần mềm trên được nâng cấp thường xuyên.
I.2 Mạch phát triển họ Spartan 3E Kit Board của hãng Xilink
I.2.1 Kiến trúc cơ bản
Cấu trúc tổng quan của Spartan 3E gồm có 5 thành phần có chức
tử cơ bản này, và truyền tín hiệu giữa chúng. Mỗi thành phần chức năng
Báo cáo hệ thống nhúng
5 Nhóm 9
này có một switch matrix dành riêng để cho phép chọn lựa kết nối cho
việc đi dây trong FPGA.
I.2.2 Các thông số kỹ thuật và một số hình ảnh
Spartan 3E là họ FPGA mới nhất của Xilinx với nhiều ưu điểm nổi
bật. Đầu tiên phải kể đến là khả năng tích hợp của Spartan-3E từ 100,000
gates đến 1,6 triệu gates.Ngoài ra, còn có một số đặc điểm chính của
Spartan-3E là:
- Dễ sử dụng, giá thành thấp, tiêu thụ điện năng ít.
- Mật độ tích hợp nhiều phần tử logic (Đây là ưu điểm so với họ
Spartan 3).
- Tốc độ xung nhịp hệ thống từ 5 - 300 MHz.
- Năm mức tiêu thụ điện năng (3.3V; 2.5V; 1.8V; 1.5V; 1.2V)
- Tích hợp tới 376 chân I/O hay 156 cặp tín hiệu khác nhau .
- Truyền dữ liệu với tốc độ khá cao.
Bảng 1.1 Một số sản phẩm của dòng Spartan-3E
Sản phẩm
Số cổng
hệ thống
Phần tử
logic
Số hàng
Số cột
Khối
RAM
Số
chân
33,192
76
58
648K
376
Từ khi sản xuất dòng sản phẩm Spartan-3 Platform FPGA, Xilinx đã
trở thành hãng đầu tiên trên thế giới tiếp cận công nghệ 90nm. Dòng sản
phẩm Spartan 3E cũng được kế thừa và phát triển dựa trên công nghệ
này.
Báo cáo hệ thống nhúng
6 Nhóm 9
Spartan-3E Starter kit board là một công cụ hữu hiệu cho bất kì
ai đang có ý định thiết kế các sản phẩm dựa trên công nghệ FPGA. Đây là
một giải pháp cơ bản cho nhằm tối ưu thời gian và chi phí ban đầu. Nó cho
phép chế tạo ngay với giá thành sản phẩm thấp. Bộ kit này là một thiết bị
cấu trúc logic có thể được người sử dụng lập trình trực tiếp mà không phải
sử dụng bất kỳ một công cụ chế tạo mạch tích hợp nào.
Hình 1.2 Spartan-3E Starter Kit Board nhìn từ mặt trên. Hình 1.3 Một số cổng của Spartan-3E Kit Board.
I.2.3 Mã số Chip và ý nghĩa của nó
Báo cáo hệ thống nhúng
7 Nhóm 9
Hình 2.4 Chíp Spartan-3E Xilink với các thông số
Trên bề mặt chíp được in các mã số, dựa vào các mã số này, người
thiết kế mạch có thể biết được khả năng làm việc của bo mạch và lựa
kế đầu vào HDL, các công vụ tổng hợp tiên tiến và khả năng kiểm tra đối
với cả CPLD và FPGA trực tuyến.
b. ISE BaseX: Đây là gói phần mềm hiệu quả về kinh tế nhất, là
môi trường thiết kế PLD trên máy tính cá nhân linh hoạt và ổn định. Nó
cung cấp tất cả các khả năng như ISE WebPACK, ngoài ra nó còn được bổ
sung nhiều công cụ khác hỗ trợ cho người dùng.
c. ISE Alliance: Gói phần mềm này được thiết kế phù hợp với môi
trường thiết kế có sẵn của người dùng. Nó kết hợp các công cụ hay nhất
của Xilinx để tạo môi trường thiết kế hoàn chỉnh với các tính năng cao hơn
ISE BaseX.
d. ISE Foundation: Đây là gói phần mềm hoàn chỉnh nhất, dễ sử
dụng, tính năng nhiều nhất đồng thời tích hợp các công cụ phân tích, tổng
hợp và công nghệ kiểm tra sản phẩm với các giải pháp hữu hiệu.
Báo cáo hệ thống nhúng
9 Nhóm 9
I.3.2 Ý nghĩa của bộ công cụ ISE
Khi kích thước và độ phức tạp của các hệ thống số gia tăng, nhiều
công cụ thiết kế được trợ giúp bởi máy tính CAD (Computer Aided Design)
được đưa vào quá trình thiết kế phần cứng. Phương pháp thiết kế trên
giấy đã được thay bằng cách thiết kế trên máy tính, từ đó các nhà thiết kế
có thể kiểm tra và có các công cụ tạo ra phần cứng tự động từ các bản
thiết kế đó. Hỗ trợ mạnh mẽ nhất cho các công cụ thiết kế này là các ngôn
ngữ mô tả phần cứng HDL (Hardware Description Languages).
Hiện nay, các nhà nghiên cứu đã tìm ra nhiều cách cho phép HDL có
thể cải tiến quá trình thiết kế hệ thống số như đã nói ở chương I.
I.3.3 Giới thiệu các công cụ lập trình của hãng Xilink
1.3.3.1 ISE 9.2
Là công cụ xây dựng và lập trình FPGA. ISE 9.2 thực sự là một môi
trường tổng hợp và thực thi toàn diện cho các chip khả trình của Xilinx.
Với ISE9.2, người thiết kế có thể lập trình, gỡ rối, mô phỏng, dịch và nạp
logic, cho đến những thiết kế phức tạp hơn như các DSPs, bộ lọc số,
nhân chập, UART , các bộ nhớ tích hợp: Single Port, DualPort Ram,
FIFOs, các thanh ghi Sysgen còn cho phép người thiết kế tạo ra các khối
để thực hiện những nhiệm vụ riêng bằng khối Black Box, tại đây người
thiết kế sẽ tạo ra các entity và cài mã của nó vào Black Box để tạo ra các
thiết kế riêng của mình. Những thiết kế của Sysgen có thể được dịch ra
nhiều kiểu dữ liệu, có thể thành file bit để nạp ngay vào phần cứng, hoặc
thành các thiết kế để ghép vào một hệ thống lớn hơn.
Với việc kết hợp với Mathwork để xây dựng Sysgen, Xilinx đã làm
cho việc thiết kế hệ thống trên nền FPGA của mình trở nên thuận tiện và
đơn giản hơn rất nhiều đối với người làm kĩ thuật.
Báo cáo hệ thống nhúng
11 Nhóm 9
I.3.4 Sơ lược cách sử dụng phần mềm ISE Foundation 9.2i
Giao diện chính của chương trình
Hình 2.5 Giao diện chính của môi truờng lập trình ISE 9.2i
Báo cáo hệ thống nhúng
12 Nhóm 9
* Hướng dẫn các bước tạo một Project mới (Sử dụng Spartan
3E)
Sau khi định nghĩa và mô tả xong các bước trên, trình dịch sẽ tự
động tạo ra thực thể với các cổng được mô tả bằng lệnh (VHDL) như sau :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
Uncomment the following library declaration if instantiating
any Xilinx primitives in this code.
library UNISIM;
use UNISIM.VComponents.all;
entity Bodem is
Port ( clock : in STD_LOGIC;
Q0 : in STD_LOGIC;
Q1 : in STD_LOGIC;
Q2 : in STD_LOGIC;
Q3 : in STD_LOGIC;
Out : out STD_LOGIC_VECTOR (7 downto 0));
end Bodem;
architecture Behavioral of Bodem is
begin
end Behavioral;
Như vậy ta đã tạo ra một đề án, ở bước tiếp theo ta viết chương
trình vào cửa sổ soạn thảo.
Đối với một đề án lớn, ta phải thực hiện với nhiều module, để có thể
hoàn thành đề án thì phải thiết kế từng module và tuân thủ theo các bước
chế tạo Chip.
Báo cáo hệ thống nhúng
15 Nhóm 9
Phần II : GIỚI THIỆU VỀ BÀN PHÍM PS2, LCD VÀ
Hình 2.1 : Sơ đồ chân PS2 MÃ QUÉT BÀN PHÍM (SCAN CODE)
• Khi nhấn 1 phím, bộ xử lý bàn phím gửi đến PC mã quét (scan-
code) của phím được nhấn
• Khi phím được nhấn, mã này gọi là make-code
• Khi phím được nhả, mã này gọi là break-code
– Break-code gồm 2 byte: byte đầu là F0 (đối với bàn phím
mở rộng), byte kế là mã make-code
• Ví dụ:
– nhấn SHIFT: make-code = 12
– Nhấn A: make-code = 1C
– Nhả A: break-code = F0, 1C
– Nhả SHIFT: break-code = F0, 12
• Mã được truyền nối tiếp từng byte, với khung truyền 11bit
• BẢNG SCAN-CODE:
Báo cáo hệ thống nhúng
17 Nhóm 9 Hình 2.2 : Scan-code bàn phím loại 102 phím
II.1.2 Giao tiếp bàn phím với kit Spartar-3E thông qua
cổng PS2
• Bàn phím PS2 giao tiếp bằng giao thức nối tiếp bất đồng bộ 2
chiều
• Xung clock được phát bởi bàn phím, tần số khoảng 10-
16.7kHz
Hình 2.4 : Dữ liệu từ PC đến keyboard
Các lệnh truyền từ máy chủ tới bàn phím:
Lệnh
Diễn giải
ED
Bật/tắt các đèn Num Lock, Caps Lock, và Scroll Lock. Bàn phím
sẽ thông báo nhận được lệnh “ED” bằng cách gửi đi mã quét “FA”,
sau đó thiết bị điều khiển sẽ gửi tiếp lệnh tình trạng cho LED . Vị
trí bit điều khiển các LED ở bảng sau. Giá trị „1‟ sẽ làm cho LED
tương ứng sáng .
7
6
5
4
3
2
1
0
Báo cáo hệ thống nhúng
19 Nhóm 9
(Không sử dụng)
Caps
Lock
Num
Lock
Scroll
Lock
EE
Echo. Khi nhận lệnh echo, bàn phím sẽ trả về cùng mã quét đã
dụng của tinh thể lỏng , nhờ sự sắp xếp có hướng của các tinh thể
lỏng dưới tác dụng của điện trường .
Báo cáo hệ thống nhúng
20 Nhóm 9
Hiện nay có nhiều loại LCD với kích thước khác nhau nhưng
trong phần này chỉ giới thiệu LCD theo chuẩn HD44780 . Hình sau
trình bày một số loại LCD 2 dòng theo chuẩn HD44780.
Hình 2.5 : một số LCD chuẩn HD44780
Các LCD được chế tạo với cấu tạo thông dụng là 16, 20, 24, 32, 40
kí tự trên 1 hàng với màn hình hiển thị 1, 2 hay 4 hàng . Có loại LCD
hiển thị theo kí tự hay đồ họa . Các module LCD thông minh là LCD
có tích hợp trong đó mạch lái – các chip điều khiển (HD44780). Nhờ
đó mà nó có thể hiện thị không những số mà còn hiển thị chữ , các
kí hiệu và có thể cho phép ta định nghĩa các ký hiệu của riêng mình.
II.2.2 Nguyên lý hoạt động
Bằng cách sử dụng tính chất của tinh thể lỏng sự phân cực ánh
sang đi qua có thể bị thay đổi và truyền ánh sang bị điều khiển bởi
điện trường . Tinh thể lỏng có thể có 1 trong 2 trạng thái . Khi không
có điện áp đặt vào hai điện cực , chúng ở trạng thái TN . Điện cực ở
trên được đánh bóng sao cho các phân tử lớp trên song song với sự
phân cực của bộ phân cực trên . Điện cực dưới được chuẩn bị đồng
chỉnh lớp dưới các phân tử tinh thể với bộ phận phân cực dưới . Ở
giữa các phân tử hướng từ hướng này sang hướng khác . Trong điều
Báo cáo hệ thống nhúng
21 Nhóm 9
kiện này tinh thể xoay phân cực ánh sang đi qua 90
chấm , đồ thị , đồ họa và các ứng dụng khác ( khả năng
màu cho các hiển thị TV phẳng cũng khả dụng ).
Báo cáo hệ thống nhúng
22 Nhóm 9
Bất lợi :
Kiểu thông dụng nhất là phát phản xạ không sử dụng
được khi các mức sáng xung quanh thấp.
Thời gian đáp ứng của tế bào LCD rất chậm so với nhiều
ứng dụng.
Góc nhìn của bộ hiển thị bị hạn chế.
Các dụng cụ hay thiết bị này nhạy với nhiệt độ.
II.2.4 Sơ đồ chân chức năng Hình 2.6 : sơ đồ chân LCD
Chân
Kí hiệu
Mức
Logic
I/O
Chức năng
1
Vss
-
-
Nguồn (GND)
6
E
1, 1->0
I
Tín hiệu cho phép
7
DB0
0/1
I/O
Bus dữ liệu 0
8
DB1
0/1
I/O
Bus dữ liệu 1
9
DB2
0/1
I/O
Bus dữ liệu 2
10
DB3
0/1
I/O
Bus dữ liệu 3
11
DB4
0/1
I/O
Bus dữ liệu 4
DD
) : nguồn cung cấp 5V DC. Theo sổ tay thì nguồn
cấp cho LCD là 5V DC (chỉ khoảng vài mA) nhưng cung cấp
cho nó 6VDC hay 4.5V DC thì nó cũng hoạt động tốt và ngay
cả 3VDC cũng đủ cho một số module.LCD tiêu thụ năng lượng
rất ít.
Báo cáo hệ thống nhúng
24 Nhóm 9
Chân 3 (V
0
) : điều khiển độ tương phản của màn hiển thị. Lý
tưởng thì chân này nối với nguồn thay đổi được , nhưng đơn
giản nhất là người ta nối chân này xuống đất ( 0V ).
Chân 4 (RS) : Register Select , chọn thanh ghi . Đây là một
trong 3 chân điều khiển lệnh. Khi chân này để mức thấp thì
các dữ liệu được truyền đến LCD được xử lý như mệnh lệnh
và các dữ liệu đọc ra chỉ trạng thái của nó. Bằng cách đưa
đường RS lên mức cao thì dữ liệu kí tự có thể xuất / nhập
trên module này .
Chân 5 (R/W) : Read/Write . Chân này được kéo xuống mức
thấp để ghi các lệnh hay dữ liệu kí tự vào moduke hoặc được
kéo lên mức cao để đọc dữ liệu kí tự hay thông tin trạng thái
từ các thanh ghi của nó.
Chân 6 (E) : chân cho phép , tích cực mức cao. Ngõ vào này
dung để khởi động việc chuyển các lệnh hay dữ liệu giữa
modue và các đường dữ liệu. Khi ghi ra màn hình hiển thị LCD
, dữ liệu chỉ được chuyển khi có cạnh xuống ở tín hiệu E này .
Tuy nhiên khi đọc ra từ LCD thì dữ liệu khả dụng sau khi có
chuyển tiếp từ thấp lên cao và duy trì dữ liệu khả dụng cho
đến khi tín hiệu xuống thấp một lần nữa.