Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
596 KB
Nội dung
Lời nói đầu Sự phát triển đi lên vợt bậc của nghành kỹ thuật máy tính và điện tử hiện nay đã đ- ợc minh chứng cụ thể qua cuộc sống hàng ngày của chúng ta trong tất cả các lĩnh vực. Việc ứng dụng máy vi tính vào kỹ thuật đo lờng và điều khiển đã đem lại những kết quả đầy tính u việt. Các thiết bị, hệ thống đo lờng và điều khiển ghép nối với máy tính có độ chính xác cao, thời gian thu thập số liệu ngắn, nhng đáng quan tâm hơn là mức độ tự động hoá trong việc thu nhận và xử lý dữ liệu. Kỹ thuật số ra đời đã khắc phục đợc các khuyết điểm của kỹ thuật tơng tự, làm cho các bộ phận máy móc trở lên đơn giản, gọn nhẹ, ít tốn kém năng lợng và xử lý thông tin nhanh, chính xác hơn so với kỹ thuật tơng tự. Tuy vậy, nếu xử dụng các bộ điều khiển dùng các IC số chúng ta vẫn còn mắc một số khuyết điểm mà so với kỹ thuật vi xử lý nó vẫn tồn tại nh: - Kích thớc lớn. - Năng lợng tiêu thụ lớn. - Tính mềm dẻo thấp, khó thay đổi. - Khó sửa chữa, bảo trì. Kỹ thuật vi xử lý ra đời với sự kết hợp giữa phần cứng và phần mềm đã làm cho hoạt động của các mạch điện trở lên mềm dẻo hơn với những phần mềm rất linh hoạt mà ta có thể sửa chữa, thay đổi hoặc bổ xung làm cho chơng trình điều khiển thêm phong phú tuỳ theo nhu cầu của ngời xử dụng. Vi xử lý là một vi mạch điện tử có mật độ tích hợp cao, trong đó gồm các mạch số có khả năng nhận, xử lý và xuất dữ liệu. Đặc biệt là quá trình xử lý dữ liệu đợc điều khiển theo một chơng trình gồm tập hợp các lệnh từ bên ngoài mà ngời sử dụng có thể thay đổi đợc một cách dễ dàng. Một vi xử lý có thể thực hiện rất nhiều yêu cầu điều khiển khác nhau. Kỹ thuật vi xử lý có tính phức tạp trong hoạt động, thiết kế nhng lại rất kinh tế vì giá thành hạ và kích thớc chiếm chỗ không nhiều, có dung lợng cao. Ngoài ra kỹ thuật vi xử lý cũng hơn kỹ thuật số về tính linh hoạt, tốc độ xử lý cao trong quá trình hoạt động, đồng thời lại có thể mở rộng tính năng hoạt động sau này cho mạch điện. Đây là u điểm rất thuận lợi mà kỹ thuật vi xử lý mang lại. Nhận thấy đợc rõ tầm quan trọng và những u điểm của việc lập trình điều khiển thiết bị, các thầy khoa Điện_Điện Tử Tàu Biển đã giao cho em đề tài Thiết kế CARD vào ra đa năng sử dụng Slot của PC cho luận văn tốt nghiệp của mình. Trong thời gian làm tốt nghiệp vừa qua, tuy em đã hết sức cố gắng tìm hiểu, học hỏi về lĩnh vực mới này nhng do trình độ bản thân cũng nh thời gian làm tốt nghiệp còn hạn chế nên chắc chắn sẽ còn nhiều sai sót, kính mong các thầy cô đóng góp ý kiến cho đề tài tốt nghiệp này của em. Em xin chân thành cảm ơn thầy giáo Hồ Nhật Tiến đã tận tình hớng dẫn để hoàn thành báo cáo tốt nghiệp này. Em cũng xin chân thành cảm ơn các thầy cô trong khoa Điện_Điện Tử Tàu Biển, các bạn bè đồng nghiệp đã đóng góp ý kiến và chỉ dẫn em trong quá trình nghiên cứu, thực hiện đề tài này. Phần I Phần lý thuyết cơ sở Chơng1: Giới thiệu cấu trúc hệ vi xử lý 1.1. Giới thiệu vi xử lý 8088 1.1.1. Giới thiệu cấu trúc bên trong và hoạt động của bộ vi xử lý 8088. E.U. (execution unit) B.I.U (Bus interface 1 AxBxCx DxspBpS idi CsDsSsE sip Bus địa chỉ (20bit) Các thanh ghi đoạn và con trỏ lệnh Các thanh ghi đa năng Các thanh ghi con trỏ và chỉ số Các thanh ghi tạm thời ALU Thanh ghi cờ Khối diều khiển của EU Logic điều khiển BUS Đệm lệnh (hàng đợi lệnh) (6 byte cho 8088) Bus dữ liệu (8 bit) Bus trong của CPC 8 bít dữ liệu 20 bít địa chỉ Bus ngoài Bus dữ liệu ALU (16 bit) unit) Hình1.1.sơ đồ khối cấu trúc bên trong của bộ vi xử lý 8088 E.U: Execution unit, khối thực hiện lệnh. B.I.U:Bus interface unit, khối phối ghép bus. ALU: Arithmetic and logic unit, khối số học và lôgic. a. B.I.U và E.U: Theo sơ đồ khối trên hình 1.1 ta thấy bên trong CPU 8088 có hai khối chính: khối phối ghép bus (B.I.U) và khối thực hiện lệnh (E.U). Việc chia CPU ra thành hai phần làm việc đồng thời có liên hệ với nhau qua đệm lệnh làm tăng đáng kể tốc độ xử lý của CPU. Các bus bên trong CPU có nhiệm vụ chuyển tải các tín hiệu của các khối khác. Trong số các bus đó có bus dữ liệu 16 bit của ALU, bus các tín hiệu điều khiển ở E.U và bus trong của hệ thống ở B.I.U. Trớc khi đi ra bus ngoài hoặc đi vào bus trong của bộ vi xử lý, các tín hiệu truyền trên bus thờng đợc cho đi qua các bộ đệm để nâng cao tính tơng thích cho nối ghép hoặc nâng cao khả năng phối ghép. B.I.U đa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ ghi dữ liệu từ /vào cổng hoặc bộ nhớ. Nói cách khác B.I.U chịu trách nhiệm đa địa chỉ ra bus và trao đổi dữ liệu với bus. Trong E.U ta thấy có một khối điều khiển (control unit, CU) chính. Tại bên trong khối điều khiển này có mạch giải mã lệnh. Mã lệnh đọc vào từ bộ nhớ đợc đa đến đầu vào của bộ giải mã, các thông tin thu đợc từ đầu ra của nó sẽ đợc đa đến mạch tạo xung diều khiển. Kết quả là ta thu đợc các dãy xung khác nhau (tuỳ theo mã lệnh) để điều khiển hoạt động của các bộ phận bên trong và bên ngoài CPU. Trong khối E.U còn có 2 Bus dữ liệu 8 bit khối số học và logic (arithmetic and logic unit,ALU) dùng để thực hiện các thao tác khác nhau với các toán hạng của lệnh. Tóm lại, khi CPU hoạt động E.U sẽ cung cấp thông tin về địa chỉ cho B.I.U để khối này đọc lệnh và dữ liệu, còn bản thân nó thì giải mã lệnh và thực hiện lệnh. Trong B.I.U còn có một bộ nhớ đệm lệnh với dung lợng 4 byte dùng để chứa các mã lệnh đọc đợc nằm sẵn để chờ E.U xử lý. Đây là một cấu trúc mới đợc cấy vào bộ vi xử lý8088 do việc INTEL đa cơ chế xử lý xen kẽ liên tục dòng mã lệnh (instruction pipeling) vào ứng dụng trong các bộ vi xử lý thế hệ mới. Trong bộ vi xử lý 8088 ta còn thấy có các thanh ghi 16 bit nằm trong cả hai khối B.I.U và E.U. Ngoài ra cũng có một số thanh ghi 8 hoặc 16 bit tại E.U. Ta sẽ lần lợt giới thiệu các thanh ghi nói trên cùng chức năng chính của chúng. b/ Các thanh ghi đoạn: Khối B.I.U đa ra trên bus địa chỉ 20 bit địa chỉ, nh vậy 8088 có khả năng phân biệt ra đợc 2 = 1.048.576 =1M ô nhớ hay 1Mbyte, vì các bộ nhớ nói chung tổ chức theo byte. Nói cách khác: Không gian địa chỉ của 8088 là 1Mbyte. Trong không gian 1Mbyte này bộ nhớ cần đợc chia thành các vùng khác nhau giành riêng để: - Chứa mã chơng trình - Chứa dữ liệu và kết quả trung gian của chơng trình - Tạo ra một vùng nhớ đặc biệt gọi là ngăn xếp (stack) dùng vào việc quản lý các thông số của bộ vi xử lý khi gọi chơng trình con hoặc trở về từ chơng trình con. Trong thực tế bộ vi xử lý 8088 có các thanh ghi 16 bit liên quan đến địa chỉ đầu của các vùng (các đoạn) kể trên và chúng đợc gọi là các thanh ghi đoạn (segment registers). Đó là: + thanh ghi đoạn mã CS (code segment) + thanh ghi đoạn dữ liệu DS (data segment) + thanh ghi đoạn ngăn xếp SS (stack segment) + thanh ghi đoạn dữ liệu phụ ES (extra segment). Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của 4 đoạn trong bộ nhớ, dung lợng lớn nhất của mỗi đoạn này là 64Kbyte và tại một thời điểm nhất định bộ vi xử lý chỉ làm việc đợc với 4 đoạn nhớ 64Kbyte này. Việc thay đổi giá trị của các thanh ghi đoạn làm cho các đoạn tơng ứng có thể dịch chuyển linh hoạt trong phạm vi không gian 1Mbyte, vì vậy các đoạn này có thể nằm cách nhau khi thông tin cần lu trong chúng đòi hỏi dung lợng đủ 64Kbyte hoặc cũng có thể nằm trùm nhau do có những đoạn không cần dùng hết độ dài 64Kbyte và vì thế những đoạn này có thể bắt đầu nối tiếp ngay sau đó. Điều này cũng cho phép ta truy nhập vào bất kỳ đoạn nhớ ( 64Kbyte) nào nằm trong toàn bộ không gian 1Mbyte. Nội dung các thanh ghi đoạn sẽ xác định địa chỉ của ô nhớ nằm ở đầu đoạn. Địa chỉ này còn gọi là địa chỉ cơ sở. Địa chỉ của các ô nhớ khác nằm trong đoạn tính đợc bằng cách cộng thêm vào địa chỉ cơ sở một giá trị gọi là địa chỉ lệch hay độ lệch (offset). Gọi nh thế vì nó ứng với khoảng lệch của toạ độ một ô nhớ cụ thể nào đó so với ô đầu đoạn. Độ lệch này đợc xác định bởi các thanh ghi 16 bit đóng vai trò thanh ghi lệch (offset register). Cụ thể, để xác định địa chỉ vật lý 20 bit của một ô nhớ nào đó trong một đoạn bất kỳ, CPU 8088 phải dùng đến 2 thanh ghi 16 bit (một thanh để chứa địa chỉ cơ sở, còn thanh ghhi kia chứa độ lệch) và từ nội dung của thanh ghi đó nó tạo ra địa chỉ vật lý theo công thức sau: Địa chỉ vật lý = Thanh ghi đoạn ì 16 + Thanh ghi lệch Việc dùng 2 thanh ghi để ghi nhớ thông tin về địa chỉ thực chất tạo ra một loại địa chỉ gọi là điạ chỉ logic và đợc kí hiệu: Thanh ghi đoạn : Thanh ghi lệch hay segment : offset. Địa chỉ kiểu segment : offset là logic vì nó tồn tại dới dạng của các thanh ghi cụ thể bên trong CPU và khi cần thiết truy nhập ô nhớ nào đó thì nó phải đợc đổi ra địa chỉ vật lý để rồi đợc đa lên bus địa chỉ. Việc chuyển đổi này do một bộ tạo địa chỉ thực hiện (phần tử trên hình). c. Các thanh ghi đa năng: 3 Trong khối EU có 4 thanh ghi đa năng 16 bit: Ax, Bx, Cx, Dx. Điều đặc biệt là khi cần chứa các dữ liệu 8 bit thì mỗi thanh ghi này có thể tách ra thành 2 thanh ghi 8 bit cao và thấp để làm việc dộc lập, đó là các thanh ghi AH và AL, BH và BL, CH và CL, DH và DL. Mỗi thanh ghi có thể đợc dùng một cách vạn năng để chứa các loại dữ liệu khác nhau, nhng cũng có những công việc đặc biệt nhất định chỉ thao tác với một vài thanh ghi nào đó và chính vì vậy các thanh ghi thờng đợc gán cho những cái tên đặc biệt rất có ý nghĩa. Cụ thể: * Ax (Accumulator): Thanh chứa. Các kết quả của các thao tác thờng đợc chứa ở đây (Kết quả của phép phân chia). Nếu kết quả là 8 bit thì thanh ghi AL đợc coi là Acc. * Bx (Base): Thanh ghi cơ sở, thờng chứa địa chỉ cơ sở của một bảng dùng trong lệnh XLAT. * Cx (Count): Bộ đếm. Cx thờng đợc dùng để chứa số lần lặp trong trờng hợp các lệnh LOOP ( lặp), còn CL thờng đợc số lần dịch hoặc quay trong các lệnh dịch hoặc quay thanh ghi. *Dx (Data): Thanh ghi dữ liệu. Dx cùng Ax tham gia vào các thao tác của phép nhân hoặc chia các số 16 bit. Dx còn dùng để chứa địa chỉ của các cổng trong các lệnh vào / ra dữ liệu trực tiếp (In / Out). d. Các thanh ghi trỏ và chỉ số: Trong 8088 còn có 3 thanh ghi con trỏ và 2 thanh ghi chỉ số 16 bit. Các thanh ghi này (trừ IP) đều có thể đợc dùng nh các thanh ghi đa năng, nhng ứng dụng chính của mỗi thanh ghi là chúng đợc ngầm định nh là thanh ghi lệch cho các đoạn tơng ứng. Cụ thể * IP: Con trỏ lệnh (intruction pointer), IP luôn trỏ vào lệnh tiếp theo sẽ đợc thực hiện nằm trong đoạn mã CS. Địa chỉ đầy đủ của lệnh tiếp theo này ứng với CS: IP và đợc xác định theo cách đã nói ở trên. * BP: Con trỏ cơ sở (base pointer), BP luôn trỏ vào một dữ liệu nằm trong đoạn ngăn xếp SS: BP và đợc xác định theo cách đã nói trên. * SP: Con trỏ ngăn xếp (stack poniter), SP luôn trỏ vào đỉnh hiện thời của ngăng xếp nằm trong đoạn ngăn xếp SS. Địa chỉ đầy đủ của đỉnh ngăn xếp ứng với SS: Sp và đợc xác định theo cách đã nói ở trên. * SI: Chỉ số gốc hay nguồn (Sourse index), SI chỉ vào dữ liệu trong đoạn dữ liệu DS mà địa chỉ cụ thể đầy đủ với DS: SI và đợc xác định theo cách đã nói ở trên. * DI: Địa chỉ đích (destination index), DI chỉ vào dữ liệu trong đoạn dữ liệu DS mà địa chỉ cụ thể đầy đủ ứng với DS: DI và đợc xác định theo cách đã nói ở trên. Riêng trong các lệnh thao tác với dữ liệu kiẻu chuỗi thì cặp ES: DI luôn ứng với địa chỉ của phần tử thuộc chuỗi đích còn cặp DS: SI ứng với địa chỉ của phần tử thuộc chuỗi gốc. e. Thanh ghi cờ FR (Flag Register): Đây là thanh ghi khá đặc biệt trong CPU, mỗi bit của nó đợc dùng để phản ảnh một trạng thái hoạt động của kết quả phép toán do ALU thực hiện hoặc một trạng thái hoạt động của EU. Dựa vào các cờ này ngời lập trình có thể có các lệnh thích hợp tiếp theo cho bộ vi xử lý (các lệnh nhảy có điều kiện). Thanh ghi cờ gồm 16 bit nhng ngời ta chỉ dùng hết 9 bit của nó để làm các bit cờ (hình 1.2) Các cờ của bộ vi xử lý 8085 X: Không đợc định nghĩa. Hình 1.2: Sơ đồ thanh ghi cờ của bộ vi xử lý 8086/88 Các cờ cụ thể: * C hoặc CF (Corry Flag): Cờ nhớ, CE = 1 khi có nhớ hoặc mợn từ MSB. 4 X X X X O D I T S Z X A X P X C * P hoặc PE (Parity Flag): Cờ parity, PE phản ánh tính chẵn lẻ (parity) của tổng số bit 1 có trong kết quả là chẵn (even parity, parity chẵn). * A hoặc AE (auxiliary corry flag): Cờ nhớ phụ, rất có ý nghĩa khi ta làm việc với các số BCD. AE = 1 khi có nhớ hoặc mợn từ một số BCD thấp (4bit thấp) sang một số BCD cao (4 bit cao). * Z hoặc ZE (Zero flag): Cờ rỗng, ZE = 1 khi kết quả bằng 0. * S hoặc SF (Sign flag): Cờ dấu, SF = 2 khi kết quả âm. * O hoặc OE (Overlow flag): Cờ tràn, OF = 1 khi kết quả là một số bù hai vợt ra ngoài giới hạn biểu diễn dành cho nó. Trên đây là 6 bit cờ trạng thái phản ảnh các trạng thái khác nhau của kết quả sau một thao tác nào đó 5 bit cờ đầu thuộc byte thấp của thanh cờ là các cờ giống nh của bộ vi xử lý 8 bit 8085. Chúng đợc lập hoặc xóa tuỳ theo các điều kiện cụ thể sau các thao tác của ALU. Ngoài ra, bộ vi xử lý 8088 còn có các cờ điều khiển sau đây (các cờ này đợc lập hoặc xoá bằng các lệnh riêng): T hoặc (trap flag): Cờ bẫy, TF = 1 thì CPU làm việc ở chế độ chạy từng lệnh (chế độ này dùng khi cần tìm lỗi trong một chơng trình). * I hoặc IF (interrupt enable flag): Cờ cho phép ngắt, IF = 1 thì CPU cho phép các yêu cầu ngắt (cho đợc) đợc tác động. * D hoặc DF (direction flag): Cờ hớng, DF = 1 khi CPU làm việc với chuỗi ký tự theo thứ tự từ phải sang trái (vì vậy D là cờ lùi). Sơ đồ chân CPU 8088 Min Max GND 1 40 Vcc [AD14] A14 2 39 A15 [AD13] A13 3 38 A16/ S3 [AD12] A12 4 37 A17/ S4 [AD11] A11 5 36 A18/ S5 [AD10] A10 6 35 A19/ S6 [AD9] A9 7 34 SSO ( BHE / S7) [AD8] A8 8 33 MN/ MX AD7 9 32 RD AD6 10 31 HOLD ( BQ / 0GT ) AD5 11 30 HLDA ( BQ / 1GT ) AD4 12 29 WR ( LOCK ) AD3 13 28 IO/ M ( 2S ) AD2 14 27 DT/ R (S1) AD1 15 26 DEN ( 0S ) AD0 16 25 ALE (QS0) NMI 17 24 INTA (QS1) INTR 18 23 TEST CLK 19 22 READY GND 20 21 RESET 1 2 . Hệ vi xử lý và các mã lệnh thực hiện: 5 UP 8088 1 2.1 Cấu trúc và hoạt động của hệ vi xử lý: Sơ đồ khối tổng quát và hoạt động của hệ vi xử lý BUS dữ liệu BUS điều khiển Thanh Thanh ghi ghi trong ngoài BUS địa chỉ Trong sơ đồ này ta thấy các khối chức năng chính của bộ vi xử lý gồm: - Khối xử lý trung tâm (central processiry unit, 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 (input/ output, I/O). - Các BUS truyền thông tin. 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 gọi chung là bus hệ thống. BUS hệ thống bao gồm 3 bus thành phần. ỉng với các tín hiệu địa chỉ, dữ liệu và điều khiển ta có bus địa chỉ, bus dữ liệu và bus điều khiển. CPU đóng vai trò chủ đạo trong hệ vi xử lý. Đây là một mạch vi điện tử có độ tích hợp rất cao. Khi hoạt động, nó đọc mã lệnh đợc ghi dới dạng các bit 0 và bit 1 từ bộ nhớ, sau đó nó sẽ giải mã các lệnh này thành dãy các xung điều khiển ứng với các thao tác đó. Để làm đợc việc này bên trong CPU có thanh ghi dùng để chứa địa chỉ của lệnh sắp thực hiện gọi là thanh ghi con trỏ lệnh (instruction pointer, IP) hoặc bộ đếm chơng trình (program counter, PC), một số thanh ghi đa năng khác cùng với bộ tính toán số học và logic (ALU) để thao tác với dữ liệu. Ngoài ra ở đây còn có các hẹ thống mạch điện tử rất phức tạp để giải mã lệnh và từ đó tạo ra các xung điều khiển cho toàn hệ. Bộ nhớ bán dẫn hay bộ nhớ trong là một bộ phận khác rất quan trọng của hệ vi xử lý. Tại đây (trong ROM) ta có thể chứa chơng trình điều khiển hoạt động của toàn hệ để khi bật điện thì CPU có thể lấy lệnh từ đây mà khởi đầu hệ thống. 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 cùng các kết quả của chơng trình thờng đợc để trong RAM các dữ liệu và chơng trình muốn lu trữ lâu dài sẽ để ở bộ nhớ ngoài. Khối phối ghép vào / ra (I/0) tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế giới bên ngoài. Các thiết bị ngoại vi nh bàn phím, chuột, màn hình, máy in, chuyển đổi số / tơng tự (D/A converter, DAC) và chuyển đổi tơng tự / số (A/D converter, ADC), ổ đĩa từ đều liên hệ với hệ vi xử lý qua bộ phận này. Bộ phận phối ghép cụ thể giữa bus hệ thống với thế giới bên ngoài thờng đợc gọi là cổng. Nh vậy ta sẽ có các cổng vào để lấy thông tin từ ngoài vào và các cổng ra để đa thông tin từ trong hệ thống ra ngoài. Tuỳ theo nhu cầu cụ thể của công việc, các mạch cổng này có thể đợc xây dựng từ các mạch logic cơ bản hoặc từ các vi mạch chuyên dụng lập trình đợc. BUS địa chỉ thờng có từ 16, 20, 14 đế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ẽ đa ra trên bus này địa chỉ của ô nhớ liên quan. Khả năng phân biệt địa chỉ (số lợng địa chỉ cho ô nhớ mà CPU có khả năng phân biệt đợc) phụ thuộc vào số bit của bus địa chỉ. Ví dụ nếu một CPU có số đờng dây địa chỉ là N = 16 thì nó có khả năng địa chỉ hoá đợc 2 N = 65536 = 64 kilô ô nhớ khác nhau (1K = 2 10 = 1024). Khi đọc/ghi với cổng vào/ra CPU cũng đa ra trên bus địa chỉ các bit địa chỉ tơng ứng của cổng. Trên sơ đồ khối ta dễ nhận ra tính 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ỉ. 6 Bộ xử lý trung tâm (CPU) Thiết bị vào Thiết bị ra Bộ nhớ (MEMORY) Rom - Ram Phối ghép vào ra (I/O) Bus dữ liệu thờng có từ 8, 16, 20, 24, 32 đến 64 đờng dây tuỳ theo các bộ VXL cụ thể. Số lợng đờng dây này quyết định số bit dữ liệu mà CPU có khả năng xử lý cùng một lúc. Chiều mũi tên trên bus số liệu chỉ ra rằng đây là bus 2 chiều. Các phần tử có đầu ra nối thẳng với bus dữ liệu đều phải đợc trang bị đầu ra 3 trạng thái để có thể ghép vào đợc và hoạt động bình thờng với bus này. 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 ra tín hiệu điều khiển tới các khối khác trong hệ, đồng thời nó cũng nhận các tín hiệu điều khiển từ các khối đó để phối hợp hoạt động của toàn hệ nên các tín hiệu này. Trên hình vẽ đợc thể hiện bởi các đờng có mũi tên 2 chiều, điều đó không phải để chỉ tính 2 chiều của một tín hiệu mà là tính 2 chiều của một nhóm tín hiệu. Hoạt động của hệ thống VXL trên 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 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 trong CPU) hoặc các thanh ghi ngoài (nằm rải rác trong bộ nhớ ROM, RAM và trong khối phối ghép I/O). Hoạt động của toàn hệ thực chất là sự 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.2.2 Cách mã hoá lệnh của bộ vi xử lý 8088. Lệnh của bộ vi xử lý đợc ghi bằng các kí tự dới dạng gợi nhớ (memonk) để ngời sử dụng dễ nhận biết. Đối với bản thân bộ vi xử lý thì lệnh cho nó đợc mã hoá dới dạng các số 0 và 1 ( còn gọi là mã máy) vì đó là dạng biểu diễn thông tin duy nhất mà máy hiểu đợc. Vì lệnh cho bộ VXL đợc cho dới dạng mã nên sau khi nhận đợc lệnh, bộ VXL phải thực hiện giải mã lệnh. Việc hiêu rõ bản chất cách ghi lệnh bằng số hệ hai cho bộ VXL sẽ có lợi khi ta cần dịch bằng tay một lệnh gợi nhớ khi làm việc với các kitVXL. Một lệnh có thể có một vài byte tuỳ theo bộ VXL. Giả thiết một bộ VXL nào đó dùng 1 byte để chứa các mã lệnh (opcode) của nó. Ta có thể tính đợc số lệnh lớn nhất mà 1 byte này có thể mã hoá đợc là 256 lệnh. Trong thực tế việc ghi lệnh không phải hoàn toàn đơn giản vậy. Việc mac hóa lệnh cho bộ VXL là rất phức tạp và bị chi phối bởi nhiều yếu tố khác nữa. Đối với bộ VXL 8088 một lệnh có thể có độ dài từ 1 đến 6 byte. Ta sẽ chỉ lấy tr- ờng hợp lệnh MOV để giải thích cáh ghi lệnh nói chung của 8088. Lệnh MOV đích, gốc dùng để chuyển dữ liệu giữa 2 thanh ghi hoặc giữa ô nhớ và thanh ghi. Chỉ nguyên với các thanh ghi của 8088, nếu ta lần lợt đặt các thanh ghi vào vị trí các toán hạng đích và toán hạng gốc ta thấy đã phải cần tới hàng trăm mã lệnh khác nhau để mã hoá tổ hợp các lệnh này. byte1 byte 2 byte 3 byte 4 D W Mod REG MIR DISP: displacement (dịch chuyển) hoặc H 1.2.2 - Dạng thức các byte mã lệnh của MOV Ta thấy để mã hóa lệnh MOV ta cần ít nhất 2 byte, trong đó 6 bit của byte đầu dùng chứa mã lệnh. Đối với lệnh MOV, để chuyển dữ liệu kiểu: - Thanh ghi thanh ghi (trừ thanh ghi đoạn) hoặc - Bộ nhớ thanh ghi (trừ thanh ghi đoạn). thì 6 bit đầu này luôn là 100010. Với các thanh ghi đoạn thì điều này lại khác. 7 1 0 0 0 1 0 Disp L Disp H Địa chỉ trực tiếp Địa chỉ trực tiếp Phần thấp Phần cao Bit W để chỉ rằng 1 byte (W = 0) hoặc 1 từ (W = 1) sẽ đợc chuyển. Trong các thao tác chuyển dữ liệu, một toán hạng luôn bắt buộc phải là thanh ghi. Bộ VXL dùng 2 hoặc 3 bit để mã hoá các thanh ghi trong CPU nh sau: Bit D dùng để chỉ hớng đi của dữ liệu, D = 1 thì dữ liệu đi đến thanh ghi bởi 3 bit của REG, D =0 thì dữ liệu đi từ thanh ghi cho bởi 3 bit của REG. Hai bit MOD(chế độ) cùng với 3 bit R/M (thanh ghi/bộ nhớ) tạo ra 5 bit dùng để chỉ ra chế độ địa chỉ cho các toán hạng của lệnh. Chơng 2: Các chuẩn truyền thông trong điều khiển 2.1. Các giao diện vào ra đợc sử dụng trong máy tính. 2.1.1. Giao diện Centronics ( cổng máy in). Giao diện cổng máy in song song còn gọi là giao diện centronics. Máy in liên lạc với máy tính qua giao diện này đợc mô tả nh hình 2.1 Giao diện Centronics Hình 2.1: Mô tả giao diện Centronics a.Cấu trúc cổng máy in. máy in nối với máy tính đợc thực hiện qua ổ cắm 25 chân ở phía sau máy tính. Nhng đây không chỉ là ổ nối với máy in mà khi sử dụng máy tính vào mục đích đo lờng và điều khiển thì việc ghép nối cũng đợc thực hiện qua cổng này. Qua cổng này số liệu đợc truyền song song, nên còn gọi là cổng ghép nối song song và tốc độ truyền số liệu cũng đạt đợc đến mức lớn đáng kể. Tất cả các đờng dẫn của cổng này đều tơng thích TTL, nghĩa là chúng đều cung cấp một mức điện áp nằm giữa 0 và 5v. Do đó ta cần phải lu ý là ở các đờng dẫn lối vào cổng này không đợc đặt ở mức điện áp quá lớn. Sự phân bố chân cổng máy in nh (hình 2.2) Ngời ta có thể trao đổi một cách riêng biệt với 17 đờng dẫn, bao gồm có 12 đ- ờng dẫn ra và 5 đờng dẫn vào. Do 8 đờng dẫn số liệu không phải là đờng dẫn hai chiều nên chúng đợc xem nh là lối ra. Các lối ra khác nữa là: 8 Thanh ghi mã W = 1 W = 0 AX AL 000 BX BL 011 CX CL 001 DX DL 010 SP SH 100 DI BH 111 BP CH 101 SI DH 110 Thanh ghi đoạn mã CS 01 DS 11 ES 00 SS 10 Máy tính Máy in STROBE, AUTO FEED(AF),INIT,SELECT IN (SLECTIN). Khi trao đổi thông tin với máy in,các đờng dẫn này có những chức năng xác định. Thí dụ: INT=0 thực hiện một quá trình khởi động lại(RESET) ở máy in, còn STROBE có nhiệm vụ ghi các bit số liệu đã đợc gửi đến máy in bằng một xung mức thấp vào trong bộ nhớ của máy in. Chân Kí hiệu Vào/ra Mô tả 1 STROBE Lối ra (Output) : byte đợc in 2 D 0 Lối ra Đờng dữ liệu D 0 3 D 1 Lối ra Đờng dữ liệu D 1 4 D 2 Lối ra Đờng dữ liệu D 2 5 D 3 Lối ra Đờng dữ liệu D 3 6 D 4 Lối ra Đờng dữ liệu D 4 7 D 5 Lối ra Đờng dữ liệu D 5 8 D 6 Lối ra Đờng dữ liệu D 6 9 D 7 Lối ra Đờng dữ liệu D 7 10 ACK Lối vào (Input) Acknowledge(xác nhận) 11 BUSY Lối vào 1 : Máy in bận 12 DE Lối vào Select (lựa chọn) 13 SLCT Lối vào Auto Feed (tự nạp) 14 AF Lối ra Error (lỗi) 15 ERROR Lối vào 0 : Đặt lại máy in 16 INIT Lối ra Select in 17 SLCTIN Lối ra Nối đất 18 GND 19 GND 20 GND 21 GND 22 GND 23 GND 24 GND 25 GND 25 Hình 2.2: Phân bố chân cổng máy in 9 14 1 13 Cổng máy in cũng có những chân dẫn lối vào nhờ vậy mà sự bắt tay giữa máy in và máy tính đợc thực hiện. Thí dụ khi tắt máy in không còn đủ chỗ trong bộ nhớ thì máy in sẽ gửi đến máy tính một bit trạng thái (BUSY = 1), điều đó có nghĩa là máy in tại thời diểm này đang bận, không nên gửi thêm các byte số liệu khác đến nữa. Khi hết giấy ở máy in thì máy tính sẽ thông báo là Paper Empty (PE). Đờng dẫn nối vào tiếp theo là Acknowledge (ACK), Select (SLCT) và Error. Tổng cộng có 5 lối vào hớng tới máy in. b Trao đổi với các đờng dẫn tín hiệu: Tất cả các đờng dẫn tín hiệu vừa đợc giới thiệu cho phép trao đổi qua các địa chỉ bộ nhớ của máy tính. 17 đờng dẫn của cổng máy in sắp xếp thành 3 thanh ghi là thanh ghi số liệu, thanh ghi trạng thái và thanh ghi điều khiển. Hình 2.3 chỉ ra các sự sắp xếp của các đờng dẫn tín hiệu tới các bit số liệu riêng biệt của thanh ghi. Thanh ghi số liệu (Địa chỉ cơ bản) D7 D6 D5 D4 D3 D2 D1 D0 D 0 (Pin 2) D 1 (Pin 3) D 2 (Pin 4) D 3 (Pin 5) D 4 (Pin 6) D 5 (Pin 7) D 6 (Pin 8) D 7 (Pin 9) Hình 2.4(a) Thanh ghi trạng thái (địa chỉ cơ bản + 1) Error (Pin 15) SLCT (Pin 13) PE (Pin 12) ACK (Pin 10) BUSY (Pin 11) Hình 2.4(b) Thanh ghi điều khiển (địa chỉ cơ bản) D7 D6 D5 D4 D3 D2 D1 D0 Hình 2.4(c) Hình 2.4 Các thanh ghi ở cổng máy in của máy tính Địa chỉ cơ bản đồng nhất với thanh ghi số liệu. Thanh ghi trạng thái đợc đạt tới địa chỉ cơ bản + 1. Thanh ghi điều khiển với bốn đờng dẫn đặt dới địa chỉ cơ bản + 2 2.1.2: Giao diện RS 232 (Cổng nối tiếp): a) Cấu trúc cổng nối tiếp: 10 14 25 1 13 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 STROBE(Pin 1) AUTO FEED(Pin14) INIT(Pin 16) SLCTIN(Pin 17) IRQ Enable [...]... bus của mình và đa ra tín hiệu HLDA báo cho DMAC đợc toàn quyền sử dụng bus 5 DMAC đa ra xung DACK để báo cho thiết bị ngoại vi biết là có thẻ bắt đầu trao đổi dữ liệu 6 DMAC bắt đầu chuyển dữ liệu từ bộ nhớ ra thiết bị ngoại vi bằng cách đa địa chỉ của byte đầu ra bus địa chỉ và đa ra tín hiệu MEMR =0 để đọc 1 byte từ bộ nhớ ra bus dữ liệu Tiếp đó DMAC đa ra tín hiệu IOW = 0 để ghi dữ liệu ra thiết. .. 2 Thiết kế phần mềm điều khiển Card 2.1.Xây dựng thuật toán vào ra dữ liệu cho Card START Kiểm Tra Card Đã Cắm? Kiểm Tra Card Kiểm Tra Xem Thiết Lập Các Kiểm Tra Nào Có Đầu RaCác QuétThoátCho Các Thông Thái Lựa Trạng Số Cổng Đợc Chọn? END Lối Chọn Chơng Trình Vào( Input) 8255 35 Hiển Thị Vị Trí Đa Dữ ứng Ra Tơng Liệu Cổng Tơng ứng 2.2 Ngôn ngữ lập trình Visual Studio 6.0 và cấu trúc file.dll Thiết kế. .. Thiết bị 1 (vào) G OC STB Pr ISPO1 q Chốt 8 bít Mạch 3 trạng thái clk clr Thiết bị 2 (ra) STB OSPO2 ISPOO Pr Q D OSPO2 CLK clr Một cổng vào số 0 (Có địa chỉ 00) đợc dùng để đọc trạng thái sẵn sàng của 2 thiết bị ngoại vi nói trên Tín hiệu sẵn sàng của thiết bị ngoại vi số 1 (cổng vào 01) đ ợc đặt vào bit D0, tín hiệu sẵn sàng của thiết bị ngoại vi só 2 (cổng vào 02) đợc đặt vào bit D1 Các thiết bị này... với dung lợng hàng vài Mbyte trở lên Vì vậy vùng vào ra của một card không đợc phép bao trùm lên vùng địa chỉ vào/ ra của máy tính Bảng dới đây sẽ chỉ ra sự sắp xếp của vùng địa chỉ vào/ ra của máy tính PC/ AT Địa chỉ (Hex) I/O Chức năng 000 01F Bộ điều khiển DMA 1 (8232) 020 03F Bộ điều khiển ngắt (8259) 040 01F Bộ phát thời gian (8259) 060 06F Bộ kiểm tra bàn phím (8242) 070 07F Đồng bộ thời gian... Các phơng pháp trao đổi dữ liệu điều khiển 2.3.1 Giới thiệu chung về các phơng pháp điều khiển vào/ ra dữ liệu Có thể phân biệt ra làm 3 phơng pháp điều khiển vào/ ra dữ liệu: Vào /ra dữ liệu điều khiển bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại vi Vào /ra dữ liệu điều khiển bằng cách ngắt bộ vi xử lý Vào /ra dữ liệu điều khiển bằng phần cứng phụ để thâm nhập trực tiếp vào bộ nhớ Mỗi phơng... sẽ đợc đẩy ra các cổng PA, PB, PC tuỳ theo địa chỉ đầu vào các tín hiệu từ các cổng PA, PB, PC sẽ truyền thẳng ra đến thiết bị ngoại vi 1.3 Thiết kế mạch đệm dữ liệu 1.3.1 Giới thiệu vi mạch 74HC245 74HC245 là một bộ đếm bus hai chiều, bộ này dùng để nối các đờng dữ liệu của rãnh cắm PC với các đờng dẫn của card mở rộng 74HC245 có chứa 8 bộ đếm với các lối ra 3 trạng thái (tristate) để trao đổi thông... là ô nhớ do SP chỉ ra (chỉ ra đỉnh mới của ngăn xếp, cất thanh ghi cờ vào đỉnh ngăn xếp) 2 IF 0 , TF 0 (Cấm ngắt khác tác động vào CPU, cho CPU chạy ở chế độ bình thờng) 3 SP SP - 2, { SP } CS (Chỉ ra đỉnh mới của ngăn xếp, cất phần địa chỉ đoạn của đại chỉ trở về vào đỉnh ngăn xếp) 4 SP SP - 2, { SP } IP (Chỉ ra đỉnh mới của ngăn xếp, cất phần điạ chỉ lệch của địa chỉ trở về vào đỉnh ngăn xếp)... Chức năng này cho phép vi xử lý cấm hay cho phép các thiết bị ngoại vi đã xác định, ngắt vi xử lý mà không làm ảnh hởng các thiết bị khác trong cấu trúc ngắt c) Các chế độ (mode) hoạt động: * Mode 0 (vào/ ra cơ bản): Số liệu đợc ghi vào và đọc ra một cách đơn giản từ một cổng đã chọn trớc Các đặc tính cơ bản của mode 0: - 2cổng vào/ ra 8 bit và 2 cổng vào/ ra 4 bit - Bất kỳ cổng nào cũng có thể là vào. .. ngỏ ra (P=Q) ở mức 0 chọn 8255 nghĩa là 8255 sẽ trao đổi thông tin đợc với máy tính 28 Phần II Phần thiết kế Card Chơng1: Thiết kế BUS dữ liệu mở Rộng 48bit I/0 1.1 Giới thiệu phần mềm thiết kế mạch điện tử OrCad vesion 9.0 1.1.1 Giới thiệu các chơng trình vẽ mạch in: Công việc thiết kế mạch in cho một mạch ứng dụng nào đó chính là công việc tiếp theo sau giai đoạn đã hoàn tất mạch nguyên lý Việc thiết. .. ra thiết bị ngoại vi: 1 CPU phải ghi từ điều khiển và từ chế độ làm việc vào DMAC để qui định cách thức làm việc Địa chỉ đầu của mảng nhớ, độ dài của mảng nhớ 2 Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu, nó đa DRQ = 1 đến DMAC 3 DMAC đa ra tín hiệu HRQ đến chân HOLD của CPU để yêu cầu treo CPU Tín hiệu HOLD phải ở mức cao cho đến hết quá trình trao đổi dữ liệu 4 Nhận đợc yêu cầu treo, CPU kết . và phần m m đã l m cho hoạt động của các m ch điện trở lên m m dẻo hơn với những phần m m rất linh hoạt m ta có thể sửa chữa, thay đổi hoặc bổ xung l m cho chơng trình điều khiển th m phong. 2.1: M tả giao diện Centronics a.Cấu trúc cổng m y in. m y in nối với m y tính đợc thực hiện qua ổ c m 25 chân ở phía sau m y tính. Nhng đây không chỉ là ổ nối với m y in m khi sử dụng m y. điều khiển DMA, nó tác động ở m c cao. * TC (Terminal Count): Tín hiệu này tạo ra m t xung. Khi bộ đ m đ m đến cuối của m t kênh DMA nào đó đạt đén giá trị định trớc, tín hiệu tích cực ở m c cao. *