Thông báo

Collapse
No announcement yet.

Phát FSK chuẩn V23 bằng PIC 18F452 +DAC 12bit

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Phát FSK chuẩn V23 bằng PIC 18F452 +DAC 12bit

    Đề bài:
    Dùng PIC 18F452 + DAC 12bit. Lập trình phát ra tín hiệu FSK theo chuẩn V23 ( 1200 baud). Dữ liệu phát được nhận từ cổng COM PC.

    Phần thưởng cho lời giải hay là 1 LCD 16x2.
    Mong các cao thủ như BA,F,3T.... giúp nhé
    Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

    Biến tần
    Máy giặt
    Lò vi sóng
    Bếp từ.
    Tủ lạnh.
    Điều hòa


  • #2
    Nguyên văn bởi MinhHa
    Đề bài:
    Dùng PIC 18F452 + DAC 12bit. Lập trình phát ra tín hiệu FSK theo chuẩn V23 ( 1200 baud). Dữ liệu phát được nhận từ cổng COM PC.
    Phần thưởng cho lời giải hay là 1 LCD 16x2.
    Mong các cao thủ như BA,F,3T.... giúp nhé
    Hihi.. đừng nói em là cao thủ nhé, kẻo mọi người hiểu nhầm. Anh nói rõ chuẩn V23 là như thế nào để mọi người còn biết, vì người làm điện tử thì thường quên hết kiến thức viễn thông nếu ko làm về nó(trừ một số anh như anh MinhHa...hihi..).
    À, mà sao phải dùng DAC 12 bit? sao không dùng PWM và thay đổi chu kỳ theo thời gian? ý anh nói dùng DAC để thêm mịn hinh sin à? à, mà cũng ko cần thu, chỉ cần phát thôi? Phần thưởng 1 LCD có vẻ anh MH ki quá nhỉ..hihi...

    Comment


    • #3
      Phần thưởng như vậy thì ki thật!
      Cũ người mới ta!

      Comment


      • #4
        Em giải bài toán theo cách thông thường nhé: Dùng một mảng chứa dạng sóng sin trong Flash.
        -Dùng một ngắt timer1 đặt chế độ ưu tiên nhất để đọc giá trị của mảng sóng sin. Giá trị nạp timer có 2 giá trị ứng vời bit 0 hay 1. Nên chọn DAC12 bit có chân chốt dữ liệu bởi từ uC ko thể out đồng thời 2byte cùng 1 lúc. Timer này chỉ để xuất dạng sin ra dac.
        -Dùng timer2 khác có thời gian bằng thời gian của một bit. Khi có ngắt này thì chỉ cần thay giá trị nạp của Timer1= thời gian của bit 0 hay 1.
        -Kết hợp với một số điều kiện khác để giải chặt chẽ hơn.

        Không hiểu 18F452 có chế độ gì đặc biệt ko, hay anh MH chọn con này vì lý do đó?

        Comment


        • #5
          Chú ý về pha của tín hiệu nhé.Vẫn chưa chuẩn
          Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

          Biến tần
          Máy giặt
          Lò vi sóng
          Bếp từ.
          Tủ lạnh.
          Điều hòa

          Comment


          • #6
            Vì em ko biết rõ về chuẩn V23, vậy ranh giới giữa các bit là hình sin trơn? hay bắt buộc từ phase 0?
            Nếu là hình sin trơn,thì mảng hằng số đó chứa một chu kỳ hình sin: 0..N và nếu đến phần tử thứ N+1 thì gán về 0. Và ko reset quá trình này trong quá trình chuyển bit.
            Mà ko hiểu hướng em đi có đúng ko? nếu sai thì anh thông báo để em tìm cách khác.

            Comment


            • #7
              Chỉ cần lời giải hay thôi hả bác, qmk có đc tham gia kô ???
              Vẫn biết mỗi lần xa là một lần về lại...

              Comment


              • #8
                Hihi... anh qmk định cạnh tranh với em rồi.
                Một giải pháp khác: dùng DAC(VFC) chăng? nếu như vậy dùng pwm+lọc tần thấp tại điện áp điều khiển bộ VFC tạo tần số khác nhau?

                Comment


                • #9
                  Thôi nhường em một ngày...
                  Vẫn biết mỗi lần xa là một lần về lại...

                  Comment


                  • #10
                    Hihi..một đáp án khác:
                    Anh MH bán (PIC18F452+DAC 12 bit) đó, mua cái modem quay số thay thế. Đảm bảo rẻ hơn, nhanh hơn, chất lượng hơn?
                    ...
                    Phải chăng đây là một đáp án hay nhất..hihi...

                    Comment


                    • #11
                      Ranh giới là sin trơn. 1200Hz thì chẵn 1 chu kỳ SIN nhưng 2200Hz thì không chẵn do vậy phải tính toán như thế nào? Vì sau một số bit 0 hay 1 thì sẽ không bắt đầu tại phase 0 nữa mà tại 1 góc phi nào đó. Phải tính được góc phi này rồi.... Các bạn thử tính nhé. Kết quả nếu muốn mô phỏng thì có thể tạo ra 1 mảng sau đó dùng phần mềm cool edit để vẽ lại file này.
                      Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                      Biến tần
                      Máy giặt
                      Lò vi sóng
                      Bếp từ.
                      Tủ lạnh.
                      Điều hòa

                      Comment


                      • #12
                        Cần SIN trơn do đó phải tính góc phase.
                        Đây là 1 dạng tín hiệu DTMF. các ô vuông là các điểm lấy mẫu.
                        Với tần số FSK 1200HZ thì mỗi bít là 1 chu kỳ nhưng 2200Hz thì không chẵn do đó cần tính lại goc phase sau khi phát 1 bit.
                        Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                        Biến tần
                        Máy giặt
                        Lò vi sóng
                        Bếp từ.
                        Tủ lạnh.
                        Điều hòa

                        Comment


                        • #13
                          Ối vậy em đã giải được rồi mà anh. Như ở cách trên ấy. Giả sư dùng 2 timer:T1 và T2.

                          T1 ưu tiên cao nhất chỉ để phát hình sin,T2 thấp hơn chỉ để thay đổi bit và thay đổi thời gian nạpcho T1.
                          Lưu một hinh chu kỳ sin đầy đủ 1200 khz vào 1 mảng hằng số ví dụ:
                          S[N]={....};
                          Ngắt T1 thì chỉ viết
                          {
                          T1=biến_tg_T1;
                          if(++i=N) i=0;
                          Out=S[i];
                          }

                          Ngắt T2 thì:
                          {
                          T2=hằng số;
                          if(bit==1) biến_tg_T1=thời_gian_1 ;
                          else biến_tg_T1=thời_gian_0;
                          }
                          (có phải thời gian truyền bit 0 = thời gian truyền bit 1 ko anh?)

                          Comment


                          • #14
                            Em phải làm sao cho bác MH tâm phục khẩu phục cơ.

                            Hihi, đề nghị bác MH tăng giải thưởng
                            Vẫn biết mỗi lần xa là một lần về lại...

                            Comment


                            • #15
                              Chú ý thời gian lấy mẫu bằng nhau bằng 125 us ( 8KHz)
                              Giả sử phát tần số 1200HZ tại phase 0 khi đó sau khi phát 1 bit = 1 chu kỳ SIN (tốc độ 1200baud) sau đó phát 2200Hz thì vẫn tại phase 0 nhưng sau khi phát xong 2200Hz và phát tần số 1200Hz. Lúc này tần số 1200Hz thì SIN không bắt đầu tại phase 0 nữa.3T chỉ có thể phát như vậy để tạo ra 2 tần số nhưng không có sự ghép trơn giữa 2 tần số. vì tần số 2200Hz = 1.8(3)n 1200Hz.Nếu tần số là 1200Hz và 2400Hz thì không có vấn đề gì cả nhưng ở đây là 2200Hz
                              Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                              Biến tần
                              Máy giặt
                              Lò vi sóng
                              Bếp từ.
                              Tủ lạnh.
                              Điều hòa

                              Comment

                              Về tác giả

                              Collapse

                              MinhHa Tìm hiểu thêm về MinhHa

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X