Thông báo

Collapse
No announcement yet.

Làm thế nào mở rộng giao tiếp nhiều cổng RS232 cho một VDK PIC

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

  • Làm thế nào mở rộng giao tiếp nhiều cổng RS232 cho một VDK PIC

    Chào các bác !
    Em đang làm giao tiếp RS232 dùng PIC .Em muốn từ con PIC mở rộng ra 4 cổng COM(RS232) nhưng ko biết làm sao .Các bác bác có thể chỉ dùm thiết kế phần cứng hoặc cho link nào nói về phần mở rộng này.
    PIC dùng dòng 18f hoặc dspic30 cũng được.
    Mong các cao thủ hướng dẫn
    Cảm ơn nhiều.
    Thanks alot !
    Bán cáp, lập trình PLC+HMI :Modicon,S7,AB,
    Mitsubishi,Panasonic,GE,Delta,.
    Thiết kế tủ bảng điện, Broad Vi Điều Khiển+lập trình.
    Email :cuocsong12@yahoo.com

  • #2
    Bạn có thể làm thêm mạch chuyển đổi từ RS232->RS485 và ngược lại. Chứ chuẩn RS232 chỉ cho phép kết nối 2 tbị thôi.
    Homepage:

    Comment


    • #3
      Nguyên văn bởi LINH Xem bài viết
      Chào các bác !
      Em đang làm giao tiếp RS232 dùng PIC .Em muốn từ con PIC mở rộng ra 4 cổng COM(RS232) nhưng ko biết làm sao .Các bác bác có thể chỉ dùm thiết kế phần cứng hoặc cho link nào nói về phần mở rộng này.
      PIC dùng dòng 18f hoặc dspic30 cũng được.
      Mong các cao thủ hướng dẫn
      Cảm ơn nhiều.
      Thanks alot !
      Nếu bác làm theo mô hình một con PIC của bác làm master, mấy còn kia làm slave hết thì được. Nguyên lý như sau:
      Các chân RX của slave nối vào TX của master
      Các chân TX của slave nối vào RX của master
      Như vậy chỉ có master nói thì slave mới nghe được và ngược lại. Các slave không nói chuyện được với nhau.
      Master nói chuyện thì hô địa chỉ trước. Nếu đúng địa chỉ của slave thì slave mới nghe và thực thi. Mấy thằng slave kia cũng nghe thấy nhưng mà nó thấy không phải bảo nó nên nó không nghe.
      Sử dụng địa chỉ 0 để hô thông tin broast cast. Thông tin này nói thì thằng slave nào cũng phải nghe không được giả điếc.
      Các slave muốn nói chuyện với nhau thì nói cho thằng Master trước, thằng Master sẽ nói lại cho thằng slave kia sau.
      Tuy nhiên cần thiết kế lại để khi thằng slave nào nói thì mấy thằng khác không được nói nữa nếu không thì lão Master già cả nghễnh ngãng không biết lũ slave kia đang lau nhau thưa bẩm chuyện gì.
      Cách giải quyết cũng đơn giản, kiểu như thằng slave nào nói trước thì giơ tay lên cho mấy thằng kia biết có thằng nào đang nói, phải chờ nó nói xong thì mới đến lượt mình.
      Một mạch lặp là cần thiết vì độ lớn tín hiệu từ các chân RX, TX tỉ lệ thuận với số lượng slave.
      Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
      Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

      Comment


      • #4
        Không cần phải dùng nhiều PIC làm gì cho tốn. Bạn chỉ cần dùng 1 con PIC duy nhất và sử dụng ngôn ngữ CCS để lập trình. CCS cho phép bạn khai báo trên 1 con PIC tối đa 4 cổng RS232 (software uart). Xem kỹ phần help nói về UART để hiểu cách sử dụng.
        Chúc thành công.
        Ethernet-RS232, PIC Webserver, RFID Reader
        CallerID, Cảnh báo BTS, ...
        0988006696
        linhnc308@gmail.com
        http://linhnc308.blogspot.com

        Comment


        • #5
          Nguyên văn bởi nghaiha Xem bài viết
          Nếu bác làm theo mô hình một con PIC của bác làm master, mấy còn kia làm slave hết thì được. Nguyên lý như sau:
          Các chân RX của slave nối vào TX của master
          Các chân TX của slave nối vào RX của master
          Như vậy chỉ có master nói thì slave mới nghe được và ngược lại. Các slave không nói chuyện được với nhau.
          Master nói chuyện thì hô địa chỉ trước. Nếu đúng địa chỉ của slave thì slave mới nghe và thực thi. Mấy thằng slave kia cũng nghe thấy nhưng mà nó thấy không phải bảo nó nên nó không nghe.
          Sử dụng địa chỉ 0 để hô thông tin broast cast. Thông tin này nói thì thằng slave nào cũng phải nghe không được giả điếc.
          Các slave muốn nói chuyện với nhau thì nói cho thằng Master trước, thằng Master sẽ nói lại cho thằng slave kia sau.
          Tuy nhiên cần thiết kế lại để khi thằng slave nào nói thì mấy thằng khác không được nói nữa nếu không thì lão Master già cả nghễnh ngãng không biết lũ slave kia đang lau nhau thưa bẩm chuyện gì.
          Cách giải quyết cũng đơn giản, kiểu như thằng slave nào nói trước thì giơ tay lên cho mấy thằng kia biết có thằng nào đang nói, phải chờ nó nói xong thì mới đến lượt mình.
          Một mạch lặp là cần thiết vì độ lớn tín hiệu từ các chân RX, TX tỉ lệ thuận với số lượng slave.
          Cách này của bác nghaiha xem ra có vẻ khá hay và hữu dụng ,vì các họ PIC hỗ trợ Giao tiếp SPI ( 1 Master - nhiều Slave ) thì sẽ làm được .Tuy nhiên ,bạn nên bắt đầu TẬP LUYỆN làm từ 2 con ( 1 Master - 1Slave ).Sau đó ,khi thành công ,ta mở rộng thành nhiều SLAVE sẽ dễ dàng hơn ( vì chỉ cần tạo Tín hiệu CHỌN SLAVE ( tin hiệu SStừ MAster thôi ) . Một ưu điểm nữa là : chuẩn giao tiếp SPI có tốc độ Truyền rất nhanh.

          Chúc bạn thành công
          My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu

          Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter

          Comment


          • #6
            Bây giờ thì mình rối tung lên rồi, RS232, UART và MSSP, Sẵn tiện, mọi người phân biệt giúp mình luôn.!!
            Diễn đàn Vi điều khiển:

            Comment


            • #7
              Có nhiều giải pháp cho yêu cầu ở post #1, tùy vào bài toán cụ thể mà mỗi giải pháp có những giới hạn cụ thể.

              Giả sử chúng ta bắt buộc phải dùng chỉ 1 vi điều khiển PIC để giao tiếp với nhiều thiết bị thông qua RS-232 (tiêu đề của topic là như vậy). Thông tin còn thiếu là các thiết bị có thể giao tiếp với PIC đồng thời hay vào một thời điểm chỉ có 1 thiết bị giao tiếp với PIC (và PIC có điều khiển việc này hay không), tốc độ baud. Tùy vào những yêu cầu này người thiết kế mới chọn được giải pháp thích hợp.

              Nếu đã hiện thực RS-232 bằng software như linhnc208 đề nghị, thì không nhất thiết phải dùng CCS C. Người ta có thể hiện thực RS-232 software bằng bất cứ ngôn ngữ, công cụ gì.

              Thân,
              Biển học mênh mông, sức người có hạn

              Comment


              • #8
                anh namqn nói rất đúng, căn bản là từng giải pháp cho từng bài toán cụ thể. có nhiều cách để làm.

                Comment


                • #9
                  Nguyên văn bởi nghaiha Xem bài viết
                  Nếu bác làm theo mô hình một con PIC của bác làm master, mấy còn kia làm slave hết thì được. Nguyên lý như sau:
                  Các chân RX của slave nối vào TX của master
                  Các chân TX của slave nối vào RX của master
                  Như vậy chỉ có master nói thì slave mới nghe được và ngược lại. Các slave không nói chuyện được với nhau.
                  Master nói chuyện thì hô địa chỉ trước. Nếu đúng địa chỉ của slave thì slave mới nghe và thực thi. Mấy thằng slave kia cũng nghe thấy nhưng mà nó thấy không phải bảo nó nên nó không nghe.
                  Sử dụng địa chỉ 0 để hô thông tin broast cast. Thông tin này nói thì thằng slave nào cũng phải nghe không được giả điếc.
                  Các slave muốn nói chuyện với nhau thì nói cho thằng Master trước, thằng Master sẽ nói lại cho thằng slave kia sau.
                  Tuy nhiên cần thiết kế lại để khi thằng slave nào nói thì mấy thằng khác không được nói nữa nếu không thì lão Master già cả nghễnh ngãng không biết lũ slave kia đang lau nhau thưa bẩm chuyện gì.
                  Cách giải quyết cũng đơn giản, kiểu như thằng slave nào nói trước thì giơ tay lên cho mấy thằng kia biết có thằng nào đang nói, phải chờ nó nói xong thì mới đến lượt mình.
                  Một mạch lặp là cần thiết vì độ lớn tín hiệu từ các chân RX, TX tỉ lệ thuận với số lượng slave.
                  Bác này chưa làm hay sao ấy nhỉ! mà nói có vẻ như thật!
                  Các chân RX của khối Slave có thể nối vào chân TX của Master được vì trở kháng đầu vào của các chân RX là rất lớn.
                  Nhưng các chân TX của các khối Slave không được nối với chân RX của Master được. Bởi vì trở kháng đầu ra của chân TX rất nhỏ. Giả sử như có một chân TX của một Slave đang ở mức điện thế cao, một chân TX của Slave khác lại có mức điện áp thấp. Như sẽ xảy ra hiện tượng gì, và tại chân RX của Master sẽ nhận được tín hiệu gì?

                  Comment


                  • #10
                    Có con chip Pic nào mà nhiều hơn 2 cổng COM ( RS232 - TX - RX ) không nhỉ các bác ?

                    Comment


                    • #11
                      Chỉ tính riêng PIC dòng 8 bit cũng có kha khá lựa chọn, ví dụ PIC18F97J94 có 4 UART, cả nhóm PIC18FxxJ94 như vậy. Sắp tới sẽ có PIC18FxxQ43 có 5 UART để làm truyền tin kiểu RS232, RS422, RS485.

                      Mở rộng ra PIC 16 bit (PIC24, dsPIC33) và PIC 32 bit (PIC32Mx, PIC32MZ) thì có gần nghìn loại ! Vào trang chọn linh kiện theo tính năng là tìm ra cả rổ
                      https://www.microchip.com/maps/Microcontroller.aspx
                      Phần mềm tự do hoặc không dùng máy tính nữa !.

                      Comment


                      • #12
                        Nguyên văn bởi bqviet Xem bài viết
                        Chỉ tính riêng PIC dòng 8 bit cũng có kha khá lựa chọn, ví dụ PIC18F97J94 có 4 UART, cả nhóm PIC18FxxJ94 như vậy. Sắp tới sẽ có PIC18FxxQ43 có 5 UART để làm truyền tin kiểu RS232, RS422, RS485.

                        Mở rộng ra PIC 16 bit (PIC24, dsPIC33) và PIC 32 bit (PIC32Mx, PIC32MZ) thì có gần nghìn loại ! Vào trang chọn linh kiện theo tính năng là tìm ra cả rổ
                        https://www.microchip.com/maps/Microcontroller.aspx
                        Ô kê bác...

                        Nhưng cái họ này ở VN khá là khan hiếm.

                        Để em thử UART mềm xem sao
                        Code:
                         
                         #USE RS232 (BAUD = 9600, XMIT = PIN_B0, RCV = PIN_B1)  void put_to_a(char c) {    put(c); }  char get_from_a(void) {    return(getc()); }  #USE RS232 (BAUD = 9600, XMIT = PIN_B2, RCV = PIN_B3)  void put_to_b(char b) {    putc(c); }  void main(void) {    char c;        put_to_a("Online\n\r");    put_to_b("Online\n\r");        while(TRUE) {       c = get_from_a();              put_to_b(c);       put_to_a(c);    } }
                        Link: http://www.ccsinfo.com/faq.php?page=multiple_rs232

                        Comment


                        • #13
                          Ở VN đã có đại lý chính thức của Microchip từ mười mấy năm nay. Mua 1c với giá của Microchip Direct cũng được luôn. Tất nhiên giá có cao hơn linh kiện hàng chợ, nhưng gì chứ đám PIC hay MCP ... thì không thể gọi là hiếm ở xứ này.
                          Phần mềm tự do hoặc không dùng máy tính nữa !.

                          Comment


                          • #14
                            Thế thì tốt quá...Tại em ko biết. Để em tìm đại lý xem nó có ở Hà Nội ko?

                            Comment


                            • #15
                              Nguyên văn bởi luongthitu Xem bài viết
                              Thế thì tốt quá...Tại em ko biết. Để em tìm đại lý xem nó có ở Hà Nội ko?
                              PIC thì mua tại R&P. Ngày trước mình mua mấy con mà hình như shipping thẳng từ bên Thái Lan về.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X