Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------
HV : NGUYỄN LÝ MINH THIỆN
ĐỀ TÀI : NHẬN DẠNG DẤU VÂN TAY DÙNG FPGA
Chuyên ngành : KĨ THUẬT ĐIỆN TỬ
LUẬN VĂN THẠC SĨ
TP. HỒ CHÍ MINH, tháng 12 năm 2008.
iii
ĐẠI HỌC QUỐC GIA TP. HCM
CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Độc Lập - Tự Do - Hạnh Phúc
------------------oOo--Tp. HCM, ngày 02 tháng 02 năm 2009
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên:
Nguyễn Lý Minh Thiện .
Ngày, tháng, năm sinh :
15/05/1982
Chuyên ngành :
Giới tính : Nam
Nơi sinh : Tp. HCM
Kĩ thuật điện tử
Khoá (Năm trúng tuyển) :
1- TÊN ĐỀ TÀI:
2006
NHẬN DẠNG DẤU VÂN TAY DÙNG FPGA
2- NHIỆM VỤ LUẬN VĂN:
- Xây dựng giải thuật và dùng matlab để mô phỏng giải thuật nhận dạng
dấu vân tay.
- Thực hiện nhận dữ liệu dấu vân tay, xử lý và hiển thị kết quả nhận
dạng trên kit FPGA
3- NGÀY GIAO NHIỆM VỤ :
02 / 2008
4- NGÀY HOÀN THÀNH NHIỆM VỤ :
12 / 2008
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ):
PGS, TS Dương Hoài Nghĩa , Ths Hồ Trung Mỹ
Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành
thông qua.
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
CHỦ NHIỆM BỘ MÔN
QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)
1
CHƯƠNG 1 : TỔNG QUAN VỀ FPGA
VÀ NGÔN NGỮ VHDL
1.1. GIỚI THIỆU VỀ FPGA
FPGA là viết tắt của "Field Programmable Gate Array", là vi mạch dùng cấu trúc
mảng phần tử logic mà người dùng có thể lập trình được, có thể thực hiện các tính
năng logic thông qua máy tính của mình với giá rẻ, và có thể xóa đi viết lại nhiều lần.
Xilinx là công ty đầu tiên bán ra FPGA và luôn chiếm thị phần lớn nhất. Ngoài ra còn
có Alterna, Lattice, Actel, QuickLogic. Nhiều nhà sản xuất hiện đang cung cấp rất
nhiều cấu trúc và phương pháp xử lý khác nhau. Vì vậy, việc chọn một cấu trúc và một
phương pháp xử lý để có thể đáp ứng được các yêu cầu về chức năng và độ ổn định,
đối với một hệ thống trong thực tế là vấn đề mang tính quyết định. Thiết bị logic lập
trình được được phát minh lần đầu vào cuối thập kỷ 1970 và ngay lập tức đã trở lên
phổ biến trong ngành công nghiệp bán dẫn. Ngoài khả năng lập trình đa dạng, công
nghệ này còn có thời gian sản xuất nhỏ nên có khả năng cạnh tranh thương mại rất lớn.
Hơn nữa, việc thiết kế với nó khá dễ dàng và nó có khả năng lập trình lại nhiều lần.
FPGA được thiết kế đầu tiêm bởi Ross Freeman, người sáng lập công ty Xilinx
vào năm 1984, kiến trúc mới của FPGA cho phép tính hợp số lượng tương đối lớn các
phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD (Complex
Programmable Logic Device).Điểm tương đồng của CPLD và FPGA là ở chỗ chúng
đều bao gồm một số lượng tương đối lớn các phần tử logic khả trình. Tuy nhiên mật
độ tích hợp thì khác nhau, mật độ cổng logic của CPLD nằm trong khoảng từ vài
nghìn đến hàng chục nghìn, trong khi với FPGA thì mật độ tích hợp cỡ hàng chục
nghìn cho đến vài triệu.
2
FPGA và CPLD có rất nhiều điểm khác biệt tuy nhiên kiến trúc là điểm khác biệt
chính giữa CPLD và FPGA. CPLD có kiến trúc giới hạn ở một mức độ nào đó, nó bao
gồm một hoặc nhiều dải logic “sum-of-products” khả trình và được cung cấp một số
tương đối nhỏ các thanh ghi được đồng bộ. Điều này làm cho CPLD trở nên không
được mềm dẻo lắm, nhưng bù lại trễ timing lại dễ dự đoán hơn và tốc độ kết nối logic
cũng cao hơn FPGA. Với FPGA, thì kiến trúc theo một cách khác trội hơn hẳn CPLD
bởi vì FPGA sử dụng các liên kết nối. Điều này không những tạo cho nó mềm dẻo hơn
rất nhiều mà còn làm tăng độ phức tạp trong thết kế.
Điểm khác biệt nữa giữa FPGA và CPLD là trong hầu hết chip FPGA đều có các
hàm cấp cao (như bộ cộng và bộ nhân) và các bộ nhớ đã được nhúng vào. Ngoài ra,
trong các FPGA đời mới còn hỗ trợ đầy đủ hoặc một phần việc cấu hình lại trong hệ
thống, cho phép thay đổi thiết kế tức là có thể cập nhật hệ thống hoặc cấu hình động
(dynamic reconfiguration) khi chúng đang hoạt động. Một vài FPGA còn có khả năng
cấu hình lại cục bộ (partial re-configuration) tức là một phần của thiết bị được cấu hình
trong khi các phần còn lại vẫn đang hoạt động.
1.2. KIẾN TRÚC CHUNG CỦA MỘT FPGA
Cấu trúc tổng thể của FPGA bao gồm:
-Các khối Logic
-Hệ thống liên kết mạch
-Các phần tử tích hợp sẵn
3
Hình 1.1 Cấu trúc tổng thể của một FPGA
1.2.1. Khối logic FPGA
Hình 1.2 Khối Logic
FPGA chứa trong nó rất nhiều khối logic có thể tái cấu hình CLB (Configurable
Logic Blocks) được liên kết với nhau thành bằng các liên kết khả trình (Programmable
Interconnect). Các khối vào ra được phân bố xung quanh chip tạo thành các liên kết
với bên ngoài. Bên trong khối logic CLB có bảng LUT (Look-Up Table) và các phần
4
tử nhớ (FlipFlop hoặc bộ chốt). LUT (Look up table) là khối logic có thể thực hiện bất
kì hàm logic nào từ 4 đầu vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngoài
khối logic trực tiếp hay thông qua phần tử nhớ flip-flop.
Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng khái niệm
SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từ vài nghìn
đến vài chục nghìn tùy theo loại FPGA.
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ
trợ thêm 2 đầu vào bổ xung từ các khối logic phân bố trước và sau nó nâng tổng số đầu
vào của LUT lên 6 chân. Cấu trúc này là nhằm tăng tốc các bộ số học logic.
1.2.2. Hệ thống mạch liên kết
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương
ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các
nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, dài và rất dài.
Các đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được
(programable switch), trong một khối chuyển mạch chứa một số lượng nút chuyển lập
trình được đảm bảo cho các dạng liên kết phức tạp khác nhau.
1.2.3. Các phần tử tích hợp sẵn
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích
hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5 của
Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân ARV…,
hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp các DSP
Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng Virtex của Xilinx
chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
5
1.3.
NGÔN NGỮ MÔ TẢ PHẦN CỨNG (HDL)
Ngôn ngữ mô tả phần cứng (HDL) là ngôn ngữ lập trình phần mềm dùng để mô
hình họat động mong muốn của phần cứng. Có hai khía cạnh mà HDL tạo điều kiện để
mô tả phần cứng: mô hình hành vi trừu tượng và mô hình cấu trúc phần cứng.
Mô hình hành vi trừu tượng. Ngôn ngữ mô tả phần cứng tạo điều kiện dễ dàng
cho việc mô tả trừu tượng hành vi của phần cứng đối với các mục đích đặc tả (chỉ rõ
chi tiết kỹ thuật). Hành vi này không chỉ bị chi phối bới các khía cạnh cấu trúc hoặc
thiết kế của ý định phần cứng.
Mô hình cấu trúc phần cứng. Cấu trúc phần cứng có khả năng được mô hình
trong ngôn ngữ mô tả phần cứng mà không cần quan tâm đến hành vi thiết kế.
Năm 1980 bộ Quốc phòng Mỹ (DOD) muốn thực hiện việc thiết kế mạch tự dẫn
chứng, muốn theo đuổi một hệ phương pháp thiết kế tổng quát và có thể sử dụng lại
được với các công nghệ mới. Rõ ràng đã có nhu cầu cho một ngôn ngữ lập trình chuẩn
để mô tả chức năng và cấu trúc của các mạch số đối với việc thiết kế vi mạch (IC). Sau
đó DOD đã tài trợ cho một dự án thuộc chương trình vi mạch có tốc độ rất cao VHSIC
(very high speed integrated circuit) để tạo ra ngôn ngữ mô tả phần cứng chuẩn. Kết
quả là dự án này đã tạo ra ngôn ngữ mô tả phần cứng VHSIC hay thường được gọi là
VHDL (VHSIC Hardware Description Language-Ngôn ngữ miêu tả phần cứng
VHSIC) như hiện nay.
VHDL được xem như là sự kết hợp của các ngôn ngữ sau : ngôn ngữ tuần tự +
ngôn ngữ đồng thời + netlist + định thời + mô phỏng. Do đó cấu trúc VHDL cho phép
thể hiện cách thức thực hiện theo kiểu song song hay tuần tự của một hệ thống số có
hoặc không có timing. Nó cũng cho phép vẽ mô hình một hệ thống bằng các liên kết
nối của các thành phần.
6
VHDL được dành cho tổng hợp mạch (synthesis) cũng như mô phỏng mạch
(simulation). Dù VHDL có thể mô phỏng một cách đầy đủ, nhưng không phải tất cả
các cấu trúc đều được VHDL tổng hợp.
1.3.1. Các ưu điểm của VHDL
-
Chương trình trong VHDL có thể được viết theo nhiều cấu trúc khác nhau:
Ngẫu nhiên, tuần tự, nối chân, định thời chỉ rõ, ngôn ngữ sinh dạng sóng.
-
VHDL là một ngôn ngữ phân cấp, hệ thống số có thể được mô phỏng như một
kết nối các khối mà các khối này được thực hiện bởi các khối con khác nhỏ
hơn.
-
Cung cấp một cách mềm dẻo các phương thức thiết kế trên xuống, dưới lên,
hoặc tổ hợp cả hai.
-
Cung cấp cả hai mode đồng bộ và không đồng bộ.
-
Linh hoạt trong kĩ thuật mô phỏng số như sử dụng biểu đồ trạng thái, thuật
toán, các hàm Boolean.
-
Có tính đại chúng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và
hiện nay là một tiêu chuẩn của IEEE. VHDL được sự 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.
-
VHDL cung cấp 3 kiểu mẫu viết khác nhau: structural, dataflow và behavioral.
-
Không giới hạn về độ lớn của thiết kế khi sử dụng ngôn ngữ.
-
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 tuỳ thuộc công nghệ chế tạo phần cứng mới ra đời nó có thể
được áp dụng ngay cho các hệ thống đã thiết kế .
-
Khả năng định nghĩa kiểu dữ liệu mới cung cấp một công cụ hữu hiệu cho thiết
kế và mô phỏng công nghệ mới với một mức rất cao.
7
1.3.2. Cấu trúc một mô hình hệ thống sử dụng ngôn ngữ VHDL
VHDL là ngôn ngữ mô tả phần cứng do vậy mà nó có thể được sử dụng để làm mô
hình của một hệ thống số. Hệ thống số có thể đơn giản là các cổng logic hay phức tạp
như một hệ thống hoàn chỉnh. Các khối xây dựng nên ngôn ngữ VHDL gọi là các khối
thiết kế. Có 3 khối thiết kế chính:
-
Khai báo Entity (Thực thể)
-
Khai báo Architecture (Kiến trúc)
-
Khai báo Configuration (Cấu hình)
-
Đôi khi ta s ử d ụ n g c á c g ó i (Packages) và mô hình kiểm tra hoạt động của
hệ thống (Testbench).
1.3.2.1
Entity (Thực thể)
Khai báo thực thể trong VHDL là phần định nghĩa các chỉ tiêu phía ngoài của một
phần tử hay một hệ thống. Khai báo Entity là chỉ ra tên của Entity và liệt kê các cổng
vào/ra. Các cổng là các (dây) tín hiệu mà qua đó entity giao tiếp với môi trường bên
ngoài. Ví dụ, một mạch bán tổng được chỉ ra ở hình 8 :
Hình 1.3 Bộ bán tổng
Khai báo Entity như sau:
entity HALF-ADDER is
port ( A, B : in BIT;
8
SUM, CARRY : out BIT);
end HATF-ADDER;
Bộ bán cộng này gồm có hai đầu vào là A và B; và hai đầu ra là SUM và CARRY,
BIT là một kiểu cấu trúc ngôn ngữ được định nghĩa trước của FPGA
1.3.2.2
Architecture (Kiến trúc)
Phần thứ 2 trong mã nguồn VHDL là khai báo Architecture. Mỗi một khai báo
Entity đều phải đi kèm với ít nhất một Architecture tương ứng. Khai báo Architecture
trong chương trình phải kết hợp tên của Architecture và một Entity trong chương trình
đó. Phần thân Architecture có thể bao gồm các khai báo về các tín hiệu bên trong, các
phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả hoạt động của hệ thống. Tên
của Architecture là nhãn được đặt tuỳ theo người viết chương trình. Cấu trúc bên trong
của Architecture có thể được viết theo một trong số các kiểu mẫu sau:
-Tập hợp kết nối bên trong của các thiết bị.
-Tập các câu lệnh ngẫu nhiên
-Tập các câu lệnh tuần tự.
-Kết hợp của ba dạng trên.
Các kiểu mô hình này sẽ được mô tả cụ thể như sau:
¾ Kiểu kiến trúc
Kiểu này được xây dựng dựa trên một tập các thành phần được kết nối. Ví dụ
như bộ bán tổng được chỉ ra sau đây:
architecture HA-STRUCTURE of HALF-ADDER is
component XOR2
port (X,Y : in BIT;
9
N: out BIT);
End component;
Component AND2
Port (L, M : in BIT;
N : out BIT);
End component;
Begin
X1: XOR2 port map(A,B,SUM);
A1 : AND2 port map (A,B,CARRY);
End HA-STRUCTURE;
¾ Kiểu luồng dữ liệu
Trong kiểu này, luồng dữ liệu qua Entity trước tiên được biểu diễn bằng các
phép gán đồng thời. Kiểu luồng dữ liệu của bộ bán cộng được chỉ ra trong ví dụ sau:
Architecture DATAFLOW of HALF-ADDER is
Begin
SUM <= A xor B after 8ns;
CARRY <= A and B after 4ns;
End DATAFLOW;
Trong ví dụ này kiểu luồng dữ liệu sử dụng hai phép gán tín hiệu đồng thời
(hoặc gán nối tiếp). Trong phép gán cho tín hiệu thì ký hiệu gán là “<=”. Giá trị của
biểu biểu thức bên phải được gán cho tín hiệu bên phía tay trái. Một phép gán đồng
thời được thực hiện chỉ khi có bất kỳ tín hiệu trong biểu thức phía phải có sự thay đổi,
10
tức là giá trị tín hiệu thay đổi. Thông tin trễ cũng có thể được thêm vào phép gán bằng
cách sử dụng mệnh đề “after” .
¾ Kiểu behavior
Kiểu behavior chỉ ra cách thức hoạt động của một entity như là một tập hợp lệnh
được thực hiện theo kiểu nối tiếp bằng cách sử dụng process. Chúng không chỉ ra rõ
ràng cấu trúc của entity mà chỉ ra chức năng của nó. Ví dụ sau xem xét kiểu behavior
của bộ bán tổng.
Architecture BEHAVIOR of HALF-ADDER is
Begin
Process (A,B)
Variable X,Y : BIT;
Begin
X:=A;
Y:=B;
SUM<=X xor Y;
CARRY <= X and Y;
End process;
End BEHAVIOR;
Một process cũng có một phần để khai báo (trước từ khóa “begin”) và một phần
để trình bày (giữa từ khóa “begin” và “process”). Các lệnh bên trong phần trình bày
này được thực hiện theo kiểu nối tiếp. Danh sách các tín hiệu được chỉ ra trong dấu
ngoặc sau từ khóa “process” tạo thành một danh sách “nhạy”. Tức là, khi có sự thay
đổi của bất kỳ giá trị nào trong danh sách này thì mới thực hiện các lệnh trong
11
process. Tuy nhiên, tất cả các process trong một chương trình thì đều thực hiện đồng
thời.
Khai báo biến (bắt đầu bằng từ khóa “variable”), trong ví dụ này có hai biến X và Y.
Các biến được gán với ký hiệu là “:=” và giá trị của vế phải gán cho giá trị biến bên
trái.
¾ Kiểu hỗn tạp.
Kiểu hỗn tạp là kiểu kết hợp cả ba kiểu trên. Tức là, bên trong một architecture,
chúng ta có thể sử dụng cả ba cách trình bày trên.
1.3.2.3
Configuration (Cấu hình)
Khai báo Configuration dùng để lựa chọn một trong các thân Architecture có sẵn
mà một Entity có hoặc để gắn các khối vào Entity. Nếu cho dạng cấu trúc,
Configuration có thể được xem như liệt kê các thành phần cho khối mô hình. Cho mỗi
khối thì Configuration chỉ rõ Architecture nào cho Entity từ nhiều Architecture. Khi
Configuration cho tổng hợp Entity-Architecture thì được biên dịch vào thư viện và một
thực thể mô phỏng được tạo ra. Ví dụ khai báo Configuration trong bộ bán tổng như
sau:
Library CMOS-LIB, MY-LIB;
Configuration CONFIG of HALF-ADDER is
For HA-STRUCTURE
For X1:XOR2
Use entity CMOS-LIB.XOR-GATE (DATAFLOW);
End for;
For A1 : AND2
12
Use configuration MY-LIB.AND-CONFIG;
End for;
End for; End CONFIG;
1.3.2.4
Package (Gói)
Mục đích cơ bản của Package là gói gọn các phần nhỏ có thể được sử dụng trong
nhiều thiết kế. Package là một biện pháp thường dùng để lưu dữ thông tin có thể được
sử dụng trong nhiều Entity. Mối quan hệ trong Package cho phép dữ liệu có thể được
tham chiếu bởi những Entity khác. Vì thế dữ liệu có thể được chia sẻ.
Một Package gồm hai phần: Phần khai báo và phần thân (Body). Phần khai báo
định nghĩa giao diện cho Package, bằng một cách tương tự như định nghĩa của Entity.
Thân của Package chỉ rõ sự biến đổi quan hệ trong Package giống như trong
Architecture.
VHDL là không giống như cách thực thi chương trình một cách tuần tự như
chương trình của PC, các lệnh của VHDL được thực hiện một cách đồng thời. Vì lí do
này, người ta thường gọi là “mã VHDL” chứ không gọi là “chương trình VHDL”.
Trong VHDL, chỉ các lệnh nằm trong PROCESS, FUNCTION hoặc PROCEDURE
mới được thực thi một cách tuần tự.
Như đã đề cập ở trên, một trong những ưu điểm của VHDL là nó cho phép tổng
hợp một mạch hay một hệ thống trong một thiết bị khả trình (như PLD hoặc FPGA)
hoặc trong một chip ASIC. Các bước thực hiện một project được chỉ ra trong hình 1.3.
13
Hình 1.4 Sơ đồ thiết kế VHDL
Thiết kế được bắt đầu bằng việc viết mã VHDL và lưu vào file có đuôi “.vhd” có
cùng tên với tên của ENTITY. Bước đầu tiên trong quá trình tổng hợp là biên dịch.
Biên dịch là quá trình chuyển từ ngôn ngữ VHDL bậc cao (mô tả mạch ở mức RTL –
mức chuyển thanh ghi) sang dạng danh sách kết nối (netlist) ở mức gate. Bước thứ hai
là tối ưu, được thực hiện trên danh sách kết nối mức gate để đạt được sự tối ưu về tốc
độ hoặc tối ưu về diện tích sắp đặt. Ở giai đoạn này, thiết kế có thể được mô phỏng.
Cuối cùng một phần mềm Place-và-route sẽ tạo ra sự sắp đặt (layout) vật lý cho một
thiết bị PLD/FPGA hoặc sẽ tạo ra mặt nạ (mask) cho chip ASIC.
14
1.3.2.5
Mô hình kiểm tra hoạt động (Testbench)
Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra
một mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô
phỏng và các giá trị thu được có thể đem so sánh với yêu cầu thiết kế.Môi trường kiểm
tra có thể hiểu như một mạch kiểm tra ảo. Môi trường kiểm tra sinh ra các tác động
lên bản thiết kế và cho phép quan sát hoặc so sánh kết quả hoạt động của bản mô tả
thiết kế. Thông thường thì các bản mô tả đều cung cấp chương trình thử. Nhưng ta
cũng có thể tự xây dựng chương trình thử (testbench). Mạch thử thực chất là sự kết
hợp của tổng hợp nhiều thành phần. Nó gồm ba thành phần. Mô hình VHDL đã qua
kiểm tra, nguồn dữ liệu và bộ quan sát. Hoạt động của mô hình VHDL được kích thích
bởi các nguồn dữ liệu và kiểm tra tính đúng đắn thông qua bộ quan sát.
Hình 1.5 Sơ đồ tổng quát của một chương trình thử (Testbench)
Trong đó: DUT: (device under test) mô hình VHDL cần kiểm tra
Observer: khối quan sát kết quả
Data source: nguồn dữ liệu (khối tạo ra các tín hiệu kích thích)
15
CHƯƠNG 2 : ĐẦU ĐỌC DẤU VÂN TAY
VÀ KIT SPARTAN XC3S500E
2.1. ĐẦU ĐỌC DẤU VÂN TAY :
Sơ đồ khối của MBF200 :
Hình 2.1 : Sơ đồ khối của MBF200
16
Trong đề tài này, tôi chọn tìm hiểu và thực hiện đọc dấu vân tay bằng đầu đọc
MBF200 của hãng FUJISU. MBF200 được chế tạo dựa trên tiêu chuẩn kĩ thuật
CMOS, bao gồm một mảng ma trận cảm biến có 300 hàng , 256 cột. Vì thế khi lấy
mẫu xong, ta được kết quả là một dấu vân tay có kích thước 300x256 pixel. Độ nhạy
của chip phụ thuộc vào thời gian và dòng điện xã. Giá trị của nguồn dòng được điều
khiển bởi một điện trở ngoài, được nối giữa chân ISET và mass. Nguồn dòng được
điều khiển bởi thanh ghi dòng xã ( DCR). Thời gian xã được điều khiển bởi thanh ghi
thời gian xã ( DTR).
Mô tả một số chân quan trọng :
- AIN : ngõ vào tuần tự đến bộ biến đổi A/D.
- XTAL1 : ngõ vào đến bộ dao động nội.
- XTAL2 : ngõ ra từ bộ dao động nội.
- D[7:0] : Bus dữ liệu 3 trạng thái, nó chốt và giữ trạng thái Bus khi không được điều
khiển. những chân này sẽ bỏ trống trong chế độ SPI và chế độ USB.
- A0 : đặt A0 ở mức thấp để chọn thanh ghi địa chỉ, A0 ở mức cao để chọn bộ đệm dữ
liệu. A0 được chốt và giữ trạng thái chân khi nó không được diều khiển. Chân A0 có
thể không kết nối khi dùng chế độ SPI và chế độ USB.
- /RD : chân cho phép đọc, tích cực mức thấp. Trong chế độ SPI hoặc chế độ USB thì
chân /RD có thể không kết nối.
- /WR : chân cho phép ghi, tích cực mức thấp. Trong chế độ SPI hoặc chế độ USB thì
chân /WR có thể không kết nối.
- /CS0 và /CS1 : có chức năng chọn chip, tích cực thấp. /CS0 và /CS1 có thể không kết
nối nếu dùng chế độ hoạt động là USB không dùng ROM ngoài. Chức năng của chân
/CS0 và /CS1 phụ thuộc vào chân MODE0 VÀ MODE1.
- EXTINT : ngõ vào ngắt ngoài, chân này có thể lập trình để hoạt động theo mức, cạnh
, tích cực cao hoặc tích cực thấp.
17
- /INTR : ngõ ra ngắt , tích cực mức thấp. /INTR có thể cho phép tác động nếu cảm
biến hoạt động ở chế độ MCU hoặc chế độ SPI.
- /WAIT : ngõ ra, tích cực thấp. /WAIT sẽ xuống mức thấp nếu bộ biến đổi A/D được
đọc trong khi quá trình biến đổi A/D được thực hiện. /WAIT sẽ giữ mức thấp cho tới
khi quá trình biến đổi A/D hoàn thành.
- MODE[1:0] : chân chọn chế độ làm việc, có thể chọn một trong bốn chế độ sau :
Mode[1:0]
Chế độ làm việc
00b
Chế độ bus vi xử lý
01b
Chế độ nối tiếp, SPI
10b
Chế độ USB, dùng ROM nội
11b
Chế độ USB, dùng ROM ngoại
Sau đây là cách thức lấy ảnh khi đầu đọc hoạt động ở chế độ nối tiếp và chế độ cổng
USB.
* Chế độ cổng nối tiếp : SPI mode.
18
LAÁY AÛNH
ÑAËT CHAÂN SCS ÔÛ MÖÙC THAÁP
GÖÕI MAÕ GHI
GÖÕI ÑÒA CHÆ THANH GHI ÑK A
GÖÕI DÖÕ LIEÄU 0X02
ÑAËT CHAÂN SCS ÔÛ MÖÙC CAO
CHÔØ THÔØI GIAN LAÁY DÖÕ LIEÄU MOÄT HAØNG
ÑAËT CHAÂN SCS ÔÛ MÖÙC THAÁP
GÖÕI MAÕ ÑOÏC
GÖÕI ÑÒA CHÆ
THANH GHI
ÑK A
ÑOÏC DÖÕ LIEÄU
N
KEÁT THUÙC HAØNG ?
Y
ÑAËT CHAÂN SCS ÔÛ MÖÙC CAO
N
KEÁT THUÙC ?
Y
AÛNH
Hình 2.2 : Lưu đồ lấy ảnh dùng chế độ nối tiếp
- Xem thêm -