Thông báo

Collapse
No announcement yet.

RFID 125khZ_PIC16F877a

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

  • RFID 125khZ_PIC16F877a

    I. PHẦN CỨNG
    1. Yêu cầu thiết kế
    Thiết kế một hệ thống RFID đơn giản có khả năng:
     Đọc, ghi và hiển thị dữ liệu từ tag RFID.
     Giao tiếp và hiển thị dữ liệu trên máy tính
     Khoảng cách đọc 5 centimet.
     Giá thành vừa phải, thiết kế nhỏ gọn.
     Lưu tag và nhận diện tag đã lưu, nếu đúng tag đã lưu thì tác động relay.
    2. Sơ đồ khối hệ thống

    3. Chọn phương án thiết kế
    3.1. Khối xử lý trung tâm
    Yêu cầu thiết kế: tốc độ cao, nhiều tính năng, giá thành hợp lý, có ngôn ngữ lập trình hỗ trợ người dùng.
    Phương án 1: Họ vi điều khiển 8051
    Phổ biến, giá thành thấp, tốc độ thấp, ít tính năng, khả năng chống nhiễu thấp.
    Ngôn ngữ lập trình: sử dụng ngôn ngữ Assembly, C, Bascom.
    Phương án 2: Vi điều khiển AVR
    Phổ biến, tốc độ cao, giá thành đắt hơn so với họ vi điều khiển 8051.
    Có tích hợp nhiều module ADC, PWM, EEPROM…
    Ngôn ngữ lập trình: Assembly, C,Basom..


    Phương án 3: Vi điều khiển PIC
    Tốc độ cao, giá thành vừa phải so với họ vi điều khiển AVR
    Có tích hợp sẵn ADC, PWM … đồng thời hỗ trợ các chuẩn giao tiếp thông dụng như: UART, I2C.
    Ngôn ngữ lập trình: Assembly, C.
    Chọn vi xử lý PIC vì tốc độ đọc nhanh, giá thành vừa phải, có thể sử dụng ngôn ngữ C dùng phần mềm CCS, trình biên dịch này có hàm hỗ trợ cho việc đọc và ghi RFID, có các hàm để giao tiếp máy tính và hiển thị trên LCD đơn giản.
    3.2. Khối hiển thị
    Yêu cầu thiết kế: nhỏ gọn, hiển thị được các thông tin cần thiết, sử dụng ít năng lượng, giá thành hợp lý.
    Phương án 1: Dùng LED ma trận, điều khiển hiển thị phức tạp, mạch có kích thước lớn, tốn nhiều chân để điều khiển.
    Phương án 2: Dùng LCD việc điều khiển hiển thị dễ dàng hơn, kích thước nhỏ, gọn, ít tốn chân điều khiển, giá thành vừa phải so với led ma trận.
    Chọn phương án sử dụng LCD vì kích thước nhỏ gọn, ngôn ngữ C trong trình biên dịch CCS có hỗ trợ các hàm giúp cho việc hiển thị trên LCD đơn giản.
    3.3. Khối đọc (Reader)
    Yêu cầu thiết kế: có thể đọc dữ liệu từ tag ở khoảng cách gần (nhỏ hơn 10 cm), giá cả hợp lý.
    Phương án 1: dùng chip EM4095 của hãng EM Microelectronic, là loại chip có thể ghi/đọc tag, giá thành thấp, tần số từ 100 đến 150 kHz, khoảng cách đọc gần.
    Phương án 2: dùng chip U2270B của hãng Atmel, là loại chip có thể ghi/đọc, hoạt động ở tần số từ 100 kHz đến 150 kHz, giá thành đắt hơn so với EM4095.
    Chọn chip EM4095 vì giá thành vừa phải, phù hợp với yêu cầu thiết kế.
    3.4. Tag
    Yêu cầu thiết kế: phù hợp với IC Reader, giá thành hợp lý.
    Nếu khối đọc ta chọn chip EM4095 thì khi chọn tag phải chọn tag của cùng một nhà sản xuất.
    Chọn các tag sau:
    + Tag 4120 là tag chỉ đọc giá thành rẻ và phù hợp với chip reader EM4095
    + Tag 4150 là tag đọc/ghi giá thành rẻ và phù hợp với chip reader EM4095


    3.5. Khối giao tiếp máy tính
    Yêu cầu thiết kế: Có khả năng truyền và nhận dữ liệu lên máy tính
    Phương án 1: Giao tiếp theo chuẩn RS485, mạch có kích thước lớn phức tạp trong cách truyền và nhận chương trình
    Phương án 2: Giao tiếp theo chuẩn RS232, mạch có kích thước phù hợp. Đồng thời có khả năng giao tiếp với máy tính và nạp dữ liệu cho vi điều khiển PIC theo hướng bootloader. Tức là truyền nhận dữ liệu và nạp lên vi điều khiển chỉ bằng 2 chân RXD và TXD.
    Chọn cách giao tiếp theo kiểu RS232 đơn giản phù hợp với yêu cầu.
    Last edited by quilong; 05-11-2009, 13:59.

  • #2
    Đề tài này mình đang trong quá trình thực hiện, tuy nhiên đang gặp 1 số khó khăn nhất định
    + Vấn đề đầu tiên là tìm hiểu RFID là gì? Ứng dụng của nó trong thực tế ra sao
    -> Điều này mình đã tìm hiểu tốn khá nhiều thời gian vì tài liệu tiếng việt bên RFID rất ít nên phần lớn là phải đọc và dịch.
    Mình đã tìm hiểu và tìm được link về RFID khá hay
    http://www.priority1design.com.au/rfid_design.html
    + Sau khi tìm hiểu về RFID 125KHZ, là làm sao để thiết kế và ứng dụng của nó ra sao
    -> Cũng trong quá trình tìm hiểu mình biết đựoc rằng trong phần mềm CCS có 1 số hàm hỗ trợ đọc và viết thẻ điển hình ở đây là tag 4102 (read only) và tag 4150(read/write) và chip reader(em4095). Điều này khá là quan trọng để mình quyết định chọn con PIC là vi điều khiển mình sẽ thiết kế.
    + Tiếp tục tìm hiểu, đọc datasheet và tham khảo 1 số tài liệu mình đã thiết kế được phần cứng, tuy nhiên lại không biết nơi đâu để mua linh kiện ở việt nam.
    Vấn đề khó khăn tiếp tục, mình là sinh viên nên khó khăn trong việt đặt mua linh kiện nên đã nhờ thầy hướng dẫn của mình giúp đỡ đặt mua linh kiện. Và địa chỉ mua linh kiện cũng là địa chỉ mà mình tìm hiểu về RFID
    http://www.priority1design.com.au/rfid_design.html
    .......

    Comment


    • #3
      Sau khi đã có đầy đủ những thứ cần có mình đã bắt tay vào thiết kế 1mạch thực tế . Tất cả các module đều tốt tuy nhiên chỉ có 1 khó khăn là vần đề tần số ở đây, mình chưa đo được tần số của nó.
      Quay ngược lại mình đang tìm hiểu xong nguyên nhân tại sao?
      + Thứ nhất, phần cứng thiết kế của mình bị sai?
      + Thứ hai, driver cung cấp trong phần mềm CCS có bị sai hay không?(Cái này hiếm khi xảy ra)
      Mình xin gửi link phần cứng module RFID, mong các bạn kiểm tra xem có bị lỗi gì không? Mong được giúp đỡ từ các sư huynh cao tay

      Comment


      • #4
        #include <16f877a.h>
        #include <def_16f877a.h>
        #fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,PUT
        #include <em4095.c> // Controls the reader IC
        #include <em4102.c> // Allows reading 4102 transponders
        #use delay(clock=20000000)
        #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
        int8 msg[32];

        void main()

        {

        int8 customerCode;
        int32 tagNum;
        rf_init(); // Initialize the RF reader
        rf_powerUp(); // Power up the antenna
        while(1)
        {

        if(read_4102(msg))
        {
        customerCode = msg[0];
        tagNum = make32(msg[1], msg[2], msg[3], msg[4]);
        printf(msg, "Ma khach hang: %u\n\r", customerCode);
        printf(msg, "Ma cua the: %lu\n\n\r", tagNum);
        }
        }
        }
        Và đây là code mình dùng để test tần số

        Comment


        • #5
          Hic. Sau khi kiểm tra và làm lại phần cứng thì mình đã biết được 1 số lỗi sau:
          Phần cứng không chính xác:
          + Cháy chip: EM4095 là chip dán nếu không cẩn thận dễ bị cháy.
          + Tần số không chính xác: có thể cao hơn 150khz hoặc thấp hơn 100khz (em4095: 100khz-> 150khz) -> Tinh chỉnh lại tụ và cuộn dây sao cho tần số thích hợp để hoạt động
          + Bị nhiễu mạch -> vì vậy tốt nhất là nên đi đặt mạch 2 lớp càng tốt (không nên tự làm nếu chưa chắc lắm -> Mình làm lần 2 mà cũng chưa chạy đặt mạch 2 lớp mới hoạt động tốt)

          Comment


          • #6
            A'. có bạn hỏi driver của EM4095 hoạt động tốt không. Thì driver hoạt động rất tốt cho các thẻ tag chip EMxxxx. Nhưng của các tag của hãng chip khác thì mình còn đang trong quá trình làm, chưa nói trước được. Code mình test thành công trên phần cứng của mình:
            #include <16f877a.h>
            #include <def_16f877a.h>
            #fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,PUT
            #include <em4095.c> // Controls the reader IC
            #include <em4102.c> // Allows reading 4102 transponders
            #use delay(clock=20000000)
            #use rs232(baud=9600, xmit=PIN_c6,rcv=PIN_c7)


            int8 msg[32];

            void main()
            {
            int8 customerCode;
            int32 tagNum;
            trisb5=0;

            rf_init(); // Initialize the RF reader
            rf_powerUp(); // Power up the antenna


            while(1) {
            if(read_4102(msg)) {
            customerCode = msg[0];
            tagNum = make32(msg[1], msg[2], msg[3], msg[4]);
            sprintf(msg,"Customer Code: %u\n\r", customerCode);
            puts(msg);
            sprintf(msg, "Tag Number: %lu\n\n\r", tagNum);
            puts(msg);
            rb5=1;
            delay_ms(1000);
            rb5=0;
            }
            }
            }

            Comment


            • #7
              A'. Mà có ai biết chố nào bán tag write EM4150, EM4056,4450,4055,4469 thì giới thiệu cho mình với nghen.

              Comment


              • #8
                Cái này bác Linhnc cũng làm thành công với hệ thống giữ xe tự động rồi. Quảng cáo giùm bác Linhnc lun ^^
                http://www.vatgia.com/raovat/4313/13...e-tu-dong.html

                0988467839

                Comment


                • #9
                  Nguyên văn bởi quilong Xem bài viết
                  Sau khi đã có đầy đủ những thứ cần có mình đã bắt tay vào thiết kế 1mạch thực tế . Tất cả các module đều tốt tuy nhiên chỉ có 1 khó khăn là vần đề tần số ở đây, mình chưa đo được tần số của nó.
                  Quay ngược lại mình đang tìm hiểu xong nguyên nhân tại sao?
                  + Thứ nhất, phần cứng thiết kế của mình bị sai?
                  + Thứ hai, driver cung cấp trong phần mềm CCS có bị sai hay không?(Cái này hiếm khi xảy ra)
                  Mình xin gửi link phần cứng module RFID, mong các bạn kiểm tra xem có bị lỗi gì không? Mong được giúp đỡ từ các sư huynh cao tay
                  bạn quilong ơi ! giúp mình kết nối EM 4095 với PIC 16F8774 với . mình mới bắt đầu làm quen với RFID . cảm ơn bạn hiều

                  Comment


                  • #10
                    Bạn nào đó cho mình hỏi với. Ở mạch trên thì có cần phải có thêm 1 board anten khi hoạt động không?

                    Comment


                    • #11
                      bạn quilong ơi ! giúp mình kết nối EM 4095 với PIC 16F8774 với . mình mới bắt đầu làm quen với RFID . cảm ơn bạn hiều
                      cái này bạn vào trong thư viện của ccs và tìm file em4095.c nói rất rõ về cách nói chân với vi điều khiển

                      Comment


                      • #12
                        Nguyên văn bởi quilong Xem bài viết
                        A'. Mà có ai biết chố nào bán tag write EM4150, EM4056,4450,4055,4469 thì giới thiệu cho mình với nghen.
                        bác long làm xong rồi post lên cho mọi người hehe....cho cả đồ án lên lun đi..

                        Comment


                        • #13
                          Bạn lethanh27 có thể cho mình sơ đồ kết nối chi tiết em4095 và pic16f877a được không? Vì mình không có file em4095.c như bạn nói!

                          Comment


                          • #14
                            bạn quilong có còn trên diễn đàn k vậy? Giúp mình môđum ănten đi,mình hoàn tất hết mọi thứ rùi,nhưng ănten chả biết nên mua dây đồng quấn hay là xài loại cuộn cảm có bán sẵn ???

                            Comment


                            • #15
                              Rfid 4150

                              Ai biet cho ban the 4150 chi minh voi!!!!


                              Thanks
                              |

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X