Tải bản đầy đủ (.doc) (34 trang)

XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN MONITER CHO HỆ VI XỬ LÝ CHUYÊN DỤNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (242.79 KB, 34 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG:
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP TỐT NGHIỆP
Đề tài:
XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN MONITER CHO
HỆ VI XỬ LÝ CHUYÊN DỤNG
Giáo viên hướng dẫn:
Sinh viên thực hiện:


LỜI CẢM ƠN

Mở đầu cho bài tập tốt nghiệp này, em xin gửi lời cảm ơn trân trọng nhất
tới thầy …………, là người trực tiếp hướng dẫn em thực hiện bài tập tốt nghiệp
này và đã cho em những chỉ dẫn quý giá.Thiếu sự giúp đỡ của thầy em không có
được kết quả như ngày hôm nay. Xin chân thành cảm ơn ban giáo vụ khoa Công
nghệ Thông tin và các anh chị quản lý phòng máy trường ……. đã luôn sẵn sàng
giúp đỡ và tạo mọi điều kiện tốt nhất cho em. Cảm ơn các bạn bè đã luôn quan
tâm động viên cổ vũ giúp đỡ để em thực hiện tốt bài tập tốt nghiệp này.
Em xin chân thành cảm ơn!

LỜI NÓI ĐẦU
Trong lĩnh vực công nghệ tin học như hiện nay, thì sự phát triển nhanh của kỹ
nghệ phần cứng và phần mềm làm cho máy tính thục sự trở thành công cụ cá nhân để xử
lý thông tin. Ngày nay tốcđộ xử lý của PC nhanh hơn rất nhiều so với tốc độ của các hệ


vi xử lý chuyên dụng. Trong khi hệ vi xử lý thực hiện một lệnh thì PC có thể đã thực hiện
được hàng trăm, hàng ngàn lệnh. Do vậy việc Xây dựng chương trình điều khiển


Moniter cho hệ vi xử lý chuyên dụng là một điều hết sức cần thiết. Vấn đề đặt ra là hãy
sử dụng PC kèm theo một chương trình phần mềm cần thiết, một Card giao tiếp giữa PC
và hệ vi xử lý chuyên dụng, sao cho có sử dụng một vùng Ram ngay trong PC để mô
phỏng cho EPROM để nạp chương trình hệ thống của hệ chuyên dụng.
Chúng ta sẽ đi sâu vào tìm hiểu về bộ vi xử lý 8085A của Intel. Đây là bộ vi
xử lý điển hình tạo điều khiển chuyên dụng.Nó có khả năng phân biệt 256 địa chỉ cho các
thiết bị ngoại vi. Chúng đã được sử dụng rất rộng rãi trong công nghiệp và nhất là để tạo
ra các máy tính 8 bít nổi tiếng một thời như Appe II và Commodore 64. Được sản xuất
bằng công nghệ Nmos với công nghệ phần tử trên một đơn vị diện tích cao hơn so với
công nghệ Pmos hoặc Cmos.
Tuy nhiên do khả năng có hạn và thời gian chuẩn bị còn hạn chế, nên đề tài
không tránh khỏi những nhầm lẫn, thiếu sót về mọi mặt. Em mong nhận được sự đóng
góp ý kiến của các thầy cô cũng như của bạn bè để bài tập tốt nghiệp này được hoàn
thiện hơn.
Em xin chân thành cảm ơn!

NỘI DUNG CỦA ĐỀ TÀI GỒM CÓ BA CHƯƠNG:
CHƯƠNG 1: TỔNG QUAN VỀ MÁY TÍNH VÀ HỆ VI XỬ LÝ.

1.1. Cấu trúc của máy tính PC
1.2. Giới thiệu sơ lược cấu trúc và hoạt động của hệ vi xử lý
1.3. Việc thực hiện lệnh
1.4. Các chương trình
CHƯƠNG 2: GIAO TIẾP GIỮA HỆ VI XỬ LÝ VÀ MÁY TÍNH PC

2.1. Hệ vi xử lý chuyên dụng.


2


2.2. Hệ vi xử lý 8085 INTEL.
2.3. Tổ chức Card giao tiếp giữa hệ vi xử lý và máy tính PC

CHƯƠNG 3. XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN.

3.1.
3.2.

Lưu đồ thuật toán của chương trình hệ thống
Chương trình hệ thống.

KẾT LUẬN.

CHƯƠNG I:
TỔNG QUAN VỀ MÁY TÍNH VÀ HỆ VI XỬ LÝ
1.1.

Cấu trúc của máy tính.
Một hệ thống máy tính điển hình bao gồm: khối hệ thống(system unit), bàn
phím(keyboard), màn hình(display screen), và các ổ đĩa(disk drives). Khối hệ thống
thường được xem xét như là máy tính bởi vì nó tập trung các bảng vi mạch của máy tính.
Bàn phím, màm hình và các ổ đĩa được gọi là các thiết bị vào/ra (I/O divices) bởi lẽ
chúng thực hiện các thao tác vào/ ra dữ liệu của máy tính. Chúng còn được gọi là các
thiết bị ngoại vi.
Hiện nay người ta dùng các vi mạch(IC chíp)để xây dựng các mạch điện tử của máy
tính. Mỗi vi mạch này có thể bao gồm hàng trăm hay thậm chí hàng ngàn đèn bán
dẫn(transistor). Các vi mạch này là mạch số(digital ciruit) bởi vì chúng thao tác với v\các
mức tín hiệu điện áp rời rạc, mà điển hình là mức điện áp thấp và một mức diện áp cao.
Kí hiệu 0 và 1 đạI diện cho tín hiệu điện áp thấp và cao tương ứng.



Trong kỹ thuật lập trình hệ thống thì máy tính PC hoặc mạng máy tính PC đóng vai trò
như là một phương tiện quan trọng trong tổ chức hệ thống cũng như trong xây dựng phần
mềm diều khiển hệ thống đó. Nhờ đó mà các hệ thống này có tính mềm dẻo và tính thông
minh trong các thao tác xử lý, gia công và tạo tín hiệu điều khiển cả theo chức năng và cả
theo tham số tạm thời gian thực. Máy tính PC thực chất là hệ vi xử lý đa năng.
Cấu trúc bên trong của máy tính có dạng như hình 1.1. Các thành phần chủ yêú
được liệt kê trong sơ đồ này là cấu hình cơ bản của máy tính PC. Các thế hệ máy tính
khác nhau có kết cấu khác nhau song chức năng của các thành phần hệ thống thay đổi.
Trong khối hệ thống là một bảng mạch chính chứa bộ vi xử lý và vi mạch nhớ được gọi
là bảng mạch hệ thống(System Board). Bảng mạch hệ thống còn được gọi là bảng mạch
mẹ(mother board) bởi vì nó còn chứa các khe cắm(slot) mở rộng dùng để ghép thêm các
vỉ mạch khác(add-in board). Các mạch vào/ra thường được đặt vào các vỉ ghép thêm.

1.2. Giới thiệu sơ lược cấu trúc và hoạt động của hệ vi xử lý.

Bộ vi xử lý là một thành phần rất cơ bản không thể thiếu được để tạo nên máy tính.
Trong thực tế bộ vi xử lý còn phải kêta hợp thêm các bộ phận điện tử khác như bộ nhớ và
các khối phối ghép vào/ra để tạo nên một hệ vi xử lý hoàn chỉnh. Cần lưu ý rằng để chỉ
một hệ thống có cấu trúc như trên, máy vi tính chỉ là một trong những ứng dụng cụ thể
của hệ vi xử lý.
Trong sơ đồ này ta thấy rõcác khối chức năng chính của hệ vi xử lý gồm:
* Bộ xử lý trung tâm(CPU).

Bus địa chỉ

Bộ Nhớ
Vào/Ra
System board
CPUCop-processor

(Bộ đồng xử lý)oscilator
Bus điều
(Tạo dao động)Interrupt levelRomSpeaker
khiển
connectorDAMRamKeyboard connectorCMOSTIMERBattery
Bus số liệu
connector
Power supply
1.2:Sơ đồ khối của hệ vi xử l
115/230 Hình
SpeakerKeyboardBattery
1.2.Giới thiệu
fĩxed disk
sơ lược
driverDiskette
cấu trúc và
driverVideo
hoạt động
& của
Cardhệ VXL
CPU

Bộ VXL là một thành phần rất cơ bản không thể thiếu được để tạo nên máy
tính. TronSlot
thực tế bộ VXL còn phải kết hợp thêm các bộ phận điện tử khác như bộ
nhớ và các bộ phối ghép vào ra để tạo nên một bộ VXL hoàn chỉnh. Cần lưu ý rằng
để một hệ thống có cấu trúc như trên, thuật nhữ
Slot PCI

Slot mở rộng


Chíp AGP


Hình 1.1: Sơ đồ khối của máy tính PC

“VXL” mang ý nghĩa tổng quát so với thuật ngữ máy vi tính vì máy vi tính
chỉ là một trong những ứng dụng cụ thể của hệ VXL.
Trong sơ đồ trên ta thấy rõ các khối chức năng chính của hệ VXL gồm:
• Bộ xử lý trung tâm(CPU)
• Bộ nhớ bán dẫn (memory, M)
• Khối phối ghép với các thiết bị ngoại vi(I/O)
• Các Bus truyền thông tin
Trong một máy vi tính, CPU là bộ xử lý đơn chíp. CPU là bộ não của máy vi
tính, nó điều khiển mọi hoạt động trong máy tính. Nó sử dụng bộ nhớ để lưu
trữ thông tin, các vi mạch vào ra để liên lạc với các thiết bị ngoại vi.
Ba khối chức năng đầu tiên liên hệ với nhau thông qua tập các đường dây để
truyền tín hiệu chung gọi là Bus hệ thống. Bus hệ thống bao gồm: Bus địa
chỉ,bus dữ liệu, bus điều khiển
1.2.1.Bộ xử lý trung tâm(CPU)
CPU đóng vai trò chủ đạo trong hệ VXL. Khi hoạt động nó
đọc mã lệnh được ghi dưới dạng các bit 0 và 1 từ bọ nhớ, sau
đó nó sẽ giải mã lệnh này thành dãy các xung điều khiển ứng
với các thao tác trong lệnh để điều khiển các khối thao tác
thực hiện từng bưóc các thao tác đó. Để làm được việc này
bên trong CPU có các thanh ghi dùng để chứ địa chỉ của lệnh
sắp được thực hiện gọi là thanh ghi con trỏ lệnh hoặc bộ đếm
chương trình, một số thanh ghi đa năng khác cùng bộ tính
toán số học và lozic(ALU) để thao tác dữ liệu.



Mặc dù bộ VXL là bộ não của máy tính PC và là chip thông minh nhất
của hệ thống, nó cũng không thể giám sát tất cả các hoạt động củamột hệ phức
tạp như máy tinh PC. Bởi vậy người ta mới phải bổ trợ thêm cho bộ VXL một
số chip chuyên dụng nhất. Chúng cho phép giảm nhẹ một phần công việc của
bộ VXL và cho phép nó tập chung vào công việc thưcj hiện chương trình. Các
chip này được dùng cho việc liên lạc và điều khiển các thiết bị ngoại vi như ổ
đĩa, màn hình ...
Sau đây là các chip bổ trợ chính cho bộ VXL
• Bộ điều khiểnchế độ truy nhập trưc tiếp DMA(8237 DMAC) dùng để
vào ra thông tin với đĩa,là công việc tương đối chậm. Bằng cách đó người ta có
thể giảm nhẹ công việc cho bộ VXL và tăng tốc độ thực hiện chương trình.

Bộ điều khiển cơ chế ngắt (8259). Các tín hiệu ngắt cho phép các đối tượng
khác nhau của hệ thống yêu cầu bộ xử lý trung tâm tạm dừng công việc của
mình để phục vụ chúng. Vì có nhiều ngắt đến từ các thành phần khác nhau của
hệ thống có thể xuất hiện đồng thời cùng môt lúc nên chúng cần phải được
chuyển đến bộ điều khiển ngắt và sau đó bộ điều khiển ngắt mới chuyển chúng
đến bộ xử lý trung tâm. Bộ điều khiển ngắt cho nỗi yêu cầu ngắt một mức ưu
tiên dựa vào chức năng chính của yêu cầu ngắt và nó chuyển đến cho bộ VXL
yêu cầu ngắt có mức ưu tiên cao nhất.
• Bộ ghép nối thiết bị ngoại vi – cổng vào ra có lập trình(8255). Bộ ghép nối
thiết bị ngoại vi thực chất là cổng vào ra được điều khiển bằng chương trình.
Nó thiết lập liên lạc giữa bộ xử lý trung tâm và các thiết bị ngoại vi như bàn
phím. Chíp 8255 có rất nhiều chế độ làm việc từ đơn giản đến phức tạp và đều
được cài đặt bằng chương trình.
• Bộ tạo nhịp CLK là quả tim của hệ thống. Bộ tạo dao động nhịp này dao
động với tần số hàng trăm MHz và nó tạo nhịp cho bộ VXL và các thanhf phần
khác của hệ thống hoạt động.
• Bộ tạo thời gian (8253) được dùng như bộ đếm hoặc bộ tạo thời gian. Nó

cho phép đưa ra qua các đầu ra của nó các xung có tần số xác định và không
đổi. Tần số của các xung này có thể điều khiển bằng chương trình sao cho mỗi
đầu ra sẽ cung cấp một tàan số nhất định nào đó. Mỗi đầu ra được nối với thiết
bị ngoại vi.
• Slot – Kênh tổng hợp cung cấp
+Địa chỉ cổng IO từ 100h đến 3ffh
+Các chân kênh địa chi
+Lựa chọn kiểu dữ liệu để trao đổi thông tin
+Sử dụng các ngắt cứng
+Sử dụng cơ chế DMA
+Sử dụng cơ chế làm tươi bộ nhớ
Slot có 62 chân và loại bổ xung 36 chân
1.2.2.Bộ nhớ bán dẫn(Hay còn gọi là bộ nhớ trong)
Các byte và word:
Thông tin xử lý trong máy tính được lưu trữ trong bộ nhớ của nó. Mỗi
phần tử vi mạch nhớ có thể chứa một bit dữ liẹu.Mỗi byte có 8 bit dữ liệu. Một


mạch nhớ một byte được xác định bởi một con số gọi là địa chỉ(address). Byte
đầu tiên có giá trị là 0. Địa chỉ của một byte nhớ là cố định và mỗi byte nhớ
trong máy tính có địa chỉ riêng của nó, địa chỉ của các byte nhớ là khác nhau.
Còn nội dung của byte nhớ chính là dữ liệu được lưu trữ tức thời trong bộ nhớ.
Khi nội dung của một byte nhớ là 8 bit thì số bit của một địa chỉ lại phụ thuộc
vào bộ VXL
Vị trí của các bit
Các vị trí được đánh từ phải sang trái, bắt đầu từ 0. Trong một
từ, các bit tù D0 – D7 tạo thành byte thấp và các bit từ D8 –
D15 tạo thành byte cao. Để chứa một từ trong bộ nhớ byte ghi
thấp vào byte nhớ với địa chỉ thấp, còn byte cao ghi vào
byte nhớ với địa chỉ cao.

Các thao tác với bộ nhớ
Bộ xử lý có thể thực hiện hai thao tác với bộ nhớ: Đọc nội dung của ô nhớ
và ghi dữ liệu vaò ô nhớ. Trong các thao tác đọc, bộ VXLchỉ lấy ra bản sao của
dữ liệu còn nội dung nguyên thuỷ của nó không đổi. Trong thao tác ghi, dữ liệu
được viết vào sẽ trở thành nội dung mới của ô nhớ và dữ liệu nguyên thuỷ của
nó sẽ mất đi.
Bộ nhớ ROM và RAM:
ROM là bộ nhớ cố định chỉ cho phép lấy thông tin từ
ra. Trong ROM ta có thể chứa chương trình điều khiển hoạt
động của toàn bộ hệ thống khi khởi động và CPU có thể lấy
lệnh từ đây mà khởi động hệ thống.
RAM là tập hợp các thanh ghi có đọ dài m bit (thông thường là 8 bit)
có chức năng lưu trữ và trao đổi thông tin trong hệ thốngvới các thiết bị ngoại
vi được ghép nối với nó. Trong RAM chứa một phần của chương trình điều
khiển hệ thống, các chương trình ứng dụng dữ liệu hệ thống cùng các kết qủa
của chương trình. Các dữ liệu và các chương trình muốn lưu trữ lâu dài sẽ đọc
để ở bộ nhớ ngoài.
3.3.Khối phối ghép vào ra(I/O)
Các thiết bị ngoại vi được nối với máy tính thông qua các mạch vào ra. Mỗi
mạch này chứa vài thanh ghi gọi là cổng vào ra(I/O port). Một số được dùng cho
dữ liệu khi số khácđược dùng cho các lệnh điều khiển. Giống như các ô nhớ các
cổng vào ra cũng có các địa chỉ và được nối với hệ thống Bus. Tuy nhiên các địa
chỉ này được xem như các địa chỉ vao ra và chỉ có thể thực hiện được với các lệnh
vào ra. các cổng vào ra thực hiện chức năng để trao đổi giữa CPU và thiết bị ngoại
vi. Dữ liệu được nạp vào từ thít bị ngoai vĩe được gửi vao một cổng, taị đó chúng
có thẻ được đọc từ CPU. Khi xuất, CPU viết dữ liệu ra cổng, vi mạch vào ra sau đó
sẽ chuyển dữ liệu đến thiết bị ngoại vi.
Các cổng nối tiếp và song song
Dữ liệu truyền giữa một cổngvà một thiết bị ngoại vi có thể dùng bit một (nối
tiếp) hay 8 hoặc 16 bit cùng một lúc(song song). Một cổng song song yêu cầu nhiều

dây nối hơn trong khi cổng nối tiếp chậm hơn. Các thiết bị chậm như bàn phím


thường nối với cổng nối tiếp, ngược lại các thiết bị nhanh như ổ đĩa thường nối với
cổng song song. Tuy nhiên có vài thiết bị chẳng hạn như máy in thì có thể nói với
cả cổng song song và nối tiếp.

Các loại đĩa từ
Chúng ta thấy rằng nội dung của RAM sẽ bị mất khi tắt máy do đó đĩa từ
được sử dụng để lưu trữ thông tin lâu dài. Có hai loạ đĩa tử :đĩa mềm(floppy disk
hay diskettes) và đĩa cứng (hard drive). Thiết bị dùng để viết và đọc thông tin trên
đĩa từ gọi là ổ đĩa (disk drive). Đĩa cứng và ổ đĩa của nó được đặt trong một hộp
kín và không thể đưa ra khỏi máy tính và bởi vậy nó còn được gọi là ổ đĩa cố
đinh(fixed disk). Các chương trình truy nhập thông tin trong đĩa cứng cũng nhanh
hơn rất nhiều so với đĩa mềm.
Bàn phím
Người sử dụng dùng bàn phím để đưa thông tin vào máy tính. Bàn phím có
các phím thông thường của một máy chữ ngoài các phím số, phím điều khiển, phím
chức năng. Bàn phím có hẳn một bộ VXL riêng mà nó sẽ gửi các tín hiệu đã được
mã hoá đến máy tính mỗi khi có phím nào được ấn hay được nhả. Khi một phím
được ấn, ký tự tương ứng thường xuất hiện trên màn hình nhưng thật ra không hề
có sự liên lạc nào giữa bàn phóm với màn hình. Chương trình đang chạy sẽ nhận
dữ liệu từ bàn phím và chương trình sẽ phải gửi dữ liệu ra màn hinh để ký tự được
hiển thị.
Màn hình
Màn hình là thiết bị ra chuẩn của máy tính. Thông tin hiển thị trên màn hình
được tạo ra bởi một vi mạch trong máy tính gọi là vi mạch ghép nối màn hình
(Video adapter). Hầu hết các vi mạch ghép nối đều có khả năng tạo ra cả các ký tự
văn bản lẫn các hình ảnh đồ hoạ.
Máy in

Mặc dù máy in là một thiết bị đem lại sự phản hồi nhanh chóng bằng hình
ảnh nhưng các thông tin trên màn hình không tồn tại lâu dài. các máy in mặc dù
chậm nhưng cho các sản phẩm tồn tại lâu dài hơn. Sản phẩm của cac máy in được
xem như là các bản sao cứng (hard copy) .
3.4.Các loại Bus
Bus địa chỉ thường có từ 16, 20, 24 đến 32 đường dây song song chuyển tải
thông tin của các bit địa chỉ. Khi đọc/ghi bộ nhớ CPU sẽ ra đa trên bus này địa chỉ
của ô nhớ liên quan. Khả năng phân biệt địa chỉ số (số lượng địa chỉ cho ô nhớ mà
CPU có khả năng ohân biệt được) phụ thuộc vào số bit của các bus địa chỉ. Trên sơ


đồ khối ta dễ nhận biết một chiều của bus địa chỉ qua chiều của mũi tên. Chỉ có
CPU mới có khẳ năng đưa ra địa chỉ trên bus địa chỉ.
Bus dữ liêu thường có từ 8, 16, 24, 32 đến 64 đường dây tuỳ theo các bộ VXL
cụ thể. Số lượng đường dây quy định số bit dữ liệu mà CPU có khả năng xử lý
cùng một lúc chiều muĩ tên trên bus số liệu chỉ ra rằng đây là bus hai chiều, nghiã
là dữ liệu có thể được truyền đi từ CPU(dữ liệu vào) hoặc truyền đến CPU(dữ liệu
ra).
Bus điều khiển thường gồm hàng chục đường dây tín hiệu khác nhau. Mỗi tín
hiệu điều khiển có một chiều nhất định. Vì khi hoạt động CPU đưa tín hiệu điều
khiển đến các khối khác trong hệ đồng thời nó cũng nhận các tín hiệu này trên
hình vẽ được thẻ hiện bằng các đường có mũi tên hai chiều, điều đó không phải chỉ
để tính hai chiều của một tín hiệu mà là tính hai chiều của cả nhóm tín hiệu.
Hoạt động của hệ VXL cũng có thể được nhìn theo một cách khác. Trong khi
hoạt động và tại một thời điểm nhất định về mặt các chức năng mỗi khối trong hệ
thống trên tương đương với các thanh ghi trong(nằm tronh CPU) hoặc cac thanh
ghi ngoài (nằm rải rác trong bộ nhớ ROM hoặc bộ nhớ RAM và tronh phối ghép
I/O). Hoạt động của toàn bộ hệ thực chất là phối hợp hoạt động của các thanh ghi
trong và ngoài nói trên để thực hiện sự biến đổi dữ liệu hoặc sự trao đổi dữ liệu
theo các yêu cầu đã định trước.

1.3.Việc thực hiện các lệnh.
Để xem cách CPU hoạt động, chúng ta hãy xem một lệnh được thực hiện ra
sao. Một lệnh của máy tính gồm hai phần: một phần mã lệnh và mộtphần là toán
hạng. Mã lệnh xác định kiểu của lệnh, còn các toán hạng thường là các địa chỉ bộ
nhớcủa dữ liệu để lệnh thực hiện. Các bước thực hiện một lệnh máy (một chu kỳ
nhận lệnh và thực hiện) của CPU là như sau:
-Nhận lệnh
+Nhận một chỉ thị từ bộ nhớ
+Giải mã lệnh để xác định thao tác cần thực hiện
+Nhận duac liệu từ bộ nhớ nếu cần thiết
-Thực hiện lệnh:
+Thực hiện thao tác trên dữ liệu
+Lưu trữ kết quả vào bộ nhớ nếu cần thiết

CHƯƠNG II:
GIAO TIẾP GIỮA HỆ VI XỬ LÝ VÀ MÁY TÍNH PC
2.1.

HỆ VI XỬ LÝ CHUYÊN DỤNG.


Hệ vi xử lý chuyên dụng là hệ vi xử lý thực hiện một chức năng cụ thể nào đó
(tìm tin, thông tin truyền số liệu ...) nên khi thiết kế chỉ sử dụng các tính năng cần
thiết của hệ vi xử lý chứ không dùng toàn bộ của hệ vi xử lý.
Hệ vi xử lý chuyên dụng hoạt động được nhờ vào chương trình mã máy nạp
sẵn trong bộ nhớ EPROM( Erasable programmable read only memory). Chương
trình này sẽ quản lý điều hành toàn bộ hệ vi xử lí để hệ vi xử lí hoạt động theo
đúng chứa năng, yêu cầu đề ra.
Vì nó chỉ sử dụng tính năng cần thiết của hệ vi xử lí cho nên nó một số lợi ích
rất cao.

Là một hệ vi xử lí chuyên dụng chứ không phải hệ vi xử lí đa phương tiện nên
nó có một cấu trúc rất đơn giản. Chỉ sử dụng các tính năng cần thiết của hệ vi xử
lí. Nó có thể bỏ qua nhiều các trình duyệt không liên quan nên tốc độ xử lí của máy
tính đạt được một tốc độ tối đa là cao nhất. Do đó hệ vi xử lí chuyên dụng được tin
cậy với độ tin cậy cao nhất.
Chương trình Monitor của hệ vi xử lí đặt trong Rom chịu trách nhiệm điều
khiển và điều phối các tính năng trong hệ xử lí chuyên dụng trong máy tính PC.
Vì là một chương trình điều khiển chuyên dụng nên nó không thể hoàn thiện
ngay khi ở ngoài thiết kế mà phải viết lại làm nhiều lần. Do đó, khi viết một
chương trình để nạp vào EPROM rất khó tránh khỏi những lỗi, nhất là những
chương trình phức tạp có dung lượng lớn. Chương trình phải viết đi viết lại nhiều
lần, mỗi lần sửa là hệ vi xử lí phải dịch một lần sang mã máy. Lúc đó bắt buộc ta
phải xoá EPROM đã nạp, sửa chữa lại chương trình, biên dịch lại và nạp lại. Việc
xoá và nạp EPROM nhiều lần sẽ tốn thời gian, làm giảm tuổi thọ máy, giảm độ tin
cậy của hệ vi xử lí cần thiết cũng như thiết bị làm, xoá và có thể làm hỏng máy,
làm tăng chi phí và gây khó khăn cho việc áp dụng kĩ thuật này.
Như vậy, để cho một hệ vi xử lý hoạt động theo đúng yêu cầu đề ra, chương
trình hệ thống cần phải được sửa đổi và hoàn thiện dần qua nhiều bước và nhiều
giai đoạn, vì vậy trong giai đoạn thử nghiệm chương trình hệ thống, việc nạp
chương trình hệ thống vào bộ nhớ EPROM là không khả thi.
Do đó nếu trong giai đoạn thiết kế một hệ vi xử lý chuyên dụng, thực hiện
chức năng thành phần của hệ thống lớn, ta tìm cách mô phỏng bộ nhớ EPROM của
hệ bởi một bộ nhớ giả ROM. Nó được tổ chức sao cho có thể đảm nhiệm hai chức
năng sau:
*0
Hệ vi xử lý chuyên dụng coi nóKhối
như bộ nhớ chương trình của mình và có thể
điều
khiển
hoạt động được trên bộ nhớ giả ROM đó.

*1
Có thể thay đổi nội dung trên bộ nhớ giả ROM, tức là có thể sửa đổi hoàn
thiện chương trình cho hệ vi xử lý chuyên dụng tới khi hệ hoạt động một cách tối
Hệ vi xử lý
ưu.
PC
chuyên
dụng
Có hai giải pháp thực hiện ý tưởng
mô phỏng
trênđiều
là:
Kênh
Chốt kênh
khiển bộ nhớ EPROM của hệ vi
*2
Dùng bộ Kênh
nhớ RAM
lượngđiều
tương đương
dữ liệu có dung
dữ liệu,
xử lý cần thiết kế(ROM=RAM).
Kênh dữ liệu
khiển
*3
Dùng một vùng đệm RAM(Buffer RAM) của PC để làm giả bộ nhớ
EPROM(Buffer RAM=ROM).

Kênh địa chỉ


Chốt kênh
địa chỉ

Kênh địa chỉ

Hình 3.2. Sơ đồ card giao tiếp với hệ VXL


Ta chọn giải pháp dùng một vùng đệm trong RAM(Random Access
Memory) của PC để làm giả bộ nhớ EPROM là khả thi vì Card mô phỏng rất đơn
giản, độ tin cậy cao và hệ thống này mềm dẻo vì mỗi hệ mô phỏng được sử dụng
cho các hệ vi sử lý khác nhau nếu chúng dùng cùng một loại CPU. Còn trong
trường hợp hệ của hệ vi xử lý dùng PCU loại khác thì ta chỉ phải thay dổi một vài
đường tín hiệu điều khiển tương ứng với loại CPU mới trên phần cứng của Card
giao tiếp.
Giải pháp này được thực hiện như sau
+ Viết chương trình cho hệ vi xử lý trên máy PC
+ Chương trình quản lý hệ thống chạy trên PC sẽ tải chương trình vào một
vùng đệm của RAM sao cho có thể quản lý địa chỉ và xuất dữ liệu từ vùng RAM
đó ra hệ vi xử lý chuyên dụng thông qua Card giao tiếp. Đồng thời qua Card giao
tiếp, chương trình hệ thống trên PC sẽ phải luôn luôn kiểm soát và nắm bắt các tín
hiệu địa chỉ và các tín hiệu điều khiển từ hệ vi xử lý đưa sang để có thể khống chế
và xuất dữ liệu thích hợp cho hệ vi xử lý trong suốt quá trình chạy và điều khiển
của hệ thống.
Mỗi khi CPU của hệ vi xử lý cần đọc dữ liệu từ EPROM, nó sẽ phát ra tín
hiệu địa chỉ và điều kiện tương ứng, chương trình quản lý hệ thống sẽ đáp ứng và
quy chiếu đến vùng RAM trong máy tính PC. Sau đó xuất dữ liệu tương ứng ra Bus
dữ liệu của hệ vi xử lý cho CPU đọc thay vì đọc từ EPROM.
Chức năng của các khối cơ bản như sau:

*4
Khối điều khiển do PC điều khiển qua chốt điều khiển để phát hiện chu kỳ
máy của CPU trên hệ vi xử lý cần truy nhập EPROM và tạo tín hiệu READY bắt
CPU đợi PC xuất dữ liệu ra kênh dữ liệu hệ vi xử lý.
*5
Bộ chốt dữ liệu, điều khiển đưa dữ liệu từ RAM mô phỏng trong PC ra kênh
dữ liệu của hệ vi xử lý để hệ vi xử lý sử dụng và đưa tín hiệu điều khiển từ PC ra
để điều khiển chế độ làm việc của hệ vi xử lý.


*6
Bộ chốt địa chỉ để PC đọc địa chỉ trên kênh địa chỉ của hệ vi xử lý trong chu
kỳ máy CPU truy nhập EPROM.
Như vậy, ta có thể tóm tắt việc xây dựng một hệ vi xử lý chuyên dụng
khi sử dụng phương án này như sau:
Xây dựng phần cứng cho hệ vi xử lý chuyên dụng.
Viết chương trình cho hệ vi xử lý bằng các trình biên dịch tương ứng CPU, dịch
chương trình ra mã máy của hệ vi xử lý đồng thời phát hiện, sửa các lỗi logic.
Dùng hệ mô phỏng tương ứng cho hệ vi xử lý chạy chế độ mô phỏng chương trình
này, phát hiện sai sót và lặp lại các bước trên để sửa đổi chương trình đến khi hệ vi
xử lý hoạt động như mong muốn.
Nạp chương trình hệ thống dạng mã máy đã hoàn thiện vào bộ nhớ EPROM để hệ
vi xử lý chạy chế độ thực.

2.2. HỆ VI XỬ LÝ 8 BIT 8085 INTEL
Hệ vi xử lý ở đây có cấu hình tiêu chuẩn bao gồm các thành phần chính như
sau:
*7 Đơn vị xử lý trung tâm được chọn là CPU Intel 8085A.
*8 Bộ nhớ trong của hệ gồm hai thành phần: bộ nhớ RAM được chọn là
loại 6264 và bộ nhớ EPROM được chọn là loại 2764. Cả hai loại trên đều là bộ

nhớ có kích thước là (8k*8)bit nên hoàn toàn tương thích với bộ vi xử lý 8085A.
*9 Cổng vào/ra để CPU trao đổi dữ liệu với thiết bị ngoại vi chọn là vi
mạch 82C55.
Hình 3.3 là sơ đồ nối ghép CPU 8085A, RAM 67264, EPROM 2764, bộ giải
mã 74LS138, chốt 74LS373, PI/O 82C55 của hệ vi xử lý Intel 8085A.
Do đặc điểm của CPU 8085A, kênh dữ liệu ( D0-D7) và kênh địa chỉ phần
thấp ( A0- A7) sử dụng chung các chân AD0 -AD7 nên cần sử dụng bộ chốt địa chỉ
IC 74LS 373 được điều khiển bằng tín hiệu ALE từ CPU 8085. Tám tín hiệu ra
được chốt của IC 373 chính là tín hiệu địa chỉ phần thấp (A0 - A7) sử dụng trên
BUS địa chỉ của hệ vi xử lý.
Việc quản lý các vùng địa chỉ cho ROM, RAM, PI/O (thường gọi là đánh địa
chỉ) được thực hiện như sau:
Theo tính chất của CPU 8085A, địa chỉ khởi động của nó sau khi RESET là
0000H, nghĩa là con trỏ lệnh PC của 8085 bắt đầu từ giá trị 0000H, vì vậy EPROM
là bộ nhớ chứa chương trình điều khiển hệ phải được CPU quản lý từ địa chỉ
0000H trở đi. ở đây EPROM 2764 là loại 8k x 8, 13 đường địa chỉ (A0- A12) nên
CPU cần quản lý nó theo vùng địa chỉ từ 0000H - 1FFFH.
Vùng địa chỉ RAM được CPU quản lý tiếp tục ngay sau vùng địa chỉ
EPPOM, nghĩa là địa chỉ vùng RAM bắt đầu từ 2000H. ở đây SRAM 6264 là loại
8k x 8, 13 đường địa chỉ nên vùng địa chỉ RAM mà CPU sẽ quản lý nằm trong
khoảng từ 2000H - 3FFFH.
PI/O 8255 được sử dụng ở chế độ vào ra tách biệt, nghĩa là chỉ có các lệnh IN,
OUT trong tập lệnh của 8085 là có tác dụng với nó. Khi thực hiện lệnh IN hoặc
lệnh OUT, CPU 8085 phát ra tín hiệu điều khiển IO/M =1 (khác với các lệnh thao


tác bộ nhớ ở chỗ khi CPU cần truy nhập bộ nhớ, nó phát ra tín hiệu IO/M =0). Do
vậy ta sẽ sử dụng tín hiệu này để CPU quản lý 8255. Ta cần bố trí 2 tín hiệu địa chỉ
A0, A1 để định vị các cổng vào ra (PortA, PortB, PortC) cho 8255.
Với những lý do nêu trên, IC 138 được sử dụng làm bộ giải mã địa chỉ với

chân tín hiệu A (chân 1) được nối với đường địa chỉ A13, chân B (chân 2) nối với
tín hiệu IO/M, chân C (pin 3), các chân E1(chân 4), E2 (chân 5) được nối với đất,
chân E3 nối với mức 1 (VCC) qua điện trở hạn chế R 3. Các chân tín hiệu ra được
nối như sau:
- Y0 (chân 15) nối với CS1 để chọn EPROM.
- Y1 (chân 5) nối với CS2 để chọn RAM.
- Y3 (chân 5) nối với CS3 để chọn PI/O.
Bộ giải mã địa chỉ đươc sử dụng trong hệ thống này là bộ giải mã 74LS138, đây là bộ giải
mã từ 3 ra 8 đường. Sơ đồ nguyên lý của vi mạch 74LS138 được trình bày trên hình sau:
U
1
2
3

4
5
6

A
B
C

Y0
Y1
Y2

E1
E2
E3


Y3
Y4
Y5
Y6
Y7

15
14
13
12
11
10
9
7

74LS138

Sơ đồ nguyên lý của bộ giải mã 74LS138
Vi mạch 74LS138 có chứa một bộ giải mã 1 trong 8 với 3 tín hiệu lựa chọn
chíp. Nhờ một con số nhị phân, ở linh kiện này ta có thể chọn đúng lối ra từ một
trong số 8 lối ra. Lối ra đã được lựa chọn sau đó sẽ nhận mức low(mức tích cực:
mức logic 0), trong khi tất cả các lối ra khác vẫn giữ nguyên mức logic 1.
Bộ giải mã làm việc khi E3 có mức logic cao, E2 và E1 đồng thời có mức logic thấp. Khi nó
không được phép thì tất cả các cửa ra đều ở mức logic cao. Khi nó được phép thì một trong các
đầu ra sẽ có mức logic thấp phụ thuộc vào tổ hợp các
tín hiẹu.
Ta có bảng sự thật của IC 138 trong trường hợp này như sau :
E3
1
1

1
1
1

E2
0
0
0
0
0

E1
0
0
0
0
0

C
0
0
0
0
0

IO/M A13 A12 - A0 CS1 CS2
0
0
x
0

1
0
1
x
1
0
1
0
x
1
1
x
x
x
1
1
x
x
x
1
1

CS3
1
1
0
1
1



Nhìn vào bảng sự thật ta thấy tất cả các địa chỉ ≥ 4000H không có tác dụng gì
đối với hệ . Đây là điều cần lưu ý khi lập trình cho hệ .
Đường tín hiệu IO/M có vai trò trong việc hoặc là truy nhập bộ nhớ (cả ROM
và RAM) hoặc là truy nhập cổng (thông qua PI/O 8255), cụ thể:
- Khi IO/M =0, CPU truy nhập bộ nhớ.
- Khi IO/M =1, CPU truy nhập cổng.
Khi CPU truy nhập cổng (IO/M =1) thì A13 luôn bằng 0 vì ta chỉ sử dụng địa
chỉ cổng 2 bit (A0,A1), do vậy đảm bảo được sự đúng đắn của tín hiệu chọn
P/IO( CS3=0).
- Đường tín hiệu A13 làm nhiệm vụ chọn ROM hoặc chọn RAM.
- Khi A13=0, CPU truy nhập ROM.
- Khi A13=1, CPU truy nhập RAM.
- Ta có bản đồ phân vùng bộ nhớ của hệ vi xử lý như hình 3.4.
Chúng ta biết rằng CPU 8085 cũng như bất kỳ một CPU nào đều hoạt động
chủ yếu dựa vào các thao tác đọc (READ) hoặc ghi (WRITE) , tức là truy xuất vào
bộ nhớ hay cổng I/O . Trong khi CPU làm thay đổi các giá trị địa chỉ, dữ liệu và
trình tự thao tác, nó vẫn chỉ là thực hiện các thao tác đọc hay ghi.
Trừ một số đường tín hiệu điều khiển đặc biệt , các thao tác đọc/ghi là sự trao
đổi thông tin duy nhất giữa CPU và các thành phần khác, và đó chính là tất cả sự
cần thiết để thực hiện bất kỳ một lệnh hoặc một chương trình nào .
Để giúp cho việc thiết kế CARD làm nhiệm vụ giao tiếp giữa hệ vi xử lý và
máy tính và thiết kế phần mềm hệ thống quản lý các thao tác mô phỏng cho
EPROM , ta cần nắm rõ hơn về cơ chế truy nhập bộ nhớ và cổng của CPU 8085
mà cần thiết nhất ở đây là cơ chế nạp mã lệnh (OPCODE FETCH) và đọc bộ nhớ
(READ), thực chất cơ chế nạp mã lệnh cũng chính là cơ chế đọc từ ROM.

2.3. TỔ CHỨC CARD GIAO TIẾP GIỮA PC VÀ HỆ VI XỬ LÝ.

Từ ý tưởng thực hiện mô phỏng EPROM của CPU 8085A trong hệ thống điều
khiển cho ta thấy rằng có thể tận dụng trạng thái chờ (READY) của CPU 8085A,

sao cho mỗi khi nó cần truy nhập EPROM để đọc mã lệnh hoặc dữ liệu, ta đưa tín
hiệu READY=0 để buộc CPU phải chờ, khi đó trên BUS địa chỉ của hệ vi xử lý
vẫn duy trì giá trị địa chỉ cần truy nhập (phần cao A8÷A15 do chính CPU duy trì,
phần thấp A0÷A7 đã được bộ chốt địa chỉ IC 373 chốt lại) và chương trình hệ
thống trong máy tính sẽ tiến hành đọc giá trị địa chỉ đó, qui chiếu với vùng RAM
mô phỏng để xuất dữ liệu từ địa chỉ tương ứng ra BUS dữ liệu của hệ vi xử lý. Sau
đó nếu ta cho CPU 8085A trở lại làm việc thì nó sẽ tiến hành đọc dữ liệu trên BUS
dữ liệu mà ta đã đưa ra cho nó và tiến hành tiếp tục chu kỳ lệnh theo mã lệnh hoặc
dữ liệu nó vừa nhận được. Còn khi CPU 8085A thực hiện chu kỳ máy không có
truy nhập EPROM thì ta cứ để nó làm việc bình thường. Muốn thực hiện được điều
đó, cần phải kết hợp giữa việc tổ chức phần cứng và việc tổ chức phần mềm.
Nhìn vào biểu đồ thời gian thực hiện một chu kỳ máy, ta thấy tốt nhất là
đưa ra tín hiệu READY =0 ngay trong thời đoạn T1 vì đến T2 CPU mới kiểm tra


sự có mặt của tín hiệu READY. Ta sẽ sử dụng các tín hiệu ALE và CSROM (trên
hệ vi xử lý CSROM được ký hiệu là CS1) sao cho khi có tín hiệu ALE =1 báo bắt
đầu một chu kỳ máy và CSROM=0 báo CPU cần truy nhập EPROM thì mạch phần
cứng tự động tạo tín hiệu READY=0. Sau khi chương trình hệ thống thực hiện
xong các thao tác đọc địa chỉ và xuất ra dữ liệu, chương trình này sẽ tạo ra tín hiệu
READY=1 để cho phép CPU làm việc trở lại.
CARD giao tiếp giữa hệ vi xử lý và máy tính phải làm được các nhiệm vụ
như sau:
-Truyền các tín hiệu điều khiển (RESETIN, HOLD) từ chương trình hệ thống
sang hệ vi xử lý để khống chế thao tác khởi động,cho phép hoặc cấm CPU làm
việc.
-Luôn sẵn sàng nắm bắt tín hiệu ALE và CSROM để tạo tín hiệu READY=0
bắt CPU chờ.
-Nhập các tín hiệu địa chỉ (A0÷A15) từ hệ vi xử lý vào cổng 379h (LPT1) của
máy tính để chương trình hệ thống đọc và xử lý qui chiếu đến vùng RAM mô

phỏng.
-Đưa dữ liệu mà chương trình hệ thống xuất ra từ vùng vùng RAM mô phỏng
sang BUS dữ liệu của hệ vi xử lý .
-Nhận tín hiệu cho phép CPU trở lại hoạt động của chương trình hệ thống để
tạo tín hiệu READY=1cho CPU 8085.
Khối các IC3 (74LS 00), IC 4 (74LS73), IC8 (4LS08) làm nhiệm vụ sẵn sàng
nắm bắt các tín hiệu ALE=1, CSROM=0 để tự động tạo tín hiệu READY=0 làm
dừng CPU và nhận các tín hiệu Clear từ chương trình hệ thống để tạo READY=1
cho IC4 (74LS73). IC này gồm hai triger flipflop JK (IC 4/A và IC 4/B) với các
chân J được nối với +5V qua điện trở hạn dòng, các chân K nối đất. Các cửa ra /Q
được reset ở mức 1(dương) khi chân Clear =0, khi chân Clear ở mức 1, triger sẽ đợi
khi có một sườn xung xuống (chuyển từ mức 1 về mức 0) đặt vào chân CLK thì
triger lật trạng thái và cửa ra /Q lật sang mức 0. Khi chân Clear ở mức 0 thì tín hiệu
CLK không có tác dụng gì cho việc lật trạng thái triger.
IC3 (74LS00) sử dụng hai mạch cổng NAND để nắm bắt đồng thời 2 tín hiệu
ALE=1và CSROM=0 để tạo sườn xung xuống kích cho các chân
CLK của IC 4. Biểu đồ thời gian của tín hiệu đầu ra IC3 phụ thuộc vào
các tín hiệu ALE và CSROM như sau:
IC8(74LS08) sử dụng một cổng AND với đầu ra của nó là tín hiệu READY =0
khi một trong hai đầu ra /Q của IC4 ở mức 0 . READY =1 chỉ khi cả hai đầu ra /Q
của IC 4 đều ở mức 1 .
Việc sử dụng đồng thời hai tín hiệu ALE và CSROM nhằm đảm bảo tạo tín
hiệu READY =0 ngay khi bắt đầu một chu kì máy (thời đoạn T1) và chu kỳ máy
đó chỉ là chu kỳ CPU cần truy suất EPROM.


DataRegister 378H
D7

D6


D5

D4

D3

D2

D1

D0
D0
D1
D2
D3
D4
D5
D6
D7

StatusRegister 379H
D7 D6 D5 D4
D3
D0

D2

(Pin 2)
(Pin 3)

(Pin 4)
(Pin 5)
(Pin 6)
(Pin 7)
(Pin 8)
(Pin 9)

D1

StatStatStatStatStat/D7(BUSY Pin 11)
ControlRegister 37AH
D7
D0

D6

D5

D4

D3

D2

D1
Ctrl/D0 (Strobe Pin 1)

Ctrl/D1 (AF Pin 14)
Ctrl>D2 (INIT Pin 16)
Ctrl/D0(SLCIN Pin
17)

Hình 3.5 : Phân bố các Thanh ghi cổng song song LPT1


CLK IC1

378H

IC1
374

DATA & CTRL multiplexed

P1

D0 -D7

OE

(OUT)

RSIN

IC2
374


HOLD
READY
P3

CLEAR1
IC4/A

379H
ADDR.S multiplexed

(IN)

IC3
7400

CLK
/Q

IC8
7408

IC4/B
CLK
/Q
CLEAR2

ALE

IC6/1


37AH

P2

A0-A3

(OUT)

A0-A7
A4-A7

DB 25
LPT1

IC6/2

IC7/1
A8-A11

IC5
138

CLK IC1

A8-A15

CLK IC2
PASS IC6/1
PASS IC6/2


A12-A15

IC7/2

PASS IC7/1
PASS IC7/2

Hình 3.6. Sơ đồ nguyên lý của card giao tiếp

CS

ROM


IC3(74LS00)
CSROM
NAND
IC4(74LS73)
JK/FF
A
CLK
NAND

/Q

IC 8(74LS08)
AND
READY

ALE

JK/FF
B
CLK
/Q

Hình 3.7. Sơ đồ mạch
tạo tín hiệu READY

CLEAR1

CLEAR2

CLK của IC 4. Biểu đồ thời gian của tín hiệu đầu ra IC3 phụ thuộc vào
các tín hiệu ALE và CSROM như sau:


IC8(74LS08) sử dụng một cổng AND với đầu ra của nó là tín hiệu READY =0
khi một trong hai đầu ra /Q của IC4 ở mức 0 . READY =1 chỉ khi cả hai đầu ra /Q
của IC 4 đều ở mức 1 .
Việc sử dụng đồng thời hai tín hiệu ALE và CSROM nhằm đảm bảo tạo tín
hiệu READY =0 ngay khi bắt đầu một chu kì máy (thời đoạn T1) và chu kỳ máy
đó chỉ là chu kỳ CPU cần truy suất EPROM.
Hoạt động của các IC3, IC4 và IC8 như sau:
Trước khi thực hiện qúa trình mô phỏng, chương trình hệ thống cần tạo ra các
tín hiệu Clear1, Clear2 mức 0 để reset IC 4 sao cho các cửa ra /Q đồng thời ở mức
1, do đó tín hiệu READY từ sau mạch AND (IC8: 74LS08) có mức 1 là trạng thái
sẵn sàng để CPU làm việc. Sau đó một trong hai tín hiệu CLEAR1, CLEAR2 được
nâng lên mức 1, chẳng hạn CLEAR1=1, CLEAR2=0. IC 4/A ở trạng thái sẵn sàng
đón đợi tác động của ALE và CSROM từ IC3 đưa sang, còn IC 4/B sẽ không bị tác
động. Cả hai triger giữ trạng thái /Q=1 và READY=1(qua cổng AND IC8).

ALE

CSROM

CLK IC4

t

t

t IC4 từ
Hình 3.8. Biểu đồ thời gian mạch tạo sườn xuống kích cho triger
hai tín hiệu ALE và /CSROM.

Khi bắt đầu một chu kỳ máy truy xuất EPROM, chẳng hạn bắt đầu reset CPU
8085 làm việc từ đầu ,các tín hiệu ALE=1 và CSROM =0 tác động vào IC3 tạo ra
sườn xung xuống kích vào IC 4 làm cho IC 4/Alật trạng thái /Q=0, IC 4/B không
bị ảnh hưởng. Do đó READY =0. Vẫn trong thời đoạn T1 của chu kỳ máy đó khi
ALE chuyển xuống mức 0 (còn CSROM =0 sẽ kéo dài suốt chu kỳ máy) thì đầu ra
IC3 lật lên mức 1 sẵn sàng đón đợi cho chu kỳ máy tiếp theo, sườn lên của xung
này không có ảnh hưởng gì đến các triger (IC 4/A, IC 4/B).
Chuyển sang thời đoạn T2 của chu kỳ máy đó, CPU nhận thấy có tín hiệu
READY=0 và nó tạm dừng để chương trình hệ thống đọc địa chỉ và xuất mã lệnh
hoặc dữ liệu tương ứng cho nó. Sau khi chương trình hệ thống làm xong việc trên,
nó (chương trình phần mềm hệ thống) sẽ đưa đồng thời hai tín hiệu CLEAR1=0 và
CLEAR2=1với mục đích reset cho IC 4/A nhằm đưa ra tín hiệu READY=1để CPU


bắt đầu trở lại làm việc và đặt cho IC 4/B vào trạng thái đón đợi tác động của ALE
và CSROM (nếu có) của chu kỳ máy tiếp sau.

Cứ như vậy trong suốt quá trình thực hiện mô phỏng IC 4/A và IC 4/B luân
phiên ở trạng thái đợi (Clear=1) và trạng thái reset (Clear=0) bằng cách chương
trình hệ thống đưa đồng thời các tín hiệu CLEAR1 và CLEAR2 đảo mức với nhau.
Kỹ thuật đảo vai trò của IC 4/A và IC 4/B này là biện pháp hữu hiệu đảm bảo cho
IC4 luôn sẵn sàng đáp ứng với tác động của ALE =1 và CSROM=0.
Vì sao phải sử dụng cả hai tín hiệu ALE và CSROM để tạo ra tín hiệu
READY mà không chỉ sử dụng một mình tín hiệu CSROM. Ta đã thấy rằng tín
hiệu ALE=1 chỉ xuất hiện ở thời đoạn T1 đầu chu kỳ máy, còn CSROM=0 duy trì
trong suốt chu kỳ máy CPU cần truy xuất EPROM. Nếu chỉ sử dụng CRSOM(sườn
xuống) để kích hoạt IC4 tạo ra READY=0, thì có thể đến chu kỳ máy tiếp sau CPU
lại cần truy xuất EPROM, như vậy tín hiệu CSROM khó có thể tạo sườn xuống để
tiếp tục kích hoạt cho IC4. Khi sử dụng kết hợp cả hai tín hiệu ALE và CSROM
thông qua IC3 thì ngay sau khi ALE chuyển về mức 0 thì ở đầu vào CLK của IC4
được nâng lên mức 1và IC4 luôn sẵn sàng để tạo READY=0 khi cần thiết.
IC1 có nhiệm vụ đưa dữ liệu (dữ liệu này được lấy từ thanh ghi 378H/LPT1)
được chốt ra BUS dữ liệu (qua các đầu ra RD0ữRD7 ) để hệ vi xử lý sử dụng (mà
lẽ ra CPU cần đọc nó từ EPROM) . IC này chỉ được phép hoạt động (Truyền 8 bit
dữ liệu từ vùng DATBUFF sang hệ vi xử lý) khi chương trình hệ thống đòi hỏi.
Còn thì bình thường các chân dữ liệu ra của nó phải ở mức trở kháng cao để không
làm ảnh hưởng đến sự làm việc của hệ vi xử lý. Điều đó được thực hiện bằng cách
đưa mức 0 (cho phép) hoặc mức 1 (cấm) vào chân /OE (pin 1) của nó.
IC2 được điều khiển từ chương trình hệ thống để làm các nhiệm vụ:
- Đưa các tín hiệu RESETIN (bit d0)và HOLD (bit d1) được chốt ra BUS điều
khiển hệ vi xử lý.
- Tạo các tín hiệu CLEAR1(bit d2) CLEAR2 (bit d3) luân phiên đảo mức 1và
0 trong quá trình mô phỏng để IC4 thường trực nắm bắt các tín hiệu ALE và
CSROM và khi đó IC4 tự động phát ra tín hiệu READY=0. Cũng nhờ đó chương
trình hệ thống có thể chủ động kiểm soát việc phát ra tín hiệu READY=1 cho phép
CPU trở lại quá trình tiếp tục làm việc.
- Tạo tín hiệu cấm hoặc cho phép IC1 hoạt động (bit d7).

Các tín hiệu trên cũng được lấy từ thanh ghi 378H/LPT1 nối vào các cổng vào
của IC2. Việc sử dụng thanh ghi 378H multiflexer vừa đảm nhiệm xuất dữ liệu cho
hệ vi xử lý (qua IC1) vưà đảm nhiệm xuất các tín hiệu điều khiển cho hệ vi xử lý
và cho bản thân CARD giao tiếp như trên cho thấy rõ hơn ý nghĩa của việc sử
dụng các IC1 và IC2 là các vi mạch chốt (bằng sườn dương) 74LS374 đối với yêu
cầu bắt buộc các tín hiệu đầu ra của chúng không bị ảnh hưởng trực tiếp đến nhau.
IC6 (74 LS 244)được tách thành hai phần: phần IC6/1 có nhiệm vụ nhập 4
nible thấp (A0÷A3) của byte thấp từ BUS địa chỉ hệ vi xử lý vào máy tính, phần
IC6/2 có nhiệm vụ nhập 4 nible cao (A4÷ A7) của byte thấp từ BUS địa chỉ vào
máy tính.
IC7 (74LS 244) cũng được tách thành 2 phần: phần IC7/1 có nhiệm vụ nhập 4
nible thấp của byte cao (A8÷A11), còn phần IC7/2 làm nhiệm vụ nhập 4 nible cao
của byte cao (A12÷A15).


Việc tạo các tín hiệu xung chốt cho các IC1, IC2 (74LS 374) cũng do phần
mềm hệ thống tạo ra qua IC5( 74LS 138).
IC5 thực hiện các mệnh lệnh từ phần mềm hệ thống qua thanh ghi điều khiển
37AH cổng LPT1 của máy tính để tiến hành các nhiệm vụ như:
- Tạo các xung chốt (bằng sườn dương) vào các chân clock (pin 11) cho các
IC1, IC2 bằng cách đưa các chân đó về mức 0 sau đó nâng lên mức 1. Chân CS1
của IC5 được nối với chân clock của IC1, còn CS2 của IC5 được nối với chân
clock của IC2.
- Tạo các tín hiệu mở thông các IC6, IC7 để nhập các tín hiệu địa chỉ từ BUS
địa chỉ hệ vi xử lý vào máy tính bằng cách lần lượt đưa mức 0 vào các chân 1G
(pin 1), 2G (pin 19) ứng với mỗi IC cần mở để chương trình hệ thống đọc giá trị địa
chỉ ở nible tương ứng. Chân CS5 của IC5 nối với 1G của IC6/1, chân CS6 nối với
2G của IC6/2, chân CS7 nối với 1G của IC7/1, chân CS8 nối với 2G của IC7/2.
Các chân CS3, CS4 của IC5 không sử dụng.
IC5 làm việc theo nguyên tắc khi chương trình hệ thống cần kích hoạt IC nào

trong số các IC1, IC2, IC6/1, IC6/2, IC7/1, IC7/2 thì đầu ra tương ứng của nó được
hạ xuống mức 0, sau đó tất cả các đầu ra CS của nó đều ở mức 1. Đó là nhờ có các
chân E1, E2 của nó nối vào chân CTRL/D3 của thanh ghi 37AH(LPT1). Nếu
CTRL/D3=0 thì cho phép kích hoạt hay mở thông các IC nói trên, còn khi
CTRL/D3=1 thì tất cả các đầu ra CS của IC5 đều ở mức 1. Lưu ý rằng tín hiệu
CTRL/D3 được đảo so với bit d3 của thanh ghi 37AH .
Tín hiệu CSROM =0 ngoài vai trò giúp cho CARD giao tiếp tự động tạo tín
hiệu READY=0 như đã nói ở trên, còn được chương trình hệ thống trực tiếp đọc
vào qua đường tín hiệu STATchương trình hệ thống thực hiện các thao tác cần thiết trong quá trình mô phỏng.
3.4.

CHƯƠNG TRÌNH HỆ THỐNG.
Với phần cứng đã được tổ chức như ở mục trên, ta đã có đầy đủ các tham số hệ
thống để xây dựng phần mềm điều khiển cho hệ giao tiếp này.
3.4.1. lưu đồ thuật toán của chương trình hệ thống.
Thuật toán điều khiển hệ vi xử lý nối ghép được bắt đầu từ việc khởi tạo giao
diện thao tác. Một cửa sổ với các thực đơn được hiển thị ra cho phép đưa tiếp các
điều kiện điều khiển như MODE làm việc, file cần chạy, các cơ cấu thông báo
lỗi...Trong PC sẽ chứ các chương trình điều khiển cho hệ vi xử lý chuyên dụng
được nối với nó. Các chương trình con này có thể là độc lập cũng có thể là một tập
hợp các unit khác nhau cùng nhiệm vụ điều khiển hệ vi xử lý theo chức năng phức
tạp nào đó.
Trong các MODE, thì MODE tìm được file cần chạy trong thư viện chương
trình và nạp nó vào buffer dành cho ROM giả của hệ vi xử lý là rất quan trọng.
Lưu đồ hình sẽ trình bầy thuật toán điều khiển này.


Begin


+ Lưu trữ mạch trạng thái PC
+ Khởi tạo giao diện thao tác
+ Hiển thị các bước thực hiện

Xác lập trạng thái ban đầu
cho hệ vi xử lý và Card nối
ghép

Chọn chế độ (MOD)
thực hiện

Model mô
phỏng ROM

Model2 xem
ND data buff

Model3 nạp
vào data buff

Hình 3.8: Lưu đồ thuật toán chương trình hệ thống

Model4 về
HĐH PC


Hình: Sơ đồ thuật toán MODE1
Start MODE1

Kiểm tra file

OBJ đã có

Sai

Đúng
Xuất kênh địa chỉ

Sai

Hình:Kiểm
Sơ đồtrathuật toán MODE1
địa chỉ vào

Đúng
Cho phép thực hiện

End MODE1


Start MODE1

Kiểm tra file
OBJ đã có

Đúng
Xuất kênh địa chỉ

Sai

Kiểm tra

địa chỉ vào

Đúng
Cho phép thực hiện

End MODE1

Hình3.9: Lưu đồ thuật toán MODE 1

Sai


×