intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Kỹ thuật vi xử lý - Chương 9

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:52

104
lượt xem
15
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

MỘT SỐ PHỐI GHÉP CƠ BẢN 1. Phối ghép với bàn phím Bàn phím là một thiết bị vào rất thông dụng trong các hệ vi xử lý. Trong trường hợp dơn giản nhất đó có thể là một công tắc có gắn phím ( mà ta chỉ thường quan tâm đến kí hiệu trên bàn phím) nối vào mọt chân nào đó của bộ vi xử lý: ở mức phức tạp hơn đó có thể là hàng chục công tắc có gắn phím được tổ chức theo một ma trận: phức tạp hơn nữa, đó là một...

Chủ đề:
Lưu

Nội dung Text: Kỹ thuật vi xử lý - Chương 9

  1. CHƯƠNG 9 MỘT SỐ PHỐI GHÉP CƠ BẢN 1. Phối ghép với bàn phím Bàn phím là một thiết bị vào rất thông dụng trong các hệ vi xử lý. Trong trường hợp dơn giản nhất đó có thể là một công tắc có gắn phím ( mà ta chỉ thường quan tâm đến kí hiệu trên bàn phím) nối vào mọt chân nào đó của bộ vi xử lý: ở mức phức tạp hơn đó có thể là hàng chục công tắc có gắn phím được tổ chức theo một ma trận: phức tạp hơn nữa, đó là một hệ vi xử lý chuyên dụng quản lý cả trăm công tắc có gắn phím với nhiêm vụh nhận ra phím được gõ và tạo mã đưa đến hệ vi xử lý. Dù đơn giản hay một tổ hợp phím, khi phối ghép chúng với bộ vi xử lý ta cũng phải thỏa mãn một số yêu cầu đặc biệt để đảm bảo hệ thống làm việc đúng . Có rất nhiều công tắc được dùng trong phối ghép với bộ vi xử lý nhưng có thể xếp chúng vào hai nhóm chính: + công tắc có tiếp xúc ccơ khí ( kiểu điện trở: điện trở thay đổi khi ấn và khi nhả phím) + công tắc không có tiếp xúc cơ khí kiểu điện dung: điện dung thay đổi khi ấn và khi nhả phím hoặc kiểu hiệu ứng Hall: điện áp thay đổi khi ấn và khi nhả phím). Trong các loại công tắc đó, loại công tắc điện trở dự trên tiếp xúc cơ khí là rất thông dụng rong thực tế. Trên hình 9.1 là các nối công tắc vào mạch điện và đáp ứng của nó khik có lực tác động vào phím (ấn phím). F 1mN +5V F t Ur Ur a a 20ms .. t 20ms 20ms Hình 9.1 Aính hưởng độ rung của công tắc Nhìn vào đáp ứng về mặt cơ- điện của công tắc trên hình 9.1. ta nhận thấy: vì công tắc là một hệ thống có quán tính, do đó khi ta ấn phím và nhả phím, xugn điện thu được ở đầu ra của nó không phải liên tục mà bị ngắt quãng tại các giai đoạn quá độ( lúc bắt đầu ấn phím và lúc bắt đầu nhả phím). Điều này xả y ra là do trong kết cấu của công tắc có các bộ phận đàn hồi, khi bị tác dộng của lực bên ngoài các kết cấu động của công tắc bị dao động làm cho bề mặt tiếp xúc của công tắc bị biến đổi. Trong thực tế thì mỗi qúa trình quá độ
  2. trên kéo dài khoảng 10 -20 ms. Nếu trong thời kì quá độ ta đọc thông tin từ các công tắc thì rất dễ nhận được thông tin sai lệch trạng thái của công tắc, vì vậ y người ta thường chờ khoảng 10-20 ms sau khi côngt tắc bị ấn hay nhả để đọc trạng thái của công tắc trong giai đoạn xác lập. Khi một công tắc được nối trực tiếp và một chân nào đó của bộ vi xử lý hoặc các mạch phụ trợ, có một cách khác để tránh các hiệu ứng không mong muốn có thể tác động lên hoạt động của bộ vi xử lý do công tắc bị rung gây là dùng các mạch tích phân nối bên cạnh công tắc như trong trường hợp tạo tín hiệu cho đầu vào RESET của hệ vi xử lý ( xem hình 5.6). Tiếp theo ta xét truờng hợp một số công tắc nhất định được tổ chức theo ma trận gồm các hàng và các cột để tạo thành bàn phím cho một hệ vi xử lý. Với tổng số phím khỏang 20-30 ( bàn phím HEXA) thì đó là truờng hợp thường thấy trong các hệ thống nhỏ: các máy vi tính trên một bảng mạch in hoặc các bảng mạch điều khiển nhỏ (hay được gọi là “kit”). Trong các máy tính cá nhân như IBM PC chẳng hạn thì số phím có thể là từ 80-101 phím tù y theo thế hệ máy. Để nhận được thông tin chính xác về trạng thái của một phím trong các hệ thống như vậy ta phải thường làm 3 khối công việc sau: +Phát hiện có ấn phím. + Chờ công tắc ở trạng thái ổn định( chống rung). +Tìm phím được ấn và tạo mã cho phím đó. Và để có được một phối ghép bàn phím với bộ vi xử lý thực hiện các chức năng đã nêu ở trên trong thực tế người ta có thể làm theo 2 cách: + dùng bộ vi xử lý để quản lý trực tiếp bàn phím ghép qua một số mạch cổng. Có thể nhận thấy rằng ở dây CPU làm việc theo chế độ thăm dò. Bằng cách này CPU phải để một phần thời gian để quản lý bàn phím nhưng ta lại đạt được sự đơn giản về phần cứng. + dùng một mạch quản lý bàn phím chuyên dụng để phối ghép với bàn phím. Ở đây CPU làm việc với bộ quản lý bàn phím qua yêu cầu ngắt. Bằng cách này ta có thể giải phóng CPU để nó dành thời gian cho các việc khác quan trọng hơn. +5V Cổng ra 00 10K CDEF D0 D1 CPU D2 D3 0 1 2 3 D7 D6 D5 D4
  3. Cổng vào 01 Hình 9.2. Mạch phối ghép bàn phím  CPU trực tiếp quản lý bàn phím Trong cách làm này, để đơn giản trong trình bày, ta giả thiết bàn phím hệ 16 gồm 16 công tắc- phím đánh dấu từ 0 - FH ghép với bộ vi xử lý thông qua các mạch cổng như trên hình 9.2. Các mạhc cổng có thể là các mạch IC như 74LS373 hoặc một phầnn của PPI 8255A được lập trình thích hợp. Thuật toán của chương trình điều khiển việc phối ghép CPU - bàn phím theo sơ đồ phần cứng nói trên được trình bày bằng lưu đồ trên hình 9.3. Đầu tiên ta phải kiểm tra tình trạng (tốt, xấu) của bàn phím khi nó chưa được ấn ( đúng ra là khi ta chưa kịp ấn phím nào hoặc chưa kịp ấn phím tiếp theo) xem có phím nào bị kẹp ( dính ) không bằng cách đưa ra các hàng và dọc các cột để quét toàn bộ các phím. Bắt đầu Đưa 0 ra một hàng Đưa 0 ra một hàng Đọc các cột Đọc các cột Phím tốt Tìm thấy Đọc các cột Tạo mã phím Có phím ấn
  4. Hình 9.3. Lưu đồ thuật toán chương trình phối ghép bàn phím. Nếu có một công tắc nào đó nối hàng và cột, mức điện áp 0 ở hàng sẽ truyền sang cột và ta sẽ đọc được ở cột tương ứng mức điên áp 0. Một bàn phím tốt sẽ không có các tiếp điểm của một công tắc nà được nối trong lúc này và ta sẻ đọc được mức 1 ở tất cả các cột. Chương trình của lưu đồ trên sẽ bị quẩn nếu bàn phím của ta bị dính. Một cải tiến có thể được thêm vào chương trình trên để thoát ra khỏi vòng quẩn đó và thông báo bàn phím bị hỏng. Nếu bàn phím không bị hỏng thì ta mới đi vào phần phát hiện xem liệu có một phím nào đó bị ấn không. Nếu phát hiện ra có một phím bị ấn ta sẽ phải chờ cỡ 10 ms để cho công tắc có thời gian ổn định hệ thống. Tiếp theo là ta phải xác định lại xem có đúng là có một phím nào đó bị ấn không, nếu có thì ta mới tiến hành xác định cụ thể xem đó là phím nào trong số các phím. Ta làm việc này bằng cách đưa 0 vào lần lượt các hàng và dọc các cột. Khi đã biết tọa độ hàng và ccột của một phím bị ấn thì công việc tiếp theo là tạo mã cho phím đó. Trong sơ đồ đơn giản như sơ đồ trên hình 9.3 thì việc tạo mã cho phím vừa tìm thấy được thực hiện bằng cách đọc 8 bít từ cổng vào ( 4 bit cao chứa thông tin về tọa độ hàng và 4 bit thấp chứa thông tin về tọa độ cột) rồi chuyển thành mã hệ 16 tương ứng với phím bằng cách tra một bảng thích hợp. Sau đây là văn bản chương trình thực hiện thuật toán đã nêu dựa trên sơ đồ trên hình 9.2 bằng cách dùng mạch PPI 8255A với địa chỉ cơ bản là 60H. Cần chú ý rằng đây chỉ là chương trình dùng để mô tả thuật toán.  Chương trình 8.1. CPU- HexKeyboard cpu_kbd.asm . Model Small . Stack 100 . Data ;0 1 2 3 4 5 6 7 Key DB 77H 7BH 7DH 7EH 0B7H 0BBH 0BDH 0BEH ;8 9 A B C D E F
  5. DB 0D7H 0DBH 0D0H 0DEH 0E7H 0EBH 0EDH 0EEH PA EQU 60H PB EQU 61H CWR EQU 63H 68H ;Chế độ 0, PA : ra ; PB & PC : vào CW EQU .Code Main Proc ;khởi đầu DS MOV AX , @Data MOW DS , AX ;khởi đầu 8255A MOW AL , CW OUT CRW, AL ;gọi chương trình đọc phím CALL RD_KBD ; các xử lý tiếp theo Xuly:... Main Endp RD_KBD Proc ; thủ tục đọc và tạo mã cho phím bị ấn ; Ra : AL : mã phím, AH=00H khi không có lỗi ; AH=01 khi có lỗi ; ;cất các thanh ghi PUSHF PUSH BX PUSH CX PUSH DX ;đưa 0 ra mọi hàng MOV AL,00 OUT PA, LA ;số lần kiểm tra dính MOV CX, 3 ;đọc cột để kiểm tra dính Wait_Open: IN AL, PB AND AL, 0FH ;che các bit cao CMP AL, 0FH ;có phím dính? ;đúng, chờ khỏi dính LOOPNE Wait_Open ;”quá tam ba bận” : phím bị kẹt JCXZ Sai ;đọc cột đẻ kiểm tra ấn phím Wait_Pres: IN AL,PB AND AL, 0FH ; che các bit cao ;có phím ấn? CMP AL, 0FH ;không, chờ ấn phím JE Wait_Pres ;Có, trễ 20ms để chống rung MOV CX, 5880 Tre: LOOP Tre ;đọc để kiểm tra lại phím bị ấn IN AL, PB AND AL, 0FH ;che các bit cao
  6. ;có phím ấn? CMP AL, 0FH ;không, chờ ấn phím JE Wait_Pres ; tìm phím bị ấn ;mẫu bit để đưa 0 ra từng hàng MOV AL, 0FEH ;cất mẫu MOV CL,AL ;đọc các cột và kiểm tra Hgsau: OUT PA, AL AND AL, 0FH ;đã tìm thấy phím bị ấn CMP AL, 0FH ;đúng, tạo mã JNE taoma ;không thấy, đỗi mẫu ROL CL,1 MOV AL, CL ;làm tiếp với hàng sau JMP Hgsau ;BX chỉ vào mã của phím F Taoma: MOV BX, 000FH ;đọc tọa độ hàng và cột IN AL, PB ;đúng với mã chuẩn Tiep: CMP AL, Key[ BX] ;đúng, mã của phím trong BX JE Thoi ;sai, chỉ vào mã khác DEC BX ;tìm tiếp JNS Tiep ;mã của phím hệ 16 trong AL Thoi: MOV AL, BL ;AH để báo không có lỗi MOV AH, 00 ;lấy lại các thanh ghi Ra: POP DX POP CX POP BX POPF ;trở về chương trình chính RET RD_KBD Endp END Main  Dùng mạch chuyuên dụng để quản lý bàn phín Thí dụ trên cho thấy một cách phối ghép đơn giản giữa CPU và bàn phím. Trong trường hợp CPU còn dành thời gian để làm nhiều công việc khác của hệ thống hoặc số lựong phím nhiều, thường người táử dụng những mạch quản lý có sẵn để làm các công việc đã nêu liên quan đến bàn phím.. Như vậy bộ vi xử lý được giải phóng khỏi công việc quét bàn phím khi cần thiết nó chỉ việc đọc mã của phím bị ấn do mạch quản lý chyên dụng đưa đến. Mạcd AY5-2376 của Genneral Instrument là một vi mạch chuyên dụng như vậy. Nó làm việc đúng theo cách của một chương trình quét bàn phím mà ta đã mô tả ở thí dụ trên và khi đã tạo xong mã xho phím bị ấn, nó đưa ra xung STB (xung cho phép chốt dữ liệu) để báo cho bộ vi xử lý biết. Bộ vi xử lý có thể nhận biết xung STB khi làm việc theo kiểu thăm dò (polling) hoặc có thể đáp ứng theo xung STB theo kiểu ngắt nếu xung này được sử dụng như một xung tác động đến đầu vào yêui cầu ngắt che được INTR. Mạch AY5-2376 còn
  7. có khả năng quản lý không nhầm lẫn đối với bàn phím ngay cả trường hợp có 2 phím được ấn gần như đồng thời. Một trường hợp đặc biệt của việc quản lý bàn phím dùng vi mạch chuyên dụng là bàn phím cho các máy IBM PC và các thiết bị đầu cuối. Tại đây người ta sử dụng một hệ vi xử lý chuyên dụng cho công việc quản lý bàn phím. Htạ nhân của hệ này là vi mạch 8048 - máy vi tính trong 1 võ, bao gồm CPU 8 bit. ROM, RAM, cổng I/O và một bọ đếm/định thời gian lập trình được. Chương trình trong ROM của 8048 điều khiển việc kiểm tra các mạch điện tử của bàn phím khi nó được nối với nguồn điện và thực hiện việc quét bàn phím theo 3 công đoạn đã nêu ở trên. Khi có một phím được ấn đến CPU. Mã này được truyền đi dưới dạng dữ liệu nối tiếp để giảm bớt số đường dây cần dùng cho việc truyền tín hiệu. Trong thực tế còn tồn tại những mạch kết hợp các phói ghép - đèn LED trong một vi mạch để tạo thuận lợi cho người sử dụng khi xây dựng cac kit vi xử lý. Đó là trường hợp mạch 8279 của Intel, một vi mạch tổ hợp cỡ lớn lập trình được. Sau khi CPU lập trình (ghi từ điều khiển), mạch 8279 có khả năng quản lý bàn phím theo 3 công đoạn kinh diển đã nêu và đồng thời có khả năng điều khiển bộ phận hiển thị có nhiều nhất 16 đèn LEN 7 nét ở chế độ động. 2. Phối ghép với đèn hiển thị LED ( điốt phát sáng) Điốt phát sáng - LED là một phần tử phối ghép với bộ vi xử lý ở đầu ra rất thông dung. Trong trường hợp đơn giản, đó có thể là mộ vài đèn LED đơn lẻ để báo hiệu một vài trạng thái nào đó. Phức tạp hơn đó là các đèn LED được tổ hợp thành đèn chỉ thị 7 nét hoặc nhiều hơn để hiển thị các thông tin dưới dạng số hoặc chử. Để điều khiển được các đèn LED này sáng, bộ vi xử lý hoặc các mạch cổng của nó cần được tăng khả năng tải bằng các mạch khuếch đại đệm ( bằng transitor, bằng mạch SN7400hay SN7406) ho ặc các mạch điều khiển đèn LED 7 nét chuyên dụng ( như SN7447) để đảm bảo đưa ra được tín hiệu với công suất nhất định cần thiết cho đèn LED.  CPU - SN7447 - LED 7 nét ở chế độ tỉnh Một trong các phối ghép giữa vi xử lý và đèn LED 7 nét thường thấy là dùng mạch SN7447 để giải mã số BCD ra 7 nét và để điều khiển bộ đèn chỉ thị (xem hình 9.4). Đây là kiểu điều khiển đèn LED ở chế độ hiển thị tĩnh với đặc điểm là khá đơn giản về kết cấu nhưng lại rất tốn năng lượng: để thắp sáng các nét của đèn LED thì phải có dòng điện liên tục đi qua. MAN7 µP a a B b f b B c g D0-D3 C ’47 d e c D e d LT f RBI BI g 150Ώ
  8. Hình 9.4. Phối ghép vi xử lý với LED 7 nét thông qua mạch SN7447. Ta có thể tính sơ bộ để có thể thấy sự tiêu tốn năng lượng của việc hiển thị theo cách này. Một đèn LED 7 nét tiêu tốn năng lượng nhiều nhất khi nó phải hiện ra số 8 và lúc này nó tiêu thụ doing điện khoảng 140 mA (khoảng 20mA/nét tu ỳ theo chủng loại0. Bản than một mạch SN7447 khi hoạt đọng cũng tiêu thụ doing điện khoảng 14mA. Nếu tâ dùng đèn LED này để hiển thị 8 chử số (địa chỉ và dữ liệu) thì riêng mạch chỉ thị ta phải cung cấp khoảng 1.5mA.  CPU 7447 - LED 7 nét ở chế độ động - dồn kênh +5V PA7 T1 T2 T3 T8 8255A PortA MAN7 MAN7 MAN7 MAN7 a a a a PA2 f b f b f b f b PA1 g g g g PA0 e c e c e c e c d d d d abc bef g LT +5V RBI 7447 BI PB – PB6 8255A – Port B Bus D
  9. Hình 9.5. Phối ghép hiển thị ở chế độ động và dồn kênh Để khắc phục nhược điểm của mạch phối ghép hiển thị tỉnh như đã được nêu ở trên, người ta thường sử dung mạch phối ghép hiển thị động làm việc theo nguyên tắc dồn kênh: toàn bộ cá đèn hiển thị dùng chung một bộ điều khiển SN7447 và các đèn LED không được thắp sáng liên tục mà luân phiên nhau sáng theo một chu kỳ nhất định. Công suất tiêu thụ nhờ thế mà giảm đi rất nhiều mà vẫn đạt được hiệu quả hiển thị. Sơ đồ mạch phối ghép này được thể hiện trên hình 9.5. Nguyên tắc hoạt động Giá trị số cần hiển thị của mỗi con số được gửi đến cổng PB của 8255A từ CPU dưới dạng mã BCD. Từ đây BCD được mạch SN7447 giải mã và tạo ra các tín hiệu điều khiển thích hợp đưa đến các chân catốt a.b,... g của LED. Mỗi giá trị cần hiển thị được đưa đến cổng PB cứ mỗi 2ms một lần cho một đèn. Giá trị số nói trên được hiện ra trên chử số thập phân nào lại là do các bit của byte dữ liệu từ CPU đưa đến cổng PA của mạch 8255A quyết định. Như vậy cứ mỗi 2ms thì ta phải đưa dữ liệu ra PB rồi PA và cho hiện ra một giá trị số trên một đèn. Nếu cả thảy có 8 LED 7 nét thì ta mất 16ms để cho hiện số ra cả dãy đèn. Quá trình trên lặp đi lặp lại (1 lần haut 16s hay 60 lần trong 1s) làm cho ta có cảm giác là đèn sáng liên tục mặc dù trong thực tế chúng được điều khiển để sáng không liên tục. Một phương pháp phối ghép giống như trên nhưng không dùng mạch giải mã SN7447 cũng rất hay được sử dung. Thay vì mạch SN7447 như trên, tại đây ta dùng một bộ khuếch đại đệm chỉ để nâng cao khả năng tải của cổng PB. Vì thế trong trường hợp này CPU phải đưa đến PB không phải là 4 bit mã BCD của giá trị số hiển thị mà là các mẫu 7 bit để làm sáng các nét tương ứng với giá trị số đó. Như vậy CPU phải để thì giờ để chuyển đổi từ giá trị số hệ16 sang mẫu bit dành cho các net của LED và ta có khả năng hiển thị các số từ 0 - FH . Để giả phóng hoàn toàn bọ vi xử lý khỏi công việc điều khiển đèn LED ta có thể dùng mạch điều khiển 8279 đã được nói đến trong mục trước. 3. Phối ghép với màn hình Trong giai đoạn hiện nay, màn hiển thị bằng tinh thể lỏng (liquid crystal display, LCD) và màn hình bằng ống tia điện tử hay đèn hình (cathode ray tube, CRT) là các thiết bị hiển thị rất thông dụng đối với máy vi tính loại xách
  10. tay hoặc loại để bàn. Trong phần này ta chỉ giới thiệu các thông số và các phối ghép màn hình loại CRT và CPU. Mạch dùng cho cách phối ghép này coin được gọi là bộ điều khiển màn hình (CT controller, CRTC)  Màn hình hiện chử (chế độ văn bản) QUÉT MÀNH VÀ QUÉT DÒNG Đèn hình thực chất là một đèn điện tử có hai đầu, trong đó một đầu có bề mặt loe rộng ra để làm chổ quan sát hình ảnh của các tia điện tử và bên cạnh là lưới kim loại nối với điện áp rất cao để gia tốc cho các tia điện tử phát ra từ một suing đặt ở đầu bên kia của đèn. Bề mặt phía trong đầu loe của đèn được phủ một lớp hoá chất( lớp hu ỳnh quang) có khả năng phát sáng khi có điên tử đập vào, màu của đèn sáng phát ra phụ thuộc vào thành phần hoá học của lớp hu ỳnh quang. Nếu màn hình là loại một màu thì trên bề mặt này chỉ có một chất hu ỳnh quang duy nhất, còn nếu là màn hình màu thì lớp hu ỳnh quang được hình thành từ rấ nhiều phần tử của 3 loại hoá chất khác nhau, khi óc điện tử đập vào mỗi chất liệu có thể phát ra một trong 3 màu cơ bản: đỏ (red,R), xanh lơ hoặc là xanh nước biển (blue, B), và xanh lá cây (green, G). Điện tử phải đi qua một mặt nạ gồm rất nhiều lỗ để được định hướng chính xác vào các phần tử phát màu. Khoảng cách giữa các lỗ trên mặt nạ (hay kích thước của các điểm ảnh( pitch) trên màn hình quyế định đọ phân giải của một màn hình. Muốn thể hiện hình ảnh trên màn hình ta phải điều khiển tia điện tử, được phát xạ ra từ một catốt bị nung nóng ở đuôi đèn, di chuyển từ trái sang phải ( tạo ra dòng) và từ cao xuống thấp (tạo ra mành), đồng thời ta phải điều chế cường độ của tia điện tử theo độ sáng của hình ảnh muốn hiện trong suốt thời gian tia điện tử di chuyển đến phần loe ra của đèn. Những lúc tia điện tử gặp đầu mút bên phải cuing như bên dưới của màn hình nó sẽ bị tắt và được lái rất nhanh theo hướng ngược lại để lại bắt đầu quá trình “ quét “ tạo ra dòng mới và mành mới. Tu ỳ theo cách thực hiện việc quét ta có thể có cách quét 1 mành hay 2 mành xen kẽ. Tu ỳ theo các tiêu chuẩn khác nhau tá cũng có các thông số về dòng quét cho một mành, tần số quét dòng hoặc tần số quét mành với các trị số khác nhau. Cho dù có các thông số khác nhau, một màn hình cho máy vi tính thông thường phải bao gồm các mạch dao động để tạo ra xung quét dòng, xung quét mành dùng vào việc điều khiển chuyển động của tia điện tử và mạch khuếch đại tín hiệu hình để điều khiển ccường độ sáng của tia điện tử đó. Để màn hình này hiển thị được thông tin, ta phải cung cấp các tín hiệu đồng bộ cho các bộ tạo dao động nói trên và cung cấp tín hiệu chứa thông tin về đối tượng cần hiển thị (tín hiệu hình) cho bộ khuếch đại ảnh . Cả 3 tín hiệu điều khiển này phải được đồng bộ với nhau để tạo ra điểm ảnh của hình được hiện ra tại cùng một vị rí trên màn trong mỗi mành. CÁCH HIỂN THỊ KÍ TỰ
  11. Kí tự hoặc hình vẽ được hieenr thị lên màn hình bằng cách tập hợp các điểm (điốt) sáng hay tối. Trong chế độ văn bản (text mode) Các điểm nà y được hình thành bằng việc có cho tia điện tử có đập hay không đập vào màn hu ỳnh quang theo một khuôn mẫu có sẵn, trong đó các điểm được tổ chức theo ma trận. Trên hình 9.6 là ts dụ các ma trận điểm dùng làm mẫu chứ phục vụ cho việc hiển thị chữ E và chử H trên màn hình. Chấm đen để biểu hiện cho những chổ có điện từ đập vào màn, chấm trắng để biểu hiện cho những chỗ không có điện tử đập vào màn hình (chữ trắng tren nền đen). Đây là ma trân điểm 5x7 cho các kí tự. Các kích thước ma trân khác hay được dùng trong thực tế là 7x9, 7x12 hay 9x14. Các mẫu như vậy thường được tạo sẵn cho mỗi kí tự ASCII và được chứa trong một vi mạch nhớ ROM có tên là ROM tạo chữ. Hình 9.6. Hiên chữ E và H lên màn hình Bộ chia 80*: bộ đếm ký tự (80 ký tự/hàng+ thời gian quét ngược dòng) Bộ chia 14: bộ đếm dòng quét (14 dòng / ký tự) Bộü chia 25*: bộ đếm hàng chữ (25 hàng/mành + thời gian quét ngược mành) Trên hình 9.7 là sơ đồ khối của một mạch để hiển thị được một tang màn hình văn bản bao gồn 80 ký tự theo chiều ngang và 25 ký tự theo chiều dọc (80x25). Tạo xung Bộ ghi dịch 16.257 MHz ÷9 RAM D0-D8 đệm A0-A7
  12. 00 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 01 0 0 0 0 0 1 0 01 0 0 0 0 0 1 0 01 0 0 0 0 0 1 0 01 1 1 1 1 1 1 0 01 0 0 0 0 0 0 0 Hình 9.7. Sơ đồ khối mạch hiện chử theo 01 0 0 0 0 0 0 0 ma rân 9x14 trên màn hình 01 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 Mã ASCII của các ký tự thuộc mỗi trang 00 0 0 0 0 0 0 0 màn hình cần hiển thị được chứa sẵn trong một 00 0 0 0 0 0 0 0 bộ nhớ RAM đệm màn hình ( mỗi ký tự cần 1 00 0 0 0 0 0 0 0 b yte để ghi nhớ mã của nó). Nếu ta cần hiển thị 00 0 0 0 0 0 0 0 một trang màn hình gồm 80x25= 2000 ký tự thì ta cần dùng đến một bộ nhớ RAM đệm có dung lượng cỡ 2KB. Nội dung của bộ nhớ RAM đệm này được bọ điều khiển màn hình đưa ra định kỳ để làm tươi màn hình sau 1 khoảng thời gian nhất định ( như vậy màn hình hiện thị thông tin làm việc ở chế độ động). Trong thực tế bộ nhớ RAM đệm này còn phait thâm nhập được bằng bộ vi xử lý để ta còn có khả năng thay đổi được nội dung cần hiển thị. Các địa chỉ A0-A6 sẽ xác định vị trí của ký tự cần hiển thị trong 1 hàng còn các địa chỉ tử A7 - A11 sẽ xác định toạ độ theo cột của cả một hàng cần hiển thị. Nói cách khác tổ hợp các bit địa chỉ từ A0 - A11 của RAM đệm sẽ quyết định toạ độ cụ thể của một ký tự trên màn hình. Trong thực tế ma trân điểm 9x14 của bộ nhớ ROM tạo chữ có dạng như trên hình 9.8. Các dòng điểm thừa ra ở 4 phía là để tạo ra giãn cách chữ trong hàng và giãn cách giữa các hàng với nhau. 00 0 0 00 01 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0
  13. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hình 9.8. Ma trận điểm 9x14 cho chữ P và chữ p Khi ROM tạo chữ nhận đuợc tín hiệu địa chỉ từ RAM đệm thì đó chính là mã ASCII của ký tự cần hiển thịvà một ma trận điểm tương ứng của ký tự được chọn để đưa ra màn hình. Việc quét các dòng điểm trong ma trân điểm là do các tín hiệu quét dòng R3 - R0 quyết định. Giả sử nội dung của bộ đếm ký tự lúc này là 0. Ký tự đầu tiên ở góc trái màn hình được chọn để hiển thị. Mã ASCII của nó được đưa đến bộ nhớ RPM tạo chử. Giả thiết lúc đầu bộ đếm dòng quét có R3 R2 R1 R0 =0000. Ở đầu ra của bộ nhớ Rom tạo chử có dòng điểm đầu tiên (9 điểm cho 1 ký tự) được đưa ra bộ ghi dịch, ở đây dữ liệu từ dạng song song được biến thành dạng nối tiếp rồi đưa đến bộ khuếch đại với tốc độ 16.257.000điểm/s để điều chế cường độ của tia điện tử phát ra từ catốt đèn hình. Nên nhớ rằng khi quét dòng quét cho một ký tự vừa xong thì bộ đếm ký tự tự động tăng thêm để ta có thể lấy ra dòng điểm của ký tự tiếp theo cần hiển thị ở trong cuing một hàng. Công việc cứ tiếp tục như vậy cho đến khi thao tác xong với ký tự 80, lúc này tia điện tử bị lái ngược lại để bắt đầu lại quá trình trên đối với dòng quét tiếp theo. Khi đã quét xong được 14 dòng điểm cho 80 ký tự như trên (tức là cho một hàng ký tự) thì bộ đếm ký tự tự động tưng thêm 1 và hàng ký tự tiếp theo lại được quét như đối với hàng ký tự trước đó. Quá rình sẽ tiếp diễn cho đến khi thao tác xong với hàng ký tự thứ 25. Lúc này tia điện tử bị lái ngược lại để có thể bắt đầu lại quá trình làm tươi màn hình từ ký tự đầu tiên trên góc trái của hàng ký tự thứ nhất trên màn hình. Đơn kênh địa Bus A chỉ CPU địa chỉ làm tươi 2KB RAM 2KB RAM mã kí tự mã kí tự Bus D Đệm vào chốt ra cho bus D tần số kí tự
  14. Hình 9.9.Sơ đồ khối bộ phối ghép màn hình một màu của IBM MÀN HÌNH MỘT MÀU CỦA IBM Trên hình 9.9 là sơ đồ khối của vi điều khiển màn hình một màu (monochrome display adapter, MDA ) của IBM . Nhìn vào sơ đồ khối này ta có thể nhận ra một số khối chức năng đã được giới thiệu trên hình 9.7. Tần số điểm 16,257 MHz được chia cho 9 ở bên trong khối logic xử lý tín hiệu hình để tạo r tần số ký tự 1,787,904 MHz, tần số này được đưa đến mạch điều khiển màn hình CRTC 6845 để tạo ra các xung đồng bộ và các xung khác cần thiết cho việc làm tươi màn hình. Mạch CRTC có chức năng bao trùm chức năng chức năng của các bộ đếm ký tự, bộ đếm số dòng quét và bộ đếm số hàng ký tự của hình 9.7 cùng một số chức năng khác, nhưng với khả năng hoạt động linh hoạt hơn nhiều vì nó là một vi mạch rất phức tạp lập trình được. Khối logic xử lý tín hiệu hình sẽ được xử lý các tín hiệu từ bộ ghi dịch cuing với các tín hiệu điều khiển hình ( đồng bộ dong, đồng bộ mành) để tạo ra tín hiệu hình cuối cuing đưa ra điều khiển trực tiếp màn hình. Trong hình 9.9 bên cạnh 2KB RAM đệm chứa các byte là mã ASCII của các ký tự cần hiển thị ta còn thấy có 2 KB RAM đệm khác dùng để chứa các byte thuộc tính của các ký tự đó.
  15. Byte thuộc tính (xem hình 9.10. )qu y định cách thức hiển thị ký tự đã cho trên màn hình: độ sáng của ký tự, ký tự hiện liên tục hay nhấp nháy, quan hệ giữa màu nền và màu chữ ( ví dụ hiện bình thường thì chử trắng trên nền đen còn ngược thì chữ đen trên nền trắng). Trong bộ nhớ thực, byte mã ký tự đặt địa chỉ chẵn còn byte thuộc tính đạt tại địa chỉ lẻ. Mỗi mãng nhớ 2KB RAM này đều thâm nhập được từ CPU hoặc từ CRTC. Để không xảy ra xung đột giữa CPU và CRTC trong khi thâm nhập bộ nhớ, thông thường CPU chỉ được quyền thâm nhập vào các RAM đệm trong thời gian của các xung quét ngược hoặc cả CRTC và CPU đều chia 1/2 thơid gian liên tiếp của xung ký tự để thâm nhạp vào RAM đệm. Để làm tươi màn hình. CRTC liên tục đưa địa chỉ đén các ô của bộ nhớ mã ký tự và bộ nhớ thuộc tính. Mỗi xung ký tự sẽ cho phép chốt 1 byte mã ký tự và 1 b yte thuộc tính để đưa đến bộ ROM tạo chữ và bộ giải mã thuộc tính. Quá trình này sẽ tiếp tục cho các ký tự khác trong trang màn hình và cứ lặp đi lặp lại mãi. Byte thuộc tính Byte mê ASCII 76543 7654321 210 0 a) Dữ liệu trong bộ nhớ RAM đệm Thuộc tính Câc bit của byte thuộc tính 7 65 3 21 4 0 Bình thường BL(chữ) Nền I Chữ Đảo BL 00 I 11 Măn đen 0 1 không chữ BL 11 I 00 Măn trắng 1 0 không chữ BL 00 I 00 0 0 BL 11 I 11 1 1 b) dạng thức của byte thuộc tính I=1: chữ hiện ra sâng hơn BL=1:chữ nhấp nhây Hình 9.10. Byte mã ký tự và b yte thuộc tính
  16. CÁC XUNG NHỊP VÀ XUNG ĐỒNG BỘ Các bộ phối ghép màn hình khác nhau có tần số xung đồng bộ dòng. Xung đồng bộ mành và tần số điểm khác nhau đẻ phù hợp với các loại màn hình mà nó phải điều khiển. Nói chung các bộ phối ghép màn hình thông thường có tần số xung quét dòng màn hìnhdài 15,50KHz, tần số xung quét mành nằm trong dãi 50 - 60 Hz và tần số điểm nằm trong dãi 10 - 100 MHz Ta lấy lại ví dụ bộ điều khiển màn hình một màu của IBM để phân tích các xung chính. Hình 9.11 biểu diễn sự phân chia thời gian của 2 loại xung quét. thời gian quét trội Màn hình Khung hình làm việc thời gian quét ( Tích cực ) mành tích cực thời gian quét thời gian quét dòng thời gian trội tích cực quét trội và quét ngư ợc Hình 9.11. Phân chia thời gian các xung quét dòng và quét mành. Giả thiết ta phải hiển thị một trang màn hình gồm 80x25 ký tự với ma trận điểm 9x14. Như vậy trên khung hình làm việc của màn hình ta phải có 80x9=720 điểm/dòng quét và ta phải có tất cả 25x14=350 vòng quét. Nếu ta sử dung tần số điểm là 16,257 MHz (16,257,000 điểm/s) thì với tần số dòng 18,432 KHz (hoặc dòng quét/s) ta sẽ có (16,257,000điểm/s)/(18,432 dòng quét/s)=882 điểm/dòng quét. Như thế ta có 162 điểm dôi r, nghĩa là tương ứng về mặt thời gian ta có thêm thời gian để bù vào các đoạn quét trội (ngoài vùng làm việc của màn hình) và thời gian quét ngược của tia điện tử theo chiều ngang. Tương tự ta cũng có tần số xung quét mặt là 50Hz (50 mành/s), với tần số dòng 18,432 kHz (hay d òng quét/s) ta sẽ có (18,432 dòng quét/s)/(50 mành/s)=369 dòng quét/mành. Trước đay ta đã tính được khung hình làm việc ta chỉ cần 350 dòng quét/mành, tức là có dôi thêm ra 19 dòng quét/mành. Với số dòng quét dôi ra này, tương ứng về mặt thời gian ta sẽ có thêm thời gian để
  17. bù vào các đoạn quét trội (ngoài vùng làm việc của màn hình) và thời gian quét ngược của tia điện tử theo chiều dọc.  Màn hình đò hoạ ( chế độ đồ hoạ) MÀN HÌNH ĐỒ HOẠ MỘT MÀU Trong chế độ văn bản, các chấm ở đầu ra của bộ ghi dịch là hình ảnh của các dòng điểm của các ký tự được ghi sẵn trong ROM tạo chữ. Tương tự như vậy, để thể hiện một hình ảnh bất kỳ (trong đó có cả chữ, nhưng không tuân theo một khuôn mẫu sẵn có nào) ta có thể đưa vào thanh ghi dịch các điểm thành phần của hình đó. Để làm được điều này ta không cần đến bộ ROM tạo chữ nữa và bộ nhớ RAM đệm lúc này, thay vì chứa mã ASCII của ký tự, ta phải chứa các điểm ảnh (pixel hay pel) mà tổ hợp của chúng chính là hình ảnh cần phải thể hiện. Chế độ làm việc kiểu này của màn hình gọi là chế độ đồ hoạ, màn hình hiển thị hình ảnh theo bản đồ điểm ảnh (bit-map) Giả thiết ta phải thể hiện trên khung hình làm việc 640 điểm ảnh theo chiều ngang vvà 400 điểm theo chiều dọc thì cả khung hình làm việc này tương đương với một ma trận với 256000 điểm ảnh. Nếu để ghi nhớ mỗi điểm ảnh như vậy ta cần 1 bit trong bộ nhớ RAM đệm thì với toàn bộ khung hình làm việc ta cần đến bộ nhớ với dung lượng cở 32KB. Từ đây ta cũng nhận thấ y rằng nếu phải ghi nhớ thông số cho một điiểm ảnh màu thì ta phải tốn thêm nhiều ô nhớ hơn so với cho trưòng hợp điểm ảnh một màu. MÀN HÌNH ĐỒ HOẠ MÀU Như trước đây đã nói, màn hình (nhiều) màu khác màn hình một màu bởi sự có mặt của các cum 3 phần tử trong lớp hu ỳnh quang phủ lên bề mặt phía tong của đèn hình, mỗi tphần tử có khả năng phát ra 1 trong các màu R, B và G. Màu của một điểm ảnh trên màn hình màu là của 3 điểm sáng phát ra từ 3 phần tử màu đó khi chúng bị 3 tia điện tử đi ra từ 3 súng catốt đèn hình bắn vào. Như vậy, để điều khiển 1 điểm ảnh của màn hình màu ta phải có 3 tín hiệu để điều khiển 3 tia R,B và G. kèm thêm 1 tín hiệu để điều khển cường độ sáng (I) của điểm ảnh. Màn hình màu loại này vì vậy còn được gọi là màn hình RBG hoặc màn hình RBGI. Chúng thường được thiết kế để có thể làm việc được với các khuôn hình hiển thị khác nhauvà với các tần số của các xung đồng bộ dòng và mành nằm trong mọt dãi nhất định. Ta thấy ngay rằng để ghi nhớ thông tin cho một điểm sáng trên màn hình màu nằm trong bộ nhớ RAM đệm theo kiểu đã làm cho màn hình một màu. A phải tốn tới 4 bit (thay vì 1 bit như trong trường hợp màn hình 1 màu) và nếu ta phải hiển thị trên khung hình làmviệc 640x400 điểm ảnh thì bộ nhớ RAM đệm cho màn hình màu phải có dung lượng cỡ 32KBx4=96KB.
  18. I R G B Mă u Đen 0 0 0 0 Xanh biển 0 0 0 1 Xanh lâ cđ y 0 0 1 0 Xanh da trời 0 0 1 1 Đỏ 0 1 0 0 0 1 0 1 Tía N đu 0 1 1 0 Trắng 0 1 1 1 1 0 0 0 Ghi. Xâm Xanh biển 1 0 0 1 nhạt Xanh lâ cđ y 10 1 0 nhạt Xanh da trời 10 1 1 nhạt Đỏ nhạt 1 1 0 0 Tía nhạt 1 1 0 1 Văng 1 1 1 0 Trắng chói 1 1 1 1 Hình 9.12. 16màu của màn hình màu đồ hoạ CGA Với 4 bit để chứa thông tin về màu cho một điểm ảnh tacó khả năng thể hiện được điểm ảnh đó với 16 màu (xem hình 9.12) Để có thể hiện một điểm ảnh với các gam màu liên tục hơn người ta đã đưa vào sử dụng các màn hình tương tự.Các màn hình này được nối qua các mạch biến đổi số_tương tự (DAC) ở đầu vào và các bộ biến đổi này được nối đến các vi điều khiển màn hình làm việc với tín hiệu hình ở dạng số đã có sẵn.Ví dụ:nếu ta dùng 2 bit để mã hoá các gam khác nhau cho 1 màu cơ bản và nếu ta dùng một bộ DAC 2 bit cho mỗi màu, ta có thể hiển thị một điểm ảnh với 4x4x4=64 loại màu khác nhau. BẢNG MÀU VÀ MẠT ĐIỂM ẢNH Như đã nói ở trên, nếu ta dùng một bt trong bộ nhớ RAM đệm để nhớ thông tin cho một điểm ảnh một màu thì ta phải dùng nhiều bit hơn để chứa thông tin cho một điểm ảnh màu, vì các thông tin cho các màu R,B và G cũng phải được lưu trữ. Ví dụ, để hiện một điểm ảnh màu với 256 màu khác nhau ta phải dùng đến 8 bit lưu trữ thông tin về điểm đó. Nếu ta lấy trường hợp phải hiển thị 640x400 điểm, mỗi điểm với 256 màu khác nhau ta sẽ phải cần bộ nhớ dung lượng 256.000 byte. Điều này gâ y khó khan trong việc thực hiện bộ nhớ
  19. RAM đệm về mặt giá cả cũng như về không gian địa chỉ dành cho phần hiển thị trong các hệ vi xử lý 16 bit. Để hạn chế số bit cần thiết cho việc lưu trữ thông tin của điểm ảnh màu mà vẫn đảm bảo được gam màu rộng người ta đã sử dung việc mã hoá thông tin theo bảng màu (palêtt). Điều này có nghĩa là trong một thời điểm chúng ta chỉ được sử dung mố số màu trong một bảng màu chứa taut cả các màu có thể có . Ví dụ, vi điều khiển màn hình CGA của hãng IBM có khả năng hiển thị một lúc 320x200 điểm với 4 màu chọn trong bảng màu gồm 16 màu. Vì tại một thời điểm ta chỉ hiện 4 màu nên để lưu trữ thông tin cho một điểm ảnh ta chỉ cần 2 bit. Ví dụ khác, nếu tại một thời điểm ta vừa lòng với việc hiển thị 640x400 điểm ảnh với 16 màu trong bảng màu gồm 256 màu, chứ không phải là với 256 màu cuing một lúc, ta sẽ chỉ cần đến 4 bit để lưu giữ thông tin cho một điểm ảnh với 1 rong 16 màu. Bộ nhớ RAM đệm sẽ nhỏ đi được một nửa so với trường hợp hiện đủ 256 màu, lý do là một byte trong trường hợp này có thể chưa thông tin cho 2 điểm màu (xem hình 9.13a). Việc chỉ dùng một số màu trong một bảng màu để làm giảm kích thước bộ nhớ đệm là rất có lợi đối với các bộ điều khiển màn hình màu có đfộ phân giải cao (và như vậy đòi hỏi bộ nhớ lớn)., vì điều này làm giảm được tần số truy nhập bộ nhớ DRAM đệm khi làm tươi màn hình. Một biện pháp khác để làm giảm tần số truy nhập bộ nhớ đệm khi làm tươi màn hình là bằng cách tổ chức bộ nhớ đệm theo các mặt nhớ song song để chứa thông tin của một điểm. Cách tổ chức bộ nhớ cho kiểu hiển thị này được minh hoạ trên hình 9.13b. Trong cách làm này, 4 bit thông tin của 1 điểm ảnh được để tại các vị trí giống như trong 4 byte liên tiếp của bộ nhớ DRAM đệm. Điều này tương đương việc mỗi thông tin vê3f 1 màu được để trong một mặt điểm (bit plan). Khi bộ điều khiển màn hình lấy 4 byte này vào các thanh ghi của nó thì có được cả thảy thông tin của 8 điểm ảnh. Trong khi 8 điểm ảnh này được đưa ra màn hình thì bộ nhớ DRAM có thời gian hồi phục để lại có thể đọc tiếp được. Với 4 bit thông tin cho một điểm ảnh trong 4 mặt ta sẽ chọn được 1 trong 16 thanh ghi tương ứng với 1 trong 16 màu của bảng màu gồm 64 màu (thanh ghi này có 6 bit cho màu đỏ nhạt, xanh biển và xanh biển nhạt, xanh lá cây và xanh lá cây nhạt). Đây cũng là cách hiển thị điểm màu của vi điều khiển màn hình EGA ( enhanced graphics adapter, bộ phối ghép đồ hoạ cải tiến).  Các loại phối ghép màn hình thông dụng Trên hình 9.14 là bản liệt kê các loại mạch phội ghép màn hình thông dụng trong thực tế và các thông số kỹ thuật chính của chúng. Hinh 9.14 cũng giới thiệu mẫu hiển tị của các vỉ phối ghép màn hình cho các máy vi tính cá nhân của hãnh IBM hoặc tương thích.
  20. Điểm 1 Điểm 0 P1 P0 R G B I R G B I Bộ nhớ đệm hình a) Chứa thông tin theo điểm ảnh 0 I Mặt 1 D0 5 Mặt 1 D0 B G Mặt 1 D0 Mặt 1 D0 R Bộ nhớ đệm hình 15 Đến màn hình RBGI b) Chứa thông tin theo kiểu điểm ảnh Hình 9.13. Cách chứa thông tin trong bộ nhớ RAM đệm hình. Các máy tính cá nhân của IBM hoặc các máy tương thích thường không có sẳn khả năng đồ hoạ gắn trên bảng mẹ. Người dùng phải lựa chọn để cắm vào bảng mẹ một vi mạch phối ghép (vỉ điều khiển màn hình) với khả năng hiển thị ở chế độ văn bản/đồ hoạ thích hợp và chọn loại màn hình điều khiển phù hợp với bộ điều khiển đó. Do vậy tên của bộ điều khển màn hình cũng dùng để gọi luôn cho loại màn hình tưong thích đi kèm với nó.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2