Nguyễn Tuấn Linh – BM KTMT Khoa §iÖn tö §¹i häc kü thuËt c«ng nghiÖp Th¸i Nguyªn

Kü thuËt ghÐp nèi m¸y tÝnh

Tháng 5/2010

2

Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử

Bài giảng môn học: Kỹ thuật ghép nối máy tính
CHƯƠNG 1. ĐẠI CƯƠNG VỀ KỸ THUẬT GHÉP NỐI MÁY TÍNH ............. 6
1.1. 1.2.
1.2.1 1.2.2 1.2.3

Cấu trúc chung của hệ thống ................................................................................. 7 Yêu cầu trao đổi tin của máy vi tính đối với môi trường bên ngoài ..................... 8
Yêu cầu trao đổi tin với người điều hành ................................................................8 Yêu cầu trao đổi tin với thiết bị ngoài trong hệ đo lường – điều khiển ...................8 Yêu cầu trao đổi tin trong mạng máy tính ...............................................................8

1.3.
1.3.1 1.3.2

Dạng và các loại tin trao đổi giữa máy vi tính và thiết bị ngoài (TBN) ............... 8
Dạng tin (số) ............................................................................................................8 Các loại tin ...............................................................................................................9

1.4.
1.4.1 1.4.2

Vai trò và nhiệm vụ của khối ghép nối (KGN) ..................................................... 9
Vai trò ......................................................................................................................9 Nhiệm vụ ..................................................................................................................9

1.5.
1.5.1 1.5.2

Cấu trúc chung của một hệ ghép nối máy tính .................................................... 11
Cấu trúc đường tín hiệu của KGN với Máy tính ...................................................11 Cấu trúc chung của một khối ghép nối ..................................................................11

1.6.
1.6.1 1.6.2 1.6.3

Chương trình phục vụ trao đổi tin cho khối ghép nối ......................................... 12
Lập trình hợp ngữ (assembly) ................................................................................12 Lập trình Pascal......................................................................................................13 Lập trình C/C++ .....................................................................................................13

CHƯƠNG 2. GIAO TIẾP VỚI TÍN HIỆU TƯƠNG TỰ .................................. 15
2.1. 2.2.
2.2.1 2.2.2 2.2.3 2.2.4

Khái niệm tín hiệu analog và hệ đo lường điều khiển số .................................... 16 Chuyển đổi tín hiệu số sang tương tự DACs ...................................................... 16
Các tham số chính của một DAC ...........................................................................17 DAC chia điện trở (Resistive Divider DACs) .......................................................18 DAC trọng số nhị phân (Binary Weighted DACs) ................................................18 DAC điều biến độ rộng xung (PWM DACs) ........................................................19

2.3.
2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6

Chuyển đổi tín hiệu tương tự - số ADC: ............................................................. 20
Các tham số chính của một ADC ...........................................................................20 Bộ biến đổi AD theo hàm dốc................................................................................21 A/D xấp xỉ tiệm cận ...............................................................................................22 Tích phân sườn dốc ................................................................................................23 Flash ADC .............................................................................................................24 Một số vi mạch ADC thông dụng ..........................................................................25

Mô tả chức năng của các chân: ........................................................................... 27

CHƯƠNG 3. THỦ TỤC TRAO ĐỔI DỮ LIỆU CỦA MÁY TÍNH ................. 30
3.1. 3.2.
3.2.1 3.2.2 3.2.3

Các chế độ trao đổi dữ liệu của máy vi tính ........................................................ 31 Trao đổi tin ngắt vi xử lý..................................................................................... 32
Các loại ngắt của máy PC ......................................................................................32 Xử lý ngắt cứng trong IBM - PC: ..........................................................................35 Lập trình xử lý ngắt cứng:......................................................................................37

3.3.
3.3.1 3.3.2 3.3.3

Trao đổi tin trực tiếp khối nhớ ............................................................................ 39
Cơ chế hoạt động: ..................................................................................................39 Hoạt động của DMAC: ..........................................................................................39 Chip điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 .....................................40

CHƯƠNG 4. GHÉP NỐI QUA RÃNH CẮM MỞ RỘNG ................................ 45
4.1. 4.2. Đặt vấn đề............................................................................................................ 45 Bus PC ................................................................................................................. 47
3

Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử

.................. 5........ 6.......3................................... 76 Yêu cầu: ..........................................1 6..4................................ 99 Sự điểm danh .......................1................................... 55 5..........4................ 57 Ghép nối 8255A với Máy tính và TBN ....................2 5....5 6.....Asynchronous: .............. 79 Cổng nối tiếp RS 232 .....4..................1 5..........................................3................................2...............................................3........................................... 112 Chuột ........................................................ 4.................................................................... GHÉP NỐI TRAO ĐỔI TIN SONG SONG ....1 4...................... 77 Trao đổi tin không đồng bộ .. 55 Vi mạch chốt 74LS373: .................................................................4............. 56 Giới thiệu chung .... 6.... 76 Trao đổi tin đồng bộ: Synchronous .............................. 7......................................4............1 7........................................................................................1 6........................................2...........................................1.................. 65 Cấu trúc cổng máy in ..........3 6..............................................................................................2.................................. 50 Ghép nối qua khe cắm mở rộng ......2 Khối ghép nối song song đơn giản ..........4...........4.....................................3.............................................................................2 Truyền thông nối tiếp sử dụng giao diện RS-232: ........................... 104 Giao thức USB ..............................................2...2 Giao tiếp với bàn phím và chuột .................................................... GIAO TIẾP VỚI CÁC THIẾT BỊ NGOẠI VI CƠ BẢN ...........................4................................ 5................................. .......................... 78 Quá trình truyền một byte dữ liệu: ............................................ 50 CHƯƠNG 5............................................ 6..................3.......................................... 7........3 5......................7 Giao tiếp USB của máy PC: .....2 5... 120 Card giao tiếp đồ họa................4................................... 96 Giới thiệu chung.......... 75 Yêu cầu và thủ tục trao đổi tin nối tiếp: ..................1............................ 74LS373). chốt (74LS245..................4...................................................... 69 CHƯƠNG 6.........................3.........................................................................................................3.......................................................... GHÉP NỐI TRAO ĐỔI TIN NỐI TIẾP ............. 47 Bus PCI ........3............. 55 Vi mạch đệm 74LS245: .........5.......... 53 Các vi mạch đệm...............3 5.................................... 112 Bàn phím .............2.............................1 6................ 5.............4......2 6................................................................2 6.....4...................... 105 Khuôn dạng các gói tin ..................... 117 7.....4 Ghép nối song song qua cổng máy in .4 Vi mạch PPI 8255A ...................... 104 Các kiểu truyền USB ...................1 5........................... 79 6.......................2.............4......... 62 5. 4....2. 121 4 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử ......................4.............................2 Giao tiếp PC Game ................................... 77 6........... 118 Monitor và card giao diện đồ hoạ .....................................................3 Đặt vấn đề ........................................................................ 57 Các từ điều khiển ...........1 5.....1 7..........................3............................................................. 50 Giải mã địa chỉ và kết nối Bus dữ liệu .......Enhanced Parallel Port ............................................................................................................................................................... 53 5................. 50 Một số đặc điểm của Card ISA ....................................................................................................................................2.............. 120 Nguyên lý hiện ảnh trên monitor ............................................. 7...4....5............................. 75 6.6 6....5........................................................................................2 Bus ISA (16 bit) ....................3........................3.........1............................ 65 Ghới thiệu chung ....... 4.... 6........3........................................................................... 67 EPP ...................................................................................................................... 5........... 96 Mô tả hệ thống USB ........4 6............... 108 CHƯƠNG 7..................... 97 Giao diện vật lý ..1..................... 56 Các lệnh ghi và đọc các cổng và các thanh ghi điều khiển ......... 66 Các thanh ghi của cổng máy in: ...... 111 7...................

Đo lường và điều khiển bằng máy tính. Kỹ thuật ghép nối máy vi tính.Giới thiệu môn học • Tên môn học: Giao tiếp máy tính Kỹ thuật ghép nối máy tính (Computer Interfacing) • Mục tiêu: Trang bị cho sinh viên các kiến thức cơ bản về ghép nối máy tính và vai trò của ghép nối máy tính trong các hệ thống tự động. NXB KHKT Ngô Diên Tập. Lập trình ghép nối máy tính trong Windows.…). NXB KHKT Nguyễn Mạnh Giang. [3]. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 5 . .. [4]. NXB KHKT • Tài liệu tham khảo [1]. Kỹ thuật lập trình điều khiển hệ thống. các cổng vào ra (LPT. Đỗ Xuân Tiến. NXB Giáo dục. NXB KHKT. Ngô Diên Tập. Thiết kế và xây dựng các hệ thống ghép nối máy tính đáp ứng các yêu cầu cụ thể đặt ra trong thực tế. Kỹ thuật ghép nối máy tính. USB. 2 tập. [5]. COM. Nghiên cứu các giao tiếp cơ bản của máy tính với các thiết bị ngoại vi như: các khe cắm (ISA. Ngô Diên Tập. [2].). PCI.

ĐẠI CƯƠNG VỀ KỸ THUẬT GHÉP NỐI MÁY TÍNH Mục tiêu: Hiểu được cấu trúc tổng quan của hệ vi xử lý. Vị trí. các thành phần và lập trình điều khiển cho khối ghép nối Tóm tắt chương: - Cấu trúc chung của hệ thống Yêu cầu trao đổi tin của máy vi tính đối với môi trường bên ngoài Dạng và các loại tin trao đổi giữa máy vi tính và thiết bị ngoài (TBN) Vai trò và nhiệm vụ của khối ghép nối (KGN) Cấu trúc chung của một hệ ghép nối máy tính Chương trình phục vụ trao đổi tin cho khối ghép nối 6 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Chương 1: Đại cương về kỹ thuật ghép nối máy tính CHƯƠNG 1. chức năng và cấu trúc chung của khối ghép nối trong trong một hệ thống máy tính trong đo lường điều khiển. Xác định được yêu cầu.

các thiết bị ngoài trong hệ đo – điều khiển. áp suất. chuột. … KGN với các máy tính khác trong mạng nhiều máy tính KGN với hệ vi điều khiển. ổ CD.1.điều khiển. từ đầu dò các bộ cảm biến (sensor). và các Máy tính khác trong mạng. gồm: • • • • • • KGN các thiết bị vào chuẩn như bàn phím. vi xử lý KGN với hệ đo – điều khiển Hình 1. bộ nhớ (Memory) và các cổng vào/ra (I/O). bộ phát hiện (detector). Ngoài ra. bộ chuyển đổi (tranducer). màn hình. Cấu trúc chung của hệ thống Máy vi tính hay hệ vi xử lý đều có cấu trúc chung do Von Newman đề xuất gồm khối xử lý trung tâm (CPU). Do đó các khối ghép nối (KGN) thiết bị ngoại vi được xây dựng. điện áp. … KGN các thiết bị ra chuẩn như màn hình. ví dụ như giao tiếp với người sử dụng qua bàn phím. trao đổi dữ liệu với các thiết bị ngoại vi thông dụng.1. Cấu trúc của hệ ghép nối máy tính với thiết bị ngoại vi Trong đó: VXL: Vi xử lý RAM: Random Access Memory – Bộ nhớ trong RAM ROM: Read-only Memory – Bộ nhớ trong ROM BGN: Bộ ghép nối. khối ghép nối CN: Công nghiệp ĐK: Điều khiển Đặc biệt trong hệ đo lường .1. Máy tính nhận dữ liệu trạng thái vật lý của hệ thống (nhiệt độ. dòng điện…) dưới dạng tín hiệu điện. máy in. … KGN các bộ nhớ ngoài chuẩn như ổ cứng. như hình 1. Máy tính còn cần phải trao đổi dữ liệu với môi trường bên ngoài.Chương 1: Đại cương về kỹ thuật ghép nối máy tính 1. Và Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 7 .

Trạng thái hoạt động của hệ thống được thể hiện trên giao diện. thu thập và xử lý dữ liệu. bộ chuyển đổi (transducer).3. các thiết bị nhớ ngoài. và máy tính còn nhận thông tin về trạng thái sẵn sàng hay bận của thiết bị. với nhiều thiết bị ngoài như: các thiết bị đầu cuối.1 Dạng tin Máy tính chỉ trao đổi tin dưới dạng số với các mức logic 0 và 1 8 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . các rơ le trong mạch điện.2. thống kê hoặc hiển thị kết quả trạng thái hoạt động của thiết bị dưới dạng đồ thị hay các hình vẽ trực quan..2 Yêu cầu trao đổi tin với thiết bị ngoài trong hệ đo lường – điều khiển Trong hệ đo lường – điều khiển. Ngoài ra. hiển thị kết quả đo dưới dạng bảng số liệu. 1.) hay đưa ra các thông số thiết lập chế độ hoạt động cho thiết bị.3 Yêu cầu trao đổi tin trong mạng máy tính Một máy tính trong mạng cần trao đổi tin với nhiều người sử dụng mạng. 1.2. bộ phát hiện (detector). tính toán các tín hiệu điều khiển đưa ra các cơ cấu chấp hành (các van đóng mở..) dưới dạng tín hiệu điện.2. thu thập và xử lý dữ liệu. Yêu cầu trao đổi tin của máy vi tính đối với môi trường bên ngoài 1. các rơle trong mạch điện. điện áp. hay đưa ra các thông số kỹ thuật cho thiết bị. dạng đồ thị hay hình vẽ đồ hoạ trên màn hình. Dạng và các loại tin trao đổi giữa máy vi tính và thiết bị ngoài (TBN) 1. bàn phím. bàn phím. Máy tính còn cần lưu trữ dữ liệu trên ổ cứng. màn hình. dòng điện. Máy tính sau đó trao đổi dữ liệu với thiết bị ngoại vi.. an toàn cho người sử dụng. Ngoài ra máy tính còn làm nhiệm vụ lưu trữ dữ liệu để tra cứu. các mạch động lực điều tốc động cơ điện. tính toán các tín hiệu điều khiển đưa ra các cơ cấu chấp hành (các van đóng mở. đĩa compact (CD-ROM) để tra cứu lúc cần.… Việc trao đổi thông tin với người sử dụng cần đảm bảo nhanh. từ các bộ cảm biến (sensor).3. 1. Việc trao đổi được thực hiện thông qua một giao diện trên màn hình máy tính. với nhiều máy vi tính khác.Chương 1: Đại cương về kỹ thuật ghép nối máy tính Máy tính còn nhận thông tin về trạng thái sẵn sàng hay bận của thiết bị đo.. người sử dụng tác động vào hệ thống qua giao diện này sử dụng các thiết bị nhập như chuột.2. áp suất. các mạch động lực điều tốc động cơ điện…). chính xác đồng thời phải thuận tiện. Máy tính sau đó đưa tín hiệu chấp nhận trao đổi dữ liệu với TBNV. các thiết bị lưu trữ và biểu diễn tin. máy tính nhận dữ liệu trạng thái vật lý của hệ thống (nhiệt độ.1 Yêu cầu trao đổi tin với người điều hành Người điều hành trao đổi thông tin với máy tính thông qua các thiết bị nhập/xuất cơ bản như chuột. 1.

dạng tương tự.4.4. dạng ký tự. đọc hoặc ghi một thanh ghi.3. dạng âm tần hình sin tuần hoàn 1.Chương 1: Đại cương về kỹ thuật ghép nối máy tính Thiết bị ngoài lại trao đổi tin với nhiều dạng khác nhau như dạng số. thông thường cao hơn (± 15V. đặc biệt trong công nghiệp. Tin về số liệu: Đó là các số liệu cần đưa vào Máy tính 1. ± 48V) hay mức điện công nghiệp (220V/380V hoặc lớn hơn) . v. về trạng thái sai lỗi của TBN.2 Các loại tin • Máy tính đưa ra thiết bị ngoài một trong 3 loại tin: Tin về địa chỉ: Đó là các tin của địa chỉ TBN hay chính xác hơn.Công suất đường tín hiệu Máy tính nhỏ (cỡ chục mA).4. Tin về lệnh điều khiển: Đó là các tín hiệu để điều khiển khối ghép nối hay TBN như đóng mở thiết bị. cho phép hay trả lời yêu cầu hành động..2 Nhiệm vụ • Phối hợp về mức và công suất tín hiệu . • Máy tính nhận tin vào từ TBN về một trong hai loại tin: Tin về trạng thái của TBN: Đó là tin về sự sẵn sàng hay yêu cầu trao đổi tin. là địa chỉ các thanh ghi (register) của khối ghép nối đại diện cho TBN.1 Vai trò Khối ghép nối nằm giữa Máy tính và TBN đóng vai trò biến đổi và trung chuyển tin giữa chúng Nguồn Nguồn nhận Nguồn phát Nguồn nhận MVT Nguồn nhận Nguồn phát Ghép nối đường dây MVT Nguồn nhận Ghép nối đường dây TBN TBN Nguồn phát Vị trí và vai trò của khối ghép nối 1.Mức tín hiệu của Máy tính thường là mức TTL (0V – 5V) trong khi TBN có nhiều mức khác nhau. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 9 . Vai trò và nhiệm vụ của khối ghép nối 1.v. trong khi công suất cần cho TBN thường rất lớn. Tin về số liệu: Đó là các số liệu cần đưa ra cho thiết bị ngoài.

Nếu có trạng thái sẵn sàng mới trao đổi tin. giải phóng cho máy tính làm nhiệm vụ khác (phục vụ thiết bị khác. Do đó cần phải thực hiện đồng bộ về mặt tốc độ. Trên KGN phải có bộ nhớ đệm để đệm dữ liệu giữa máy tính và thiết bị. có thể truyền theo 8. cần có KGN và cách trao đổi tin diễn ra theo trình tự nhất định. • Phối hợp về dạng dữ liệu: Trao đổi tin của Máy tính thường là song song ở dạng số. KGN nhận từ máy tính và lưu dữ liệu bộ nhớ đệm rồi truyền cho thiết bị theo nhịp chậm của thiết bị. Việc này thường có sự kết hợp giữa phần cứng và phần mềm. KGN nhận dữ liệu từ thiết bị và chờ máy tính đọc dữ liệu vào. • Phối hợp về phương thức trao đổi tin Để đảm bảo trao đổi tin một cách tin cậy giữa Máy tính và TBN.) Tương tự. rồi đưa yêu cầu trao đổi tin cho Máy tính (4) Máy tính nhận yêu cầu . Phía máy tính thường dùng các vi mạch 3 trạng thái để ghép nối tín hiệu vào/ra. Việc trao đổi tin do máy tính khởi xướng (1) Máy tính đưa lệnh dể khởi động TBN hay khởi động KGN (2) Máy tính đọc trả lời sẵn sàng trao đổi hay trạng thái sẵn sàng của TBN. Máy tính có thể khởi động TBN rồi thực hiện nhiệm vụ khác. 16 hoặc 32 bit. chờ và đọc lại trạng thái (3) Máy tính trao đổi khi đọc thấy trạng thái sẵn sàng Việc trao đổi tin do TBN khởi xướng: (1) Để giảm thời gian chờ đợi trạng thái sẵn sàng của TBN. nếu không. hạn chế tiêu thụ công suất đường tín hiệu và bảo vệ máy tính. để cô lập thiết bị với máy tính. KGN sắp xếp theo ưu tiên định sẵn. Việc trao đổi tin diễn ra khi: (2) TBN đưa yêu cầu trao đổi tin vào bộ phận xử lý ngắt của KGN...Chương 1: Đại cương về kỹ thuật ghép nối máy tính - Do đó KGN phải biến đổi điện áp và khuếch đại công suất cho phù hợp giữa máy tính và thiết bị. Đầu vào/ra sẽ ở mức trở kháng cao khi không có trao đổi dữ liệu. sửa soạn trao đổi và đưa tín hiệu xác nhận sẵn sàng trao đổi (5) KGN nhận và truyền tín hiệu xác nhận cho TBN (6) TBN trao đổi tin với KGN và KGN trao đổi tin với Máy tính (nếu đưa tin vào) (7) Máy tính trao đổi tin với TBN qua KGN (nếu đưa tin ra) 10 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . để đưa yêu cầu ngắt chương trình cho Máy tính (3) Nếu có nhiều TBN đưa yêu cầu đồng thời. của TBN đôi khi là nối tiếp hoặc chủ yếu là tín hiệu tương tự • Phối hợp về tốc độ trao đổi tin Máy tính thường hoạt động với tốc độ cao (tần số lên tới hàng GHz) trong khi thiết bị thường hoạt động chậm hơn nhiều. xử lý dữ liệu hoặc điều khiển hiển thị.

Các tín hiệu này được giải mã trong các KGN để chọn các TBN cần liên lạc với Máy tính . đảm bảo sự hoạt động nhịp nhàng. vi mạch công suất Cô lập đường tín hiệu khi không có trao đổi tin 11 .DOn DI0 . Đường tín hiệu viết để truyền lệnh đọc (RD) hay viết cho KGN. . Thường dùng vi mạch chuyển mức.An Giải mã địa chỉ lệnh Lệnh viết Các lệnh chọn chip (CS) Phối hợp đường dây thiết bị ngoài Phối hợp đường dây máy tính - Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử Đường dây máy tính (System bus) Đường dây thiết bị ngoài Yêu cầu (INTR) Xác nhận (INTA) Lệnh đọc Xử lý ngắt Yêu cầu A Yêu cầu B điều khiển A điều khiển B Thanh ghi trạng thái Lệnh viết cấm ngắt Thanh ghi điều khiển DO0 . tin cậy giữa chúng như: Hỏi .DIn Thanh ghi đệm đọc Lệnh đọc DI0 .An . Cấu trúc chung của một hệ ghép nối máy tính 1.1 Cấu trúc đường tín hiệu của KGN với Máy tính Bất cứ KGN nào cũng nối với Máy tính và TBN có các nhóm sau Nhóm đường tín hiệu địa chỉ A0 .Chương 1: Đại cương về kỹ thuật ghép nối máy tính 1.5.Đường tín hiệu lệnh điều khiển KGN hay TBN Nhóm đường tín hiệu nhịp thời gian Nhóm đường tín hiệu điện áp nguồn 1.Đường tín hiệu hội thoại tổ chức phối hợp hành động giữa Máy tính và KGN.Tập hợp các tín hiệu này tạo thành bus địa chỉ (Address bus) Nhóm đường tín hiệu điều khiển .trả lời Yêu cầu (từ KGN vào Máy tính) và chấp nhận (từ Máy tính ra KGN) : yêu cầu ngắt INTR và chấp nhận ngắt INTA .DIn Cấu trúc chung khối ghép nối Khối phối hợp đường tín hiệu Máy tính Phối hợp mức và công suất tín hiệu với bus Máy tính.2 Cấu trúc chung của một khối ghép nối Lệnh đọc A0 .5.Đường tín hiệu đọc.5.DOn Thanh ghi đệm viết Lệnh viết DO0 .

Đôi khi để đồng bộ. che chắn yêu cầu trao đổi tin của TBN. 1. address mov ax.1 Lập trình hợp ngữ (assembly) • Xuất dữ liệu từ biến data ra cổng có địa chỉ address: mov dx. tập hợp các chương trình con điều khiển thiết bị thường được cung cấp kèm với thiết bị thông qua các thư viện. data out dx. công suất và biến đổi dạng tin Khối điều khiển : Điều khiển hoạt động của khối như phát nhịp thời gian. Với chương trình phục vụ trao đổi tin. cần có các thao tác sau: Khởi động KGN Ghi che chắn và cho phép ngắt Đọc trạng thái TBN Ghi số liệu ra Đọc tin số liệu Có thể xây dựng chương trình điều khiển bằng nhiều ngôn ngữ lập trình và môi trường lập trình khác nhau như: Assembly.ocx).Chương 1: Đại cương về kỹ thuật ghép nối máy tính - - - Khối giải mã địa chỉ . ghi và chọn chip cho từng thiết bị của KGN và TBN. khối còn nhận tín hiệu nhịp đồng hồ (clock) từ bus máy tính Khối đệm thiết bị ngoài Biến đổi mức tín hiệu. Xử lý ưu tiên và đưa yêu cầu vào Máy tính Khối phát nhịp thời gian Phát nhịp thời gian cho hành động ở bên trong KGN hay cho TBN. các chương trình này thường viết dưới dạng các chương trình con. … Trong tài liệu này chủ yếu cung cấp các phương pháp lập trình bằng các ngôn ngữ bậc thấp và trong môi trường DOS.6. Pascal.6. ghi. C/C++. ax 12 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . các tín hiệu đọc.dll). chốt địa chỉ (ALE). Visual Basic. các điều khiển ActiveX (.lib). Các thanh ghi đệm Thanh ghi điều khiển chế độ Thanh ghi trạng thái hay yêu cầu trao đổi của TBN Thanh ghi đệm số liệu ghi Thanh ghi đệm số liệu đọc Khối xử lý ngắt Ghi nhận.lệnh: Nhận các tín hiệu từ bus địa chỉ. Chương trình phục vụ trao đổi tin cho khối ghép nối Mỗi khối ghép nối cần có một chương trình phục vụ trao đổi tin. Visual C. các device driver. thư viện liên kết động (. … để tổ hợp thành các tín hiệu đọc. chế độ hoạt động 1. . Các thư viện này có thể được đóng gói với nhiều dạng khác nhau như thư viện lập trình (.h.

{L p C1} Xóa bit: Port[$301 ]:=port[$301] AND $EF. thanh ghi).<Giá tr >) .6.Chương 1: Đại cương về kỹ thuật ghép nối máy tính Ví dụ: mov dx.3 Lập trình C/C++ Đọc/ghi thanh ghi: Đọc thanh ghi: <bi n> = inp (ñ a ch Ghi vào thanh ghi outp (<ñ a ch Lập xóa bit: Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 13 thanh ghi]. address là số nhị phân 16 bit. thanh ghi>. 300H mov ax. dx mov data. {ki m tra bit S2} kt = 0 → S2 = “0” kt ≠ 0 → S2 = “1” 1. F0H out dx. address in ax. thanh ghi] := <Giá tr >. ax data. Đọc/ghi thanh ghi: 1. ax • Nhập số liệu từ cổng địa chỉ address vào biến data mov dx.6. {Xóa C4} Kiểm tra bit: kt:=port[$300] AND $04.2 Lập trình Pascal Đọc thanh ghi: <bi n> := port[ñ a ch Ghi vào thanh ghi Port[ñ a ch Lập xóa bit: Lập bit: Port[$301]:=port[$301] OR $02.

Chương 1: Đại cương về kỹ thuật ghép nối máy tính Lập bit: Outp (0x301.inp (0x301) && 0xEF).inp (0x301)||0x02). {Xóa C4} Kiểm tra bit: kt:=inp (0x300) && $04.{L p C1} Xóa bit: Outp (0x301. {ki m tra bit S2} kt = 0 → S2 = “0” kt ≠ 0 → S2 = “1” 14 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

Chương 2: Giao tiếp tín hiệu tương tự CHƯƠNG 2. Tóm tắt chương: Khái niệm tín hiệu analog và hệ đo lường điều khiển số Chuyển đổi tín hiệu số sang tương tự DACs Chuyển đổi tín hiệu tương tự . GIAO TIẾP VỚI TÍN HIỆU TƯƠNG TỰ Mục tiêu: Cung cấp các kiến thức cơ bản về giao tiếp giữa máy tính với tín hiệu tương tự trong các hệ thống đo lường và điều khiển.số ADC: Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 15 . Tìm hiểu cấu trúc. nguyên lý hoạt động của các loại vi mạch biến đổi tín hiệu tương tự -số (ADC/DAC) và ứng dụng của chúng.

trong đó số liệu tương tự sẽ được truyền. Trước khi sử lý. Chuyển đổi tín hiệu số sang tương tự DACs Một bộ chuyển đổi tín hiệu số thành tương tự DAC là một dạng đặc biệt của một bộ giải mã. hay xử lý bằng phương pháp số nhờ các bộ vi xử lý số. Bảng chân lý của nó có thể có dạng như sau: Hình 2. Tuy nhiên hầu hết các tín hiệu trong thế giới thực lại là tín hiệu ở dạng tương tự (analog).2: Bảng giá trị chân lý của một DAC 16 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . lưu trữ . Nó giải mã tín hiệu số đầu vào và chuyển thành tín hiệu tương tự ở đầu ra. Kết quả của phép xử lý sẽ được chuyển ngược lại thành dạng tương tự nhờ bộ chuyển đổi tín hiệu số thành tương tự (DAC). tín hiệu tương tự phải được chuyển thành tín hiệu số nhờ bộ chuyển đổi tín hiệu tương tự sang số (ADC).1: Mô hình hệ thống xử lý tín hiệu tương tự bằng phương pháp số Hệ thống xử lý tín hiệu tương tự bằng phương pháp số nói chung là một hệ lai. Hình 2. 2.Chương 2: Giao tiếp tín hiệu tương tự Khái niệm tín hiệu tương tự và hệ đo lường điều khiển số Việc sử dụng phương pháp số trong xử lý thông tin và điều khiển đang ngày càng hiệu quả và thuận lợi.1. Do đó bất kỳ hệ thống nào muốn xử lý các tín hiệu thực tế bằng phương pháp số thì nó phải có khả năng chuyển đổi các thông tin tương tự thành dạng số và ngược lại. Thao tác đó thường được thực hiện bằng các thiết bị ADC (Analog to Digital Converter) và DAC (Digital to Analog Converter).

2V min. Mỗi giá trị tương ứng với một mã số đầu vào. Nếu DAC có n bit thì giá trị điện Độ phân giải áp đầu ra có thể phân thành n trạng thái có giá trị cách đều Bit (revolution) nhau. -4. -5V typ. +/. (Relative Accuracy) Là độ chênh lệch giữa giá trị tương tự lớn nhất và nhỏ nhất mà Giải đầu ra tương DAC cụ thể đó cung cấp tự hay giải toàn V thang VD: -3V to +3V..8 V max Là dải điện áp có thể dùng để làm nguồn cung cấp dương cho DAC VD: +4. +5.2V min..Chương 2: Giao tiếp tín hiệu tương tự 2.0V typ.75V min. %Vref nhau Differential ..75V min.2V max. +13.1 Các tham số chính của một DAC Tham số Đơn vị Giải thích Đây là số bit mà DAC xử lý. hay dự thay đổi giữa hai giá trị số kề (Non-Linearity.. Integral LSB số điểm không và sai số toàn thang INL) hay độ chính xác tương đối VD: +/-1 LSB typ..1 LSB..0..1. Số bit n càng cao thì DAC có độ phân giải càng lớn Giải điện áp tham chiếu (Vref) FSR V Chỉ ra mức điện áp lớn nhất và nhỏ nhất có thể được sử dụng như điện áp tham chiếu từ bên ngoài Là độ chênh lệch giữa độ thay đổi giá trị điệp áp ra thực tế với Độ phi tuyến vi LSB độ thay đổi điện áp ra lý tưởng trong trường hợp đầu vào số phân hay thay đổi một bit LSB ..DNL) VD: +/..001% FSR Độ phi tuyến tích Là sai số lớn nhất giữa đầu ra với đường thẳng nối giữa điểm 0 phân (Nonvà điểm toàn thang (giá trị lớn nhất của thang đo) ngoại trừ sai Linearity.75V max.75V max. V V V V V Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 17 . +/. Là điện áp lớn nhất của tín hiệu số đầu vào DAC mà được nhận là mức logic “0" VD: : 0. -5V typ.4 LSB's max. +5. -4. +13. Vih (Logic "1") Logic Input Voltage.2V max. Là dải điện áp có thể sử dụng cho mức logic dương của DAC: VD: +4. Bipolar Mode Mức điện áp logic cao đầu vào.4 V min.0V typ. Vil (Logic "0") Điện áp nguồn dương (+Vs) Điện áp nguồn âm Analog Negative Power Supply (-Vs) Điện áp mức logic dương (+VL) Điện áp mức logic âm (-VL) V Là điện áp nhỏ nhất của tín hiệu số đầu vào DAC đảm bảo được nhận là mức logic “1” VD: 2. Là dải điện áp có thể sử dụng làm nguồn cung cấp âm cho DAC VD: -13. Là dải điện áp có thể sử dụng cho mức logic dương của DAC VD: -13.

3: DAC chia điện trở 2. Tín hiệu số đầu vào xác định tín hiệu điện áp nào được nối với bộ khuếch đại thông qua các các bộ chuyển mạch. Ví dụ như với DAC 12 bit thì phải cần tới 4095 điện trở và 4096 công tắc.3 DAC trọng số nhị phân Khi độ phân giải của DAC đạt tới 6 hay 7 bit. Chẳng hạn như một DAC 9 bit chỉ cần 1 điện trở và 1 công tắc thêm vào so với DAC 8 bit Hình 2. nhưng nó trở nên kém hiệu quả với các bộ DAC có độ phân giải cao.1DAC trọng số nhị phân 18 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Mặc dù phương pháp chia điện trở có thể dễ hiểu. kiến trúc thang điện trở thường cho một phương pháp hiệu quả hơn Phương pháp này cho ta lợi ích chính là chúng tiết kiệm diện tích vi mạch.2 DAC chia điện trở DAC theo phương pháp chia điện trở (Resistive Divider DAC) có lẽ là kiểu DAC đơn giản nhất. DAC kiểu này sử dụng một chuỗi điện trở mắc nối tiếp với nhau để tạo ra một tập các giá trị điện áp cách đều nhau giữa +Vref và –Vref.1. Mỗi bit thêm vào cho độ phân giải của DAC đòi hỏi tăng gấp đôi số điện trở và công tắc.Chương 2: Giao tiếp tín hiệu tương tự 2.1. Hình 2.

Do đó một bộ DAC 16 bit cho các ứng dụng xử lý âm thanh có băng thông 20kHz cần có một bộ tạo xung clock có tần số là 65536 x 100 x 20000 = 131 GHz. tần số xung đòi hỏi phải gấp nhiều lần ( thông thường là gấp 100 lần) tần số cao nhất của tín hiệu tương tự đầu ra.1. Điều đó yêu cầu phải có một xung clock (master clock) với tần số rất cao để điều khiển độ rộng xung Ví dụ với DAC 16 bit.Chương 2: Giao tiếp tín hiệu tương tự 2. bởi vì để có độ phân giải cao. sử dụng rất ít mạch tương tự PWM điều chỉnh điện áp đầu ra sử dụng chuỗi xung tần số cao với độ rộng xung có thể thay đổi được để thay đổi công suất đầu ra Độ dài xung càng lớn thì điện áp đầu ra càng gần với điện áp tối đa (VOH) của DAC. và ngược lại độ dài xung ngắn nhất tương ứng với điện áp tối thiểu (VOL) Tín hiệu đầu ra sẽ được đưa qua một bộ loc thông thấp để tạo tín hiệu analog Hình 2.2: DAC điều biến độ rộng xung DAC dạng PWM cũng khó thu được DAC với độ phân giải cao. DAC phải điều chỉnh chuỗi xung theo các khoảng thời gian rất nhỏ. Rõ ràng rằng tần số này là không thể đạt được với công nghệ hiện nay Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 19 .4 DAC điều biến độ rộng xung Phương pháp DAC điều biến độ rộng xung (Pulse width modulation – PWM) là phương pháp rất đơn giản và hầu như hoàn toàn sử dụng phương pháp số. Vì xung tín hiệu còn phải đưa qua bộ lọc thông thấp để tạo ra tín hiệu tương tự. cần có độ phân giải theo thời gian bằng 1/65536 lần chu kỳ chuỗi xung.

Giải pháp thường dùng để đưa tín hiệu tương tự vào để xử lý bằng các bộ xử lý số là dùng bộ chuyển đổi tín hiệu tương tự sang số (analog-to-digital converter . thì độ phân giải của nó là 2n . Sai số lớn nhất của một mã số với đường thẳng này được gọi là độ sai số tích phân của ADC Example of an Actual Spec: +/. Số bit càng cao thì độ phân giải càng lớn và càng phân biệt được nhiều trạng thái Với mỗi ADC. Example of an Actual Spec: 10 Bits min Hàm truyền của một ADC là một đường thẳng nối từ điểm “0” tới điểm toàn thang.2. Integral (INL) Dải điện áp tương tự đầu vào hay dải toàn thang (Analog Input Range or Full-Scale Range) 20 Đơn vị Bits Bits (with no missing codes) Giải thích Nếu một ADC có n bit. có nghĩa là số trạng thái hay số mã có thể sử dụng để chia đầu vào analog. Độ chênh lệch giữa các giá trị lý tưởng được gọi là độ phi tuyến vi phân.Chương 2: Giao tiếp tín hiệu tương tự 2.số ADC: Tín hiệu trong thế giới thực thường ở dạng tương tự (analog). Nó có một đầu ra biểu diễn một từ mã dạng số 8 bit. Trong khi đó. cần phải chuyển đổi tín hiệu ở dạng tương tự thành tín hiệu ở dạng số thông qua bộ biến đổi AD. 2. Đầu vào cho bộ này là hai tín hiệu: một tín hiệu tham chiếu (reference) và tín hiệu cần chuyển đổi. Từ mã này vi xử lý có thể đọc và hiểu được Có nhiều phương pháp biến đổi AD khác nhau. Differential (DNL) Sai số tuyến tính tích phân Non-Linearity. bộ điều khiển ngày nay thường là các µP.2 LSB's max Là độ chênh lệch giữa giá trị tương tự lớn nhất và nhỏ nhất ứng với ADC cụ thể VD:0V to +10 V. Vì vậy.ADC). tín hiệu số biến đổi theo từng bit LSB. µC xử lý dữ liệu ở dạng số (digital). ở đây chỉ giới thiệu một số phương pháp điển hình. nên mạch điều khiển thu thập dữ liệu từ đối tượng điều khiển về (thông qua các cảm biến) cũng ở dạng tương tự. Bipolar Mode LSB V Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .2. Chuyển đổi tín hiệu tương tự . Unipolar Mode. Hình dưới là một ví dụ cho một bộ ADC đơn giản. -5V to +5V.1 Các tham số chính của một ADC Tham số Độ phân giải Resolution Sai số tuyến tính vi phân Non-Linearity.

counter ngừng đếm EOC tC Kết quả digital Hình 2.Chương 2: Giao tiếp tín hiệu tương tự Thời gian chuyển đổi µsec (Conversion Time) Nguồn nuôi dương (+ Power Supply V+) Nguồn nuôi âm . hay nối đúng hơn là dạng bậc thang. Bộ biến đổi DA Counter Clock . Hình trên cho thấy sơ đồ mạch của bộ biến đổi AD theo hàm dốc.0V max. +7.Đầu vào của bộ biến đổi DA đều là các bit 0 nên áp ra vAX = 0v. Bộ biến đổi này được gọi là biến đổi theo hàm dốc vì dạng sóng vAX có dạng của hàm dốc..Khi vA > vAX thì đầu ra của OPAMP (EOC) ở mức cao.3: Biến đổi ADC theo hàm dốc Đây là bộ biến đổi đơn giản nhất theo mô hình bộ biến đổi tổng quát trên.. Mức cao của xung Start cũng ngăn không cho xung clock đến counter. -15V typ.5V min.. . Dải điện áp có thể sử dụng làm nguồn nuôi dương cho ADC VD: +4.. +5. Giả sử vA dương. Đầu ra của OPAMP được dùng như tín hiệu tích cực mức thấp của tín hiệu EOC.. V 2..Power Supply (V-) V Thời gian cần thiết để ADC hoàn thành một lần chuyển đổi VD: 15 µsec min. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 21 Start vAX . và một cổng AND cho điều khiển. . -16.0V typ.Xung Start được đưa vào để reset counter về 0. bao gồm một counter.2 Bộ biến đổi AD theo hàm dốc đầu vào analog vA + OPAMP - Clock EOC Start So sánh vAX Reset vA Khi chuyển đổi hoàn tất. 25 µsec typ. một OPAMP so sánh.5V max. Dải điện áp có thể sử dụng làm nguồn nuôi âm cho ADC VD: -12.2.0V min. quá trình biến đổi xảy ra theo các bước : . Đôi khi nó còn được gọi là bộ biến đổi AD loại counter. 40 µsec max.. một bộ biến đổi DA.. Nó dùng một counter làm thanh ghi và cứ mỗi xung clock thì gia tăng giá trị nhị phân cho đến khi vAX ≥ vA.

cổng AND được kích hoạt và xung clock được đưa vào counter. Nó có cấu tạo phức tạp hơn bộ biến đổi AD theo hàm dốc nhưng tốc độ biến đổi nhanh hơn rất nhiều. Từ đó ta thấy rằng bộ biến đổi loại này có tốc độ rất chậm (độ phân giải càng cao thì càng chậm) và có thời gian biến đổi phụ thuộc vào độ lớn của điện áp cần biến đổi. EOC xuống thấp và ngăn không cho xung clock đến counter.. 2.. Bộ biến đổi DA vAX Đến bit thấp kế Sai Xóa tất cả các bit So sánh Start EOC Bắt đầu ở MSB Set bit = 1 VAX > VA ? Sai Xong hết bit ? Đúng Quá trình biến đổi kết thúc và giá trị biến đổi nằm trong thanh ghi END Đúng Clear bit = 0 Sơ đồ mạch và giải thuật như sau : Sơ đồ mạch tương tự như bộ biến đổi AD theo hàm dốc nhưng không dùng counter cung cấp giá trị cho bộ biến đổi DA mà dùng một thanh ghi.. Hơn nữa.3 A/D xấp xỉ tiệm cận Đây là bộ biến được dùng rộng rãi nhất trong các bộ biến đổi AD. Thanh ghi MSB LSB . thời gian biến đổi là một số cố định không phụ thuộc giá trị điện áp đầu vào. vAX. 22 Chuyển đổi n bit cần n bước Cần có tín hiệu Start và End Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Từ đó kết thúc quá trình biến đổi.2. Đầu vào analog vA + OPAMP START Clock Đơn vị điều khiển . Counter vẫn giữ giá trị vừa biến đổi xong cho đến khi có một xung Start cho quá trình biến đổi mới. Counter đếm theo xung clock và vì vậy đầu ra của bộ biến đổi DA.Chương 2: Giao tiếp tín hiệu tương tự - - Khi Start xuống mức thấp. Khi đó.. gia tăng một nấc trong một xung clock Quá trình đếm của counter cứ tiếp tục cho đến khi vAX bằng hoặc vượt qua vA một lượng vT (khoảng từ 10 đến 100µv). Đơn vị điều khiển sửa đổi từng bit của thanh ghi này cho đến khi có giá trị analog xấp xỉ áp vào theo một độ phân giải cho trước.

Start Conversion Voltage accross the capacitor Start Conversion S R Q Enable IN C o u nt N-bit Output + Oscillator Cl k Hình 2. Đầu tiên. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 23 . tụ được xả tuyến tính với một dòng hằng rút ra từ điện áp tham chiếu chính xác vref.2.4: ADC tích phân theo sườn dốc Ngoài giá thành rẻ thì bộ biến đổi loại này còn có ưu điểm chống nhiễu và sự trôi nhiệt. Time Counting time Cũng vào lúc này. Nhưng đối với các quá trình biến đổi chậm (có quán tính lớn) như lò nhiệt thì rất đáng để xem xét đến. ở cuối thời điểm nạp. counter sẽ chứa một giá trị tỷ lệ với điện áp trên tụ trước khi xả. Tuy nhiên thời gian biến đổi chậm nên ít dùng trong các ứng dụng thu thập dữ liệu đòi hỏi thời gian đáp ứng nhanh. tụ sẽ có 0 0 2 4 6 8 10 12 14 16 một điện áp tỷ lệ với điện áp vào. Vì 4 2 vậy. Trong suốt khoảng thời gian xả này.Chương 2: Giao tiếp tín hiệu tương tự - Thời gian chuyển đổi thông thường: 1 to 50 ms Độ phân giải thông thường 8 to 12 bits 2. Nguyên tắc chính là dựa vào 20 quá trình nạp và xả tuyến tính của 18 16 tụ với dòng hằng. tụ 14 Vin được nạp trong một khoảng thời 12 10 gian xác định từ dòng điện không 8 6 đổi ứng với điện áp vào vA. một tần số tham chiếu được dẫn đến một counter và bắt đầu đếm.4 Tích phân sườn dốc Bộ biến đổi loại này là một trong những bộ có thời gian biến đổi chậm nhất (thường là từ 10 đến 100ms) nhưng có lợi điểm là giá cả tương đối rẻ không dùng các thành phần chính xác như bộ biến đổi AD hoặc bộ biến đổi áp sang tần số. Khi điện áp trên tụ giảm về 0 thì quá trình xả kết thúc. Do khoảng thời gian xả tỷ lệ với điện áp trên tụ lúc trước khi xả nên ở cuối thời điểm xả. tức là tỷ lệ với điện áp vào vA.

2. cầu chia điện áp thiết lập nên các điện áp so sánh (7 mức tương ứng 1V. 2V.5: ADC flash Bộ biến đổi loại này có tốc độ nhanh nhất và cũng cần nhiều linh kiện cấu thành nhất. 8-bit cần 255 OPAMP. Đầu ra của các OPAMP được nối đến một priority encoder và đầu ra của nó chính là giá trị digital xấp xỉ của điện áp đầu vào. thường là 2 đến 8-bit. Ví dụ một flash AD 3-bit : Mạch trên có độ phân giải là 1V. và 10-bit cần 1023 OPAMP. Có thể làm một phép so sánh: flash AD 6-bit cần 63 OPAMP.5 Flash ADC Biên độ tín hiệu được so sánh với một tập 2n giá trị tham khảo (refference) Đo lường trực tiếp với 2n-1 bộ so sánh (comparator) Hiệu suất thông thường: 4 tới 10 -12 bits 15 . 24 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . …) với điện áp cần biến đổi. Các bộ biến đổi có nhiều bit hơn dễ dàng suy ra theo mạch trên.Chương 2: Giao tiếp tín hiệu tương tự 2.300 MHz Tiêu thụ năng lượng lớn Ứng dụng trong số hoá dạng sóng tín hiệu - Hình 2. Vì lẽ đó mà bộ biến đổi AD loại này bị giới hạn bởi số bit.

Sơ đồ chân:  Đặc điểm cấu tạo: Thang điện trở 256 R với ngõ chuyển mạch analog. U1 26 27 28 1 2 3 4 5 12 16 10 9 7 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 REF+ REFCLK OE EOC ADC0809 START ALE D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 17 14 15 8 18 19 20 21 25 24 23 6 22 Tại mỗi thời điểm chỉ có thể mẫu 1 trong 8 kênh analog vào qua mạch phân kênh 3 sang 8. Dưới đây là loại IC rất hữu dụng và được sử dụng nhiều trong thực tế. Tất cả những vi mạch trên được tích trên một chip CMOS đơn khối và không đòi hỏi các linh kiện phụ khác mắc thêm bên ngoài.Chương 2: Giao tiếp tín hiệu tương tự 2. Thanh ghi xấp xỉ liên tiếp.6 Một số vi mạch ADC thông dụng Hiện nay.1 Bộ biến đổi ADC 0809 Đây là loại bi mạch ADC chế tạo dựa trên kỹ thuật ADC xấp xỉ liên tiếp. trên thị trường có rất nhiều loại IC chuyên dụng cho bộ biến đổi ADC. Bộ đệm ngõ ra.  Sơ đồ khối: START 8 BIT AD Control a timing 8 analog input • • • • • • • • 8 chanel multiplexing analog switch CLOCK • • EOC • 8 digital output SAR Tri-state output Latch buffer • • • • • • • • Switches tree 3 bit Address • • • Address Latch And decoder Address Latch enable 256 Register Ladder • REF+ • • REF• OE • Vcc • GROUND Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 25 . Bộ giải mã. Bộ chốt địa chỉ ngõ vào. • 3. Bộ multiplexing.2.

ALE chốt địa chỉ kênh được chọn và sẽ đưa tín hiệu vào bộ so sánh. Nguồn cung cấp 5v DC. Việc chọn ngõ vào được xác định bởi 3 đường địa chỉ A.  Nguyên tắc hoạt động : Tại một thời điểm. tín hiệu analog được chuyển thành 8 bit dữ liệu số ở ngõ ra. Sau khoảng thời gian 100µs. xung START bắt đầu thực hiện việc chuyển đổi.Chương 2: Giao tiếp tín hiệu tương tự  Đặc điểm kỹ thuật của ADC 0809: ADC0809 có tốc độ biến đổi nhanh. Thời gian chuyển đổi là 100µs. Để đưa dữ liệu từ vùng đệm lên bus. Điện áp ngõ vào từ 0 đến 5V. Lúc này xung EOC bật lên 1 và dữ liệu được đưa vào vùng đệm. Tần số xung CLOCK từ 10 ÷ 1280KHz. bus dữ liệu ở trạng tổng trở cao. 1 trong 8 ngõ vào analog được chuyển đổi.state 26 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Giản đồ thời gian: CLOCK START ALE AD ANALOG INPUT OE EOC DATA Tri . Qua trình chuyển đổi được bắt đầu khi 3 đường địa chỉ được chọn và khi xung START và xung ALE bật lên một. B. Có 8 kênh analog ngõ vào. điện áp chuẩn 5v DC. Nhờ bộ đệm 3 trạng thái nên dễ dàng kết nối với data bus của CPU. quá trình chuyển đổi kết thúc. C thông qua bộ phân kênh 3 sang 8. sai số lượng hóa thấp và công tiêu tán thấp. EOC ở mức 0. phải đặt xung OE lên 1. Khi đó.

. .UART ở chế độ bắt tay để giao tiếp nối tiếp.Chương 2: Giao tiếp tín hiệu tương tự  Các số liệu kỹ thuật: Độ phân giải : Dãy động điện trở vào : Trong điều kiện : K = 5/256 = 0. hai chân cho phép xuất byte cao. Khi ở mức thấp. trao đổi dữ liệu nối tiếp.5V thì mức điện áp logic 1 là V ≥ Vcc – 0. POL : bit chỉ cực tính (polarity).Ghép theo chuẩn công nghiệp UART : được ứng dụng trong truyền nhận dữ liệu từ xa. . biến đổi theo phương pháp tích phân hai độ dốc. Các đặc điểm chủ yếu như sau : . • ADC ICL7109: ICL7109CPL là bộ biến đổi AD 12-bit dạng đơn phiến. . .45v Tốc độ chuyển đổi : 100µs Công suất tiêu tán : 15 mW. byte thấp. . độ trôi nhiệt nhỏ hơn 1µV/0C. Được ứng dụng trong nhiều trong những hệ thống thu thập dữ liệu do giá thành thấp. .5 KΩ. µC theo hai cách : . cộng với các bit chỉ cực tính.Có sẳn nguồn tham chiếu chuẩn.Pha zero-integrator giúp khôi phục quá tải nhanh. nếu ở mức cao. Khi ở mức cao. công suất tiêu tán và dòng phân cực nhỏ. bit báo quá thang đo có thể giao tiếp với µP.75V ≤ Vcc ≤ 5.Cải tiến khả năng lái bus.Khối đơn.Loại bỏ vòng trễ và nhiễu. Mức logic của tín hiệu ra :Trong điều kiện 4. bộ biến đổi đang ở trong pha integrate hoặc pha de-integrate cho đến khi dữ liệu được chốt. chỉ ra rằng tín hiệu vào là áp dương. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 27 .196V Vcc = Vref (+) = 5V Vref (-) = GND CLK = 640 KHz thì tổng trở vào từ 1 ÷ 2. ICL7109CPL có độ chính xác cao. công nghệ CMOS có công suất thấp Mô tả chức năng của các chân: GND : Nối đất. STATUS : ngõ ra.Ghép trực tiếp vào bus : thông qua chân chọn chip.30 lần biến đổi trong 1 giây. ngõ ra được biến đổi và đưa đến một UART trong chế độ bắt tay. bộ biến đổi đang ở pha auto-zero hoặc de-integrate sau khi dữ liệu được chốt. .Ngõ ra 3 trạng thái.4 và mức điện áp logic 0 là V ≤0.

cùng tần số với tín hiệu trên chân BUF OSC OUT và tần số xung clock tính theo công thức : f = 0. OSC IN : ngõ vào của bộ dao động. là các bit dữ liệu tương ứng. khi ở mức tích cực sẽ cho phép xuất byte thấp. nếu ở mức cao. OSC OUT : ngõ ra của bộ dao động. ICL 7109 có một bộ dao động với 3 ngõ. nhưng không nên nhỏ hơn 50pF. xung clock sẽ cùng pha. BUF OSC OUT : ngõ ra của bộ dao động được đệm. ở chế độ bắt tay (MODE = 1) thì HBEN là ngõ ra. MODE : ngõ vào. tiện dụng làm nguồn xung clock cho các IC khác. khi tích cực sẽ cho phép xuất ra 12 bit dữ liệu B1÷B12. là ngõ vào. ở chế độ bắt tay (MODE = 1) thì LBEN là ngõ ra. CE/LOAD : ở chế độ trực tiếp. khi ở mức tích cực sẽ cho phép xuất byte cao.Chương 2: Giao tiếp tín hiệu tương tự OR : bit chỉ quá thang (over-range). Nếu chân OSC SEL để hở (có pullup kéo lên) hay nối với mức cao thì xung clock sẽ lấy từ bộ dao động RC bên ngoài. TEST = 0 thì tất cả bit dữ liệu ra đều ở mức cao. Tần số xung clock bên trong khi đó sẽ bằng tần số của tín hiệu trên chân BUF OSC OUT chia cho 58. Nếu chân OSC SEL được kéo xuống mức thấp thì xung clock lấy từ dao động thạch anh bên ngoài có tần số từ 1MHz đến 5MHz. tụ chọn sao cho khoảng thời gian của 2048 chu kỳ xung clock gần với một bội số tích phân của 50Hz để loại trừ nhiễu 50Hz. khi ở mức thấp : ADC hoạt động ở chế độ trực tiếp. OSC SEL : ngõ vào. nó có thể hoạt động với bộ dao động RC hay dao động thạch anh. là ngõ ra strobe. 28 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Ơ chế độ bắt tay. Khi đó. khi TEST = 1 thì ADC hoạt động bình thường. còn khi ở mức cao : ADC hoạt động ở chế độ bắt tay. LBEN : ở chế độ trực tiếp (MODE = 0 và CE/LOAD = 0) thì LBEN là ngõ vào. HBEN : ở chế độ trực tiếp (MODE = 0 và CE/LOAD = 0) thì HBEN là ngõ vào. có chức năng là cờ byte thấp. dùng để chọn bộ dao động. POL. cũng có thể hoạt động với nguồn xung clock bên ngoài. HBEN tích cực. chỉ ra rằng ngõ vào đã vượt quá giới hạn cho phép. OR nếu LBEN. có chức năng là cờ byte cao.45 RC Điện trở nên chọn là 100K. Trong hoạt động bình thường : nối TEST lên +5v. ÷ TEST : ngõ vào. B1÷B12 : ngõ ra ba trạng thái. còn khi không kết nối thì các chốt ngõ ra bộ đệm được cho phép.

Thêm vào đó. trong đó riêng pha de-integrate đã lấy mất 4096 chu kỳ xung clock và độc lập với điện áp vào. AZ : được nối đến tụ CAZ. thường nối đến -5v. một quá trình biến đổi sẽ được bắt đầu và chân STATUS sẽ lên cao trong vòng 7 chu kỳ xung clock sau khi RUN/HOLD lên cao. REF CAP+ : cực dương của tụ tham chiếu. V+ : Vcc (5v). Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 29 . IN LO : cực âm của điện áp vào vi sai. Nếu ICL 7109 đang ở vào thời điểm kết thúc pha autozero. cần có một xung lên cao ít nhất 200ns tác động vào chân RUN/HOLD để bắt đầu một quá trình biến đổi. V.: cực âm của tụ tham chiếu. Tuy nhiên cần chú ý rằng nếu có bất kỳ xung nào xuất hiện trong quá trình biến đổi hay trong vòng 2048 chu kỳ xung clock sau khi chân STATUS xuống thấp sẽ bị bỏ qua.Chương 2: Giao tiếp tín hiệu tương tự RUN/HOLD : sau khi pha autozero hoàn tất trong khoản thời gian nhỏ nhất. INT : được nối đến tụ CINT.8v. thường nhỏ hơn V+ là 2.: nguồn âm cho ICL 7109. để bắt đầu và kết thúc một quá trình biến đổi. Nối lên +5v nếu không sử dụng. REF IN+ : ngõ vào dương của điện áp tham chiếu. REF CAP. SEND : ngõ vào. RUN/HOLD xuống thấp theo thì ICL 7109 sẽ nhảy tức thời đến pha autozero hơn là phải mất toàn bộ 4096 chu kỳ xung clock cho pha de-integrate. Bởi vì một quá trình biến đổi bình thường sẽ tốn mất 8192 chu kỳ xung clock. Nhưng nếu sau khi STATUS xuống thấp. COMMON : chân chung của tín hiệu tương tự. REF IN. REF OUT : ngõ ra điện áp tham chiếu. BUF : ngõ ra bộ khuếch đại đệm. báo hiệu rằng thiết bị bên ngoài đã chấp nhận dữ liệu khi ADC hoạt động ở chế độ bắt tay. chân này cũng có thể được sử dụng để cực tiểu thời gian biến đổi. IN HI : cực dương của điện áp vào vi sai.: ngõ vào âm của điện áp tham chiếu.

Nguyên lý. ưu nhược điểm và ứng dụng của mỗi loại thủ tục trao đổi dữ liệu. Lập trình khởi tạo và điều khiển cho mỗi thủ tục. THỦ TỤC TRAO ĐỔI DỮ LIỆU CỦA MÁY TÍNH Mục tiêu: Trình bày các kiến thức cơ bản về các thủ tục trao đổi dữ liệu sử dụng giữa máy tính và các thiết bị ngoại vi. Tóm tắt chương: Các chế độ trao đổi dữ liệu của máy vi tính Trao đổi tin ngắt vi xử lý Trao đổi tin trực tiếp khối nhớ 30 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Chương 3: Thủ tục trao đổi tin của máy vi tính CHƯƠNG 3.

ghi được trao đổi giữa khối nhớ M va TBN thông qua các thanh ghi đệm của KGN. Phương pháp trao đổi tin này chỉ được thực hiện khi: . Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử Trao đổi tin Chương trình TBN đã sẵn sàng ? Đ Trao đổi tin 31 .Ưu điểm: Nhanh. Máy tính không cần quan tâm tới TBN có sẵn sàng trao đổi tin hay không mà đưa luôn các lệnh trao đổi tin ( đọc vào.Nhược điểm: Thiếu tin cậy. Lúc này. . cụ thể là: Phát địa chỉ cho khối nhớ hoặc TBN.Trao đổi theo ngắt chương trình 1. Các lệnh chuyển (MOV) giữa thanh ghi A và thanh ghi đệm số liệu của KGN có địa chỉ nhớ xác định.1. bị mất tin vì có thể có sự cố làm TBN chưa sẵn sàng trao đổi. Các số liệu đọc. • Trao đổi tin trực tiếp bộ nhớ Sau khi VXL được khởi động.Trao đổi không đồng bộ hay hỏi trạng thái (Polling) . không tốn thời gian chờ đợi . Phát lệnh đọc (/RD) hay ghi (/WR) số liệu. 2.Tốc độ trao đổi tin của Máy tính và S TBN luôn phù hợp nhau hoặc TBN trao đổi tin nhanh. có thể trao đổi tin theo một trong ba phương pháp sau: . Chương trình Thủ tục trao đổi tin trong chế độ chương trình Ở chế độ trao đổi tin theo chương trình. ghi ra hay truyền số liệu ).Trao đổi đồng bộ .TBN luôn sẵn sàng trao đổi tin. Trao đổi đồng bộ Sau khi khởi động TBN.Máy tính đưa tin điều khiển TBN.Chương 3: Thủ tục trao đổi tin của máy vi tính 3. sự trao đổi tin hoàn toàn do KGN điều khiển thay cho VXL và các cổng vào ra của VXL ở trạng thái điện trở cao (VXL bị cô lập). Các chế độ trao đổi dữ liệu của máy tính Chế độ trao đổi tin của Máy tính với thiết bị ngoài • Trao đổi tin theo chế độ chương trình Sự trao đổi tin được VXL điều khiển theo một trong hai loại lệnh sau Các lệnh vào (IN) hay ra (OUT). Đánh giá: . Trao đổi không đồng bộ hay hỏi trạng thái (Polling) Trình tự trao đổi diễn ra như sau: . KGN điều khiển mọi hoạt động của bộ nhớ M và KGN.

1 Các loại ngắt của máy PC • Các loại ngắt Người ta chia ngắt thành hai loại: ngắt cứng và ngắt mềm Ngắt cứng: còn gọi là ngắt ngoài vì do nguyên nhân bên ngoài. VXL dừng chương trình sau lệnh đang thực hiện. Phương pháp trao đổi này thực hiện khi tốc độ trao đổi tin của TBN chậm so với Máy tính 3. Ngắt NMI ( Non maskable Interrupt) . Ngắt reset : Chương trình Chương trình con phục vụ ngắt Ngắt 32 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Muốn cho phép hay không cho phép ngắt này xảy ra. xoá bởi lệnh CLI (Clear interupt) o Thường được nối với lối ra yêu cầu ngắt của vi mạch xử lý ưu tiên ngắt (8214. . Máy tính lại đọc và kiểm tra trạng thái sẵn sàng. 3. thanh ghi địa chỉ lệnh (IP) và thanh ghi chỉ thị flag được lưu giữ.Chương 3: Thủ tục trao đổi tin của máy vi tính - Máy tính chờ và kiểm tra trạng thái sẵn sàng trao đổi tin của TBN bằng cách: o Đọc tin về trạng thái sẵn sàng của TBN. 2 bit IF (Interrupt Flag) va TF (Trap Flag) bị xoá về 0 để cấm ngắt ngoài tiếp theo và không có bẫy. VXL có các lối vào dành cho ngắt ngoài. 8259). Trao đổi tin ngắt vi xử lý Phương pháp trao đổi tin này khắc phục nhược điểm của các phương pháp trên. Trình tự như sau: (1) Máy tính đang thực hiện chuỗi lệnh của một chương trình nào đó. Lập bởi lệnh STI (Set Interrupt). chương trình VXL đang thực hiện sẽ bị dừng. Khi có tín hiệu vào lối vào này. (5) Chương trình chính lại tiếp tục thực hiện ở chỗ bị ngắt.2. Nếu chưa.Máy tính trao đổi tin với TBN. (2) TBN có yêu cầu trao đổi tin.2.Ngắt không che được : Khi có ngắt này. o Kiểm tra trạng thái sẵn sàng. Ngắt INTR: o Ngắt này được cho phép hay cấm ngắt bằng cách lập hay xoá bit IF của thanh ghi flag. chúng ta dùng một triger (flip – flop) để mắc lối vào ngắt trước khi đưa vào lối vào ngắt NMI. Máy tính chuyển sang chương trình con phục vụ ngắt tức là chương trình con trao đổi tin cho TBN đã yêu cầu. sẽ gửi tín hiệu yêu cầu trao đổi tin ( yêu cầu ngắt INTR) (3) Máy tính (cụ thể là VXL ) đưa tín hiệu chấp nhận (xác nhận ngắt INTA) (4) Chương trình chính bị ngắt.

. Ví dụ như vector ngắt đầu tiên giữ địa chỉ của ngoại lệ Divide by Zero (lỗi chia cho 0). chỉ có 15 ngắt dành cho phần cứng và 1 ngắt không che được. đa phần trong số chúng là chỉ để phục vụ như ngắt phần mềm. vv) như INT 10.07 08 09 0A 0B 0C 0D 0E 0F 10 . Trong các máy PC.Chương 3: Thủ tục trao đổi tin của máy vi tính Ngắt mềm: (hay ngắt bên trong do lệnh của chương trình) do VXL gặp các lệnh gây ra ngắt hoặc tình huống đặc biệt khi thực hiện lệnh (ngắt logic) và ngắt của hệ điều hành. máy in. Khi xuất hiện lỗi này VXL nhảy sang địa chỉ 0000:0000 và thực hiện chương trình có địa chỉ lưu ở đây.Ngắt của hệ điều hành: đó là các ngắt do hệ điều hành quy định để phục vụ trao đổi tin của các TBN (bàn phím. Phần còn lại được sử dụng cho các ngắt phần mềm và các bộ xử lý ngoại lệ. . . HLT.) Ngắt của Máy tính – PC (8086. Real Time Clock 33 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . INT IRQ Common Uses (Hex) 00 . Bộ xử lý ngoại lệ là các chương trình tương tự như ISR nhưng xử lý các ngắt khi xuất hiện lỗi. 80286 ) Các ngắt không hoàn toàn được liên kết với các thiết bị ngoài.v. INT 21.Ngắt logic hay các ngoại trừ: xảy ra khi gặp các tình huống đặc biệt sau: o Chia một số cho 0 o Tràn nội dung thanh ghi hay bộ nhớ o Thực hiện từng bước (vector 1) o Điểm dừng ( Break point) chương trình do người dung chương trình sử dụng định trước (Vectơ 3) . INT 16. Mỗi địa chỉ là 4 byte.Ngắt do lệnh: đó là ngắt khi thực hiện các lệnh CALL.6F 70 Non-Maskable IRQ Exception Handlers Hardware IRQ0 Hardware IRQ1 Hardware IRQ2 Hardware IRQ3 Hardware IRQ4 Hardware IRQ5 Hardware IRQ6 Hardware IRQ7 Software Interrupts Hardware IRQ8 Non-Maskable IRQ (Parity Errors) System Timer Keyboard Redirected Serial Comms. Họ VXL 8086 cung cấp 256 ngắt. Họ 8086 có một bảng vecter ngắt giữ địa chỉ của các chương trình phục vụ ngắt.v. COM2/COM4 Serial Comms. COM1/COM3 Reserved/Sound Card Floppy Disk Controller Parallel Comms.01 Exception Handlers 02 03 . INT .

• Lưu giữ tin về chỗ bị ngắt chương trình: Ở cuối mỗi chu trình lệnh. VXL gửi tín hiệu xác nhận hay cho phép ngắt – INTA và đọc vector ngắt.Chương 3: Thủ tục trao đổi tin của máy vi tính 71 72 73 74 75 76 77 78 . Kết thúc chương trình con này. Trở về chỗ chương trình chính bị ngắt và tiếp tục thực hiện chương trình đó. có lệnh trở về (RET . Chuyển sang chương trình phục vụ ngắt. • Thực hiện chương trình con phục vụ ngắt Đó là chương trình mà địa chỉ lệnh đầu tiên nằm trong ô nhớ có địa chỉ là vector ngắt. VXL sử dụng tín hiệu này để đọc vector ngắt tương ứng của KGN vào thanh ghi chứa A. quá trình ngắt chương trình được diễn ra theo các bước sau: Lưu giữ tin về trạng thái của VXL lúc có tín hiệu yêu cầu ngắt và nơi chương trình bị gián đoạn. Các tin đó là: .return) để VXL tiếp tục thực hiện chương trình chính. VXL đọc nội dung của ô nhớ có địa chỉ là vector ngắt để biết được địa chỉ đầu tiên của chương trình con phục vụ ngắt ( chương trình trao đổi tin). VXL tiến hành lưu trữ tin về nơi bị ngắt chương trình ( dùng lệnh PUSH vào vùng nhớ ngăn xếp mà địa chỉ chỉ thị bởi thanh ghi SP).Thanh ghi cờ Flag FR (Flag Register) . Tuỳ cách tổ chức ngắt và tạo vector ngắt.Con trỏ lệnh IP (Instruction Pointer) . Nếu có yêu cầu.Thanh ghi đoạn lệnh CS (Code Segment register) • Gửi tín hiệu cho phép (xác nhận ) ngắt và đọc vector ngắt: Sau khi đã lưu trữ tin về vị trí bị ngắt của chương trình chính. • Tiếp tục thực hiện chương trình chính: 34 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . VXL 8086 ( cũng như 80286) kiểm tra xem có yêu cầu ngắt nào gửi tới không.FF Hardware IRQ9 Hardware IRQ10 Hardware IRQ11 Hardware IRQ12 Hardware IRQ13 Hardware IRQ14 Hardware IRQ15 Software Interrupts Redirected IRQ2 Reserved Reserved PS/2 Mouse Math's Co-Processor Hard Disk Drive Reserved - Thủ tục xử lý (đáp ứng) ngắt chương trình Khi có một tin hiệu yêu cầu ngắt chương chình đưa vào chân yêu cầu ngắt (INTR). VXL gửi tín hiệu xác nhận ngắt INTA (Interrupt Acknowledge) cho KGN của TBN.

KGN8 Reset NMI Cơ ch th c hi n ng t c ng Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 35 . Qua trình đọc ra này xảy ra ngược lại với quá trình ghi vào (o quy luật LIFO – Last In First Out) và nội dung của: Thanh ghi con trỏ lệnh (IP) trỏ về độ lệch (offset) của địa chỉ lệnh tiếp theo của chương trình chính bị ngắt trong mảng nhớ lệnh (CS).2 Xử lý ngắt cứng trong IBM . IR0 KGN1 .Chương 3: Thủ tục trao đổi tin của máy vi tính Sau khi gặp lệnh trở về (RET). 3. VXL tiến hành đọc và hồi phục các tin của VXL lúc bị ngắt chương trình đã ghi nhớ ở chỗ ngắt chương trình (bằng lệnh POP các ô nhớ ngăn xếp). Để mở rộng khả năng phục vụ ngắt ngoài IBM .. . Sử dụng PIC 8259 nối vào chân INTR có thể mở rộng số lượng ngắt cứng lên đến 64 RAM ROM System bus INT INT /INTA VXL Interrupt Controller IR7 . Thanh ghi mảng lệnh (CS) về địa chỉ đoạn đầu tiên của vùng nhớ dành cho chương trình chính bị ngắt. . Thanh ghi flag lúc bị ngắt chương trình.PC: VXL 80x86 có 3 chân dùng cho ngắt cứng đó là: INTR: Interrupt Request NMI: NonMaskable Interrupt /INTA: Interupt Acknowledge INTR là tín hiệu đầu vào yêu cầu ngắt của VXL và nó có thể che hay cho phép thông qua lệnh CLI (Clear Interrupt) và STI (Set Interrupt) NMI tương tự INTR nhưng không che được bằng lệnh INTR và NMI có thể được kích hoạt từ bên ngoài bằng cách nối vào điện áp 5V vào chân tương ứng của VXL.. Như vậy VXL chỉ có khả năng phục vụ một yêu cầu ngắt cứng từ TBN.2.PC sử dụng thêm vi mạch xử lý ngắt cứng lập trình được PIC (Programmable Interrupt Controller) 8259.

15) SP (chân 16) là chủ (Master). Thanh ghi mặt nạ ngắt IMR (Interrupt Mask Register). (Slave) INTA (chân 26) INT (chân 17) Cấu trúc PIC 8259 : Các lối vào yêu cầu ngắt : Các bit số liệu (2 chiều) : Địa chỉ chọn thanh ghi lệnh : Chọn vi mạch (chip select) : Lối vào lệnh ghi : Lối vào lệnh đọc : Lối vào mắc nối tầng : Trong chế độ không đệm.13. Mạch logic giải quyết ưu tiên PR (Priority Resolver) 36 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . . IRn CAS0 CAS1 CAS2 Bộ so sánh và nối tầng Thanh ghi che ngắt (IMR) Sơ đồ khối 8259 Các chân: IR0 – IR7 (Chân 18 – 25) D0 – D7 (Chân 11 – 4) A0 (chân 27) CS (Chân 11) WR (chân 2) RD ( chân 3) CAS0 – 2 (Chân 12. nếu SP = 1 thì 8259 SP = 0 thì là tớ : Lối vào xác nhận ngắt : Lối ra yêu cầu ngắt chương trình Thanh ghi yêu cầu ngắt IRR (Interrupt Request Register): để ghi tám mức ngắt (IR0 – IR7) từ TBN. .Chương 3: Thủ tục trao đổi tin của máy vi tính • Vi mạch xử lý ngắt 8259 Sơ đồ khối: IN T D0 – D7 Bộ đệm dữ liệu Logic điều khiển A0 Logic đọc/ghi Đường dây nội Thanh ghi phục vụ (ISR) Giải quyết ưu tiên (PR) Thanh ghi yêu cầu ngắt IR0 . . Thanh ghi “Ngắt đang phục vụ” ISR (In Service Register): ghi mức ngắt đang sử dụng.

Lệnh này được gửi tới PIC khi kết thúc chương trình con xử lý ngắt để reset PIC. do đó ta chỉ cần quan tâm tới 2 lệnh khi làm việc với chúng.15 cũng bị che. Các PIC được khởi tạo bởi BIOS.2. PIC1 để quản lý đầu vào ngắt IRQ0 .15.3 Lập trình xử lý ngắt cứng: Trong máy IBM . 2 PIC được sử dụng để mở rộng ra 15 ngắt cứng. Từ điều khiển OCW1 được gửi tới địa chỉ base + 1.PC có 2 PIC được định vị tại các địa chỉ là PIC1 . Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 37 . Lệnh EOI được gửi tới PIC bằng cách ghi giá trị 20H vào thanh ghi có địa chỉ base.PC 3. Logic điều khiển đọc/ghi: tạo các tín hiệu ghi và đọc các thanh ghi đệm. PIC2 được nối tầng ?lên PIC1 qua đường IRQ2 (Do đó nếu ta chặn ngắt IRQ2 thì toàn bộ IRQ 8 .PC. Bộ đệm nối tầng/so sánh: để chọn các vi mạch 8259 tớ trong một vi mạch 8259 chủ. Lệnh thứ 2 là lệnh End of Interrupt (EOI).Chương 3: Thủ tục trao đổi tin của máy vi tính Khối logic điều khiển: xử lý ngắt. PIC2 A0H. Cấu trúc chung của một chương trình có sử dụng phương pháp vào ra bằng ngắt viết bằng Pascal như sau: program <Tên chương trình>. đưa yêu cầu (INT) và xác nhận ngắt (INTA) Bộ đệm đường tín hiệu số liệu: để đệm ghi vào các thanh ghi và đệm đọc các số liệu từ các thanh ghi. Lệnh thứ nhất tác động vào từ điều khiển OCW1 để thiết lập việc che ngắt Nếu muốn che ngắt nào thì ta xoá bit tương ứng với ngắt đó về 0.7.20H. Đối với IBM . PIC2 dành cho IRQ8 . Port 20H INT IR0 IR1 IR2 Pri PIC IR3 : INT /INT IR7 CAS0-2 Port A0H IR0 IR1 Sec PIC IR2 INT : CAS0-2 /INT IR7 IRQ1 IRQ8 IRQ9 IRQ1 : IRQ0 IRQ1 IRQ3 : IRQ7 MPU /INT : Sơ đồ ghép nối nối tầng PIC trong IBM .

SetIntVec ($0C. var OldVector: procedure. ... interrupt. end. ` Port[MasterPIC] := EOI.Chương 3: Thủ tục trao đổi tin của máy vi tính uses Crt.{cho phép ng t IRQ3} .@OldVector). {Chương trình chính} . var begin . {Che ng t IRQ3} END. Dos.@OldVector). {Tr l i vector ng t cũ} Port[MasterOCW1] := Port[MasterOCW1] or $10. PIC2_OCW1 = $A1. {Lưu vector ng t cũ} SetIntVec ($0C. {Chương trình ñi u khi n vào/ra d . . {$F+} procedure MyISR. ... const {PIC Constants} PIC1 = $20. . 38 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . PIC1_OCW1 = $21.Addr (MyISR)). PIC2 = $A0. {Thay vector ng t} Port[MasterOCW1] := Port[MasterOCW1] and $EF. {$F-} li u} {Chương trình chính} BEGIN {Thi t l p vector ng t} GetIntVec ($0C.

1 Cơ chế hoạt động: VXL khởi tạo TBN. 3. báo cho VXL biết DMAC cần sử dụng bus. Trao đổi tin trực tiếp bộ nhớ Phương pháp trao đổi dữ liệu theo chương trình sẽ chậm do: . Đó là các thông tin như: địa chỉ bắt đầu của khối dữ liệu. Quá trình khởi tạo sẽ cung cấp cho DMAC thông tin cần thiết để hoạt động. . MEMR. Hoạt động: Xét trường hợp truyền một khối dữ liệu từ bộ nhớ ra TBN. số hiệu cổng của TBN.3. Data Bus HOLD VXL DREQ DMAC MEMORY Disk Controller HLDA DACK Address Bus Control Bus (IOR. MEMW) Hoạt động của DMAC 3. TBN khởi xướng việc truyền số liệu bằng cách sử dụng các thông tin cung cấp bởi VXL thông qua quá trình khởi tạo.VXL phải giải mã và thực hiện lệnh. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 39 . Khối dữ liệu được truyền trực tiếp giữa TBN và bộ nhớ thông qua sự điều khiển của bộ điều khiển DMA (DMAC). kích thước khối dữ liệu. (1) Bước 1: TBN yêu cầu DMA bằng cách đặt tín hiệu DREQ lên mức cao (2) Bước 2: DMAC đặt tín hiệu mức cao vào chân HRQ (Hold Request) gửi tín hiệu yêu cầu treo bus cho VXL.3. chiều đọc/ghi dữ liệu.3.Trao đổi dữ liệu thực hiện từng byte thông qua thanh ghi AX của VXL Kỹ thuật vào/ra DMA (Direct Memory Access) là phương pháp truy nhập trực tiếp tới bộ nhớ. IOW.2 Hoạt động của DMAC: Khởi tạo: Trước khi đưa DMAC vào hoạt động. Phải có chương trình khởi tạo cho nó.Chương 3: Thủ tục trao đổi tin của máy vi tính 3.

Còn đối với mô hình ưu tiên quay thì mức ưu tiên khi khởi dộng giống như mô hình ưu tiên cố định nhưng khi yêu cầu DMA tại một kênh nào dó được phục vụ thì sẽ được đặt xuống mức ưu tiên thấp nhất. chuyển các cổng ghép nối với bus sang mức trở kháng cao và trả lời yêu cầu DMA bằng tín hiệu mức cao ở chân HDLA ( Hold Acknoledge) báo cho DMAC được quyền sử dụng bus (4) Bước 4: DMAC kích hoạt tín hiệu DACK báo cho TBN biết nó sẽ bắt đầu điều khiển việc truyền dữ liệu. (5) Bước 5: DMAC bắt đầu truyền dữ liệu từ bộ nhớ tới TBN như sau: DMAC đặt địa chỉ của byte đầu tiên của khối dữ liệu lên bus địa chỉ Kích hoạt tín hiệu /MEMR để đọc byte dữ liệu từ bộ nhớ lên bus dữ liệu Đặt địa chỉ của cổng TBN lên bus địa chỉ Kích hoạt tín hiệu IOW để ghi byte dữ liệu đang có trên bus dữ liệu ra TBN Giảm giá trị đếm và tăng giá trị địa chỉ Lặp lại quá trình trên cho tới khi giá trị đếm bằng 0. trả quyền điều khiển bus cho VXL.3 Chip điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 DMAC 8237 có thể thực hiện truyền dữ liệu theo 3 kiểu: kiểu dọc (từ bộ nhớ ra thiết bị ngoại vi). Khối Command Control (điều khiển lệnh): Giải mã các thanh ghi lệnh (xác định thanh ghi sẽ được truy xuất và loại hoạt động cần thực hiện). kiểu ghi (từ thiết bị ngoại vi đến bộ nhớ) và kiểu kiểm tra. DMAC xoá giá trị HRQ xuống mức thấp.Chương 3: Thủ tục trao đổi tin của máy vi tính - (3) Bước 3: VXL kết thúc chu kỳ bus hiện tại. (6) Sau khi quá trình DMA kết thúc. Khối Timing and Control (định thời và điều khiển): Tạo các tín hiệu định thời và điều khiển cho bus ngoài (external bus). 3. 40 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Trong mô hình ưu tiên cố định.3. Khối Priority encoder and rotating priority logic (mã hoá ưu tiên và quay mức ưu tiên): DMAC 8237A có 2 mô hình ưu tiên: mô hình ưu tiên cố định (fixed priority) và mô hình ưu tiên quay (rotating priority). Các tín hiệu này được đồng bộ với xung clock đưa vào DMAC (tần số xung clock tối đa là 5 MHz). kênh 0 sẽ có mức ưu tiên cao nhất còn kênh 3 có mức ưu tiên thấp nhất.

Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 41 .Chương 3: Thủ tục trao đổi tin của máy vi tính Các thanh ghi: DMAC 8237A có tất cả 12 loại thanh ghi nội khác nhau: Chức năng các chân của 8237A: CLK (Input): tín hiệu xung clock của mạch. Tín hiệu này thường được lấy từ 8284 sau khi qua cổng đảo.

được nối với ngõ RESET của 8284. AEN (Output): cho phép lấy địa chỉ vùng nhớ cần trao đổi ADSTB (Address Strobe) (Output): chốt các bit địa chỉ cao A8 – A15 chứa trong các chân DB0 – DB7 MEMR . MEMW (Output): dùng để dọc / ghi bộ nhớ. IOW (Input.Output): bắt buộc DMAC kết thúc quá trình DMA nếu là ngõ vào hay dùng để báo cho một kênh biết là dữ liệu đã chuyển xong (Terminal count – TC). RESET (Input): khởi dộng 8237A. HLDA (Hold Acknowledge) (Input): tín hiệu chấp nhận yêu cầu treo từ CPU DRQ0 – DRQ3 (DMA Request) (Input): các tín hiệu yêu cầu treo từ thiết bị ngoại vi DB0 – DB7 (Input. thường dùng như yêu cầu ngắt để CPU kết thúc quá trình DMA. A4 – A7 (Output): chứa 4 bit địa chỉ HRQ (Hold Request) (Output): tín hiệu yêu cầu treo đến CPU DACK0 – DACK3 (DMA Acknowledge) (Output): tín hiệu trả lời yêu cầu DMA cho các kênh.Chương 3: Thủ tục trao đổi tin của máy vi tính CS (Input): thường được nối với bộ giải mã địa chỉ. Output): chọn các thanh ghi trong 8237A khi lập trình hay dùng để chứa 4 bit địa chỉ thấp. Output): nối đến bus địa chỉ và dữ liệu của CPU IOR . Các thanh ghi nội: Các thanh ghi nội trong DMAC 8237A được truy xuất nhờ các bit địa chỉ thấp A0 – A3 42 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . A0 – A3 (Input. Khi Reset thì thanh ghi mặt nạ được lập còn các phần sau bị xoá: Thanh ghi lệnh Thanh ghi trạng thái Thanh ghi yêu cầu Thanh ghi tạm Flip-flop dầu/cuối (First/Last flip-flop) READY (Input): nối với READY của CPU để tạo chu kỳ đợi khi truy xuất các thiết bị ngoại vi hay bộ nhớ chậm. Output): sử dụng trong các chu kỳ dọc và ghi EOP (End Of Process) (Input.

Chương 3: Thủ tục trao đổi tin của máy vi tính Bit địa chỉ A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Địa chỉ X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF Chọn chức năng Thanh ghi địa chỉ bộ nhớ kênh 0 Thanh ghi đếm từ kênh 0 Thanh ghi địa chỉ bộ nhớ kênh 1 Thanh ghi đếm từ kênh 1 Thanh ghi địa chỉ bộ nhớ kênh 2 Thanh ghi đếm từ kênh 2 Thanh ghi địa chỉ bộ nhớ kênh 3 Thanh ghi đếm từ kênh 3 Thanh ghi trạng thái / lệnh Thanh ghi yêu cầu Thanh ghi mặt nạ cho một kênh Thanh ghi chế độ Xoá flip-flop đầu/cuối Xoá toàn bộ các thanh ghi / đọc thanh ghi tạm Xoá thanh ghi mặt nạ Thanh ghi mặt nạ R/W? R/W R/W R/W R/W R/W R/W R/W R/W R/W W W W W W/R W W Địa chỉ các thanh ghi nội dùng ghi / đọc địa chỉ: Kênh 0 /IOR 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 /IOW 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 A1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 Thanh ghi Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành R/W? W R W R W R W R W R W R WR WR 1 2 3 Địa chỉ các thanh ghi trạng thái và điều khiển: Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 43 .

Chương 3: Thủ tục trao đổi tin của máy vi tính /IOR 1 0 1 1 1 1 1 0 1 0 1 0 Thanh ghi /IOW A3 A2 A1 A0 0 1 0 0 0 Ghi thanh ghi lệnh 1 1 0 0 0 Đọc thanh ghi trạng thái 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 Địa chỉ cơ sở và địa chỉ hiện hành Địa chỉ hiện hành Bộ đếm cơ sở và bộ đếm hiện hành Bộ đếm hiện hành Ghi thanh ghi yêu cầu Ghi thanh ghi mặt nạ Ghi thanh ghi chế độ Xoá flip-flop đầu/cuối Xoá tất cả các thanh ghi nội Mạch 8237A-5 chứa 4 kênh trao đổi dữ liệu DMA với mức ưu tiên lập trình được. ta cần tạo tín hiệu điều khiển như sau: Tín hiệu điều khiển cho hệ thống làm việc với DMAC 8237A Tín hiệu AEN từ 8237A dùng để cấm các tín hiệu điều khiển từ CPU khi DMAC đã nắm quyền điều khiển bus. 44 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . 8237A-5 có tốc độ truyền 1 MBps cho mỗi kênh và 1 kênh có thể truyền 1 mảng có độ dài 64 KB. Để có thể sử dụng mạch DMAC 8237A.

Cấu trúc.Chương 4: Rãnh cắm mở rộng CHƯƠNG 4. Tóm tắt chương: Đặt vấn đề Bus PC Bus ISA (16 bit) Bus PCI Ghép nối qua khe cắm mở rộng Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 45 . nguyên lý và cách ghép nối của các khe cắm thông dụng như ISA. PCI. GHÉP NỐI QUA RÃNH CẮM MỞ RỘNG Mục tiêu: Trình bày các vấn đề về ghép nối máy tính với thiết bị ngoại vi thông qua các khe cắm (slot) của máy tính PC.

Bus AGP (32/ 64 bit) + 12V GND /MEMW /MEMR /IOW /IOR /DACK3 DERQ3 /DACK1 DREQ1 /DACK0 CLK IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 /DACK2 TC ALE + 5V OSC GND B09 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27 B28 B29 B30 B31 A09 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31 D0 /IOCHRDY AEN A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 46 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Bus ISA (16 bit) Phía mạch in Phía linh kiện . v.Bus PCI (32/ 64 bit) . bus điều khiển .v. Sự ra đời của các loại rãnh cắm mở rộng gắn liền với sự phát triển của kỹ thuật máy tính. các đường dẫn bus như bus dữ liệu.Bus PC (Còn gọi là ISA 8 bit) Sơ đồ chân khe cắm ISA 8 bit .Bus EISA (32 bit) . Việc phân loại các bus mở rộng dựa trên số các bit dữ liệu mà chúng xử lý đồng thời. Các rãnh cắm mở rộng là một dạng thể hiện bằng phần cứng của bus trên bản mạch chính.5V B05 A05 D4 . trên đó có thể cắm thêm các card mở rộng để thay đổi hoặc nâng cấp cấu hình của máy tính.12V B07 A07 D2 Dù tr÷ B08 A08 D1 . Từ trước đến nay đã có đến 8 kiểu bus mở rộng được sử dụng cho máy tính cá nhân.Bus PC/MCIA (16 bit) GND B01 A01 /IOCHCK .Bus SCSI (16/ 32 bit) IRQ2 B04 A04 D5 .Bus VESA local (32bit) Reset B02 A02 D7 + 5V B03 A03 D6 .Chương 4: Rãnh cắm mở rộng Đặt vấn đề Khi bàn luận về cấu trúc máy tính ta thường đề cập đến các cấu trúc bus. Đó là các bus: .Bus MCA (32 bit) DREQ2 B06 A06 D3 .

Bus PC Bus PC là loại bus xuất hiện trên máy tính PC/XT đầu tiên nên được gọi luôn là bus PC. Mức thấp chỉ ra rằng các dữ liệu có giá trị đang chờ để đưa ra ở bus dữ liệu. Trong thời gian này các dữ liệu có giá trị cần phải sắp xếp để sau đó được đón nhận bằng sườn trước AEN Out Address Enable Đường dẫn điều khiển AEN dùng để phân biệt chu trình truy nhập DMA và chu trình truy nhập bộ vi xử lý. Điểm mạnh rõ nét của bus này là có thể cho Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 47 . cho nên trên thực tế việc ghép nối bằng các card mở rộng ISA tỏ ra là công nghệ đã qua thử thách và đáng tin cậy. Bus ISA (16 bit) Do cách tổ chức rãnh cắm như vậy nên một card PC vẫn có thể cắm vào một khe cắm của bus ISA.77 MHz Đối với bus ISA 8 bit ta cần quan tâm đến một số đường tín hiệu chính sau: Tín hiệu Hướng Mô tả A0 . 4.Chương 4: Rãnh cắm mở rộng 4. Loại bus này tận dụng kiến trúc của bộ VXL Intel 8088. Công ty máy tính IBM đã phát triển bus ISA (kiến trúc theo chuẩn công nghiệp) dùng cho máy tính AT (Advanced Technology) dựa trên bộ vi xử lý 80286. Các dữ liệu được đón nhận bằng sườn trước /IOR Out Input/Output/Read: Mức thấp của đường dẫn địa chỉ này báo hiệu sự truy nhập đọc trên một card mở rộng. Đường dẫn có hiệu lực ở mức thấp. Đường dẫn này cần phải được sử dụng cho quá trình giải mã địa chỉ bởi card mở rộng. /IOW Out Input/Output/Write: Tín hiệu này sẽ kích hoạt khi truy nhập ghi lên một card mở rộng. nên có một bus dữ liệu 8 bit và ngoài và bus địa chỉ 20 bit.D7 I/O 8 đường tín hiệu tạo thành BUS dữ liệu cho vi xử lý. Vì trên bus này có 8 bit dữ liệu được truyền đồng thời nên bus PC còn được gọi là bus PCI 8 bit • Tốc độ truyền của bus PC được cố định ở 4. Rãnh cắm nối với bus PC có 62 chân cho phép cắm vào một card mở rộng làm từ mạch in 2 mặt. bộ nhớ và các thiết bị ngoại vi Reset Out Sau khi bật máy tính hoặc sau khi khởi động lại. Trong các tài liệu gọi bus PC là bus ISA 8 bit thì loại bus này thường được phân biệt rõ là ISA 16 bit. ở mức cao DMA giám sát qua bus địa chỉ và bus dữ liệu.1.2. Các linh kiện được sử dụng trên card đều rất rẻ. Từ tên gọi cho thấy : đây là loại bus được kiến trúc theo tiêu chuẩn công nghiệp (ISA: Industry standard architecture). Card ISA rất phổ biến bởi vì chúng thể hiện tính năng ưu việt đối với hầu hết các ứng dùng ghép nối. đường dẫn Reset sẽ kích hoạt trong thời gian ngắn để đưa card đã được cắm vào đến một trạng thái ban đầu xác định.A19 I/O 20 đường tín hiệu địa chỉ dùng để định địa chỉ cho bộ nhớ và các thiết bị ngoại vi D0 .

C. trên đó có chứa 8 bit dữ liệu và 4 đường dẫn địa chỉ. Trong các máy tính có tần số giữ nhịp chạy nhanh hơn 8 MHz.A19 có giá trị cao nhất (MSB) các đường này được điều khiển nhờ VXL trong chu trình bus đọc và viết bộ nhớ hay cổng vào ra. • Các đường địa chỉ: Số đường địa chỉ trong các máy tính là khác nhau. Như vậy chỉ các đường địa chỉ A0-A19 là được sử dụng cho việc giải mã địa chỉ các thiết bị và địa chỉ cổng vào ra.nên thực tế các đường địa chỉ còn lại là A0 ( A19 Các đường từ A0 ( A19 đi ra từ máy tính hoạt động ở mức thế cao. Các linh kiện được sử dụng trên card đều rất rẻ. cụ thể là bằng 8.các máy AT có 24 đường địa chỉ từ A0 (A23 tuy nhiên các đường A20 (A23 dùng cho việc quản lý. Có các tiếp điểm được bố trí trên hai mặt.B. • Các đường số liệu: 48 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Như vậy.33MHz. các XT có 20 đường địa chỉ. bus ISA có một bus dữ liệu 16 bit và chính vì lẽ đó đôi khi bus ISA còn được gọi rõ là ISA 16 bit để phân biệt với 8 bit.Chương 4: Rãnh cắm mở rộng phép cùng một lúc xử lý hoặc trao đổi với 16 bit dữ liệu. được đánh số là A. nhưng khác về giá trị.Do cách tổ chức rãnh cắm như trên nên một card PC vẫn có thể cắm được vào trong rãnh cắm của bus ISA. cho nên trên thực tế việc ghép nối bằng card mở rộng ISA tỏ ra là công nghệ đã qua thử thách và đáng tin cậy. Bit 9 là một bit có ý nghĩa đặc biệt: -Khi bit này không tích cực hệ chỉ cho phép số liệu từ các thiết bị ngoại vi vì các thiết bị vào ra trong Mainboard trao đổi với nó khi bit 9 là không tích cực chúng chiếm địa chỉ từ 000h – 0FFh .A0 là các bit giá trị nhỏ nhất (LSB) . card nối mạng và card âm thanh. Điều này có nghĩa là với cổng vào 1024 địa chỉ được chia làm 2 phần 512 địa chỉ dùng cho Mainboard và 512 địa chỉ dùng cho khe cắm. Bộ vi xử lý qua việc sử dụng các lệnh in và out có thể địa chỉ 64Kbyte địa chỉ cổng vào ra nhưng thiết kế PC không cho phép sử dụng toàn bộ các địa chỉ này vì cổng vào ra chiếm các ô nhớ từ 300h – 3FFh nên chỉ có 10 bit thấp nhất của đường địa chỉ là được sử dụng địa chỉ của thiết bị và địa chỉ cổng vào ra. Ngoài ra chúng còn được điều khiển nhờ logic xâm nhập trực tiếp vào bộ nhớ trong chu trình DMA. bus ISA chạy chậm hơn những phần còn lại của máy tính. Các card ISA rất phổ biến bởi vì chúng thể hiện tính năng ưu việt đối với hầu hết các ứng dụng ghép nối. cho phép nhiều nhất là 16 Mbyte bộ nhớ có thể định địa chỉ được và giống như bus PC nó sử dụng tốc độ đồng hồ cố định. Như vậy tốc độ truyền dữ liệu cực đại là 2 byte (16 bit) trong mỗi chu kỳ giữ nhịp. Để bảo đảm tính tương thích với bus PC. các đường này được dùng để địa chỉ hoá bộ nhớ hay thiết bị vào ra . các nhà thiết kế đã bổ xung rãnh cắm thứ hai thẳng hàng với rãnh cắm PC 8 Bit. cho ra một lưu lượng cực đại là 16 MB/giây.D. Ngoài ra bus ISA còn có một bus địa chỉ 24 bit. Những ứng dụng tiêu biểu có thể kể là: Card vào/ra nối tiếp và song song. Khi 9 bit tích cực là các bit cho phép số lỉệu được ghi đọc từ các cổng vào ra của khe cắm chúng chiếm các địa chỉ 300h – 3FFh.

• Tín hiệu đọc cổng vào/ra . điều khiển hướng truyền nơi nhận số liệu. Cổng vào ra và địa chỉ trong bus địa chỉ (là địa chỉ của cổng vào ra) phản ứng lại bằng cách đặt số liệu của chúng lên bus số liệu.Nhờ tín hiệu này thiết bị vào ra đặt số liệu lên bus số liệu và báo cho cổng vào ra biết chu trình bus của VXL lúc này là chu trình đọc. Địa chỉ trong bus địa chỉ là địa chỉ của cổng vào ra. Các đường số liệu D0 ( D15 là các đường 2 chiều có thể hoạt động ở mức thế cao . Bộ điều khỉên DMA điều khiển Bus địa chỉ các đường đọc lệch và ghi số liệu. Máy AT cos 16 đường số liệu D0 ( D15 tức có thể truyền đồng thời 2 byte. Tín hiệu này dùng để chốt thông tin địa chỉ từ bus địa chỉ hoặc bus số liệu của bộ của VXL. Tín hiệu này được sử dụng để báo cho bộ VXL và các thiết bị từ các kênh vào/ra để cho phép truyền DMA được thực hiện khi đường này tích cực. Tín hiệu này hoạt động ở mức thế thấp được điều khiển từ bộ điều khiển bus. • Tín hiệu cho phép chốt địa chỉ ALE Đây là tín hiệu ra được điều khiển nhờ bộ điều khiển bus nó được để chỉ rằng bus địa chỉ bây giờ đã ổn định có thể bts đầu chu trình bus.Chương 4: Rãnh cắm mở rộng Các đường này để chuyển số liệu giữa VXL với cổng vào ra và bộ nhớ . Khi chu trình ghi bắt đầu số liệu trên bus là số liệu sẽ được ghi vào bộ nhớ hay cổng vào ra . Các máy XT có 8 đường số liệu D0 ( D7 có nghĩa là có thể truyền 1 byte. Trong chu trình số liệu ở địa chỉ nhớ hay địa chỉ thanh ghi cổng vào ra số liệu phải đặt lên bus số liệu trước sườn tăng của tín hiệu điều khiển IOW và MEMW . Sườn tăng của các tín hiệu này thường dùng để tạo nhịp cho số liệu trên bus số liệu ghi vào bộ nhớ hoặc các thanh ghi của cổng vào ra. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 49 .Số liệu phải ổn định trước sườn tăng của tín hiệu điều khiển IOW và MEMW . • Tín hiệu ghi của cổng vào ra.D0 là (LSB). Mục đích của chu trình là đưa số liệu ra một trong các địa chỉ nhớ hoặc cổng vào ra. • Tín hiệu cho phép địa chỉ AEN .Số lượng các đường bus số liệu quyết định số bit có thể truyền đồng thời đến hoặc đi từ bộ nhớ. Tín hiệu này hoạt động ở mức thấp cũng là tín hiệu ra từ máy tính được điều khiển bởi bộ điều khiển Bus. Nó chỉ ra rằng chu trình của bus của hệ VXL là chu trình ghi của cổng vào ra. Tín hiệu ALE đồng bộ với chu trình kênh của Bus khi nó bắt đầu chu trình Bus các địa chỉ của bộ VXL được với sườn giảm của tín hiệu ALE. Vì tín hiệu này hoạt động ở mức thấp nên cổng vào ra cần phải nhớ số liệu trên bus số liệu đảm bảo cho VXL nhận được số liệu. D15 là (MSB) khi VXL đưa ra chu trình bus nó điều khiển bus tới địa chỉ của ô nhớ hay cổng vào ra xác định.

vì vậy card mở rộng bao giờ cũng phải là bản mạch in 2 mặt. trên card mở rộng phải có thêm một bộ giải mã địa chỉ. . card âm thanh.7 mm (hay 0. . Cổng vào/ra được chọn nhờ tín hiệu. để dùng cho bộ xử lý Pentium.Tốc độ tối đa đạt được là 264 Mbyte/s .4.v. Các khối này được trao đổi dưới những địa chỉ khác nhau từ máy tính. Bộ giải mã địa chỉ có nhiệm vụ so sánh địa chỉ trên bus địa chỉ của máy tính với các địa chỉ đã được thiết lập trước cho các khối chức năng của card mở rộng.Có thể hoạt động với 64 bit .12.Kết nối các thành phần ngoại vi) hay thường gọi tắt là bus PCI.3.kể cả linh kiện . Các đường địa chỉ sử dụng đối với vùng này là A0 .7 mm (hay 4.2 Giải mã địa chỉ và kết nối Bus dữ liệu Đối với máy PC vùng địa chỉ 300 .tương tự DAC. Khi được kích hoạt. .v.Rãnh cắm PCI có mật độ chân cao hơn do vậy không tương thích với các card ISA. Một số đặc điểm chính: .4. Trên một card mở rộng thường có nhiều khối chức năng như bộ biến đổi tương tự/số ADC.5 inch) Các đường tín hiệu của khe cắm bố trí cả 2 phía. 4. 4. 50 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .1 Một số đặc điểm của Card ISA Kích thước lớn nhất của các card ISA 8 bit là: Chiều cao: 106.4.31FH được dự tính để dành riêng cho card mở rộng cắm thêm vào.Bus PCI truyền dữ liệu bằng tốc độ của đồng hồ hệ thống cho phép truyền dữ liệu với tốc độ cao hơn nhiều so với bus ISA. Vi mạch ghép nối dùng cho bus này là chip PCI 82430 cho phép ghép nối trực tiếp với bus.2 inch) Chiều dài 333. Sau đó tín hiệu /IOW được dùng để viết số liệu lên bus số liệu từ bộ nhớ. khối đó mới có thể tiến hành sự trao đổi thông tin với máy tính. Khi địa chỉ đó có sự thống nhất với khối nào thì khối tương ứng sẽ được kích hoạt thông qua một đường tín hiệu logic từ đầu ra của bộ giải mã.13 inch) Chiều dày . 4.5 mm ( hay 13. Bus này cho phép truy nhập rất nhanh tới bộ nhớ. điều khiển hiển thị.Chương 4: Rãnh cắm mở rộng Khi tín hiệu này ở mức thế thấp thì số liệu trong bus số liệu đã ổn định như vậy cổng số liệu cần phải tạo nhịp hay chốt bằng việc sử dụng sườn tăng của tín hiệu này. Bus PCI Công ty Intel đã xây dựng nên một tiêu chuẩn ghép nối mới có tên là bus cục bộ PCI (Peripheral Component Interconnection . bộ điều khiển đĩa. card đồ hoạ.A9. Do đó. khối xuất nhập dữ liệu số. Ghép nối qua khe cắm mở rộng 4. Khi xuất hiện chu trình của bus tín hiệu này quy định bởi bộ điều khiển DMA. bộ biến đổi số .

Tín hiệu AEN được đưa tới đầu vào /G của 74HC688 để cho phép bộ giải mã hoạt động. Hướng truyền dữ liệu được xác định bằng chân DIR: DIR = 0. IOR. Qua đó đảm bảo bộ đệm chỉ cho phép dữ liệu đưa vào từ bên Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 51 . Đường này cho biết CPU hay DMAC đang chiếm quyền sử dụng bus. Nó có chứa 8 vi mạch đệm với các lối ra 3 trạng thái để trao đổi thông tin giữa các đường dẫn bus dữ liệu theo 2 hướng. Ngoài ra khi giải mã còn phải quan tâm đến đường tín hiệu AEN (Address ENable).Chương 4: Rãnh cắm mở rộng Bộ giải mã địa chỉ 74HC688 so sánh các đường dẫn địa chỉ A2 . OR và vi mạch giải mã 74HC138 để tạo thành các đường điều khiển đọc ghi cho từng khối chức năng trên card Bộ giải mã logic đồng thời đảm nhận vai trò điều khiển bộ đệm bus 2 chiều 74HC245. dữ liệu được chuyển từ B sang A. Các đường tín hiệu A0. Ta có thể nối trực tiếp ra chân DIR. Cách ghép nối này rất quan trọng. Bộ này nối các đường dẫn dữ liệu của rãnh cắm PC với các đường dẫn của card mở rộng. Khi các cặp đồng nhất thi sẽ tạo ra một tín hiệu mức thấp ở đầu ra. 74HC688 so sánh các cặp bit xem có giống nhau không. IOW cũng được sử dụng trong bộ giải mã bằng cách kết hợp với các IC cổng logic AND.A9 xem có thống nhất với địa chỉ đã thiết lập trước của card mở rộng bằng chuyển mạch DIP. A1. nhờ vậy mà các mức tín hiệu trên đường dẫn dữ liệu không bị ảnh hưởng. Khi tín hiệu này ở mức thấp thì card mở rộng mới được sử dụng các bus. Việc chuyển hướng dữ liệu cho phép quản lý đơn giản bằng tín hiệu /IOR.

Chương 4: Rãnh cắm mở rộng ngoài đưa lên bus dữ liệu của máy tính khi PC thực hiện một quá trình truy nhập đọc (/IOR = 0) 52 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

74LS373) Vi mạch PPI 8255A Ghép nối song song qua cổng máy in Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 53 .Chương 5: Ghép nối trao đổi tin song song CHƯƠNG 5. nguyên lý hoạt động. Tìm hiểu các giao diện song song từ cơ bản đến nâng cao về cấu trúc. chốt (74LS245. GHÉP NỐI TRAO ĐỔI TIN SONG SONG Mục tiêu: Trình bày các kiến thức cơ bản về ghép nối và trao đổi dữ liệu qua các giao diện song song. Tóm tắt chương: Khối ghép nối song song đơn giản Các vi mạch đệm. cách ghép nối và lập trình điều khiển cho các giao diện này.

Lối ra có thể có thêm sơ đồ 3 trạng thái để cô lập TBN với bus của Máy tính A0 .Chương 5: Ghép nối trao đổi tin song song Khối ghép nối song song đơn giản Cổng vào đơn giản: Gồm một bộ giải mã địa chỉ .An RD D0 D1 D2 D3 DI0 DI1 DI2 DI3 Giải mã địa chỉ Sơ đồ cửa vào đơn giản • Cổng ra đơn giản: Cũng có bộ giải mã địa chỉ .Dn) của Máy tính A0 .lệnh và các cổng vào 3 trạng thái để đưa trực tiếp số liệu song song từ thanh ghi đệm số liệu từ TBN vào đường tín hiệu số liệu (D0 .lệnh. nhưng có thêm các thanh ghi chốt số liệu ra để ghi số liệu đưa ra từ Máy tính.An Giải mã điạ chỉ WR D Q C D1 D Q C D2 D Q C D3 D Q C DO3 DO2 DO1 DO0 D0 Cửa ra đơn giản không có đối thoại 54 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

Các vi mạch đệm. Có 2 đường tín hiệu điều khiển là /OE và LE. khi DIR = 0 dữ liệu được truyền từ B sang A 5. chốt (74LS245. Khi /OE ở mức cao. Đối với 74LS373.1. các chân dữ liệu của vi mạch ở trạng thai trở kháng cao. tín hiệu ở cổng Q được chốt lại. Tín hiệu DIR xác định chiều truyền dữ liệu. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 55 . tín hiệu này tích cực ở mức dương. khi /G ở mức cao. tín hiệu /G là tín hiệu cho phép vi mạch hoạt động.2 Vi mạch chốt 74LS373: Vi mạch bao gồm các vi mạch chốt và các vi mạch cổng 3 trạng thái.Chương 5: Ghép nối trao đổi tin song song 5.1 Vi mạch đệm 74LS245: Inputs DI G R L L H L H X Function A bus B bus Outputs A=B B=A Z Outpu Input t Input Output High Impedance Vi mạch 74LS245 cho tín hiệu vào ra 2 chiều dùng để đệm số liệu trong máy tính PC/XT (VXL 8086).1. Tín hiệu LE là tín hiệu cho phép chốt. ngược lại. khi LE ở mức cao. 74LS373) 5. Vi mạch này có 2 đường điều khiển chính. Khi LE chuyển sang mức thấp. DIR = 1 dữ liêu được truyền từ A sang B. Tín hiệu /OE là tín hiệu cho phép hoạt động của vi mạch. tín hiệu đưa vào từ cổng D được đưa ra cổng Q.1. Vi mạch này thường được dùng để chốt địa chỉ trong máy PC/XT và chốt dữ liêu trong các ứng dụng ghép nối máy tính. các cổng của vi mạch ở trạng thái trở kháng cao.

D7 PA0 .PA7 Cæng C nöa cao 4 §Öm sè liÖu 4 IO 4 PA7 .2.PA0 8 Cæng B 8 8 IO PA0 . Vi mạch 8255 này rất thông dụng.2.Chương 5: Ghép nối trao đổi tin song song 5. §iÒu khiÓn nhãm A 8 Cæng A 8 8 IO D0 .Bộ đệm số liệu để trao đổi tin về số liệu hai chiều giữa PPI và bus của máy tính.Bộ logic điều khiển đọc viết: tức là bộ giải mã địa chỉ lệnh cho các thanh ghi đệm và thanh ghi điều khiển. Vi mạch PPI 8255A 5. . PC/AT và các thiết bị trao đổi tin khác.Điều khiển hoặc đối thoại với TBN và VXL khi cổng A và B ở chế độ xác lập và xoá từng bit PCi 56 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .PA7 S¬ ®å khèi cña PPI 8255A Vi mạch gồm: .PA4 ĐiÒu khiÓn l«gic ®äc ghi A1 A0 Reset §iÒu khiÓn nhãm B 4 Cæng C nöa thÊp 4 4 IO PA3 . thường có trong các máy tính PC/XT. nó còn có thể hoạt động với các chế độ khác nhau và khả năng lập xoá bit cổng C cho đối thoại. Ngoài khả năng cho phép tạo một giao diện song song lập trình được để ghép nối với máy tính.1 Giới thiệu chung Vi mạch vào ra song song lập trình được PPI (Programable Parallel Interface) 8255 do hãng Intel chế tạo. vào hoặc ra tuỳ theo chương trình khởi phát Cổng C: Chia làm 2 nửa. vào hoặc ra tuỳ theo chương trình khởi phát Cổng B: thanh ghi đệm số liệu (8 bit). cao và thấp Tuỳ theo chế độ sử dụng cho bởi từ điều khiển cổng C có thể được dùng .Trao đổi số liệu vào hoặc ra . Phần ghép nối với TBN có: Cổng A: thanh ghi đệm số liệu (8 bit).

D7 Cổng B -> D0.D7 -> Cổng B D0 . B và C. ta có các lệnh ghi đọc khác nhau cho các cổng (A. nhóm B) các cổng A. tạo ra sự di chuyển số liệu giữa đường tín hiệu số liệu.D7 -> Cổng C D0 . A1). 5.Chương 5: Ghép nối trao đổi tin song song .3 Các từ điều khiển Từ điều khiển thiết lập chế độ: Control Word (Tõ ®iÒu khiÓn) D7 Mode – Flag 1 = Active D6 D5 D4 D3 D2 D1 D0 Nhãm B Nhãm A Cæng C cao 1 = Lèi v o 0 = Lèi ra Cæng C thÊp 1 = Lèi v o 0 = Lèi ra Cæng B 1 = Lèi v o 0 = Lèi ra Cæng A 1 = Lèi v o 0 = Lèi ra Mode 1 = Mode 1 0 = Mode 0 Mode 00 = Mode 0 01 = Mode 1 0X = Mode 2 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 57 . còn ở chế độ 0. C ) và thanh ghi điều khiển như bảng 3.2 Các lệnh ghi và đọc các cổng và các thanh ghi điều khiển Với tổ hợp các tín hiệu địa chỉ (A0. chon vi mạch (CS). không đọc trạng thái. và các lệnh đọc ghi (RD. A1 0 0 1 1 0 0 1 1 X A0 0 1 0 1 0 1 0 1 X CS RD WR Lệnh (của VXL) Đọc cổng A Đọc cổng B Đọc cổng C Ghi cổng A Ghi cổng B Ghi cổng C Thanh ghi điều khiển 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1 X 1 1 1 1 0 0 0 0 X Trạng thái điện trở cao Các lệnh của 8255A Chiều di chuyển số liệu (với VXL) Cổng A -> D0 .Điều khiển hoặc đối thoại với TBN và VXL khi cổng A và B ở chế độ 1 và 2 Các mạch điều khiển nội bộ: Có các khối điều khiển (nhóm A. các cổng và thanh ghi điều khiển.2. Như vậy.D7 -> Cổng A D0 .2.D7 -> Thanh ghi điều khiển Không có trao đổi dữ liệu 5. WR) của VXL.D7 Không có giá trị D0 . vi mạch 8255 có đặc điểm là không có lệnh đọc thanh ghi trạng thái mà dùng lệnh đọc c ng C khi vi mạch ở chế độ 1 và 2.D7 Cổng C -> D0. B.2.

D7 8255A Port C I/O PC0 .Ở chế độ 0. A1. Khi đó cổng C phải thiết lập ở chế độ ra.Không có tín hiệu đối thoại với VXL cũng như TBN. B. CS Port A I/O PA0 .Số liệu ra được chốt . người ta có thể dùng các bit PCi của cổng C để lập (đặt lên 1) và xoá (xoá về 0) để điều khiển hoặc đối thoại với TBN. phải dùng các bit của cổng nào đó ( thường là cổng C) để các lập lên 1 và sau đó là xoá về 0 bằng cách ghi số liệu hoặc bằng cách xác lập/ xoá một bit PCi của cổng C bởi từ điều khiển với D7 = 0.Lập xoá từng bit của cổng PC .Các cổng A. Nếu muốn có tín hiệu đối thoại. RD Port B I/O PB0 . và 2 nửa của cổng C được sử dụng độc lập với nhau .Các cổng có thể là cổng vào hoặc ra tuỳ từ điều khiển chế độ ghi vào thanh ghi điều khiển .PB7 D0 .PC3 I/O PC4 .PC7 A0.Chương 5: Ghép nối trao đổi tin song song Từ điều khiển lập xoá bit: D7 X X X D3 D2 D1 D0 Cờ lập/xoá 0: xoá 1: lập 0: Lập xóa bit Bit PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 D3 0 0 0 0 1 1 1 1 D2 0 0 1 1 0 0 1 1 D1 0 1 0 1 0 1 0 1 TỪ ĐIỀU KHIỂN LẬP XOÁ BIT CỦA VI MẠCH 8255 Chế độ 0 WR. Muốn vậy phải ghi lời lệnh với D7 = 0 vào thanh ghi điều khiển của 8255A sau khi đã ghi lời điều khiển chế độ.PA7 Chế độ này còn được gọi là chế độ vào/ra cơ sở vì: .Số liệu vào không được chốt . . 58 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

Chương 5: Ghép nối trao đổi tin song song Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 59 .

Tín hiệu này thông báo cho 8255 biết TBN đã nhận dữ liệu.Chương 5: Ghép nối trao đổi tin song song • Chế độ 1: Port B I/O PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 Port A I/O INTRB PB0 . còn các tín hiệu đối thoại PCi còn phụ thuộc chiều cổng vào hay ra của cổng A. Khi đọc được dữ liệu. Nhóm A gồm cổng A để trao đổi số liệu và nửa C cao (PC3 – PC7) để đối thoại với VXL và TBN. Chiều và chế độ 1 của cổng A và B do từ điều khiển quyết định. tín hiệu /OBF chuyển sang mức tích cực 0 để thông báo cho TBN biết dữ liệu đã được chốt ở cổng ra và sẵn sàng cho TBN đọc. khi đó tín hiệu /OBF được tự động chuyển về mức cao. Các bit còn lại của cổng C là vào hay ra tuỳ từ điều khiển chế độ Chế độ ra: Mỗi khi dữ liệu được ghi ra cổng. chiều . /OBF (Output Buffer Full): Là tín hiệu ra thông báo cho TBN biết dữ liệu đã được chốt ở cổng ra A hoặc B. Nhóm B gồm cổng B để trao đổi số liệu và nửa C thấp (PC0 – PC2) để đối thoại với VXL và TBN. TBN kích hoạt tín hiệu /ACK cho biết đã đọc dữ liệu. Chia thành 2 nhóm.PA7 ACKAOBFA Đối thoại cửa B Đối thoại cửa A Chế độ này còn gọi là chế độ vào ra có đối thoại với các bit cổng C. /ACK (Acknowledge): Tín hiệu xác nhận báo về từ TBN làm cho chân OBF chuyển lên mức cao.PB7 INTRA Cửa vào Cửa ra IBFB STBB OBFB ACKB STBA IBFA I/O I/O I/O I/O PA0 . nếu là cổng vào. nhận các tín hiệu yêu cầu STBB và xác nhận /ACKB của thiết bị ngoài cho cổng B chung cho cả 2 chiều vào hay ra. PC4 nhận /STBA của thiết bị ngoài và PC6 nhận /ACK của thiết bị ngoài nếu cổng A là cổng ra. Còn nửa A. 60 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử Cổng A: Chế độ 1. B PC0 luôn là tín hiệu ra INTRB: tín hiệu yêu cầu ngắt chương trình cho B PC3 luôn là tín hiệu ra INTAA: tín hiệu yêu cầu ngắt chương trình cho A PC2 luôn là tín hiệu vào.

chiều Port B I/O PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 Port A I/O INTRA PB0 . Cổng B lúc này có thể hoạt động ở chế độ 0 hoặc 1. Khi có tín hiệu /RD tín hiệu này sẽ thôi tích cực. -> Ta có giá trị của từ điều khiển là 98H Cổng B hoạt động ở chế độ 1. C thấp ra.PA7 (2 chiều) Cửa B có thể ở chế độ 0 hoặc 1 Cửa A ở chế độ đối thoại 2 chiều Chế độ này chỉ dùng cho cổng A với vào ra hai chiều và các bit PC3 – PC7 dùng làm tín hiệu hội thoại. Cổng A vào. C cao vào. Cổng A hoạt động ở chế độ 0. B ra. INTEA được liên kết với PC6 nếu cổng A hoạt động ở chế độ ra. chiều vào hay ra có thể đặt bằng từ điều khiển. PC4 nếu ở chế độ vào INTEB liên kết với PC2 với cả chiều ra và vào của cổng B Chế độ vào: /STB: Chân nhận tín hiệu xung chốt. tích cực khi /STB chuyển sang mức cao. • Chế độ 2: Cổng A: Chế độ 1.PB7 I/O (Chế độ 0) Đối thoại (Chế độ 1) STBA IBFA ACK OBFA PA0 . cổng C thấp không quan tâm Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 61 . vào. Cổng C cao ra.Chương 5: Ghép nối trao đổi tin song song INTR: Tín hiệu này thông thường dùng để ngắt VXL mỗi khi TBN gửi lại tín hiệu /ACK INTE (Interrupt Enable): Bit nội. báo cho TBN biết 8255 đã chốt dữ liệu ở cổng vào. dữ liệu đưa từ TBN vào 8255 sẽ được chốt ở cổng vào. Ví dụ: Giả thiết ta cần thiết lập: PPI hoạt động ở chế độ 0. Khi có một xung mức thấp tác động vào chân này. Tín hiệu này sẽ trở về mức thấp khi VXL đọc tín hiệu đang chốt ở cổng (khi tín hiệu /RD tích cực) INTR: Tín hiệu ngắt VXL. dùng để cho phép hay cấm tín hiệu INTR. IBF: Khi tín hiệu /STB tích cực tín hiệu IBF sẽ được chuyển sang mức cao. ra.

An PA0 – PA7 Ghép nối 8255A với MVT và TBN Phần ghép nối với Máy tính Các tín hiệu về số liệu (data bus) D0 – D7. đóng vai trò trung chuyển tin giữa VXL và TBN qua các đường tín hiệu của Máy tính và TBN.> Giá trị từ điều khiển: 87H hoặc 86H • Từ trạng thái Thông thường khi sử dụng 8255 ở chế độ 1 và 2.A1). ta có thể biết được các thông tin sau: Có yêu cầu ngắt chương trình để trao đổi tin của các cổng A (INTRA) hay B (INTRB) Các thanh ghi đệm số liệu vào đã có số liệu (IBFA=1.4 Ghép nối 8255A với Máy tính và TBN Sơ đồ ghép nối cổng vào ra theo chương trình với VXL và TBN như hình dưới. PPI 8255A đặt giữa VXL và TBN. /OBFB = 0) Hoặc riêng với chế độ 2. lệnh ghi (WR) được nối thẳng với các lối vào tương ứng của PPI 8255A Tín hiệu /CS (Chip Select) của PPI được nối với bộ giải mã các địa chỉ cao (A2 – An) của VXL Các tín hiệu ra yêu cầu ngắt chương trình (INTRA .Chương 5: Ghép nối trao đổi tin song song . khi có ngắt xảy ra. địa chỉ thấp (A0. Do đó ta có thể coi địa chỉ cổng C trong chế độ 1 và 2 là địa chỉ của thanh ghi trạng thái của 8255. ta cần phải đọc từ trạng thái để biết được nguyên nhân gây ra ngắt là do 8255 đã nhận được dữ liệu hay đã gửi được dữ liệu để có các hoạt động tương ứng. Đọc thanh ghi trạng thái này. 5. Tuy nhiên ta có thể sử dung phương pháp hỏi vòng trạng thái bằng cách đọc cổng C để biết được trạng thái hoạt động của 8255. lệnh đọc (RD).2. INTR D0 – D7 8 D0 – D7 INTR INTR 8 PA0 – PA7 Reset RST VXL A0 A1 Giải mã địa chỉ 8255 A PC 8 TBN A2 . INTRB) của 8255 được nối vào lối vào INTR của VXL qua một vi mạch logic OR 62 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . ta thường dùng phương pháp điều khiển bằng ngắt chương trình. IBFB=1) Các thanh ghi đệm ra đã có số liệu (/OBFA = 0.

giữa 8255 và TBN chỉ trao đổi hai tín hiệu hỏi đáp mà thôi Một số ứng dụng ghép nối 8255 với thiết bị ngoài: Mạch ghép nối 8255 ở chế độ 0: Ở hình 4. Chế độ 2: Chỉ cho cổng PA với số liệu vào/ra hai chiều. còn các đường PCi của cổng PC để dùng để hội thoại cho các cổng A. đọc trạng thái của máy in và ADC PC0 cho trạng thái máy in bận (busy) PC1 cho tín hiệu ACK của máy in PC2 Cho tín hiệu EOC (End of Convertion) của ADC Nửa C cao để đưa ra các tin về điều khiển PC4 đưa ra tín hiệu chốt dữ liệu cho máy in PC5 đưa ra tín hiệu Start cho ADC. Chế độ 0: Ba đường tín hiệu PA. PB. Trong đó: Nửa C thấp là cổng vào. số bit của đường tín hiệu số liệu và phương thức trao đổi tin mà ta có cách mắc đường tín hiệu khác nhau. Các đường này có chiều và vai trò xác định do đó không thể thay đổi. chỉ có trao đổi số liệu trên 1 trong 3 cổng o Nếu cần tin về điều khiển hay đọc trạng thái của TBN ta sử dụng thêm các cổng khác cho mục đích này ngoài cổng trao đổi số liệu Chế độ 1: Chỉ có hai cổng A.Chương 5: Ghép nối trao đổi tin song song Phần ghép nối với thiết bị ngoài: Tuỳ thuộc loại TBN.B trao đổi số liệu độc lập nhau. và ghép nối với một bộ biến đổi tương tự . Các bit của PC cũng có vai trò và chiều xác định Ở các chế độ bắt tay (đối thoại). Ở chế độ này có thể: o Không cần đối thoại giữa 8255 và TBN. Cổng C được dành cho các tín hiệu đối thoại.B ở trên.x giới thiệu cách ghép nối 8255 với máy in qua cổng PA có chiều ra. Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 63 .số qua cổng PB có chiều vào. PC đều được dùng để trao đổi số liệu hoặc tin về điều khiển và trạng thái một cách bình đẳng với nhau và tuỳ ý lựa chọn.

Đưa tin ra các bit của các cổng 3.Chương 5: Ghép nối trao đổi tin song song D0 – D7 8 PA0 – PA7 D0 – D7 PC0 PC1 Reset RST PC4 /ACK Busy Data Strobe PB0 – PB7 EOC Start INTR Máy in VXL A0 A1 Giải mã địa chỉ 8255 A PC3 PC5 ADC A2 . chương trình cần có các khối lệnh cơ bản sau: 1. 64 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Chế độ của các cổng .Lập/ xoá từng bit PCi của cổng PC .Các lệnh đọc vào o Thanh ghi trạng thái nếu cổng dùng chế độ 1.2 các bit nay là các bit PCi của đối thoại. Đọc và kiểm tra trạng thái: . Còn trường hợp ở chế độ 0 ta có thể dùng một trong hai cách sau: . A1 = 11 tới từ điều khiển. Các bit từ điều khiển này được xác định bởi: .An EOC Start ADC Ghép nối 8255A với MVT và TBN ở chế độ 1 Chương trình trao đổi tin cho 8255A Tuỳ theo cách mắc và TBN. 2 o Một cổng bất kỳ ở chế độ 0 dùng để ghi trạng thái của TBN. Nếu ở chế độ 1. ta không cần phải viết lệnh đưa giá trị ra nữa.Chiều (vào/ra) của các cổng 2. Khởi tạo: đó là lênh ghi vào thanh ghi điều khiển của 8255 với địa chỉ thấp A0. Điều khiển TBN: Cần đưa nội dung của các bit cho các cổng dùng để điều khiển TBN.An Ghép nối 8255A với MVT và TBN ở chế độ 0 • Ghép nối 8255 ở chế độ 1: INTR D0 – D7 8 D0 – D7 PC3 PC0 PA /ACK Busy Data Strobe PB Reset RST Máy in VXL A0 A1 Giải mã địa chỉ 8255 A A2 .

Đưa số liệu vào (IN đv VXL họ 86) hay chuyển số liệu MOV (của VXL 8085) . Chế độ Nibble có thể cho phép đưa vào 4 bit song song một lần.Chương 5: Ghép nối trao đổi tin song song Lệnh và logic (AND) để chắn các bit không cần kiểm tra Lệnh so sánh (CMP) với các giá trị 1 của bit đó Lệnh trở về vị trí có lệnh đọc trạng thái nếu kết quả so sánh không đúng trạng thái cần xét 4. Trong hầu như bất kỳ PC nào ta cũng có thể tìm thấy cổng máy in ở phía sau. do tính phổ cập và đơn giản trong việc ghép nối và điều khiển cộng với yêu cầu tối thiểu về thiết bị phần cứng thêm vào. Chế độ Byte 4. phần mềm phải thực hiện các bước sau: Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 65 . Ghép nối song song qua cổng máy in 5. Chế độ ECP Chế độ cớ sở (hay còn gọi là Centronics mode) được biết đến từ lâu. với tốc độ tối đa 150kB/s.Đưa số liệu ra (OUT ) hay chuyển số liệu MOV - 5. Chế độ EPP 5. Các cổng song song gần đây được chuẩn hoá theo chuẩn IEEE 1284 đưa ra năm 1994.3.1 Giới thiệu chung Cổng máy in là giao diện thường được sử dụng nhiều nhất trong các ứng dụng ghép nối máy tính đơn giản. Chế độ này chỉ cho phép đưa dữ liệu theo một chiều ra (output). Muốn thu dữ liệu (input) ta phải chuyển sang chế độ Nibble hay Byte. Để đưa ra một byte ra máy in ( hoặc các thiết bị khác) trong chế độ cơ sở. Chuẩn này mô tả 5 chế độ hoạt động của cổng máy in như sau: 1. Chế độ Nibble 3. Cổng này cho phép đưa vào tới 13 bit và đưa ra 12 bit song song. 5 đường báo trạng thái và 8 đường dữ liệu. Chế độ Byte sử dụng tính năng song song hai hướng của cổng máy in để đưa vào một byte. Trao đổi số liệu: . Chế độ tương thích (Compatibility mode) 2.3. trong đó có 4 đường điều khiển. Đầu nối này có dạng DB 25 chân (giắc cái – female).

Ngoài ra chế độ ECP còn hỗ trợ sử dụng kênh DMA và có thêm bộ đệm FIFO. nó sẽ không chấp nhận bất cứ dữ liệu nào. để báo với máy in là đã có dữ liệu trên đường truyền ( chân 2 . 5. Hướng Thanh Số hiệu Tên Mô tả chân (In/Out) ghi 1 nStrobe In/Out Control Byte được in 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 .3. do đó dữ liệu ghi ra lúc đó sẽ bị mất (3) Nếu máy in không bận.25 Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 nAck Busy Paper-Out / Paper-End Select nAuto-Linefeed nError / nFault nInitialize nSelect-Printer / nSelect-In Ground Out Out Out Out Out Out Out Out In In In In In/Out In In/Out In/Out Gnd Data Data Data Data Data Data Data Data Status Status Status Status Control Status Control Control Đường dữ liệu D0 . giống dạng B nhưng nhỏ hơn. nếu máy in bận. tạo xung strobe và thiết lập sự bắt tay thích hợp. Ở chế độ này để cho phần cứng kiểm tra trạng thái máy in bận. có các thuộc tính điện tốt hơn và có thêm 2 đường tín hiệu dành cho các thiết bị đời mới sau này.2 Cấu trúc cổng máy in Chuẩn IEEE 1284 đưa ra 3 đầu nối dùng cho cổng máy in.9) (4) Sau đó chờ 5 micro giây và đặt chân Strobe lên cao (mức 1). Dạng A (DB25) có thể thấy ở hầu hết các máy PC. Chế độ mở rộng (EPP) và nâng cao (ECP) sử dụng các thiết bị phần cứng tích hợp thêm vào để thực hiện và quản lý việc đối thoại với thiết bị ngoài. 36 chân. Khi đó cổng này có thể đưa dữ liệu ra với tốc độ 1 – 2 MB/s.Chương 5: Ghép nối trao đổi tin song song (1) Viết dữ liệu ra cổng máy in (ghi vào thanh ghi dữ liệu) (2) Kiểm tra máy in có bận không. dạng B (36 chân) thường thấy ở máy in. Do đó chỉ cần sử dụng một lệnh vào ra để trao đổi dữ liệu nên giúp tăng tốc độ thực hiện. và dạng C. đặt chân Strobe (chân 1) xuống thấp (mức 0).D7 Xác nhận (Acknowledge) Máy in bận Hết giấy ( Paper Empty) Lựa chọn ( Select ) Tự nạp giấy ( Auto Feed) Lỗi Đặt lại máy in 66 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

Nếu ta đọc dữ liệu ở cổng này ta sẽ thu được giá trị mà ghi ra gần nhất. Thanh ghi dữ liệu (Data Register) Địa chỉ Tên Read/Write Base + Data 0 Port Write Số hiệu bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Mô tả Data 7 Data 6 Data 5 Data 4 Data 3 Data 2 Data 1 Data 0 Mô tả Địa chỉ cơ bản cổng LPT1 Địa chỉ cơ bản cổng LPT2 Địa chỉ cơ bản cổng LPT3 Địa chỉ cơ bản cổng LPT4 Địa chỉ cơ sở (Base address) thường gọi là cổng dữ liệu (Data port) hay Thanh ghi dữ liệu (Data Register) thường sử dụng để đưa dữ liệu ra các chân tín hiệu ( Chân 2 – 9).37Fh 278h . Thanh ghi trạng thái ( Status Register): Địa chỉ Base + 1 Tên Status Port Read/Write Read Only Số hiệu bit Bit 7 Bit 6 Mô tả Busy Ack 67 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Nếu cổng máy in là hai chiều thì ta có thể thu giữ liệu vào từ cổng này. Address 378h . 2. Thanh ghi này thường là thanh ghi chỉ ghi.3.Chương 5: Ghép nối trao đổi tin song song nXXXX: Tích cực ở mức thấp Bảng sơ đồ chân của cổng máy in Tín hiệu ra của cổng máy in thường ở các mức logic TTL.27Fh Cæng LPT 1 LPT 2 Khi khởi động BIOS gán địa chỉ cho các cổng máy in và lưu thông tin địa chỉ này trong bộ nhớ ở địa chỉ cho ở bàng dưới: Địa chỉ bắt đầu 0000:0408 0000:040A 0000:040C 0000:040E 5.3 Các thanh ghi của cổng máy in: 1.

một bit trạng thái ngắt IRQ và 2 bit để dành. 15). Cổng trạng thái được tạo bới 5 đường tín hiệu vào (Chân 10. Tương tự với bit 2 (nIRQ) nếu có giá trị 1 có nghĩa là không có yêu cầu ngắt nào xuất hiện. Đó là các đường Strobe. Thanh ghi điều khiển ( Control Register): Địa chỉ Tên Base + Control 2 Port Read/Write Read/Write Số hiệu bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Mô tả Unused Unused Enable Bi-Directional Port Enable IRQ Via Ack Line Select Printer Initialize Printer (Reset) Auto Linefeed Strobe Thanh ghi điều khiển được dự định là chỉ ghi. 4 đường điều khiển sẽ được sử dụng. 11. Inittialize và Select Printer. Lập bit 5 cho phép thu dữ liệu vào qua đường Data0 – 7. Auto Linefeed. Khi một máy in được nối với máy tính. bit 7 sẽ có giá trị logic 0. Bất kỳ dữ liệu nào ghi ra cổng này đều bị bỏ qua.Chương 5: Ghép nối trao đổi tin song song Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Paper Out Select In Error IRQ (Not) Reserved Reserved Thanh ghi trạng thái là thanh ghi chỉ đọc. Bit 4 và 5 là các bit điều khiển nội. 4. 13. Thanh ghi điều khiển mở rộng ECR (Extended Control Register ): §Þa chØ Base + 402H Bit Function 7:5 Selects Current Mode of Operation 000 Standard Mode 001 Byte Mode 010 Parallel Port FIFO Mode 011 ECP FIFO Mode 68 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . nghĩa là khi có một tín hiệu +5V ở chân 11. 12. 3. Bit 4 cho phép ngắt và bit 5 cho phép cổng dữ liệu có chiều vào. tất cả đều là đầu ra đảo trừ đường Initialize. Chú ý rằng bit 7 (Busy) là đầu vào tích cực thấp.

hội thoại) chẳng hạn như tín hiệu stroble. Điều này đạt được do các thiết bị phần cứng tại các cổng tạo ra tín hiệu bắt tay (tín hiệu móc nối. thay cho sử dụng phần mềm xử lý chúng. Hai chiều Interrupt Line. EPP có hai chuẩn: EPP 1.Enhanced Parallel Port Cổng song song nâng cao (EPP) đã được thiết kế bởi sự liên kết giữa các hãng Intel. Các đặc trưng phần cứng EPP Khi sử dụng chế độ EPP. Cổng EPP ban đầu được mô tả theo chuẩn EPP 1. mức cao chỉ định là đang đọc Data Bus. Có một vài sự khác nhau giữa các chuẩn này nên có những ảnh hưởng tới các thao tác xử lý của thiết bị. SPP Signal Strobe Data 0-7 Ack Busy EPP IN/OUT Signal Write Out Pin 1 2-9 10 11 Function Mức thấp thể hiện một chu kỳ ghi.7 và EPP 1. EPP có tốc độ truyền dữ liệu tiêu chuẩn là từ 500KB/s tới 2MB/s. Ngắt xuất hiện ở sườn dương của xung Sử dụng cho bắt tay. Bên cạnh đó thì ECP lại yêu cầu thiết bị ngoại vi có sự “hội thoại” trở lại bởi một tín hiệu móc nối. Chúng sử dụng các tên chung trong SPP và EPP trong các bảng mô tả về cổng song song và các tài liệu. như trong chế độ SPP. EPP khác với ECP ở chỗ cổng EPP phát ra các tín hiệu và điều khiển tất cả quá trình truyền dữ liệu giữa nó và thiết bị ngoại vi. một tập các tác vụ khác nhau (có tên tương ứng) được sắp xếp trên mỗi đường dây tín hiệu.9. Các tín hiệu này được chỉ ra trong bảng 4. EPP được sử dụng rộng rãi hơn ECP. Xircom & Zenith Data Systems.3. Một chu kỳ EPP có thể bắt 69 Data 0-7 In-Out Interrupt In Wait In Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .4 EPP .7 và sau đó là chuẩn IEEE 1284 ra đời năm 1994. Điều này là không mềm dẻo cho việc thiết lập một liên kết logic và như vậy cần có một bộ điều khiển chuyên dụng hoặc một chip ngoại vi ECP. Do đó tất cả các tài liệu ở đây đều sẽ sử dụng tên theo EPP. Điều này có thể làm cho nó rất khó để chỉ rõ chính xác những gì đang xảy ra.Chương 5: Ghép nối trao đổi tin song song 100 EPP Mode 101 Reserved 110 FIFO Test Mode 111 Configuration Mode ECP Interrupt Bit DMA Enable Bit ECP Service Bit FIFO Full FIFO Empty 4 3 2 1 0 5.

Chi tiết về vấn đề này sẽ nói cụ thể sau. chỉ định là đang truyền dữ liệu Spare – Không sử dụng trong bắt tay EPP Reset .Tích cực thấp Khi ở mức thấp. kết thúc ở mức cao 12 13 14 15 16 17 Paper Out Spare /End Select Auto Linefeed Error/fault Initialize Select Printer Spare Data Strobe Spare In In Out In Spare – Không sử dụng trong bắt tay EPP Spare – Không sử dụng trong bắt tay EPP Khi ở mức thấp. 70 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Do phần cứng làm tất cả mọi việc nên các tín hiệu bắt tay này chỉ được sử dụng cho phần cứng của chúng ta mà không được sử dụng cho phần mềm như trong trường hợp với SPP. phần mềm chỉ cần thực hiện một thao tác vào/ra để khởi tạo cho thanh ghi EPP. Select và Error không được định nghĩa trong tập các tín hiệu bắt tay của EPP. chỉ định đang truyền đại chỉ Ground Reset Out Address Out Strobe Ground GND 18-25 Ground B ng 1 S s p x p các chân c a EPP. chúng ta phải tuân thủ thứ tự bắt tay của EPP. trong đó có 3 thanh ghi đã có từ chế độ SPP Address Base + 0 Base + 1 Base + 2 Base + 3 Base + 4 Base + 5 Base + 6 Base + 7 Port Name Data Port (SPP) Status Port (SPP) Control Port (SPP) Address Port (EPP) Data Port (EPP) Undefined (16/32bit Transfers) Undefined (32bit Transfers) Undefined (32bit Transfers) Read/Write Write Read Write Read/Write Read/Write - Quá trình bắt tay của EPP Để thực hiện một chu kỳ truyền dữ liệu hợp lệ khi sử dụng EPP. Các tín hiệu này có thể được sử dụng tuỳ ý theo sự nhu cầu của người sử dụng. Các tín hiệu Paper Out. Đáng tiếc là không có đầu ra dự trữ nào để cho sử dụng cho mục đích khác.Chương 5: Ghép nối trao đổi tin song song đầu khi ở mức thấp. Các thanh ghi trong chế độ EPP Chế độ EPP có một tập các thanh ghi mới. Trạng thái của các được tín hiệu này có thể được xác định tại bất kỳ thời điểm nào bằng các kiểm tra các bit của thanh ghi trạng thái. Để khởi tạo cho một chu kỳ EPP.

Máy tính chờ tín hiệu xác nhận thể hiện bởi /Wait chuyển sang mức cao 6. Dữ liệu được đặt lên đường truyền dữ liệu (2 – 9). Chu kỳ ghi dữ liệu EPP kết thúc Quá trình ghi địa chỉ EPP (Address Write Cycle) 1. Chu kỳ gửi địa chỉ EPP Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 71 . Giá trị địa chỉ được đặt lên đường truyền dữ liệu (2 – 7). /Data Strobe được kích hoạt nếu /Wait đang ở mức thấp (Sẵn sàng bắt đầu một chu kỳ mới) 5. 4. Chương trình ghi giá trị địa chỉ vào thanh ghi địa chỉ EPP (Base+3) 2. (Cho biết qúa trình ghi) 3. /Write được xoá về 0. (Cho biết đang có một thao tác ghi) 3. /Address Strobe được kích hoạt nếu /Wait đang ở mức thấp (Sẵn sàng bắt đầu) 5.Chương 5: Ghép nối trao đổi tin song song EPP Data Write Cycle 1. Máy tính chờ tín hiệu xác nhận ứng với /Wait đặt lên mức cao (TBN đã đọc địa chỉ xong) 6. Ngừng kích hoạt /Data Strobe 7. /Write được xoá về 0. Tín hiệu /Address Strobe ngừng tích cực 7. Chương trình ghi dữ liệu vào thanh ghi dữ liệu EPP (Base+4) 2. 4.

9 chuyển tín hiệu đợi (strobe) lên mức cao để kết thúc chu kỳ. EPP Address Read Cycle Ends Chú ý: Nếu sử dụng EPP 1.7 (trước IEEE 1284) tín hiệu Strobes cho dữ liệu và địa chỉ có thể được dùng để xác nhận sự bắt đầu của một chu kỳ rỗi của trạng thái đợi. /Data Strobe được kích hoạt nếu /Wait đang ở mức thấp (Sẵn sàng một chu kỳ mới) 3. Address 72 Port Name Read/Write Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Bảng sau cho thấy các thanh ghi đã có và các thanh ghi mới. Ngừng kích hoạt tín hiệu /Data Strobe . Data is read from Parallel Port Pins 5. Program reads EPP Address Register (Base+3) 2. Chương trình ra lệnh đọc thanh ghi dữ liệu EPP (Base+4) 2. EPP 1.Chương 5: Ghép nối trao đổi tin song song Chu kỳ đọc dữ liệu EPP 1. Tuy nhiên có 3 thanh ghi là kế thừa của cổng SPP. Kết thúc chu kỳ đọc dữ liệu 1. nAddr Strobe is deasserted 6. Host waits for Acknowledgment by nWait going high 4.7 và EPP 1. Cả EPP 1. Dữ liệu được đọc từ các chân tín hiệu của cổng 5. Các thanh ghi sử dụng trong chế độ EPP Cổng EPP cũng có một tập các thanh ghi mới. nAddr Strobe is asserted if Wait is Low (OK to start cycle) 3. Chu kỳ đọc địa chỉ EPP 6.9 sẽ chỉ bắt đầu một chu kỳ đợi ở mức thấp. Máy tính chở tín hiệu xác nhận (/Wait chuyển sang mức cao) 4.

Tất nhiên quá trình này không đồng thời với chu kỳ bus ISA. Chế độ EPP có giản đồ thời gian rất phụ thuộc vào giản đồ thời gian của bus ISA. Cổng trạng thái có một số thay đổi nhỏ. Nếu ta đã kết nối với một máy in và sử dụng chế độ phù hợp.Chương 5: Ghép nối trao đổi tin song song Base+0 Data Port (SPP) Base+1 Base+2 Base+3 Base+4 Base+5 Base+6 Status Port (SPP) Control Port (SPP) Address Port (EPP) Data Port (EPP) Undefined (16/32bit Transfers) Undefined (32bit Transfers) B ng 2: EPP Registers Write Read Write Read/Write Read/Write - Base+7 Undefined (32bit Transfers) Như ta có thể thấy. Vì thế nếu ta sử dụng một cổng EPP ta có thể đưa dữ liệu ra thanh ghi dữ liệu (Base+0) giống như ta thực hiện với SPP. Bây giờ ta có thể tưởng tượng rằng nếu một quá trình đọc hoặc ghi EPP được bắt đầu nếu như không có thiết bị ngoại vi nào nối Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử 73 . 3 thanh ghi đầu là giống hệt các thanh ghi trong tập thanh ghi của cổng SPP và chức năng cũng là giống. Bit 0 là để dự trữ đối với tập thanh ghi của SPP thì giờ đây nó là bit Time-out EPP. nếu muốn gửi một địa chỉ tới thiết bị. Sự kiện này xảy ra khi đường tín hiệu nWait là không được xác nhận trở lại trong khoảng 10µS (giá trị này tuỳ thuộc vào cổng khác nhau) của tín hiệu IOR hoặc IOW. ta sử dụng thanh ghi địa chỉ EPP (EPP Address Register) tại địa chỉ Base+3. Bit này sẽ được lập khi xuất hiện một Time-out EPP. card máy in phải khởi phát một chu kỳ đọc với tín hiệu Data Strobe hoặc Address Strobe đầu ra. cổng phải đảm nhận trách nhiệm điều khiển phù hợp các tín hiệu hội thoại Read/Write và trả lại dữ liệu như trong chu kỳ bus của ISA. Thiết bị ngoài vẫn có thể đưa ra tín hiệu yêu cầu đọc qua đường tín hiệu yêu cầu ngắt và ISR (chương trình con phục vụ ngắt) sẽ thực hiện công việc đọc. Nếu muốn truyền thông với một thiết bị tương thích EPP thì tất cả công việc ta phải làm là gửi dữ liệu ra thanh ghi dữ liệu EPP (EPP Data Register) tại địa chỉ Base+4 và cổng máy in sẽ sinh ra tất cả các tín hiệu bắt tay cần thiết. vì thế cổng sử dụng tín hiệu điều khiển IOCHRDY (I/O Channel Ready) trên bus ISA để cho biết trạng thái đợi cho đến khi hoàn thành chu kỳ bus. Cả thanh ghi địa chỉ và dữ liệu đều có thể đọc và ghi. mặc dù. thì ta phải kiểm tra xem cổng có bận không. tiếp theo ta có thể tạo xung strobe và kiểm (Ack) tra thông qua việc ghi/đọc thanh ghi điều khiển và trạng thái. do đó để đọc dữ liệu từ thiết bị ta có thể sử dụng cùng một thanh ghi. Các tín hiệu IOR và IOW là các tín hiệu đọc và ghi thiết bị (I/O Read và I/O Write) trên bus ISA. Khi thực hiện một chu kỳ đọc. Tương tự như vậy.

nếu cổng song song được đặt trong chế độ nhận.Chương 5: Ghép nối trao đổi tin song song vào thì sẽ ra sao? Cổng sẽ không bao giờ nhận được một tín hiệu xác nhận (nWait) vì thế mà để có được một yêu cầu cho trạng thái đợi. nWrite và nReset ở trạng thái không tích cực (ở mức cao). máy tính phải thực hiện một vòng lặp kiểm tra. Trên một vài card. thì một chu kỳ ghi EPP sẽ không thể thực hiện được. do đó nó duy trì việc gửi tín hiệu yêu cầu và chờ kết thúc trạng thái “wait”. Một vài cổng yêu cầu ta phải lập các bit này trước khi thực hiện một chu kỳ bus EPP. cổng EPP có thể không đảm bảo đúng chức năng của nó. Ba thanh ghi: Base+5. Trong trạng thái rỗi. EPP chỉ có 2 thanh ghi chính và một cờ trạng thái time-out. cổng EPP cần phải có các tín hiệu nAddress Strobe. Vì vậy nó sẽ tự biết phải đặt cổng vào chế độ ra trước khi sử dụng EPP. chúng ta có thể thiết lập chúng những gì? Trước khi ta có thể bắt đầu bất kỳ một chu kỳ EPP bằng việc đọc và ghi tới thanh ghi dữ liệu và thanh ghi địa chỉ thì cổng phải được cấu hình một cách đúng đắn cho chế độ làm việc của nó. Base+6 và Base+7 có thể được sử dụng cho các thao tác đọc/ghi 32 bits dữ liệu nếu như cổng có hỗ trợ cho nó. Lập trình cổng máy in trong chế độ EPP.. sẽ luôn luôn đọc giá trị 0FFh từ cả chu kỳ địa chỉ và chu kỳ dữ liệu. và máy tính sẽ bị treo. Vì vậy mà EPP thực hiện một kiểu kiểm tra watchdog mà thời gian time out là xấp xỉ 10µS. Việc xoá bits 5 của thanh ghi điều khiển cần phải được thực hiện trước. Vì vậy nhiệm vụ đầu tiên của chúng ta là khởi tạo một cách thủ công các tín hiệu này bằng việc sử dụng các thanh ghi của SPP. Bit time-out của EPP EPP: Khi bit này được lập. Cổng song song có thể chi truyền dữ liệu 8 bits tại một thời điểm cho nên bất kỳ một word 16 hay 32 bits được ghi tới cổng song song sẽ được chia thành các byte và được gửi qua 8 bit dữ liệu của cổng song song. Điều này có thể làm giảm các thao tác vào/ra của ta. nData Strobe. Bit này nên được xoá để các thao tác được tin cậy và nó phải luôn được kiểm tra. Cụ thể là ghi giá trị xxxx 0100 tới thanh ghi điều khiển để khởi tạo. 74 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .

nguyên lý hoạt động. … Tóm tắt chương: Đặt vấn đề Yêu cầu và thủ tục trao đổi tin nối tiếp: Truyền thông nối tiếp sử dụng giao diện RS-232: Giao tiếp USB của máy PC: .CHƯƠNG 6. USB. GHÉP NỐI TRAO ĐỔI TIN NỐI TIẾP Mục tiêu: Trình bày các kiến thức cơ bản về ghép nối và truyền thông nối tiếp nói chung và qua giao diện nối tiếp của máy tính nói riêng. Trình bày cấu trúc. nguyên tắc ghép nối và lập trình của các giao diện nối tiếp của máy tính như cổng COM.

2. RS485 có tốc độ truyền và khoảng cách cho phép xa hơn. … . RS449. một đường để nhận. .Chuẩn RS232 được xây dựng thành chuẩn chính thức dành cho truyền thông nối tiếp. Chuẩn này cho phép truyền với tốc độ cực đại 19. và sẽ chú trọng hơn tới phương pháp truyền thông không đồng bộ do được dùng trong chuẩn RS232 của cổng nối tiếp COM Trong truyền tin nối tiếp. tại một thời điểm chỉ có một bit dữ liệu được truyền đi và các bit dữ liệu được truyền tuần tự nhau. sau đó phải chuyển từ tín hiệu nối tiếp thành song song ở nơi nhận. khoảng cách >1000m 6.Các cách ghép nối này sử dụng phương pháp truyền thông tin (dữ liệu) theo kiểu nối tiếp. Truyền thông nối tiếp cần thêm công đoạn gia công tín hiệu để chuyển tín hiệu song song thành tín hiệu nối tiếp để gửi đi. Việc truyền thông sử dụng chung một đường tín hiệu cho cả hai hướng gọi là truyền bán song công (Half76 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Do đó với việc truyền tin ở khoảng cách xa và yêu cầu về tốc độ không lớn thì phương pháp truyền tin nối tiếp được sử dụng.Truyền thông nối tiếp có ưu điểm là cần ít đường tín hiệu. các bit dữ liệu được truyền nối tiếp nhau trên một đường tín hiệu duy nhất. các thiết bị đo lường.600 bit/s với khoảng cách nhỏ hơn 20 m . Vd: RS422: Tốc độ truyền 10Mbit/s. tuy nhiên tốc độ truyền là chậm. việc sử dụng phương pháp truyền tin song song sẽ đòi hỏi chi phí tốn kém về đường tín hiệu đồng thời cũng khó khăn trong việc chống nhiễu trên đường truyền. Thông tin thu nhận là tin cậy. Yêu cầu và thủ tục trao đổi tin nối tiếp: 6. Việc gia công tín hiệu này cũng tốn một khoản chi phí nhưng cũng giảm hơn nhiều so với truyền thông song song.1.Chương 5: Ghép nối trao đổi tin song song 6. Các thiết bị đầu cuối trong liên kết nối tiếp có thể là các loại thiết bị khác nhau nhưng chúng phải thống nhất với nhau về các quy tắc về giao thức cũng như định dạng dữ liệu. bộ biến đổi A/D. Đặt vấn đề Một trong những kỹ thuật ghép nối được sử dụng rộng rãi là kỹ thuật ghép nối TBN qua cổng nối tiếp . Tại một thời điểm chỉ có một bit dữ liệu được truyền trên đường tín hiệu.Sau đó ra đời một số chuẩn như RS422. Một liên kết giữa hai bên có thể sử dụng hai đường dữ liệu để truyền theo hai hướng riêng biệt hoặc có thể sử dụng chung một đường dữ liệu để truyền theo cả hai hướng vào các thời điểm khác nhau.2.Qua cổng nối tiếp có thể ghép nối chuột. Phần này sẽ trình bày về định dạng dữ liệu và giao thức truyền dữ liệu sử dụng trong truyền thông nối tiếp. . máy in. do hiệp hội các nhà công nghiệp điện tử EIA (Electronic Industries Association) năm 1962. Sự thống nhất này đảm bảo dữ liệu được gửi tới bên nhận và bên nhận có thể hiểu được dữ liệu đó.1 Yêu cầu: Khi khoảng cách giữa hai thiết bị trao đổi tin là rất lớn. có thể sử dụng một đường để truyền. modem ngoài.

Truyền đồng bộ bên nhận không cần phải biết trước tốc độ trao đổi tin mà chỉ cần qua tâm tới tín hiệu đồng bộ phát trên đường tín hiệu đồng bộ. Nếu bằng nhau thì tin truyền không bị lỗi. các byte này có giá trị là 16H ( mã ASCII của chữ Sync) Truyền thông đồng bộ phải thực hiện liên tục. Truyền thông đồng bộ rất hữu ích khi truyền ở khoảng cách gần bởi nó cho phép truyền thông với tốc độ cao. Trong máy tính PC. các khối được đánh dấu bởi các byte đánh dấu khung tin. 6. 6. máy in cũng như để truyền thông với máy tính khác. việc truyền thông đồng bộ là không khả thi do nó đòi hỏi có thêm một đường tín hiệu clock. Mỗi byte truyền đi sẽ bao gồm một bit Start để đồng bộ xung đồng hồ giữa hai bên và một bit Stop để đánh dấu kết thúc byte được truyền. liên kết nối tiếp sử dụng dạng Full-duplex. Có hai phương pháp truyền thông nối tiếp là truyền thông đồng bộ (Synchronous) và truyền thông không đồng bộ (Asynchronous). Tuy rằng cổng RS-232 . Ở phía thu. Thí dụ như bên nhận sẽ chốt dữ liệu gửi tới khi xuất hiện sườn lên của xung clock hay là sự thay đổi mức tín hiệu từ thấp lên cao. Tuy vậy với khoảng cách xa.gọi là đa thức sinh). Để làm được như vậy. Số dư của phép chia được ghi vào một byte FCS ( Frame Check Sum).duplex) còn trường hợp sử dụng hai đường tín hiệu riêng cho hai hướng cho phép truyền đồng thời cả hai hướng thì được gọi là truyền song công đầy đủ (Full-duplex). Tín hiệu đồng bộ này có thể có tần số thay đổi hoặc có một chu kỳ không xác định. Bên nhận cũng sử dụng sự thay đổi mức đó để xác định khi nào thì đọc bit dữ liệu gửi tới. khi không có dữ liệu cần truyền thì bên phát vẫn tiếp tục phải truyền các dữ liệu “trống” để duy trì sự đồng bộ. và tất cả các xung clock phải khớp nhau ở một mức độ nào đó. Cổng RS232 của máy PC sử dụng định dạng không đồng bộ để truyển thông với các thiết bị ngoài như modem.3 Trao đổi tin không đồng bộ . Mỗi khối tin đồng bộ thường gồm nhiều byte.2. đường truyền sẽ không cần có thêm một đường tín hiệu clock bởi vì mỗi bên đã có bộ phát xung đồng bộ của riêng nó.Asynchronous: Trong truyền thông không đồng bộ. Truyền thông đồng bộ thực hiện kiểm tra lỗi bằng phương pháp số dư vòng (chia tổng tin của khung cho một đa thức . hai bên truyền thông sử dụng chung một đường tín hiệu clock. Tín hiệu này được phát ra bởi một bên hoặc bởi một thiết bị phát xung đồng bộ riêng. cũng tính tương tự và so sánh kết quả. Tín hiệu này giúp điều khiển dòng dữ liệu. Có một tín hiệu phải có trong truyền tin nối tiếp đó là tín hiệu xung đồng hồ (clock). hơn nữa sẽ dễ bị nhiễu trên đường truyền.2 Trao đổi tin đồng bộ: Synchronous Trong truyền thông đồng bộ.2. Với mỗi loại thì cách sử dụng tín hiệu clock là khác nhau. Bên gửi và bên nhận sử dụng tín hiệu này để quyết định khi nào gửi và nhận mỗi bit. Nghĩa là mỗi bit truyền đi được xác định tại một thời điểm khi có sự thay đổi mức tín hiệu của tín hiệu clock. như vậy cần một đường dây thêm vào. hai bên phải thống nhất một tần số xung chung.

tiếp theo đó là 8 bit dữ liệu. Sau đó ta mới truyền dữ liệu đi dưới dạng nối tiếp. nếu truyền giá trị nhị phân (truyền file) thì sử dụng 8 bit. và ngược lại với Parity lẻ. Nếu không trùng nhau có nghĩa là đã có lỗi xảy ra trên đường truyền. Số 1 trong 8-N-1 chỉ ra rằng ở đây ta sử dụng 1 bit Stop. Trong đó mỗi byte dữ liệu gửi đi bao gồm một bit Start. Bit chẵn lẻ có thể là bit “Chẵn” hoặc bit “Lẻ”. Stop. Ký tự N trong 8-N-1 có nghĩa là trong dữ liệu truyền đi không có bit chẵn lẻ (Parity bit).Chương 5: Ghép nối trao đổi tin song song có thể sử dụng phương pháp truyền đồng bộ nhưng phương pháp truyền không đồng bộ vẫn thường được sử dụng nhiều hơn. sau đó so sánh với bit parity ở trong byte vừa nhận. Khi bên nhận nhận được byte dữ liệu nó sẽ kiểm tra để tính giá trị parity của byte được nhận. Trong trạng thái nghỉ. Nếu ta truyền với tốc độ 9600 baud thì trong một giây truyền được 960 byte. đơn vị này tương tương đương với đơn vị bit trên giây (b/s). 6. Với định dạng 8-N-1. thông thường được tính bằng đơn vị baud. Bên nhận sẽ thông báo lại để bên gửi truyền lại byte dữ liệu đó. Bit chẵn lẻ được sử dụng như một phương pháp kiểm tra lỗi truyền một cách đơn giản. Số bit stop cũng là một tham số cần quan tâm. Do đó.3. Ta phải chuyển một byte dữ liệu từ dạng song song thành dạng nối tiếp (bởi vì hầu hết các hệ thống số đều làm việc với các dữ liệu ở dạng song song). Trong đa số trường hợp. Tham số rất quan trọng trong quá trình truyền thông đó là tốc độ truyền dữ liệu. Số bit dữ liệu truyền đi trong một lần truyền có thể là từ 5 đến 8 bit tuỳ theo từng ứng dụng. Nếu truyên ký tự ASCII thì ta truyền 7 bit. đường tín hiệu truyền tin sẽ có trạng thái tương ứng với mức tín hiệu của bit Stop. khi sử dụng cổng RS-232 của máy PC để truyền thông. tất cả công việc của chúng ta là gửi byte dữ liệu cần truyền ra thanh ghi dữ liệu của vi mạch này. bắt đầu băng bit 0 ( hay bit LSB) và kết thúc bằng một bit Stop. Tiếp theo ta phải tạo ra một lời tin theo đúng định dạng cho trước bằng cách thêm các bit Start. Tốc độ truyền là số bit được truyền trên đường dây trên một đơn vị thời gian. Quá trình truyền thông không đồng bộ sử dụng một số định dạng khác nhau. Truyền thông nối tiếp sử dụng giao diện RS-232: Chúng ta thấy rằng việc truyền thông nối tiếp đòi hỏi rất nhiều thao tác phải thực hiện. Parity phù hợp.5 hoặc 2 bit. Cổng nối tiếp của máy PC có một vi mạch chuyên dùng để điều khiển truyền thông nối tiếp. 78 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Số bit stop có thể là 1. Thông dụng nhất là dạng 8-N-1. Việc truyền thông sử dụng phương pháp không đồng bộ không cần phải thực hiện liên tục. Sau đó mọi thao tác của quá trình truyền thông kể trên sẽ được vi mạch thực hiện dựa theo những thiết lập trong quá trình khởi tạo. tốc độ truyền một byte dữ liệu bằng 1/10 tốc độ truyền. Bit chẵn có nghĩa là bit parity được đặt là chẵn hay lẻ sao cho số các bit có giá trị 1 trong các bit dữ liệu bao gồm cả bit Parity là một số chẵn.

200 bps. một bit có độ dài là 3.Số dây kết nối ít. .6. Ngay sau bit Start.Có thể cung cấp nguồn cho các mạch điện đơn giản Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE (Data Communication Equipment). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường truyền. DCE là các thiết bị trung gian như MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính. vi điều khiển.3 ms. .1 ms. Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark). bit Start tiếp theo sẽ được gửi để bắt đầu truyền một byte mới. Bit đó gọi là bit Start. Các tín hiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền.3. Khi truyền với tốc độ 300 baud. PLC. bên gửi đưa giá trị logic 0 lên đường truyền trong khoảng thời gian bằng độ dài một bit. . được gọi là các tín hiệu bắt tay (handshake). có các ưu điểm sau: . trong khi với tốc độ 9600 baud thì có độ dài 0.2 Cổng nối tiếp RS 232 Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi.Khoảng cách truyền xa hơn truyền song song. . bắt đầu bằng bit LSB. Ngay sau đó hoặc sau một khoảng thời gian bất kỳ. Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations). Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20. Để báo việc bắt đầu truyền dữ liệu.Có thể truyền không dây dùng hồng ngoại.Cho phép nối mạng.Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc. Ngoài ra. 6. .1 Quá trình truyền một byte dữ liệu: Trong trạng thái rỗi.000 bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115. tất cả các ngõ ra đều có đặc tính chống chập mạch.Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).3. . Tiếp sau đó bên truyền sẽ gửi tiếp một bit có giá trị logic 1 lên đường truyền và duy trì trong khoảng thời gian ít nhất là độ dài một bit. … Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền). giá trị logic trên đường truyền luôn bằng 1. . mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA. bên truyền gửi tiếp 8 bit dữ liệu kế tiếp nhau.

Chương 5: Ghép nối trao đổi tin song song Các phương thức nối giữa DTE và DCE: Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng. Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng.1 – Tín hiệu truyền của ký tự A’ Các đặc tính kỹ thuật của chuẩn RS-232 như sau: Chiều dài cable cực 15m đại độ dữ liệu cực đại 20 Kbps Tốc Điện áp ngõ ra cực đại ± 25V 80 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau: Start 0 D0 D1 D2 D3 D4 D5 D6 D7 P Stop 1 Khi không truyền dữ liệu. Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng. Khi bắt đầu truyền. Dạng tín hiệu truyền mô tả như sau (truyền ký tự A): Hình 4. DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7 và Parity. nhưng mỗi thời điểm chỉ được truyền theo 1 hướng. đường truyền sẽ ở trạng thái mark (điện áp -10V). cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền.

4800 bps. Sơ đồ chân: .Điện áp ngõ ra có tải Trở kháng tải Điện áp ngõ vào Độ nhạy ngõ vào Trở kháng ngõ vào ± 5V đến ± 3K đến 7K ± 15V ± 3V 3K đến 7K Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps. 9600 bps và 19200 bps.

2. Ý nghĩa của các chân mô tả như sau: D25 D9 1 2 3 4 5 6 7 8 20 22 23 24 15 17 18 21 14 16 19 13 12 25 9 10 82 Tín hiệu TxD RxD RTS CTS DSR GND DCD DTR RI DSRD TSET TSET RSET LL RL STxD SRxD SRTS SCTS SDSRD TM Hướng truyền DTE DCE DTE DCE DCE DCE DTE DCE DCE DTE DCE DCE DCE DCE DTE DCE DTE DTE DTE DCE DTE DTE DCE DTE DTE DTE 3 2 7 8 6 5 1 4 9 - DTE DCE DCE DTE DTE DCE DCE DTE DCE DTE Mô tả Protected ground: nối đất bảo vệ Transmitted data: dữ liệu truyền Received data: dữ liệu nhận Request to send: DTE yêu cầu truyền dữ liệu Clear to send: DCE sẵn sàng nhận dữ liệu Data set ready: DCE sẵn sàng làm việc Ground: nối đất (0V) Data carier detect: DCE phát hiện sóng mang Data terminal ready: DTE sẵn sàng làm việc Ring indicator: báo chuông Data signal rate detector: dò tốc độ truyền Transmit Signal Element Timing: tín hiệu định thời truyền đi từ DTE Element Timing: tín hiệu định Transmitter Signal thời truyền từ Signal Element dữ liệu tín hiệu định thời Receiver DCE để truyền Timing: truyền từ DCE để truyền dữ liệu Local Loopback: kiểm tra cổng Remote Loopback: Tạo ra bởi DCE khi tín hiệu nhận từ DCE lỗi Transmitted Data Secondary Secondary Received Data Secondary Request To Send Secondary Clear To Send Secondary Received Line Signal Detector Test Mode Dành riêng cho chế độ test Dành riêng cho chế độ test Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .2 – Sơ đồ chân cổng nối tiếp Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như hình 4.Chương 5: Ghép nối trao đổi tin song song Hình 4.

11 Không dùng .

Ghép nối trao đổi tin nối tiếp Bảng 1: D Type 9 Pin and D Type 25 Pin Connectors Chức năng của các chân Chữ viết tắt Tên đầy đủ TD Transmit Data RD Receive Data CTS Clear to Send DCD Chức năng Serial Data Output (TXD) . Điều thứ hai máy tính phải có cùng cơ cấu như vậy thì RD được nối tới TD. Bất kỳ dữ liệu nào được truyền từ máy tính thứ nhất phải được nhận bởi một máy tính khác do đó TD được nối với RD. RD & SG) để mắc được xuyên thẳng qua vì vậy ảnh hưởng lớn đến chi phí để sử dụng chạy cáp dài. Tích cực khi modem phát hiện có một tín hiệu Ring Indicator chuông từ đường điện thoại DSR DTR RTS RI Null Modems Một Null Modem được sử dụng để nối cho hai DTE cùng nhau. Điều này cũng có thể được sử dụng với nhiều Microprocessor Development Systems (hệ thống phát triển bộ vi xử lý). Hình 1: Sơ đồ nối dây Null Modem Trên đây là phương pháp ưu tiên của việc nối dây của một Null Modem. Những modem này thường được sử dụng như một cách để nối mạng cho những trò chơi hoặc để chuyển giao giữa các file máy tính sử dụng giao thức Zmodem Protocol..Đầu ra của dữ liệu Serial Data Input (RXD) . Request To Thông báo cho Modem rằng UART sẵn sàng để Send trao đổi dữ liệu. Thông báo với UART rằng modem sẵn sàng thiết Data Set Ready lập một mối liên kết .Chương 6. . Mục tiêu là làm cho máy tính cho rằng nó là một modem hơn là một computer khác. Nguyên lý của thao tác khá đơn giản.. Nó chỉ yêu cầu 3 dây (TD. Báo với Modem rằng Ready UART sẵn sàng để liên kết . 84 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Tín hiệu Signal Ground (SG) cũng phải được nối chung cho cả hai máy tính. thì Line này Detect trở thành tích cực. Xmodem Protocol. Khi nào modem phát hiện ra một “Carrier” từ một Data Carrier modem kết thúc khác của phone line.Dữ liệu được nhập vào Báo rằng Modem sằn sàng trao đổi dữ liệu. Data Terminal Đây là sự đối lập với DSR.

Bởi vì những chương trình mà chúng ta yêu cầu khác nhau sẽ báo cho Loop Back plug cái mà có thể thay đổi từ chương trình này đến chương trình khác. Ghép nối trao đổi tin nối tiếp Data Terminal Ready (DTR) được nối vòng vào chân Data Set Ready (DSR) và Data Carrier Detect (DCD) trên cả hai máy tính. Nếu chúng ta nối thiết bị này với cổng nối tiếp nạp vào Terminal Program. lúc này ngay lập tức máy tính nhận được câu trả lời rằng nó có thể gửi dữ liệu và nó thực hiện ngay. DTE to DCE là tốc độ giữa modem và máy tính của chúng ta. Xin chú ý rằng thiết bị này chưa được dự định cho việc sử dụng với những chương trình Chẩn đoán (Diagnostic Programs) và sẽ có lẽ không làm việc. . thì bất cứ cái gì chúng ta đánh máy sẽ ngay lập tức được hiện lên trên màn hình. nó xác nhận sự có mặt của chân Request to Send ở mức cao và khi đó nó móc nối với chân Clear to Send. Một thiết bị đầu cuối dữ liệu (Data Terminal Device) tiêu biểu là một máy tính và một thiết bị truyền thông dữ liệu (Data Communications Device) tiêu biểu là một Modem. Khi chân Data Terminal Ready ở mức tích cực thì chân Data Set Ready và chân Data Carrier Detect ngay lập tức trở thành tích cực (active). Hình 2: Sơ đồ nối dây Loopback Plug Loopback plug thiết bị này có thể trở nên vô cùng dễ sử dụng khi viết những chương trình truyền thông sử dụng cổng nối tiếp RS232. Vào thời điểm này máy tính cho rằng Virtual Modem sẵn sàng được nối và phát hiện ra sóng mang của modem khác. Người ta thường nhắc đến tốc độ của DTE to DCE hoặc DCE to DCE. Trong khi cả hai máy tính giao thiệp với nhau ở cùng một tốc độ. Nó có thể nhận và truyền nhiều tuyến đường cùng nhau. Khi máy tính muốn gửi dữ liệu. DTE to DCE cần phải chạy ở một tốc độ nhanh hơn tốc độ của DCE to DCE.Chương 6. đôi khi được gọi là tốc độ đường truyền. Và vấn đề cần lo lắng bây giờ là chân Request to Send và chân Clear To Send. DCE to DCE là sự kết nối giữa các modem. vì vậy việc điều khiển luồng là không cần thiết do đó hai chân này được nối vòng với trên mỗi máy tính. vì thế mà mọi thứ được truyền ra ngoài của cổng nối tiếp thì ngay lập tức nhận được bởi cùng cổng đó. Tốc độ DTE / DCE Chúng ta đã nói tóm tắt về DTE và DCE. đôi khi được đề cập đến như là tốc độ của thiết bị cuối của chúng ta.

Chương 6. Ghép nối trao đổi tin nối tiếp

Hầu hết mọi người ngày nay có những modem với tốc độ 28,8K hoặc 33,6K. Bởi vậy chúng ta cần phải chờ đợi tốc độ của DCE to DCE cũng như tốc độ của modem là 28,8K hoặc 33,6K. Suy cho cùng vì tốc độ cao của modem nên chúng ta mong muốn tốc độ của DTE to DCE sẽ đạt đến khoảng 115,200 BPS (Maximum Speed of 16550a UART). Những chương trình truyên thông mà chúng ta sử dụng đã đặt tốc độ cho DCE to DTE. Tuy nhiên, chúng chỉ có tốc độ 9,6 KBPS, 14,4 KBPS ... và coi như nó là tốc độ modem của chúng ta. Những modem ngày nay có thể nén dữ liệu vào trong chúng (Data Compression). Điều này cũng như rất nhiều PK-ZIP nhưng phần mềm trong modem của chúng ta có thể nén và giải nén dữ liệu. Khi đưa ra đúng cách thức chúng ta có thể mong đợi việc nén số truyền với tỷ lệ 1:4 hoặc thậm chí còn cao hơn. Tỷ lệ nén dữ liệu 1:4 là rất tiêu biểu cho việc nén dữ liệu của những file văn bản. Nếu chúng ta chuyển những file văn bản đó ở 28,8K (DCE-DCE), thì khi modem nén nó chúng ta thực sự đang chuyển 115,2 KBPS giữa những computers và như vậy tốc độ của DCE-DTE là 115,2 KBPS. Như vậy dó là lý do tại sao tốc độ của DCE-DTE cần phải cao hơn tốc độ kết nối của modem. Tuy nhiên, hãy khoan lạm dụng modem của chúng ta nếu chúng ta không có những tốc độ mong muốn. Đó là những tỷ lệ nén cực đại. Trong vài trường hợp cá biệt nếu chúng ta cố gắng gửi cho một file nén, modem của chúng ta có thể mất nhiều thời gian hơn nén nó, vì vậy chúng ta có tốc độ truyền chậm hơn tốc độ kết nối của modem. Nếu điều này xảy chúng ta nên cố gắng tắt việc nén dữ liệu của chúng ta lại. Lúc này cần phải cố định trên những modem mới hơn. Một vài file nén dễ dàng hơn những file khác vì vậy bất kỳ file nào mà nén đơn giản thì tự nhiên sẽ có một tỷ lệ nén cao hơn. Điều khiển Luồng (Flow Control) Như vậy nếu tốc độ của DTE to DCE là nhanh hơn gấp vài lần tốc độ của DCE to DTE PC có thể gửi dữ liệu tới modem của chúng ta tại 115,200BPS. Sớm hay muộn dữ liệu sẽ bị mất khi bộ đệm bị tràn, trường hợp này điều khiển luồng sẽ được sử dụng. Điều khiển luồng có hai dạng cơ bản, phần cứng (hardware) hoặc phần mềm (software). Điều khiển luồng bằng phần mềm (Software flow control), đôi khi được biểu thị như Xon/Xoff sử dụng hai dạng ký tự Xon và Xoff. Xon thường cho biết bởi những ký tự của ASCII 17 trong khi đó ký tự ASCII 19 được sử dụng cho Xoff. Những modem chỉ có một bộ đệm nhỏ vì thế khi máy tính ghi đầy nó, Modem gửi một ký tự Xoff để báo cho máy tính dừng công việc gửi dữ liệu. Khi modem trống cho nhiều dữ liệu hơn, nó gửi một ký tự Xon và máy tính sẽ gửi nhiều dữ liệu hơn. Kiểu điều khiển luồng thế này có nhiều lợi thế rằng nó không yêu cầu bất kỳ tín hiệu riêng nào như những ký tự được gửi qua những đường TD/RD. Tuy nhiên mỗi ký tự yêu cầu liên kết chậm mất 10 bits điều đó có thể làm chậm việc truyền thông lại. Điều khiển luồng phần cứng (Hardware flow control) cũng được biết như điều khiển luồng RTS/CTS. Nó sử dụng hai dây trong cáp nối tiếp của chúng ta hơn là truyền thêm những ký tự trong đường dữ liệu của chúng ta.

86

Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử

Chương 6. Ghép nối trao đổi tin nối tiếp

Điều khiển luồng Phần cứng cũng được biết như điều khiển luồng RTS / CTS. Vì vậy điều khiển luồng phần cứng (hardware flow control) sẽ không làm chậm việc truyền thông lại như việc sử dụng Xon-Xoff thực hiện. Khi máy tính muốn gửi dữ liệu nó sẽ điều khiển hoạt động của đường Request to Send. Nếu modem có chỗ trống cho dữ liệu này, thì modem sẽ bằng việc điều khiển hoạt động của đường Clear to Send và máy tính bắt đầu gửi dữ liệu. Nếu modem không rỗng thì nó sẽ không gửi tín hiệu cho Clear to Send. • Vi mạch điều khiển truyền thông không đồng bộ van năng UART UART là viết tắt của Universal Asynchronous Receiver/Transmitter. Đa số các card sẽ có UART tích hợp vào trong những mạch điện tử chip khác mà cũng có thể điều khiển cổng song song của chúng ta, cổng games, floppy hoặc ổ đĩa cứng (hard disk drives) và tiêu biểu là những thiết bị giao tiếp với người sử dụng. Họ vi mạch 8250, bao gồm 16450, 16550, 16650, & 16750 UARTS là những kiểu thường thấy trên PC của chúng ta. Về sau chúng ta sẽ xem xét những kiểu khác. Hình 3: Sơ đồ Chân cho 16550, 16450 & 8250 UARTs

16550 là chip tương thích với 8250 & 16450. Chỉ khác ở hai chân 24 và 29. Chân 24 trên 8250 là việc lựa chọn chip ở ngoài mà chức năng chỉ là việc Ỏchỉ báoÕ tới nếu chip hoật động hoặc không. Chân 29 không được kết nối trên 8250/16450 UARTs. 16550 đưa vào hai chân mới trong nó. Đó là Transmit Ready và Receive Ready mà có thể thực thi với DMA (Direct Memory Access). Những chân này có hai kiểu thao tác khác nhau. Mode 0 hỗ trợ việc chuyển giao đơn DMA trong khi mode 1 hỗ trợ Multi-transfer DMA. Mode 0 cũng được gọi là mode 16450. Mode này được lựa chọn khi bộ đệm FIFO được vô hiệu hoá qua bit 0 của FIFO Control Register hoặc khi bộ đệm FIFO được cho phép nhưng DMA Mode Select = 0. (Bit 3 của FCR) Trong mode này RXRDY là tích cực ở mức thấp khi ít nhất một characters (Byte) có mặt trong Receiver Buffer. RXRDY sẽ không hoạt động ở mức cao khi không có nhiều characters tồn tại trong Receiver Buffer. TXRDY sẽ hoạt động ở mức thấp khi không có characters trong Transmit Buffer. Nó sẽ không hoạt động ở mức cao sau khi characters/byte đầu tiên được tải vào trong Transmit Buffer. Mode 1 là khi bộ đệm FIFO được kích hoạt và DMA Mode Select = 1. Trong mode 1, RXRDY sẽ hoạt động ở mức thấp khi trigger level là reached hoặc khi 16550 Time Out xảy ra và sẽ quay trở lại trạng thái không hoạt động khi không có characters trong FIFO. TXRDY sẽ được kích hoạt khi không

Chương 6. Ghép nối trao đổi tin nối tiếp

có characters có mặt bên trong Transmit Buffer và sẽ không được kích hoạt khi FIFO Transmit Buffer là hoàn toàn Full. Chân Chân 1:8 Chân 9 Chân 10 Chân 11 Chân 12 Chân 13 Chân 14 Chân 15 Chân 16 Chân 17 Chân 18 Chân 19 Chân 20 Chân 21 Chân 22 Tên D0:D7 6.3.2.1.1.1.1.1 Lời ghi chú

Chân 23

Chân 24 Chân 25 Chân 26 Chân 27 Chân 28 Chân 29 Chân 30 Chân 31 Chân 32 Chân 33 Chân 34 Chân 35
88

Data Bus Receiver Clock Input. Tần số đầu vào này cần phải cân RCLK bằng với receivers baud rate * 16 RD Nhận dữ liệu (Receive Data) TD Truyền dữ liệu (Transmit Data) CS0 Chip Select 0 - Active High CS1 Chip Select 1 - Active High nCS2 Chip Select 2 - Active Low Baud Output - Output from Programmable Baud Rate nBAUDOUT Generator. Frequency = (Baud Rate x 16) Đầu vào External Crystal Input – Sử dụng cho Baud XIN Rate Generator Oscillator XOUT Đầu ra External Crystal Output nWR Write Line – Inverted (Đảo) WR Write Line - Not Inverted (không đảo) VSS Kết nối tới Common Ground RD Read Line - Inverted nRD Read Line - Not Inverted Vô hiệu hoá bộ phận điều khiển (Driver Disable). Chân này rơi vào mức thấp khi CPU đọc từ UART. Có thể kết DDIS nối tới Bus Transceiver trong trường hợp bus dữ liệu có dung lượng cao. nTXRDY Transmit Ready Xung địa chỉ (Address Strobe). Sử dụng nếu tín hiệu nADS không ổn định trong suốt quá trình đọc hoặc ghi cycle A2 Address Bit 2 A1 Address Bit 1 A0 Address Bit 0 nRXRDY Receive Ready INTR Interrupt Output nOUT2 User Output 2 nRTS Request to Send nDTR Data Terminal Ready nOUT1 User Output 1 MR Master Reset
Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử

Chương 6. Ghép nối trao đổi tin nối tiếp

Chân 36 Chân 37 Chân 38 Chân 39 Chân 40

nCTS nDSR nDCD nRI VDD

Clear To Send Data Set Ready Data Carrier Detect Ring Indicator + 5 Volts

Bảng 2: Pin Assignments for 16550A UART Tất cả các chân của UARTs đều thích hợp với TTL. Bao gồm TD, RD, RI, DCD, DSR, CTS, DTR và RTS mà tất cả các giao diện trong đó là serial plug của chúng ta, typically a D-type connector. Vì vậy RS232 Level Converters (mà chúng ta sẽ nói cụ thể sau) đã được sử dụng. Cái này thông thường là DS1489 Receiver và DS1488 as PC has +12 and -12 volt rails mà có thể sử dụng bởi những thiết bị này. Trình chuyển đổi RS232 sẽ chuyển đổi tín hiệu TTL vào trong RS232 Logic Levels. UART yêu cầu một Clock để chạy. Nếu chúng ta xem xét card nối tiếp của chúng ta a common crystal tìm thấy cũng là a 1.8432 MHZ hoặc a 18.432 MHZ Crystal. crystal bên trong được kết nối tới chân XIN-XOUT của UART sử dụng thêm một số thành phần mà giúp đỡ crystal để khởi động oscillating. Clock này sẽ được sử dụng cho chương trình Programmable Baud Rate Generator là những giao diện trực tiếp bên trong mạch chuyển đổi thời gian ( transmit timing circuits) nhưng không trực tiếp bên trong mạch receiver thời gian ( receiver timing circuits). Đối với việc kết nối ngoài này được làm từ chân 15 (BaudOut) đến chân 9 (Receiver clock in). Chú ý rằng tín hiệu clock sẽ ở tại Baudrate*16. Registers của cổng nối tiếp • Bảng địa chỉ và ngắt của các cổng COM Tên COM 1 COM 2 COM 3 COM 4 Bảng 3: Bảng địa chỉ cơ sở Trên là bảng địa chỉ cơ sở. Chúng làm việc trong đa số các PC.Giống như cổng LPT, dữ liệu cơ sở cho các cổng COM có thể đọc từ Vùng Dữ liệu BIOS (BIOS Data Area). Start Address Function 0000:0400 COM1's Base Address 0000:0402 COM2's Base Address 0000:0404 COM3's Base Address 0000:0406 COM4's Base Address Bảng 4: COM Port Addresses in BIOS Data Area; Địa chỉ 3F8 2F8 3E8 2E8 IRQ 4 3 4 3

Mỗi địa chỉ sẽ chiếm 2 bytes. UART chỉ có một bus dữ liệu 8 bit. Divisor này có thể là bất kỳ số nào mà có thể cất giữ trong 16 bits (0 . nhưng nhiều thiết bị không đạt đươc tốc độ này. Ghép nối trao đổi tin nối tiếp Trên là bảng cho thấy địa chỉ mà chúng ta có thể tìm thấy địa chỉ các cổng nối tiếp trong BIOS. Để ví dụ chúng ta muốn truyền thông tại 2400 BPS. được cất giữ trong hai thanh ghi cho phép bởi bit DLAB.200 bởi 48 để có thể thực hiện được 2400 Hertz Clock. UART kết hợp chặt chẽ một bộ chia bởi bộ đếm 16 bit làm nhiệm vụ đơn giản là chia tín hiệu clock gửi đến cho 16. mà có thể cho phép chúng ta có một cực đại. DLAB là viết tắt của Divisor Latch Access Bit. Khi DLAB được đặt bằng ‘1’qua thanh ghi điều khiển.200 hz báo hiệu làm cho UART trở nên có khả năng truyền và nhận tại 115. Hai thanh ghi trở thành sẵn có từ đó chúng ta có thể đặt tốc độ truyền thông của chúng.Chương 6. Khi DLAB thiết lập ở ‘0’ hoặc ‘1’ sẽ có một vài thay đổi của thanh ghi.65535). Giá trị chia 48 trong trường hợp này. IER IIR FCR LCR MCR LSR MSR Register Name Transmitter Holding Buffer Receiver Buffer Divisor Latch Low Byte Interrupt Enable Register Divisor Latch High Byte Interrupt Identification Register FIFO Control Register Line Control Register Modem Control Register Line Status Register Modem Status Register Scratch Register Base Address +0 +1 +2 +3 +4 +5 +6 +7 Bảng 5: Bảng các thanh ghi Bit DLAB? Chúng ta nên chú ý trong bảng của Register có cột DLAB.200 Bits Per Second (BPS). UART sẽ có một giao động thạch anh mà cần phải dao động xung quanh 1.8432MHZ. Đây là lý do tại sao UART có thể có 12 thanh ghi (bao gồm cả thanh ghi scratch) mặc dù chỉ có 8 cổng địa chỉ. 90 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Giả thiết rằng chúng ta có tín hiệu đồng hồ 1. Chúng ta phải chia 115. Điều đó là phù hợp cho các modem nhanh hơn và các thiết bị mà có thể điều khiển tốc độ đó. 115. • Bảng các thanh ghi DLAB =0 =0 =1 =0 =1 Read/Write Write Read Read/Write Read/Write Read/Write Read Write Read/Write Read/Write Read Read Read/Write Abr.8432Mhz. Register đầu tiên (Base + 0 khi DLAB = 1) cất giữ byte thấp trong khi register thứ hai (base + 1 khi DLAB = 1) cất giữ byte cao của giá trị chia. Bởi vậy UART cần phải được thiết lập để hoạt động với tốc độ thấp hơn thông qua hai thanh ghi chốt giá trị chia tốc độ. vì vậy đây là nơi hai thanh ghi được sử dụng.

Ghép nối trao đổi tin nối tiếp Bên dưới là một bảng một số tốc độ và Divisor chốt của chúng ở byte thấp và byte cao. Chúng được lưu trữ đơn giản .Chương 6. Bit 4 đến 7 thì dễ dàng hơn. UART sẽ ngắt khi nhận sự chuyển đổi đường trạng thái. Bit 1 cho phép Transmit Holding Register Empty Interrupt. Tương tự như vậy đối với bit 3 thì cho phép ngắt modem trạng thái. Chú ý rằng tất cả các Divisor đều được đưa vào hệ 16. Speed Divisor Divisor Latch High Byte Divisor Latch Low Byte (BPS) (Dec) 50 2304 09h 00h 300 384 01h 80h 600 192 00h C0h 2400 48 00h 30h 4800 24 00h 18h 9600 12 00h 0Ch 19200 6 00h 06h 38400 3 00h 03h 57600 2 00h 02h 115200 1 00h 01h Bảng 6: Table of Commonly Used Baudrate Divisors • Interrupt Enable Register (IER) Bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Notes Reserved Reserved Enables Low Power Mode (16750) Enables Sleep Mode (16750) Enable Modem Status Interrupt Enable Receiver Line Status Interrupt Enable Transmitter Holding Register Empty Interrupt Enable Received Data Available Interrupt Interrupt Enable Register có thể là một trong những register đơn giản nhất và dễ hiểu trên UART. Bit 2 cho phép nhận đường ngắt trạng thái. Thiết lập bit 0 ở mức cao cho Received Data Available Interrupt mà tạo ra một ngắt khi nhận register/FIFO chứa dữ liệu để đọc bằng CPU. Ngắt này CPU khi bộ đệm truyền thông tin trống. • Interrupt Identification Register (IIR) Notes Bit 6 Bit 7 Bits 6 and 7 0 0 No FIFO Bit .

Ghi '0' tới bit này sẽ vô hiệu hoá thao tác truyền và nhận của FIFO. Bits 4 và 5 được lưu trữ. Bit 1 chịu trách nhiệm cho bộ đệm nhận trong khi bit 2 chịu trách nhiệm cho bộ đệm truyền. Để cho nhảy đến Bit 0 mà cho thấy interrupt xuất hiện. Điều này cần phải là kết quả duy nhất chúng ta sẽ có 8250 hoặc 16450. vì vậy chúng ta phải loose cất tất cả dữ liệu trong FIFO buffers. Khi cả hai bit này bằng ‘0’ thì không có FIFO buffers được kích hoạt.Chương 6. Ghép nối trao đổi tin nối tiếp 0 1 FIFO Enabled but Unusable 1 1 FIFO Enabled Bit 5 64 Byte Fifo Enabled (16750 only) Bit 4 Reserved 0 Reserved on 8250. Bits 6 và 7 đưa ra trạng thái FIFO Buffer. Register này được sử dụng để điều khiển FIFO (First In/First Out) buffers mà được tìm thấy trên 16550 cao hơn. Nếu cả hai bit là '1' thì FIFO buffers là tích cực hoàn toàn có thể dùng được. Nếu một interrupt xuất hiện trạng thái của nó sẽ hiện bởi bits 1 và 2. sau đó là Data Available Interrupt. Thiết lập những bit này lên 1 sẽ chỉ làm sạch nội dung của FIFO và sẽ không ảnh 92 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Điều này xảy ra trên 16550 UART khi có lỗi trên FIFO buffer làm không thể dùng được FIFO. Bit 3 cho thấy trạng thái của time-out interrupt trên 16550 or higher cao hơn. Nếu bit 7 là tích cực nhưng bit 6 là không tích cực thì UART có cho phép bộ đệm của nó nhưng lại không thể dùng được (it's buffers enabled but are unusable). Bit 0 cho phép thao tác nhận và truyền của FIFO. 16450 Bit 3 1 16550 Time-out Interrupt Pending Bit 2 Bit 1 0 0 Modem Status Interrupt Bits 1 and 2 0 1 Transmitter Holding Register Empty Interrupt 1 0 Received Data Available Interrupt 1 1 Receiver Line Status Interrupt 0 Interrupt Pending Bit 0 1 No Interrupt Pending Bảng 8: Interrupt Identification Register interrupt identification register là register chỉ đọc (read only register). Những ngắt đó làm việc ở trạng thái quyền ưu tiên. Bit's 1 và 2 điều khiển việc làm sạch việc truyền hoặc nhận của FIFO. First In/First Out Control Register (FCR) FIFO register là register chỉ ghi (write only register). tiiếp theo là Transmit Register Empty Interrupt và kế đó là Modem Status Interrupt mà có quyền ưu tiên thấp nhất . Line Status Interrupt có quyền ưu tiên cao nhất.

Bits 4 la bit dự trữ. vì vậy chúng ta không cần thiết lập bit này về 0 khi kết thúc. Ví dụ nếu bit 7 được thiết lập nên '1' và bit 6 được thiết lập xuống '0' thì trigger level sẽ thiết lập với 8 bytes. Transmitter buffer & 0 Interrupt Enable Register Bit 6 Set Break Enable Bits 3. Line Control Register (LCR) Bit 7 1 Divisor Latch Access Bit Truy cập tới Receiver buffer. Ghép nối trao đổi tin nối tiếp hưởng đến thanh ghi. Bits 0 And Bit 1 Bit 0 Word Length . Bit 2 Clear Transmit FIFO Bit 1 Clear Receive FIFO Bit 0 Enable FIFO's Bảng 9: FIFO Control Register Bit 3 cho phép DMA lựa chọn mode mà được tìm thấy trên 16550 UARTs và cao hơn. Thay đổi trạng thái của chân RXRDY & Bit 3 TXRDY từ mode 1 đến mode 2. Bit Notes Bit 7 Bit 6 Interrupt Trigger Level 0 0 1 Byte Bits 6 0 1 4 Bytes and 7 1 0 8 Bytes 1 1 14 Bytes Bit 5 Enable 64 Byte FIFO (16750 only) Bit 4 Reserved DMA Mode Select.Chương 6. Khi có 8 bytes của dữ liệu trong receive FIFO thì ngắt Received Data Available được thiết lập (See IIR).7 or 8 bits or 1.5 Stop 1 Bits for Word lengths of 5 bits. Hai bit này sẽ cùng được xác lập lại. 4 Bit 5 Bit 4 Bit 3 Parity Select And 5 X X 0 No Parity 0 0 1 Odd Parity 0 1 1 Even Parity 1 0 1 High Parity (Sticky) 1 1 1 Low Parity (Sticky) Bit 2 Length of Stop Bit 0 One Stop Bit 2 Stop bits for words of length 6. Bits 6 and 7 được sử dụng để thiết lập triggering level on Receive FIFO.

nếu nó thiết lập về '0' thì không có parity được sử dụng. Ghép nối trao đổi tin nối tiếp 1 0 0 1 1 0 1 0 1 5 Bits 6 Bits 7 Bits 8 Bits Bảng 10: Line Control Register Line Control register thiết lập những tham số cơ bản cho việc truyền thông. trong trường hợp ngược lại.Chương 6. Đó là. Bit này có rất ít thành công trong việc kiểm tra lỗi như nếu 4 bit đầu tiên có lỗi nhưng sticky parity bit chứa việc thiết lập bit thích hợp. thì một parity lỗi sẽ không cho kết quả. tuy nhiên nếu thiết lập nó lên ‘1’ sẽ đem lại 1. Thông thường thì độ dài là 8 bit. Bit 7 là Divisor Latch Access Bit (DLAB). 4 và 5 lựa chọn parity. Thiết lập bit này về '0' vô hiệu hoá Break (Disables Break). sticky parity thấp thì sử dụng '0' cho parity bit. Bit 6 thiết lập cho phép dừng ( Break). tuy nhiên nếu hai bit bị lật theo một cách nào đó mà nó sinh ra parity bit thì việc parity bị lỗi là không thể phát hiện được. Chúng ta đã nói về chức năng của nó (Xem DLAB). Việc thiết lập những bit này về ‘0’ sẽ đem lại một stop bit. vì thế CRC-32 được sử dụng thường xuyên cho sửa lỗi phần mềm. Các 3. nhưng nếu nó thiết lập tới '1' thì parity được sử dụng. Sticky parity cao là sử dụng '1' cho parity bit. Điều này cung cấp sự kiểm tra lỗi tốt hơn nhưng vẫn không phải là hoàn hảo. Khi tích cực. Parity lẻ là khi bit parity phát tín hiệu '1' hoặc '0' vì thế mà có một số lẻ các bit 1 và ngược lại. Nếu chúng ta nghiên cứu 3 bit này. Nếu một bit bị lỗi thì có thể phát hiện lỗi nhờ bit P. • Modem Control Register (MCR) Bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 94 Notes Reserved Reserved Autoflow Control Enabled (16750 only) LoopBack Mode Aux Output 2 Aux Output 1 Force Request to Send Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Sticky parity là đơn giản khi parity bit luôn luôn truyền và kiểm tra '1' hoặc '0'. chúng ta có thể thấy rằng nó điều khiển sticky parity. thì sự đổi hướng bit này không phải cho kết quả bình thường parity được cung cấp bit 3 là sẽ thiết lập lên '1'. Nếu bit 5 điều khiển sticky parity. Bit 2 thiết lập độ dài của những bit stop. chúng ta sẽ thấy rằng bit 3 điều khiển chẵn lẻ (controls parity). Bits 0 and 1 thiết lập độ dài số bit dữ liệu. đường TD đi vào trạng thái "Spacing" mà nguyên nhân làm dừng ( Break) việc nhận UART.5 hoặc 2 stop bit phụ thuộc vào độ dài dữ liệu. Chú ý rằng bộ nhận chỉ kiểm tra bit stop đầu tiên. Nhảy qua tới bit 5.

không có quá trình chuyển đổi nối tiếp nào xảy ra vì thế phải không có quá trình hoạt động nào trên đường truyền dữ liệu. Khi bit 5 được thiết lập.Chương 6. Vì thế sự khác nhau giữa hai bit đó là gì? Khi bit 6 được thiết lập. Thời gian đó bao gồm cả thời gian cho start bit. parity hoặc framing xảy ra trên một byte mà được chứa trong FIFO. Điều này xảy ra vì một lỗi tính toán thời gian. thì thanh ghi transmitter holding register trống. Bit này là bit cao khi có ít nhất một lỗi break. Ghép nối trao đổi tin nối tiếp Bit 0 Force Data Terminal Ready Bảng 11: Thanh ghi Modem Control Thanh ghi Modem Control là một thanh ghi Read/Write. vì thế những byte khác có thể dược gửi đến cổng dữ liệu. vì thế mà nó cot thể truyền trên một đường. • Line Status Register (LSR) Bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Notes Error in Received FIFO Empty Data Holding Registers Empty Transmitter Holding Register Break Interrupt Framing Error Parity Error Overrun Error Data Ready Bảng 12: Line Status Register Thanh ghi trạng thái đường truyền (line status register) là thanh ghi chỉ đọc. . Bit 5. Thanh ghi dịch chuyển (shift register) được sử dụng để chuyển đổi byte nối tiếp. parity bits and stop bits. A framing error (Bit 3) xảy ra khi bit cuối cùng không phải là stop bit. Thanh ghi UART's holding giữ byte tiếp theo của dữ liệu sẽ được gửi đến parallel fashion. Khi bit 6 được thiết lập. những việc chuyển đổi nối tiếp đang sử dụng thanh ghi dịch chuyển (shift register) có thể chiếm chỗ. Bit 7 là bit error in received FIFO bit. data bits. Bit 4 kích hoạt chế độ loopback. Đầu vào nối tiếp được ngưng kết nối. Khi bit 5 được thiết lập. thì chỉ thanh ghi transmitter holding register trống.6 và 7 là bit dự trữ. thì cả hai thanh ghi transmitter holding register và thanh ghi shift register trống. break interrupt (Bit 4) xảy ra khi đường dữ liệu đã nhận được giữ trong trạng thái lôgic '0' (Space) cho khoảng thời gian hơn thời gian nó dùng đến khi gửi một ỎwordÕ đầy đủ. thì thanh ghi transmitter holding và thanh ghi shift registers trống. Trong chế độ Loopback việc truyền thông nối tiếp ra ngoài được đặt vào trong trạng thái Mark. Thông thường chúng ta sẽ gặp phải một lỗi framing error khi sử dụng một null modem liên kết hai máy tính hoặc protocol analyzer when speed at which data is being sent is different to that of what chúng ta phải thiết lập UART để nhận nó.

• Scratch Register scratch register không sử dụng cho truyền thông nhưng được sử dụng như một nơi để lưu một byte của dữ liệu. • Modem Status Register (MSR) Bit Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Notes Carrier Detect Ring Indicator Data Set Ready Clear To Send Delta Data Carrier Detect Trailing Edge Ring Indicator Delta Data Set Ready Delta Clear to Send Bảng 13 : Modem Status Register Bit 0 của modem status register cho thấy delta clear to send.4. Giao tiếp USB của máy PC: 6. Bit 6 cho thấy Ring Indicator. 6. Bit 2 là Trailing Edge Ring Indicator chỉ báo rằng có một sự biến đổi từ trạng thái thấp đến trạng thái cao trên đường Ring Indicator. Bit 1 cho thấy sự thay đổi bên trong đường Data Set Ready trong khi Bit 3 cho thấy một sự thay đổi bên trong đường Data Carrier Detect.1 Giới thiệu chung. và byte khác để nhận. Ghép nối trao đổi tin nối tiếp A overrun error thông thường xảy ra khi chương trình của chúng ta không thể đọc từ cổng “đủ nhanh”. Bit 5 cho thấy Data Set Ready & Bit 4 cho thấycác trạng thái của đường Clear To Send. có nghĩa là một byte được nhận bởi UART và bộ đệm sẵn sàng để đọc. Bits 4 đến bit 7 cho thấy trạng thái hiện thời của các đường dữ liệu khi đọc. từ lần đọc cuối cùng của thanh ghi này. Thiết bị ngoại vi được cắm vào được chia sẻ băng thông của USB thông qua giao thức dựa trên cơ chế lập lịch và dùng thẻ bài 96 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Việc sử dụng thực tế của nó là xác định UART là 8250/8250B hoặc a 8250A/16450 và thậm chí cái đó không phải là chính thức như 8250/8250B không bao giờ được thiết kế cho AT và không thể hack bus speed. delta có nghĩa là một sự thay đổi bên trong.Chương 6. thì byte cuối cùng sẽ bị mất và một lỗi tràn sẽ xảy ra.4. Bit 0 cho thấy data ready. Nếu chúng ta không có một byte đầu vào ở ngoài của thanh ghi ”đủ nhanh” (register fast enough). Điều này cũng đúng với các bits 1 và 3. Bit 7 cho thấy Carrier Detect. USB là một giao tiếp cho phép dữ liệu truyền giữa máy tính chủ (host) và một nhiều loại thiết bị ngoại vi đồng thời. vì vậy delta clear to send nghĩa là có một sự thay đổi bên trong đường clear to send.

Bao gồm như sau: Cấu trúc liên kết bus (Bus Topology): Mô hình liên kết giữa các thiết bị USB và host Các quan hệ lớp trong (Inter-layer Relationships): Các tác vụ của USB được thực hiện theo từng lớp trong hệ thống Mô hình luồng dữ liệu (Data Flow Models): LÀ cách mà dữ liệu di chuyển trong hệ thống giữa các đối tác truyền thông Lập lịch USB (USB Schedule): USB cung cấp một kết nối chia sẻ.4. sử dụng và rút ra trong khi host và các TBNV khác vẫn đang hoạt động 6.1: Cấu trúc tầng sao của USB . với 7 bit địa chỉ USB cho phép quản lý tối đa 127 thiết bị ngoại vi đây là con số mang tính lý thuyết bởi khi có càng nhiều thiết bị đấu nối thì tốc độ truyền càng chậm do dải thông của toàn bộ bus bị phân chia đến từng thiết bị Hình 6. thiết lập chế độ.2 Mô tả hệ thống USB Một hệ thống USB được mô tả bao gồm ba thành phần chính sau: Kết nối USB (USB interconnect) Các thiết bị USB (USB devices) Chủ USB (USB host) Kết nối USB cho biết phương thức mà các thiết bị kết nối và truyền thông với máy chủ (host). Ghép nối trao đổi tin nối tiếp (token). Hệ thống bus này cho phép các thiết bị có thể cắm vào.Chương 6. Việc truy nhập vào kết nối được lập lịch để có thể hỗ trợ truyền thông đẳng thời và tránh xung đột • Cấu trúc liên kết bus Về mặt vật lý USB là một kiến trúc tầng sao (tiered star) . Một HUB ở tại trung tâm của mỗi sao.

Màn hình. máy quét. Ghép nối trao đổi tin nối tiếp • Chủ USB ( host USB) Chủ USB chính là máy tính cá nhân với hệ điều hành có khả năng quản lý USB Một mạng USB chỉ được phép có một chủ USB . giao thức USB được cấy bên trong ROM của 8x930 vì vậy người lập trình không cần quan tâm đến vấn đề này Thiết bị chức năng Là các thiết bị ngoại vi như : chuột. Tuỳ vào các ứng dụng mà ta cần các FIFO có dung lượng khác nhau Hoạt động của bộ điều khiển USB được lập trình thông qua các thanh ghi chức năng đặc biệt . ngắt đồng bộ cách biệt và khối. bàn phím. ADC. Máy tính nhận biết việc cắm thêm hay dỡ bỏ một thiết bị ngoại vi để khởi động quá trình đánh số và các quá trình truyền dữ liệu khác trong bus. M i thi t b USB đ u đư c thi t k g m 3 ph n chính : Phần giao diện tuần tự SIE là vi mạch chịu trách nhiệm nhận và gửi dữ liệu theo chuẩn USB Một tổ hợp giũa phần cứng và firmware nhận nhiệm vụ truyền dữ liệu giữa khối SIE và điểm cuối của thiết bị qua các đường ống (pipe) thích hợp của chúng 98 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Chương 6. vi điều khiển ……mọi thiết bị chức năng của bus đều phải theo các qui định của USB để máy chủ có thể nhận biết được chúng.thống kê hoạt động và kiểm tra ghép nối điện giữa bộ điều khiển chủ và các thiết bị USB ngoại vi. Truyền dữ liệu giữa thiết bị và máy chủ được thực hiện thông qua một cặp điểm cuối trong vi điều khiển này mỗi điểm cuối được trang bị một bộ đệm FIFO phát và FIFO thu. • Thiết bị USB Các thiết bị USB có chức năng tớ trong mạng bus . Hub thường gồm có một bộ điều khiển hub và một bộ lặp (repeater) một hub có chức năng : chuyển một ổ cắm USB thành nhiều ổ cắm. xoá đi một thiết bị đã đấu nối vào bus nhưng sau đấy được tháo ra để thực hiện được việc này có những trạng thái bus được tạo ra theo cách đặc biệt (dựa vào mức điện áp .. Ta chia ra làm hai loại thiết bị USB : HUB Một hub ngoài có một cổng hướng về máy chủ (upstream) và 4 cổng ra thiết bị ghép nối (downstream) trong máy PC cũng có một hub cắm ngay trên bản mạch chính hub này được gọi là hub gốc (roothub). máy tính sử dụng phần cứng phần mềm USB để làm việc như một chủ bus . nhận biết các thiết bị mới được đấu vào . Máy tính cũng có trách nhiệm kiểm tra trạng thái . ta không đề cập đến kỹ thuật này ở đây) Có thể nói trái tim của hub chính là vi điều khiển USB 8x930 là loại vi điều khiển 8 bit với bộ nhớ và cổng ngoại vi được cấy ở bên trong vi điều khiển này có thể xử lí được cả 4 loại truyền dữ liệu : điều khiển.

Cáp USB dành cho truyền thông tốc độ thấp ở 1. Hình 6. Hai loại này chỉ khác nhau về kiểu dáng Hình 6.Chương 6. Cáp USB high/full-speed .5 Mb/s.3: Đầu cắm USB dạng A và B • Chuẩn về điện tử (Electrical) .4. Cáp USB tốc độ đủ (full-speed) là 12 Mb/s. Ghép nối trao đổi tin nối tiếp - Thành phần thứ 3 là phần chức năng của thiết bị ngoại vi 6. Có ba loại cáp chính Cáp USB tốc độ cao (high-speed) là 480 Mb/s.2 Cáp dùng cho USB USB quy định hai loại đầu cắm được gọi là dạng “A” và “B”.3 Giao diện vật lý Giao diện vật lý của USB mô tả về mặt điện tử và cơ khí của kết nối USB • Chuẩn về cơ khí (Mechanical): Chuẩn USB sử dụng cáp 4 sợi để truyền tín hiệu và nguồn nuôi. Tín hiệu được truyền qua 2 dây cho mỗi đoạn liên kết điểm – điểm.

(D+) > 200 mV Chấp nhận được (D+) .< VOL (max) D.3V Toàn bộ hệ thống được thiết kế sao cho khi chịu dòng tải lớn điện áp nguồn cũng không vợt quá +4. Ghép nối trao đổi tin nối tiếp Tín hiệu đồng hồ được truyền và giải mã cùng với dữ liệu. full-speed và high-speed Low-/Full-speed Mức tín hiệu Trạng thái bus Tại phía phát (vào thời điểm kết thúc thời gian bit) D+ > VOH (min) and D. nếu bổ sung một vi mạch ổn áp có thể tạo ra một điện áp ổn định +3.Chương 6. Điện áp nguồn nuôi ở bus USB có thể đến +5.(D-) >200 mV (D-) . Phương pháp mã hoá bit là NRZI cùng với việc nhồi bit để đảm bảo chính xác trong truyền thông.(D-) >200 mV và D+ >VIH (min) (D-) . Chân 1 2 3 4 Tên gọi VBUS DD+ GND Màu dây Đỏ Trắng Xanh lục Đen Mô tả +5Vdc Dữliệu Dữliệu + Nối đất Qua ổ cắm USB ở phía sau máy tính có thể lấy ra điện áp +5v với dòng tiêu thụ khoảng 100mA . trong một số trường hợp có thể lấy ra dòng tiêu thụ đến 500mA Hai đường dẫn dữ liệu D+ và D.25 V Và khi chịu dòng tải lớn có thể giảm xuống +4. Đấy cũng chính là một trong các ưu điểm của USB là các thiết bị chức năng có thể lấy nguồn nuôi luôn từ host M c tín hi u: Chuẩn USB quy định mức của tín hiệu cho từng kiểu truyền low-speed.3V. Khi thiết bị ghép nối cần dòng lớn hơn 100mA cần xem xét kỹ khả năng cung cấp và chịu tải của các linh kiện trong máy tính.(D+) > 200 mV “1” “0” 100 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .là các tín hiệu vi sai với mức điện áp bằng 0/3.2V.> VOH (min) and D+ < VOL (max) Tại phía nhận Yêu cầu (D+) .2V.

1.5 µs Reset D+ and D-<VOL (max) for ≥10ms Với kiểu truyền Low-/Full-speed. .2.< VIH (min) D+ and D-<VIL (max) for ≥2. Tín hi u sai phân Highspeed “0” DC Levels: VHSOH (min) ≤D≤VHSOH (max) VHSOL (min) ≤D+ ≤VHSOL (max) M c tín hi u sai phân AC signal at target connector must be recoverable.Chương 6. as defined by eye pattern templates called out in Section 7.> VIHZ (min) và D+ < VIH (min) D+ > VIHZ (min) và D. See Note 2.2. bên nguồn phải đảm bảo đưa ra được mức tín hiệu chỉ ra ở cột 2 và bên nhận phải nhận ra trạng thái đúng của đường truyền ứng với mức ở cột 3 Full-/High-speed Tr ng thái đư ng truy n Tín hi u sai phân Highspeed “1” M c tín hi u bên phía phát M c tín hi u m t chi u DC: VHSOH (min) ≤D+ ≤VHSOH (max) VHSOL (min) ≤D≤VHSOL (max) M c tín hi u sai phân AC: A transmitter must conform to eye pattern templates called out in Section 7. M c tín hi u bên phía thu See Note 2.1. Ghép nối trao đổi tin nối tiếp và D->VIH (min) Trạng thái rỗi: Lowspeed Full-speed Không quan tâm D.> VIHZ (min) và D+ < VIL (max) D+ > VIHZ (min) và D.< VIL (max) D+ and D-<VIL (max) for ≥10 ms D.

as defined by eye pattern templates called out in Section 7. Với phương pháp NRZI.Chương 6. Bit 1 ở cuối của mẫu đồng bộ SYNC được đếm là bit đầu tiên trong chuỗi dữ liệu.2. Việc nhồi bit được cho phép bắt đầu sau mẫu SYNC. See Note 2. Điều đó đảm bảo cho bên nhận có thể đồng bộ hóa tín hiệu xung đồng bộ sau mỗi 7 bit. D-) ≤VHSOImax See Note 1. Nh i bít (Bit Stuffing) Để đảm bảo sự chính xác khi truyền tín hiệu.1. AC Differential Levels: A transmitter must conform to eye pattern templates called out in Section 7.2. AC Differential Levels: Magnitude of differential voltage is ≤100 mV See Note 3. Bên nhận phải giải mã dữ liệu NRZI.1. See Note 2. Một bit 0 sẽ được thêm vào (nhồi) sau mỗi 6 bit liên tục trong luồng dữ liệu trước khi mã hóa NRZI được thực hiện. Mã hóa và gi i mã tín hi u: USB thực hiện mã hóa theo phương pháp NRZI (Non Return to Zero – Inverted) khi truyền một gói tin. DC Levels: VHSOImin ≤ (D+. 102 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . bit 1 thể hiện bằng sự không thay đổi về mức tín hiệu trên đường truyền còn bit 0 thể hiện bằng sự thay đổi mức tín hiệu. phát hiện ra bít nhồi và bỏ qua chúng. Tr ng thái r i Highspeed NA AC Differential Levels: signal at target connector must be recoverable. chuẩn USB thực hiện nhồi bit khi truyền các gói tin. Ghép nối trao đổi tin nối tiếp See Note 1.

Điểm cuối 0 được sử dụng khi khởi tạo các dữ liệu hữu ích được bộ vi điều khiển ghi trên một khoảng cách định trước tính theo điểm cuối 1 và từ đó máy PC đọc vào Mỗi điểm cuối thiết bị thường tương ứng với một FIFO đóng vai trò trung gian giữa các cuộc truyền . HUB trả lời bằng việc nhận dạng cổng đã kết nối với thiết bị USB . Host xác định xem thiết bị vừa được đấu nối là HUB hay thiết bị chức năng và gắn cho thiết bị USB một địa chỉ duy nhất Máy chủ thiết lập một đường ống điều khiển đối với thiết bị USB bằng cách sử dụng địa chỉ USB đã được gán và số 0 điểm cuối. Nếu thiết bị USB là một hub thì khi có một thiết bị USB kết nối vào nó quá trình trên diễn ra liên tục Nếu thiết bị USB là một thiết bị chức năng thì các thông báo về việc kết nối sẽ được phần mềm USB gửi tới phần mềm máy chủ • Loại bỏ các thiết bị USB Khi một thiết bị USB được gỡ bỏ từ một trong số các cổng của hub thì hub tự động vô hiệu hoá cổng và cung cấp một thông tin cho host báo về việc loại bỏ thiết bị ra khỏi bus. nó làm cho thiết bị được định địa chỉ một cách linh hoạt ví dụ như chuột USB chẳng hạn có một điểm cuối 0 .Chương 6. Một thiết bị có thể sử dụng nhiều đường ống đồng thời vì thế tốc độ truyền dữ liệu tổng cộng được nâng lên . • Kết nối các thiết bị USB Khi có một kết nối đến HUB nó sẽ thông báo đến máy chủ . máy chủ hỏi HUB để xác định nguyên nhân của thông báo . một thiết bị ngoại vi có thể có nhiều điểm cuối nó chỉ ra dữ liệu cần thiết được dẫn tới đâu hoặc cần phải đón nhận từ đâu . ta có thể hình dung đường ống như một kênh dữ liệu được hình thành từ một dây dẫn riêng lẻ . mọi thiết bị trong bus USB sẽ cùng chia giải tần qua một giao thức khung truy nhập máy chủ. Máy chủ cho phép cổng và định địa chỉ thiết bị USB với một đường ống điều khiển bằng cách sử dụng địa chỉ mặc định USB. một điểm cuối 1. tất cả các thiết bị khi đấu nối vào lần đầu đều được nhận một địa chỉ mặc định USB . Nói cách khác Đường ống là phần mềm quản lý điểm cuối của thiết bị USB . Sau đấy host sẽ loại bỏ các số liệu đã viết về thiết bị vừa dỡ bỏ Nếu thiết bị USB dỡ bỏ là một hub thì quá trình dỡ bỏ phải được thực hiện với tất cả thiết bị USB mà trước đó đã được đấu nối vào hub . ta có thể hiểu chúng là những kênh phần mềm được gọi lên trong phần mềm điều hành USB và có nhiệm vụ truyền tin đến những điểm cuối của thiết bị ngoại vi . Nhưng trên thực tế dữ liệu được truyền trên đường ống dưới dạng các gói dữ liệu trong một khung truyền chiếm hàng mili giây và được phần cứng phân phát thông qua địa chỉ điểm cuối . Ghép nối trao đổi tin nối tiếp • Điểm cuối và đường ống Điểm cuối là đầu nguồn hay đầu phát của một thiết bị ngoại vi . nhận dữ liệu giữa khối SIE và phần còn lại của thiết bị Một đường ống là một kênh logic dẫn tới một điểm cuối trong một thiết bị .

5 Các kiểu truyền USB Truyền dữ liệu USB là giai đoạn nằm giữa phần mềm máy chủ và điểm cuối của thiết bị ngoại vi . Bây giờ thiết bị sẽ được phép lấy ra dòng điện tiêu thụ như trong bản tóm lược đã nêu. khi một thiết bị mới được đấu nối vào có thể xảy ra hiện tượng là hệ điều hành yêu cầu cần một đĩa điều khiển thích hợp Nhưng cũng có nhiều phần mềm điều khiển đã được tích hợp trong hệ thống Quá trình điểm danh là quá trình hệ điều hành tiến hành kiểm tra các phần cứng mới được đấu nối vào qua thông tin nó thu được từ thiết bị được đấu nối . Như vậy là thiết bị và máy chủ đều đã sẵn sàng trao đổi - - Mỗi thiết bị có các thông số như : mã giao thức . Bây giờ thiết bị đã sẵn sàng hoạt động và trả lời bằng một địa chỉ mặc định 0 Trước khi nhận được một địa chỉ riêng thì thiết bị vẫn được trao đổi với host thông qua địa chỉ mặc định . Máy chủ xử lý 104 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .4 Sự điểm danh Như ta đã biết ở phần trước một ưu điểm đặc biệt của bus USB là khả năng “ cắm là chạy “ ( Plug and Play) đối với thiết bị mới được đấu nối vào bus . Thông tin này thường gọi là bản tóm lược Khi có một thiết bị mới được đấu nối vào bus sau đấy diễn ra các bước sau : Hub nhận biết được và nó thông báo với máy chủ là có một thiết bị mới được đấu nối vào Máy chủ hỏi lại hub xem thiết bị đã được nối vào cổng nào Máy chủ khi này biết thiết bị đã được nối vào cổng nào . để xem độ lớn bản tóm lược là bao nhiêu Máy chủ gán cho thiết bị một địa chỉ bus riêng Qua địa chỉ mới máy chủ đọc tất cả các thông tin cấu hình có từ thiết bị Qua đó máy chủ sẽ gán cho thiết bị một phần điều khiển phù hợp nếu có thể.độ lớn FIFO. Để máy chủ có những điều khiển phù hợp 6. Thông tin có thể đi theo một chiều hoặc 2 chiều .Chương 6. loại thiết bị . từ thông tin này thiết bị sẽ được nạp phần mềm điều khiển thích hợp Khi một thiết bị mới được điểm danh (enumeration) sẽ nhận được một địa chỉ bus và được hỗ trợ qua một phần mềm cụ thể Việc điểm danh được thực hiện hoàn toàn độc lập bởi hệ điều hành. máy chủ đọc byte đầu tiên của bản tóm lược. Muốn thế hệ thống phải hoạt động trong trạng thái thường xuyên kiểm tra thông tin từ một thiết bị . Ghép nối trao đổi tin nối tiếp 6. dòng tiêu thụ… Tất cả các thông tin này được lưu trong ROM của thiết bị khi thiết bị được đấu nối vào vi điều khiển của hub sẽ đọc các thông tin này và truyền cho máy chủ .4. nó sẽ đưa ra một lệnh nối đến cổng đó và thực hiện một thao tác reset lại bus Hub tạo ra một tín hiệu reset với độ dài 10 ms và cấp một dòng điện với cường độ 100mA cho thiết bị . nhà sản xuất .4.

Chương 6. Ghép nối trao đổi tin nối tiếp

việc trao đổi dữ liệu với từng thiết bị ngoại vi một cách độc lập . USB quản lý 4 kiểu truyền dữ liệu Truyền điều khiển ( control transfer ): là truyền theo kiểu 2 chiều, kiểu truyền này được sử dụng để cài đặt thiết bị ngoại vi giao thức truyền điều khiển được bắt đầu bằng một gói khung , tiếp theo là gói dữ liệu và kết thúc là gói bắt tay . Mọi thiết bị ngoại vi USB đều phải xử lý được kiểu truyền này Truyền ngắt : Là truyền một chiều . Các thiết bị cung cấp một lượng dữ liệu nhỏ tuần hoàn như : chuột , bàn phím, joystick . Vì máy tính không thể ngắt nên các ngắt từ thiết bị ngoại vi được xử lý trong vòng đợi , tức theo chu kỳ hệ thống sẽ hỏi ( 10ms chẳng hạn ) xem có dữ liệu mới được gửi đến không. Giao thức này khởi động bằng một khung IN (IN token) . Thiết bị ngoại vi trả lời bằng một gói NAK nếu không có ngắt nếu có ngắt ngoại vi trả lời bằng một gói dữ liệu , khi việc nhận dữ liệu đã hoàn thành máy chủ trả lời bằng một ACK , nếu có lỗi không trả lời . Nếu bị nghẽn ở điểm cuối của thiết bị ngoại vi nó sẽ gửi đến máy chủ gói STALL và đợi hệ thống xử lý Truyền đẳng thời: là phương pháp truyền một chiều .Vì thế cuộc truyền cần hai điểm cuối ở thiết bị ngoại vi hoặc hai pipe ở phần mềm máy chủ . Khi có một lượng lớn dữ liệu với tốc độ dữ liệu đã được qui định như card âm thanh , loa , điện thoại sử dụng kiểu truyền này . theo kiểu truyền này việc khắc phục lỗi không được thực hiện bởi những lỗi truyền lẻ tẻ cũng không ảnh hưởng đáng kể đến chất lượng cuộc truyền Truyền theo khối : Truyền 2 chiều , khi có lượng lớn dữ liệu cần truyền và cần kiểm soát lỗi , nhưng không có yêu cầu thúc ép về thời gian truyền thì sử dụng kiểu truyền này. Ví dụ : máy in , máy quét

-

-

-

Đối với các ứng dụng trong đo lường điều khiển kiểu truyền điều khiển thường được sử dụng vì vừa có độ an toàn dữ liệu vừa có tốc độ lớn 6.4.6 Giao thức USB Phần này ta sẽ mô tả về các lớp giao thức của USB Máy chủ USB sẽ giữ bus hoạt động liên tục bằng cách truyền đi một gói khởi đầu khung SOF ( start of Frame) trong chu kỳ 1ms . Nói chung mỗi lần truyền tin Máy chủ USB cần 3 gói Gói mã thông báo (Token packet) Gói dữ liệu (Data packet) Gói bắt tay (Handshake packet)

Chương 6. Ghép nối trao đổi tin nối tiếp

Trước khi đi vào chi tiết các gói ta định nghĩa một số trường. Tuỳ thuộc vào từng gói mà được tạo thành bởi các trường khác nhau • Các trường

• Trường Sync: Tất cả các gói đều bắt đầu bằng trường này , trường này gồm 8 bit . Nó được sử dụng để đồng bộ xung clock của việc thu với việc phát, 2 bit sau cùng được sử dụng để chỉ ở đâu trường PID bắt đầu và điểm kết thúc của trường Sync • Trường định danh gói : Trường định danh gói (PID) được cho theo sau trường Sync của các gói USB

Bốn bit đầu của trường này cho ta biết kiểu gói ,khuôn dạng của gói và kiểu phát hiện lỗi được áp dụng cho gói đó Bốn bit sau là bốn bit bù của 4 bit trước nó là các bit kiểm tra nó được sử dụng để đảm bảo quá trình giải mã là tin cậy. Nếu có một lỗi PID xảy ra thì 4 bit này không phải là 4 bit bù của 4 bit trước. Host và các thiết bị chức năng phải giải mã được tất cả các trường PID nhận được .Nếu một PID nào có lỗi xuất hiện lỗi này có thể là do: không giải mã được giá trị , hoặc mang đến một giá trị không được định nghĩa .Thì thông tin này bị cho là sai lệch và phía nhận sẽ bỏ qua. Sau đây là bảng các kiểu và giá trị PID với các gói khác nhau

Kiểu PID Token

Tên PID OUT IN

Giá trị PID 0001 1001

Mô tả Cho biết địa chỉ và điểm cuối trong giao tác từ Host tới chức năng Cho biết địa chỉ và điểm cuối trong giao tác từ chức năng tới Host Gói khởi đầu khung và số khung Cho biết địa chỉ và điểm cuối trong giao tác SETUP từ host tới chức năng Gói dữ liệu chẵn Gói dữ liệu lẻ Bên nhận đã tiếp nhận được gói dữ liệu không có lỗi Thiết bị nhận không tiếp nhận dữ liệu hoặc thiết bị phát không thể gửi giữ liệu đi được Điểm cuối bị dừng hoặc ống điều khiển không được hỗ trợ Không đáp ứng việc nhận Host đã ra tín hiệu cho phép cổng downstream thực hiện truyền ở tốc độ thấp
Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử

SOF SETUP Data Handshake DATA0 DATA1 ACK NAK

0101 1101 0011 1011 0010 1010

STALL NYET Special PRE

1110 0110 1100

106

Chương 6. Ghép nối trao đổi tin nối tiếp

ERR SPLIT PING • Trư ng đ a ch

1100 1000 0100

Trường này có 7 bit địa chỉ do đó nó trỏ tới được 127 địa chỉ , địa chỉ 0 là không hợp lệ. Nó chỉ có ý nghĩa khi thiết bị vừa đấu nối vào và đây là địa chỉ mặc định .

Trường này chỉ ra nguồn hoặc nơi đến của gói dữ liệu • Trư ng đi m cu i Trường điểm cuối (ENDP) có kích thước 4 bit trỏ được 16 điểm cuối. Trường này cho phép xác định các điểm cuối một cách linh hoạt trong các thiết bị có nhiều hơn một điểm cuối

• Trư ng d li u Trường dữ liệu của giao thức USB cho phép có kích thước từ 0 đến 1024 byte và phải là một số nguyên của byte

• Trư ng s khung Có độ lớn 11 bit do host tăng thêm trên mỗi khung cơ sở , trường số khung lên tới con số cực đại là 7FFH và chỉ được gửi trong các mã thông báo SOF tại thời điểm khởi đầu của mỗi khung • Trư ng ki m tra d phòng tu n hoàn (CRC) Được sử dụng để bảo vệ tất cả các trường NON-PID trong gói mã thông báo (token) và gói dữ liệu (data). Trường này được phát sinh thông qua các trường tương ứng của nó ở bộ phận phát trước khi thực hiện vệc nhồi bit. Tương tự vậy CRC được giải mã ở bộ phận nhận sau khi loại bỏ việc nhồi các bit. Nếu một CRC bị lỗi thì các trường tương ứng sẽ bị bỏ qua bên nhận • Trư ng k t thúc gói : Trường kết thúc gói EOP nó đánh dấu sự kết thúc của một gói

Gói này có thể là : ACK ( chấp nhận dữ liệu).0005ms. Ghép nối trao đổi tin nối tiếp 6. Cuộc truyền bắt đầu khi bộ điều khiển chủ gửi một gói mã thông báo gồm địa chỉ thiết bị .OUT hay SETUP tiếp theo là 7 bit trường địa chỉ .gói dữ liệu (data packet).Chương 6. Thiết bị ngoại vi sẽ trả lời bằng gói dữ liệu.0005ms cho full-speed và 125us ±0. gói mã thông báo (token). số hiệu điểm cuối ENDP.7 Khuôn dạng các gói tin Trong phần này ta sẽ ta sẽ mô tả về các loại gói tin: gói tin bắt đầu khung SOF.00ms±0.00ms±0. Host sẽ giữ bus hoạt động liên tục bằng cách truyền liên tục gói SOF trong chu kỳ 1. nơi nhận ( host or ngoại vi) sẽ gửi lại một gói bắt tay.gói bắt tay (handshake) đây là 3 gói được sử dụng trong truyền tin USB. tiếp theo là 11 bit trường số khung và 5 bit CRC ( ta không đề cập đến Sync và EOP vì hai trường này là bắt buộc với mỗi gói) • Khuôn d ng gói mã thông báo Sync PID ADDR ENDP CRC5 EOP Gói này gồm trường PID 8 bit dùng để chỉ rõ kiểu gói là gói IN . Giao tác này dùng cho các giao tác từ thiết bị chức năng đến host •Khuôn d ng gói d li u Khuôn dạng gói dữ liệu gồm 3 trường : 108 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . NAK (không chấp nhận dữ liệu).4bit trường điểm cuối và 5 bit trường CRC Đối với giao tác OUT và SETUP các trường địa chỉ và điểm cuối sẽ xác định ra điểm cuối nhận gói dữ liệu tiếp o. Trường ghi hướng của cuộc truyền trong gói mã thông báo sẽ yêu cầu thiết bị ngoại vi phát dữ liệu. STALL ( tắc nghẽn) • Khuôn dạng gói bắt đầu khung Gói bắt đầu khung SOF được đưa ra bởi host với tốc độ 1. Thiết bị có địa chỉ tương ứng sẽ tự chọn bằng cách giải mã địa chỉ của nó từ gói mã thông báo đó .4. Hai giao tác này dùng cho các giao tác từ host đến thiết bị chức năng Đối với giao tác IN các trường này chỉ ra điểm cuối nào cần phải truyền dữ liệu đi.0625us cho high-speed Sync PID Frame Number CRC5 EOP Mỗi gói SOF gồm một trường PID kích thước 8bit dùng để báo loại gói ( tức báo rằng nó chính là gói SOF) . Nếu không máy chủ sẽ tiếp tục bằng việc truyền dữ liệu Tóm lại sau khi nhận được dữ liệu . hướng của cuộc truyền và dạng ống.

Chương 6.STALL: Tín hiệu này dùng để báo rằng một chức năng không thể truyền hoặc nhận dữ liệu . ACK có thể được host trả về trong giao tác IN và có thể được thiết bị chức năng trả về trong giao tác OUT và SETUP . Host có thể không bao giờ đưa ra tín hiệu bắt tay NAK. Ngoài ra tín hiệu bắt tay NAK còn được sử dụng cho những mục đích điều khiển luồng để báo rằng một thiết bị chức năng tạm thời không thể truyền hoặc nhận dữ liệu . Tín hiệu bắt tay STALL được tạo ra bởi thiết bị chức năng do một trong hai nguyên nhân sau: Nguyên nhân thứ nhất :Được hiểu như là tắc do chức năng (Functional stall) nó liên quan đến việc thiết lập điểm cuối của cuộc truyền khi mà . Tín hiệu ACK được dùng thích hợp nhất là trong các giao tác khi mà dữ liệu đã được truyền đi và chờ tín hiệu bắt tay trả về . Tín hiệu bắt tay này được thiết bị chức năng trả về trong đáp ứng tới mã thông báo IN hoặc sau khi pha dữ liệu của một giao tác OUT.ACK : Tín hiệu này báo rằng gói dữ liệu nhận được mà không có quá trình nhồi bit hoặc có các lỗi CRC ở trường dữ liệu và PID của gói dữ liệu nhận được là chính xác . hoặc yêu cầu ống dữ liệu mà không được hỗ trợ . Khi này nó không gửi giữ liệu mà dùng để gửi tín hiệu bắt tay Có ba loại gói bắt tay . Các gói bắt tay được sử dụng để thông báo sự giao tác là thành công hay không thành công Các tín hiệu bắt tay luôn được trả về trong các pha bắt tay của một giao tác hoạc được trả về trong pha dữ liệu . nhưng chức năng đó sẽ dần dần có khả năng truyền hoặc nhận dữ liệu mà không cần sự can thiệp của host . Ghép nối trao đổi tin nối tiếp - Trường PID (8 bit) dùng để xác định loại gói Trường dữ liệu ( từ 0 đến 1024 byte) Trường dự phòng CRC ( 16bit) Sync PID DATA CRC5 EOP Có hai kiểu gói dữ liệu là DATA0 và DATA1 • Khuôn d ng gói b t tay Sync PID EOP Các gói bắt tay chỉ có một trường PID . Tín hiệu bắt tay NAK có thể được các thiết bị chức năng trả về trong pha dữ liệu của giao tác IN hoặc pha bắt tay của giao tác OUT .NAK : Tín hiệu này sử dụng để báo rằng một thiết bị chức năng không thể chấp nhận dữ liệu từ Host gửi đến ( thông qua giao tác OUT hoặc một thiết bị chức không có dữ liệu truyền đến Host ( thông qua giao tác IN ) .

Ghép nối trao đổi tin nối tiếp host dứt khoát thiết lập đặc tính dừng trên điểm cuối Một điểm cuối của chức năng mà bị dừng thì nó liên tục trả về tín hiệu bắt tay STALL cho đến khi tình trạng đó chấm dứt nhờ sự can thiệp của host Nguyên nhân thứ 2: Được hiểu như là tắc giao thức (protocol stall) điều này chỉ liên quan đến các ống điều khiển stall do nguyên nhân này sinh ra được trả về trong giai đoạn dữ liệu hoặc giai đoạn trạng thái của quá trình truyền điều khiển 110 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .Chương 6.

màn hình.Chương 7. GIAO TIẾP VỚI CÁC THIẾT BỊ NGOẠI VI CƠ BẢN Mục tiêu: Trình bày cấu trúc. … Tóm tắt chương: Giao tiếp với bàn phím và chuột Giao tiếp PC Game Monitor và card giao diện đồ hoạ . Giao tiếp với các thiết bị ngoại vi cơ bản CHƯƠNG 7. nguyên lý hoạt động và lập trình điều khiển cho các thiết bị ngoại vi cơ bản của máy tính PC như bàn phím. chuột.

…. Giao tiếp với các thiết bị ngoại vi cơ bản 7.8741. thí dụ như đặt tốc độ lặp lại của nhấn bàn phím.Chương 7. hoặc 8742. 112 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Giao tiếp với bàn phím và chuột 7. SDU 10 0 STRT DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PAR STOP STRT: DB0 . do vậy vi mã của chíp bàn phím có thể giúp cho việc nhận lệnh điều khiển từ PC. bit parity (luôn lẻ) bit stop (luôn bằng 1). Nó có thể được chương trình hóa (thí dụ khóa bàn phím) hơn nữa số liệu có thể truyền theo 2 hướng từ bàn phím và mạch ghép nối. Sau đó mã này sẽ được truyền nối tiếp tới mạch ghép nối bàn phím trong PC.8 . Tín hiệu xung nhịp dùng cho việc trao đổi dữ liệu thông tin nối tiếp đồng bộ với mạch ghép nối bàn phím (keyboard interface) trên main board được truyền qua chân số 1. Một bộ điều khiển bàn phím đã được lắp đặt trên cơ sở các chíp 8042. Cấu trúc của SDU cho việc truyền số liệu này và các chân cắm của đầu nối bàn phím.DB7: PAR: STOP: bit start (luôn bằng 0) bit số liệu từ 0 đến 7.Y đang được đóng hay mở và ghi một mã tương ứng vào bộ đệm bên trong bàn phím.Sơ đồ nguyên lý và các ghép nối của bàn phím Chip xử lý bàn phím liên tục kiểm tra trạng thái của ma trận quét (scan matrix) để xác định công tắc tại các tọa độ X.1 Bàn phím • Cấu trúc và chức năng: Hình 7.1.1.

gồm 32 byte và do vậy kết thúc ở địa chỉ 40:3D.46 (‘C’). Nếu rời tay nhấn phím SHIFT thì bàn phím sẽ phát ra break code và mã này được truyền như make code. Ví dụ: nhấn phím SHIFT trước. Nếu 1 phím được nhấn thì bàn phím phát ra 1 mã make code tương ứng với mã quét truyền tới mạch ghép nối bàn phím của PC. do vậy nó tương đương với make code công với 128. Thí dụ. Mỗi ký tự được lưu trữ bằng 2 bytes. chương trình con xử lý ngắt sẽ xác định trạng thái nhấn hay rời của các phím. Các giá trị con trỏ được lưu trữ trong vùng số liệu của BIOS ở địa chỉ 40:1A và 40:1C. bộ đệm có thể lưu trữ tạm thời 16 ký tự.Chương 7. Chương trình xử lý ngắt sẽ xác định mã ASCII từ mã quét bằng bảng biến đổi và ghi cả 2 mã vào bộ đệm bàn phím. và byte thấp là mã ASCII. có địa chỉ 40:1E. Như vậy. phím SHIFT và ‘C’ được rời theo thứ tự ngược lại với thí dụ trên: break code được truyền 174 ( bằng 46 cộng 128 tương ứng với ‘C’) và 170 (bằng 42 cộng 128 tương ứng với SHIFT). • Truy xuất bàn phím qua BIOS BIOS ghi các ký tự do việc nhấn các phím vào bộ đệm tạm thời được gọi là bộ đệm bàn phím (keyboard buffer). byte cao là mã quét.10 – Đầu cắm bàn phím PS/2 • Mã quét bàn phím: Mỗi phím nhấn sẽ được gán cho 1 mã quét (scan code) gồm 1 byte.9 – Đầu cắm bàn phím AT Hình 7. Phần cứng và phần mềm xử lý bàn phím còn giải quyết các vấn đề vật lý sau: Nhấn và nhả phím nhưng không được phát hiện. Tuỳ theo break code. Giao tiếp với các thiết bị ngoại vi cơ bản Hình 7. Khử nhiễu rung cơ khí và phân biệt 1 phím được nhấn nhiều lần hay được nhấn chỉ 1 lần nhưng được giữ trong một khoảng thời gian dài. Mã này giống như mã quét nhưng bit 7 được đặt lên 1.42 (SHIFT) . Bộ đệm bàn phím được tổ chức như bộ đệm vòng (ring buffer) và được quản lý bởi 2 con trỏ. không rời tay và sau đó nhấn ‘C’: make code được truyền . Chương trình xử lý ngắt sẽ xử lý mã này tuỳ theo phím SHIFT có được nhấn hay không. Ngắt cứng INT 09h được phát ra qua IRQ1. .

0 = không có.00h . Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . MOV AH. Lỗi quá thời gian (time-out). chạy hàm 00h. phát một interrupt Kết quả: AH = 71 (mã quét cho phím ‘HOME’) AL = E0h • Chương trình với bàn phím qua các cổng: Bàn phím cũng là một thiết bị ngoại vi nên về nguyên tắc có thể truy xuất nó qua các cổng vào ra.. Các thanh ghi và các port: Sử dụng 2 địa chỉ port 60h và 64h có thể truy xuất bộ đệm vào. MOV AH. MOV AH. chạy hàm 00h.Chương 7. 0 = không có. Thanh ghi này chỉ đọc (read only).HOME’ đã được nhấn.00h . Thường các hàm BIOS trả về một giá trị 0 của ASCII nếu phím điều khiển hoặc chức năng được nhấn. Có thể đọc nó bằng lệnh IN tại port 64h. 7 PARE PARE TIM 114 TIM AUXB KEYL C/D SYSF INPB 0 OUTB Lỗi chẵn lẻ của byte cuối cùng được vào từ bàn phím. đọc ký tự INT 16h .10h . Port 60h 60h 64h 64h Thanh ghi Đệm ngõ ra Đệm ngõ vào Thanh ghi điều khiển Thanh ghi trạng thái R/W R W W R Thanh ghi trạng thái xác định trạng thái hiện tại của bộ điều khiển bàn phím. AL = 97 (ASSCII cho ‘a’) Giả sử phím ‘. phát một interrupt Kết quả: AH = 30 (mã quét cho phím ‘a’). 1 = có lỗi chẵn lẻ. bộ đệm ra và thanh ghi điều khiển của bàn phím. phát một interrupt Kết quả: AH = 71 ( mã quét cho phím ‘HOME’) AL = 00 (các phím chức năng và điều khiển không có mã ASCII) Giả sử phím ‘HOME’ đã được nhấn. đọc ký tự INT 16h . Các thí dụ: Giả sử phím ‘a’ đã được nhấn. chạy hàm 10h. đọc ký tự INT 16h . Giao tiếp với các thiết bị ngoại vi cơ bản Ngắt INT 16h trong BIOS cung cấp 8 hàm cho bàn phím. 1 = có lỗi.

Trạng thái đệm vào. 1 = số liệu CPU trong bộ đệm vào. Trạng thái khóa bàn phím. 0 = khóa. Trạng thái đệm ra. 1 = không khóa. 0 = đệm ra rỗng. Hình 7.11 Bộ điều khiển bàn phím Thanh ghi điều khiển (64h) 7 PARE TIM AUXB KEYL C/D SYSF INPB 0 OUTB Các lệnh cho bộ điều khiển bàn phím: Mã A7h A8h A9h Lệnh Cấm thiết bịphụ Cho phép thiết bịphụ Kiểm tra ghép nối tới thiết bịphụ . 1 = số liệu bộ điều khiển bàn phím trong bộ đệm ra. 0 = Ghi qua port 60h. 1 = Ghi qua port 64h. Giao tiếp với các thiết bị ngoại vi cơ bản AUXB KEYL C/D INPB OUTB Đệm ra cho thiết bị phụ (chỉ có ở máy PS/2). Lệnh/số liệu. 1 = giữ số liệu cho thiết bị.Chương 7. 0 = giữ số liệu cho bàn phím. 0 = đệm vào rỗng.

Giao tiếp với các thiết bị ngoại vi cơ bản AAh ABh ADh AEh C0h C1h C2h D0h D1h D2h D3h D4h E0h F0h FFh Khóa bàn phím: Start: Tựkiểm tra Kiểm tra ghép nối bàn phím Cấm bàn phím Cho phép bàn phím Đọc cổng vào Đọc cổng vào ra (byte thấp) Đọc cổng vào ra (byte cao) Đọc cổng ra Ghi cổng ra Ghi đệm ra bàn phím Ghi đệm ra thiết bịphụ Ghi thiết bịphụ Kiểm tra đọc cổng vào Gửi 1 xung tới lối ra Cổng IN AL. ra lệnh cho bật tắt các đèn led WAIT: IN AL. đọc byte trạng thái TEST AL. OUT 60H.Chương 7. khóa bàn phím Các lệnh cho bàn phím: Tóm tắt các lệnh bàn phím: Mã Lệnh EDh Bật ON/OFF LED EEh Echo F0h Đặt/nhận diện F2h F3h F4h F5h F6h FEh Nhận diện bàn phím Đặt tốc độ lặp lại/trễ Enable Chuẩn/không cho phép Chuẩn/cho phép Resend Mô tả Bật/tắt các đèn led của bàn phím Trả về byte eeh Đặt 1 trong 3 mã quét và nhận diện các mã quét tập mã quét hiện tại. 02h . Đặt tốc độ lặp lại và thời gian trễ của bàn phím Cho phép bàn phím hoạt động Đặt giá trị chuẩn và cấm bàn phím. một vài byte vẫn còn trong bộ đệm vào OUT 64h. ACK+abh+41h=MF II. đọc thanh ghi trạng thái 116 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . 0ADh . tắt tất cả các đèn khác. kiểm tra bộ đệm có đầy hay không JNZ start . Nhận diện ACK = AT. Đặt giá trị chuẩn và cho phép bàn phím. EDH . 64h . Bàn phím truyền ký tựcuối cùng một lần nữa tới bộ điều khiển bàn phím Chạy reset bên trong bàn phím FFh Reset Thí dụ: lệnh bật đèn led cho phím NUMCLOCK. 64H .

0 = tắt 1 = bật đèn Scr Lock.Y thành sự quay tưong ứng của 2 đĩa gắn với chúng. bộ đệm vào đầy OUT 60H. phần trung tâm là 1 viên bi thép được phủ keo hoặc nhựa được quay khi dịch chuyển chuột. qua đó chuột cũng được cấp nguồn nuôi từ PC. Khi dịch chuyển hoặc nhấn. Phần mềm điều khiển chuột làm các nhiệm vụ: chuyển ngắt tới mạch giao tiếp nối tiếp xác định. Trên 2 đĩa có những lỗ nhỏ liên tục đóng và ngắt 2 chùm sáng tới các sensor nhạy sáng để tạo ra các xung điện. đọc gói số liệu và cập nhật các giá trị bên trong liên quan tới trạng thái của bàn phím cũng như vị trí của chuột.12 Sơ đồ cấu tạo của chuột • Mạch ghép nối và chương trình điều khiển chuột Hầu hết chuột được nối với PC qua cổng nối tiếp.2 Chuột 1 = bật đèn Caps Lock. 0 = tắt • Cấu tạo Cấu tạo của chuột rất đơn giản. .1. 02H . nó sẽ phát ra một gói các số liệu tới mạch giao tiếp và mạch sẽ phát ra 1 ngắt. 0 = tắt 1 = bật đèn Num Lock. Số các xung điện tỷ lệ với lượng chuyển động của chuột theo các hướng X. nhả các phím chuột. bật đèn cho numclock Cấu trúc của byte chỉ thị như sau: 0 0 0 0 0 CPL NUM SCR CPL: NUM: SCR: 7.Chương 7. Các thanh này sẽ biến chuyển động của chuột theo 2 hướng X. Chuyển động này được truyền tới 2 thanh nhỏ được đặt vuông góc với nhau.Y và số xung trên 1 sec biểu hiện tốc độ của chuyển động chuột. Hình 7. Kèm theo đó có 2 hay 3 phím bấm. Giao tiếp với các thiết bị ngoại vi cơ bản JNZ WAIT .

Giao tiếp với các thiết bị ngoại vi cơ bản Hơn nữa. nó còn cung cấp 1 giao tiếp mềm qua ngắt của chuột là 33h để định các giá trị bên trong này cũng như làm dịch chuyển con trỏ chuột trên màn hình tương ứng với vị trí của chuột......... 118 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử .... fxxxxffff... ...... f. . INT = 1b...BAK = 000b.... ff... .. Hàm 09h định nghĩa con trỏ chuột trong chế độ đồ họa ...Chương 7.. Hình 7......fxxf. 7. fxxxf....... • Chương trình với con trỏ Ngắt 33h cho phép xác định vị trí... ......... con trỏ chuột mềm MOV CX....... Ở đây một điểm ảnh (pixel) được biểu diễn bằng 1 byte.... ..... ffxfxf.. ... CHRx = 00000010b INT 33H . 8B02H ....2.. Giao tiếp PC Game Cấu trúc và chức năng của board ghép nối trò chơi (PC game) như hình bên dưới.. 0AH . fxxxxxxf.. ......13 Mặt nạ con trỏ chuột MOV AX... 00H .... . ..... fxf........ Để hiện con trỏ trên màn hình phải dùng hàm 01h. .. Có thể chọn kiểu con trỏ chuột cứng hoặc mềm trong chế độ văn bản hay con trỏ chuột đồ hoạ trong chế độ đồ họa.... chọn hàm MOV BX... Hình bên dưới là thí dụ của mặt nạ con trỏ hình mũi tên trong trong kiểu hiện VGA phân dải cao 256 màu.....f. số lần bấm nháy (click) phím con trỏ và hình dạng con trỏ... .. Các hàm 09h và 0Ah trong ngắt 33h cho phép định nghĩa loại và dạng con trỏ chuột... Bằng lệnh IN và OUT có thể truy xuất qua địa chỉ 201h.. f f x f ..... 00H ..fxxf..... fxxf. gọi ngắt... fxxxxf.f ...fxf..... . xoá ký tự trên màn hình MOV DX.. fxxxxxf.....BLNK=1b. f.. Đoạn chương trình sau cho phép hiện con trỏ mềm với màu số 3 và sáng nhấp nháy: f.fxf...

7 .Cấu tạo của đầu nối 15 chân và 2 joystick A và B Chân của đầu nối 15 chân 2 3 6 7 10 11 13 14 1. Một đầu nối 15 chân được nối với board mạch cho phép nối cực đại hai thiết bị cho PC game gọi là joystick. 10 bits thấp của bus địa chỉ và các đường điều khiển IOR và IOW. Giao tiếp với các thiết bị ngoại vi cơ bản Hình 7. 5. 12 Sửdụng cho Phím 1 của Joystick A (BA1) Biến trở X của Joystick A Biến trở Y của Joystick A Phím 2 của Joystick A (BA2) Phím 1 của Joystick A (BB1) Biến trở X của Joystick B Biến trở Y của Joystick B Phím 2 của Joystick A (BB2) Vcc (+5V) GND (0V) Board mạch được nối với bus hệ thống của PC chỉ qua 8 bits thấp của bus dữ liệu. 8.Chương 7. .Cấu trúc và chức năng của board ghép nối trò chơi Hình 7. 9. 15 4.6 .

do vậy board chỉ hoạt động trong chế độ hỏi vòng (polling). Có thể xác định được trạng thái nhấn hoặc nhả phím một cách dễ dàng bằng lệnh IN tới địa chỉ 201h. Tia này sẽ đập vào màn hình có phủ chất huỳnh quang để tạo thành 1 điểm sáng gọi là 1 điểm ảnh. 7. Do hiện tượng lưu ảnh trong võng mạc của mắt người nên khi tia điện tử được quét rất nhanh theo chiều ngang từ trái sang phải sẽ tạo nên 1 vệt sáng ngang được gọi là dòng quét. BB1. Byte trạng thái của board game như sau: D7 BB2 D6 BB1 D5 BA2 D4 BA1 D3 BY D2 BX D1 AY D0 AX BB2.3. BX. nó được quét ngược trở về bên trái để quét tiếp dòng 120 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Thêm nữa chúng có 2 phím bấm. thường là các công tắc thường hở phù hợp với các mức logic cao của các dây trên mạch. BA2. sau đó được tăng tốc và được làm lệch hướng chuyển động bởi các bộ phận lái tia. Monitor và card giao diện đồ hoạ 7. Hình bên dưới minh họa việc hiện ảnh trên màn hình kiểu ống phóng tia âm cực CRT (cathode ray tube). BA1: Trạng thái của các phím B2. Vì board không dùng đường IRQ do đó không có khả năng phát ra 1 ngắt. B1.Chương 7. AY. Giao tiếp với các thiết bị ngoại vi cơ bản Mỗi joystick có 2 biến trở có giá trị biến đổi từ 0 đến 100kΩ được đặt vuông góc với nhau đại diện cho vị trí x và y của joystick.1 Nguyên lý hiện ảnh trên monitor Phương pháp hiện ảnh trên màn hình của monitor máy tính cũng giống như trong máy thu hình thông thường. AX: Trạng thái của mạch đa hài tuỳ thuộc vào biến trở tương ứng.14 – Cấu tạo ống hình CRT Các điện tử phát xạ từ cathode trong ống được hội tụ thành 1 chùm tia. A1. 0 = nhấn BY. A2. Nibble cao chỉ thị trạng thái của phím. Đến cuối 1 dòng. Hình 7. 1 = nhả.3.

Chương 7. Do vậy. gọi là mành lẻ. Ba màu này được hiện nhờ 3 tia điện tử cùng bắn vào 3 điểm trên màn hình kề cận nhau. Ưu điểm là hình ảnh được điều chỉnh chính xác và ổn định nhưng thiết kế mạch điện sẽ khó hơn vì phải giải quyết vấn đề tăng dải tần làm việc. PC phải thông qua mạch ghép nối màn hình (graphics adapter). rom ký tự . xanh lá cây theo 1 tỉ lệ nào đó. hay hình vẽ trên màn hình. Giao tiếp với các thiết bị ngoại vi cơ bản thứ 2 bên dưới .. mã ký tự thông tin thuộc tính.2 Card giao tiếp đồ họa Để hiện các hình ảnh.v. Sơ đồ khối như hình sau: Hình 7. sau đó các dòng chẵn tạo nên mành chẵn được quét sau. ký tự. xanh dương. Board mạch này thường được cắm trên khe cắm mở rộng của PC. Quá trình quét các dòng được dịch dần từ trên xuống dưới cho suốt chiều dọc của màn hình được gọi là quét dọc.3. Có 2 kiểu quét tia điện tử: Quét xen kẽ (interlaced): các dòng lẻ được quét trước cho đến hết màn hình theo chiều dọc.v. Độ chói (sáng tối) được quyết định bởi cường độ chùm tia đập vào màn hình huỳnh quang và 1 điểm màu tự nhiên được hiện nhờ sự trộn lẫn của 3 màu: đỏ.. 7. Hiện nay còn có các monitor dùng màn hình tinh thể lỏng LCD hoặc ống chứa khí được hoạt động theo nguyên lý tương tự như trên nhưng không có tia điện tử quét nên thay vì các điểm ảnh riêng biệt là các phần tử phát sáng được định địa chỉ một cách tuần tự. Phương pháp này có ưu điểm là thu hẹp được dải tần số làm việc của thiết bị nhưng có nhược điểm là hình ảnh bị nhấp nháy.15 Sơ đồ khối của bản mạch ghép nối màn hình Bus Interface: Video Ram: Signal generator: Character code: Attribute information: Character rom: ghép nối bus. 3 chùm tia điện tử đó được phát ra bởi 3 súng điện tử là 3 cathode được xếp đặt bên trong CRT một cách cẩn thận. Ram Video máy phát tín hiệu.. trên các monitor này hình ảnh cũng được phát ra từng dòng một. mỗi điểm được phủ chất huỳnh quang phát ra các màu tương ứng. Quá trình quét ngược cũng không còn nữa vì ở đây đơn giản chỉ việc thay đổi địa chỉ về phần tử đầu dòng tiếp o. Quét không xen kẽ (non-interlaced): các dòng quét được thực hiện tuần tự.

Máy phát tín hiệu sẽ sử dụng các bít điểm ảnh này cùng với các thông tin thuộc tính từ Ram video và các tín hiệu đồng bộ từ CRTC để phát ra các tín hiệu cần thiết cho monitor.Chương 7. Lúc này. Logic ghép nối định địa chỉ cho RAM video bằng việc lấy ra mã ký tự cùng với thuộc tính. Chỉ từ các giá trị bit trong thanh ghi dịch. Các bit của ma trận điểm ảnh bây giờ sẽ được truyền đồng bộ với tần số video từ thanh ghi dịch tới máy phát tín hiệu. Synchronization information: thông tin đồng bộ. thí dụ ký tự được hiện theo cách nhấp nháy hay đảo màu đen trắng …. Ký tự ở góc tận cùng phía trên bên trái màn hình có địa chỉ thấp nhất mà 6845 sẽ cung cấp ngay sau khi quét dọc ngược. các ký tự được xác định bởi mã ASCII. CPU thâm nhập RAM Video qua mạch ghép nối bus để ghi thông tin xác định ký tự hay hình vẽ cần hiển thị. (từ bảng màu hiện tại) INT: Cường độ sáng . Trong chế độ văn bản (text mode). CRTC liên tục phát ra các địa chỉ để Ram video đọc các ký tự trong đó và truyền chúng tới máy phát ký tự (character generator). máy phát tín hiệu sẽ phát các tín hiệu về độ sáng và màu cho monitor. Byte thấp chứa mã ký tự. Shift register: thanh ghi dịch Character generator: máy phát ký tự. Giao tiếp với các thiết bị ngoại vi cơ bản Attribute decoder: bộ giải mã thuộc tính. địa chỉ hàng bằng 0. byte cao chứa thuộc tính. • Máy phát ký tự trong các chế độ văn bản và đồ họa: Mỗi ký tự được biểu diễn bởi 1 từ 2 byte trong RAM video. 0 = bình thường FOR2 … FOR0: Màu nền trước (từ bảng màu hiện tại) CHR7…CHR0: Mã ký tự. Cấu trúc của một từ nhớ video như sau: 15 BLNK 14 BAK2 13 BAK1 12 BAK0 11 INT 10 FOR2 9 FOR1 8 FOR0 7 CHR7 6 CHR6 5 CHR5 4 CHR4 3 CHR3 2 CHR2 1 CHR1 0 CHR0 BLNK: Nhấp nháy. 1 = bật. 0 = tắt BAK2 … BAK0: Màu nền. trong đó có cả các thông tin về thuộc tính của ký tự. Lúc này các thông tin về thuộc tính cũng không cần nữa. 1 = cao. Nếu 122 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Trong chế độ văn bản. Mã ký tự dùng cho máy phát ký tự như là chỉ số thứ nhất trong ROM ký tự. thông tin trong RAM video được sử dụng trực tiếp cho việc phát ra các ký tự. Phần trung tâm là chip điều khiển ống hình CRTC (cathode ray tube controller). Trong chế độ đồ họa (graphics mode). 6845 định địa chỉ hàng quét đầu tiên của ma trận ký tự.ROM ký tự (character rom) lưu trữ các hình mẫu điểm ảnh của các ký tự tương ứng để máy phát ký tự biến đổi các mã ký tự đó thành 1 chuỗi các bit điểm ảnh (pixel bit) và chuyển chúng tới thanh ghi dịch (shift register). 6845 liên tục xuất các địa chỉ cho RAM video qua MA0MA13.

Giao tiếp với các thiết bị ngoại vi cơ bản máy phát tín hiệu nhận được giá trị 1 từ thanh ghi dịch. Nếu địa chỉ khởi phát là bắt đầu của 1 trang thì có thể quản lý RAM video theo vài trang tách biệt nhau. Tia điện tử quay trở về bắt đầu quét dòng tiếp. Nhưng nếu kích thước RAM video lớn hơn thì làm như vậy sẽ đè lên vùng ROM mở rộng ở điạ chỉ C0000h. Đa số các RAM video được chia thành vài băng được định địa chỉ bởi RA0-RA4. card EGA và VGA với trên 128 KB nhớ được tăng cường thêm 1 chuyển mạch mềm (soft-switch) cho phép thâm nhập các cửa sổ 128 KB khác nhau vào RAM video lớn hơn nhiều. Do đó RAM video thường được chia thành vài trang. chúng kết hợp với nhau để tạo thành địa chỉ 19 bit. …. Do đó.Chương 7. Sau mỗi dòng quét. Trong khi đó với card có độ phân giải cao SVGA 60 hàng. 132 ký tự cần đến 15840 byte. 80 ký tự đòi hỏi 2000 từ nhớ 2 byte. còn bộ nhớ video trong trường hợp này được tới 16K từ vì có địa chỉ MA0-MA13 là 14 bit. ROM ký tự và máy phát ký tự không làm việc. từ đầu tiên được gán cho ký tự góc trên tận cùng bên trái màn hình gọi là hàng 1 cột 1. Trong chế độ đồ họa. phụ thuộc cả vào kích thước của RAM video. Số từ tuỳ thuộc vào độ phân giải của kiểu hiện ký tự. 6845 kích hoạt lối ra HS để tạo ra quá trình quét ngược và đồng bộ ngang. nó sẽ phát tín hiệu video tương ứng với màu của ký tự. Vậy dòng quét thứ nhất được hiện phù hợp với các ma trận điểm ảnh của các ký tự trong hàng ký tự thứ nhất. lúc đó 6845 có thể định địa chỉ cho bộ nhớ video lên tới 512k từ. 6845 tăng giá trị RA0-RA4 lên 1. Từ thứ 2 là hàng 1. Mỗi ký tự có chiều cao cực đại ứng với 32 dòng vì có 5 đường địa chỉ RA0-RA4. Các chuyển mạch này được quy định bởi riêng các nhà sản xuất board mạch. Khi tia điện tử đạt tới cuối dòng quét. với RAM video 128 KB. Thí dụ: độ phân giải chuẩn 25 hàng. 6845 có thể được chương trình hóa sao cho địa chỉ khởi phát của MA0-MA13 sau quét ngược dọc là khác 00h. Như vậy. • Tổ chức của RAM video RAM video được tổ chức khác nhau tuỳ theo chế độ hoạt động và bản mạch ghép nối. Địa chỉ dòng này hình thành một giá trị offset bên trong ma trận điểm ảnh cho ký tự được hiện. 6845 sẽ reset địa chỉ MA0-MA13 và RA0. Thí dụ. Khi địa chỉ RA0-RA4 trở về giá trị 0. Tổ chức trong chế độ văn bản RAM video được coi như một dãy từ tuyến tính. hàng ký tự thứ nhất đã được hiện sau 14 dòng quét. Điều này có nghĩa là với ma trận 9x14 điểm ảnh cho 1 ký tự. nếu CPU thay đổi nội dung của 1 trang mà trang đó hiện . Các đường MA0-MA13 sẽ định địa chỉ offset bên trong mỗi băng. 6845 sẽ cấp 1 địa chỉ MA0-MA13 mới và hàng ký tự thứ hai sẽ được hiện ra cũng như vậy. các byte trong RAM video không được dịch thành mã ký tự và thuộc tính nữa mà trực tiếp xác định cường độ sáng và màu của điểm ảnh. một dòng các điểm ảnh của ký tự trong hàng ký tự được hiện ra. Kích thước của mỗi trang tuỳ thuộc vào chế độ hiện của màn hình và số trang cực đại. có thể địa chỉ hóa toàn bộ bộ nhớ màn hình qua CPU như bộ nhớ chính. Trong trường hợp này. Số liệu trong RAM video lúc này được trực tiếp truyền tới thanh ghi dịch và máy phát tín hiệu. Dựa trên mỗi dòng quét như vậy.RA4 và cho phép lối ra VS phát ra tín hiệu quét ngược cùng tín hiệu đồng bộ dọc. Nếu nhận được 0 nó sẽ cấp tín hiệu tương ứng với màu nền. Ở cuối dòng quét cuối cùng. cột 2. tổng cộng cần 4 KB bộ nhớ RAM video.

băng thứ hai cho các dòng 1. MOV AX. RAM video được chia thành 4 băng trên 1 trang . ghi byte thuộc tính và mã ký tự vào RAM video. Tổ chức trong chế độ đồ họa: Tổ chức trong chế độ này phức tạp hơn.txt > con . 2000h* (i mod 4) là offset của băng chứa byte đó. 0F8h.Chương 7. 90*int (i/4) là offset của dòng i trong băng và int (j/8) là offset của cột j trong băng. 8. băng thứ 3 cho các dòng 2.Hàm 06h: ra một ký tự. 6. DOS gộp chung bàn phím và monitor thành 1 thiết bị mang tên CON (console). Do đó.print output.Hàm 02h: ra màn hình. Địa chỉ của byte chứa điểm ảnh thuộc đường i và cột j trong trang k là: B0000h+8000h*k+2000h* (i mod 4)+ 90*int (i/4)+int (j/8) B0000h là đoạn video. 64 KB được chia thành 2 trang 32 KB.type output. nạp mã ký tự của ‘A’ vào AL MOV ES:[00H]. Các lệnh copy. 8000h là kích thước của trang. 346. 7. 4. Ví dụ: để hiện nội dung của file output. một dòng cần 90 byte (720 điểm ảnh / 8 điểm ảnh trên 1 byte). Đoạn chương trình ghi ký tự 'A' có cường độ sáng cao vào góc trên bên trái với màu số 7 và màu nền số 0. type và print trong command. cần phân biệt trang nhớ đang được kích hoạt (đang hiện) và trang đang được xử lý. 11.txt con .AX. 345. nạp byte thuộc tính 1111 1000 vào AH MOV AL. …. ….Hàm 09h: ra một chuỗi. Giao tiếp với các thiết bị ngoại vi cơ bản đang không hiện thì màn hình cũng không thay đổi.copy output.. …. và băng thứ 4 cho các dòng 3. 347. 0B000h. Băng thứ nhất: đảm bảo các điểm ảnh cho các dòng 0.txt /D:con Truy xuất qua BIOS 124 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . .txt lên màn hình của monitor sẽ có các cách sau: .Hàm 40h: ghi file/ thiết bị Từ DOS 4. . 10. …. Trong bản mạch CGA bộ nhớ video được chia thành 2 băng còn với EGA và VGA thì phức tạp hơn. 9. Trang thứ nhất và là duy nhất bắt đầu ở địa chỉ B0000h. 344. Độ phân giải trong chế độ đồ họa là 720 x 348 điểm ảnh. mỗi điểm ảnh được biểu diễn bởi 1 bit. truyền địa chỉ đoạn vào ES MOV AH. 5. Ví dụ: với bản mạch Hercules. .0 trở đi có thể dùng lệnh mode để điều chỉnh số cột văn bản từ 40 đến 80 hay số dòng từ 25 đến 50. Do vậy. AX.com cho phép hiện text trên màn hình. còn đọc CON là nhận ký tự từ bàn phím. • Truy xuất màn hình qua DOS và BIOS Truy xuất qua DOS Các hàm của int 21h có thể hiện các ký tự trên màn hình nhưng không can thiệp được vào màu: . Ghi CON là truyền số liệu tới monitor. 41h. nạp thanh ghi ax với địa chỉ đoạn của Ram video MOV ES.

Thường trình cũ (của BIOS trên board mach chính ) được thay địa chỉ tới int 42h. BIOS của EGA/VGA dùng vùng 40:84h tới 40:88h để lưu số liệu BIOS và các thông số của EGA/VGA. Mov bl. Một trong những hàm quan trọng nhất của int 10h là hàm 00h dùng để đặt chế độ hiện hình. dùng hàm 11h Mov al. phân biệt các điểm trên màn hình nhờ các tọa độ. nạp bảng ký tự từ Rom Bios vào Ram máy phát ký tự. dùng hàm phụ 03h Mov bl. như đặt chế độ hiện hình. 00h . BIOS của riêng EGA và VGA có những hàm mở rộng tương ứng trong khi vẫn giữ nguyên định dạng gọi. 01h . nó sẽ chặn int 10h lại và chạy chương trình BIOS của riêng board mạch. gọi ngắt . Mov ah. Để thay đổi chế độ hiện hình cần phải làm rất nhiều bước chương trình phức tạp để nạp các thanh ghi của chip 6845. 10h . 00h . hàm 00h làm cho ta tất cả các công việc này. 06h . quản lý tự động các trang. dùng hàm 10h Mov al. Giao tiếp với các thiết bị ngoại vi cơ bản Bios thâm nhập monitor bằng int 10h với nhiều chức năng hơn DOS. xoá thuộc tính nhấp nháy Int 10h .… Những thường trình đồ họa: BIOS trên main board có sẵn những hàm dùng cho thâm nhập MDA và CGA. gán số 3 cho bảng . gọi ngắt Các board EGA/VGA có riêng BIOS của chúng. Trong khi đó. 03h . hàm phụ 03h – xoá/đặt thuộc tính Ví dụ: Xoá thuộc tính nhấp nháy: Mov ah. Nó có các hàm mới với các hàm phụ sau: Hàm 10h: truy xuất các thanh ghi màu và bảng màu Hàm 11h: cài đặt các bảng định nghĩa ký tự mới Hàm 12h: đặt cấu hình hệ con video Hàm 1Bh: thông tin về trạng thái và chức năng của BIOS video (chỉ có ở VGA) Hàm 1Ch: trạng thái save/restore của video (chỉ có ở VGA) Sau đây là chức năng của các hàm và thí dụ sử dụng chúng: Hàm 10h. 03h . Có các kiểu hoạt động từ 0 đến 7. Thí dụ: tạo kiểu 6 với độ phân giải 640*200 trên CGA. hàm 00h Mov al.Chương 7. chế độ 6 Int 10h .Hàm 11h – ghép nối với máy phát ký tự Ví dụ: Nạp bảng định nghĩa ký tự 8*14 không cần chương trình CRTC: Mov ah. Trong quá trình khởi động PC. 11h . Tất cả các lệnh gọi int 10h sẽ được BIOS của EGA/VGA thay địa chỉ tới int 42h nếu board mạch EGA/VGA đang chạy các kiểu hiện tương thích với MDA hay CGA.

Giao tiếp với các thiết bị ngoại vi cơ bản Int 10h . 12h . 80 cột. Như vậy mỗi dòng có 160 byte (A0h). gọi ngắt . Địa chỉ của từ nhớ ứng với ký tự ở dòng i.Hàm 12h. Với board đơn sắc MDA trong kiểu hiện văn bản số 7.j) = B0000h +A0h*i +02h*j. Các điểm ảnh được xếp kề cận nhau trong bộ nhớ và mỗi điểm ảnh đòi hỏi 4 bit. dùng hàm phụ 20h Ấn PRINT hoặc SHIFT+PRINT để gọi thường trình in đã được lắp đặt. Hình 7.16 Các lớp nhỏ của RAM Video 126 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . Như vậy địa chỉ của 1 trong 4 bit này trên 1 điểm ảnh không chỉ gồm đoạn video và offset mà còn thêm vào số lớp nhớ nữa. dùng hàm 12h Mov bl. trong đó ký tự góc trên cùng bên trái là từ thứ nhất trong RAM video. Với board EGA. • Truy xuất trực tiếp bộ nhớ video: Để vẽ 1 điểm trên màn hình. Dùng hàm phụ này có thể thay thế thường trình chuẩn cho INT 05h bằng thường trình có thể dùng cho các độ phân giải mới của EGA/VGA. Ví dụ: Cho phép thường trình mới in màn hình: Mov ah. 4 KB RAM đuợc tổ chức như 1 dãy (array) gốm 2000 từ nhớ kề nhau ( mỗi từ là mã thuộc tính: ký tự) tạo nên 25 dòng. 20h . cột j (i = 0-24. Trong chế độ đồ họa từ 13 đến 16. RAM video bắt đẩu ở đọan B0000h. các bit này được phân ra ở 4 lớp nhớ. hàm phụ 20h – chọn thường trình in màn hình.Chương 7. j = 0-79) được tính theo công thức sau: Address (i. BIOS phải làm nhiều thủ tục nhưng nếu muốn vẽ toàn bộ 1 cửa sổ hình hay lư trữ thì phải truy xuất trực tiếp RAM video. Mạch logic chuyển địa chỉ trên board thực hiện sự kết hợp nhất định nào đó sao cho tổ chức và cấu trúc của RAM video cũng như cách tính địa chỉ vẫn tương đồng với cách của CPU. ở kiểu hiện văn bản từ 0 đến 3 mã ký tự được lưu trữ trong lớp nhớ 0 cùng với thuộc tính trong lớp 1 của RAM video. RAM video bắt đầu từ địa chỉ đoạn A000h.

ghi 0000 1011b vào thanh ghi mặt nạ bản đồ (cho phép lớp 0. đặt bit 0 trong các lớp 0.j. [ES:BX] . Thanh ghi này được định địa chỉ qua cổng chỉ số 3C4h với địa chỉ 02h và có thể được ghi qua cổng số liệu 3C5h. 0000h . mỗi trang màn hình gồm 32 KB. cột j trang k (i=0349. 0000h . truyền đọan video vào ES Mov BX. Nó được định địa chỉ với chỉ số 04h qua cổng chỉ số 3CEh. 02h . 0Bh . và có thể được ghi qua cổng số liệu 3CFh. Cấu trúc của thanh ghi mặt nạ bản đố như sau: 7 Res 6 Res 5 Res 4 Res 3 2 LY3 LY2 1 LY1 0 LY0 LY3-LY0: Thâm nhập ghi tới các lớp từ 0 3. AX . .k) = A0000h + 8000h*k + 50h*j + int (i/8). ghi 0000 0010b vào thanh ghi chọn bản đồ đọc (cho phép lớp 2) Mov AL. chỉ số 4 thanh ghi chọn bản đồ đọc Out 3CFh. nạp đọan video vào AX Mov ES. nạp offset vào BX Out 3Ceh. 1. Cấu trúc của thanh ghi này: res res res res res res LY1 LY0 LY1-LY0: cho phép thâm nhập đọc với: 00 = lớp 0 01 = lớp 1 10 = lớp 2 11 = lớp 3 res : dự trữ Ví dụ: đọc byte ở địa chỉ A000:0000h cho lớp 2: Mov AX. 02h . A000h . 0Bh . nạp đọan video vào AX Mov ES. nạp byte trong lớp 2 vào AL. Giao tiếp với các thiết bị ngoại vi cơ bản Để hiện 1 điểm ảnh với 1 trong 16 màu. 1 = cho phép. 0 = không cho phép Res : Dự trữ Ví dụ: Đặt bit 0 của byte ở địa chỉ A000:0000h cho lớ 0. 1 và 3 Để lưu trữ nội dung màn hình cần phải đọc các giá trị bit của 4 lớp khi dùng thanh ghi chọn bản đồ đọc (read map select register). 3.Chương 7. 1. Địa chỉ byte của điểm ảnh ở dòng i. truyền đọan video vào ES Mov BX. nạp offset 0000h vào BX Out 3C4h. chỉ số 2 thanh ghi mặt nạ bản đồ Out 3C5h. phải dùng thanh ghi mặt nạ bản đồ (map mask register). j=0-639. 3) Mov 3C5h. 04h . k=0-1) là: Address (i. 0A000h . Muốn vậy. Mov AX. không phải chỉ tính địa chỉ bit mà còn phải thâm nhập 4 lớp nhớ. Chú ý rằng 4 bit tại 4 lớp đại diện cho 1 điểm ảnh nên trong kiểu hiện 16 EGA có độ phân giải cao nhất mỗi dòng cần 80byte (640 điểm ảnh / 8 điểm ảnh trên 1 byte). AX .

Dùng chip xử lý đồ họa với BIOS riêng trên board mạch điều khiển monitor. Một trang màn hình gồm 64 KB (10000h) nhưng chỉ có 64000 byte được sử dụng. 4 bit của điểm ảnh được phân trong 4 lớp nhớ như ở EGA. mỗi trang màn hình gồm 40 KB (A0000h byte). Địa chỉ của điểm ảnh trong dòng i. các chế độ hiện văn bản từ 0 đến 3 và 7 cũng như các chế độ đồ họa từ 4 đến 6 và 13 đến 16 của CGA. Trong kiểu VGA phân giải cao với 16 màu khác nhau. trong đó 1 byte tương ứng với 1 điểm ảnh. cột j (i=0-479. cột j (i = 0-199. 80 byte trên 1 dòng (640 điểm ảnh / 8 điểm ảnh trên 1 byte). Giao tiếp với các thiết bị ngoại vi cơ bản Với board VGA. Quá trình chuyển hóa địa chỉ cũng giống như EGA nhưng khác ở chổ nó vẫn đảm bảo chế độ văn bản 7 với độ phân giải 720x400. điều này cho phép 1 lượng thông tin nhiều hơn được trao đổi giữa CPU và board mạch trong 1 đơn vị thời gian. cấu trúc cũng như cách tính địa chỉ tương tự như CGA và EGA.j) = A0000h+50h*j+int (i/8) Kiểu 18. Giá trị của byte phân định màu của điểm ảnh. j=0319) là: Address (i. ma trận điểm ảnh 9x16. Kiểu 17 tương thích với board đồ họa của máy PS/2 kiểu 30 là MCGA (multi colour graphics array). Kiểu 19 với 256 màu cho 1 điểm ảnh thì RAM video lại được tổ chức rất đơn giản như 1 dãy tuyến tính. board chỉ cầnvài thông số ban đầu từ CPU như tọa độ của 2 góc và giá tri màu là đủ. mã ký tự được lưu trữ trong lớp nhớ 0 cùng với thuộc tính trong lớp 1 của RAM video VGA. j = 0-639) bằng: Address (i. Cách giải quyết như vậy rất có lợi khi PC chạy trong chế độ đa nhiệm. Các điểm ảnh chỉ gổm 1 bit (2 màu) được định vị chỉ trên lớp 0. Kiểu này đòi hỏi 320 byte (140h) trên 1 dòng (320 điểm ảnh / 1 điểm ảnh trên 1 byte).Chương 7. Mỗi trang màn hình gồm 40 KB. cột j ( i= 0479).639) như sau: Address (i. - 128 Nguyễn Tuấn Linh – BM KTMT – Khoa Điện Tử . VGA được tăng cường 3 kiểu hiện hình mới từ 17 đến 19. Trong chế độ văn bản. địa chỉ của mỗi byte ở dòng i. Trong chế độ đồ họa 4 6 ÷ và 13 19 ÷ . Địa chỉ của byte ở dòng i. Chip này sẽ làm hầu hết các công việc trừ một ít lệnh và thông số mô tả nội dung phần màn hình cần hiện là được cấp từ CPU. Thí dụ cần vẽ 1 hình chữ nhật với màu nào đó. j=0. Thí dụ.j) = A0000h + 140h*j + i • Bus cục bộ và chip xử lý đồ họa Để tăng tốc độ hiện đồ họa có 2 giải pháp: Dùng bus cục bộ 32 bit để tránh hiện tượng nghẽn cổ chai (bottleneck) do bus ISA chỉ có 16 bit và tốc độ hạn chế (8. trong VGA kiểu 17 với 80 byte trên 1 dòng (640 điểm ảnh / 8 điểm ảnh trên 1 byte).j) = A0000h + 50h*j + int (i/8). EGA và MDA đều chạy được trên nó.33Mhz). mọi tổ chức.

Sign up to vote on this title
UsefulNot useful