Một số chia sẻ về RS485
Thursday, May 27, 2010 8:55:02 AM
Hôm nay mình xin chia sẻ một số kinh nghiệm khi làm về RS485! Đây chính là chuẩn truyền thông mình chọn khi làm đồ án tốt nghiệp. Về lý thuyết mình thấy trong sách "Mạng truyền thông công nghiệp" của tác giả Hoàng Minh Sơn đã nói rất rõ vì thế các bạn nên tìm mua về để đọc nếu cần! hoặc bạn nào cần xin để lại email mình sẽ gửi cho vì mình có nhiều tài liệu cũng như đồ án làm về RS485. Quay lại mục đích của bài viết này, do đề tài của mình dùng máy tính làm Master (Chủ) và các mạch vi điều khiển bên dưới làm Slave (Tớ)- Tức là giao tiếp Chủ-Tớ đấy - Thế nên mình xin được tình bày 3 phần chính như sau:
+ Tạo một giao diện đơn giản trên máy tinh để giao tiếp với các mạch tớ bên dưới.
+ Mạch chuyển đổi từ RS232 sang RS485 và ngược lại.
+ Thiết lập đường bus RS485
Để cho dễ hình dung mình xin được đưa sơ đồ khối tổng quát về hệ thống mà tớ đã sử dụng trong đồ án lên:
Như trên hình này ta thấy để máy tính có thể truyền các khung dữ liệu xuống các trạm tớ thì phải có 1 mạch chuyển đổi từ RS232 sang RS485, sau khi chuyển đổi sang RS485 thì khung dữ liệu theo đường bus xuống các trạm tớ! Mình xin nói đến mạch chuyển đổi RS232-RS485 đầu tiên:
Mình đã tìm trên mạng có nhiều mạch chuyển đổi 232-485, có thể là mạch tự động hoặc điều khiển bằng tay, tại sao lại thế vì nó liên quan đến chân điều khiển hướng của IC MAX485 (hoặc SN75176, DS75176)
Trước khi vào phần này thì mình cũng khuyên các bạn nên dùng MAX485, nó ổn định hơn, bền hơn và giá cũng đắt hơn so với SN75176:D (Sơ đồ chân là y như nhau)
Mình xin giới thiệu nôm na về các chân của MAX485 như sau: chân 1 RO chân nhận dữ liệu về, chân 4 DI chân truyền dữ liệu đi, chân 2 và 3 RE/DE điều khiển hướng tức là khi RE/DE = 0 thì chờ nhận dữ liệu về còn khi RE/DE = 1 thì gửi dữ liệu đi, chân 6,7 A và B 2 chân này dùng để truyền/nhận dữ liệu, tại sao lại có 2 chân này vì chuẩn RS485 dùng chênh lệch điện áp đối xứng giữa 2 dây để truyền dữ liệu! như thế nào là chênh lệch điện áp đối xứng? cái này các bạn tự tìm hiểu nha:D
Rồi, như vậy là muốn mạch chuyển đổi 232-485 hoạt động ta phải tìm cách điều khiển chân điều khiển hướng của MAX485. Và như đã nói ở trên có 2 cách để điều khiển đó là bằng tay hoặc tự động. Mình đã thử cả 2 cách thì thấy tự động chạy rất tốt còn bằng tay, có thể do lập trình trên giao diện máy tính chưa chuẩn nên chạy kô tốt bằng, vì thế mình chỉ đưa sơ đồ mạch chuyển đổi 232-485 tự động lên:
Nhìn trên sơ đồ chắc các bạn sẽ thấy ngay lý do tại sao lại tự động truyền nhận nhỉ:D . Quan trọng chắc là ở con transistor PNP, tớ nghĩ là vậy, chắc là do con này mới tự động được thôi! Nếu bạn nào dùng con A1015 nhớ để ý kỹ chân kẻo nhầm!
Rồi đến đây mình xin tạm dừng entry này tại đây! bài sau mình sẽ trình bày về tạo giao diện trên VB.Net 2005 nhé!!! Nếu có thắc mắc muốn hỏi các bạn có thể liên hệ qua nick yahoo hoặc mail sau: shareblog87@yahoo.com
+ Tạo một giao diện đơn giản trên máy tinh để giao tiếp với các mạch tớ bên dưới.
+ Mạch chuyển đổi từ RS232 sang RS485 và ngược lại.
+ Thiết lập đường bus RS485
Để cho dễ hình dung mình xin được đưa sơ đồ khối tổng quát về hệ thống mà tớ đã sử dụng trong đồ án lên:
Như trên hình này ta thấy để máy tính có thể truyền các khung dữ liệu xuống các trạm tớ thì phải có 1 mạch chuyển đổi từ RS232 sang RS485, sau khi chuyển đổi sang RS485 thì khung dữ liệu theo đường bus xuống các trạm tớ! Mình xin nói đến mạch chuyển đổi RS232-RS485 đầu tiên:
Mình đã tìm trên mạng có nhiều mạch chuyển đổi 232-485, có thể là mạch tự động hoặc điều khiển bằng tay, tại sao lại thế vì nó liên quan đến chân điều khiển hướng của IC MAX485 (hoặc SN75176, DS75176)
Trước khi vào phần này thì mình cũng khuyên các bạn nên dùng MAX485, nó ổn định hơn, bền hơn và giá cũng đắt hơn so với SN75176:D (Sơ đồ chân là y như nhau)
Mình xin giới thiệu nôm na về các chân của MAX485 như sau: chân 1 RO chân nhận dữ liệu về, chân 4 DI chân truyền dữ liệu đi, chân 2 và 3 RE/DE điều khiển hướng tức là khi RE/DE = 0 thì chờ nhận dữ liệu về còn khi RE/DE = 1 thì gửi dữ liệu đi, chân 6,7 A và B 2 chân này dùng để truyền/nhận dữ liệu, tại sao lại có 2 chân này vì chuẩn RS485 dùng chênh lệch điện áp đối xứng giữa 2 dây để truyền dữ liệu! như thế nào là chênh lệch điện áp đối xứng? cái này các bạn tự tìm hiểu nha:D
Rồi, như vậy là muốn mạch chuyển đổi 232-485 hoạt động ta phải tìm cách điều khiển chân điều khiển hướng của MAX485. Và như đã nói ở trên có 2 cách để điều khiển đó là bằng tay hoặc tự động. Mình đã thử cả 2 cách thì thấy tự động chạy rất tốt còn bằng tay, có thể do lập trình trên giao diện máy tính chưa chuẩn nên chạy kô tốt bằng, vì thế mình chỉ đưa sơ đồ mạch chuyển đổi 232-485 tự động lên:
Nhìn trên sơ đồ chắc các bạn sẽ thấy ngay lý do tại sao lại tự động truyền nhận nhỉ:D . Quan trọng chắc là ở con transistor PNP, tớ nghĩ là vậy, chắc là do con này mới tự động được thôi! Nếu bạn nào dùng con A1015 nhớ để ý kỹ chân kẻo nhầm!
Rồi đến đây mình xin tạm dừng entry này tại đây! bài sau mình sẽ trình bày về tạo giao diện trên VB.Net 2005 nhé!!! Nếu có thắc mắc muốn hỏi các bạn có thể liên hệ qua nick yahoo hoặc mail sau: shareblog87@yahoo.com








Đỗ Xuân Đứcxuanduc88 # Saturday, June 12, 2010 5:15:22 PM
DuongDk4DuongDK4 # Sunday, June 13, 2010 7:12:26 AM
phantruongna # Monday, September 13, 2010 3:32:33 AM
mail: metallica_712@yahoo.com
em cảm ơn anh
Nguyễn Văn DũngNguyenVanDungDT08B # Sunday, March 27, 2011 9:25:45 AM
DuongDk4DuongDK4 # Thursday, April 14, 2011 4:35:45 PM
Nguyễn Văn DũngNguyenVanDungDT08B # Friday, May 20, 2011 4:43:21 AM
-Có phải tất cả các trạm đều ở trạng thái chờ nhận thì con MAX485 sẽ đưa về trạng thái TRỞ KHÁNG CAO phải ko anh?
-Em cũng làm đề tài gần giống anh..nhưng em cho chuyển mạch tự động cả ở PC và MCU luôn..Mong anh chia sẻ..