Xâydựng chơng trình ứngdụngchocác pld cótrongphòngthínghiệmcủakhoa kTĐT 1 I.Tính cấp thiết của đề tài Hiện nay tạiphòngthínghiệmcủakhoa Kĩ thuật Điện tử 1 đợc trang bị các thiết bị dùng để lập trìnhchocác cấu kiện PLDs (Programmable Logic Devices). Việc nghiên cứu triển khai cácứngdụngcủaPLDcho sinh viên thực hành là rất cần thiết. Tuy nhiên, cho đến nay chỉ có một số ứngdụngcủaPLDđợc đa vào một số bài thínghiệm thuộc môn học Kĩ thuật số ở khoa Kĩ thuật Điện tử 1. Đề tài này ngoài việc tạo điều kiện cho sinh viên (nhất là sinh viên đại học) đợc tiếp xúc cũng nh phát triển cácứngdụngcủaPLD vẫn còn bị hạn chế ở trongkhoa (lập trìnhchocácPLD và chạy cácứngdụng trên các tấm mạch có sẵn trongphòngthí nghiệm) nó còn góp phần nghiên cứu, triển khai cácứngdụng mới cho PLD. Kết quả của đề tài giúp chocác sinh viên ít có điều kiện tiếp xúc với tàiliệu và các thiết bị về PLDcó thể nắm đợcphơng pháp lập trìnhchoPLD (sử dụng phần mềm SNAP) và cách triển khai cácứngdụng lên các tấm chạy thử. II. Nội dungkhoa học 1. Tổng quan về PLDCác cấu kiện lập trìnhđợc (PLD) là các mảng cổng logic tiêu chuẩn, có thể đợc cấu hình bằng cácphơngtrình khác nhau để thực hiện nhiều hàm logic. Đơn giản nhất là các mạch logic liên hợp nh bộ giải mã hoặc ghép kênh, sau đó là các bộ ghi, phức tạp hơn nữa là các mô hình trạng thái đợcdùngtrong điều khiển hệ thống. Trongphòngthínghiệm hiện nay có tấm ứngdụngPLD 28-110, nó cho phép tiến hành với hai loại cấu kiện khác nhau là PLC18V8Z và PLC42VA12 (hai loại này dễ phân biệt với nhau vì PLC18V8Z có 20 chân, còn PLC41VA12 có 24 chân). Để tiện dùng trên tấm ứngdụng 28-110, cácPLD đã đợc lắp sẵn theo modul. Modul 28-110 gắn sẵn PLC18V8Z, modul 28-102 gắn sẵn PLC42VA12. 2. Phần mềm SNAP 2.1 Giới thiệu. SNAP (Synthesis Netlist Analysis & Program software) là một chơng trình phần mềm của hãng Philips Semiconductors đợcdùng để thiết kế mạch logic trên những cấu kiện có thể lập trìnhđợccủa Philips. Quy cách xâydựngphơngtrình logic thì không phụ thuộc vào loại cấu kiện PLD. Sau khi mô phỏng và gỡ rối cho một mạch logic, trớc hết ta có thể xác định rõ bản thiết kế mạch, sau đó chọn bộ thiết bị PLD. 2.2 Các b ớc tiến hành trong SNAP SNAP là một chơng trình phần mềm điều khiển thực đơn có tính tác động qua lại. Sơ đồ menu cho phép ta chọn loại hình hoạt động trong SNAP nh mong muốn. SNAP 1.90 Copyright 1993 PHILIPS SEMICONDUCTOR All rights reserved Project : DEMO Use cursor keys to select modul Use function keys to enter 1:HELP 2:RUN 3:PROJECT 4:STATUS 5:SETUP 6:SAVE 7:DOS 8:EDIT 9:PRINT 10:EXIT Các hộp trên hình vẽ trên thể hiện các hoạt động trong Snap để ta có thể lựa chọn ở bất cứ thời điểm nào mà không cần phải theo thứ tự. 3. Phơng pháp thiết kế PLD. Con đờng hữu hiệu nhất để thiết kế khi sử dụng logic lập trình là tiệm cận hộp đen. Trớc hết, ta vẽ một hộp đen để thể hiện chức năng, thêm các lối vào ra cần thiết đó xác lập các mối liên quan củacác đầu ra với tổ hợp khác nhau củacác đầu vào. Đặc tính đầu ra có thể đợc biểu diễn theo các biểu thức logic hoặc bằng sự chuyển đổi các trạng thái của mạch. - Các bớc tuần tự để thiết kế logic lập trình: 1. Xác định chức năng. Minimizer Equations Abel2Snap ScCapture NetConv Edif NetGen MacSel Merger Waveforms SimNet Compiler TestVector SimScl SimFlt ModGen DPI SimPrt Plot 2. Tạo cácphơng trình. 3. Đa cácphơngtrình vào máy tính. 4. Mô phỏng và kiểm tra. 5. Biên dịch. 6. Lập trìnhcho cấu kiện. 7. Kiểm tra chức năng. Sau khi hoàn thành bớc1, bớc 2 ta thực hiện bớc 3 nh sau: Nh ta đã biết phơngtrình logic và phơngtrình trạng thái đều nằm trong file ENQ. Do đó, ta tạo một đề án mới dùng phím F3 (project), Snap tạo ra file mẫu chophơngtrình <project>, ENQ file mới này có nội dung nh sau: @PINLIST @GROUPS @TRUTHTABLE @LOGIC EQUATIONS @INPUT VECTORS @OUTPUT VECTORS @STATE VECTORS @TRANSITIONS 4. Một ví dụ cụ thể: MUX/DEMUX 4:4 4.1 Chức năng: MUX/DEMUX 4:4 thực hiện chức năng phân kênh và ghép kênh với bốn lối vào và bốn lối ra tuỳ chọn. 4.2 Lập trình: ở thí dụ này ta lập trình bằng phơng pháp phơngtrình logic @PINLIST ena I; "Đầu vào kiểm soát lối ra cho phép,nhận tích cực thấp " dcs I; "Đầu vào điều khiển hớng tín hiệu: dcs=0 x to y dcs=1 y to x" xa0 I; "Đầu vào địa chỉ của kênh x" xa1 I; "Đầu vào địa chỉ của kênh x" ya0 I; "Đầu vào địa chỉ của kênh y" ya1 I; "Đầu vào địa chỉ của kênh y" x0 B; " Lối vào/ ra dữ liệu x0" x1 B; " Lối vào/ ra dữ liệu x1" x2 B; " Lối vào/ ra dữ liệu x2" x3 B; " Lối vào/ ra dữ liệu x3" y0 B; " Lối vào/ra dữ liệu y0" y1 B; " Lối vào/ra dữ liệu y1" y2 B; " Lối vào/ra dữ liệu y2" y3 B; " Lối vào/ra dữ liệu y3" @LOGIC EQUATIONS xzero = /xa1 * /xa0; xone = /xa1 * xa0; xtwo = xa1 * /xa0; xthree = xa1 * xa0; yzero = /ya1 * /ya0; yone = /ya1 * ya0; ytwo = ya1 * /ya0; ythree = ya1 * ya0; x_to_y = x0 * xzero + x1 * xone + x2 * xtwo + x3 * xthree; y_to_x = y0 * yzero + y1 * xone + y2 * ytwo + y3 * ythree; *********** Ghép kênh 4:4 x to y *************** y0 = /ena * /dcs * yzero * x_to_y; y1 = /ena * /dcs * yone * x_to_y; y2 = /ena * /dcs * ytwo * x_to_y; y3 = /ena * /dcs * ythree * x_to_y; ********** Phân kênh 4:4 y to x ***************** x0 = /ena * dcs * xzero * y_to_x; x1 = /ena * dcs * xone * y_to_x; x2 = /ena * dcs * xtwo * y_to_x; x3 = /ena * dcs * xthree * y_to_x; ********* Đầu ra cho phép ********************** y0.oe = /ena * /dcs * yzero; y1.oe = /ena * /dcs * yone; y2.oe = /ena * /dcs * ytwo; y3.oe = /ena * /dcs * ythree; x0.oe = /ena * dcs * xzero; x1.oe = /ena * dcs * xone; x2.oe = /ena * dcs * xtwo; x3.oe = /ena * dcs * xthree; III. Phơng pháp nghiên cứu của đề tài Việc thực hiện nghiên cứu khoa học cócácphơng pháp cơ bản sau: . Phơng pháp nghiên cứu lí luận . Phơng pháp quan sát . Phơng pháp thực nghiệmkhoa học . Phơng pháp điều tra . Phơng pháp mô hình hoá . Phơng pháp sơ đồ hoá(GRAP) . Phơng pháp phân tích và tổng kết kinh nghiệm Với đề tài này việc thu nhận thông tin thông qua tàiliệu về PLD và phần mềm SNAP là rất quan trọng, nó là cơ sở để xâydựngcácứngdụngchoPLD và việc triển khai nó. Vì vậy, đề tài này đã sử dụngphơng pháp nghiên cứu lí luận cho việc thu thập những thông tin cần thiết trongcác nguồn tàiliệucó liên quan. Tuy nhiên, việc thực hiện đề tài này ngoài lí thuyết còn cần các thiết bị chuyên môn, cácphơng tiện kĩ thuật đặc biệt . Do đó trong quá trình thực hiện, nhóm nghiên cứu đã sử dụng đồng thời phơng pháp thực nghiệmkhoa học trongphòngthí nghiệm. Việc sử dụng song song hai phơng pháp này đã giúp cho kết quả của đề tài vừa có tính chính xác của việc nghiên cứu trên lí thuyết và tính thực tiễn cao. IV.Khả năng ứngdụngtrong thực tiễn Với mục đích ban đầu của đề tài là xâydựng chơng trình ứngdụngchocác PLD cótrongphòngthínghiệm nên ứngdụng lớn nhất của đề tài là phục vụ chocác bài thực hành của sinh viên. Tuy nhiên, trong thực tế có rất nhiều loại cấu kiện PLDs với các chức năng khác nhau, do đó nó cũng có nhiều ứngdụng khác nhau cho từng loại cấu kiện cụ thể. Đề tài này đã thực hiện xâydựng 3 ứngdụng thực tiễn cho thực hành đó là: . Giải mã LED 7 đoạn. . MUX DEMUX 4:4. . Điều khiển Motor bớc. Với ứngdụng Giải mã LED 7 đoạn , ta sử dụng cấu kiện PLC18V8Z. ứngdụng Mux- Demux 4:4 và Điều khiển Motor bớc, ta sử dụng cấu kiện PLC42VA12. Cả 3 ứngdụng này đều cóPLDđợc lắp sẵn theo modul trên tấm ứngdụng 28-110 để chạy thử. Ngoài ra, khả năng ứngdụngPLD rất lớn và có nhiều ý nghĩa, đề tài này cũng viết chơng trình lập trình thực hiện điều khiển đèn giao thông và điều khiển giờ đánh trống vào, ra lớp học. Việc đa ra ứngdụng thực tế phải cần cócác cấu kiện PLD cụ thể . Xây dựng chơng trình ứng dụng cho các pld có trong phòng thí nghiệm của khoa kTĐT 1 I.Tính cấp thiết của đề tài Hiện nay tại phòng thí nghiệm của khoa. ứng dụng trong thực tiễn Với mục đích ban đầu của đề tài là xây dựng chơng trình ứng dụng cho các PLD có trong phòng thí nghiệm nên ứng dụng lớn nhất của