Thông báo

Collapse
No announcement yet.

truyền thông đa xử lý cơm nguội đặc sản thằng cha hàng xóm :)

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

  • truyền thông đa xử lý cơm nguội đặc sản thằng cha hàng xóm :)

    đối với những người lập trình lâu năm đã học qua thời kì 8051 thì việc giao tiếp mạng với 8051 qua chuẩn rs485,spi,diy,... là việc đơn giản và quá bình thường,nhưng với những người mới tìm hiểu thì việc này khá hóc vì trong các tài liệu rất ít đề cập đến phần truyền thông đa xử lý này,việc truyền dữ liệu giữa 2 MCU và giữa MCU với PC thì khá đơn giản nhất là với 8051 thì chỉ vài ba câu lệnh là xong,nhưng giao tiếp như 1 mạng gồm 1 MCU chủ và các MCU trạm thì khá mơ hồ,nói về lập trình thôi,còn cách thức chung thì là máy chủ (master) sẽ gửi byte địa chỉ lên bus các máy trạm (slaver) sẽ so sánh địa chỉ nhận được với địa chỉ đã được lập trình sẵn trong rom,nếu đúng thì nó sẽ cho kết nối với master và các byte sau là byte lệnh điều khiển,với trình độ sơ cấp nhất là chỉ dùng dây nối chéo chân và dùng cổng nối tiếp để giao tiếp giữa các MCU với nhau thì mọi người cho em hỏi là vai trò của bit SM2 nó để làm gì và lập trình như thế nào ? dự định em làm 1 master điều khiển và hồi tiếp với 4 slaver
    SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

  • #2
    Nguyên văn bởi h11540 Xem bài viết
    đối với những người lập trình lâu năm đã học qua thời kì 8051 thì việc giao tiếp mạng với 8051 qua chuẩn rs485,spi,diy,... là việc đơn giản và quá bình thường,nhưng với những người mới tìm hiểu thì việc này khá hóc vì trong các tài liệu rất ít đề cập đến phần truyền thông đa xử lý này,việc truyền dữ liệu giữa 2 MCU và giữa MCU với PC thì khá đơn giản nhất là với 8051 thì chỉ vài ba câu lệnh là xong,nhưng giao tiếp như 1 mạng gồm 1 MCU chủ và các MCU trạm thì khá mơ hồ,nói về lập trình thôi,còn cách thức chung thì là máy chủ (master) sẽ gửi byte địa chỉ lên bus các máy trạm (slaver) sẽ so sánh địa chỉ nhận được với địa chỉ đã được lập trình sẵn trong rom,nếu đúng thì nó sẽ cho kết nối với master và các byte sau là byte lệnh điều khiển,với trình độ sơ cấp nhất là chỉ dùng dây nối chéo chân và dùng cổng nối tiếp để giao tiếp giữa các MCU với nhau thì mọi người cho em hỏi là vai trò của bit SM2 nó để làm gì và lập trình như thế nào ? dự định em làm 1 master điều khiển và hồi tiếp với 4 slaver
    Quan tâm đến mấy thứ đó làm gì , bạn lập trình được UART ( 232 ) rồi chứ .?

    Vậy thì mua Max485 ( hoặc loại tương đương ) ... về lắp vào thành mạng 485 .
    Giao thức thì mình tự định nghĩa ra ( đang tự làm mạng mà - có phụ thuộc thằng nào đâu)

    Trong mạng đó có thằng Gọi là chủ : Master , có 4 cái slave mỗi thằng gắn 1 ID ( như bài của bạn ).

    Master sẽ tự động gọi ID1, ID2, ID3 , ID4 khi nó cần giao tiếp với từng slave cụ thể .

    Lấy VD : Master gửi 1 byte trên đường truyền là 0xAA , Slave 1 , 2,3,4 đều nhận được byte này . Nó sẽ kiểm tra xem có phải là ID của mình không để thực hiện việc bắt tay giao tiếp với nhau !

    --- Nói tóm lại là nó chẳng khác gì giao tiếp 232 , có điều nhiều thằng slave nên cũng phải đánh ID cụ thể để bắt tay làm việc ( Hoặc cũng có thể dùng serial 9 bit ( nhưng chẳng ai muốn dùng cái này, lý do thì tự tìm hiểu ).


    --- Ở trên là VD chung cơ bản , thực tế câu lệnh để gọi 1 slave nó sẽ gồm nhiều byte , phức tạp hơn , có CRC , mã ..v.v cụ thể để phòng trừ bị sai dữ liệu , gọi nhầm slave khác.


    ---- Trong 1 mạng cũng có thể lúc này làm Master , lúc khác làm Slave ... có thể có nhiều Master , nhiều slave mà chúng vẫn nói chuyện, giao tiếp được với nhau ... đó là thuật sắp xếp hay còn do yêu cầu cụ thể của bài toán đặt ra .
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      thực ra câu hỏi này khá liên quan đến mod queduong nhưng vì em không biết tag tên anh như nào nên đành hỏi chung
      -em quan tâm vì con con 89s52 em chỉ lập trình được đơn nhiệm nên em có thể tận dụng được ngắt UART mà không phải lập trình thêm,UART con này quá đơn giản vì chỉ có vài thanh ghi và lập trình bằng asm nên rất ngắn gọn
      -rất nhiều người tư vấn nên làm mạng dùng rs485,em chỉ xem qua hình chuẩn này nhưng chắc nó truyền được xa,ít nhiễu,và đơn giản nhất nên mọi người khuyên,nếu dùng mạng hữu tuyến dùng chắc ko phải bàn,vậy nếu dùng mạng vô tuyến,như web của anh có bán module UART vậy phải qua max485 ?
      -về giao thức em nghĩ là sẽ làm được dựa vào nền của UART,ví dụ em qua định khung truyền là 8 byte,8 byte đầu tiên là ID>(phản hồi Slave) >master truyền 8byte dữ liệu thì ngắt >bên nhận đếm đủ byte thì ngắt và xử lý nhưng với dữ liệu tới 8 byte mà 8051 là MCU 8 bit vậy ta sẽ phải chia byte ra để xử lí sau khi chia ra rồi so sánh với dữ liệu có sẵn để thực hiện lệnh,khâu xử lý và nhất là so sánh với số lượng lệnh nhiều thì độ trễ chắc tới vài giây mất @@ có đến không anh ?
      -serial 9 bit em nghĩ cũng chỉ làm đồ trang trí thêm cho hơn ng thôi,chắc là nhiễu nên ít nói đến
      -anh có bán các module có các gói từ 1-64byte ,em hiểu là khung truyền tối đa lên đến 64byte ,gồm mã ID+mã lệnh +mã CRC (24l01 cũng có nhưng chưa hiểu)+mã....xxx ,xử lý xong 64 byte này và đưa ra port rồi mới nhận 64 byte ,vậy không có bộ đệm nhỡ mất dữ liệu thì sao hay lại xử lí xong hồi tiếp cho master,và nếu 4 slave cùng gửi thì master chắc chết vì tình trạng 1 vua nghìn cung phi mất
      SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X