Chương I
Các bộ vi điều khiển 8051
1.1 Các bộ vi điều khiển và cỏc bộ xử lý nhỳng.
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều
khiển (VĐK) và so sánh chúng với các bộ vi xử lý cùng dạng chung
như Pentium và các bộ vi xử lý × 86 khác. Chúng ta cũng xem xét vai
trò của các bộ vi điều khiển trong thị trường các sản phẩm nhỳng.
Ngoài ra, chúng ta cung cấp một số tiêu chuẩn về cách lựa chọn một
bộ vi điều khiển như thế nào.
1.1.1 Bộ vi điều khiển so với bộ vi xử lý cựng dựng chung
Sự khỏc nhau giữa một bộ vi điều khiển và một bộ vi xử lý là
gỡ? Bộ vi xử lý ở đõy là cỏc bộ vi xử lý cụng dung chung như họ
Intell × 86 (8086, 80286, 80386, 80486 và Pentium) hoặc họ
Motorola 680 × 0(68000, 68010, 68020, 68030, 68040 v.v...). Những
bộ VXL này khụng cú RAM, ROM và khụng cú cỏc cổng vào ra trờn
chớp. Với lý do đú mà chỳng được gọi chung là cỏc bộ vi xử lý cụng
dụng chung.
Hỡnh 1.1: Hệ thống vi xử lý được so sỏnh với hệ thống vi điều
khiển.
a) Hệ thống vi xử lý cụng dụng chung
CPU
General-
Purpose
Micro-
process
or
RO
M
RA
M
Time
r
Seria
l
COM
Port
I/O
Port
CPU
RA
M
RO
M
I/O
Time
r
Seria
l
COM
Port
Data
bus
(a) General-Purpose Microcessor
System
Address
bus
(b)
Microcontroller
b) Hệ thống vi điều khiển
Một nhà thiết kế hệ thống sử dụng một bộ vi xử lý cụng dụng
chung chẳng hạn như Pentium hay 68040 phải bổ xung thờm RAM ,
ROM, cỏc cổng vào ra và cỏc bộ định thời ngoài để làm cho chỳng
hoạt động được. Mặc dự việc bổ xung RAM, ROM và cỏc cổng vào
ra bờn ngoài làm cho hệ thống cồng cềnh và đắt hơn, nhưng chỳng cú
ưu điểm là linh hoạt chẳng hạn như người thiết kế cú thể quyết định
về số lượng RAM, ROM và cỏc cổng vào ra cần thiết phự hợp với bài
toỏn trong tầm tay của mỡnh.
Điều này khụng thể cú được đối với cỏc bộ vi điều khiển. Một
bộ vi điều khiển cú một CPU (một bộ vi xử lý) cựng với một lượng
cố định RAM, ROM, cỏc cổng vào ra và một bộ định thời tất cả trờn
cựng một chớp. Hay núi cỏch khỏc là bộ xử lý, RAM, ROM cỏc
cổng vào ra và bộ định thời đều được nhỳng với nhau trờn một chớp;
do vậy người thiết kế khụng thể bổ xung thờm bộ nhớ ngoài, cổng
vào ra hoặc bộ định thời cho nú. Số lượng cố định của RAM, ROM
trờn chớp và số cỏc cổng vào - ra trong cỏc bộ vi điều khiển làm cho
chỳng trở nờn lý tưởng đối với nhiều ứng dụng mà trong đú giỏ thành
và khụng gian lại hạn chế. Trong nhiều ứng dụng, vớ dụ một điều
khiển TV từ xa thỡ khụng cần cụng suất tớnh toỏn của bộ vi sử lý 486
hoặc thậm chớ như 8086. Trong rất nhiều ứng dụng thỡ khụng gian
nú chiếm, cụng suất nú tiờu tốn và giỏ thành trờn một đơn vị là những
cõn nhắc nghiờm ngặt hơn nhiều so với cụng suất tớnh toỏn. Những
ứng dụng thường yờu cầu một số thao tỏc vào - ra để đọc cỏc tớn
hiệu và tắt - mở những bit nhất định. Vỡ lý do này mà một số người
gọi cỏc bộ xử lý này là IBP (“Itty-Bitty-Processor”), (tham khảo cuốn
“Good things in small packages are Generating Big product
opportunities” do Rick Grehan viết trờn tạp BYTE thỏng 9.1994;
WWW. Byte. Com để biết về những trao đổi tuyệt vời về cỏc bộ vi
điều khiển).
Điều thỳ vị là một số nhà sản xuất cỏc bộ vi điều khiển đó đi xa
hơn là tớch hợp cả một bộ chuyển đổi ADC và cỏc ngoại vi khỏc vào
trong bộ vi điều khiển.
Bảng 1.1: Một số sản phẩm được nhỳng sử dụng cỏc bộ vi điều
khiển
Thiết bị nội thất gia
đỡnh
Văn phũng ụ tụ
Đồ điện trong nhà
Mỏy đàm thoại
Mỏy điện thoại
Cỏc hệ thống an toàn
Cỏc bộ mở cửa ga-ra
xe
Mỏy trả lời
Mỏy Fax
Mỏy tớnh gia đỡnh
Tivi
Truyền hỡnh cỏp
VCR
Mỏy quy camera
Điều khiển từ xa
Trũ chơi điện tử
Điện thoại tổ ong
Cỏc nhạc cụ điện tử
Mỏy khõu
Điều khiển ỏnh sỏng
Mỏy nhắn tin
Mỏy chơi Pootball
Đồ chơi
Cỏc dụng cụ tập thể
hỡnh
Điện thoại
Mỏy tớnh
Cỏc hệ thống an
toàn
Mỏy Fax
Lũ vi súng
Mỏy sao chụp
Mỏy in lazer
Mỏy in màu
Mỏy nhắn tin
Mỏy tớnh hành
trỡnh
Điều khiển động cơ
Tỳi đệm khớ
Thiết bị ABS
Đo lường
Hệ thống bảo mật
Đớũu khiển truyền
tin
Giải trớ
Điều hoà nhiệt độ
Điện thoại tổ ong
Mở cửa khụng cần
chỡa khoỏ
1.1.2 Cỏc bộ VĐK cho cỏc hệ thống nhỳng.
Trong tài liệu về cỏc bộ vi xử lý ta thường thấy khỏi niệm hệ
thống nhỳng (Embeded system). Cỏc bộ vi xử lý và cỏc bộ vi điều
khiển được sử dụng rộng rói trong cỏc sản phẩm hệ thống nhỳng.
Một sản phẩm nhỳng sử dụng một bộ vi xử lý (hoặc một bộ vi điều
khiển để thực hiện một nhiệm vụ và chỉ một mà thụi. Một mỏy in là
một vớ dụ về một việc nhỳng vỡ bộ xử lý bờn trong nú chỉ làm một
việc đú là nhận dữ liệu và in nú ra. Điều này khỏc với một mỏy tỡnh
PC dựa trờn bộ xử lý Pentium (hoặc một PC tương thớch với IBM ×
86 bất kỳ). Một PC cú thể được sử dụng cho một số bất kỳ cỏc trạm
dịch vụ in, bộ đầu cuối kiểm kờ nhà băng, mỏy chơi trũ chơi điện tử,
trạm dịch vụ mạng hoặc trạm đầu cuối mạng Internet. Phần mềm cho
cỏc ứng dụng khỏc nhau cú thể được nạp và chạy. Tất nhiờn là lý do
hiển nhiờn để một PC thực hiện hàng loạt cỏc cụng việc là nú cú bộ
nhớ RAM và một hệ điều hành nạp phần mềm ứng dụng thường được
đốt vào trong ROM. Một mỏy tớnh PC × 86 chứa hoặc được nối tới
cỏc sản phẩm nhỳng khỏc nhau chẳng hạn như bàn phớm, mỏyin,
Modem, bộ điều khiển đĩa, Card õm thanh, bộ điều khiển CD =
ROM. Chuột v.v... Một nội ngoại vi này cú một bộ vi điều khiển bờn
trong nú để thực hiện chỉ một cụng việc, vớ dụ bờn trong mỗi con
chuột cú một bộ vi điều khiển để thực thi cụng việc tỡm vị trớ chuột
và gửi nú đến PC Bảng 1.1 liệt kờ một số sản phẩm nhỳng.
4.1.3 Cỏc ứng dụng nhỳng của PC × 86.
Mặc dự cỏc bộ vi điều khiển là sự lựa chọn ưa chuộng đối với
nhiều hệ thống nhỳng nhưng cú nhiều khi một bộ vi điều khiển khụng
đủ cho cụng việc. Vỡ lý do đú mà những năm gần đõy nhớều nhà sản
xuất cỏc bộ vi sử lý cụng dụng chung chẳng hạn như Intel, Motorla,
AMD (Advanced Micro Devices, Inc...). Và Cyric (mà bõy giờ là một
bộ phận của National Senicon ductir, Inc) đó hướng tới bộ vi xử lý
cho hiệu suất cao của thị trường nhỳng. Trong khi Intel, AMD và
Cyrix đẩy cỏc bộ xử lý × 86 của họ vào cho cả thị trường nhỳng và
thị trường mỏy tớnh PC để bỏn thỡ Motorola vẫn kiờn định giữ họ vi
xử lý 68000 lại chủ yếu hướng nú cho cỏc hệ thống nhỳng hiệu suất
cao và bõy giờ Apple khụng cũn dựng 680 × trong cỏc mỏy tớnh
Macintosh nữa. Trong những năm đầu thập kỷ 90 của thế kỷ 20 mỏy
tớnh Apple bắt đầu sử dụng cỏc bộ vi xử lý Power PC (như 603, 604,
620 v.v...) thay cho 680 ×0 đối với Macintosh. Bộvi xử lý Power PC
là kết quả liờn doanh đầu tư của IBM và Motorola và nú được hướng
cho thị trướng nhỳng hiệu suất cao cũng như cho cả thị trường mỏy
tớnh PC. Cần phải lưu ý rằng khi một cụng ty hướng một bộ vi xử lý
cụng dụng chung cho thị trường nhỳng nú tối ưu hoỏ bộ xử lý được
sử dụng cho cỏc hệ thống nhỳng. Vỡ lý do đú mà cỏc bộ vi xử lý này
thường được gọi là cỏc bộ xử lý nhỳng hiệu suất cao. Do vậy cỏc
khỏi niệm cỏc bộ vi điều khiển và bộ xử lý nhỳng thường được sử
dụng thay đổi nhau.
Một trong những nhu cầu khắt khe nhất của hệ thống nhỳng là
giảm cụng suất tiờu thụ và khụng gian.
Điều này cú thể đạt được bằng cỏch tớch hợp nhiều chức năng
vào trong chớp CPU. Tất cả mọi bộ xử lý nhỳng dựa trờn × 86 và 680
× 0 đều cú cụng suất tiờu thu thấp ngoài ra được bổ xung một số dạng
cổng vào - ra, cổng COM và bộ nhớ ROM trờn một chớp.
Trong cỏc bộ xử lý nhỳng hiệu suất cao cú xu hướng tớch hợp
nhiều và nhiều chức năng hơn nữa trờn chớp CPU và cho phộp người
thiết kế quyết định những đặc tớnh nào họ muốn sử dụng. Xu hướng
này cũng đang chiếm lĩnh thiết kế hệ thống PC. Bỡnh thường khi
thiết kế bo mạch chủ của PC (Motherboard) ta cần một CPU cộng
một chớp - set cú chứa cỏc cống vào - ra, một bộ điều khiển cache,
một bộ nhớ Flash ROM cú chứa BIOS và cuối cựng là bộ nhớ cache
thứ cấp. Những thiết kế mới đang khẩn trương đi vào cụng nghiệp
sản xuất hàng loạt. Vớ dụ Cyrix đó tuyờn bố rằng họ đang làm việc
trờn một chớp cú chứa toàn bộ một mỏy tớnh PC ngoại trừ DRAM.
Hay núi cỏch khỏc là chỳng ta sắp nhỡn thấy một mỏy tớnh PC trờn
một chớp.
Hiện nay do chuẩn hoỏ MS - DOS và Windows nờn cỏc hệ
thống nhỳng đang sử dụng cỏc mỏy tỡnh PC × 86 . Trong nhiều
trường hợp việc sử dụng cỏc mỏy tớnh PC × 86 cho cỏc ứng dụng
nhỳng hiệu suất cao là khụng tiết kiệm tiền bạc, nhưng nú làm rỳt
ngắn thời gian phỏt triển vỡ cú một thư viện phần mềm bao la đó
được viết cho nền DOS và Windows. Thực tế là Windows là một nền
được sử dụng rộng rói và dễ hiểu cú nghĩa là việc phỏt triển một sản
phẩm nhỳng dựa trờn Windows làm giảm giỏ thành và rỳt ngắn thời
gian phỏt triển đỏng kể.
1.1.4 Lựa chọn một bộ vi điều khiển.
Cú 4 bộ vi điều khiển 8 bit chớnh. Đú là 6811 của Motorola,
8051 của Intel z8 của Xilog và Pic 16 × của Microchip Technology.
Mỗi một kiểu loại trờn đõy đều cú một tập lệnh và thanh ghi riờng
duy nhất, nếu chỳng đều khụng tương thớch lẫn nhau. Cũng cú những
bộ vi điều khiển 16 bit và 32 bit được sản xuất bởi cỏc hóng sản xuất
chớp khỏc nhau. Với tất cả những bộ vi điều khiển khỏc nhau như thế
này thỡ lấy gỡ làm tiêu chuẩn lựa chọn mà cỏc nhà thiết kế phải cõn
nhắc? Cú ba tiờu chuẩn để lựa chọn cỏc bộ vi điều khiển là: