để đơ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.
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
-
Vấn đề chuẩn
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.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.http://techpal.vn
Chia sẻ công nghệ, cùng thành công
Comment
-
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.
Comment
-
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.Nguyên văn bởi picachu Xem bài viếtTrong 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.
Đã á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
-
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
-
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ì.Nguyên văn bởi picachu Xem bài viếtEm đã 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.
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
-
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
-
Máy tính, giao tiếp với VDK qua mạng 485
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.Nguyên văn bởi hoctro89xxx Xem bài viếtHic, đị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
Comment
-
Mắc diode quay Anode vào NOT.Nguyên văn bởi picachu Xem bài viếtKhô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.
email:mahaco@fpt.vn
Comment
-
Cám ơn anh hoctro89xxx nhé.Nguyên văn bởi hoctro89xxx Xem bài viếtMắc diode quay Anode vào NOT.
Comment
-
Không có gì!Nguyên văn bởi picachu Xem bài viếtCám ơn anh hoctro89xxx nhé.
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
-
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.comNguyên văn bởi ngohaibac Xem bài viếtChà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

em cam on bac nhieu
Comment
-
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
Bài viết mới nhất
Collapse
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
Hôm qua, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -

Comment