Hệthống nhúng là một hệthống máy tính được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng; chẳng hạn, máy tính cá nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung. Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất.
15 trang |
Chia sẻ: vietpd | Lượt xem: 2706 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Hệ thống nhúng – thiết bị nhúng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Trang 64
Chương 4
Hệ thống nhúng – thiết bị nhúng
" Nội dung của chương này sẽ giới thiệu tổng quan về hệ thống nhúng, và các thiết
bị nhúng liên quan được dùng cho việc xây dựng và chạy thử nghiệm thư viện nhận
dạng vân tay ở trong luận văn này; cụ thể là giới thiệu về họ vi xử lý ARM9 và bo
mạch NK9315 được dùng để chạy thử nghiệm thư viện nhận dạng vân tay.
4.1 Hệ thống nhúng
4.1.1 Định nghĩa
Hệ thống nhúng là một hệ thống máy tính được thiết kế để thực hiện một chức năng
chuyên biệt nào đó. Khác với các máy tính đa chức năng; chẳng hạn, máy tính cá
nhân, một hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định,
thường đi kèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và
phần cứng chuyên dụng mà ta không tìm thấy trong một máy tính đa năng nói chung.
Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế
có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất. Các hệ thống
nhúng thường được sản xuất hàng loạt với số lượng lớn [33]. Hệ thống nhúng rất đa
dạng, phong phú về chủng loại; đó có thể là những thiết bị cầm tay nhỏ gọn như đồng
hồ kĩ thuật số, máy chơi nhạc MP3, hay những sản phẩm lớn như đèn giao thông, các
bộ kiểm soát trong nhà máy hay hệ thống kiểm soát các máy năng lượng hạt nhân, …
Xét về độ phức tạp, hệ thống nhúng có thể rất đơn giản với một vi điều khiển hoặc rất
phức tạp với nhiều thành phần, các thiết bị ngoại vi và mạng lưới được nằm gọn trong
một lớp vỏ máy lớn.
Các ví dụ về hệ thống nhúng:
• Các máy trả lời tự động.
Trang 65
• Máy in.
• Disk drives.
• Điện thoại tế bào.
• Hệ chuyển mạch.
• Hệ thống dẫn đường trong không lưu.
• Các thiết bị y tế.
• Video game consoles.
• Máy móc công nghiệp sử dụng các bộ điều khiển lôgic có thể lập trình được
(PLC) để điều khiển và giám sát các hoạt động của dây chuyền hệ thống.
• Các thiết bị gia dụng như: máy giặt, lò vi sóng, các sản phẩm tự động hóa,
các hệ thống an toàn và bảo mật.
• Các thiết bị mạng: router, firewall, …
4.1.2 Lịch sử phát triển
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (máy tính dẫn đường Apollo)
được phát triển bởi Charles Stark Draper tại phòng thí nghiệm của trường đại học
MIT. Hệ thống nhúng được sản xuất hàng loạt, đầu tiên là máy hướng dẫn cho tên lửa
quân sự vào năm 1961 có tên gọi là Autonetics D-17, được xây dựng từ những bóng
bán dẫn và một đĩa cứng để duy trì bộ nhớ. Khi Minuteman II được đưa vào sản xuất
năm 1996, D-17 đã được thay thế với một máy tính mới sử dụng mạch tích hợp. Tính
năng thiết kế chủ yếu của máy tính Minuteman là nó đưa ra thuật toán có thể lập trình
lại; sau đó, để làm cho tên lửa chính xác hơn, và máy tính có thể kiểm tra tên lửa,
giảm trọng lượng của cáp điện và đầu nối điện.
Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã giảm giá
và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hướng đến người tiêu
dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và những hệ thống nhỏ
Trang 66
khác; tuy nhiên, nó vẫn cần các chip nhớ ngoài và những hỗ trợ khác. Vào những
năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn
cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến nhiều
thành phần có thể đưa vào một vi xử lý. Các bộ vi xử lý được gọi là các vi điều khiển
và được chấp nhận rộng rãi. Với giá cả thấp, các vi điều khiển đã trở nên rất hấp dẫn
để xây dựng các hệ thống chuyên dụng. Đã có một sự bùng nổ về số lượng các hệ
thống nhúng trong tất cả các lĩnh vực thị trường và số các nhà đầu tư sản xuất theo
hướng này. Ví dụ, rất nhiều vi xử lý đặc biệt xuất hiện với nhiều giao diện lập trình
hơn là kiểu song song truyền thống để kết nối các vi xử lý. Vào cuối những năm 80,
các hệ thống nhúng đã trở nên phổ biến trong hầu hết các thiết bị điện tử và khuynh
hướng này vẫn còn tiếp tục cho đến nay.
Hiện nay có khá nhiều kiến trúc vi xử lý khác nhau sử dụng để xây dựng hệ thống
nhúng như: ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR,
Renesas H8, SH, V850, FR-V, M32R, Z80, Z8, …
4.1.3 Các đặc điểm của hệ thống nhúng
Hệ thống nhúng thường có một số đặc điểm chung như sau:
• Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên
dụng chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng.
• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ
thống phức tạp nằm trong thiết bị mà nó điều khiển. Các thành phần như: vi
xử lý hay bộ nhớ có nhiều kiểu kiến trúc khác nhau.
• Việc sản xuất hệ thống nhúng chịu sự ràng buộc lớn về chi phí và năng
lượng.
• Hệ thống nhúng thường có những yêu cầu về xử lý theo thời gian thực.
Trang 67
• Việc xây dựng phần mềm trên hệ thống nhúng gặp phải những khó khăn về
công cụ lập trình và debug.
• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được
lưu trữ trong các vi xử lý bộ nhớ chỉ đọc (read-only memory) hoặc bộ nhớ
flash chứ không phải là trong một ổ đĩa. Phần mềm thường chạy với số tài
nguyên phần cứng hạn chế: không có bàn phím, màn hình hoặc có nhưng với
kích thước nhỏ, bộ nhớ hạn chế.
Xét riêng về mặt giao diện:
• Các hệ thống nhúng có thể không có giao diện (đối với những hệ thống đơn
nhiệm) hoặc có đầy đủ giao diện giao tiếp với người dùng tương tự như các
hệ điều hành trong các thiết bị để bàn. Các hệ thống đơn giản sử dụng nút
bấm, đèn LED và hiển thị chữ cỡ nhỏ hoặc chỉ hiển thị số.
• Trong một hệ thống phức tạp hơn, một màn hình đồ họa, cảm ứng hoặc có
các nút bấm ở lề màn hình cho phép thực hiện các thao tác phức tạp. Các hệ
thống nhúng thường có một màn hình với một nút bấm dạng cần điểu khiển
(joystick button).
• Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho những nhà thiết
kế hệ nhúng một lựa chọn mới là sử dụng một giao diện web thông qua kết
nối mạng. Điều này có thể giúp tránh được chi phí cho những màn hình phức
tạp nhưng đồng thời vẫn cung cấp khả năng hiển thị và nhập liệu phức tạp
khi cần đến, thông qua một máy tính khác. Điều này là hết sức hữu dụng đối
với các thiết bị điều khiển từ xa, hoặc các thiết bị cài đặt vĩnh viễn từ khi
xuất xưởng.
Độ tin cậy của hệ thống nhúng:
• Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy
hàng năm trời liên tục mà không bị lỗi hoặc có thể tự động khôi phục hệ
thống khi gặp lỗi. Vì thế, các phần mềm hệ thống nhúng cần phải được kiểm
Trang 68
thử một cách cẩn thận hơn là phần mềm cho máy tính cá nhân. Ngoài ra, các
thiết bị rời không đáng tin cậy như ổ đĩa, công tắc hoặc nút bấm thường bị
hạn chế sử dụng. Việc khôi phục hệ thống khi gặp lỗi có thể được thực hiện
bằng cách sử dụng các kỹ thuật như watchdog timer – nếu phần mềm không
đều đặn nhận được các tín hiệu watchdog định kì thì hệ thống sẽ tự khởi
động lại.
• Trường hợp hệ thống không thể ngừng để sửa chữa một cách an toàn; ví dụ,
ở các hệ thống không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn
đường, … Giải pháp đưa ra là chuyển sang sử dụng các hệ thống con dự trữ
hoặc các phần mềm cung cấp một phần chức năng.
• Đối với hệ thống phải được chạy liên tục vì tính an toàn; ví dụ, các thiết bị
dẫn đường máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa
chất… thì cần phải chuẩn bị sẵn sàng hệ thống khác tương tự để thay thế
ngay khi cần thiết.
4.1.4 Kiến trúc của hệ thống nhúng
Kiến trúc của hệ thống nhúng là khái niệm trừu tượng của thiết bị nhúng; nghĩa là, nó
là tổng quát hóa của một hệ thống chứ không phải là thông tin thực hiện chi tiết. Ở
mức kiến trúc, các thành phần của phần cứng và phần mềm trong hệ thống nhúng
được coi như là các phần tử kết hợp tác động qua nhau (composition of interacting
elements).
Thông tin ở mức kiến trúc được thể hiện ở dạng các cấu trúc (structrures). Một cấu
trúc có thể là một đại diện của kiến trúc, nó chứa các phần tử (elements), thuộc tính
(properties), và thông tin mối liên hệ các phần tử bên trong kiến trúc, xem các cấu
trúc chi tiết ở [33].
Trang 69
Hình 4.1 Mô hình tiêu biểu của hệ thống nhúng.
4.1.5 Các ứng dụng hệ thống nhúng
Hiện nay, có rất nhiều các ứng dụng của hệ thống nhúng đang được sử dụng và xu thế
sẽ còn tiếp tục tăng nhanh [45]. Một số các lĩnh vực và sản phẩm thị trường rộng lớn
của các hệ nhúng có thể được nhóm lại như sau:
• Các thiết bị điều khiển.
• Máy bay, ôtô, tàu lửa tốc độ cao.
• Hệ thống điều khiển tàu trụ.
• Truyền thông.
• Thiết bị y tế.
• Hệ thống đo lường thẩm định.
• Tòa nhà thông minh.
• Thiết trong các dây chuyền sản xuất.
• Rôbốt.
• Các thiết bị quân sự (hệ thống tên lửa , máy bay chiến đấu, tàu chiến, ...).
Trang 70
4.2 Bo mạch NK9315
4.2.1 Giới thiệu
Bo mạch NK9315 sử dụng vi xử lý thuộc dòng vi xử lý ARM9 có tên là EP9315-CB.
Về mặt kiến trúc, bo mạch được thiết kế tương tự như bo mạch NK9312 nhưng sử
dụng bộ vi xử lý EP9315-CB thay cho bộ EP9312. Bo mạch có thể chạy được các hệ
điều hành như Windows CE hay Embedded Linux.
Hình 4.2 Kiến trúc bo mạch NK9315.
Các thành phần chính của bo mạch NK9312/9315:
• 16KB 64-way set-association instruction, tốc độ bộ vi xử lí là 200MHz.
• Khởi động (Boot up):
o Khởi động Internal boot thông qua ROM.
o Khởi động External boot thông qua Bộ nhớ Flash không đồng bộ –
Asynchronous Flash.
• SDRAM Samsung.
Trang 71
• 1 SRAM bus interface: dùng để kết nối đến thiết bị SDRAM dữ liệu
ngoài 16-bit.
• NK9312/9315 hỗ trợ bộ nhớ flash loại NAND hay NOR kích thước 32
MB được chia thành 2 thiết bị nhớ là Intel E28F128J3A Strata FLASH.
• Các thiết bị ngoại vi
o A/DC.
o Cổng giao tiếp mạng PCMCIA – 1 PCMCIA interface.
o 3 cổng USB 2.0.
o 3 cổng UART – 2 RS-232 và 1 RS-485.
o Video interface – Raster/LCD (Touch screen interface).
o I2S Audio.
o IDE – IDE storage device.
4.2.2 Các đặc tính của bo mạch NK9315
Bảng 4.1 Các tính năng hỗ trợ của bo mạch NK9315.
Bo mạch NK9315
Tốc độ CPU 200 MHz
RAM 64 MB
Math Engine 9
Ehternet MAC 9
PCMCIA 9
IDE 2ch
USB Hosts 3
Trang 72
Display 9
Graphics Accel 9
Touch ADC 9
Keypad 9
UARTS 3
4.3 Vi xử lý họ ARM9
4.3.1 Lịch sử phát triển họ vi xử lý ARM
Trong thời kỳ đầu của điện toán, con người đã sử dụng các linh kiện điện tử bằng
silicon để tạo ra vi xử lý để xử lý và thực hiện lệnh. Theo thời gian, khi nhu cầu về số
lượng các lệnh ngày càng tăng thì càng nhiều yêu cầu lệnh được thêm vào. Đặc biệt,
với những lệnh phức tạp thì việc thêm chúng vào các linh kiện điện tử silicon trở
thành một công việc vô cùng khó khăn. Chính vì thế, những nhà thiết kế vi xử lý giải
quyết bằng cách dùng microcode9, mà minh chứng cụ thể chính là vi xử lý theo kiểu
CISC (Complex Instruction Set Computer). Vi xử lý CISC có tầng cơ bản nhất (còn
được xem là phần nhân, phần cốt lõi) dựa trên vi xử lý RISC (Reduced Instruction Set
Computer) có tốc độ xử lý nhanh. Tầng cao nhất trong CISC là bộ thông dịch đảm
nhận nhiệm vụ rã các lệnh phức tạp của CISC thành các lệnh RISC đơn giản hơn để
xử lý.
ARM được xem là bộ vi xử lý RISC có hiệu quả cao, chi phí thấp và tiết kiệm năng
lượng. Ban đầu, nó được thiết kế cho máy tính để bàn Archimedes nhưng vì trong
bản thiết kế có nhiều điểm làm cho ARM không phù hợp với máy tính để bàn và có
nhiều điểm làm cho ARM phù hợp với thiết bị nhúng, nên ARM ngẫu nhiên trở thành
sự lựa chọn cho các ứng dụng nhúng.
9 Microcode là kỹ thuật để phát triển tập lệnh trong bộ xử lý
Trang 73
Hiện nay, trên thị trường có rất nhiều sản phẩm nhúng sử dụng vi xử lý ARM. Điện
thoại di động là một trong những sản phẩm tiêu biểu đã sử dụng hệ thống vi xử lý
ARM của hãng thiết kế bộ xử lý cho điện thoại di động Arm (Mỹ). Theo dòng vi xử
lý Arm7 đang thống lĩnh thị trường trên các loại điện thoại chỉ hỗ trợ hội thoại. Điện
thoại sử dụng mẫu vi xử lý Arm9 thì chiếm số đông trong thị trường sản phẩm tầm
trung (các loại điện thoại có thêm chức năng chuyên biệt), còn mẫu vi xử lý Arm11
thì được ứng dụng cho hầu hết điện thoại thông minh cao cấp.
Các phiên bản họ vi xử lý ARM:
Bảng 4.2 Các phiên bản thuộc họ vi xử lý ARM.
Core Arch Implementation Feature
ARM1 ARMv1 ARM1
ARM2 ARMv2 ARM2
Architecture 2 added the MUL
(multiply) instruction
ARMv2a ARM250
Integrated MEMC (MMU),
Graphics and IO processor.
Architecture 2a added the SWP
and SWPB (swap) instructions.
ARM3 ARMv2a ARM2a
First use of a processor cache on
the ARM.
ARM6 ARMv3 ARM60
v3 architecture first to support
addressing 32bits of memory (as
opposed to 26bits)
ARM600
Cache and coprocessor bus (for
FPA10 floating-point unit).
Trang 74
ARM610 Cache, no coprocessor bus.
ARM7 ARMv3 ARM700
ARM7100 Integrated SoC.
ARM7500(FE)
Integrated SoC. "FE" Added FPA
and EDO memory controller.
ARM7TDM
I
ARMv4T ARM7TDMI(-S) 3-stage pipeline
ARM710T
ARM720T
ARM740T
ARMv5TE
J
ARM7EJ-S Jazelle DBX
StrongARM ARMv4 SA-110
ARM9TDM
I
ARMv4T ARM9TDMI 5-stage pipeline
ARM920T
ARM922T
ARM940T
ARM9E ARMv5TE ARM946E-S
ARMv5TE
J
ARM926EJ-S Jazelle DBX
Trang 75
ARMv5TE ARM996HS Clockless processor
ARM10E ARMv5TE ARM1020E (VFP), 6-stage pipeline
ARM1022E (VFP)
ARMv5TE
J
ARM1026EJ-S Jazelle DBX
XScale ARMv5TE
80200/IOP310/IOP
315
I/O Processor
IOP34x 1-2 core, RAID Acceleration
PXA210/PXA250
Applications processor, 7-stage
pipeline
IXC1100 Control Plane Processor
ARM11 ARMv6 ARM1136J(F)-S
SIMD, Jazelle DBX, (VFP), 8-
stage pipeline
ARMv6T2 ARM1156T2(F)-S
SIMD, Thumb-2, (VFP), 9-stage
pipeline
ARMv6KZ ARM1176JZ(F)-S SIMD, Jazelle DBX, (VFP)
ARMv6K ARM11 MPCore
1-4 core SMP, SIMD, Jazelle
DBX, (VFP)
Cortex ARMv7-A Cortex-A8
Application profile, VFP, NEON,
Jazelle RCT, Thumb-2, 13-stage
pipeline
ARMv7-R Cortex-R4(F) Embedded profile, (FPU)
Trang 76
ARMv7-M Cortex-M3
Microcontroller profile, Thumb-2
only.
ARMv6-M Cortex-M1
FPGA targeted, Microcontroller
profile, Thumb-2 (BL, MRS,
MSR, ISB, DSB, and DMB).
4.3.2 Vi xử lý EP9315-CB
Hình 4.3 Vi xử lý EP9315-CB.
EP9315-CB được dùng làm vi xử lý trong bo mạch NK9315. Đây là vi xử lý phát
triển thêm các tính năng từ ARM920T, là thành viên trong họ ARM9TDMI sử dụng
cho các vi xử lý đa dụng. ARM9TDMI bao gồm:
• ARM9TDMI (phần nhân).
• ARM940T (gồm phần nhân, bộ nhớ dữ liệu cache và protection unit).
• ARM920T (gồm phần nhân, bộ nhớ dữ liệu cache và MMU10).
Nhân bộ vi xử lý ARM9TDMI được thực thi qua 5 giai đoạn: Fetch, Decode,
Execute, Memory và Write. Đó là nhân độc lập có thể nhúng vào nhiều thiết bị phức
10 Memory Management Unit
Trang 77
tạp. Nhân độc lập này có giao diện đơn giản cho đường truyền dữ liệu – bus cho phép
bạn thiết kế hệ thống bộ nhớ và bộ nhớ dữ liệu cache cho chính mình.
Họ vi xử lý ARM9TDMI hỗ trợ cho cả ARM 32-bit và 16-bit (các tập lệnh Thumb)
giúp cân bằng giữa hiệu suất và mật độ mã.
EP9315-CB là vi xử lý có cấu trúc dữ liệu cache của Havard. Mục tiêu của EP9315-
CB là các ứng dụng được kiểm soát toàn bộ bộ nhớ, hiệu suất cao và tiết kiệm năng
lượng lên hàng đầu. Trong thiết kế này thì phần lệnh và dữ liệu được tách độc lập và
mỗi phần có kích thước 16KB. Ngoài ra, EP9315-CB sử dụng ARM architecture v4
MMU còn cung cấp sự biên dịch và kiểm tra quyền truy cập đối với lệnh và dữ liệu.
EP9315-CB còn hỗ trợ ETM (Embedded Trace Macrocell) để theo dõi thời gian thực
cho phần lệnh và phần dữ liệu.
4.3.3 Các đặc tính của EP9315-CB
• Cấu trúc ARM bao gồm các đặc tính của RISC như sau:
o Cấu trúc nạp/lưu trữ.
o Tập lệnh trực giao.
o File thanh ghi lớn gồm 16×32 bit.
o Chiều dài mã máy cố định là 32 bit để dễ giải mã và thực hiện
pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy.
o Hầu hết các lệnh đều thực hiện trong vòng một chu kỳ đơn.
• So với các vi xử lý cùng thời như Intel 80286 và Motorola 68020, trong
ARM có một số tính chất khá độc đáo như sau:
o Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này
làm giảm việc phải viết các tiêu đề rẽ nhánh cũng như bù cho việc
không có một bộ dự đoán rẽ nhánh.
o Trong các lệnh số học, để chỉ ra điều kiện thực hiện, người lập trình
chỉ cần sửa mã điều kiện.
Trang 78
o Có một thanh ghi dịch đóng thùng 32 bit mà có thể sử dụng với chức
năng hoàn hảo với hầu hết các lệnh số học và việc tính toán địa chỉ.
o Có các kiểu định địa chỉ theo chỉ số rất mạnh.
o Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất
nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi.