Thiết bị logic lập trình được trong ứng dụng xử lý tín hiệu số
Bùi Quốc Khánh, Phạm Văn Bách
Trường ĐHBK Hà Nội – Trung tâm Nghiên cứu Triển khai Công nghệ cao
e-Mail:
[email protected]
Tóm tắt
Trong những năm gần đây, cụm từ logic lập trình
được (PLD) ngày càng xuất hiện nhiều trong các lĩnh
vực công nghệ mới và được biết đến như một giải
pháp phần cứng (hardware solution) và ngày càng
được sử dụng rộng rãi trong các ứng dụng điều khiển
chuyển động. Bài viết này sẽ trình bày một cách khái
quát về PLD cũng như những khả năng của chúng và
ứng dụng của một PLD đơn giản cho việc điều khiển
động cơ một chiều không chổi than (BLDC).
Abstract
In the recent years, programmable logic device (PLD)
is one of
the fastest growing areas of new
technologies and is being used in a wide variety of
motion control applications and has been known as
hardware solutions. In this paper, the authors present
a review of PLD and using a simple PLD to control
the Brushless DC motor.
Chữ viết tắt
PLD
BLDC
DSP
CPLD
FPGA
PLA
PAL
ASSP
ASIC
(Programmable logic device)Thiết bị
logic lập trình được
(Brushless DC motor) Động cơ một
chiều không chổi than
(Digital signal processor) Bộ xử lý tín
hiệu số
(Complex programmable logic device)
Lập trình logic phức hợp
(Field programmable gate array) Tập
hợp dãy cổng logic lập trình được.
(Programmable logic array) Dãy logic
lập trình được.
(Programmable array logic) Logic dãy
lập trình được.
(Application - specific standard
products) Sản phẩm chuẩn chuyên
dụng.
(Application - specific integrated
circuits) Mạch tích hợp chuyên dụng.
1. Giới thiệu
Ngày nay với tốc độ cũng như khả năng mềm dẻo của
các thiết bị mới đã đem lại nhiều sự lựa chọn cho việc
cài đặt các hệ điều khiển số, thiết bị thường được nhắc
tới nhiều nhất là các vi điều khiển và các bộ xử lý tín
hiệu số (DSP). Tuy nhiên, cấu trúc xử lý theo kiểu
vòng lặp của các thiết bị này sẽ không thích hợp cho
việc xử lý tín hiệu cần cho kết quả tức thời (cứng).
Mức độ phức tạp của các mạch logic cũng không cho
phép xây xựng từ các phần tử logic thông thường, các
thiết bị logic khả trình đã ra đời để giải quyết vấn đề
này. Họ các thiết bị logic lập trình được bao gồm:
SPLD, CPLD, FPGA ... . Ngày nay công nghệ chế tạo
PLD đã tiến tới công nghệ nano (90nm/cell) điều này
không những làm tối giản về kích thước mà còn giảm
thiểu công suất tiêu thụ, tăng khả năng tích hợp cũng
như độ tin cậy của linh kiện, các thế hệ FPGA không
ngừng được cải tiến nhằm giảm giá thành, tăng độ tin
cậy, tốc độ cũng như khả năng của chúng. Các FPGA
thế hệ mới còn được tích hợp lõi DSP điều này không
những giảm được giá thành, kích thước hệ thống mà
còn làm tăng chất lượng hệ thống.
Về cấu trúc có thể hình dung mỗi PLD là ma trận các
khối lô-gíc có thể cấu hình được, kết nối với nhau
thông qua một mạng trung gian cũng có khả năng lập
trình được và các khối cổng vào/ra lập trình được như
được thể hiện trên H. 4, mỗi loại PLD sẽ tương ứng
với tốc độ cũng như khả năng phức hợp khác nhau
của các khối này.
Trước hết ta hãy xem xét các PLD đơn giản được cấu
trúc từ các dãy logic lập trình được AND, OR như thể
hiện trên H. 1, H. 2 và H. 3.
H. 1
Mảng OR
H. 2
Mảng AND
H. 3
PLD đơn giản
Nếu ROM lập trình được có dãy logic AND cố định
và dãy logic OR lập trình được thì logic dãy lập trình
được PAL lại có dãy logic AND lập trình được và dãy
logic OR cố định do vậy PAL dễ dàng thiết lập và có
tốc độ nhanh hơn ROM.
Dãy logic lập trình được PLA là sự kết hợp của ROM
và PAL với các dãy logic AND và OR đều lập trình
được. Công nghệ PLD với tốc độ và độ phức hợp cao
được biết đến là các thế hệ CPLD và FPGA.
H. 5 là cấu trúc bên trong khối logic của một CPLD,
bao gồm các phần tử logic cơ bản (AND, OR),
multiplexer, các loại trigơ và các khối phản hồi, nếu là
khối logic của một FPGA thì ta sẽ có thêm các bảng
chọn (LUT) là tập hợp các khối ROM như được thể
hiện trên H. 6. Từ các khối logic ta có thể dễ dàng xây
dựng các bài toán logic phức tạp và các phép tính toán
học theo kiểu song song (tức thì) hay nối tiếp (tuần
tự) (H. 7) tuỳ thuộc vào đặc thù của từng bài toán.
Đặc biệt trong các FPGA thế hệ mới như Stratix
(Altera), Vertex (Xilinx)… đều hỗ trợ khả năng xây
dựng DSP, điều này rất phù hợp với các hệ thống cần
xử lý nhiều vùng tín hiệu có các đặc trưng khác nhau
(mức tín hiệu, tần số …).
khối lô gíc
khối vào/ra
H. 7 Thực thi kiểu nối tiếp (DSP) và song song (PLD)
khối vào/ra
khối vào/ra
Để làm rõ hơn những khả năng của PLD trong lĩnh
vực xử lý tín hiệu số, sau đây sẽ thực hiện so sánh về
khả năng xử lý tín hiệu giữa PLD với các thiết bị xử
lý tín hiệu số thông dụng như DSP, ASSP và ASIC.
DSP [2] được sử dụng cho các ứng dụng xử lý tín
hiệu số, có cấu trúc tổng quan như được thể hiện trên
H. 8
khối vào/ra
H. 4
khối bus
Cấu trúc của một PLD
H. 8
H. 5
Khối lôgíc CPLD
ROM
...
ROM
ROM
H. 6
Cấu trúc của một LUT
Cấu trúc tổng quan của DSP
DSP được biết đến với khả năng mềm dẻo, rút ngắn
thời gian phát triển sản phẩm, thích hợp với khả năng
phát triển thuật toán. Tuy nhiên việc xử lý tuần tự của
DSP chỉ thích hợp với các bài toán với tốc độ xử lý
hạn chế cho dù nhiều DSP đã tích hợp những chức
năng đặc biệt nhằm tăng tốc độ tính toán (tăng khả
năng xử lý thời gian thực).
ASSP và ASIC được thiết sử dụng cho các mục đích
chuyên dụng do vậy sẽ tối ưu hiệu quả sử dụng cũng
như giá thành, ASSP với các chức năng lọc FIR và
IIR là tốt nhất trong các giải pháp phần cứng được
biết đến thì lại bị hạn chế bởi khả năng không mềm
dẻo cũng như việc phải thiết kế lại khi thay đổi mục
đích ứng dụng xử lý tín hiệu số. ASIC là giải pháp
mềm dẻo và có giá thành thấp so với ASSP nhưng
thời gian phát triển cho mỗi ứng dụng của ASIC sẽ
dài hơn với chu kỳ từ 1 đến 1,5 năm.
Với công nghệ ngày càng hiện đại, giá thành của các
PLD ngày càng giảm đồng thời khả năng của chúng
ngày càng được mở rộng thì PLD ngày càng được sử
dụng rộng rãi trong lĩnh vực xử lý tín hiệu nói chung
và điều khiển nói riêng là điều không có gì ngạc
nhiên. Để thể hiện một vài tiện ích của PLD trong
điều khiển chuyển động, phần sau đây của bài viết sẽ
trình bày ứng dụng của một PLD đơn giản thực hiện
điều khiển động cơ BLDC.
2. Sử dụng PLD đơn giản điều khiển động
cơ BLDC
Bài toán điều khiển động cơ BLDC như được thể hiện
trên H. 9, tín hiệu biến điệu độ rộng xung pwm tỷ lệ
với điện áp trên cuộn dây stato của động cơ sẽ được
đưa tới khối thực hiện chức năng chuyển mạch để đưa
ra 6 tín hiệu điều khiển 6 van bán dẫn của bộ biến đổi,
thông tin cho việc chuyển mạch là vị trí rôto của động
cơ được xác định từ 3 cảm biến vị trí (Hall sensor)
gắn trên trục động cơ lệch nhau 600
H. 9
H. 10 Bộ biến đổi cấp nguồn cho BLDC
Để thực hiện chuyển mạch theo bảng B. 1 ở đây sử
dụng SPLD ATF16V8B (H. 13) của Atmel (9 cổng
vào, 8 cổng vào/ra). Ngoài việc chuyển mạch, SPLD
này còn thực hiện một số nhiệm vụ khác như xử lý
sườn xung encoder, bảo vệ quá dòng, khởi động/dừng
…. Phần mềm làm việc với họ PLD của Atmel là
WinCupl miễn phí, lưu đồ thực hiện như trên H. 11.
Vị trí khối chuyển mạch BLDC
hay 1200 trong không gian, cụ thể bài toán chuyển
mạch phải thực hiện theo bảng B. 1
H. 11 Lưu đồ thực hiện chương trình
TT
Hall
_u
Hal
l_v
Hal
l_w
U(T/N)
V(T/N)
W(T/N)
Thuận
Nghịch
1
0
0
1
+DC/
-DC
OFF/OFF
-DC/+DC
V6 &V1
V3 &V4
2
0
0
0
+DC/
-DC
-DC/+DC
OFF/OFF
V1 &V5
V4 &V2
3
1
0
0
OFF/
OFF
-DC/+DC
+DC/ -DC
V5 &V3
V2 &V6
4
1
1
0
-DC
/+DC
OFF/OFF
+DC/ -DC
V3 &V4
V6 &V1
5
1
1
1
-DC/
+DC
+DC/ -DC
OFF/OFF
V4 &V2
V1 &V5
6
0
1
1
OFF/
OFF
+DC/ -DC
-DC/+DC
V2 &V6
V5 &V3
B. 1 Bảng chuyển mạch cho BLDCM
Với T/N: thuận/nghịch, OFF: trạng thái floating, +DC/-DC: nối với dương/âm nguồn, Vi & Vj (i,j = 1..6): cặp
van Vi và Vj dẫn, TT: các trạng thái cảm biến vị trí
H. 12 Cấu trúc thực nghiệm điều khiển động cơ BLDC
Chương trình viết trên phần mềm WinCupl là tập hợp
các dòng lệnh để biểu diễn các phương trình logic.
WinCupl cung cấp nhiều cấu trúc chương trình như :
hàm (FUNC), chương trình con (MACRO), bảng
chọn (TABLE), trạng thái máy (SEQUENSE)... do
vậy làm đơn giản hóa chương trình, tùy vào những bài
toán cụ thể mà ta chọn cấu trúc thích hợp.
Ví dụ phần trích dẫn sau đây là phần đầu của một
chương trình đơn giản:
Name
Revision
Partno
Date
Designer
Company
Location
Assembly
Device
BLDC;
04;
CA0001;
14/10/04;
pld;
HUT;
None;
None;
g16v8as;
/*****************************************
***********************/
/*
* Inputs: define inputs to build simple
gates
*/
Pin 1 = hall_u;
Pin 2 = hall_v;
pin 3 = hall_w;
pin 4 = pwm;
pin 5 = cw;
pin 6 = encoder_A;
pin 7 = encoder_B;
pin 8 = start;
pin 9 = over_cur;
/*
* Outputs: define outputs as active HI
levels
*/
Pin
Pin
Pin
Pin
Pin
pin
pin
12
13
14
15
16
17
18
=
=
=
=
=
=
=
Hệ thực nghiệm được xây dựng cho động cơ
KBL120-AMK (H. 12), mạch điều khiển van
MOSFET (Driver) sử dụng HCPL-316J thu được một
số kết quả như được biểu diễn trên H. 14 và H. 15, H.
14 là tín hiệu điều khiển đặt trên các nhánh van trên:
V1 (kênh 1), V2 (kênh 2) và V3 (kênh 3), mỗi van sẽ
thực hiện dẫn theo tín hiệu điều chế độ rộng xung một
góc 600 điện trước khi chuyển sang van kế tiếp, H. 15
là dạng dòng điện trên một pha của động cơ.
v1;
v4;
v2;
v5;
v3;
v6;
encoder_out;
H. 13 ATF16V8B
Dòng điện trên pha U của động cơ BLDC được đo
thông qua điện trở sun 100 m sau đó được khuếch
đại cách ly sử dụng HCPL-7510. Từ đặc tính dòng
điện pha H. 15 ta thấy rõ rằng mỗi van dẫn 600 điện
và trạng thái chuyển mạch giữa hai van sẽ gây ra đặc
tính nhấp nhô của mô men điện từ động cơ bởi trong
động cơ một chiều không chổi than dòng điện tỷ lệ
tuyến tính với mô men động cơ [4] và đây cũng là
một nhược điểm của động cơ một chiều không chổi
than.
H. 14 Tín hiệu điều khiển trên V1, V2 và V3
H. 15 Dòng điện trên pha U, 5ms/div, 1A/div
3. Kết luận
Trong bài này đã trình bày một số vấn đề về khả năng
của thiết bị logic lập trình được và khả năng ứng dụng
của chúng trong xử lý tín hiệu nói chung và điều
khiển nói riêng. Một ứng dụng đơn giản sử dụng một
PLD phục vụ việc điều khiển động cơ BLDC cho thấy
được sự tiện lợi của các mạch này.
Các kết quả mô phỏng và thực nghiệm được tiến hành
tại Phòng thí nghiệm Tự động hoá – ĐH Bách khoa
Hà nội. Các tác giả rất mong nhận được các ý kiến
đánh giá cũng như chia xẻ kinh nghiệm trong lĩnh vực
này từ phía các bạn đọc.
Tài liệu tham khảo
[1]
[2]
[3]
[4]
[5]
E. Monmasson, Y.A. Chapuis : Contributions of
FPGAs to the Control of Electrical Systems, a
review; IEEE, 2004.
White Paper : Using PLDs for HighPerformance DSP applications; Altera Corp.
Tài liệu từ trang www.altera.com ,
www.atmel.com, www.xilinx.com .
B.K. Bose: Modern power electronic & Drives;
Prentice Hall, 2002.
Ward Brown, : Brushless DC motor made easy;
Microchip Inc; 2002.