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ận (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 5.1 thuần túy là lôgic tổ hợp, nghĩa là các đầu ra 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ần phụ lục 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 5.3 hoặc hình 5.8 là lôgic tuần tự, sử dụng 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ục B, 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ận (Trang 99 - 101)

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

(141 trang)