Thông báo

Collapse
No announcement yet.

Serial Port - lập trình giao tiếp nối tiếp

Collapse
This topic is closed.
X
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #61
    để đơn giản thì ta nên theo ta- có nghĩa nghĩ sao làm vậy cho được việc cái đã. Còn nếu làm có quy củ hoặc giao tiếp điều khiển với thiết bị của tây thì ta phải làm theo chuẩn. Có rất nhiều chuẩn, mỗi chuẩn có quy định cấu trúc khung truyền tin riêng - frame. cho 1 ví dụ chuẩn hay dùng - IEC 62056-21. 1 khung truyền tin bao gồm: cờ đầu khung, địa chỉ thiết bị, chức năng gói tin, chiều dài dữ liệu,các byte dữ liệu, byte kiểm tra CS, cờ cuối khung. đây là 1 chuẩn rất phổ biến, mà nên làm theo chuẩn thì mới chuyên nghiệp được.
    Last edited by hoctro89xxx; 14-08-2007, 09:17.

    email:mahaco@fpt.vn

    Comment


    • #62
      Vấn đề chuẩn

      Nguyên văn bởi hoctro89xxx Xem bài viết
      để đơn giản thì ta nên theo ta- có nghĩa nghĩ sao làm vậy cho được việc cái đã. Còn nếu làm có quy củ hoặc giao tiếp điều khiển với thiết bị của tây thì ta phải làm theo chuẩn. Có rất nhiều chuẩn, mỗi chuẩn có quy định cấu trúc khung truyền tin riêng - frame. cho 1 ví dụ chuẩn hay dùng - IEC 60... 1 khung truyền tin bao gồm: cờ đầu khung, địa chỉ thiết bị, chức năng gói tin, chiều dài dữ liệu,các byte dữ liệu, byte kiểm tra CS, cờ cuối khung. đây là 1 chuẩn rất phổ biến, mà nên làm theo chuẩn thì mới chuyên nghiệp được.
      Nếu nói về chuẩn hoặc xây dựng cả một chuẩn riêng thì cả một vấn đề. Và vấn đề ở đây mình cũng chưa thấy bạn nào phân biệt một cách rõ ràng chuẩn và giao thức. Qua quá trình tìm hiểu ngắn thì theo mình biết chuẩn là những quy chuẩn quy định về mặt vật lý (mức tín hiệu, đường truyền, ...). Còn giao thức (protocol) là những quy định để cho phép các phần tử truyền thông trong mạng hiểu và nhận đúng dữ liệu, tránh sự sai lạc trong quá trình truyền. Đơn giản nhất nếu bạn tìm hiểu về truyền thông RS232 thì về chuẩn truyền thông quy định mức tín hiệu logic -12V và +12V và đi kèm với nó là các giao thức bắt tay phần cứng (sử dụng các chân CTS, RTS, DTR,...), giao thức bắt tay mềm (X-ON, X-OFF) hoặc không sử dụng giao thức bắt tay. Hay một ví dụ đơn giản nữa , nếu bạn nào đã từng truyền thông với PLC của Mitshubishi mà cụ thể là họ FX thì các bạn cũng sẽ hiểu. Công lập trình của FX sử dụng chuẩn RS422 nên khi muốn truyền thông với máy tính phải sử dụng bộ chuyển đổi RS422 sang RS232. Tuy nhiên nếu chỉ thực hiện chuyển đổi đơn thuần (đồng mức vật lý) thì không thể truyền thông với FX được và vấn đề chúng ta cần phải quan tâm nữa là giao thức. Với các thiết bị phức tạp như PLC thì có rất nhiều vùng dữ liệu với các địa chỉ khác nhau đồng thời phải thực hiện quá trình kiểm tra lỗi dữ liệu, FX thực hiện truyền thông theo các Frame và thực tế nếu ngoài dữ liệu chính trong Frame còn có các thông tin như các ký tự điều khiển (stx,...), địa chỉ dữ liệu, dữ liệu, mã kiểm tra SUMCHECK CODE,... Vì vậy mong các bạn hãy cùng mình phân biệt một cách cụ thể, rõ ràng hơn về chuẩn và giao thức.
      http://techpal.vn
      Chia sẻ công nghệ, cùng thành công

      Comment


      • #63
        Máy tính, giao tiếp với VDK qua mạng 485

        Trong Max485 có hai chân RE, DE. Em đã thử nếu như nối chân DE với nguồn, RE với đất, để luôn luôn cho phép truyền và cho phép nhận. Tuy nhiên em nhận thấy nếu để như vậy thì không thể truyền tín hiệu được. Mà phải nối với nhau và được điều khiển bằng 1 chân. Nếu muốn truyền thì set bit = 1, sau khi truyền xong mà muốn nhận thì clear bit = 0. Ở đây em có đưa lên mạch mà em đã sử dụng để truyền thông giữa máy tính và vi điều khiển qua mạng 485 (có sử dụng bộ chuyển đổi 232 -485) . việc điều khiển 2 chân DE, RE thông qua chân RTS. Giả sử muốn truyền từ máy tính xuống một dữ liệu và muốn vi điều khiển phải trả lời thì phải làm như sau: từ máy tính cho RTS = 1, truyền dữ liệu, cho delay để truyền hết dữ liệu, [/B]cho RTS = 0 để cho phép máy tính nhận từ nhận từ vi điều khiển ...Với cách làm như trên sẽ làm cho 1 vòng quét chiếm mất nhiều thời gian, đặc biệt nếu sử dụng nhiều vi điều khiển (máy tính là master, VDK là slave). Không biết có cách nào để biết là máy tính đã truyền hết dữ liệu xuống vi điều khiển hay chưa, Hình như phải kiểm tra một thanh ghi điều khiển gì đó. Ở đây em dùng ngôn ngữ C# cho việc điều khiển trên máy tính. Kính mong Cao Thủ chỉ giúp cho em.
        Attached Files

        Comment


        • #64
          Nguyên văn bởi picachu Xem bài viết
          Trong Max485 có hai chân RE, DE. Em đã thử nếu như nối chân DE với nguồn, RE với đất, để luôn luôn cho phép truyền và cho phép nhận. Tuy nhiên em nhận thấy nếu để như vậy thì không thể truyền tín hiệu được. Mà phải nối với nhau và được điều khiển bằng 1 chân. Nếu muốn truyền thì set bit = 1, sau khi truyền xong mà muốn nhận thì clear bit = 0. Ở đây em có đưa lên mạch mà em đã sử dụng để truyền thông giữa máy tính và vi điều khiển qua mạng 485 (có sử dụng bộ chuyển đổi 232 -485) . việc điều khiển 2 chân DE, RE thông qua chân RTS. Giả sử muốn truyền từ máy tính xuống một dữ liệu và muốn vi điều khiển phải trả lời thì phải làm như sau: từ máy tính cho RTS = 1, truyền dữ liệu, cho delay để truyền hết dữ liệu, [/B]cho RTS = 0 để cho phép máy tính nhận từ nhận từ vi điều khiển ...Với cách làm như trên sẽ làm cho 1 vòng quét chiếm mất nhiều thời gian, đặc biệt nếu sử dụng nhiều vi điều khiển (máy tính là master, VDK là slave). Không biết có cách nào để biết là máy tính đã truyền hết dữ liệu xuống vi điều khiển hay chưa, Hình như phải kiểm tra một thanh ghi điều khiển gì đó. Ở đây em dùng ngôn ngữ C# cho việc điều khiển trên máy tính. Kính mong Cao Thủ chỉ giúp cho em.
          Về mạch chuyển RS485 sang RS232 và ngược lại trên mạng cũng rất nhiều. Theo hình vẽ của Picachu thì dùng IC 75176, và cổng COM phải dùng thêm chân RTS--> điều này là không cần thiết: sửa lại như sau--> nối chân 2 và 3 của IC75176 vào nhau. Chân DI ( chân 4 của IC75176) cho qua 2 con NOT( dùng CD4069- 1 chíp có 6 bộ NOT) sau đó cho qua mạch R1//R2//Diode (220K//33K//diode)-> nối đến 1 chân tụ 102 ( chân còn lại của tụ nối mát)--> đi đến chân 2 và 3 IC 75176. -----> thế là OK, trên phần mềm không phải điều khiển chân RTS nữa, cứ truyền cổng COM bình thường là bên nhận sẽ nhận đúng. Mạch này tôi đã sản xuất vài chục mạch -> chạy rất tốt.
          Đã áp dụng làm mạch lặp RS485: chỉ việc ghép 2 mạch trên lại nhưng bỏ IC max232 đi là xong.

          email:mahaco@fpt.vn

          Comment


          • #65
            Em đã làm đúng như anh hoctro89xxx nói nhưng mạch không chạy, Nhưng khi chỉ sử dụng 1 con NOT rồi sau đó cho qua mạch R1//R2//Diode (220K//33K//diode)... như anh hoctro89xxx nói thì mạch lại chạy bình thường . Mà thậm chí rằng bỏ cả R1,R2,Diode mạch vẫn chạy.
            Tức là mạch bây giờ đơn giản chỉ là Chân DI ( chân 4 của MAX485) qua 1 con NOT sau đó đi đến chân 2,3 của Max485. Như vậy là chạy bình thường. Không hiểu tại sao lại như vậy. Liệu như vậy thì mạch có chạy ổn định không. Hiện tại thì em chưa phát hiện ra lỗi. Rất có thể sau này sẽ có lỗi. Anh hoctro89xxx có thể chỉ giúp cho em được không.

            Comment


            • #66
              Nguyên văn bởi picachu Xem bài viết
              Em đã làm đúng như anh hoctro89xxx nói nhưng mạch không chạy, Nhưng khi chỉ sử dụng 1 con NOT rồi sau đó cho qua mạch R1//R2//Diode (220K//33K//diode)... như anh hoctro89xxx nói thì mạch lại chạy bình thường . Mà thậm chí rằng bỏ cả R1,R2,Diode mạch vẫn chạy.
              Tức là mạch bây giờ đơn giản chỉ là Chân DI ( chân 4 của MAX485) qua 1 con NOT sau đó đi đến chân 2,3 của Max485. Như vậy là chạy bình thường. Không hiểu tại sao lại như vậy. Liệu như vậy thì mạch có chạy ổn định không. Hiện tại thì em chưa phát hiện ra lỗi. Rất có thể sau này sẽ có lỗi. Anh hoctro89xxx có thể chỉ giúp cho em được không.
              Hic, định post lại là chỉ cần 1 NOT ( hay 3 NOT). mạch gin của nó còn nhiều thứ khác nhưng qua thực tế đã lược bớt như thế. với loại chỉ dùng 1 NOT và bỏ hết trở tụ... Tôi chỉ làm 1 mạch và hiện vẫn chạy--> chưa vấn đề gì.
              còn mạch đủ cả tụ, trở và 1 NOT tôi đã sản xuất 50 chiếc, đã cho chạy liên tục cả 50 chiếc 24h/24h/3 tháng, cả 50 chiếc này luôn có tín hiệu data qua lại-----> chưa thấy lỗi gì cả-----> thật tuyệt vời

              email:mahaco@fpt.vn

              Comment


              • #67
                anh ngô bắc hải có biết nhiều về logic mờ hay fuzzy logic ko ?
                em đang tìm hiểu nó nhưng hỗng thấy tài liệu tiếng việt nào.
                anh có thể giúp em chứ?
                Tài liệu anh có thể gửi cho em qua địa chỉ: anhtuan_spkt03@yahoo.com
                Em cảm ơn lắm lắm!

                Comment


                • #68
                  Máy tính, giao tiếp với VDK qua mạng 485

                  Nguyên văn bởi hoctro89xxx Xem bài viết
                  Hic, định post lại là chỉ cần 1 NOT ( hay 3 NOT). mạch gin của nó còn nhiều thứ khác nhưng qua thực tế đã lược bớt như thế. với loại chỉ dùng 1 NOT và bỏ hết trở tụ... Tôi chỉ làm 1 mạch và hiện vẫn chạy--> chưa vấn đề gì.
                  còn mạch đủ cả tụ, trở và 1 NOT tôi đã sản xuất 50 chiếc, đã cho chạy liên tục cả 50 chiếc 24h/24h/3 tháng, cả 50 chiếc này luôn có tín hiệu data qua lại-----> chưa thấy lỗi gì cả-----> thật tuyệt vời
                  Không hiểu con diode có vai trò gì mà khi em mắc theo chiều ngược hay chiều xuôi mạch vẫn chạy. Cái mạch mà anh hoctro89xxx sử dụng đã chạy ổn 3 tháng thì mắc như thế nào.

                  Comment


                  • #69
                    Nguyên văn bởi picachu Xem bài viết
                    Không hiểu con diode có vai trò gì mà khi em mắc theo chiều ngược hay chiều xuôi mạch vẫn chạy. Cái mạch mà anh hoctro89xxx sử dụng đã chạy ổn 3 tháng thì mắc như thế nào.
                    Mắc diode quay Anode vào NOT.

                    email:mahaco@fpt.vn

                    Comment


                    • #70
                      Nguyên văn bởi hoctro89xxx Xem bài viết
                      Mắc diode quay Anode vào NOT.
                      Cám ơn anh hoctro89xxx nhé.

                      Comment


                      • #71
                        Nguyên văn bởi picachu Xem bài viết
                        Cám ơn anh hoctro89xxx nhé.
                        Không có gì!
                        Ngày xưa mới tìm hiểu, thấy sơ đồ nó bắt viết phần mềm điều khiển chân 2 và 3 IC75176--> ngại --> bỏ. thời gian sau kiếm được cái mạch này--> quá hay, chỉ việc truyền RS232 như bình thường.
                        Sắp tới sẽ cho ra mắt sản phẩm:
                        1.RS232 <-> RS485
                        2.RS485 <-> RS485
                        HI vọng sẽ bán được nhiều!

                        email:mahaco@fpt.vn

                        Comment


                        • #72
                          Nguyên văn bởi ngohaibac Xem bài viết
                          Chào các bạn.

                          Trong thời gian qua tôi hơi bận nên chưa tiếp tục chủ đề này được. Có lẽ phần mềm Visual Basic mọi người khá thông thạo thì không phải bàn cãi gì nữa. Tôi xin gửi cho mọi người chương trình khá đơn giản để gửi kí tự mình đánh từ bàn phím qua RS232 đến vi điều khiển:
                          http://luckytoki.com/haibac/download...SerialPort.rar



                          BAc haibac oi coi lai dum cai link tren thu,em vao ma co thay chi dau.Hau la bac gui cho em nhe huunghiaonline@gmail.com
                          em cam on bac nhieu

                          Comment


                          • #73
                            Chào bạn.

                            Tài liệu về RS232 mình upload tại đây:
                            http://www.esnips.com/web/UARTBac

                            Chúc các bạn thành công.
                            Technical sale at WT Microelectronics S'pore
                            Hỗ trợ dự án sử dụng các hãng Texas Instrument, STMicro, Freescale, Fairchild, International Rectifier, Ublox, Lumiled, Maxim
                            Liên hệ: 0915.560.511 hoặc ngo.haibac@wtmec.com

                            Comment


                            • #74
                              em hoi ty'

                              Anh Bac nay..giup em ti nhe.
                              em dang lam ve lap trinh C++ truyen thong giua PC va 8051(or 89C2051) qua RS 232, anh gui len cho em voi nhe.
                              cam on anh...chuc anh manh khoe.

                              Comment


                              • #75
                                anh Bắc copy giao tiếp matlap( vẽ đồ thị )lên đây giúp em.Mong sự giúp đỡ của anh.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X