Giáo trình Hệ thống nhúng - Trường Đại học Hàng Hải

BGIAO THÔNG VN TI  
TRƢỜNG ĐẠI HC HÀNG HI  
BMÔN: KTHUT MÁY TÍNH  
KHOA: CÔNG NGHTHÔNG TIN  
BÀI GING  
HTHNG NHÚNG  
TÊN HC PHN  
MÃ HC PHN  
: HTHNG NHÚNG  
: 17312  
TRÌNH ĐỘ ĐÀO TO  
: ĐẠI HC CHÍNH QUY  
DÙNG CHO SV NGÀNH : CÔNG NGHTHÔNG TIN  
HI PHÒNG - 2010  
MỤC LỤC  
- 1 -  
- 2 -  
YÊU CẦU VÀ NỘI DUNG CHI TIẾT  
Tên hc phn: Hthng nhúng  
Loi hc phn: 3  
Khoa phtrách: CNTT  
Tng sTC: 3  
Bmôn phtrách ging dy: Kthut máy tính  
Mã hc phn: 17312  
TS tiết Lý thuyết Thc hành/Xemina Thc Bài tp ln  
Đồ án môn hc  
45  
45  
0
0
x
0
Điều kiện tiên quyết:  
Sinh viên phải học xong các học phần sau mới đƣợc đăng ký học phần này:  
Kiến trúc máy tính, Điện tử số, Mạch và tín hiệu, Kỹ thuật Vi xử lí, Nguyên lý hệ điều  
hành,..  
Mục tiêu của học phần:  
Cung cấp các kiến thức cơ bản về về các kiến trúc và mô hình của hệ thống nhúng  
Áp dụng xây dựng các hệ thống nhúng cơ bản dựa trên các thiết bị, các họ vi xử lý  
thông dụng  
Nội dung chủ yếu  
Chƣơng 1: Tổng quan  
Chƣơng 2: Hệ thống phần cứng  
Chƣơng 3: Phần mềm nhúng  
Chƣơng 4: Thiết kế hệ thống nhúng theo các họ Vi xử lí  
Nội dung chi tiết:  
PHÂN PHỐI SỐ TIẾT  
TÊN CHƢƠNG MỤC  
Chƣơng 1: Tổng quan  
TS  
8
LT  
8
BT  
TH KT  
1.1. Tổng quan  
1
1.2. Kiến trúc hệ thống nhúng  
1.3. Thiết kế hệ thống nhúng  
1.4. Các mô hình hệ thống nhúng  
1.5. Các chuẩn  
2
2
2
1
Chƣơng 2: Hệ thống phần cứng  
2.1. Tổng quan  
10  
9
1
1
2.2. Hệ Vi xử lí  
3
2.2.1. Tng quan  
2.2.2. Kiến trúc vi xlí trong các hthng nhúng  
2.2.3. Sthc thi  
2.3. Bộ nhớ  
2
2.3.1. Tng quan  
2.3.2. BnhROM  
2.3.3. BnhRAM  
2.3.4. Qun lí bnhớ  
- 3 -  
PHÂN PHỐI SỐ TIẾT  
TÊN CHƢƠNG MỤC  
TS  
LT  
BT  
TH KT  
2.4. Thiết bị ngoại vi  
2.4.1. Tng quan  
2
2.4.2. Vào ra ni tiếp  
2.4.3. Vào ra song song  
2.5. BUS  
1
8
1
2
1
Chƣơng 3: Phần mềm nhúng  
3.1. Tổng quan  
9
1
3.2. Trình điều khiển thiết bị  
3.2.1. Tng quan  
3.2.2. Ngt  
3.2.3. Bnhớ  
3.2.4. BUS  
3.3. Hệ điều hành trong các hệ thống nhúng  
3.3.1. Tng quan  
4
3.3.2. Tiến trình  
3.3.3. Qun lí tiến trình  
3.3.4. Qun lí bnhớ  
3.3.5. Qun lí thiết bngoi vi  
3.4. Phần mềm ứng dụng  
Chƣơng 4: Thiết kế hệ thống nhúng theo các họ VXL  
4.1. Tổng quan  
2
16  
1
1
16  
BTL  
4.2. Họ vi xử lí AT89C  
4.2.1. Tng quan  
5
4.2.2. Kiến trúc họ  
4.2.3. Tp lnh  
4.2.4. Sthc thi  
4.2.5. Thiết kế ứng dng  
4.3. Họ vi xử lí AVR  
4.3.1. Tng quan  
5
5
4.3.2. Kiến trúc hvi xlý AVR  
4.3.3. Tp lnh  
4.3.4. Sthc thi  
4.3.5. Thiết kế ứng dng  
4.4. Họ vi xử lí ARM  
4.4.1. Tng quan  
1
4.4.2. Kiến trúc họ  
4.4.3. Tp lnh  
4.4.4. Sthc thi  
4.4.5. Thiết kế ứng dng  
- 4 -  
Nhim vca sinh viên :  
Tham dcác bui thuyết trình ca giáo viên, thc, tlàm bài tp do giáo viên giao,  
tham dcác bài kiểm tra định kvà cui k, hoàn thành bài tp ln theo yêu cu.  
Tài liu hc tp :  
- Al.M.Zied , Embedded System Architecture, NXB Elsevier  
- John Catsoulis, Designing Embedded Hardware, NXB O'Reilly  
- Ken Arnold, Embedded Controller Hardware Design, NXB LLH Technology  
- Dhananjay V.Gadre, Programming And Customizing The AVR Microcontroller,  
NXB Mc.Graw Hill  
- Steve Furber, ARM System On Chip Architecture, NXB Dorling Kindersley  
Hình thc và tiêu chuẩn đánh giá sinh viên:  
- Đánh giá dựa trên tình hình tham dbui hc trên lp, các bui thực hành, điểm kim  
tra thƣờng xuyên và điểm kết thúc hc phn.  
- Hình thc thi cui k: thi vit + kim tra vấn đáp BTL  
Thang điểm: Thang điểm chA, B, C, D, F  
Điểm đánh giá học phn Z = 0.3X + 0.7Y.  
Bài ging này là tài liu chính thc và thng nht ca Bmôn Kthut máy tính, Khoa  
Công nghệ Thông tin và đƣợc dùng để ging dy cho sinh viên.  
Ngày phê duyt: 15 / 6 / 2010  
Trƣởng Bmôn: ThS. Ngô Quc Vinh  
- 5 -  
CHƢƠNG 1 - TỔNG QUAN  
1.1 Tổng quan  
Hệ điều khiển nhúng là một môn học mới nhằm cung cấp kiến thức cho sinh viên về  
khả năng phân tích và thiết kế hệ thống điều khiển và thông minh hoá hệ thống theo chức  
năng theo giải pháp công nghệ. Thiết kế thực thi điều khiển trên nền phần cứng nhúng.  
Kỷ nguyên công nghệ mới đã và đang tiếp tục phát triển không ngừng nhằm thông  
minh hoá hiện đại hoá thông suốt các hệ thống. Có thể nói đánh dấu sự ra đời và phát triển  
của hệ nhúng trƣớc tiên phải kể đến sự ra đời của các bộ vi xử lý, vi điều khiển. Nó đƣợc đánh  
dấu bởi sự ra đời của Chip vi xử lý đầu tiên 4004 vào năm 1971 cho mục đích tính toán  
thƣơng mại bởi một công ty Nhật bản Busicom và sau đó đã đƣợc chắp cánh và phát triển  
vƣợt bậc bởi Intel để trở thành các bộ siêu xử lý nhƣ các Chip đƣợc ứng dụng cho PC nhƣ  
ngày nay. Thập kỷ 80 có thể đƣợc coi là khởi điểm bắt đầu kỷ nguyên của sự bùng nổ về phát  
triển các hệ nhúng. Từ đó khởi nguồn cho làn sóng ra đời của hàng loạt các chủng loại vi xử  
lý và gắn liền là các hệ nhúng để thâm nhập rộng khắp trong các ứng dụng hàng ngày của  
cuộc sống chúng ta ví dụ nhƣ, các thiết bị điện tử sử dụng cho sinh hoạt hàng ngày (lò vi  
sóng, TV, tủ lạnh, máy giặt, điều hoà ...) và văn phòng làm việc (máy fax, máy in, máy điện  
thoại...)... Các bộ vi xử lý và phần mềm cũng ngày càng đƣợc sử dụng rộng rãi trong rất nhiều  
các hệ thống nhỏ. Các loại vi xử lý đƣợc sử dụng trong các hệ thống nhúng hiện nay đã vƣợt  
xa so với PC về số lƣợng chủng loại (chiếm đến 79% số các vi xử lý đang tồn tại [2] ) và vẫn  
còn tiếp tục phát triển để nhằm đáp ứng và thoả mãn rất nhiều ứng dụng đa dạng. Trong số đó  
vẫn còn ứng dụng cả các Chip vi xử lý 8 bit, 16 bit và hiện nay chủ yếu vẫn là 32 bit (chiếm  
khoảng 75%). Gắn liền với sự phát triển phần cứng, phần mềm cũng đã phát triển với tốc độ  
nhanh không thua kém thậm chí sẽ tăng nhanh hơn rất nhiều theo sự phát triển hệ nhúng. Ta  
xem xét một số khái niệm sau.  
1.1.1 Hệ thống nhúng  
Vậy thế nào là một hệ nhúng? Trong thế giới thực của chúng ta bất kỳ một thiết bị hay  
hệ thống điện/điện tử có khả năng xử lý thông tin và điều khiển đều có thể tiềm ẩn trong đó  
một thiết bị hay hệ nhúng, ví dụ nhƣ các thiết bị truyền thông, thiết bị đo lƣờng điều khiển,  
các thiết bị phục vụ sinh hoạt hàng ngày nhƣ lò vi sóng, máy giặt, camera…Rất dễ dàng để có  
thể kể ra hàng loạt các thiết bị hay hệ thống nhƣ vậy đang tồn tại quanh ta, chúng là hệ nhúng.  
Vậy hệ nhúng thực chất là gì và nên hiểu thế nào về hệ nhúng? Hiện nay cũng chƣa có một  
định nghĩa nào thực sự thoả đáng để đƣợc chuẩn hoá và thừa nhận rộng rãi cho hệ nhúng mà  
vẫn chỉ là những khái niệm diễn tả về chúng thông qua những đặc thù chung. Tuy nhiên ở đây  
chúng ta có thể hiểu hệ nhúng là một phần hệ thống xử lý thông tin nhúng trong các hệ thống  
lớn, phức hợp và độc lập ví dụ nhƣ trong ôtô, các thiết bị đo lƣờng, điều khiển, truyền thông  
và thiết bị thông minh nói chung. Chúng là những tổ hợp của phần cứng và phần mềm để thực  
hiện một hoặc một nhóm chức năng chuyên biệt, cụ thể (Trái ngƣợc với máy tính PC mà  
chúng ta thƣờng thấy đƣợc sử dụng không phải cho một chức năng mà là rất nhiều chức năng  
hay phục vụ chung cho nhiều mục đích). PC thực chất lại là một hệ thống lớn, tổ hợp của  
nhiều hệ thống nhúng dụ nhƣ card màn hình, âm thanh, modem, ổ cứng, bàn phím…Chính  
điều này làm chúng ta dễ lúng túng nếu đƣợc hỏi nên hiểu thế nào về PC, có phải là hệ nhúng  
hay không.  
1.1.2 Hệ thống thời gian thực  
Trong các bài toán điều khiển và ứng dụng chúng ta rất hay gặp thuật ngữ “thời gian  
thực”. Thời gian thực có phải là thời gian phản ánh về độ trung thực của thời gian hay không?  
Thời gian thực có phải là hiển thị chính xác và đồng bộ theo đúng nhƣ nhịp đồng hồ đếm thời  
gian hay không? Không phải hoàn toàn nhƣ vậy! Thực chất, theo cách hiểu nếu nói trong các  
hệ thống kỹ thuật đặc biệt các hệ thống yêu cầu khắt khe về sự ràng buộc thời gian, thời gian  
- 6 -  
       
thực đƣợc hiểu là yêu cầu của hệ thống phải đảm bảo thoả mãn về tính tiền định trong hoạt  
động của hệ thống. Tính tiền định nói lên hành vi của hệ thống thực hiện đúng trong một  
khung thời gian cho trƣớc hoàn toàn xác định. Khung thời gian này đƣợc quyết định bởi đặc  
điểm hoặc yêu cầu của hệ thống, có thể là vài giây và cũng có thể là vài nano giây hoặc nhỏ  
hơn nữa. Ở đây chúng ta phân biệt yếu tố thời gian gắn liền với khái niệm về thời gian thực.  
Không phải hệ thống thực hiện rất nhanh là sẽ đảm bảo đƣợc tính thời gian thực vì nhanh hay  
chậm hoàn toàn là phép so sánh có tính tƣơng đối vì mili giây có thể là nhanh với hệ thống  
điều khiển nhiệt nhƣng lại là chậm đối với các đối tƣợng điều khiển điện nhƣ dòng, áp….  
Hơn thế nữa nếu chỉ nhanh không thì chƣa đủ mà phải đảm bảo duy trì ổn định bằng một cơ  
chế hoạt động tin cậy. Chính vì vậy hệ thống không kiểm soát đƣợc hoạt động của nó (bất  
định) thì không thể là một hệ thống đảm bảo tính thời gian thực mặc dù hệ thống đó có thể  
cho đáp ứng rất nhanh, thậm chí nhanh hơn rất nhiều so với yêu cầu đặt ra. Một ví dụ minh  
hoạ tiêu biểu đó là cơ chế truyền thông dữ liệu qua đƣờng truyền chuẩn Ethernet truyền thống,  
mặc dù ai cũng biết tốc độ truyền là rất nhanh nhƣng vẫn không phải hệ hoạt động thời gian  
thực vì không thoả mãn tính tiền định trong cơ chế truyền dữ liệu (có thể là rất nhanh và cũng  
có thể là rất chậm nếu có sự canh trạnh và giao thông đƣờng truyền bị nghẽn).  
Ngƣời ta phân ra làm hai loại đối với khái niệm thời gian thực là cứng (hard real time)  
và mềm (soft real time). Thời gian thực cứng là khi hệ thống hoạt động với yêu cầu thoả mãn  
sự ràng buộc trong khung thời gian cứng tức là nếu vi phạm thì sẽ dẫn đến hoạt động của toàn  
hệ thống bị sai hoặc bị phá huỷ. Ví dụ về hoạt động điều khiển cho một lò phản ứng hạt nhân,  
nếu chậm ra quyết định có thể dẫn đến thảm hoạ gây ra do phản ứng phân hạch và dẫn đến  
bùng nổ cả hệ thống. Thời gian thực mềm là khi hệ thống hoạt động với yêu cầu thoả mãn  
ràng buộc trong khung thời gian mềm, nếu vi phạm và sai lệch nằm trong khoảng cho phép thì  
hệ thống vẫn có thể hoạt động đƣợc và chấp nhận đƣợc. Ví dụ nhƣ hệ thống phát thanh truyền  
hình, nếu thông tin truyền đi từ trạm phát tới ngƣời nghe/nhìn chậm một vài giây thì cũng  
không ảnh hƣởng đáng kể đến tính thời sự của tin đƣợc truyền đi và hoàn toàn đƣợc chấp  
nhận bởi ngƣời theo dõi. Thực tế thấy rằng hầu hết hệ nhúng là các hệ thời gian thực và hầu  
hết các hệ thời gian thực là hệ nhúng. Điều này phản ánh mối quan hệ mật thiết giữa hệ nhúng  
và thời gian thực và tính thời gian thực đã trở thành nhƣ một thuộc tính tiêu biểu của hệ  
nhúng. Vì vậy hiện nay khi đề cập tới các hệ nhúng ngƣời ta đều nói tới đặc tính cơ bản của  
nó là tính thời gian thực.  
1.1.3 Lĩnh vực ứng dụng của hệ thống nhúng  
Chúng ta có thể kể ra đƣợc rất nhiều các ứng dụng của hệ thống nhúng đang đƣợc sử  
dụng hiện nay, và xu thể sẽ còn tiếp tục tăng nhanh. 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 nhƣ sau:  
. Các thiết bị điều khiển  
. Ôtô, tàu điện  
. Truyền thông  
. Thiết bị y tế  
. Hệ thống đo lƣờng thẩm định  
. Toà nhà thông minh  
. Thiết bị trong các dây truyền sản xuất  
. Rôbốt  
. ...  
1.2 Kiến trúc hệ thống nhúng  
Kiến trúc của một hệ thống nhúng thể hiện ở mức độ trong suốt của các thiết bị nhúng,  
đó là các hệ thống nhúng thông thƣờng sẽ không thể hiện các thông tin cài đặt cụ thể nhƣ mã  
nguồn hoặc các chi tiết về mạch điện. Tại mỗi mức của kiến trúc, các thành phần phần cứng  
- 7 -  
   
và phần mềm sẽ thể hiện một số những elements, là những đơn vị tƣơng tác với những thành  
phần khác. Elements là các thể hiện của phần cứng và phần mềm mà những thông tin cài đặt  
cụ thể đƣợc ẩn đi, elements chỉ cho ta biết những thông tin về hành vi của chúng. Ta có  
internal và external elemént, internal element liên kết với các thiết bị nhúng còn external  
elemements liên kết với các internal elements. Tóm lại, kiến trúc của một hệ thống nhúng bao  
gồm các thành phần của hệ thống đó. Các elements liên kết với hệ thống, thuộc tính của từng  
thành phần elements cụ thể và mối quan hệ giữa các elements.  
Thông tin về các mức của kiến trúc hệ thống nhúng đƣợc biểu diễn dƣới dạng các cấu  
trúc. Một cấu trúc có thể biểu diễn một phần kiến trúc, đồng thời bao gồm tập hợp các thành  
phần, thuộc tính và các mối liên hệ giữa các thành phần. Mỗi cấu trúc do đó là một snapshot  
của hệ thống phần cứng/phần mềm tại thời điểm thiết kế hoặc thực thi. Cho trƣớc một môi  
trƣờng thực thi và một tập hợp các thành phần. Do rất khó để có thể dùng một snapshot mô tả  
tất cả những độ phức tạp của cả hệ thống, thông tin về kiến trúc thƣờng đƣợc tạo ra từ nhiều  
cấu trúc. Tất cả mọi cấu trúc trong một kiến trúc đều đƣợc kế thừa và liên quan đến các cấu  
trúc khác. Bảng sau mô tả một số các cấu trúc cơ bản nhất và đƣa ra giải thích về sự liên quan  
giữa những thành phần này.  
- 8 -  
Module  
SubSystem  
Decomposition  
Class  
Component  
and Connector  
Client/Server  
Process  
Concurrent and  
Resource  
Interrupt  
Scheduling  
Memory  
Safety and  
Reliability  
Alocation  
Work Assignment  
Implementation  
Deployment  
Hình 1.1 Các kiến trúc cơ bản của hệ thống nhúng  
Trong đó:  
. Module: là những thành phần đƣợc định nghĩa với những chức năng khác nhau,  
là những đơn vị phần mềm/phần cứng cần thiết để hệ thống có thể hoạt động  
đúng. Cấu trúc mô tả với những module này thƣờng đƣợc sử dụng để giới thiệu  
một sản phẩm nào đó.  
. SubSystem: biểu diễn hình ảnh của một module tại thời điểm thực thi trong đó  
có sự liên kết hoạt động giữa các module với nhau  
- 9 -  
. Layers: một kiểu của SubSystem trong đó các module đƣợc biểu diễn dƣới dạng  
các lớp, module ở lớp trên sẽ sử dụng các dịch vụ đƣợc cung cấp bởi module ở  
lớp dƣới.  
. Kernel: cấu trúc biểu diễn các module có sử dụng các dịch vụ của kernel hoặc  
đƣợc quản lý bởi kernel.  
. Channel Architecture: cấu trúc biểu diễn các module dạng chuỗi, mô tả những  
sự thay đổi trạng thái của module trong quá trình hoạt động.  
. Virtual Machine: cấu trúc biểu diễn các module sử dụng các dịch vụ của một  
máy ảo.  
. Decomposition: một kiểu cấu trúc module trong đó một số module là các  
module con của module khác, thể hiện trong các mối quan hệ giữa những  
module này. Cấu trúc này thƣờng đƣợc sử dụng để xác định các tài nguyên, quản  
lý dự án, quản lý dữ liệu ...  
. Class: là một kiểu cấu trúc biểu diễn các đơn vị phần mềm trong đó các module  
đƣợc tham chiếu là các lớp, và quan hệ giữa chúng đƣợc định nghĩa dựa theo mô  
hình hƣớng đối tƣợng trong đó lớp này kế thừa từ lớp khác hoặc là một thể hiện  
của lớp cha.  
. Component or Connector: các cấu trúc này bao gồm các thành phần hoặc là các  
components ví dụ nhƣ các đơn vị xử lý phần cứng, phần mềm, bộ xử lý, máy  
ảo... hoặc các Connector (các đơn vị kết nối giữa các thành phần, nhƣ hệ thống  
bus phần cứng hoặc hệ thống thông điệp phần mềm)  
. Client/Server: kiểu cấu trúc mô tả hệ thống tại thời điểm thực thi với các thành  
phần là clients hoặc server và các connector là các cơ chế kết nối (nhƣ giao thức,  
thông điệp, gói tin ...) đƣợc sử dụng để liên kết giữa clients và server.  
. Process: cấu trúc này mô tả phần mềm của hệ thống trong đó chứa hệ điều hành,  
các thành phần khác nhƣ các process và các tiến trình và các liên kết của chúng.  
. Concurrency and Resource: cấu trúc này mô tả một snapshot của hệ thống bao  
gồm OS, và các thành phần trong đó. Cấu trúc này đƣợc sử dụng trong việc quản  
lý tài nguyên và để xác định xem có vấn đề gì với việc chia sẻ các tài nguyên  
cũng nhƣ các tiến trình có thể thực thi song song hay không.  
. Interrupt: cấu trúc mô tả các cơ chế xử lý ngắt trong hệ thống.  
. Scheduling: cấu trúc mô tả cơ chế lập lịch và quản lý tiến trình trong hệ thống.  
. Memory: mô tả hình ảnh của bộ nhớ và các thành phần dữ liệu trong bộ nhớ  
cũng nhƣ mô tả các cơ chế quản lý bộ nhớ của hệ thống.  
. Safety and Reliability: cấu trúc mô tả hệ thống tại thời điểm thực thi trong đó  
biểu diễn những thành phần dƣ thừa và những mối liên hệ của chúng để đánh  
giá độ an toàn và tin cậy của cả hệ thống.  
. Allocation: cấu trúc mô tả mối liên hệ giữa các thành phần phần cứng/phần mềm  
và các thực thể của môi trƣờng bên ngoài.  
. Work Assignment: cấu trúc này gán cho các nhóm phát triển những công việc  
(các module) cần thực hiện. Nó đƣợc sử dụng trong việc quản lý dự án.  
. Implementation: đây là cấu trúc phần mềm chỉ ra vị trí mà phần mềm đó trong  
hệ thống file.  
. Deployment: cấu trúc này mô tả hệ thống tại thời điểm thực thi với các thành  
phần của cả phần cứng và phần mềm và mối liên hệ giữa chúng.  
1.3 Thiết kế hệ thống nhúng  
Ta có thể sử dụng một số mô hình sau để mô tả chu ký thiết kế các hệ thống nhúng.  
Một số mô hình là cơ sở, các mô hình khác đƣợc hình thành dựa trên các mô hình cơ sở này.  
- 10 -  
 
. Mô hình big-bang: trong mô hình thiết kế này, ta không có khái niệm về kế  
hoạch hay quá trình trong cả quá trình phát triển hệ thống.  
. Mô hình code-and-fix: đầu tiên các yêu cầu về sản phẩm đƣợc làm rõ, sau đó  
việc thực hiện mã lệnh đƣợc tiến hành dựa trên các mô tả yêu cầu này, tiếp theo  
mã lệnh đƣợc thực thi và nếu có lỗi thì lại trở về bƣớc trƣớc đó, nghĩa là thực  
hiện lại mã lệnh.  
. Mô hình waterfall: Quá trình phát triển sản phẩm đƣợc chia thành từng bƣớc, kết  
quả của bƣớc trƣớc sẽ là dữ liệu của bƣớc sau.  
. Mô hình Spiral: cũng dựa trên việc phân chia thành từng bƣớc nhƣ waterfall, tuy  
nhiên trong mỗi một quá trình, các phản hồi của ngƣời dùng hoặc ngƣời phát  
triển khác đƣợc tiếp thu và đƣợc tích hợp lại vào trong quá trình phát triển tiếp  
theo.  
Ta xét mô hình Embedded Design and Development Lifecycle Model sau:  
Product  
Concept  
Requirement  
Analysis  
Architecture  
Design  
Develope Version  
n of Architecture  
Incorporate  
Feedback  
Delivery Version n  
of Architecture  
Revirew and  
Obtain feedback  
Delivery Final Version  
n of Architecture  
Incorporate  
Feedback  
Develope  
Implementation  
Review and Test  
Delivery and Maintain  
the System  
Hình 1.2 Mô hình Embedded Design and Development Lifecycle  
- 11 -  
Mô hình này dựa trên sự kết hợp giữa waterfall và Spiral, ta sẽ xét chi tiết mô hình trong  
những phần sau  
1.4 Mô hình hệ thống nhúng  
Hình 1.3 Mô hình hệ thống nhúng  
Hình trên chỉ ra rằng tất cả các hệ thống nhúng đều có chung một thành phần giống  
nhau ở tầng cao nhất, đó là chúng đều có ít nhất một lớp (phần cứng) hoặc nhiều lớp (phần  
cứng, phần mềm và ứng dụng) trong đó chứa tất cả các components. Phần cứng bao gồm tất  
cả những thành phần vật lý có trên mạch nhúng, phần mềm và các ứng dụng bao gồm tất cả  
những thành phần logic có trong hệ thống nhúng.  
Mô hình tham chiếu trên là cách biểu diễn phân lớp của kiến trúc các hệ thống nhúng  
từ đó các cấu trúc module có thể đƣợc suy ra. Nếu bỏ qua những sự khác nhau giữa các thiết  
bị trong bảng trên, có thể nói rằng kiến trúc của mọi hệ thống đƣợc biểu diễn thông qua việc  
thể hiện và nhóm các thành phần đƣợc gọi là các lớp. Ta cũng chú ý là lớp không chỉ là khái  
niệm đặc thù của riêng hệ thống nhúng mà còn là của nhiều hệ thống khác. Đây là công cụ  
hữu ích để mô hình hóa sự kết hợp giữa hàng trăm, có thể hàng ngàn thành phần trong thiết kế  
hệ thống nhúng. Những nguyên nhân chính khiến chúng trở lên hữu ích là:  
Thể hiện đƣợc các thành phần quan trọng và các hành vi của chúng: phƣơng pháp  
phân lớp cho phép ngƣời đọc có thể nhận diện đƣợc nhiều thành phần khác nhau và mối quan  
hệ giữa chúng.  
Phƣơng pháp biểu diễn cấu trúc theo các module cấu trúc chính để phân lớp kiến trúc  
của toàn bộ dự án nhúng: bởi vì trong hệ thống có rất nhiều module và các module này hoạt  
động độc lập với nhau, đồng thời chúng có những mối liên kết mức độ cao, do vậy phân lớp  
những loại module này làm tăng khả năng thể hiện cấu trúc hệ thống và không làm phức tạp  
khó hiểu cho ngƣời đọc.  
Câu hỏi cuối chƣơng  
1. Thế nào là hệ thống nhúng, nêu những lĩnh vực ứng dụng của hệ thống nhúng  
2. Phân biệt hai loại hệ thống thời gian thực  
3. Trình bày về mô hình phát triển waterfall và spiral  
4. Nêu những ƣu điểm của phƣơng pháp phân lớp trong biểu diễn kiến trúc hệ thống  
nhúng  
- 12 -  
 
Chƣơng 2 - HỆ THỐNG PHẦN CỨNG  
2.1 Tổng quan  
Thông thƣờng đi kèm với các hệ thống nhúng có rất nhiều những yêu cầu, thiết bị và bộ  
phận. Trong phần này chúng ta sẽ tìm hiểu một số bộ phận chính và một số yêu cầu chính của  
các hệ thống nhúng.  
Bộ tính toán, xử lý  
Đây là một trong những yêu cầu căn bản nhất của hệ thống nhúng. Tất cả các hệ thống  
lấy dữ liệu từ ngƣời dùng hoặc từ môi trƣờng xung quanh. Công việc xử lý có thể đƣợc tiến  
hành bằng cách sử dụng bộ vi xử lý hoặc các vi mạch điện tử, các mạch động học. Phạm vi  
của giáo trình này là những hệ thống nhúng sử dụng vi xử lý với những bộ phận phần cứng  
khác.  
Bộ tính toán đƣợc dùng để xử lý, biến đổi các dữ liệu thay đổi của ngƣời sử dụng hoặc  
môi trƣờng thành những dữ liệu đầu ra theo yêu cầu.  
Bộ phận xử lý tính toán logic này thƣờng đƣợc tích hợp trong một chip hoặc một mạch  
điện tử. Khả năng xử lý của chúng đƣợc phát triển rất nhanh chóng và ngay bản thân chúng đã  
cung cấp cho ta những chức năng phức tạp. Lập trình viên sẽ phải khéo léo kết hợp những  
điểm mạnh này với chƣơng trình của anh ta trong khi cài đặt một yêu cầu cụ thể.  
Hệ thống nhúng cũng có thể lấy dữ liệu đầu vào từ môi trƣờng xung quanh. Ví dụ, hệ  
thống âm thanh với các lựa chọn cài đặt nhƣ giả lập nhà hát, hội trƣờng, rock vv. Ngƣời dùng  
có thể chuyển đổi các lựa chọn này theo yêu cầu của họ. Trong trƣờng hợp này dữ liệu đầu  
vào là từ ngƣời sử dụng.  
2.1.1 Bộ nhớ  
Bộ nhớ là một trong những yêu cầu tài nguyên hiển nhiên không chỉ của hệ thống  
nhúng mà mọi hệ thống trên thực tế. Ngay cả hệ thống con ngƣời cũng cần bộ nhớ !  
Thực tế cho thấy là bộ nhớ ngày càng rẻ hơn về giá cả và tốt hơn về chất lƣợng. Trong  
những thời gian trƣớc, khi mỗi kilo byte, thậm chí là byte bộ nhớ đều đƣợc tính bằng tiền  
trăm ngàn thì mọi thao tác tác động vào bộ nhớ đều đƣợc tiến hành vô cùng chi tiết và cẩn  
thận. Với các hệ thống nhúng ta không có các khe cắm mở rộng, và bộ nhớ dành cho hệ thống  
nhúng thông thƣờng vẫn là rất nhỏ. Vì vậy, bộ nhớ phải đƣợc xử lý có kế hoạch, chi tiết.  
Những hạn chế về bộ nhớ nhƣ trên đƣợc thể hiện rõ ràng khi ta xem xét thiết kế của các  
hệ thống nhúng tiên tiến và các phần mềm đi kèm với chúng. Những thuật toán sử dụng nhiều  
bộ nhớ, sử dụng các cấu trúc dữ liệu cồng kềnh đều không đƣợc cài đặt trừ khi chúng thực sự  
cần thiết.  
2.1.2 Các thành phần kết nối  
Các thiết bị nhúng và ứng dụng không thể tồn tại độc lập, chúng cần có khả năng giao  
tiếp với các thiết bị khác để có thể thực hiện chức năng. Ta không thể yêu cầu ngƣời sử dụng  
kết nối thiết bị vào các khe cắm nhƣ Ethernet, vv... Những liên kết nhƣ vậy thƣờng sử dụng  
các giao thức không dây nhƣ Bluetooth, WLAN, HiperLAN cho những khoảng cách ngắn hay  
2.5G, 3G, 4G cho những khoảng cách xa hơn. Những thành phần kết nối khiến cho thiết bị trở  
nên thông minh hơn.  
Các thành phần của hệ thống nhúng đƣợc minh họa trong hình vẽ dƣới đây  
- 13 -  
       
C
Hình 2.1 Các thành phần phần cứng  
2.2 Hệ vi xử lý  
2.2.1 Tổng quan  
Hình 2.2 Mô hình vi xử lý  
Ngƣời ta vẫn biết tới phần lõi xử lý của các bộ VXL là đơn vị xử lý trung tâm CPU  
(Central Processing Unit) đóng vai trò nhƣ bộ não chịu trách nhiệm thực thi các phép tính và  
thực hiện các lệnh. Phần chính của CPU đảm nhiệm chức năng này là đơn vị  
logic toán học (ALU – Arthimetic Logic Unit). Ngoài ra để hỗ trợ cho hoạt động của  
ALU còn có thêm một số các thành phần khác nhƣ bộ giải mã (decoder), bộ tuần tự  
(sequencer) và các thanh ghi.  
Bộ giải mã chuyển đổi (thông dịch) các lệnh lƣu trữ ở trong bộ mã chƣơng trình thành  
các mã mà ALU có thể hiểu đƣợc và thực thi. Bộ tuần tự có nhiệm vụ quản lý dòng dữ liệu  
trao đổi qua bus dữ liệu của VXL. Các thanh ghi đƣợc sử dụng để CPU lƣu trữ tạm thời các  
dữ liệu chính cho việc thực thi các lệnh và chúng có thể thay đổi nội dung trong quá trình hoạt  
động của ALU. Hầu hết các thanh ghi của VXL đều là các bộ nhớ đƣợc tham chiếu (mapped)  
và hội nhập với khu vực bộ nhớ và có thể đƣợc sử dụng nhƣ bất kỳ khu vực nhớ khác.  
- 14 -  
   
Các thanh ghi có chức năng lƣu trữ trạng thái của CPU. Nếu các nội dung của bộ nhớ  
VXL và các nội dung của các thanh ghi tại một thời điểm nào đó đƣợc lữu giữ đầy đủ thì hoàn  
toàn có thể tạm dừng thực hiện phần chƣơng trình hiện tại trong một khoảng thời gian bất kỳ  
và có thể trở lại trạng thái của CPU trƣớc đó. Thực tế số lƣợng các thanh ghi và tên gọi của  
chúng cũng khác nhau trong các họ VXL/VĐK và thƣờng do chính các nhà chế tạo qui định,  
nhƣng về cơ bản chúng đều có chung các chức năng nhƣ đã nêu.  
Khi thứ tự byte trong bộ nhớ đã đƣợc xác định thì ngƣời thiết kế phần cứng phải thực  
hiện một số quyết định xem CPU sẽ lƣu dữ liệu đó nhƣ thế nào. Cơ chế này cũng khác nhau  
tuỳ theo kiến trúc tập lệnh đƣợc áp dụng. Có ba loại hình cơ bản:  
. Kiến trúc ngăn xếp  
. Kiến trúc bộ tích luỹ  
. Kiến trúc thanh ghi mục đích chung  
Kiến trúc ngăn xếp: sử dụng ngăn xếp để thực hiện lệnh và các toán tử nhận đƣợc từ  
đỉnh ngăn xếp. Mặc dù cơ chế này hỗ trợ mật độ mã tốt và mô hình đơn giản cho việc đánh  
giá cách thể hiện chƣơng trình nhƣng ngăn xếp không thể hỗ trợ khả năng truy  
nhập ngẫu nhiên và hạn chế hiệu suất thực hiện lệnh.  
Kiến trúc bộ tích luỹ: với lệnh một toán tử ngầm mặc định chứa trong thanh ghi tích  
luỹ có thể giảm đƣợc độ phức tạp bên trong của cấu trúc CPU và cho phép cấu thành lệnh rất  
nhỏ gọn. Nhƣng thanh ghi tích luỹ chỉ là nơi chứa dữ liệu tạm thời nên giao thông bộ nhớ rất  
lớn.  
Kiến trúc thanh ghi mục đích chung: sử dụng các tập thanh ghi mục đích chung và  
đƣợc đón nhận nhƣ mô hình của các hệ thống CPU mới, hiện đại. Các tập thanh ghi đó nhanh  
hơn bộ nhớ thƣờng và dễ dàng cho bộ biên dịch xử lý thực thi và có thể đƣợc sử dụng một  
cách hiệu quả. Hơn nữa giá thành phần cứng ngày càng có xu thế giảm đáng kể và tập thanh  
ghi có thể tăng nhanh. Nếu cơ chế truy nhập bộ nhớ nhanh thì kiến trúc dựa trên ngăn xếp có  
thể là sự lựa chọn lý tƣởng; còn nếu truy nhập bộ nhớ chậm thì kiến trúc thanh ghi sẽ là sự lựa  
chọn phù hợp nhất.  
Một số thanh ghi với chức năng điển hình thƣờng đƣợc sử dụng trong các kiến trúc  
CPU nhƣ sau:  
. Thanh ghi con trỏ ngăn xếp (stack pointer): Thanh ghi này lƣu giữ địa chỉ tiếp  
theo của ngăn xếp. Theo nguyên lý giá trị địa chỉ chứa trong thanh ghi con trỏ  
ngăn xếp sẽ giảm nếu dữ liệu đƣợc lƣu thêm vào ngăn xếp và sẽ tăng khi dữ liệu  
đƣợc lấy ra khỏi ngăn xếp.  
. Thanh ghi chỉ số (index register): Thanh ghi chỉ số đƣợc sử dụng để lƣu địa chỉ  
khi mode địa chỉ đƣợc sử dụng. Nó còn đƣợc biết tới với tên gọi là thanh ghi con  
trỏ hay thanh ghi lựa chọn tệp (Microchip).  
. Thanh ghi địa chỉ lệnh /Bộ đếm chƣơng trình (Program Counter): Một trong  
những thanh ghi quan trọng nhất của CPU là thanh ghi bộ đếm chƣơng trình.  
Thanh ghi bộ đếm chƣơng trình lƣu địa chỉ lệnh tiếp theo của chƣơng trình sẽ  
đƣợc CPU xử lý. Mỗi khi lệnh đƣợc trỏ tới và đƣợc CPU xử lý thì nội dung giá trị  
của thanh ghi bộ đếm chƣơng trình sẽ tăng lên một. Chƣơng trình sẽ kết thúc khi  
thanh ghi PC có giá trị bằng địa chỉ cuối cùng của chƣơng trình nằm trong bộ nhớ  
chƣơng trình.  
. Thanh ghi tích lũy (Accumulator): Thanh ghi tích lũy là một thanh ghi giao tiếp  
trực tiếp với ALU, đƣợc sử dụng để lƣu giữ các toán tử hoặc kết quả của một phép  
toán trong quá trình hoạt động của ALU.  
- 15 -  
Xung nhịp và trạng thái tín hiệu  
Trong VXL và các vi mạch số nói chung, hoạt động của hệ thống đƣợc thực hiện đồng  
bộ hoặc dị bộ theo các xung nhịp chuẩn. Các nhịp đó đƣợc lấy trực tiếp hoặc gián tiếp từ một  
nguồn xung chuẩn thƣờng là các mạch tạo xung hoặc dao động thạch anh. Để mô tả hoạt động  
của hệ thống, các tín hiệu dữ liệu và điều khiển thƣờng đƣợc mô tả trạng thái theo giản đồ  
thời gian và mức tín hiệu nhƣ đƣợc chỉ ra trong hình dƣới: Mô tả và trạng thái tín hiệu hoạt  
động trong VXL  
Hình 2.3 Mô tả và trạng thái tín hiệu hoạt động trong VXL  
Mục đích của việc mô tả trạng thái tín hiệu theo giản đồ thời gian và mức tín hiệu là để  
phân tích và xác định chuỗi sự kiện hoạt động chi tiết trong mỗi chu kỳ bus. Nhờ việc mô tả  
này chúng ta có thể xem xét đến khả năng đáp ứng thời gian của các sự kiện thực thi trong hệ  
thống và thời gian cần thiết để thực thi hoạt động tuần tự cũng nhƣ là khả năng tƣơng thích  
khi có sự hoạt động phối hợp giữa các thiết bị ghép nối hay mở rộng trong hệ thống. Thông  
thƣờng thông tin về các nhịp thời gian hoạt động cũng nhƣ đặc tính kỹ thuật chi tiết đƣợc  
cung cấp hoặc qui định bởi các nhà chế tạo.  
Một số đặc trƣng về thời gian của các trạng thái hoạt động cơ bản của các tín hiệu hệ  
thống gồm có nhƣ sau:  
. Thời gian tăng hoặc giảm  
. Thời gian trễ lan truyền tín hiệu  
. Thời gian thiết lập  
. Thời gian giữ  
. Trễ cấm hoạt động và trạng thái treo (TriState)  
. Độ rộng xung  
. Tần số nhịp xung hoạt động  
2.2.2 Kiến trúc vi xử lý  
Trong phần này giới thiệu ngắn gọn cấu trúc nguyên lý của các chip xử lý nhúng ứng  
dụng trong các nền phần cứng nhúng hiện nay.  
Sự phát triển nhanh chóng các chủng loại Chip khả trình với mật độ tích hợp cao đã và  
đang có một tác động đáng kể đến sự thay đổi trong việc thiết kế các nền phần cứng  
thiết bị xử lý và điều khiển số trong thập kỷ gần đây. Mỗi chủng loại đều có những đặc  
điểm và phạm vi đối tƣợng ứng dụng và luôn không ngừng phát triển để đáp ứng một cách tốt  
nhất cho các yêu cầu công nghệ. Chúng đang hƣớng tới tập trung cho một thị trƣờng công  
nghệ tiềm năng rộng lớn đó là các thiết bị xử lý và điều khiển nhúng. Trong bài viết này tác  
giả giới thiệu ngắn gọn về các chủng loại chip xử lý, điều khiển nhúng điển hình đang tồn tại  
và phát triển về một số đặc điểm và hƣớng phạm vi ứng dụng của chúng.  
- 16 -  
 
Có thể kể ra hàng loạt các Chíp khả trình có thể sử dụng cho các bài toán thiết kế hệ  
nhúng nhƣ các họ vi xử lý/vi điều khiển nhúng (Microprocessor/ Microcontroller), Chip DSP  
(Digital Signal Processing), các Chip khả trình trƣờng (FPD – Field Programmable Device).  
Chúng ta dễ bị choáng ngợp nếu bắt đầu công việc thiết kế bằng việc tìm kiếm một Chip xử lý  
điều khiển phù hợp cho ứng dụng. Vì vậy cần phải có một hiểu biết và sự phân biệt về đặc  
điểm và ứng dụng của chúng khi lựa chọn và thiết kế. Các thông tin liên quan nhƣ nhà sản  
xuất cung cấp Chip, các kiến thức và công cụ phát triển kèm theo.  
Chip vi xử lý/vi điều khiển nhúng một chủng loại rất điển hình và đang đƣợc sử dụng  
rất phổ biến hiện này. Chúng đƣợc ra đời và sử dụng theo sự phát triển của các Chip xử lý  
ứng dụng cho máy tính. Vì đối tƣợng ứng dụng là các thiết bị nhúng nên cấu trúc cũng đƣợc  
thay đổi theo để đáp ứng các ứng dụng. Hiện nay chúng ta có thể thấy các họ vi xử lý điều  
khiển của rất nhiều các nhà chế tạo cung cấp nhƣ, Intel, Atmel, Motorola, Infineon. Về cấu  
trúc, chúng cũng tƣơng tự nhƣ các Chíp xử lý phát triển cho PC nhƣng ở mức độ đơn giản  
hơn nhiều về công năng và tài nguyên. Phổ biến vẫn là các Chip có độ rộng bus dữ liệu là  
8bit, 16bit, 32bit. Về bản chất cấu trúc, Chip vi điều khiển là chip vi xử lý đƣợc tích hợp thêm  
các ngoại vi. Các ngoại vi thƣờng là các khối chức năng ngoại vi thông dụng nhƣ bộ định thời  
gian, bộ đếm, bộ chuyển đổi A/D, giao diện song song, nối tiếp…Mức độ tích hợp ngoại vi  
cũng khác nhau tuỳ thuộc vào mục đích ứng dụng sẽ có thể tìm đƣợc Chip phù hợp. Thực tế  
với các ứng dụng yêu cầu độ tích hợp cao thì sẽ sử dụng giải pháp tích hợp trên chip, nếu  
không thì hầu hết các Chip đều cung cấp giải pháp để mở rộng ngoại vi đáp ứng cho một số  
lƣợng ứng dụng rộng và mềm dẻo.  
Hình 2.4 Kiến trúc nguyên lý của VĐK với cấu trúc Havard  
2.2.3 Sự thực thi  
Trong phần này ta sẽ tìm hiểu về hoạt động của một số vi điều khiển sử dụng trong các  
hệ thống nhúng  
Chip DSP  
DSP vẫn đƣợc biết tới nhƣ một loại vi điều khiển đặc biệt với khả năng xử lý nhanh để  
phục vụ các bài toán yêu cầu khối lƣợng và tốc độ xử lý tính toán lớn. Với ƣu điểm nổi bật về  
độ rộng băng thông của bus và thanh ghi tích luỹ, cho phép ALU xử lý song song với tốc độ  
đọc và xử lý lệnh nhanh hơn các loại vi điều khiển thông thƣờng. Chip DSP cho phép thực  
hiện nhiều lệnh trong một nhịp nhờ vào kiến trúc bộ nhớ Havard.  
Thông thƣờng khi phải sử dụng DSP tức là để đáp ứng các bài toán tính toán lớn và  
tốc độ cao vì vậy định dạng biểu diễn toán học sẽ là một yếu tố quan trọng để phân loại và  
đƣợc quan tâm. Hiện nay chủ yếu chúng vẫn đƣợc phân loại theo hai kiểu là dấu phảy động và  
dấu phảy tĩnh. Đây cũng chính là một yếu tố quan trọng phải quan tâm đối với ngƣời thiết kế  
để lựa chọn đƣợc một DSP phù hợp với ứng dụng của mình. Các loại DSP dấu phảy tĩnh  
thƣờng là loại 16bit hoặc 24bit còn các loại dấu phảy tĩnh thƣờng là 32bit. Một ví dụ điển  
- 17 -  
 
hình về một DSP 16bit dấu phảy tĩnh là TMS320C55x, lƣu các số nguyên 16bit hoặc các số  
thực trong một miền giá trị cố định. Tuy nhiên các giá trị và hệ số trung gian có thể đƣợc lƣu  
trữ với độ chính xác là 32bit trong thanh ghi tích luỹ 40bit nhằm giảm thiểu lỗi tính toán do  
phép làm tròn trong quá trính tính toán. Thông thƣờng các loại DSP dấu phảy tĩnh có giá  
thành rẻ hơn các loại DSP dấu phảy động vì yêu cầu số lƣợng chân Onchip ít hơn và cần sử  
dụng lƣợng silicon ít hơn.  
Ƣu điểm nổi bật của các DSP dấu phảy động là có thể xử lý và biểu diễn số trong dải  
phạm vi giá trị rộng và động. Do đó vấn đề về chuyển đổi và hạn chế về phạm vi biểu diễn số  
không phải quan tâm nhƣ đối với loại DSP dấu phảy tĩnh. Một loại DSP 32bit dấu phảy tĩnh  
điển hình là TMS320C67x có thể xử lý và biểu diễn số gồm 24bit mantissa và 8bit exponent.  
Phần mantissa biểu diễn phần số lẻ trong phạm vi 1.0 – +1.0 và phần exponent biểu diễn vị trí  
của dấu phảy nhị phân và có thể dịch chuyển sang trái hoặc phải tuỳ theo giá trị số mà nó biểu  
diễn. Điều này trái ngƣợc với các thiết kế trên nền DSP dấu phảy tĩnh, ngƣời phát triển  
chƣơng trình phải tự qui ƣớc, tính toán và phân chia ấn định thang biểu diễn số và phải luôn  
lƣu tâm tới khả năng tràn số có thể xảy ra trong quá trình xử lý tính toán. Chính điều này đã  
gây ra khó khăn không nhỏ đối với ngƣời lập trình.  
Những nhà thiết kế hệ thống phải quyết định vùng và độ chính xác cần thiết cho các  
ứng dụng. Các vi xử lý dấu phảy động thƣờng đƣợc sử dụng cho các ứng dụng yêu cầu về độ  
chính xác cao và dải biểu diễn số lớn phù hợp với hệ thống có cấu trúc bộ nhớ lớn. Hơn nữa  
các DSP dấu phảy động cho phép phát triển phần mềm hiệu quả và đơn giản hơn bằng các  
trình biên dịch ngôn ngữ bậc cao nhƣ C do đó có thể giảm đƣợc giá thành và thời gian phát  
triển. Tuy nhiên giá thành lại cao nên các DSP dấu phảy động phù hợp với các ứng dụng khá  
đặc biệt và thƣờng là với số lƣợng ít.  
Hình 2.5: Giản đồ khối chức năng của DSP TMS320C28xx  
- 18 -  
Chip PAL  
Ngày nay khi nói đến các chủng loại Chip khả trình mảng ta thƣờng biết tới một số tên  
gọi nhƣ PAL, CPLD, FPGA…Một chút lƣợc sử về sự ra đời và phát triển sau đây sẽ giúp  
chúng ta hình dung đƣợc đặc điểm và nguồn gốc ra đời của chúng.  
Hình 2.6 Cấu trúc PROM và PLA  
Lịch sử phát triển của các chủng loại Chip khả trình mảng PLA (Programmable Logic  
Array) đƣợc bắt nguồn từ nguyên lý bộ nhớ chƣơng trình PROM (Programmable Read Only  
Memory). Trong đó các đầu vào địa chỉ đóng vai trò nhƣ các đƣờng vào của mạch logic và  
các đƣờng dữ liệu ra đóng vai trò nhƣ các đƣờng ra của mạch logic. Vì PROM không thực sự  
phù hợp cho mục đích thiết kế các mạch logic nên PLA đã ra đời vào đầu thập kỷ 70. Nó rất  
phù hợp để thực hiện mạch logic có dạng tổng các tích (vì cấu thành bởi các phần tử logic  
AND và OR). Nhƣng nhƣợc điểm là chi phí sản xuất cao và tốc độ hoạt động thấp. Để khắc  
phục nhƣợc điểm này PAL (Programmable Array Logic) đã đƣợc phát triển. Nó đƣợc cấu  
thành từ các phần tử AND khả trình và phần tử OR gán cố định và có chứa cả phần tử flipflop  
ở đầu ra nên có khả năng thực thi các mạch logic tuần tự. Hình 2.7 mô tả cấu trúc chung của  
PAL.  
Hình 2.7 Cấu trúc chung của PAL  
- 19 -  
Tải về để xem bản đầy đủ
pdf 72 trang Thùy Anh 04/05/2022 3940
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hệ thống nhúng - Trường Đại học Hàng Hải", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_he_thong_nhung_truong_dai_hoc_hang_hai.pdf