Thứ Tư, 24 tháng 10, 2007

Sơ lược về Vòng khoá pha (Phase-locked loop)

PLL ( Phase-locked loop ) là một hệ thống hồi tiếp gồm có một dò pha (Phase detector ), bộ lọc thông thấp ( LPF: Low-pass filter), bộ khuếch đại và mạch dao động thế kiểm ( VCO: Voltage-controlled oscillator ) trong một số mạch PLL thì bộ VCO có thể được thay thế bằng bộ CCO (Current-controlled oscillator).

Sơ đồ khối

Mạch dò pha (Phase detector):

Bộ này có nhiệm vụ cho ra một tín hiệu phụ thuộc vào hiệu pha ( hiệu tần số) của hai tín hiệu vào, thường là tín hiệu hình Sin hoặc dãy xung chữ nhật hay nói cách khác là so sánh fin và fout của VCO để cho ra điện thế DC tỉ lệ thuận với độ sai pha giữa hai tần số. Có hai loại dò pha:

+ Dò pha tuyến tính: thường được thực hiện bởi mạch nhân tương tự. Tín hiệu ra tỷ lệ với biên độ tín hiệu vào. + Dò pha phi tuyến (dò pha số ): được thực hiện bởi các mạch số (AND,OR,XOR,EXOR… ). Tín hiệu vào của nó là dãy xung chữ nhật. Tín hiệu ra không phụ thuộc vào biên độ tín hiệu vào.

- Mạch lọc thông thấp: dùng để lấy tín hiệu tần số thấp, lấy ra điện thế DC. Trong hệ thống PLL, người ta thường dùng các bộ lọc thấp qua bậc một để bảo đảm tính ổn định cho hệ thống. - Mạch khuếch đại: Để khuếch đại tín hiệu trên đường truyền. - Mạch VCO: Để phát ra tần số tỷ lệ với điện thế ngỏ vào. Đây là một khối quan trọng nhất trong PLL vì nó quyết định độ ổn định tần số, các đặc trưng giải điều chế tín hiệu, điều tần (FM).

Các khái niệm cơ bản trong PLL

* Dải bắt (capture range) : Là dải tần số mà tín hiệu vào ban đầu phải lọt vào để PLL có thể thiết lập chế độ đồng bộ (khoá). Nói cách khác đó là dải tần số mà PLL có thể đạt được sự khoá pha khi việc khoá pha chưa thực hiện. * Dải khoá (the lock range) : Là khoảng tần số lân cận fN của VCO mà PLL đồng nhất được tần số fO với tần số fi. Dải này còn được gọi là dải đồng chỉnh (Tracking range).

Dải bắt và dải khóa

Nguyên lý hoạt động của PLL

Thực chất PLL hoạt động theo nguyên tắc vòng điều khiển mà đại lượng vào và ra là tần số và chúng được so sánh với nhau về pha. Vòng điều khiển pha có nhiệm vụ phát hiện và điều chỉnh những sai sót về tần số giữa tín hiệu vào và tín hiệu ra, nghĩa là PLL là cho tần số ra fO của tín hiệu so sánh bám theo tần số vào fi của tín hiệu vào.

Khi không có tín hiệu lối vào Vi, điện áp lối ra bộ khuếch đại Vout = 0, bộ dao động VCO hoạt động ở tần số tự nhiên fN (được cài đặt bởi điện trở và tụ điện bên ngoài ).

Dò pha số bằng cổng EXOR

Việc sử dụng cổng EXOR so pha có hai điểm lợi là độ lợi toàn giai cao so với các cổng khác và xung ngõ ra có tần số gấp đôi bất chấp tần số ngõ vào.

Dạng sóng của bộ so pha bằng cổng EXOR như sau:

Khi thực hiện so pha bằng cổng EXOR ta có điện thế ngõ ra trung bình của bộ so pha phụ thuộc vào độ sai biệt pha như sau:

Mạch đếm xung dùng vi điều khiển PIC

Ngày nay các bộ đếm đã trở nên thông dụng và có thể tìm thấy ở nhiều nơi trong thế giới xung quanh ta như: bộ đếm người đến thăm bảo tàng hoặc nhà hát, bộ đếm trong thi đấu thể thao. Trong công nghiệp, cũng có rất nhiều dây chuyền sản xuất cần đến các bộ đếm. Thực tế cho thấy không chỉ có các đại lượng vật lý được đo đếm mà đôi khi là cả xung tín hiệu hoặc lượng thông tin.

Một bộ đếm xung có thể được chia ra thành ba phần hoặc ba khối. Khối thứ nhất là nguồn xung. Khối thứ hai là một linh kiện đếm, thực hiện chức năng đếm, lưu trữ trạng thái và đưa ra kết quả. Cuối cùng, khối thứ ba đóng vai trò biến đổi các trạng thái điện thành trạng thái có thể quan sát được, mà thường là các bộ hiển thị quang học.

Cho đến nay thì những bộ đếm 7490 đã bị loại trừ khỏi các ứng dụng vì các bộ đếm dùng vi điều khiển có nhiều ưu điểm hơn hẳn. Dưới đây xin giới thiệu với các bạn đọc quan tâm đến vi điều khiển một bộ đếm dùng vi điều khiển PIC của công ty Microchip (Hoa Kỳ).

Xung đưa đến lối vào bộ đếm là các xung có mức lôgic TTL (0V, +5V). Tỷ số giữa thời gian có xung và thời gian trống xung không có vai trò quan trọng, nhưng điều quan trọng là độ trống hoặc độ rộng của xung không được nhỏ hơn 50 s.

Dãy các xung được đưa đến lối vào của vi điều khiển, còn bên trong là bộ nhớ cùng với chương trình điều khiển LED 7 thanh được viết (xem chương trình dưới đây) và nạp vào vi điều khiển PIC 16F84 (của Microchip).

Sườn tăng của xung lối vào sẽ kích hoạt ngắt trong khi một bộ đếm hàng “một” ở bên trong vi điều khiển đếm tăng thêm 1. Đồng thời, bộ xử lý kiểm tra xem giá trị trên thanh ghi “một” đã đạt giá trị 10 chưa. Nếu rồi thì lập tức thanh ghi “một” bị reset (chuyển về giá trị bằng 0) và thanh ghi hàng “mười” sẽ tăng thêm 1. Nếu giá trị trên thanh ghi “mười” đạt đến giá trị 10 thì lại bị reset và bộ đếm lại bắt đầu đến từ đầu (thủ tục kế tiếp).

Khi chạy chương trình chính dưới đây, các giá trị từ 0 đến 9 được hiển thị trên một bộ hiển thị dùng LED 7 thanh với catốt chung. Hai số này được quét động theo cách là PORTB được dùng để đưa dữ liệu về số (ma 7 thanh) cần hiển thị còn PORTA được sử dụng để cho LED nào sáng.

Các LED hiển thị 7 thanh được nối song song với nhau theo cách các catốt đều được nối với nhau, hay như thường nói là catốt chung. Mười catốt (C1) được nối qua một tranzito đến chân số 18 và catốt C2 được nối với chân 17. Trong một khoảng thời gian ngắn vi điều khiển PIC cho phép một LED sáng trong khi lại làm tắt các LED kia. Quá trình đó cứ thay đổi lần lượt làm cho người dùng có cảm giác là các LED đã sáng đồng thời. Nếu giảm tần số quét động thì độ sáng sẽ giảm đi thậm chí có thể làm cho các LED bị sáng bập bùng.

Xung đồng hồ để giữ nhịp cho hoạt động của vi điều khiển PIC được lấy từ bộ dao động thạch anh có tần số tương đối cao (1 MHz). Trong một số trường hợp ta có thể sử dụng bộ dao động RC, nhưng tần số sẽ giảm đi nhiều.

Các tranzito cần được lựa chọn để đưa vào mạch vì mỗi lối ra của vi điều khiển PIC chỉ có thể chịu được dòng điện đến 25 mA, trong khi các thanh của LED có thể tiêu thụ dòng điện đến 30 mA (hoặc hơn thế nữa tuỳ theo kích thước) và trong trường hợp xấu nhất, khi mà cả 7 thanh đều sáng, dòng điện tiêu thụ có thể đến 210 mA. Cường độ dòng trong trường hợp này sẽ làm hỏng lập tức lối ra của vi điều khiển PIC. Tranzito được sử dụng như một tầng đệm và được điều khiển bởi dòng lối ra từ vi điều khiển PIC, đồng thời cho phép nhận được cường độ dòng điện lớn hơn để cung cấp cho bộ hiển thị, những loại thường được dùng là tranzito BC182 hoặc 2N2222.

Để reset (đặt lại) ta chỉ việc nối chân số 4 của vi điều khiển PIC với đất. Khi đó chương trình sẽ khởi động từ địa chỉ 0 (org 0). Giải pháp này cho phép ta reset bộ đếm ngay cả trong trường hợp sử dụng bộ hiển thị với nhiều LED hơn, chẳng hạn bốn LED.

Để làm dừng bộ đếm ta chỉ việc “ngắt” đường dẫn lối vào cấp xung cho vi điều khiển PIC. Việc sử dụng một chân riêng biệt để làm dừng bộ đếm sẽ làm mạch điện phức tạp thêm. Sau đây là một thí dụ về một chương trình được viết ra và nạp vào vi điều khiển PIC.

Bên cạnh các số 0 - 9 ta cũng có thể sửa đổi hoặc bổ sung số dòng lệnh vào chương trình để làm cho LED hiển thị một số chữ cái như: A, C, E, F, H, J, L, N, P và U.

Cấu trúc linh kiện CPLD họ FLEX10K

FLEX10K là họ linh kiện CPLD (complex programmable logic devices) với 10,000 đến 250,000 cổng. Linh kiện FLEX được cấu hình bởi chương trình nạp sẵn trong SRAM. Khi sử dụng SRAM, cấu hình sẽ không bị mất bất cứ khi nào tắt nguồn

Đặc tính

Cấu trúc

Cấu trúc của FLEX10K gồm có: + Embedded Array Blocks (EABs) + Logic Array Blocks (LABs) + I/O Element (IOE)

Embedded Array Block (EAB)

FLEX10K bao gồm các EAB (Embedded Array Block). Mỗi EAB gồm có 2048 bit, có thể tạo RAM, FOM, FIFO hoặc các chức năng logic tổng quát. Mỗi EAB gồm 100-600 cổng, có thể dùng độc lập hoặc kết hợp lại với nhau. Các EAB khi là RAM có thể là 256x8, 512x4, 1024x2, 2048x1. Ứng dụng của các EAB là tạo bộ nhớ, các bộ vi xử lý, vi điều khiển, lọc số . . .

Logic Array Block (LAB)

Các mảng Logic gồm các LAB, mỗi LAB gồm 8 LE và một đường kết nối cục bộ.

Mỗi LE gồm 1 LUT (Look-up Table) 4 ngõ vào, 1 FlipFlop lập trình được và các đường để dành để ghép nối. Các Interconnection theo hàng và cột, nối các LAB với nhau.

Phần tử logic (LE: Logic Element) của FLEX10K

Cấu tạo bảng dò tìm (LUT)

I/O Element (IOE)

Các IOE (I/O Element) chứa các I/O pin. Mỗi IOE gồm 1 bộ đệm 2 chiều và 1 FlipFlop có thể là ngõ vào/ra 2 chiều hoặc thanh ghi vào/ra.