Thông báo

Collapse
No announcement yet.

thắc mắc khi bắt đầu thiết kế uart

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

  • thắc mắc khi bắt đầu thiết kế uart

    các anh đi trước cho em hỏi ty:
    - em đang bắt đầu làm bộ uart trong sách của Pong_p_chu, đến đoạn thì ông ấy đưa ra một giải thuật có một ý tưởng là một bộ đếm 163(cái này tính toán dựa trên baud và clock của hệ thống), cái bộ đếm này họ sẽ ước chừng điểm giữa của mỗi bít ??? để lấy mẫu và ước chừng vì bộ nhận ko có bít giá trị thời gian của bít start

    -giải thuật:

    - Đợi đến khi tín hiệu đến là 0, bắt đầu cả bit start, và rồi bắt đầu bộ đếm sampling tick
    - Khi bộ đếm đến 7 thì tín hiệu đến đạt đến điểm giữa của bit start. Xóa bộ đếm về 0 và bắt đầu lại.
    - Khi bộ đếm đến 15 thì tín hiệu đến xử lý cho 1 bit và đến giữa của bít dữ liệu đầu tiên. Lấy giá trị của nó, dịch nó vào một thanh ghi là khởi tạo lại bộ đếm
    - Lặp lại b3 N-1 lần để lấy những bít dữ liệu còn lại.
    - Nếu bit parity được dùng thì lặp lại b3 để lấy bit parity
    - Lặp lại b3 M lần để nhận bít stop
    em cũng chưa rõ lắm cái giải thuật này, sao mà khi bộ đếm đếm đến thì lại ước chừng đến điểm giửa của bit start và khi đến 15 thì bít là bit dữ liệu đầu tiên. Em chưa hiểu lắm, anh nào trong 4rum rảnh chỉ em với

  • #2
    Nguyên văn bởi hungtrinh36 Xem bài viết
    các anh đi trước cho em hỏi ty:
    - em đang bắt đầu làm bộ uart trong sách của Pong_p_chu, đến đoạn thì ông ấy đưa ra một giải thuật có một ý tưởng là một bộ đếm 163(cái này tính toán dựa trên baud và clock của hệ thống), cái bộ đếm này họ sẽ ước chừng điểm giữa của mỗi bít ??? để lấy mẫu và ước chừng vì bộ nhận ko có bít giá trị thời gian của bít start

    -giải thuật:

    - Đợi đến khi tín hiệu đến là 0, bắt đầu cả bit start, và rồi bắt đầu bộ đếm sampling tick
    - Khi bộ đếm đến 7 thì tín hiệu đến đạt đến điểm giữa của bit start. Xóa bộ đếm về 0 và bắt đầu lại.
    - Khi bộ đếm đến 15 thì tín hiệu đến xử lý cho 1 bit và đến giữa của bít dữ liệu đầu tiên. Lấy giá trị của nó, dịch nó vào một thanh ghi là khởi tạo lại bộ đếm
    - Lặp lại b3 N-1 lần để lấy những bít dữ liệu còn lại.
    - Nếu bit parity được dùng thì lặp lại b3 để lấy bit parity
    - Lặp lại b3 M lần để nhận bít stop
    em cũng chưa rõ lắm cái giải thuật này, sao mà khi bộ đếm đếm đến thì lại ước chừng đến điểm giửa của bit start và khi đến 15 thì bít là bit dữ liệu đầu tiên. Em chưa hiểu lắm, anh nào trong 4rum rảnh chỉ em với
    Bạn xem mối tương quan giũa clock lấy mẫu và baudrate.
    Baudrate = 9600 --> thời gian của 1 bit = 1/9600 ~ 104 us
    Trong thời gian này bộ đếm của bạn chay bao nhiêu bươc
    Nếu clock của bạn là 1 us thì điểm giũa của start bit là khi bộ đếm = 52, điểm giữa của bit tiếp theo là 104+52 = 156 ...
    Nếu bạn reset lai counter sau khi lấy mẫu thì bạn lấy mẫu mỗi khi bộ đếm = 104

    Comment


    • #3
      thanks mod jefflieu em đã hiểu phần nào uart rồi, giờ em thắc mắc thế này. Em muốn dùng một bộ uart to spi em dùng cổng com trên spartan 3e kit nhận data từ máy tính rồi làm một core spi, em có đọc tài liệu này mà cũng chưa hiểu mấy anh cho em cái ý tưởng với
      Attached Files

      Comment


      • #4
        Bạn đọc thêm đi .... mình cũng không hiểu, dài quá lười đọc
        Bạn cần hiểu về SPI trước ... hiểu làm thế nào để truyền và nhận 1 byte bằng SPI
        Sau đó bạn cần kết nối 2 cái core này lại:
        - Khi UART nhận 1 byte, sẽ signal cho SPI xuất 1 byte ra ngoài
        - Khi SPI nhận 1 byte, sẽ signal cho UART truyền trả lại host 1 byte.

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X