Thông báo

Collapse
No announcement yet.

hỏi về rs485

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

  • hỏi về rs485

    mình muốn làm một mạch truyền thông giữa cá vdk qua rs485 nhưng không hiểu các vdk này có phải chung nguồn hay không.cáp rs485 có mấy sợi và có thể mua ở đâu vậy.rấ mong các bác giúp đỡ. thank

  • #2
    Kiểu truyền dữ liệu Rs485 la dạng vi sai (diferential) cho nên ko cần thiết dùng chung 1 nguồn, cho nên chỉ cần 2 dây vi sai (+ va -). Nếu bạn muốn thiết kế 1 nguồn chung dùng cho tất cả các thiết bi trên đường truyến thì vẫn được. Khi đó cable loai co 4 sợi (Vcc,GND, RS+, RS-), nên dùng loại có bọc shield. RS485 co thể truyền xa theo lý thuyết la 1-2km. Ngoài ra, bạn phải lưu ý nếu đường truyền quá dài (100 200m trở lên) phải chọn cable dẫn điện tốt,có trờ kháng thấp (<10 Ohm) thi càng tốt (thử kiểm tra bằng cách dùng multimeter đo trở kháng 2 đầu dây)
    Thân mến

    Comment


    • #3
      cám ơn bạn nhiều.mình sử dụng con max485 nhưng không hiểu tại sao nó chỉ truyền nhận được theo một chiều .bạn có thể cho mình mạch đơn giản là giao tiếp giữa 2 vdk dùng max485 được không

      Comment


      • #4
        Nguyên văn bởi qkhanh Xem bài viết
        cám ơn bạn nhiều.mình sử dụng con max485 nhưng không hiểu tại sao nó chỉ truyền nhận được theo một chiều .bạn có thể cho mình mạch đơn giản là giao tiếp giữa 2 vdk dùng max485 được không

        Bạn xem ví dụ thiết kế phần RS485 cho 1 phia vi xu ly, nếu phía bên kia cũng là VXL thì cũng thiết kế như vậy.
        Signal: RX nhận dữ liệu, TX truyển dữ liệu, DE la tín hiệu cho phép: 0 nhận, 1: truyền.

        Differential signal RS+, RS- la tín hiệu truyền đi


        Thân chào
        Attached Files

        Comment


        • #5
          đây là vd mình viết thử truyền nhận giữa 2 vdk 89c2051 và mô phỏng trên proteus nếu khồng dùng max485 thì có thể truyền nhân song công cả 2 chiều nhưng nếu có max485 thì chỉ được một chiều thôi còn nếu cho truyền nhận cả 2 chiều thì......các bác tham khảo mạch mô phỏng nha
          Attached Files

          Comment


          • #6
            Đã hiểu ý bạn. MAX485 chỉ truyền dữ liệu bán công (half duplex) vì chỉ có 1 cặp vi sai. Muốn truyền full-duplex thì bạn phai sử dụng MAX488, MAX489, MAX490, MAX491... có 2 cặp vi sai, có thể truyền nhận cùng lúc. Nếu ờ VN ko tìm được loại IC này thì có cách đơn giản là bạn dùng 2 con 485, 1 con nhận, 1 con phát.
            Bạn mau thành công nhé

            Comment


            • #7
              mình hiểu rồi cảm ơn bạn nhiều

              nhưng có lẽ mình hiểu sai rồi vì nó vần không chạy ai đó cho mình biết tại sao được không
              Last edited by nsp; 05-05-2009, 16:54.

              Comment


              • #8
                bạn thử cho mình biết sơ đồ giải thuật hoặc đoạn code bạn đã viết để xem thế nào, bạn chuyển sơ đồ mạch thành pdf dùm vì mình ko xài phần mềm giống bạn

                Comment


                • #9
                  mình đã xem lại rồi vd của mình là truyền bán song công chứ không phải truyền song công
                  nội dung rất đơn giản thôi mình cho vddk chủ gửi 01h đến vdk tớ rồi dợi cho vdk tớ giửi mã trở lại
                  vdk tớ nhận dược mã này thì gửi trở lại vdk chủ đồng thới xuất ra cổng p1 lúc này có 1 led nối với p1.1 sáng
                  vdk chủ nhận được mã này thì xuất ra cổng p1 lúc này có 1 led nối với cahhn p1.1(bên phía vdk chủ) sáng
                  vdk chủ lại gửi mã dữ liệu thứ 2 là 02h đến vdk tớ

                  quá trình tiếp tục như vậy và lặp lại
                  chỉ đơn giản vậy thôi mà sao không được bạn xem giúp mình với

                  Comment


                  • #10
                    bạn phải test từng giai đoạn một chứ ko nên viết xong toàn bộ rồi test thì ko biết lỗi xuất phát từ đâu. Trước tiên bạn thử truyền 1 byte dử liệu từ Master sang Slave xem có nhận chính xac ko. Nếu OK rồi thi bạn viết thêm code bên Slave truyền dữ liệu phản hồi lại. Làm từng giai đoạn với các giá trị cụ thể, để dễ kiểm tra lổi xuất phát ở giai đoan nào, dần dần thì phát triển thành chương trình tổng quát

                    Comment


                    • #11
                      mình đã xem lại rồi vd của mình là truyền bán song công chứ không phải truyền song công
                      Bạn thử kiểm tra lại phần cứng sử dụng max485. Cách điều khiển con max485, phần cứng không đúng thì không thể truyền được.

                      Bạn có thể post sơ đồ nguyên lý lên để mọi người kiểm tra cho!
                      ----------------------
                      Bể học là mênh mông!

                      Comment


                      • #12
                        mình dã post rồi mà mình dùng proteus để mô phỏng nhưng rất tiếc không mô phỏng từng lệnh được
                        đây chỉ là chương trình mình viết thử rất đơn giản thôi
                        Attached Files

                        Comment


                        • #13
                          Bạn chưa hiểi ý mình rồi, mình đâu có kêu bạn mô phỏng từng lênh trong chương trình mà mình chỉ nói là muốn phát triển chương trình bạn phải khai triển dần dần từ cái đơn giản nhất. Vi dụ thế này mình cho bạn bài tập sau, bạn bắt đầu làm lại từ đầu , ko liên quan gì tới chương trình của bạn.

                          1. viết chương trình truyền ký tự 'A' từ master sang slave--> kiểm tra nếu OK thi làm bài tập 2.
                          2. viết chương trình truyền ký tự 'B' từ slave sang master--> kiểm tra nếu OK thi làm bài tập 3.
                          3. Nếu bài tập 1&2 hoàn tất nghĩa là phần cứng của bạn đã OK rồi. BT 3: Viet chuong trình truyền giá trị "0x01" từ master sang slave rồii xuất ra led ở slave...
                          4.....giồng bài tập 3 nhưng thêm sau khi xuất led thì bên Slave gửi giá tri phản hồi "0x02" về master....
                          ....Go on....Ban triên khai tiếp nhé

                          Đó là ý kiến của mình

                          Comment


                          • #14
                            cái này mình đã nói rồi mà mình thục hiện truyền cả 2 chiều riêng rẽ tức la chỉ truyền hoặc chỉ nhận thi được

                            Comment


                            • #15
                              vấn đề nằm ở chỗ này: nếu thay đổi giá trị của chân DE thì giá trị nhận được bị thay đổi. hay nói cách khác tín hiệu nhận được bị nhiễu bởi chân DE. vì thế nếu truyền một chiều( DE ko thay đổi) thì truyền đúng. còn khi truyền 2 chiều( cần thay đổi giá trị chân DE) --> tín hiệu nhận bị sai lệch.
                              ai có giải pháp không????/
                              |

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X