Thông báo

Collapse
No announcement yet.

CAN(Controller Area Network)

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

  • #46
    Nguyên văn bởi thaithutrang
    Nhưng:
    -RS485 đụng độ cũng ko sao. Ko gây nguy hại đến phần cứng. Ví dụ trên đường truyền, hai thiết bị cùng truyền tại một thời điểm. Về điểm này hai chuẩn mức đều như nhau.
    -Do có kiểu Push-pull,nên 485 sẽ ít nhiễu và được đánh giá cao hơn, khả năng kháng nhiễu cũng cao hơn(cũng như FSK và ASK),bằng chứng: khoảng cách truyền xa hơn.
    -Về điều khiển thì IC driver CAN ko có chân hướng. Phần cứng đơn giản hơn tý tẹo.
    Trong mang RS485 nếu có N điểm và, và có 2 đường output đồng thời thì chuyện gì sẽ xảy ra.
    Tương tự trong mạng CAN... Suy nghĩ về vấn đề này xem.

    Một vấn đề khác biệt nữa là vấn đề protocol. Vì CAN định nghĩa phương pháp CSMA-CD, cái này nên Receiver của nó phải tương thích với protocol. Còn trong mạng RS485 thường áp dụng các giao thức Control Flow kiểu khác như Master - Slave hoặc Token Ring...
    Last edited by qmk; 10-01-2006, 10:29.
    Vẫn biết mỗi lần xa là một lần về lại...

    Comment


    • #47
      Không thể so như FSK với ASK được. So vậy không chính xác. Vì trong sóng ngắn AM dùng truyền xa hơn FM.
      Như đã nói ở trên vấn đề ưu nhược điểm không chỉ xét phần cứng đơn giản hơn một tẹo hay không mà còn xét trên các khía cạnh protocol nữa. Nói chung là không cần so sánh nhiều. Giờ mà tranh luận lại xem Master-Slave, Token Ring với CSMA-CD cái nào tốt hơn... Cái này người ta tranh luận nhiều rồi.
      CAN được phát minh trong công nghiệp ô tô, mà mạng nội bộ một cái xe gì đến 1000m.
      Số node thêm vào của CAN hình như khá lớn. Nhưng lưu lượng mạng thì không lớn lắm.
      Còn RS485 dùng cho điều khiển quá trình. Cho nên vấn đề khoảng cách, tốc độ và nhiễu được quan tâm hơn. Nó còn dính đến lịch sử nữa.

      Giờ theo phương pháp trong appnote em dùng drivers RS485 để thử CAN được rồi. Không cần phải xin xỏ ai nữa (nhưng mà ai cho thì cứ lấy nhé).
      Vẫn biết mỗi lần xa là một lần về lại...

      Comment


      • #48
        Nguyên văn bởi qmk
        Trong mang RS485 nếu có N điểm và, và có 2 đường output đồng thời thì chuyện gì sẽ xảy ra.
        Tương tự trong mạng CAN... Suy nghĩ về vấn đề này xem.
        Vấn đề này cũng dễ hiểu thôi, CAN là "open colecter" và "open emitter" nên phần cứng xung đột ko một mảy may gì cả(Khi >=2 node cùng phát).
        Còn RS485 nếu xung đột(>=2 node cùng phát) thì sẽ làm cho mức tiêu thụ điện tăng cao, gây ít nhiều nhiễu cho thiết bị khác. Nhưng bản thân trong nó có Protect vấn đề này, nên sẽ ko bị hỏng phần cứng của chính nó.

        Có lẽ do phần Protocol như anh nói là nguyên nhân chủ yếu.

        Còn về điêu chế ASK và FSK(cùng 1 tần số) trên dây dẫn thì FSK đi xa hơn. Bởi FSK khi truyền thì luôn được điều chế(luôn push-pull) còn ASK thì khi truyền bit 0 sẽ kiểu thả nổi( gần tương đương với CAN khi truyền mức 0). Bởi vậy em so sánh có một ý nhỏ đó

        Comment


        • #49
          Nếu em có thời gian thì khỏi cần IC support can kiếm đâu cái CAN LIB nhúng trên con bất kỳ xem. Lúc đấy sẽ học được nhiều thứ hơn. Ví dụ như sinh số ngẫu nhiên chẳng hạn.
          Vẫn biết mỗi lần xa là một lần về lại...

          Comment


          • #50
            1.1.1 Một vài vấn đề căn bản về CAN trước khi đi vào ứng dụng thực tế

            1.1.1 Một vài vấn đề căn bản về CAN trước khi đi vào ứng dụng thực tế

            Dữ liệu được gửi đi trong những FRAME được bắt đầu bằng START bit (giống như RS232 data). Định dạng (dưới dạng rút gọn) như trong hình dưới: (data-link protocol)


            (image002.jpg)

            Trong protocol này, bít 1 và bít 0 được thay thế bằng “recessive” (xin mượn từ trong sinh học là “lặn”) và “dominate” (“trội”). (Tại sao có sự thay đổi này thì sẽ được thảo luận sau). Chúng ta sẽ mô tả định dạng CAN dưới dạng định dạng RS232:
            1. Start bit: cả hai (CAN và RS232) đều dùng 1 start bít.
            2. Data: RS232 dùng từ 5 đến 8 bít <> CAN dùng 0 đến 8 byte.
            3. Error: RS232 có thể dùng 1 parity bít <> CAN dùng chuỗi 15 bit CRC
            4. End: RS232 dùng 1 hoặc 2 bít <> CAN dùng 7 (hoặc cộng thêm hơn 3 bít nữa)
            Thêm vào đó:
            5. CAN có số data bít (byte) thay đổi được, được mô tả bằng 4 bít đánh đấu. Data byte theo sau các bít đánh dấu này.
            6. CAN có một IDENTIFIER (bộ nhận dạng) (gồm 11 bít) để cho biết data từ đâu đến.
            7. RTR, IDE và r0 luôn là zero trong data frame, ACK sẽ được giải thích sau.
            8. CAN dùng mã hoá RLL lên đến 5 bít, không bao gồm CRC. RS232 có quá ít bít nên không cần đến điều này. RLL được định nghĩa là: “sau 5 bít có cùng mức logic sẽ chèn vào một bít có mức logic ngược lại (ví dụ: chèn vào 1 bít 0 sau 5 bít 1).

            Bây giờ chúng ta xem xét đến khái niệm “trội - dominant” và “lặn - recessive”. Không như trong RS232 dữ liệu được truyền thông qua một đường dây và đất, CAN sử dụng ngõ ra kéo đẩy chạy trên cáp xoắn. Để gửi 1 bít “trội” cả hai transistor được mở để TX0 xuống 0 và TX1 lên 1. Để gửi một bít “lặn” cả 2 transistor được tắt để TX1 xuống 0 và TX0 lên 1.


            (image004.jpg)

            Có 2 lý do cho cách làm này. Thứ nhất là mạng CAN được Bosch phát triển từ Đức để dùng trong xe vận tải, và hiện nay đã được tiêu chuẩn hoá để sử dụng. Xe vận tải là kẻ thù của tín hiệu truyền thông và cặp cáp xoắn cân bằng sẽ giúp giảm thiểu vấn đề nhiễu. Thêm vào đó CAN không phải là nghi thức truyền thông điểm – điểm như RS232. Nó là một mạng CSMA-CR – “Carrier Sense, Multiple Access, with Collision Resolution”.

            Ngoài 2 nút ở đầu và cuối của cáp còn có (nhiều) những nút nằm dọc theo cáp.


            (image006.jpg)

            Với hệ thống đa nút, một mạng đa truy cập là cần thiết. Khi cả 2 nút không thể truyền dữ liệu cùng lúc thì mỗi nút phải hiểu điều đó (Carrier Sense). Trong trường hợp này, khi một RLL của 5 được dùng, 7 “stop” bít phát ra “no carrier” và việc truyền tin OK.
            Nếu 2 nút bắt đầu cùng lúc thì chuyện gì sẽ sảy ra ? Giả sử 1 nút có ID là 0x340 và nút kia là 0x30E bắt đầu phát đi cùng lúc.
            Khi bít ID thứ 3 được gửi, nút 0x340 gửi 1 bít “lặn” và nút 0x30E gửi một bít “trội”, bít trội sẽ lấn át bít “lặn”. Nút 0x30E không thể biết được chuyện gì đã xảy ra nhưng bộ thu của nút 0x340 sẽ nhận thấy bít trội và biết rằng có một nút khác cũng đang truyền. Do đó nó sẽ ngắt kết nối mạng và cho phép nút kia tiếp tục truyền.


            (image008.jpg)

            Chúng ta có thể nói một nút đang truyền dữ liệu, nhưng nút nào sẽ nhận nó ? Nó đã được nhận hay chưa ? Dữ liệu đã được gửi cả chưa ?
            Có một loại FRAME khác bên cạnh DATA FRAME. Một REMOTE frame giống như DATA frame, ngoại trừ:
            1. Không có data bít được truyền đi.
            2. Bít RTR được truyền lặn.
            3. Số ID của nút phải cung cấp data.


            (image010.jpg)

            Nếu nút 0x340 muốn data từ nút 0x304, nó gửi REMOTE frame với địa chỉ 0x304. Nút 0x304 đáp ứng lại bằng cách gửi DATA frame theo địa chỉ 0x304. Bất cứ một nút khác muốn có dữ liệu từ 0x304 cũng có thể nhận được nó.
            Dữ liệu đã được nhận chưa ? Theo hình ở đầu bài. 2 bít gần cuối là cho ACKnowledge. Nút gửi dữ liệu sẽ gửi cả 2 bít passive. Một nút nhận dữ liệu có thể nhận thấy điều này và biết rằng (ít nhất) có một nút đã nhận thông điệp.

            ------------------------------
            (thanks B.A đã edit dùm )
            Last edited by itek; 11-01-2006, 09:21.

            Comment


            • #51
              Hoan hô Itek viết rất hay !
              Các bạn Trang chưa có kiến thức cơ bản về mạng thì phải ??? bạn thường nhần lẫn giữa các phương pháp điều chế tín hiệu và giao thức.FSK hay ASK là phương pháp mã hóa tín hiệu !!!
              (Bạn nên đọc lại bài viết của bạn Itek)
              Và nên đọc lại sách cơ bản về mạng đi !!!
              Nếu là SV BK HN có quyển Data for comunication rất cơ bản về mạng (Là quyển đầu tiên tôi học về mạng-được thầy giới thiệt đó) ở trên thư viện trường.

              Comment


              • #52
                Nguyên văn bởi vutricongbka
                Hoan hô Itek viết rất hay !
                Các bạn Trang chưa có kiến thức cơ bản về mạng thì phải ??? bạn thường nhần lẫn giữa các phương pháp điều chế tín hiệu và giao thức.FSK hay ASK là phương pháp mã hóa tín hiệu !!!
                (Bạn nên đọc lại bài viết của bạn Itek)
                Và nên đọc lại sách cơ bản về mạng đi !!!
                Nếu là SV BK HN có quyển Data for comunication rất cơ bản về mạng (Là quyển đầu tiên tôi học về mạng-được thầy giới thiệt đó) ở trên thư viện trường.
                Lại thêm một vụ coi thường con gái, bạn đọc kỹ mà cố hiểu cái ý sâu sắc mình nói. Nhất là chỗ FSK và ASK, vì bạn chưa làm nên ko hiểu cái ý mình so sánh:
                FSK------485(luôn có khi truyền).
                ASK------CAN(1 có, 0 thả nổi).
                Còn kiến thức về mạng CN, mình ko biết thì ko nói, chứ ko nói bừa.

                Comment


                • #53
                  xin lỗi nhé !!! Đắc tội !!!hì hì !!!
                  BÀi viết chỉ có mục đích khuyên chị học về giao thức mạng thôi !!!
                  Em đã nói quá lời !!!
                  Last edited by vutricongbka; 10-01-2006, 21:30.

                  Comment


                  • #54
                    Nguyên văn bởi thaithutrang
                    Nhưng:
                    -RS485 đụng độ cũng ko sao. Ko gây nguy hại đến phần cứng. Ví dụ trên đường truyền, hai thiết bị cùng truyền tại một thời điểm. Về điểm này hai chuẩn mức đều như nhau.
                    -Do có kiểu Push-pull,nên 485 sẽ ít nhiễu và được đánh giá cao hơn, khả năng kháng nhiễu cũng cao hơn(cũng như FSK và ASK),bằng chứng: khoảng cách truyền xa hơn.
                    -Về điều khiển thì IC driver CAN ko có chân hướng. Phần cứng đơn giản hơn tý tẹo.
                    Theo anh thì hình như kô phải do 485 có kiểu Push - Pull mà nó ít nhiễu và chạy xa hơn đâu. Cái căn bản giúp nó chạy xa đó là truyền điện áp đối xứng qua 2 dây + cáp đôi dây xoắn đó chứ nhỉ? Phải kô em.
                    Còn một vấn đề nữa, cái 485 Driver chỉ kích thích một mức thôi, (tương ứng mức phát) còn khi nó ở chế độ thu thì nó thả nổi 2 dây truyền thông A-B đó chứ. Có phải kô nào?
                    AFH

                    Comment


                    • #55
                      Mở đầu một vụ tranh luận mới đây.

                      Ai cũng đúng nhưng ai mới đúng ???
                      Vẫn biết mỗi lần xa là một lần về lại...

                      Comment


                      • #56
                        Đại ca qmk lại thế rồi !!!
                        Em đâu dám thế hì hì !!! chẳng qua là đạo hạnh chưa đủ để hiểu hết được những điều sâu xa mà chị ấy nói thôi !
                        Anh qmk có mạch nạp cho mấy con PLD hoặc CPLD thì cho em với !!!
                        nhớ cho em cả phần mềm nữa đấy !!!

                        Comment


                        • #57
                          Hi hi...từng câu từng câu một, câu 2 dễ trình bày hơn trả lời trước.
                          Nguyên văn bởi AFH
                          Còn một vấn đề nữa, cái 485 Driver chỉ kích thích một mức thôi, (tương ứng mức phát) còn khi nó ở chế độ thu thì nó thả nổi 2 dây truyền thông A-B đó chứ. Có phải kô nào?
                          AFH
                          Hai dây A-B ko bao giờ người ta thả nổi cả, trừ amater.
                          Phần cứng người ta có trở định thiên(chân A nối với R lên Vcc,chân B nối với R xuống GND). R thường khoảng 1K. Bởi thế ngay cả trên bus ko ai truyền thì một mức nhất định được giữ (A>B), để bắt đầu truyền(có bit start(A<B),thì các node thu đều phát hiện được). Cái này ko phải tài liệu nào cũng nói.
                          Khi nó ở chế độ thu ý anh nói là một node nào đó à? trên bus thường có một thiết bị phát và N thiết bị thu nên đường dây thường có tải.Nếu ở các khe thời gian, sẽ có thời điểm tất cả đều ko phát(cuối frame) thường là ở các khoảng timer out, thì đường dây trở về mức vốn có và xác định của nó (A>B)
                          để chờ.
                          Chú ý: các khái niệm A>B,A<B đều theo kiểu trigơsmitt.

                          Comment


                          • #58
                            Nguyên văn bởi thaithutrang
                            Hi hi...từng câu từng câu một, câu 2 dễ trình bày hơn trả lời trước.

                            Hai dây A-B ko bao giờ người ta thả nổi cả, trừ amater.
                            Phần cứng người ta có trở định thiên(chân A nối với R lên Vcc,chân B nối với R xuống GND). R thường khoảng 1K. Bởi thế ngay cả trên bus ko ai truyền thì một mức nhất định được giữ (A>B), để bắt đầu truyền(có bit start(A<B),thì các node thu đều phát hiện được). Cái này ko phải tài liệu nào cũng nói.
                            Khi nó ở chế độ thu ý anh nói là một node nào đó à? trên bus thường có một thiết bị phát và N thiết bị thu nên đường dây thường có tải.Nếu ở các khe thời gian, sẽ có thời điểm tất cả đều ko phát(cuối frame) thường là ở các khoảng timer out, thì đường dây trở về mức vốn có và xác định của nó (A>B)
                            để chờ.
                            Chú ý: các khái niệm A>B,A<B đều theo kiểu trigơsmitt.
                            Oái, vậy thì cái 485 Driver nào cũng phải có trở định thiên à? Hồi trước giờ anh phải tự nối đó, đâu có thấy nó nằm sẵn trong 485 Driver đâu? Có phải mỗi một 485 Driver thì có một cặp trở định thiên như em nói kô nhỉ?
                            À, hồi xưa học anh có nhớ là được học mấy loại Trigơ Smith, giờ kô biết em nói đến loại nào? Tại anh bị mất sách điện tử số rồi. Khổ thân anh quá.
                            AFH

                            Comment


                            • #59
                              Nguyên văn bởi AFH
                              Theo anh thì hình như kô phải do 485 có kiểu Push - Pull mà nó ít nhiễu và chạy xa hơn đâu. Cái căn bản giúp nó chạy xa đó là truyền điện áp đối xứng qua 2 dây + cáp đôi dây xoắn đó chứ nhỉ? Phải kô em.AFH
                              Cái cơ bản áp đối xứng+ cáp đôi xoắn thì là cơ bản, ta ko nói.
                              Còn Push-pull - chuẩn hóa cách gọi:kháng nhiễu cao hơn,suy hao ít hơn-->truyền xa hơn so với chỉ Push hoặc chỉ Pull.

                              Hãy tưởng tượng, nếu truyền một tín hiệu bán sin và sin đầy đủ--> cái nào tốt hơn.

                              Comment


                              • #60
                                Nguyên văn bởi AFH
                                Oái, vậy thì cái 485 Driver nào cũng phải có trở định thiên à? Hồi trước giờ anh phải tự nối đó, đâu có thấy nó nằm sẵn trong 485 Driver đâu? Có phải mỗi một 485 Driver thì có một cặp trở định thiên như em nói kô nhỉ?
                                À, hồi xưa học anh có nhớ là được học mấy loại Trigơ Smith, giờ kô biết em nói đến loại nào? Tại anh bị mất sách điện tử số rồi. Khổ thân anh quá.
                                AFH
                                Tất nhiên phải tự nối ở ngoài, anh định chối quanh à?
                                Đừng bẫy em, ko phải mỗi 1 driver cần một cặp trở định thiên
                                Về Trigơ Smith 485 để kháng nhiễu và tăng độ tin cậy. Cái này anh xem ở datasheet các con driver như max485/ds75176 sẽ rõ chứ ko cần xem lại sách.
                                (Gợi ý: Vì khi A xấp xỉ bằng B và thăng giáng nhỏ ở đó sẽ gây ra sai mức)

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • nhathung1101
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi nhathung1101
                                  Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                                  Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                                  Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                                  Hôm qua, 22:18
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                  Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                  Hôm qua, 14:51
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                  Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                  Hôm qua, 14:39
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                  Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                  Hôm qua, 14:28
                                • bqviet
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi bqviet
                                  Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                  21-02-2025, 20:26
                                • mèomướp
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi mèomướp
                                  Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                  21-02-2025, 12:32
                                • vi van pham
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi vi van pham
                                  Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                  Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                  20-02-2025, 21:31
                                • bqviet
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi bqviet
                                  Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                  20-02-2025, 17:22
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                                  Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                                  20-02-2025, 11:52
                                • vi van pham
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi vi van pham
                                  Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?

                                  Cái khó bó cái...
                                  19-02-2025, 23:05
                                Đang tải...
                                X