Giáo trình Kỹ thuật ghép nối máy tính

doc 142 trang hapham 2960
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật ghép nối máy tính", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docgiao_trinh_ky_thuat_ghep_noi_may_tinh.doc

Nội dung text: Giáo trình Kỹ thuật ghép nối máy tính

  1. BỘ LAO ĐỘNG THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ GIÁO TRÌNH MƠN HỌC: KỸ THUẬT GHÉP NỐI MÁY TÍNH NGHỀ: ĐIỆN TỬ CƠNG NGHIỆP TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số:120/QĐ-TCDN ngày 25 tháng 02 năm 2013 của Tổng cục trưởng Tổng cục Dạy nghề Năm 2013 Năm 2013
  2. 1 TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin cĩ thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm.
  3. 2 LỜI GIỚI THIỆU Để thực hiện biên soạn giáo trình đào tạo nghề Điện tử cơng nghiệp ở trình độ CĐN và TCN, giáo trình Mơn học Kỹ thuật ghép nối máy tính là một trong những giáo trình mơn học đào tạo chuyên ngành được biên soạn theo nội dung chương trình khung được Bộ Lao động Thương binh và Xã hội và Tổng cục Dạy nghề ban hành dành cho hệ Cao Đẳng Nghề và Trung Cấp Nghề Điện tử cơng nghiệp Khi biên soạn, nhĩm biên soạn đã cố gắng cập nhật những kiến thức mới cĩ liên quan đến nội dung chương trình đào tạo và phù hợp với mục tiêu đào tạo, nội dung lý thuyết và thực hành được biên soạn gắn với nhu cầu thực tế trong sản xuất đồng thời cĩ tính thực tiển cao. Nội dung giáo trình được biên soạn với dung lượng thời gian đào tạo 45 giờ gồm cĩ các chương sau: Chương 1: Đại cương về kỹ thuật ghép nối máy tính. Chương 2: Giao tiếp với tín hiệu tương tự. Chương 3: Thủ tục trao đổi dữ liệu của máy tính. Chương 4: Ghép nối qua rãnh cắm mở rộng. Chương 5: Ghép nối trao đổi tin song song. Chương 6: Ghép nối trao đổi tin nối tiếp. Chương 7: Giao tiếp với các thiết bị ngoại vi cơ bản. Trong quá trình sử dụng giáo trình, tuỳ theo yêu cầu cũng như khoa học và cơng nghệ phát triển cĩ thể điều chỉnh thời gian và bổ sung những kiên thức mới cho phù hợp. Trong giáo trình, chúng tơi cĩ đề ra nội dung thực tập của từng chương để người học cũng cố và áp dụng kiến thức phù hợp với kỹ năng. Tuy nhiên, tùy theo điều kiện cơ sở vật chất và trang thiết bị, các trường cĩ thề sử dụng cho phù hợp. Mặc dù đã cố gắng tổ chức biên soạn để đáp ứng được mục tiêu đào tạo nhưng khơng tránh được những khiếm khuyết. Rất mong nhận được đĩng gĩp ý kiến của các thầy, cơ giáo, bạn đọc để nhĩm biên soạn sẽ hiệu chỉnh hồn thiện hơn. Các ý kiến đĩng gĩp xin gửi về Trường Cao đẳng nghề Lilama 2, Long Thành Đồng Nai Đồng Nai, ngày 10 tháng 06 năm 2013 Tham gia biên soạn 1. Chủ biên: TS. Lê Văn Hiền 2. ThS. Lê Quang Trung 3. KS.Võ Văn Long
  4. 3 MỤC LỤC TUYÊN BỐ BẢN QUYỀN 1 LỜI GIỚI THIỆU 2 CHƯƠNG 1: ĐẠI CƯƠNG VỀ KỸ THUẬT GHÉP NỐI MÁY TÍNH 8 1.1. Cấu trúc chung của hệ thống 8 1.2. Yêu cầu trao đổi tin của máy vi tính đối với mơi trường bên ngồi 9 1.2.1 Yêu cầu trao đổi tin với người điều hành 10 1.2.2 Yêu cầu trao đổi tin với thiết bị ngồi trong hệ đo lường – điều khiển 10 1.2.3 Yêu cầu trao đổi tin trong mạng máy tính 10 1.3. Dạng và các loại tin trao đổi giữa máy vi tính và thiết bị ngồi (TBN)10 1.3.1 Dạng tin 10 1.3.2 Các loại tin 11 1.4. Vai trị và nhiệm vụ của khối ghép nối 11 1.4.1 Vai trị 11 1.4.2 Nhiệm vụ 11 1.5. Cấu trúc chung của một hệ ghép nối máy tính 13 1.5.1 Cấu trúc đường tín hiệu của KGN với Máy tính 13 1.5.2 Cấu trúc chung của một khối ghép nối 14 1.6. Chương trình phục vụ trao đổi tin cho khối ghép nối 15 1.6.1 Lập trình hợp ngữ (assembly) 15 1.6.2 Lập trình Pascal 16 1.6.3 Lập trình C/C++ 16 CHƯƠNG 2: GIAO TIẾP VỚI TÍN HIỆU TƯƠNG TỰ 18 2.1. Khái niệm tín hiệu tương tự và hệ đo lường điều khiển số 18 2.2. Chuyển đổi tín hiệu số sang tương tự DACs 19 2.2.1. Các tham số chính của một DAC 19 2.2.2. DAC chia điện trở 21 2.2.3. DAC trọng số nhị phân 21 2.2.4. DAC điều biến độ rộng xung 22 2.3. Chuyển đổi tín hiệu tương tự - số ADC: 22 2.3.1 Các tham số chính của một ADC 23 2.3.2 Bộ biến đổi AD theo hàm dốc 24 2.3.3 A/D xấp xỉ tiệm cận 26 2.3.4 Tích phân sườn dốc 26 2.3.5 Flash ADC 28 2.3.6 Một số vi mạch ADC thơng dụng 28
  5. 4 CHƯƠNG 3: THỦ TỤC TRAO ĐỔI DỮ LIỆU CỦA MÁY TÍNH 35 3.1. Các chế độ trao đổi dữ liệu của máy tính 35 3.2. Trao đổi tin ngắt vi xử lý 36 3.2.1 Các loại ngắt của máy PC 37 3.2.2 Xử lý ngắt cứng trong IBM - PC: 40 3.2.3. Lập trình xử lý ngắt cứng: 42 3.3. Trao đổi tin trực tiếp bộ nhớ 44 3.3.1 Cơ chế hoạt động: 44 3.3.2 Hoạt động của DMAC: 44 3.3.3 Chip điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 45 CHƯƠNG 4: GHÉP NỐI QUA RÃNH CẮM MỞ RỘNG 51 4.1. Đặt vấn đề 51 4.2. Bus PC 52 4.3. Bus ISA (16 bit) 53 4.4. Bus PCI 56 4.4. Ghép nối qua khe cắm mở rộng 57 4.4.1 Một số đặc điểm của Card ISA 57 4.4.2 Giải mã địa chỉ và kết nối Bus dữ liệu 57 CHƯƠNG 5: GHÉP NỐI TRAO ĐỔI TIN SONG SONG 60 5.1. Khối ghép nối song song đơn giản 60 5. 2. Các vi mạch đệm, chốt (74LS245, 74LS373) 61 5. 2.1 Vi mạch đệm 74LS245: 61 5.2.2 Vi mạch chốt 74LS373: 62 5.3. Vi mạch PPI 8255A 62 5.3.1 Giới thiệu chung 62 5.3.2 Các lệnh ghi và đọc các cổng và các thanh ghi điều khiển 64 5.3.3 Các từ điều khiển 64 5.3.4 Ghép nối 8255A với Máy tính và TBN 69 5.4. Ghép nối song song qua cổng máy in 72 5.4.1 Giới thiệu chung 72 5.4.2 Cấu trúc cổng máy in 73 5.4.3 Các thanh ghi của cổng máy in: 75 5.4.4 EPP - Enhanced Parallel Port 77 CHƯƠNG 6: GHÉP NỐI TRAO ĐỔI TIN NỐI TIẾP 84 6.1. Đặt vấn đề 84 6.2. Yêu cầu và thủ tục trao đổi tin nối tiếp: 84 6.2.1 Yêu cầu: 85 6.2.2 Trao đổi tin đồng bộ: Synchronous 85
  6. 5 6.2.3 Trao đổi tin khơng đồng bộ - Asynchronous: 86 6.3. Truyền thơng nối tiếp sử dụng giao diện RS-232: 87 6.3.1 Quá trình truyền một byte dữ liệu: 88 6.3.2 Cổng nối tiếp RS 232 88 6.4. Giao tiếp USB của máy PC: 106 6.4.1 Giới thiệu chung 106 6.4.2 Mơ tả hệ thống USB 106 6.4.3 Giao diện vật lý 108 6.4.4 Sự điểm danh 113 6.4.5 Các kiểu truyền USB 114 6.4.6 Giao thức USB 115 6.4.7 Khuơn dạng các gĩi tin 117 CHƯƠNG 7: GIAO TIẾP VỚI CÁC THIẾT BỊ NGOẠI VI CƠ BẢN 121 7.1. Giao tiếp với bàn phím và chuột 121 7.1.1 Bàn phím 121 7.1.2 Chuột 126 7.2. Giao tiếp PC Game 128 7.3. Monitor và card giao diện đồ hoạ 130 7.3.1 Nguyên lý hiện ảnh trên monitor 130 Tài liệu tham khảo 142
  7. 6 MƠN HỌC: KỸ THUẬT GHÉP NỐI MÁY TÍNH Mã mơn học: MH 26 Vị trí, tính chất, ý nghĩa và vai trị của mơn học: -Vị trí của mơn học: Mơn học được bố trí dạy sau khi học song các mơn học/mơ đun kỹ thuật cơ sở, MĐ17, MĐ22, MĐ 24, MĐ25 - Tính chất , ý nghĩa của mơn học: Là mơn học chuyên mơn nghề. Cung cấp cho người học những khái niệm và kỹ năng cơ bản về kỹ thuật ghép nối máy tính. Nội dung của mơn học: Sau khi học xong mơn học này học viên cĩ năng lực + Về kiến thức: – Mơ tả về việc ghép nối máy tính và vai trị của ghép nối máy tính trong hệ thống tự động. – Nhận dạng được 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, PCI, ), các cổng vào ra (LPT, COM, USB, ). + Về kỹ năng: – 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ế. + Về thái độ: – Rèn luyện tính tỷ mỉ, chính xác và an tồn vệ sinh cơng nghiệp III. NỘI DUNG TỔNG QUÁT MƠN HỌC Thời gian Số Tên các bài trong mơn học Tổng Lý Thực TT Kiểm tra* số thuyết hành 1 Đại cương về kỷ thuật ghép nối 7 5 2 máy tính 2 Giao tiếp với tín hiệu tương tự 6 4 2 3 Thủ tục trao đổi dữ liệu của 6 5 0 1 máy tính 4 Ghép nối qua rãnh cắm mở 5 2 3 rộng
  8. 7 5 Ghép nối trao đổi tin song song 8 4 4 6 Ghép nối trao đổi tin nối tiếp 8 4 4 7 Giao tiếp với các thiết bị ngoại 5 3 1 1 vi cơ bản Cộng 45 28 15 2
  9. 8 CHƯƠNG 1 ĐẠI CƯƠNG VỀ KỸ THUẬT GHÉP NỐI MÁY TÍNH Mã chương: MH26-01 Giới thiệu về chương Giới thiệu cho người học về Vị trí, 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. Mục tiêu: Hiểu được cấu trúc tổng quan của hệ vi xử lý; Vị trí, 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. Xác định được yêu cầu, các thành phần và lập trình điều khiển cho khối ghép nối máy tính. Nội dung 1.1. Cấu trúc chung của hệ thống Mục tiêu: – Giới thiệu về các thành phần và các trúc của hệ thống máy tính. Nội dung 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), bộ nhớ (Memory) và các cổng vào/ra (I/O), như hình 1.1. Ngồi ra, Máy tính cịn cần phải trao đổi dữ liệu với mơi trường bên ngồi, ví dụ như giao tiếp với người sử dụng qua bàn phím, màn hình, trao đổi dữ liệu với các thiết bị ngoại vi thơng dụng, các thiết bị ngồi trong hệ đo – điều khiển, và các Máy tính khác trong mạng. Do đĩ các khối ghép nối (KGN) thiết bị ngoại vi được xây dựng, gồm: – KGN các thiết bị vào chuẩn như bàn phím, chuột, – KGN các thiết bị ra chuẩn như màn hình, máy in, – KGN các bộ nhớ ngồi chuẩn như ổ cứng, ổ CD, – 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, vi xử lý – KGN với hệ đo – điều khiển
  10. 9 Hình 1.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 - điều khiển, Máy tính nhận dữ liệu trạng thái vật lý của hệ thống (nhiệt độ, áp suất, điện áp, dịng điện ) dưới dạng tín hiệu điện, từ đầu dị các bộ cảm biến (sensor), bộ chuyển đổi (tranducer), bộ phát hiện (detector). 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ị đo. Máy tính sau đĩ đưa tín hiệu chấp nhận trao đổi dữ liệu với TBNV, thu thập và xử lý dữ liệu, tính tố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ở, các rơle trong mạch điện, các mạch động lực điều tốc động cơ điện ), hay đưa ra các thơng số kỹ thuật cho thiết bị. Ngồi ra, Máy tính cịn cần lưu trữ dữ liệu trên ổ cứng, đĩa compact (CD-ROM) để tra cứu lúc cần, hiển thị kết quả đo dưới dạng bảng số liệu, dạng đồ thị hay hình vẽ đồ hoạ trên màn hình. 1.2. Yêu cầu trao đổi tin của máy vi tính đối với mơi trường bên ngồi Mục tiêu – Giới thiệu về những yêu cầu trao đổi tin của máy tính với người điều
  11. 10 hành, thiết bị ngoại vi và mạng. Nội dung: 1.2.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, bàn phím, màn hình. 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. Trạng thái hoạt động của hệ thống được thể hiện trên giao diện, 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, bàn phím, Việc trao đổi thơng tin với người sử dụng cần đảm bảo nhanh, chính xác đồng thời phải thuận tiện, an tồn cho người sử dụng. 1.2.2 Yêu cầu trao đổi tin với thiết bị ngồi trong hệ đo lường – điều khiển Trong hệ đo lường – điều khiển, máy tính nhận dữ liệu trạng thái vật lý của hệ thống (nhiệt độ, áp suất, điện áp, dịng điện, ) dưới dạng tín hiệu điện, từ các bộ cảmbiến (sensor), bộ chuyển đổi (transducer), bộ phát hiện (detector), và máy tính cịnnhận thơng tin về trạng thái sẵn sàng hay bận của thiết bị. Máy tính sau đĩ trao đổi dữ liệu với thiết bị ngoại vi, thu thập và xử lý dữ liệu, tính tố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ở, các rơ le trong mạch điện, các mạch động lực điều tốc động cơ điện, ) hay đưa ra các thơng số thiết lập chế độ hoạt động cho thiết bị. Ngồi ra máy tính cịn làm nhiệm vụ lưu trữ dữ liệu để tra cứu, 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. 1.2.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, với nhiều máy vi tính khác, với nhiều thiết bị ngồi như: các thiết bị đầu cuối, các thiết bị nhớ ngồi, các thiết bị lưu trữ và biểu diễn tin. 1.3. Dạng và các loại tin trao đổi giữa máy vi tính và thiết bị ngồi (TBN) Mục tiêu – Giới thiệu về dạng tin và các lợi tin trao đổi giữa máy vi tính và thiết bị ngồi Nội dung 1.3.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 Thiết bị ngồi lại trao đổi tin với nhiều dạng khác nhau như dạng số, dạng ký tự, dạng tương tự, dạng âm tần hình sin tuần hồn
  12. 11 1.3.2 Các loại tin – Máy tính đưa ra thiết bị ngồ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, là địa chỉ các thanh ghi (register) của khối ghép nối đại diện cho TBN. + 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ị, đọc hoặc ghi một thanh ghi, cho phép hay trả lời yêu cầu hành động, v.v + Tin về số liệu: Đĩ là các số liệu cần đưa ra cho thiết bị ngồi. – 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, về trạng thái sai lỗi của TBN. + Tin về số liệu: Đĩ là các số liệu cần đưa vào Máy tính 1.4. Vai trị và nhiệm vụ của khối ghép nối Mục tiêu: – Phân tích về vai trị và nhiệm vụ của khối ghép nối giữa Máy tính và TBN. Nội dung 1.4.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 Hình 1.2. Vị trí và vai trị của khối ghép nối 1.4.2 Nhiệm vụ + Phối hợp về mức và cơng suất tín hiệu - 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, thơng thường cao hơn (± 15V, ± 48V) hay mức điện cơng nghiệp (220V/380V hoặc lớn hơn). - Cơng suất đường tín hiệu Máy tính nhỏ (cỡ chục mA), trong khi cơng suất cần cho TBN thường rất lớn, đặc biệt trong cơng nghiệp.
  13. 12 - 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ị. - 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. Đầu vào/ra sẽ ở mức trở kháng cao khi khơng cĩ trao đổi dữ liệu, để cơ lập thiết bị với máy tính, hạn chế tiêu thụ cơng suất đường tín hiệu và bảo vệ máy 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ố, cĩ thể truyền theo 8, 16 hoặc 32 bit, 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. Do đĩ cần phải thực hiện đồng bộ về mặt tốc độ. Việc này thường cĩ sự kết hợp giữa phần cứng và phần mềm. Trên KGN phải cĩ bộ nhớ đệm để đệm dữ liệu giữa máy tính và thiết bị. 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ị, giải phĩng cho máy tính làm nhiệm vụ khác (phục vụ thiết bị khác, xử lý dữ liệu hoặc điều khiển hiển thị, ) Tương tự, 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, cần cĩ KGN và cách trao đổi tin diễn ra theo trình tự nhất định. – 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. Nếu cĩ trạng thái sẵn sàng mới trao đổi tin, nếu khơng, 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, Máy tính cĩ thể khởi động TBN rồi thực hiện nhiệm vụ khác. 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, để đư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, KGN sắp xếp theo ưu tiên định sẵn, 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, sửa soạn trao đổi và đưa tín hiệu
  14. 13 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) 1.5. Cấu trúc chung của một hệ ghép nối máy tính Mục tiêu: – Giới thiệu về cấu trúc chung của khối ghép nối Nội dung: 1.5.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 - An - 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 - 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 - Đường tín hiệu đọc, Đường tín hiệu viết để truyền lệnh đọc (RD) hay viết cho KGN. - Đườ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, đảm bảo sự hoạt động nhịp nhàng, tin cậy giữa chúng như: + Hỏi - 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 - Đườ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
  15. 14 1.5.2 Cấu trúc chung của một khối ghép nối Hình 1.3: 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. Thường dùng vi mạch chuyển mức, vi mạch cơng suất - Cơ lập đường tín hiệu khi khơng cĩ trao đổi tin + Khối giải mã địa chỉ - lệnh: Nhận các tín hiệu từ bus địa chỉ, các tín hiệu đọc, ghi, chốt địa chỉ (ALE), để tổ hợp thành các tín hiệu đọc, ghi và chọn chip cho từng thiết bị của KGN và TBN. + 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, che chắn yêu cầu trao đổi tin của TBN. 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
  16. 15 - Phát nhịp thời gian cho hành động ở bên trong KGN hay cho TBN. Đơi khi để - đồng bộ, 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ị ngồi - Biến đổi mức tín hiệu, 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, chế độ hoạt động 1.6. Chương trình phục vụ trao đổi tin cho khối ghép nối Mục tiêu – Giới thiệu và đưa ra các ví dụ về chương trình phục vụ trao đổi tin cho khối ghép nối Nội dung Mỗi khối ghép nối cần cĩ một chương trình phục vụ trao đổi tin, các chương trình này thường viết dưới dạng các chương trình con, 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. 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, .lib), thư viện liên kết động (.dll), các điều khiển ActiveX (.ocx), các device driver. 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, Pascal, C/C++, Visual C, Visual Basic, 1.6.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, address mov ax, data out dx, ax Ví dụ: mov dx, 300H mov ax, F0H
  17. 16 out dx, ax Nhập số liệu từ cổng địa chỉ address vào biến data mov dx, address in ax, dx mov data, ax data, address là số nhị phân 16 bit. Đọc/ghi thanh ghi: 1.6.2 Lập trình Pascal Đọc thanh ghi: := port[địa chỉ thanh ghi]; Ghi vào thanh ghi := port[địa chỉ thanh ghi]:= ; Lập xĩa bit: Lập bit: Port[$301]:=port[$301] OR $02; {L p C1} Xĩa bit: Port[$301 ]:=port[$301] AND $EF; {Xĩa C4} Kiểm tra bit: kt:=port[$300] AND $04; {ki m tra bit S2} kt = 0 → S2 = “0” kt ≠ 0 → S2 = “1” 1.6.3 Lập trình C/C++ Đọc/ghi thanh ghi:
  18. 17 Đọc thanh ghi: = inp (địa chỉ thanh ghi); Ghi vào thanh ghi outp ( , ) Lập xĩa bit: Lập bit: Outp (0x301,inp (0x301)||0x02);{L p C1} Xĩa bit: Outp (0x301,inp (0x301) && 0xEF); {Xĩa C4} Kiểm tra bit: kt:=inp (0x300) && $04; {ki m tra bit S2} kt = 0 → S2 = “0” kt ≠ 0 → S2 = “1” Yêu cầu về đánh giá kết quả học tập: + Nội dung: Nêu lên cấu trúc tổng quan của hệ vi xử lý; vị trí, 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. Xác định được yêu cầu, các thành phần và lập trình điều khiển cho khối ghép nối máy tính. + Cách thức và phương pháp đánh giá: Trả lời câu hỏi bằng phương pháp tự luận. + Gợi ý tài liệu học tập: Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, NXB KHKT, Nguyễn Mạnh Giang, Kỹ thuật ghép nối máy vi tính, NXB Giáo dục, 2 tập.
  19. 18 CHƯƠNG 2 GIAO TIẾP VỚI TÍN HIỆU TƯƠNG TỰ Mã chương: MH26-02 Giới thiệu – 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ự - số ADC: 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. 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. Nội dung: 2.1. 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. 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). 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). Hình 2.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, trong đĩ số liệu tương tự sẽ được truyền, lưu trữ, hay xử lý bằng phương pháp số nhờ các bộ vi xử lý số. Trước khi sử lý, tín hiệu tương tự phải
  20. 19 đượ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). 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). 2.2. Chuyển đổi tín hiệu số sang tương tự DACs Mục tiêu: – Giới thiệu các phương pháp 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ã. 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. Bảng chân lý của nĩ cĩ thể cĩ dạng như sau: Hình 2.2: Bảng giá trị chân lý của một DAC 2.2.1. Các tham số chính của một DAC Tham số Đơn vị Giải thích Độ phân giải Bit Đây là số bit mà DAC xử lý. Nếu DAC cĩ n bit thì (revolution) giá trị điện áp đầu ra cĩ thể phân thành n trạng thái cĩ giá trị cách đều nhau. Mỗi giá trị tương ứng với một mã số đầu vào. Số bit n càng cao thì DAC cĩ độ phân giải càng lớn Giải điện áp tham V Chỉ ra mức điện áp lớn nhất và nhỏ nhất cĩ thể chiếu (Vref) FSR được sử dụng như điện áp tham chiếu từ bên ngồi
  21. 20 Độ phi tuyến vi LSB Là độ chênh lệch giữa độ thay đổi giá trị điệp áp ra phân hay thực tế với độ thay đổi điện áp ra lý tưởng trong (Non-Linearity, %Vref trường hợp đầu vào số thay đổi một bit LSB, hay Differential - DNL) dự thay đổi giữa hai giá trị số kề nhau VD: +/- 1 LSB; +/- 0.001% FSR Độ phi tuyến tích LSB Là sai số lớn nhất giữa đầu ra với đường thẳng nối phân (Non- giữa điểm 0 và điểm tồn thang (giá trị lớn nhất Linearity, Integral - của thang đo) ngoại trừ sai số điểm khơng và sai số INL) hay độ chính tồn thang xác tương đối VD: +/-1 LSB typ.; +/- 4 LSB's max. (Relative Accuracy) Giải đầu ra tương V Là độ chênh lệch giữa giá trị tương tự lớn nhất và tự hay giải tồn nhỏ nhất mà thang DAC cụ thể đĩ cung cấp VD: -3V to +3V, Bipolar Mode Mức điện áp logic V Là điện áp nhỏ nhất của tín hiệu số đầu vào DAC cao đầu vào, Vih đảm bảo (Logic "1") được nhận là mức logic “1” VD: 2.4 V min. Logic Input V Là điện áp lớn nhất của tín hiệu số đầu vào DAC Voltage, Vil (Logic mà được "0") nhận là mức logic “0" Điện áp nguồn V LàVD: dải : 0.8 điện V ápmax cĩ thể dùng để làm nguồn cung cấp dương (+Vs) dương cho DAC Điện áp nguồn âm V LàVD: dải +4.75V điện áp min.; cĩ thể +5.0V sử dụng typ.; làm +13.2V nguồn max. cung cấp Analog Negative âm cho DAC Power Supply (- VD: -13.2V min.; -5V typ.; -4.75V max. Vs) Điện áp mức logic V Là dải điện áp cĩ thể sử dụng cho mức logic dương dương (+VL) của DAC: VD: +4.75V min.; +5.0V typ.; +13.2V max. Điện áp mức logic V Là dải điện áp cĩ thể sử dụng cho mức logic dương âm (-VL) của DAC VD: -13.2V min.; -5V typ.; -4.75V max.
  22. 21 2.2.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. 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. Mặc dù phương pháp chia điện trở cĩ thể dễ hiểu, nhưng nĩ trở nên kém hiệu quả với các bộ DAC cĩ độ phân giải cao. 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. 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. Hình 2.3: DAC chia điện trở 2.2.3. DAC trọng số nhị phân Khi độ phân giải của DAC đạt tới 6 hay 7 bit, 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. 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.4: DAC chia điện trở
  23. 22 2.2.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ư hồn tồn sử dụng phương pháp số, 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.5: 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, bởi vì để cĩ độ 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ỏ. Đ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, cần cĩ độ phân giải theo thời gian bằng 1/65536 lần chu kỳ chuỗi xung. 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ự, 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. 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 x100 x 20000 = 131 GHz. Rõ ràng rằng tần số này là khơng thể đạt được với cơng nghệ hiện nay 2.3. Chuyển đổi tín hiệu tương tự - số ADC: Mục tiêu
  24. 23 – Giới thiệu về các phương pháp chuyển đổi tín hiệu tương tự - số ADC. Tín hiệu trong thế giới thực thường ở dạng tương tự (analog), 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ự. Trong khi đĩ, bộ điều khiển ngày nay thường là các µP, µC xử lý dữ liệu ở dạng số (digital). Vì vậy, 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. 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 - ADC). Hình dưới là một ví dụ cho một bộ ADC đơn giản. Đầ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. Nĩ cĩ một đầu ra biểu diễn một từ mã dạng số 8 bit. Từ mã này vi xử lý cĩ thể đọc và hiểu được Hình 2.6: Bộ chuyển đổi ADC đơn giản. Cĩ nhiều phương pháp biến đổi AD khác nhau, ở đây chỉ giới thiệu một số phương pháp điển hình. 2.3.1 Các tham số chính của một ADC Tham số Đơn vị Giải thích Độ phân giải Bits Nếu một ADC cĩ n bit, thì độ phân giải của nĩ là Resolution 2, cĩ nghĩa là số trạng thái hay số mã cĩ thể sử dụng để chia đầu vào analog. 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 Sai số tuyến tính vi Bits Với mỗi ADC, tín hiệu số biến đổi theo từng bit phân (with LSB. Non-Linearity, no Độ chênh lệch giữa các giá trị lý tưởng được gọi là Differential (DNL) missing độ phi tuyến vi phân. codes) Example of an Actual Spec: 10 Bits min
  25. 24 Sai số tuyến tính LSB Hàm truyền của một ADC là một đường thẳng nối tích phân từ điểm “0” tới điểm tồn thang. Sai số lớn nhất Non-Linearity, của một mã số với đường thẳng này được gọi là độ Integral (INL) sai số tích phân của ADC Example of an Actual Spec: +/- 2 LSB's max Dải điện áp tương V Là độ chênh lệch giữa giá trị tương tự lớn nhất và tự đầu vào hay dải nhỏ nhất ứng với ADC cụ thể tồn thang (Analog VD:0V to +10 V, Unipolar Mode; Input -5V to +5V, Bipolar Mode Range or Full-Scale Range) Thời gian chuyển µsec Thời gian cần thiết để ADC hồn thành một lần đổi chuyển đổi (Conversion Time) VD: 15 µsec min.; 25 µsec typ.; 40 µsec max. Nguồn nuơi dương V Dải điện áp cĩ thể sử dụng làm nguồn nuơi dương (+ Power Supply - cho ADC V+) VD: +4.5V min.; +5.0V typ.; +7.0V max. Nguồn nuơi âm V Dải điện áp cĩ thể sử dụng làm nguồn nuơi âm cho - Power Supply ADC VD: -12.0V min.; -15V typ.; -16.5V max. (V-) 2.3.2 Bộ biến đổi AD theo hàm dốc
  26. 25 Hình 2.7: 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. 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 V AX ≥VA. Bộ biến đổi này được gọi là biến đổi theo hàm dốc vì dạng sĩng V AX cĩ dạng của hàm dốc, hay nối đúng hơn là dạng bậc thang. Đơi khi nĩ cịn được gọi là bộ biến đổi AD loại counter. Hình trên cho thấy sơ đồ mạch của bộ biến đổi AD theo hàm dốc, bao gồm một counter, một bộ biến đổi DA, một OPAMP so sánh, và một cổng AND cho điều khiển. Đầ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. Giả sử V A dương, quá trình biến đổi xảy ra theo các bước: - Xung Start được đưa vào để reset counter về 0. Mức cao của xung Start cũng ngăn khơng cho xung clock đến counter. - Đầu vào của bộ biến đổi DA đều là các bit 0 nên áp ra vAX = 0v. - Khi vA > vAX thì đầu ra của OPAMP (EOC) ở mức cao. - Khi Start xuống mức thấp, cổng AND được kích hoạt và xung clock được đưa vào counter. - Counter đếm theo xung clock và vì vậy đầu ra của bộ biến đổi DA, vAX, 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). Khi đĩ, EOC xuống thấp và ngăn khơng cho xung clock đến counter. Từ đĩ kết thúc quá trình biến đổi. - Counter vẫn giữ giá trị vừa biến đổi xong cho đến khi cĩ một xung
  27. 26 Start cho quá trình biến đổi mới. 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. 2.3.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. 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. Hơn nữa, 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. Sơ đồ mạch và giải thuật như sau : Hình 2.8: Sơ đồ mạch và giải thuật A/D xấp xỉ tiệm cận Sơ đồ mạch tương tự như bộ biến đổi AD theo hàm dốc nhưng khơng dùngbcounter cung cấp giá trị cho bộ biến đổi DA mà dùng một thanh ghi. Đơ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. - Chuyển đổi n bit cần n bước - Cần cĩ tín hiệu Start và End - 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.3.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
  28. 27 áp sang tần số. Hình 2.9: Sơ đồ sườn dốc Nguyên tắc chính là dựa vào quá trình nạp và xả tuyến tính của tụ với dịng hằng. Đầu tiên, tụ được nạp trong một khoảng thời gian xác định từ dịng điện khơng đổi ứng với điện áp vào vA. Vì vậy, ở cuối thời điểm nạp, tụ sẽ cĩ một điện áp tỷ lệ với điện áp vào. Cũng vào lúc này, 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. Khi điện áp trên tụ giảm về 0 thì quá trình xả kết thúc. Trong suốt khoảng thời gian xả này, một tần số tham chiếu được dẫn đến một counter và bắt đầu đếm. 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ả, counter sẽ chứa một giá trị tỷ lệ với điện áp trên tụ trước khi xả, tức là tỷ lệ với điện áp vào vA. Hình 2.10: ADC tích phân theo sườn dốc Ngồ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. 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. 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.
  29. 28 2.3.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 - 300 MHz - Tiêu thụ năng lượng lớn - Ứng dụng trong số hố dạng sĩng tín hiệu - Hình 2.11: 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. Cĩ thể làm một phép so sánh: flash AD 6-bit cần 63 OPAMP, 8-bit cần 255 OPAMP, và 10-bit cần 1023 OPAMP. Vì lẽ đĩ mà bộ biến đổi AD loại này bị giới hạn bởi số bit, 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, 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, ) với điện áp cần biến đổi. Đầ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. Các bộ biến đổi cĩ nhiều bit hơn dễ dàng suy ra theo mạch trên. 2.3.6 Một số vi mạch ADC thơng dụng Hiện nay, trên thị trường cĩ rất nhiều loại IC chuyên dụng cho bộ biến đổi ADC. Dưới đây là loại IC rất hữu dụng và được sử dụng nhiều trong thực tế 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. Sơ đồ chân: + Đặc điểm cấu tạo: Thang điện trở 256 R với ngõ chuyển mạch analog. Thanh ghi xấp xỉ liên tiếp. Bộ multiplexing. Bộ chốt địa chỉ ngõ vào. Bộ giải mã. Bộ đệm ngõ ra.
  30. 29 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 ngồi. 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 Sơ đồ khối: Hình 2.12: Sơ đồ khối + Đặc điểm kỹ thuật của ADC 0809: ADC0809 cĩ tốc độ biến đổi nhanh, sai số lượng hĩa thấp và cơng tiêu tán thấp. Nguồn cung cấp 5v DC, điện áp chuẩn 5v DC. Thời gian chuyển đổi là 100µs. Cĩ 8 kênh analog ngõ vào. Điện áp ngõ vào từ 0 đến 5V. Tần số xung CLOCK từ 10 ÷ 1280KHz. + Nguyên tắc hoạt động : Tại một thời điểm, 1 trong 8 ngõ vào analog được chuyển đổi. Việc chọn ngõ vào được xác định bởi 3 đường địa chỉ A, B, C thơng qua bộ phân kênh 3 sang 8. 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. Khi đĩ, ALE chốt địa chỉ kênh được chọn và sẽ đưa tín hiệu vào bộ so sánh, xung START bắt đầu thực hiện
  31. 30 việc chuyển đổi, EOC ở mức 0, bus dữ liệu ở trạng tổng trở cao. Sau khoảng thời gian 100µs, quá trình chuyển đổi kết thúc, tín hiệu analog được chuyển thành 8 bit dữ liệu số ở ngõ ra. Lúc này xung EOC bật lên 1 và dữ liệu được đưa vào vùng đệm. Để đưa dữ liệu từ vùng đệm lên bus, phải đặt xung OE lên 1. Nhờ bộ đệm 3 trạng thái nên dễ dàng kết nối với data bus của CPU. Giản đồ thời gian: Hình 2.13: Giản đồ thời gian + Các số liệu kỹ thuật: Độ phân giải: K = 5/256 = 0.196V Dãy động điện trở vào: Trong điều kiện: Vcc = Vref (+) = 5V Vref (-) = GND CLK = 640 KHz thì tổng trở vào từ 1 ÷ 2.5 KΩ. Mức logic của tín hiệu ra :Trong điều kiện 4.75V≤ Vcc≤ 5.5V thì mức
  32. 31 điện áp logic 1 là V ≥ Vcc – 0.4 và mức điện áp logic 0 là V≤0.45v Tốc độ chuyển đổi : 100µs Cơng suất tiêu tán : 15 mW ADC ICL7109: ICL7109CPL là bộ biến đổi AD 12-bit dạng đơn phiến, biến đổi theo phương pháp tích phân hai độ dốc, cộng với các bit chỉ cực tính, bit báo quá thang đo cĩ thể giao tiếp với µP, µC theo hai cách: - Ghép trực tiếp vào bus : thơng qua chân chọn chip, hai chân cho phép xuất byte cao, byte thấp. - Ghép theo chuẩn cơng nghiệp UART : được ứng dụng trong truyền nhận dữ liệu từ xa, ngõ ra được biến đổi và đưa đến một UART trong chế độ bắt tay, trao đổi dữ liệu nối tiếp. ICL7109CPL cĩ độ chính xác cao, độ 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, cơng suất tiêu tán và dịng phân cực nhỏ. Các đặc điểm chủ yếu như sau: - Pha zero-integrator giúp khơi phục quá tải nhanh. - Loại bỏ vịng trễ và nhiễu. - Cải tiến khả năng lái bus. - Ngõ ra 3 trạng thái. - UART ở chế độ bắt tay để giao tiếp nối tiếp. Hình 2.14: Sơ đồ chân - Cĩ sẳn nguồn tham chiếu chuẩn. - 30 lần biến đổi trong 1 giây. - Khối đơn, 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. Khi ở mức cao, bộ biến đổi đang ở trong pha integrate hoặc pha de-integrate cho đến khi dữ liệu được chốt. Khi ở mức thấp, bộ biến đổi đang ở pha auto-zero hoặc de-integrate sau khi dữ liệu được chốt. POL : bit chỉ cực tính (polarity), nếu ở mức cao, chỉ ra rằng tín hiệu vào là áp dương. OR: bit chỉ quá thang (over-range), nếu ở mức cao, chỉ ra rằng ngõ vào đã vượt quá giới hạn cho phép.
  33. 32 Hình 2.15: Mơ tả chức năng các chân B1+B12 : ngõ ra ba trạng thái, là các bit dữ liệu tương ứng. TEST : ngõ vào, khi TEST = 1 thì ADC hoạt động bình thường, TEST = 0 thì tất cả bit dữ liệu ra đều ở mức cao, cịn khi khơng kết nối thì các chốt ngõ ra bộ đệm được cho phép. Trong hoạt động bình thường : nối TEST lên +5v. LBEN : ở chế độ trực tiếp (MODE = 0 và CE/LOAD = 0) thì LBEN là ngõ vào, khi ở mức tích cực sẽ cho phép xuất byte thấp; ở chế độ bắt tay (MODE = 1) thì LBEN là ngõ ra, cĩ chức năng là cờ byte thấp. HBEN : ở chế độ trực tiếp (MODE = 0và CE/LOAD = 0) thì HBEN là ngõ vào, khi ở mức tích cực sẽ cho phép xuất byte cao; ở chế độ bắt tay (MODE = 1) thì HBEN là ngõ ra, cĩ chức năng là cờ byte cao. CE/LOAD : ở chế độ trực tiếp, là ngõ vào, khi tích cực sẽ cho phép xuất ra 12 bit dữ liệu B1B12, POL, OR nếu LBEN, HBEN tích cực. Ơ chế độ bắt tay, là ngõ ra strobe. MODE : ngõ vào, khi ở mức thấp: ADC hoạt động ở chế độ trực tiếp, cịn khi ở mức cao : ADC hoạt động ở chế độ bắt tay. OSC IN : ngõ vào của bộ dao động. OSC OUT : ngõ ra của bộ dao động. OSC SEL : ngõ vào, dùng để chọn bộ dao động. ICL 7109 cĩ một bộ dao động với 3 ngõ, nĩ cĩ thể hoạt động với bộ dao động RC hay dao động thạch anh, cũng cĩ thể hoạt động với nguồn xung clock bên ngồi. 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 ngồi. Khi đĩ, xung clock sẽ cùng pha, 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:
  34. 33 Điện trở nên chọn là 100K, 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, nhưng khơng nên nhỏ hơn 50pF. 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 ngồi cĩ tần số từ 1MHz đến 5MHz. 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. BUF OSC OUT : ngõ ra của bộ dao động được đệm, tiện dụng làm nguồn xung clock cho các IC khác RUN/HOLD : sau khi pha autozero hồn tất trong khoản thời gian nhỏ nhất, 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. 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. Nếu ICL 7109 đang ở vào thời điểm kết thúc pha autozero, 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. Thêm vào đĩ, để bắt đầu và kết thúc một quá trình biến đổi, chân này cũng cĩ thể được sử dụng để cực tiểu thời gian biến đổi. 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, 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. Nhưng nếu sau khi STATUS xuống thấp, 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 tồn bộ 4096 chu kỳ xung clock cho pha de-integrate. SEND : ngõ vào, báo hiệu rằng thiết bị bên ngồi đã chấp nhận dữ liệu khi ADC hoạt động ở chế độ bắt tay. Nối lên +5v nếu khơng sử dụng. V-: nguồn âm cho ICL 7109, thường nối đến -5v. REF OUT: ngõ ra điện áp tham chiếu, thường nhỏ hơn V+ là 2,8v. BUF: ngõ ra bộ khuếch đại đệm. AZ: được nối đến tụ CAZ. INT: được nối đến tụ CINT. COMMON: chân chung của tín hiệu tương tự. IN LO: cực âm của điện áp vào vi sai. IN HI: cực dương của điện áp vào vi sai. REF IN+: ngõ vào dương của điện áp tham chiếu.
  35. 34 REF CAP+: cực dương của tụ tham chiếu. REF CAP- : cực âm của tụ tham chiếu. REF IN- : ngõ vào âm của điện áp tham chiếu. V+ : Vcc (5v). Yêu cầu về đánh giá kết quả học tập: + Nội dung: Đưa ra 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. Phân tích 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. + Cách thức và phương pháp đánh giá: Trả lời câu hỏi bằng phương pháp tự luận. + Gợi ý tài liệu học tập: Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, NXB KHKT, Nguyễn Mạnh Giang, Kỹ thuật ghép nối máy vi tính, NXB Giáo dục, 2 tập.
  36. 35 CHƯƠNG 3. THỦ TỤC TRAO ĐỔI DỮ LIỆU CỦA MÁY TÍNH Mã chương: MH26-03 Giới thiệu về 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ớ 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. 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. Nội dung 3.1. Các chế độ trao đổi dữ liệu của máy tính Mục tiêu: – Giới thiệu về các chế độ trao đổi dữ liệu của máy tính với mơi trường ngồi. Chế độ trao đổi tin của Máy tính với thiết bị ngồ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). – 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. Trao đổi tin trực tiếp bộ nhớ Sau khi VXL được khởi động, sự trao đổi tin hồn tồ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). Lúc này, KGN điều khiển mọi hoạt động của bộ nhớ M và KGN, cụ thể là: – Phát địa chỉ cho khối nhớ hoặc TBN. – Phát lệnh đọc (/RD) hay ghi (/WR) số liệu. – Các số liệu đọc, ghi được trao đổi giữa khối nhớ M va TBN thơng qua các thanh ghi đệm của KGN. Thủ tục trao đổi tin trong chế độ chương trình Ở chế độ trao đổi tin theo chương trình, cĩ thể trao đổi tin theo một trong ba phương pháp sau: - Trao đổi đồng bộ - Trao đổi khơng đồng bộ hay hỏi trạng thái
  37. 36 (Polling) - Trao đổi theo ngắt chương trình 1. Trao đổi đồng bộ Sau khi khởi động TBN, 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, ghi ra hay truyền số liệu ). Phương pháp trao đổi tin này chỉ được thực hiện khi: - TBN luơn sẵn sàng trao đổi tin. - Tốc độ trao đổi tin của Máy tính và TBN luơn phù hợp nhau hoặc TBN trao đổi tin nhanh. Đánh giá: - Ưu điểm: Nhanh, khơng tốn thời gian chờ đợi - Nhược điểm: Thiếu tin cậy, bị mất tin vì cĩ thể cĩ sự cố làm TBN chưa sẵn sàng trao đổi. 2. Trao đổi khơng đồng bộ hay hỏi trạng thái (Polling) Trình tự trao đổi diễn ra như sau: - Máy tính đưa tin điều khiển TBN. - 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: + Đọc tin về trạng thái sẵn sàng của TBN. + Kiểm tra trạng thái sẵn sàng. Nếu chưa, Máy tính lại đọc và kiểm tra trạng thái sẵn sàng. - Máy tính trao đổi tin với TBN. 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.2. Trao đổi tin ngắt vi xử lý Mục tiêu – Phương pháp trao đổi tin ngắt vi xử lý 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 đĩ. (2) TBN cĩ yêu cầu trao đổi tin, sẽ gửi tín hiệu yêu cầu trao đổi tin ( yêu cầu ngắt INTR)
  38. 37 (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, 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. (5) Chương trình chính lại tiếp tục thực hiện ở chỗ bị ngắt. 3.2.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 ngồi vì do nguyên nhân bên ngồi. VXL cĩ các lối vào dành cho ngắt ngồi. Khi cĩ tín hiệu vào lối vào này, chương trình VXL đang thực hiện sẽ bị dừng. – Ngắt NMI ( Non maskable Interrupt) - Ngắt khơng che được : Khi cĩ ngắt này, VXL dừng chương trình sau lệnh đang thực hiện, thanh ghi địa chỉ lệnh (IP) và thanh ghi chỉ thị flag được lưu giữ, 2 bit IF (Interrupt Flag) va TF (Trap Flag) bị xố về 0 để cấm ngắt ngồi tiếp theo và khơng cĩ bẫy. Muốn cho phép hay khơng cho phép ngắt này xảy ra, 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. – Ngắt INTR: o Ngắt này được cho phép hay cấm ngắt bằng cách lập hay xố bit IF của thanh ghi flag. Lập bởi lệnh STI (Set Interrupt), xố bởi lệnh CLI (Clearinterupt) 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, 8259). – Ngắt reset : + 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. - Ngắt do lệnh: đĩ là ngắt khi thực hiện các lệnh CALL, HLT, INT - 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)
  39. 38 - 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, máy in, vv) như INT 10, INT 16, INT 21,.v.v ) + Ngắt của Máy tính – PC (8086, 80286 ) Các ngắt khơng hồn tồn được liên kết với các thiết bị ngồi. Họ VXL 8086 cung cấp 256 ngắt, đa phần trong số chúng là chỉ để phục vụ như ngắt phần mềm. 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. Mỗi địa chỉ là 4 byte. Trong các máy PC, chỉ cĩ 15 ngắt dành cho phần cứng và 1 ngắt khơng che được.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ệ. 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. 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). 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. INT IRQ Common Uses (Hex) 00 - 01 Exception - 02 Non-MaskableHandlers Non-Maskable IRQ (Parity IRQ Errors) 03 - 07 Exception - 08 HardwareHandlers IRQ0 System Timer 09 Hardware IRQ1 Keyboard 0A Hardware IRQ2 Redirected 0B Hardware IRQ3 Serial Comms. 0C Hardware IRQ4 SerialCOM2/COM4 Comms. 0D Hardware IRQ5 Reserved/SoundCOM1/COM3 Card 0E Hardware IRQ6 Floppy Disk Controller 0F Hardware IRQ7 Parallel Comms. 10 - 6F Software Interrupts - 70 Hardware IRQ8 Real Time Clock 71 Hardware IRQ9 Redirected IRQ2 72 Hardware IRQ10 Reserved 73 Hardware IRQ11 Reserved 74 Hardware IRQ12 PS/2 Mouse 75 Hardware IRQ13 Math's Co-Processor
  40. 39 76 Hardware IRQ14 Hard Disk Drive 77 Hardware IRQ15 Reserved 78 -FF Software Interrupts - + 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), 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. – VXL gửi tín hiệu xác nhận hay cho phép ngắt – INTA và đọc vector ngắt. – Chuyển sang chương trình phục vụ ngắt. – 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 đĩ. + Lưu giữ tin về chỗ bị ngắt chương trình: Ở cuối mỗi chu trình lệnh, 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. Nếu cĩ yêu cầu, 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). Các tin đĩ là: - Thanh ghi cờ Flag FR (Flag Register) - Con trỏ lệnh IP (Instruction Pointer) - 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, VXL gửi tín hiệu xác nhận ngắt INTA (Interrupt Acknowledge) cho KGN của TBN. Tuỳ cách tổ chức ngắt và tạo 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. 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). + 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. Kết thúc chương trình con này, cĩ lệnh trở về (RET - return) để VXL tiếp tục thực hiện chương trình chính. + Tiếp tục thực hiện chương trình chính: Sau khi gặp lệnh trở về (RET), 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). 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:
  41. 40 – 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). – 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. 3.2.2 Xử lý ngắt cứng trong IBM - 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 ngồ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. Để mở rộng khả năng phục vụ ngắt ngồi IBM - 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. 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 Hình 3.1 :Cơ chế thực hiện ngắt cứng + Vi mạch xử lý ngắt 8259
  42. 41 Sơ đồ khối: Hình 3.2: Sơ đồ khối 8259 Các chân: IR0 – IR7 (Chân 18 – 25) : Các lối vào yêu cầu ngắt D0 – D7 (Chân 11 – 4) : Các bit số liệu (2 chiều) A0 (chân 27) : Địa chỉ chọn thanh ghi lệnh CS (Chân 11) : Chọn vi mạch (chip select) WR (chân 2) : Lối vào lệnh ghi RD ( chân 3) : Lối vào lệnh đọc CAS0 – 2 (Chân 12,13,15) : Lối vào mắc nối tầng SP (chân 16) : Trong chế độ khơng đệm, nếu SP = 1 thì 8259 là chủ (Master). SP = 0 thì là thứ (Slave) INTA (chân 26) : Lối vào xác nhận ngắt INT (chân 17) : Lối ra yêu cầu ngắt chương trình Cấu trúc PIC 8259 – Thanh ghi yêu cầu ngắt IRR (Interrupt Request Register): để ghi tám mức ngắt (IR0 – IR7) từ TBN. – Thanh ghi “Ngắt đang phục vụ” ISR (In Service Register): ghi mức ngắt đang sử dụng. – Thanh ghi mặt nạ ngắt IMR (Interrupt Mask Register). – Mạch logic giải quyết ưu tiên PR (Priority Resolver)
  43. 42 – Khối logic điều khiển: xử lý ngắt, đư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. – Logic điều khiển đọc/ghi: tạo các tín hiệu ghi và đọc các thanh ghi đệm. – 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ủ. Đối với IBM - PC, 2 PIC được sử dụng để mở rộng ra 15 ngắt cứng. PIC1 để quản lý đầu vào ngắt IRQ0 - 7, PIC2 dành cho IRQ8 - 15. PIC2 được nối tầng lên PIC1 qua đường IRQ2 (Do đĩ nếu ta chặn ngắt IRQ2 thì tồn bộ IRQ 8 - 15 cũng bị che. Hình 3.3: Sơ đồ ghép nối nối tầng PIC trong IBM - PC 3.2.3. Lập trình xử lý ngắt cứng: Trong máy IBM - PC cĩ 2 PIC được định vị tại các địa chỉ là PIC1 - 20H, PIC2 - A0H. Các PIC được khởi tạo bởi BIOS, do đĩ ta chỉ cần quan tâm tới 2 lệnh khi làm việc với chúng. – 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 xố bit tương ứng với ngắt đĩ về 0. Từ điều khiển OCW1 được gửi tới địa chỉ base + 1. – Lệnh thứ 2 là lệnh End of Interrupt (EOI). 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. Lệnh EOI được
  44. 43 gửi tới PIC bằng cách ghi giá trị 20H vào thanh ghi cĩ địa chỉ base. 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 ; uses Crt, Dos; const {PIC Constants} PIC1 = $20; PIC1_OCW1 = $21; PIC2 = $A0; PIC2_OCW1 = $A1; var OldVector: procedure; {$F+} procedure MyISR; interrupt; var begin {Chương trình điều khiển vào/ra dữ liệu} Port[MasterPIC] := EOI; end; {$F-} {Chương trình chính} BEGIN {Thiết lập vector ngắt} GetIntVec ($0C,@OldVector); {Lưu vector ng t cũ} SetIntVec ($0C,Addr (MyISR)); {Thay vector ng t} Port[MasterOCW1] := Port[MasterOCW1] and $EF;{cho phép ngắt IRQ3} {Chương trình chính} . SetIntVec ($0C,@OldVector); {Trả lại vector ngắt cũ} Port[MasterOCW1] := Port[MasterOCW1] or $10; {Che ngắt IRQ3} END.
  45. 44 3.3. Trao đổi tin trực tiếp bộ nhớ Mục tiêu: – Giới thiệu cơ chế hoạt động chip điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237. Phương pháp trao đổi dữ liệu theo chương trình sẽ chậm do: - VXL phải giải mã và thực hiện lệnh. - 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ớ. Hình 3.4:Sơ đồ hoạt động của DMHC 3.3.1 Cơ chế hoạt động: – VXL khởi tạo TBN. – 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. – 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). 3.3.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ĩ. Quá trình khởi tạo sẽ cung cấp cho DMAC thơng tin cần thiết để hoạt động. Đĩ là các thơng tin như: địa chỉ bắt đầu của khối dữ liệu, kích thước khối dữ liệu, chiều đọc/ghi dữ liệu, số hiệu cổng của TBN. + Hoạt động: Xét trường hợp truyền một khối dữ liệu từ bộ nhớ ra TBN.
  46. 45 (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, báo cho VXL biết DMAC cần sử dụng bus (3) Bước 3: VXL kết thúc chu kỳ bus hiện tại, 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 (6) Sau khi quá trình DMA kết thúc, DMAC xố giá trị HRQ xuống mức thấp, trả quyền điều khiển bus cho VXL. 3.3.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), kiểu ghi (từ thiết bị ngoại vi đến bộ nhớ) và kiểu kiểm tra. + 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 ngồi (external bus). 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). + Khối Priority encoder and rotating priority logic (mã hố ư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
  47. 46 tiên quay (rotating priority). Trong mơ hình ưu tiên cố định, 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. 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. + 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) Hình 3.5:Sơ đồ hoạt động của DMAC 8237 + Các thanh ghi: DMAC 8237A cĩ tất cả 12 loại thanh ghi nội khác nhau: Tên Kích thước bit Số lượng Thanh ghi địa chỉ cơ sở 16 4 Thanh ghi đếm từ cơ sở 16 4 Thanh ghi địa chỉ hiện hành 16 4 Thanh ghi đếm từ hiện hành 16 4 Thanh ghi địa chỉ tạm 16 1 Thanh ghi đếm từ tạm 16 1
  48. 47 Thanh ghi trạng thái 8 1 Thanh ghi lệnh 8 1 Thanh ghi tạm 8 1 Thanh ghi chế độ 8 1 Thanh ghi mặt nạ 4 1 Thanh ghi yêu cầu 4 1 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. CS (Input): thường được nối với bộ giải mã địa chỉ. RESET (Input): khởi dộng 8237A, được nối với ngõ RESET của 8284. Khi Reset thì thanh ghi mặt nạ được lập cịn các phần sau bị xố: – 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. 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, Output): nối đến bus địa chỉ và dữ liệu của CPU IOR, IOW (Input, Output): sử dụng trong các chu kỳ dọc và ghi EOP (End Of Process) (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), thường dùng như yêu cầu ngắt để CPU kết thúc quá trình DMA. A0 – A3 (Input, 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. 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. 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
  49. 48 MEMR, MEMW (Output): dùng để dọc / ghi bộ nhớ. + 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 Địa Bit địa chỉ Chọn chức năng R/W? chỉ A3 A2 A1 A0 0 0 0 0 X0 Thanh ghi địa chỉ bộ nhớ kênh 0 R/W 0 0 0 1 X1 Thanh ghi đếm từ kênh 0 R/W 0 0 1 0 X2 Thanh ghi địa chỉ bộ nhớ kênh 1 R/W 0 0 1 1 X3 Thanh ghi đếm từ kênh 1 R/W 0 1 0 0 X4 Thanh ghi địa chỉ bộ nhớ kênh 2 R/W 0 1 0 1 X5 Thanh ghi đếm từ kênh 2 R/W 0 1 1 0 X6 Thanh ghi địa chỉ bộ nhớ kênh 3 R/W 0 1 1 1 X7 Thanh ghi đếm từ kênh 3 R/W 1 0 0 0 X8 Thanh ghi trạng thái / lệnh R/W 1 0 0 1 X9 Thanh ghi yêu cầu W 1 0 1 0 XA Thanh ghi mặt nạ cho một kênh W 1 0 1 1 XB Thanh ghi chế độ W 1 1 0 0 XC Xố flip-flop đầu/cuối W 1 1 0 1 XD Xố tồn bộ các thanh ghi / đọc W/R thanh ghi tạm 1 1 1 0 XE Xố thanh ghi mặt nạ W 1 1 1 1 XF Thanh ghi mặt nạ W Địa chỉ các thanh ghi nội dùng ghi / đọc địa chỉ: Kênh /IOR /IOW A3 A2 A1 A0 Thanh ghi R/W ? 0 1 0 0 0 0 0 Địa chỉ cơ sở và địa chỉ hiện hành W 0 1 0 0 0 0 Địa chỉ hiện hành R 1 0 0 0 0 1 Bộ đếm cơ sở và bộ đếm hiện W 0 1 0 0 0 1 hành R Bộ đếm hiện hành
  50. 49 1 1 0 0 0 1 0 Địa chỉ cơ sở và địa chỉ hiện hành W 0 1 0 0 1 0 Địa chỉ hiện hành R 1 0 0 0 1 1 Bộ đếm cơ sở và bộ đếm hiện W 0 1 0 0 1 1 hành R Bộ đếm hiện hành 2 1 0 0 1 0 0 Địa chỉ cơ sở và địa chỉ hiện hành W 0 1 0 1 0 0 Địa chỉ hiện hành R 1 0 0 1 0 1 Bộ đếm cơ sở và bộ đếm hiện W 0 1 0 1 0 1 hành R Bộ đếm hiện hành 3 1 0 0 1 1 0 Địa chỉ cơ sở và địa chỉ hiện hành WR 0 1 0 1 1 0 Địa chỉ hiện hành WR 1 0 0 1 1 1 Bộ đếm cơ sở và bộ đếm hiện 0 1 0 1 1 1 hành Bộ đếm hiện hành Địa chỉ các thanh ghi trạng thái và điều khiển: /IOR /IOW A3 A2 A1 A0 Thanh ghi 1 0 1 0 0 0 Ghi thanh ghi lệnh 0 1 1 0 0 0 Đọc thanh ghi trạng thái 1 0 1 0 0 1 Ghi thanh ghi yêu cầu 1 0 1 0 1 0 Ghi thanh ghi mặt nạ 1 0 1 0 1 1 Ghi thanh ghi chế độ 1 0 1 1 0 0 Xố flip-flop đầu/cuối 1 0 1 1 0 1 Xố tất cả các thanh ghi nội 0 1 1 1 0 1 1 0 1 1 1 0 Địa chỉ cơ sở và địa chỉ hiện 0 1 1 1 1 0 Địahành chỉ hiện hành 1 0 1 1 1 1 Bộ đếm cơ sở và bộ đếm hiện hành 0 1 1 1 1 1 Bộ đếm hiện hành 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. 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, ta cần tạo tín hiệu điều khiển như sau:
  51. 50 Hình 3.6: Tín hiệu điều.DMAC 8237A 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. Yêu cầu về đánh giá kết quả học tập: + Nội dung: 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. 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. + Cách thức và phương pháp đánh giá: Trả lời câu hỏi bằng phương pháp tự luận. + Gợi ý tài liệu học tập: Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, NXB KHKT, Nguyễn Mạnh Giang, Kỹ thuật ghép nối máy vi tính, NXB Giáo dục, 2 tập.
  52. 51 CHƯƠNG 4. GHÉP NỐI QUA RÃNH CẮM MỞ RỘNG Mã chương: MH26-04 Giới thiệu về chương: - Đặt vấn đề - Bus PC - Bus ISA (16 bit) - Bus PCI - Ghép nối qua khe 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. Cấu trúc, nguyên lý và cách ghép nối của các khe cắm thơng dụng như ISA, PCI. 4.1. Đặ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, các đường dẫn bus như bus dữ liệu, bus điều khiển, v.v. 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, 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.
  53. 52 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. 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. 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. Đĩ Phía mạch in Phía linh kiện là các bus: GND B01 A01 /IOCHCK - Bus PC (Cịn gọi là ISA 8 Reset B02 A02 D7 bit) + 5V B03 A03 D6 IRQ2 B04 A04 D5 - Bus ISA (16 bit) - 5V B05 A05 D4 - Bus VESA local (32bit) DREQ2 B06 A06 D3 - Bus SCSI (16/ 32 bit) - 12V B07 A07 D2 - Bus EISA (32 bit) Dù tr÷ B08 A08 D1 + 12V B09 A09 D0 - Bus MCA (32 bit) GND B10 A10 /IOCHRD - Bus PCI (32/ 64 bit) /MEMW B11 A11 YAEN - Bus AGP (32/ 64 bit) /MEMR B12 A12 A19 /IOW B13 A13 A18 /IOR B14 A14 A17 /DACK3 B15 A15 A16 DERQ3 B16 A16 A15 Hình 4.1: /DACK1 B17 A17 A14 Sơ đồ chân khe cắm ISA 8 bit DREQ1 B18 A18 A13 /DACK0 B19 A19 A12 CLK B20 A20 A11 IRQ7 B21 A21 A10 IRQ6 B22 A22 A9 IRQ5 B23 A23 A8 IRQ4 B24 A24 A7 IRQ3 B25 A25 A6 /DACK2 B26 A26 A5 TC B27 A27 A4 ALE B28 A28 A3 + 5V B29 A29 A2 OSC B30 A30 A1 GND B31 A31 A0 4.2. Bus PC Mục tiêu: – Giới thiệu về khái niệm và các đường tín hiệu chính của Bus PC Nội dung 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. Loại bus này tận dụng kiến trúc của bộ VXL Intel 8088, nên cĩ một bus dữ liệu 8 bit và ngồi và bus địa chỉ 20 bit. Rãnh cắm nối với bus
  54. 53 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. 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.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 - 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 - D7 I/O 8 đường tín hiệu tạo thành BUS dữ liệu cho vi xử lý, 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, đườ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. /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. Mức thấp chỉ ra rằng các dữ liệu cĩ giá trị đang chờ để đưa ra ở bus dữ liệu. 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. 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ý. ở mức cao DMA giám sát qua bus địa chỉ và bus dữ liệu. Đườ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. 4.3. Bus ISA (16 bit) Mục tiêu: – Giới thiệu về Bus ISA và quy trình hoạt động của nĩ. Nội dung: 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. Card ISA rất phổ biến bởi vì chúng thể hiện tính
  55. 54 năng ưu việt đối với hầu hết các ứng dùng ghép nối. Các linh kiện được sử dụng trên card đều rất rẻ, 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. 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). 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. 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. Điểm mạnh rõ nét của bus này là cĩ thể cho phép cùng một lúc xử lý hoặc trao đổi với 16 bit dữ liệu. Để bảo đảm tính tương thích với bus PC, 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, trên đĩ cĩ chứa 8 bit dữ liệu và 4 đường dẫn địa chỉ. Như vậy, 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. Ngồi ra bus ISA cịn cĩ một bus địa chỉ 24 bit, cho phép nhiều nhất là 16Mbyte 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ưng khác về giá trị, cụ thể là bằng 8,33MHz. 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, cho ra một lưu lượng cực đại là 16 MB/giây. Trong các máy tính cĩ tần số giữ nhịp chạy nhanh hơn 8 MHz, bus ISA chạy chậm hơn những phần cịn lại của máy tính.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. 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. Các linh kiện được sử dụng trên card đều rất rẻ, 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. Những ứng dụng tiêu biểu cĩ thể kể là: Card vào/ra nối tiếp và song song, card nối mạng và card âm thanh. Cĩ các tiếp điểm được bố trí trên hai mặt, được đánh số là A,B,C,D. Các đường địa chỉ: Số đường địa chỉ trong các máy tính là khác nhau, các XT cĩ 20 đường địa chỉ,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ý,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 đường này được dùng để địa chỉ hố bộ nhớ hay thiết bị vào ra .A0 là các bit giá trị nhỏ nhất (LSB),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. Ngồ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.
  56. 55 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 tồ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. 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. 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. 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. Đ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. Các đường số liệu Các đường này để chuyển số liệu giữa VXL với cổng vào ra và bộ nhớ .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ớ. Các máy XT cĩ 8 đường số liệu D0 ( D7 cĩ nghĩa là cĩ thể truyền 1 byte. Máy AT cos 16 đường số liệu D0 ( D15 tức cĩ thể truyền đồng thời 2 byte. Các đường số liệu D0 ( D15 là các đường 2 chiều cĩ thể hoạt động ở mức thế cao .D0 là (LSB), 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, điều khiển hướng truyền nơi nhận số liệu. 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 .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 . 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. 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. 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 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. 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 ALE đồng bộ với chu trình kênh của Bus khi nĩ bắt đầu chu trình
  57. 56 Bus các địa chỉ của bộ VXL được với sườn giảm của tín hiệu ALE. Tín hiệu cho phép địa chỉ AEN . 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. Bộ điều khỉên DMA điều khiển Bus địa chỉ các đường đọc lệch và ghi số liệu. Tín hiệu đọc cổng vào/ra . 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.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. 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. 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. Tín hiệu ghi của cổng vào ra. 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. 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. Địa chỉ trong bus địa chỉ là địa chỉ của cổng vào ra. 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. 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. Sau đĩ tín hiệu /IOW được dùng để viết số liệu lên bus số liệu từ bộ nhớ. Cổng vào/ra được chọn nhờ tín hiệu. 4.4. Bus PCI Mục tiêu: – Giới thiệu và một số đặc điểm chính của Bus PCI Nội dung: 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 - Kết nối các thành phần ngoại vi) hay thường gọi tắt là bus PCI, để dùng cho bộ xử lý Pentium. Bus này cho phép truy nhập rất nhanh tới bộ nhớ, bộ điều khiển đĩa, card âm thanh, card đồ hoạ. 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. Một số đặc điểm chính: - 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. - Cĩ thể hoạt động với 64 bit - Tốc độ tối đa đạt được là 264 Mbyte/s Rãnh cắm PCI cĩ mật độ chân cao hơn do vậy khơng tương thích với
  58. 57 các card ISA. 4.4. Ghép nối qua khe cắm mở rộng Mục tiêu: – Giới thiệu một số đặc điểm chính, giải mã địa chỉ và kết nối Bus dữ liệu. Nội dung: 4.4.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,7 mm (hay 4.2 inch)  Chiều dài 333.5 mm ( hay 13.13 inch)  Chiều dày - kể cả linh kiện - 12.7 mm (hay 0.5 inch) Các đường tín hiệu của khe cắm bố trí cả 2 phía, vì vậy card mở rộng bao giờ cũng phải là bản mạch in 2 mặt. 4.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 - 31FH được dự tính để dành riêng cho card mở rộng cắm thêm vào. Các đường địa chỉ sử dụng đối với vùng này là A0 - A9. 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, bộ biến đổi số - tương tự DAC, khối xuất nhập dữ liệu số, điều khiển hiển thị, .v.v. . Các khối này được trao đổi dưới những địa chỉ khác nhau từ máy tính. Do đĩ, trên card mở rộng phải cĩ thêm một bộ giải mã địa chỉ. 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. 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ã. Khi được kích hoạt, khối đĩ mới cĩ thể tiến hành sự trao đổi thơng tin với máy tính.
  59. 58 Hình 4.2: Sơ đồ hoạt động bộ giải mã địa chỉ Bộ giải mã địa chỉ 74HC688 so sánh các đường dẫn địa chỉ A2 - 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. 74HC688 so sánh các cặp bit xem cĩ giống nhau khơ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. Ngồi ra khi giải mã cịn phải quan tâm đến đường tín hiệu AEN (Address ENable). Đường này cho biết CPU hay DMAC đang chiếm quyền sử dụng bus. 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. 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. Các đường tín hiệu A0, A1, IOR, 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, 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
  60. 59 chiều 74HC245. 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. Cách ghép nối này rất quan trọng, 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. 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. Hướng truyền dữ liệu được xác định bằng chân DIR: DIR = 0, dữ liệu được chuyển từ B sang A. 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. Ta cĩ thể nối trực tiếp ra chân DIR. Qua đĩ đảm bảo bộ đệm chỉ cho phép dữ liệu đưa vào từ bên ngồ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) Yêu cầu về đánh giá kết quả học tập: + Nội dung: 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. Phân tích cấu trúc, nguyên lý và cách ghép nối của các khe cắm thơng dụng như ISA, PCI. + Cách thức và phương pháp đánh giá: Trả lời câu hỏi bằng phương pháp tự luận. + Gợi ý tài liệu học tập: Ngơ Diên Tập, Kỹ thuật ghép nối máy tính, NXB KHKT, Nguyễn Mạnh Giang, Kỹ thuật ghép nối máy vi tính, NXB Giáo dục, 2 tập.
  61. 60 CHƯƠNG 5 GHÉP NỐI TRAO ĐỔI TIN SONG SONG Mã chương: MH26-05 Giới thiệu về chương – Khối ghép nối song song đơn giản – Các vi mạch đệm, chốt (74LS245, 74LS373) – Vi mạch PPI 8255A – Ghép nối song song qua cổng máy in 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 hiểu các giao diện song song từ cơ bản đến nâng cao về cấu trúc, nguyên lý hoạt động, cách ghép nối và lập trình điều khiển cho các giao diện này. 5.1. Khối ghép nối song song đơn giản Mục tiêu: – Giới thiệu về cổng vào và cổng ra đơn giản: Nội dung: Cổng vào đơn giản: Gồm một bộ giải mã địa chỉ - 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 - Dn) của Máy tính Hình 5.1: Sơ đồ cửa vào đơn giản Cổng ra đơn giản: Cũng cĩ bộ giải mã địa chỉ - 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. Lối ra cĩ thể cĩ
  62. 61 thêm sơ đồ 3 trạng thái để cơ lập TBN với bus của Máy tính Hình 5.2: Cửa ra đơn giản khơng cĩ đối thoại 5. 2. Các vi mạch đệm, chốt (74LS245, 74LS373) Mục tiêu: – Giới thiệu về vi mạch đệm 74LS245 và vi mạch chốt 74LS373: Nội dung: 5. 2.1 Vi mạch đệm 74LS245: Inputs Function DIR Outputs G A bus B bus L L Output Input A=B L H Input Output B=A H X High Impedance Z Hình 5.3: Vi mạch 74LS245
  63. 62 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). Vi mạch này cĩ 2 đường điều khiển chính, tín hiệu /G là tín hiệu cho phép vi mạch hoạt động, khi /G ở mức cao, các chân dữ liệu của vi mạch ở trạng thai trở kháng cao. Tín hiệu DIR xác định chiều truyền dữ liệu. DIR = 1 dữ liêu được truyền từ A sang B, ngược lại, khi DIR = 0 dữ liệu được truyền từ B sang A 5.2.2 Vi mạch chốt 74LS373: Hình 5.4: 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. 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ĩ 2 đường tín hiệu điều khiển là /OE và LE. Tín hiệu /OE là tín hiệu cho phép hoạt động của vi mạch. Khi /OE ở mức cao, các cổng của vi mạch ở trạng thái trở kháng cao. Tín hiệu LE là tín hiệu cho phép chốt, tín hiệu này tích cực ở mức dương. Đối với 74LS373, khi LE ở mức cao, tín hiệu đưa vào từ cổng D được đưa ra cổng Q. Khi LE chuyển sang mức thấp, tín hiệu ở cổng Q được chốt lại. 5.3. Vi mạch PPI 8255A Mục tiêu: – Giới thiệu về các lệnh ghi và đọc các cổng và các thanh ghi điều khiển, các từ điều khiển Nội dung: 5.3.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. Ngồ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, nĩ cịn cĩ thể hoạt động với các chế độ khác nhau và khả năng lập xố bit cổng C cho đối thoại. Vi mạch 8255 này rất thơng dụng, thường cĩ trong các máy tính PC/XT, PC/AT và các thiết bị trao đổi tin khác.
  64. 63 Hình 5.5: Sơ đồ khối của PPI 8255A Vi mạch gồm: - 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. Phần ghép nối với TBN cĩ: Cổng A: thanh ghi đệm số liệu (8 bit), 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), vào hoặc ra tuỳ theo chương trình khởi phát Cổng C: Chia làm 2 nửa, 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 - Đ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à xố từng bit PCi - Điều khiển hoặc đối thoại với TBN và VXL khi cổng A và B ở chế độ
  65. 64 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, nhĩm B) các cổng A, B và C. 5.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, A1), chon vi mạch (CS), và các lệnh đọc ghi(RD, WR) của VXL, ta cĩ các lệnh ghi đọc khác nhau cho các cổng (A, B, C ) và thanh ghi điều khiển như bảng 3.2, tạo ra sự di chuyển số liệu giữa đường tín hiệu số liệu, các cổng và thanh ghi điều khiển. Như vậy, 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, cịn ở chế độ 0, khơng đọc trạng thái. Chiều di chuyển số liệu A A Lệnh (của VXL) 1 0 (với VXL) 0 0 0 0 1 Đọc cổng A Cổng A -> D0 - D7 0 1 0 1 1 Đọc cổng B Cổng B -> D0- D7 1 0 0 1 1 Đọc cổng C Cổng C -> D0- D7 1 1 0 0 1 Khơng cĩ giá trị 0 0 0 1 0 Ghi cổng A D0 - D7 -> Cổng A 0 1 0 1 0 Ghi cổng B D0 - D7 -> Cổng B 1 0 0 1 0 Ghi cổng C D0 - D7 -> Cổng C 1 1 0 1 0 Thanh ghi điều khiển D0 - D7 -> Thanh ghi điều khiển X X 1 X X Trạng thái điện trở Khơng cĩ trao đổi dữ cao liệu Các lệnh của 8255A 5.3.3 Các từ điều khiển Từ điều khiển thiết lập chế độ:
  66. 65 Từ điều khiển lập xố bit: TỪ ĐIỀU KHIỂN LẬP XỐ BIT CỦA VI MẠCH 8255
  67. 66 Chế độ này cịn được gọi là chế độ vào/ra cơ sở vì: - Các cổng A, B, 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 - Số liệu ra được chốt - Số liệu vào khơng được chốt - Khơng cĩ tín hiệu đối thoại với VXL cũng như TBN. Nếu muốn cĩ tín hiệu đối thoại, 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à xố về 0 bằng cách ghi số liệu hoặc bằng cách xác lập/ xố một bit PCi của cổng C bởi từ điều khiển với D7 = 0. Khi đĩ cổng C phải thiết lập ở chế độ ra. - Lập xố từng bit của cổng PC -Ở chế độ 0, người ta cĩ thể dùng các bit PCi của cổng C để lập (đặt lên 1) và xố (xố về 0) để điều khiển hoặc đối thoại với TBN. 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ế độ. Chế độ 1:
  68. 67 Chế độ này cịn gọi là chế độ vào ra cĩ đối thoại với các bit cổng C. Chia thành 2 nhĩm.  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.  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. Chiều và chế độ 1 của cổng A và B do từ điều khiển quyết định, 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, 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, nhận các tín hiệu yêu cầu STBB và xác nhận /ACKB của thiết bị ngồi cho cổng B chung cho cả 2 chiều vào hay ra. Cịn nửa A, nếu là cổng vào, PC4 nhận /STBA của thiết bị ngồi và PC6 nhận /ACK của thiết bị ngồi nếu cổng A là cổng ra.  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, 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 đọc được dữ liệu, TBN kích hoạt tín hiệu /ACK cho biết đã đọc dữ liệu, khi đĩ tín hiệu /OBF được tự động chuyển về mức cao. /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. Cổng A: Chế độ 1, chiều   /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. Tín hiệu này thơng báo cho 8255 biết TBN đã nhận dữ liệu.  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, dùng để cho phép hay cấm tín hiệu INTR.
  69. 68  INTEA được liên kết với PC6 nếu cổng A hoạt động ở chế độ ra. 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. Khi cĩ một xung mức thấp tác động vào chân này, dữ liệu đưa từ TBN vào 8255 sẽ được chốt ở cổng vào.  IBF: Khi tín hiệu /STB tích cực tín hiệu IBF sẽ được chuyển sang mức cao, báo cho TBN biết 8255 đã chốt dữ liệu ở cổng vào. 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) Cổng A: Chế độ 1, chiều  INTR: Tín hiệu ngắt VXL, tích cực khi /STB chuyển sang mức cao. Khi cĩ tín hiệu /RD tín hiệu này sẽ thơi tích cực. Chế độ 2: 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 B lúc này cĩ thể hoạt động ở chế độ 0 hoặc 1, chiều vào hay ra cĩ thể đặt bằng từ điều khiển. Ví dụ: Giả thiết ta cần thiết lập: PPI hoạt động ở chế độ 0. Cổng A vào, B ra, C cao vào, C thấp ra. -> Ta cĩ giá trị của từ điều khiển là 98H Cổng B hoạt động ở chế độ 1, vào. Cổng A hoạt động ở chế độ 0, ra. Cổng C cao ra, cổng C thấp khơng quan tâm
  70. 69 -> 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, ta thường dùng phương pháp điều khiển bằng ngắt chương trình. 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. 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. Đọc thanh ghi trạng thái này, 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, IBFB=1)  Các thanh ghi đệm ra đã cĩ số liệu (/OBFA = 0, /OBFB = 0) Hoặc riêng với chế độ 2, khi cĩ ngắt xảy ra, 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. 5.3.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, đĩ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 Hình 5.6. 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, địa chỉ thấp (A0,A1), lệnh đọc (RD), 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
  71. 70 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, 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 + Phần ghép nối với thiết bị ngồi: Tuỳ thuộc loại TBN, 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.  Chế độ 0: Ba đường tín hiệu PA, PB, 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. Ở chế độ này cĩ thể: + Khơng cần đối thoại giữa 8255 và TBN, chỉ cĩ trao đổi số liệu trên 1 trong 3 cổng + 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 ngồi cổng trao đổi số liệu  Chế độ 1: Chỉ cĩ hai cổng A,B trao đổi số liệu độc lập nhau, cịn các đường PCi của cổng PC để dùng để hội thoại cho các cổng A,B ở trên. Các đường này cĩ chiều và vai trị xác định do đĩ khơng thể thay đổi.  Chế độ 2: Chỉ cho cổng PA với số liệu vào/ra hai chiều. 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), 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ị ngồi: + Mạch ghép nối 8255 ở chế độ 0: Ở hình 5.7 giới thiệu cách ghép nối 8255 với máy in qua cổng PA cĩ chiều ra, và ghép nối với một bộ biến đổi tương tự - số qua cổng PB cĩ chiều vào. Cổng C được dành cho các tín hiệu đối thoại. Trong đĩ:  Nửa C thấp là cổng vào, đọ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.
  72. 71 Hình 5. 7. Ghép nối 8255A với MVT và TBN ở chế độ 0 • Ghép nối 8255 ở chế độ 1: Hình 5.8. 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, chương trình cần cĩ các khối lệnh cơ bản sau: 1. 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, 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: - Chế độ của các cổng - Chiều (vào/ra) của các cổng 2. Đ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. Nếu ở chế độ 1,2 các bit nay là các bit PCi của đối thoại, ta khơng cần phải viết lệnh đưa giá trị ra nữa. Cịn trường hợp ở
  73. 72 chế độ 0 ta cĩ thể dùng một trong hai cách sau: - Lập/ xố từng bit PCi của cổng PC - Đưa tin ra các bit của các cổng 3. Đọc và kiểm tra trạng thái: - Các lệnh đọc vào + Thanh ghi trạng thái nếu cổng dùng chế độ 1, 2 + Một cổng bất kỳ ở chế độ 0 dùng để ghi trạng thái của TBN. - 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. Trao đổi số liệu: - Đưa số liệu vào (IN đv VXL họ 86) hay chuyển số liệu MOV (của VXL 8085) - Đưa số liệu ra (OUT ) hay chuyển số liệu MOV 5.4. Ghép nối song song qua cổng máy in Mục tiêu: – Gới thiệu về cấu trúc, các thanh ghi của cổng máy in. Nội dung 5.4.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, 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. Cổng này cho phép đưa vào tới 13 bit và đưa ra 12 bit song song, trong đĩ cĩ 4 đường điều khiển, 5 đường báo trạng thái và 8 đường dữ liệu. 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. Đầu nối này cĩ dạng DB 25 chân (giắc cái – female). Hình 5.9
  74. 73 Các cổng song song gần đây được chuẩn hố theo chuẩn IEEE 1284 đưa ra năm 1994. Chuẩn này mơ tả 5 chế độ hoạt động của cổng máy in như sau: 1. Chế độ tương thích (Compatibility mode) 2. Chế độ Nibble 3. Chế độ Byte 4. Chế độ EPP 5. Chế độ ECP Chế độ cớ sở (hay cịn gọi là Centronics mode) được biết đến từ lâu. Chế độ này chỉ cho phép đưa dữ liệu theo một chiều ra (output), với tốc độ tối đa 150kB/s. Muốn thu dữ liệu (input) ta phải chuyển sang chế độ Nibble hay Byte. Chế độ Nibble cĩ thể cho phép đưa vào 4 bit song song một lần. 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. Để đưa ra một byte ra máy in ( hoặc các thiết bị khác) trong chế độ cơ sở, phần mềm phải thực hiện các bước sau: (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, nếu máy in bận, nĩ sẽ khơng chấp nhận bất cứ dữ liệu nào, do đĩ dữ liệu ghi ra lúc đĩ sẽ bị mất (3) Nếu máy in khơng bận, đặt chân Strobe (chân 1) xuống thấp (mức 0), để báo với máy in là đã cĩ dữ liệu trên đường truyền ( chân 2 - 9) (4) Sau đĩ chờ 5 micro giây và đặt chân Strobe lên cao (mức 1). 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ị ngồi. Ở chế độ này để cho phần cứng kiểm tra trạng thái máy in bận, tạo xung strobe và thiết lập sự bắt tay thích hợp. 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. Khi đĩ cổng này cĩ thể đưa dữ liệu ra với tốc độ 1 – 2 MB/s. Ngồi ra chế độ ECP cịn hỗ trợ sử dụng kênh DMA và cĩ thêm bộ đệm FIFO. 5.4.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. Dạng A (DB25) cĩ thể thấy ở hầu hết các máy PC, dạng B (36 chân) thường thấy ở máy in, và dạng C, 36 chân, giống dạng B nhưng nhỏ hơ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. Số hiệu Tên Hướng Thanh Mơ tả chân (In/Out) ghi 1 nStrobe In/Out Contro Byte được in l
  75. 74 2 Data 0 Out Data 3 Data 1 Out Data 4 Data 2 Out Data Đường dữ liệu 5 Data 3 Out Data D0 - D7 6 Data 4 Out Data 7 Data 5 Out Data 8 Data 6 Out Data 9 Data 7 Out Data 10 nAck In Status Xác nhận (Acknowledge) 11 Busy In Status Máy in bận 12 Paper-Out / Paper-End In Status Hết giấy ( Paper 13 Select In Status LựaEmpty) chọn ( Select ) 14 nAuto-Linefeed In/Out Contro Tự nạp giấy ( Auto 15 nError / nFault In Statusl LỗiFeed) 16 nInitialize In/Out Contro Đặt lại máy in 17 nSelect-Printer / nSelect- In/Out Control 18 - 25 GroundIn Gnd l 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. Address Cỉng 378h - 37Fh LPT 1 278h - 27Fh 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 Mơ tả 0000:0408 Địa chỉ cơ bản cổng LPT1 0000:040A Địa chỉ cơ bản cổng LPT2 0000:040C Địa chỉ cơ bản cổng LPT3 0000:040E Địa chỉ cơ bản cổng LPT4
  76. 75 5.4.3 Các thanh ghi của cổng máy in: 1. Thanh ghi dữ liệu (Data Register) Địa chỉ Tên Read/Write Số hiệu Mơ tả bit Base + Data Write Bit 7 Data 7 0 Port Bit 6 Data 6 Bit 5 Data 5 Bit 4 Data 4 Bit 3 Data 3 Bit 2 Data 2 Bit 1 Data 1 Bit 0 Data 0 Đị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). Thanh ghi này thường là thanh ghi chỉ ghi. Nếu ta đọc dữ liệu ở cổng này ta sẽ thu được giá trị mà ghi ra gần nhấ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. 2. Thanh ghi trạng thái ( Status Register): Địa chỉ Tên Read/Write Số hiệu Mơ tả bit Base + Status Read Bit 7 Bysy 1 Port Only Bit 6 Ask Bit 5 Paper Out Bit 4 Select In Bit 3 Error Bit 2 IRQ (Not) Bit 1 Reserved Bit 0 Reserved Thanh ghi trạng thái là thanh ghi chỉ đọc. Bất kỳ dữ liệu nào ghi ra cổng này đều bị bỏ qua. Cổng trạng thái được tạo bới 5 đường tín hiệu vào (Chân 10, 11, 12, 13, 15), một bit trạng thái ngắt IRQ và 2 bit để dành. Chú ý rằng bit 7 (Busy) là đầu vào tích cực thấp, nghĩa là khi cĩ một tín hiệu +5V ở chân 11, bit 7 sẽ cĩ giá trị logic 0. 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. 3. Thanh ghi điều khiển ( Control Register):
  77. 76 Địa chỉ Tên Read/Write Số hiệu bit Mơ tả Base + Control Read/Write Bit 7 Unused 2 Port Bit 6 Unused Bit 5 Enable Bi-Directional Bit 4 PortEnable IRQ Via Ack Bit 3 Line Select Printer Bit 2 Initialize Printer (Reset) Bit 1 Auto Linefeed Bit 0 Strobe Thanh ghi điều khiển được dự định là chỉ ghi. Khi một máy in được nối với máy tính, 4 đường điều khiển sẽ được sử dụng. Đĩ là các đường Strobe, Auto Linefeed, Inittialize và Select Printer, tất cả đều là đầu ra đảo trừ đường Initialize. Bit 4 và 5 là các bit điều khiển nội. Bit 4 cho phép ngắt và bit 5 cho phép cổng dữ liệu cĩ chiều vào. Lập bit 5 cho phép thu dữ liệu vào qua đường Data0 – 7. 4. Thanh ghi điều khiển mở rộng ECR (Extended Control Register ): Địa chỉ Bit Function Base + 7:5 Selects Current Mode of Operation 402H 7:5 000 Standard Mode 7:5 001 Byte Mode 7:5 010 Parallel Port FIFO Mode 7:5 011 ECP FIFO Mode 100 EPP Mode 101 Reserved 110 FIFO Test Mode 111 Configuration Mode 4 ECP Interrupt Bit 3 DMA Enable Bit 2 ECP Service Bit 1 FIFO Full 0 FIFO Empty
  78. 77 5.4.4 EPP - 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, Xircom & Zenith Data Systems. Cổng EPP ban đầu được mơ tả theo chuẩn EPP 1.7 và sau đĩ là chuẩn IEEE 1284 ra đời năm 1994. EPP cĩ hai chuẩn: EPP 1.7 và EPP 1.9. 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ị. EPP cĩ tốc độ truyền dữ liệu tiêu chuẩn là từ 500KB/s tới 2MB/s. Đ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, hội thoại) chẳng hạn như tín hiệu stroble, thay cho sử dụng phần mềm xử lý chúng, như trong chế độ SPP. EPP được sử dụng rộng rãi hơn ECP. 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.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. Đ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. + Các đặc trưng phần cứng EPP Khi sử dụng chế độ EPP, 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. Các tín hiệu này được chỉ ra trong bảng 4. 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. Đ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. Do đĩ tất cả các tài liệu ở đây đều sẽ sử dụng tên theo EPP. Pin SPP EPP IN/OU Function Signal Signal T 1 Strobe Write Out Mức thấp thể hiện một chu kỳ ghi, mức cao chỉ định là đang đọc 2-9 Data 0-7 Data 0-7 In-Out Data Bus. Hai chiều 10 Ack Interrupt In Interrupt Line. Ngắt xuất hiện ở sườn dương của xung
  79. 78 11 Busy Wait In Sử dụng cho bắt tay. Một chu kỳ EPP cĩ thể bắt đầu khi ở mức thấp, kết thúc ở mức cao 12 Paper Out Spare In Spare – Khơng sử dụng trong bắt tay /End EPP 13 Select Spare In Spare – Khơng sử dụng trong bắt tay EPP 14 Auto Data Out Khi ở mức thấp, chỉ định là đang Linefeed Strobe truyền dữ liệu 15 Error/fault Spare In Spare – Khơng sử dụng trong bắt tay EPP 16 Initialize Reset Out Reset - Tích cực thấp 17 Select Address Out Khi ở mức thấp, chỉ định đang truyền Printer Strobe đại chỉ 18-25 Ground Ground GND Ground Sự sắp xếp các chân của EPP. Các tín hiệu Paper Out, Select và Error khơng được định nghĩa trong tập các tín hiệu bắt tay của 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. 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. Đáng tiếc là khơng cĩ đầu ra dự trữ nào để cho sử dụng cho mục đích khác. + Các thanh ghi trong chế độ EPP Chế độ EPP cĩ một tập các thanh ghi mới, trong đĩ cĩ 3 thanh ghi đã cĩ từ chế độ SPP Address Port Name Read/Write Base + 0 Data Port (SPP) Write Base + 1 Status Port (SPP) Read Base + 2 Control Port (SPP) Write Base + 3 Address Port (EPP) Read/Write Base + 4 Data Port (EPP) Read/Write Base + 5 Undefined (16/32bit Transfers) - Base + 6 Undefined (32bit Transfers) -
  80. 79 Base + 7 Undefined (32bit Transfers) - + 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, chúng ta phải tuân thủ thứ tự bắt tay của EPP. 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. Để khởi tạo cho một chu kỳ EPP, 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. Chi tiết về vấn đề này sẽ nĩi cụ thể sau. 1. Chương trình ghi dữ liệu vào EPP Data Write Cycle thanh ghi dữ liệu EPP (Base+4) 2. /Write được xố về 0. (Cho biết đang cĩ một thao tác ghi) 3. Dữ liệu được đặt lên đường truyền dữ liệu (2 – 9). 4. /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. 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. Ngừng kích hoạt /Data Strobe 7. Chu kỳ ghi dữ liệu EPP kết thúc Quá trình ghi địa chỉ EPP (Address Write Cycle) 1. Chương trình ghi giá trị địa chỉ vào thanh ghi địa chỉ EPP (Base+3) 2. /Write được xố về 0. (Cho biết qúa trình ghi) 3. Giá trị địa chỉ được đặt lên đường truyền dữ liệu (2 – 7). 4. /Address Strobe được kích hoạt nếu /Wait đang ở mức thấp (Sẵn sàng bắt đầu) 5. Máy tính chờ tín hiệu xác nhận ứng với /Wait đặt lên mức