0
Tải bản đầy đủ (.pdf) (169 trang)

MẠCH GIAO TIẾP

Một phần của tài liệu THIẾT KẾ VÀ THI CÔNG MÁY CHẤM ĐIỂM TRẮC NGHIỆM GIAO TIẾP MÁY VI TÍNH CÁ NHÂN (Trang 62 -169 )

Mạch giao tiếp được xây dựng dựa trên nguyên lý giao tiếp song song qua cổng máy in. Mạch sử dụng vi mạch giao tiếp PPI 82A55 làm cơ sở chính. Sử dụng các vi mạch số để khống chế quá trình giao tiếp và qua đĩ định vị chính xác các Port quy định thực hiện việc trao đổi thơng tin. Dữ liệu cũng như thơng tin được trao đổi giữa mạch (thẻ mạch; card) ngồi và CPU của máy tính cá nhân (PC: Person Computer) gián tiếp tiến hành thơng qua vi mạch PPI 82A55.

PPI 82A55 là một vi mạch chuyên dùng cho việc giao tiếp và trao đổi dữ liệu. Với thanh ghi điều khiển, PPI 82A55 thực hiện rất nhiều chức năng khác nhau và tùy vào mong muốn của người sử dụng. Ưu điểm của vi mạch chính là nhờ vào các thanh ghi đệm (shift register), các thanh ghi này chốt lại dữ liệu xuất ra.

Đề tài chỉ yêu cầu ở mức độ đơn giản, đĩ là trao đổi dữ liệu. Để nâng cao tính đa năng của vi mạch 82A55, mạch giao tiếp được thiết kế ở mức độ đơn giản nhưng tiện dụng. Đơn giản ở chỗ chỉ sử dụng ít IC số kèm theo để khống chế tầm hoạt động của vi mạch, mạch chỉ sử dụng bốn (04) IC và bốn (04) tụ lọc ngồi ra khơng sử dụng thêm bất cứ linh kiện thụ động nào khác. Tiện dụng ở chỗ, tùy theo yêu cầu giao tiếp mà người sử dụng cĩ thể cho vi mạch thực hiện cơng việc giao tiếp theo ý muốn, bằng cách lập trình trực tiếp trên thanh ghi điều khiển của PPI 82A55. Với ba cặp chuyển mạch (jumper) cĩ thể sử dụng tới 32 cảng giao tiếp. Ngồi ra mạch cịn thiết kế thêm phần nguồn để cung cấp cho bộ phận ngoại vi các mức áp 5VDC, 12VDC, GND.

Sơ đồ khối của mạch giao tiếp:

Tiến hành tìm hiểu cấu trúc, sơ đồ khối và tập lệnh của vi mạch PPI 82A55 cũng như sơ đồ chân và chức năng các chân của Slot XT, kết hợp với nhu cầu của đề tài, mạch “Giao tiếp” được thiết kế như sau:

SƠ ĐỒ MẠCH MẠCH GIAO TIẾP

Trong đĩ:

LINH KIỆN

Linh kiện Giá trị Chức năng

C1,C2,C3 100nF Lọc nguồn cho các IC 1,2,3

J1,J2,J3 Chọn địa chỉ cố định cho mạch giao tiếp

SV2 Cảng ra; Port ABC, Supply

IC1 7404,7414 IC cổng NOT

IC2 7430 IC cổng NAND 8 ngõ vào

IC3 7432 IC cổng OR

BUS

Bus Giá trị Ý nghĩa

VCC, GND 5V Nguồn cung cấp, lấy từ Slot XT của PC

IO Data PA0PC7 Ngõ ra của PPI 82A55

Address A0A9 Các đường địa chỉ của Slot XT

Data D0D7 Các đường dữ liệu của PC truyền qua Slot XT

Cotrol Data Slot RD\,WR\,… Các tín hiệu điều khiển lấy từ Slĩt XT Cotrol RD\,WR\,… Các tín hiệu điều khiển PPI sau khi xử lý

Mạch được thiết kế trên phần mềm EAGLE. Sau khi kiểm tra sơ bộ các đường nối, tiến hành vẽ mạch in thử bằng chức năng Auto của EAGLE, quá trình vẽ mạch in thử chính là bước tính tốn để sắp xếp linh kiện trên board sau cho hợp lý và chiếm ít khơng gian trên mạch in nhất.

Chọn được những vị trí thích hợp cho mỗi linh kiện trên board mạch, ghi lại file backup đề phịng sẽ cĩ sự sửa chữa về sau (cơng việc này thường được thực hiện trong suốt quá trình thiết kế của mỗi mạch), tiến hành vẽ mạch in. Sau khi thực hiện chức năng Auto, kiểm tra đường nối giữa board và schematic, nối tốt, chỉnh lại các đường dây nối cho hợp lý hơn.

Trong thực tế, khi vẽ bằng thủ cơng (vẽ bằng các chức năng) qua kinh nghiệm của hai lần vẽ bằng chức năng tự động, mạch gọn hơn, đẹp hơn và ít lỗ xuyên mạch hơn.

Ghi chú các yếu tố quan trọng lên mạch. Làm mạch in. Kiểm tra trên mạch in các lổ xuyên mạch, các đường mạch gần nhau. Mạch tốt, thử lại từng linh kiện rời, hàn đế chân, hàn linh kiện, lắp IC. Kiểm tra lại mạch lần cuối trước khi lắp vào Slot XT trên PC. Viết chương trình điều khiển thử mạch.

Phân tích mạch:

Vi mạch cổng đảo (7404) kết hợp với vi mạch cổng đảo và (7430) tạo nên sự khống chế địa chỉ điều khiển bằng cách khống chế chân Chip Select của PPI 8255A. Địa chỉ hoạt động của PPI là 11000XXXXXB = 1100000000B + XXXXXB = 300H + (00H  1FH).

Bộ ba jumper (J1, J2, J3) đặt trước các đường địa chỉ A0, A1, A2, A3, A4

tạo nên sự lựa chọn (22) x (23) = 4 x 8 = 32D = 1FH đường địa chỉ bộ nhớ. Các chân điều khiển đọc, ghi từ Slot XT được nối với chân RD\, WR\ của PPI 8255A thơng qua các cổng OR, các cổng này cĩ cơng dụng làm trễ pha của tín hiệu điều khiển.

Chân Reset của PPI được nối trực tiếp với chân B2 của Slot XT (chân Reset). Các chân A0 và A1 của vi mạch 8255A lần lượt được nối trực tiếp với chân A31 và A30 của khe giao tiếp mở rộng XT (chân SA0 và SA1).

Nguồn cung cấp cho card lấy trực tiếp từ máy tính thơng qua các chân B1, B10, B31 (GND) và B3, B29 (VCC; + 5VDC) của Slot XT.

Slot SV2 là các cảng ra Port A, Port B, Port C và Supply của PPI. Trong đề tài này, do phạm vi sử dụng khá rộng, cả ba cảng A, B và C đều được sử dụng nên khơng tách các Port ra làm từng Slot để truyền dữ liệu ra ngồi.

* Những kinh nghiệm rút ra được sau khi thực hiện mạch “Giao tiếp”:

Việc thiết kế phải gắn liền với tính linh hoạt trong việc sử dụng tài nguyên hiện cĩ.

Việc thiết kế phải dựa trên nhu cầu.

Thiết kế khơng chỉ dựa trên tài nguyên, kiên thức, sách vở mà phải dựa trên sự đáp ứng của thị trường linh kiện điện tử.

Cần phải chú ý trên mọi lĩnh vực liên quan đến mạch. * Kết quả đạt được:

Mạch chạy tốt.

Cĩ thể lập trình điều khiển mạch.

Đúng với mục đích và yêu cầu đặt ra.

Mạch gọn, khơng cần phải cân chỉnh, hàn nối thêm.

II. MẠCH GIẢI MÃ TÍN HIỆU ĐIỀU KHIỂN: (được xem là mạch trung tâm) Mạch giải mã tín hiệu điều khiển thực ra chỉ là mạch đệm dữ liệu giữa mạch ngồi và mạch giao tiếp bên trong máy tính đồng thời giải mã các tín hiểu điều khiển được truyền đến. Mạch được thiết kế theo sơ đồ khối sau:

SƠ ĐỒ KHỐI MẠCH GIẢI MÃ TÍN HIỆU ĐIỀU KHIỂN

Mạch lấy tín hiệu trực tiếp từ card giao tiếp đưa ra, sau đĩ cân áp ra mức logich 0 hay 1 (0V hay 5V) nhờ vào các điện trở mảng (array). Giải mã tín hiệu điều khiển từ Port A, thơng qua các IC 74LS00, 74LS192 và 4555 để lấy được tín hiệu điều khiển động cơ bước truyền qua các jumper để truyền qua mạch cơng suất. Truyền tín hiệu của port C sang mạch quét, các tín hiệu cịn lại được xử lý và truyền đi. Mạch sử dụng một IC 74164 (để chốt dữ liệu đầu ra, tín hiệu này card giao tiếp sẽ đọc vào để xử lý, thơng qua port B).

Dưới đây là sơ đồ mạch mạch Giải mã điều khiển động cơ bước, được thiết kế sau khi thử nghiệm đối với từng mạch lẻ (mạch đơn, thí nghiệm kiểm chứng trên từng IC).

Trong đĩ:

LINH KIỆN

Linh kiện Giá trị Chức năng

RN14 1K Điện trở mảng kéo lên, cho các tín hiệu PortABC.

C111 100nF Lọc nguồn.

SV1 Cảng vào, Port ABC, tín hiệu từ mạch giao tiếp.

SV3 Cảng vào ra, trao đổi tín hiệu với cần quét.

74LS32 Giải mã Autoreset.

74LS00 Giải mã tín hiệu điều khiển và vịng lặp.

74LS192 Tạo vịng lặp.

4555 Giải mã tín hiệu nhị phân sang tín hiệu thập phân.

J16 Truyền tín hiệu điều khiển đến mạch cơng suất.

Phân tích mạch:

Tín hiệu từ card giao tiếp sau khi truyền qua SV1 được các điện trở mảng RN1, RN2, RN3 và RN4 làm chuẩn mức logic 0 hay 1 (tín hiệu truyền song song chỉ truyền với khoảng cách ngắn, với đoạn đường truyền dài tín hiệu sẽ bị suy giảm).

Chân PC5 chọn làm chân Reset để xác lập lại trạng thái khởi điểm của IC 74164, chân PC4 là tín hiệu nhịp dữ liệu. Tín hiệu vào chân AB được lấy trực tiếp từ mạch quét gởi về. Tín hiệu này đồng thời truyền qua cổng OR để làm chuẩân mức logic và truyền tín hiệu này qua Port C về PC. Tín hiệu được chốt ở IC 74164 sẽ thơng qua RN1 đến chờ ở PortB chờ CPU đọc vào.

Tín hiệu ERR1, ERR2 (lỗi 1, lỗi 2) lần lượt qua các chân 1, 2 của SV3

đến cổng OR (IC2D) và chờ CPU đọc vào. Tín hiệu TH_Page, là tín hiệu theo dõi xem cĩ giấy hay khơng, lượt qua chân 3 của SV3 và chờ CPU đọc vào.

Mạch điều khiển động cơ bước làm việc trên cơ sở của mạch quét tuần tự. Mạch dùng vi mạch đếm 74LS192 (với thiết kế ban đầu dùng vi mạch 4022B) và vi mạch giải mã nhị phân sang mã thập phân, 4555B. Sự kết hợp của hai vi mạch này tạo ra mạch quét tuần tự bốn (04) bước, cĩ thể chuyển trạng thái từ quét thuận sang quét nghịch hay ngược lại. Thực hiện chức năng này là nhờ vào vi mạch 74LS192 cĩ là loại đếm thuận nghịch (up/down counter). Vi mạch này kết hợp với một cổng NAND tạo thành một bộ đếm vịng lên xuống (bốn bước).

Xung Ck và tín hiệu điều khiển up/down nhận từ Port A qua điều khiển bằng cổng NAND (74LS00) tạo ra xung Ck_up hay Ck_down tác động vào chân Ck tương ứng của 74LS192 (chân số 04: Ck_up; chân số 05: Ck_down). Trường hợp đếm lên: khi QC lên mức [1] (chuyển tiếp từ giá trị 0011B lên 0100B) sẽ tạo nên xung qua cổng OR (cổng dùng chung với chức năng Autoreset) tạo mức logic [0] tác động vào Clr (chân số 14), vịng đếm trở về giá trị 00B, vịng lặp cứ thế tiếp tục. Trường hợp đếm xuống: khi QD lên mức [1] (chuyển tiếp từ giá trị 0000B lên 1111B) sẽ tạo nên xung qua cổng NAND tạo mức logic [0] tác động vào LD (chân số 11, load), giá trị đặt trước sẽ được đưa ra (AB=[1] và CD=[0]0011B) vịng đếm trở về giá trị 11B,vịng lăp cứ thế tiếp tục. Giá trị của QA, QB được chuyển đến tín hiệu vào (A,B tương ứng) tương ứng của IC 4555B, IC này sẽ chuyển giá trị

nhị phân này ra giá trị thập phân truyền đến mạch cơng suất để điều khiển động cơ bước.

Đề tài sử dụng tất cả là năm (05) động cơ. Để đảm bảo tính chính xác trong tính chất cơ học, động cơ bước (step motor) được sử dụng thay cho động cơ DC trong các phần chính yếu. Trong quá trình thử nghiệm động cơ bước, các chỉ số thu được liệt kê trong bảng sau:

BẢNG THƠNG SỐ KỸ THUẬT CÁC ĐỘNG CƠ BƯỚC SỬ DỤNG TRONG THIẾT KẾ Type Vmax (V) Pmax (W) Phase Deg /Step Ghi chú 231M-C351-03 10 5 04 1,8 Động cơ kéo bệ dị

457M-C961-23 10 5 04 1,8 Động cơ cuốn giấy

14769070-60 10 1 04 1,8 Động cơ kéo cần dị

DC 12V 12 2 01 Động cơ lấy giấy

DC 12V 12 2 01 Động cơ kéo phụ giấy

Trong mạch ngồi những mạch giải mã nĩi trên cần phải nhắc đến vai trị khơng nhỏ của mạch Autoreset và bộ phận lọc nguồn.

Mạch Auto Reset được thết kế dựa trên nguyên lý quá trình nạp xả tụ, cụ thể là lấy áp trên điện trở vi phân để làm tín hiệu Reset. Khi cĩ điện tụ sẽ tự động nạp đầy và trong thời gian quá độ này của tụ điện, áp trên điện trở tích phân, R_RS, mang giá trị cao và giảm dần theo thời gian nghịch lưu với giá trị áp trên tụ. Giá trị áp trên R_RS qua cổng đệm OR (cổng A- 74LS32) để làm chuẩn mức logic ([0] hay [1]) sau đĩ truyền tín hiệu này đến chân thứ nhất của cổng OR thứ B, C, D (chân thứ hai tương ứng của các cổng này được liên kết với các chân QC của 74LS192) và truyền đến chân Clr của 74LS192 (mức logic [1]) làm cho IC này tự động Reset thiết lập lại trạng thái ban đầu.

Mạch lọc nguồn đơn giản chỉ là các tụ lọc đặt trước các chân nguồn của IC số để lọc hết các tín hiệu nhiểu xuống Mass.

Cơng việc cuối cùng của việc thiết kế đĩ chính là thiết kế và xây dựng phần mềm điều khiển tồn bộ hệ thống. Phần mềm được viết bằng phần mềm lập trình cấp cao, ngơn ngữ lập trình PASCAL.

Trong giới hạn của việc trình bày đề tài người thực hiện chỉ đưa ra một số thủ tục chính và sơ đồ khối mơ tả phương cách hoạt động của chúng. Sau là phần trình bày về phần mềm điều khiển, phần này gồm cĩ:

 Cài đặt Jumper của mạch Giao tiếp và sự hỗ trợ của Mainboard (cài đặt CMOS).

 Xây dựng sơ đồ khối thư viện Driver.

 Phân tích một thủ tục mẫu.

I. CAØI ĐẶT:

Trước hết chúng ta nên cài địa chỉ cố định trên mạch Giao tiếp, cơng việc này được thực hiện bằng cách gắn jumper nối liền hai chân 2-3 của các slot J1, J2, J3; thực hiện cơng việc này là ta chọn địa chỉ cố định là 300H (ta cĩ thể cài đặt địa chỉ cố định là bao nhiêu tùy theo nhu cầu). Địa chỉ bộ nhớ của mạch là 300H303H tương ứng với:

Địa chỉ bộ nhớ: Địa chỉ thực:

300H : địa chỉ Port A.

301H : địa chỉ Port B.

302H : địa chỉ Port C.

303H : địa chỉ Thanh ghi điều

khiển.

Sau khi nắm được địa chỉ bộ nhớ của các Port nhờ vào cơng thức:

Địa chỉ cố định+ 0H : địa chỉ Port A.

Địa chỉ cố định+ 1H : địa chỉ Port B.

Địa chỉ cố định+ 2H : địa chỉ Port C.

Địa chỉ cố định+ 3H : địa chỉ Thanh ghi điều khiển.

Ta tiến hành cài đặt lại CMOS của máy tính để cho máy tính hỗ trợ và kiểm tra địa chỉ chúng ta cài đặt. Cơng việc cài đặt lại CMOS thực hiện như sau:

 Tắt máy, khởi động lại.

 Khi máy kiểm tra Ram xong nhấn phím Delete để vào sửa chữa lại CMOS.

 Chọn mục Power Management Setup.

 Chọn mục I/O Region Access Check.

 Dùng phím PageUp và PageDown để chọn trị số của mục là 300h-33Fh.

 Nhấn phím “ESC”, chọn Save and Quit, nhấn phím “Y”. Nhấn phím “Enter”

II. XÂY DỰNG SƠ ĐỒ KHỐI THƯ VIỆN DRIVER:

Thư viện Driver là một trong số những thư viện được viết để xây dựng phần mềm điều khiển máy chấm điểm trắc nghiệm. Thư viện này được viết bằng ngơn ngữ lập trình PASCAL, bao gồm 11 thủ tục con, dùng để điều khiển hoạt động của động cơ và truy xuất dữ liệu hệ thống.

Thư viện này sử dụng một Unit tên VAR_COM, là thư viện chứa các hằng, biến tồn cục của chương trình. Cụ thể:

UNIT VAR_COM; {Khai báo tên Unit cần tạo} INTERFACE {Khai báo chung}

TYPE File_Name_Type = String[16]; XY_Type = Record Hor : Word; Vert : Word; End; CONST

L_Horizontal = 600; (*Chiều dài tối đa tín hiệu điều khiển cần quét*) L_Scan = 100; (*Chiều dài tối đa tín hiệu điều khiển quét *) On = True; Off = False; Right = True; Left = False; Up = True; Down = False; VAR Sys_Error : Byte; DataA, DataB : Byte; DataC, CL, CH : Byte;

Error : Boolean; (*PC3 : tín hiệu lỗi Error *) Page : Boolean; (*PC2 : tín hiệu lỗi Page *) Vert : Boolean; (*PC1 : tín hiệu Veritical *) Hor : Boolean; (*PC0 : tín hiệu Horizontal*) V_Count,

H_Count,

Sc_Count : Integer;

(*

Add_Port 0 : Address Port A Add_Port 1 : Address Port B Add_Port 2 : Address Port C *)

DataA_Bit : Array[0..7] of Boolean; (*

Bit 0 : Clock Vertical Bit 1 : Up/Down Vertical Bit 2 : Clock Scan

Bit 3 : Up/Down Scan Bit 4 : Clock Horizontal Bit 5 : Up/Down Horizontal Bit 6 : Motor DC 1st

Bit 7 : Motor DC 2nd *)

T_DL_CK : Word; (*Thời gian Delay của xung CK*) T_DL_MDC : Word; (*Thời gian Delay của Motro DC*) F_XY, (*File lưu trữ tọa độ XY*)

F_Data, (*File lưu trữ trả lời mẫu*) F_Sys, (*File lưu trữ trạng thái*) F_Ans : File; (*File lưu trữ kết quả*) F_Error : Boolean;

W_Data, (*Chiều rộng dữ liệu*) L_Data : Byte; (*Chiều dài dữ liệu *)

XY_Name : File_Name_Type; (*Tên mở rộng File tọa độ XY*) XY_Count : Word; (*Số cặp tọa độ XY*)

XY_Data : Array [1..500] of XY_Type;(*Mãng dữ liêu, tối đa 500*)

IMPLEMENTATION {Thi hành}

BEGIN

END. {Kết thúc thư viện}

Các thủ tục ta xây dựng sơ đồ khối trong chương này là: 1. ProceDure ReadC; 2. ProceDure CK; 3. ProceDure MDC(DC1,DC2:Boolean); 4. ProceDure Run_SM(Motor:Byte;Step:Integer); 5. ProceDure SM_Standar(SM_H,SM_SC:Boolean); 6. ProceDure Page_Out;

7. ProceDure Page_In;

8. ProceDure GoXY(H,V:Integer); 9. ProceDure ResetData;

ProceDure ReadB;

10.ProceDure Scan;

Trong sơ đồ khối cĩ các từ viết tắt như:BA07 (viết tắt của biến DataA_Bit[0..7]), PA07 (viết tắt của biến DataA[0..7]).

Thủ tục ReadC

Thủ tục này cĩ chức năng đọc dữ liệu từ Port C vào, tín hiệu PortCL, sau đĩ làm chuẩn lại tín hiệâu (chỉ lấy 04 bit thấp PC04) bằng cách AND với $0FH (15D). Sau khi đã làm chuẩn tín hiệu, tùy giá trị của từng bit (là [0] hay [1]) mà gán trạng trái của báo của cờ tương ứng (HOR, VERT, PAGE, ERROR) là [True] hay [False].

Sta

r

Read PortCL

Bit C0 = 1 Bit C1 = 1 Bit C2 = 1 Bit C3 = 1

Hor=True

Hor=False Vert=False Page=False Error=False Page=True

Vert=True Error=True

End

Đ Đ Đ Đ

Thủ tục CK

Thủ tục này cĩ nhiệm vụ tạo một xung Ck cho mạch giãi mã điều

Một phần của tài liệu THIẾT KẾ VÀ THI CÔNG MÁY CHẤM ĐIỂM TRẮC NGHIỆM GIAO TIẾP MÁY VI TÍNH CÁ NHÂN (Trang 62 -169 )

×