Sưu tầm giảm nhiễu cho tín hiệu Analog trong vi điều khiển

0
705

Tín hiệu Analog là gì?

Tín hiệu Analog là tín hiệu liên tục, đồ thị biểu diễn tín hiệu Analog là một đường liên tục (ví dụ sin, cos, hoặc đường cong lên xuống bất kỳ).

Analog có nghĩa là tương tự, tức là tín hiệu sẽ tương tự về bản chất, nhưng sẽ khác nhau về cường độ tín hiệu lúc sau so với lúc trước.

Trong nhiều trường hợp, để đảm bảo cảm biến hoạt động ổn định, tin cậy, ta cần một bộ đệm nối giữa tín hiệu analog từ cảm biến với đầu vào ADC của vi điều khiển. Ngoài ra, chúng ta cũng cần cách ly tín hiệu, để đảm bảo cho các thiết bị không can nhiễu với nhau.

Vài thông tin tản mạn trên các Blog

Biên độ tín hiệu nhỏ hay lớn không quan trọng. Quan trọng là năng lượng của tín hiệu đó có bị mạch đo của bạn làm suy hao hay không.
Cần phân biệt tín hiệu nhỏ có năng lượng nhỏ, ví dụ: điện tim, điện não…
Và tín hiệu nhỏ nhưng có năng lượng lớn, ví dụ: Điện áp rơi trên một điện trở shunt đo dòng (chẳng hạn một điện trở shunt 350 micro-Ohm, khi cho 10A chạy qua nó thì điện áp rơi chỉ khảng 3.5mV, nhưng năng lượng của nó rất lớn, để làm nó suy hao 10% bạn phải “ăn” vào mạch đo cỡ 1A thì mới đủ).
Nếu coi tín hiệu đo là một nguồn áp thì năng lượng của tín hiệu liên quan mật thiết với trở kháng ra của nguồn (hay còn gọi là điện trở trong của nguồn – nội trở của nguồn cũng là nó). Điều đó quyết định việc tính toán trở kháng vào của mạch khuếch đại (chuyển đổi chuẩn hóa), hay việc nối tầng giữa các khâu biến đổi. Dựa trên nguyên tắc: Trở kháng vào của khâu sau càng lớn hơn trở kháng ra của khâu trước càng tốt.

  1. Về trở kháng của mạch đo:
    Không biết tín hiệu của bạn “mọc” ở đâu ra nhưng theo kinh nghiệm thiết kế:
    Ngay đầu vào mạch khuếch đại nên dùng mạch khuếch đại thuận (sẽ tận dụng được trở kháng vào của IC khuếch đại thuật toán – thường là vài Giga ôm).
    Tốt hơn nữa, nên dùng khếch đại vi sai, nó sẽ đảm bảo hơn cho việc không làm thất thoát (tổn hao) năng lượng trong tín hiệu đo ban đầu, cũng như ngăn cản các nguồn năng lượng khác gây nhiễu tới tín hiệu đo của bạn.
  2. Về hệ số khuếch đại của mạch:
    Bạn có thể tạo ra hệ số khếch đại hàng tỉ lần mà vẫn đo được chính xác tín hiệu ban đầu, miễn sao tín hiệu đầu ra đừng vượt quá dải cho phép (chính là mấy cái +/-Vcc của IC).
    Tuy nhiên, một IC khuếch đại rẻ tiền (dạng như 741 hay OP07…) đừng nên thiết kế để khâu khuếch đại có hệ số khuếch đại lớn quá (lớn hơn 100 lần) sẽ gây ra điện áp offset lớn ở đầu ra. Nên chia thành nhiều khâu khuếch đại nối tiếp: K=k1k2k3…
  3. Về bài toán của bạn, với tín hiệu cỡ vài mV: Nếu thiết kế tốt bạn hoàn toàn có thể dùng các IC khuếch đại thuật toán thông thường (741, OP07, LM324…) để … ĐO, không vấn đề gì.
  4. Tản mạn một chút:
  • Vật lý cấp 2, cấp 3 cũng đã dạy về Vol-kế, Ampe-kế… và thường thì người ta sẽ coi điện trở của vol-kế là vô cùng lớn, của ampe-kế là vô cùng nhỏ. Ấy là ngụ ý: Khi anh cắm một cái gì đó để quan sát một cái gì đó …. thì đừng làm thay đổi cái “ban đầu” vốn có của nó.
  • Trong chương trình thế giới động vật, ta thấy các nhà nghiên cứu hạn chế việc xuất hiện trong đời sống của các loài vật, các máy quay được đặt ở vị trí kín đáo và được ngụy trang cẩn thận. Không phải là sợ bị hỏng không có tiền mua cái mới … mà là sợ “bọn chúng xấu hổ” mất tự nhiên… lại không dám “ấy”.
  • Trong chuyện “Gái – Trai”, khi yêu, không nên vào bếp, chỉ nên quanh quẩn ở phòng khách… có thể vào buồng… nếu muốn. Nhưng khi muốn cưới làm vợ, nhất định phải vào bếp kiểm tra kỹ lưỡng. Đơn giản phòng khách là nơi có nhiều sự bài trí giả tạo, còn phòng bếp thì không mấy khi được “những cô gái đoảng” quan tâm, sẽ là chỗ phản ánh chân thực nhất về người chủ của nó…

Chốt, chúc bạn đo được những tín hiệu cỡ vài micro-Volt!

Thiết kế mạch Analog Front End (AFE)

Sau khi đã chọn được phương pháp đo dòng dựa trên trở shunt, tiếp theo là thiết kế mạch xử lý tín hiệu nhỏ mà người ta hay gọi là Analog Font End (AFE), tạm dịch là mạch “tiền xử lý”.Theo wiki, AFE được định nghĩa như sau:An analog front-end is a set of analog signal conditioning circuitry that uses sensitive analog amplifiers, often operational amplifiers, filters, and sometimes application-specific integrated circuits for sensors, radio receivers, and other circuits to provide a configurable and flexible electronics functional block, needed to interface a variety of sensors to an, antenna, analog to digital converter or in some cases to a microcontroller.Đối với tôi, đó sẽ là thiết kế mạch khuếch đại, lọc và chuẩn hóa trước khi đưa vào ADC.

  • Bandwidth của tín hiệu
  • Mạch khuếch đại: bao nhiêu tầng, hệ số gain bằng bao nhiêu
  • Mạch Lọc: LFP, BP hay HPF, có cần Anti-alias không, tần số cắt của các bộ lọc
  • Điện áp tham chiếu ADC (vref ảnh hưởng đến biên độ tín hiệu đưa vào ADC)

Tôi sẽ đi qua lần lượt các mục ở trên.

  1. Bandwidth của tín hiệu

Vì kit dùng để đo dòng tiêu thụ của các mạch sensor node như zigbee/nhiệt độ-độ ẩm, hay zigbee-PIR nên bandwidth của tín hiệu chỉ cỡ vài trăm Hz. Tôi chọn BW = 1kHz. Dải giá trị là 1uA đến 20mA, hay xấp xỉ 86dB.Tín hiệu sẽ được lọc bởi các bộ lọc thông thấp để loại bỏ các nhiễu không mong muốn, fc ~ vài kHz (lớn hơn bw của tín hiệu 1 chút)

  1. Mạch khuếch đại: bao nhiêu tầng, hệ số gain bằng bao nhiêu

Do tín hiệu min và max chênh lệch nhau 86dB, hay 20 000 lần, tôi sẽ không sử dụng một tầng khuếch đại duy nhất. Thay vào đó, tôi sẽ dùng nhiều tầng (stage). Tôi đã tính toán và sử dụng 3 tầng như hình dưới

Hệ số gain của mỗi tầng sẽ là 10, 20, 10

  1. Mạch Lọc: LFP, BP hay HPF, có cần Anti-alias không, tần số cắt của các bộ lọc

Tôi sử dụng lọc LFP để loại các tín hiệu ở ngoài dải mong muốn ở đầu vào và sau mỗi tầng khuếch đại. Mỗi noise không được loại bỏ sau mỗi gain stage sẽ ảnh hưởng lớn đến chất lượng tín hiệu. Ngoài ra anti-alias filter được sử dụng ở đầu vào.

  1. Điện áp tham chiếu

Thực ra chưa cần bàn Vref vội.

  • Thiết bị sẽ hoạt động với điện áp ~5V/3.3V, các op-amp có thể hoạt động ở điện áp 3.3V.
  • ADC sẽ là ADC của vi điều khiển. Tôi đang băn khoăn giữa STM32 và Kinetis KLxx. Dòng KInetis của NXP có ADC nội 16 bit, low noise và Vref có thể config. Dòng STM32F1 có ADC 12 bit, vref nội hoặc ngoài. Để tận dụng hết dải của ADC, tôi sẽ lựa chọn Vref 3.3V. Tuy nhiên tôi cũng có thể sử dụng vref ngoài lấy từ TL431 cho ổn định. Chưa quyết được thì tôi sẽ để tất cả các option

Tại sao lại cần bộ đệm cho tín hiệu analog?

Để hiểu được vấn đề này, trước hết, chúng ta cần xem xét vấn đề truyền tải và đọc giá trị tín hiệu ở analog, mà thông thường là đọc điện áp của tín hiệu.

opam.PNG

Theo hình vẽ, chúng ta thấy tín hiệu “V SIGN” xuất phát từ cảm biến, có dạng tín hiệu analog, truyền qua dây dẫn tới bộ đọc ADC của MCU, tại đây, ta thu được điện áp MCU. Chúng ta có thể thấy, điện áp thu được V ADC sẽ luôn nhỏ hơn V SIGN, vì bản thân bộ chuyển đổi ADC luôn tồn tại trở kháng nội. Mặt khác, đối với tín hiệu analog thu được, nó thường có công suất rất bé, hay nói cách khác, dòng tải trên tín hiệu từ cảm biến rất nhỏ. Bởi vậy, tín hiệu sẽ bị hao phí rất lớn nếu trở kháng của bộ ADC thấp. Trong trường hợp trở kháng quá nhỏ, công suất tiêu thụ tại MCU sẽ vượt quá khả năng của cảm biến, khiến mất tín hiệu, hoặc tín hiệu chập chờn, thiếu ổn định (vì cảm biến liên tục bị quá tải). Để giải quyết vấn đề trở kháng thấp, khiến dòng tải lớn vượt quá khả năng cung cấp của cảm  biến, chúng ta có thể tăng trở kháng dây dẫn.

Với một vài công thức tính toán đơn giản, ta có thể thấy: Dòng tiêu thụ sẽ phụ thuộc vào trở kháng dây dẫn và trở kháng nội của bộ đọc ADC. Tổng trở này càng lớn, dòng tiêu thụ càng nhỏ. Điều này đồng nghĩa với việc giảm tải đầu ra cho cảm biến, tránh làm mất, nhiễu tín hiệu analog quý giá từ cảm biến. Vấn đề là, trở kháng dây dẫn càng lớn, điện áp tín hiệu thu được tại bộ ADC sẽ càng nhỏ, nó gây khó khăn lớn cho việc đọc giá trị điện áp tín hiệu. Điện áp càng nhỏ, càng khó đọc. Vậy, chúng ta chỉ có thể thay đổi trở kháng nội của bộ ADC mcu.

Chúng ta gặp một vấn đề, nội trở của MCU là không thể thay đổi. Vì vậy, nếu muốn tăng độ ổn định và tăng chất lượng, ta cần một bộ khuếch đại công suất tín hiệu. Giống như việc sử dụng amply để khuếch đại tín hiệu vậy. Tuy nhiên, đối với các hệ thống đã lắp đặt sẵn, việc khuếch đại tín hiệu sẽ khiến chúng ta phải thay đổi code và nhiều phần khác nữa. Bởi vậy, bộ khuếch đại này phải khuếch đại được công suất của tín hiệu, nhưng không làm thay đổi điện áp và các đặc tính khác của tín hiệu.

Bộ đệm Opamp – Giải pháp cho toàn bộ vấn đề

Chúng ta có thể thấy, sơ đồ bên trên chỉ sử dụng một Opam đơn giản. Vậy, nó có đủ đáp ứng yêu cầu?

Dĩ nhiên rồi, bạn chỉ cần một con Opam có thông số phù hợp với tín hiệu, sau đó đấu nối theo sơ đồ trên, ta sẽ có một mạch khuếch đại có hệ số bằng 1. Hệ số bằng 1 giúp các bạn giữ nguyên được đặc tính của tín hiệu. Tuy nhiên, lợi dụng ưu điểm của Opam, mạch đệm này cho ta đầu vào Vin có trở kháng rất lớn, điều này khiến cho dòng tải tín hiệu nhỏ, tín hiệu ít suy hao. Cùng lúc, chúng ta có đầu ra tín hiệu có trở kháng rất nhỏ, hay nói cách khác, đầu ra Vout giữ nguyên đặc tính của tín hiệu, trong khi công suất tín hiệu tăng lên rất nhiều, khiến suy hao nhỏ, bộ ADC của MCU cũng có được một tín hiệu sạch và rõ ràng, ít nhiễu.

Ứng dụng của bộ đệm Opamp

Trong các thiết bị công nghiệp, bộ đệm được sử dụng để chống nhiễu và giảm tải cho cảm biến. Đồng thời tín hiệu vào thông qua Opam, có trở kháng vào lớn, giảm thiểu thiệt hại cho bo mạch.

Nguồn:

https://obitvn.wordpress.com/

https://anhvanthe.wordpress.com/

LEAVE A REPLY

Please enter your comment!
Please enter your name here