Lập trình cho mạch điều khiển lôgic

Một phần của tài liệu Nghiên cứu, xây dựng biến tần kiểu ma trận472 (Trang 99 - 101)

CPLD loại ATF1508 của Atmel được chọn để thực hiện hai nhiệm vụ

trong mạch điều khiển MC đã đề cập đến trong phần 5.3.1 và 5.3.2, đó là

chọn ra tổ hợp van ứng với các sector điện áp, dòng điện và điều khiển quá trình chuyển mạch. CPLD của Atmel lập trình được bằng phần mềm

WINCUPL, kèm công cụ mô phỏng WinSim để có thể kiểm tra lại thiết kế.

1. Thực hiện bảng chọn

Mạch lôgic theo bảng .1 thuần túy là lôgic tổ hợp, nghĩa là các đầu ra 5

phụ thuộc trực tiếp vào các đầu vào qua các biểu thức lôgic. Chương trình cho

CPLD1, trình b ày trong phầnphụ ục l A, gồm các phần chính sau:

− Gán chân của ATF1508 cho các tín hiệu vào, ra.

− Xác định các biến trung gian (biến trung gian giúp cho việc viết các

biểu thức lôgic gọn gàng, dễ đọc hơn).

− Các phương trình lôgic.

2. Thực hiện mạch điều khiển chuyển mạch

Mạch lôgic thiết kế theo bảng .3 hoặc hình .8 là lôgic tuần tự, sử dụng 5 5

CPLD2. Lôgic tuần tự là một dạng của lôgic trạng thái, trong đó các tín hiệu ra không những phụ thuộc vào các biến đầu vào mà còn phụ thuộc vào trạng

thái trước đó của sơ đồ [35]. Trong WINCUPL lôgic trạng thái có cấu trúc

như được biểu diễn trên hình 5.11. Cấu trúc này bao gồm những phần tử

chính sau đây: đầu vào, lôgic tổ hợp, lôgic trạng thái, các đầu ra không trạng

thái, các đầu ra trạng thái và các bit trạng thái. Đầu vào là những tín hiệu lôgic từ ngoài vào hoặc từ các thiết bị khác. Mạch lôgic tổ hợp bao gồm các tổ

hợp lôgic, thường là các hàm AND, OR, XOR giữa các tín hiệu lôgic với nhau. Mạch lôgic trạng thái bao gồm các trigơ là các phần tử lôgic có nhớ. Các bit trạng thái có thể là các tín hiệu phản hồi đưa về mạch lôgic tổ hợp. Các đầu ra bao gồm các đầu ra không phụ thuộc trạng thái trong của sơ đồ và các đầu ra phụ thuộc.

Lôgic trạng thái Lôgic tổ hợp

Đầu ra không trạng thái Đầu ra trạng thái Các bit trạng thái Đầu vào

Hình 5. 11 Lôgíc trạng thái trong WINCUPL.

Trong WINCUPL cú pháp để viết chương trình cho lôgic trạng thái bắt đầu bằng từ khoá SEQUENCE như sau:

SEQUENCE state_var_list { PRESENT state_n0

IF (condition1) NEXT state_n1;

IF (condition2) NEXT state_n2 OUT out_n0; DEFAULT NEXT state_n0;

...

PRESENT state_nn statements; }

trong đó state_var_list là danh sách các biến bit trạng thái, có thể nhóm lại thành một trường biến.

Sau PRESENT state_n0, lệnh IF kiểm tra điều kiện (condition1), nếu thoả mãn NEXT sẽ cho chuyển sang trạng thái tiếp theo state_n1, lệch IF tiếp theo kiểm tra điều kiện (condition2), nếu thoả mãn thì chuyển sang trạng thái state_n2. Lệch OUT thiết lập đầu ra out_n0. DEFAULT thiết lập trạng thái ban đầu, có thể là state_n0. Tương tự như vậy đối với khi đang ở các trạng

thái khác hoặc ở trạng thái cuối cùng thứ n. Statements có thể là trạng thái

lôgic nào đó hoặc một biểu thức lôgic phù hợp bất kỳ, xác định một hành động cần thiết. Dấu “;” kết thúc một trạng thái, giữa hai dấu “{...}” là toàn bộ

Lôgic tổ hợp cũng như lôgic trạng thái đều có thể ghép lại tạo thành các

macro, rất thuận tiện cho việc tổ chức chương trình, dễ đọc và tránh được nhầm lẫn.

Chương trình viết cho CPLD2, xem phần phụ l B, ục thực hiện sơ đồ lôgic

tuần tự của quá trình chuyển mạch 4 bước (hoặc cho một mạch lôgic tuần tự nào đó), bao gồm các bước chính sau đây:

− Gán chân của ATF1508 cho các tín hiệu vào, ra.

− Tạo các biến trung gian cần thiết.

− Mã hóa các trạng thái của lôgic trạng thái.

− Phương trình lôgic của lôgic trạng thái (Được ghép trong macro CM).

− Biểu thức lôgic cho các biến đầu ra (Nếu biến đầu ra phụ thuộc cả đầu

vào lẫn trạng thái).

Sau khi dịch, ngoài file quan trọng nhất là file JEDEC chứa mã nhị phân

để nạp vào phần cứng, WINCUPL cho ra một số file cần thiết khác là file.doc

và file.fit. Trong đó file.doc mô tả lại toàn bộ cấu hình của mạch lôgic và các biểu thức lôgic đã được khai triển ra và tối ưu hóa. File.fit cho ra các thông tin đầy đủ và việc sử dụng các phần tử trong chip CPLD. Các thông tin cho ta biết các khả năng còn lại có thể được sử dụng vào các chức năng khác hay không. Trong hai ví dụ trên đây, CPLD1 chỉ sử dụng một phần nhỏ tài nguyên

của ATF1508, trong khi đó CPLD2 sử dụng tới 54% lôgic cell. Điều này

nghĩa là cả hai chức năng lôgic trên đây có thể thực hiện chỉ trong một

ATF1508. Một thiết kế mới hơn đã thực hiện theo hướng này với kết quả hoàn toàn phù hợp.

Một phần của tài liệu Nghiên cứu, xây dựng biến tần kiểu ma trận472 (Trang 99 - 101)

Tải bản đầy đủ (PDF)

(140 trang)