2.4.2 .Cấu tạo và nguyên lý hoạt động
2.7. Truyền thơng máy tính
2.7.1. Giới thiệu vi mạch giao tiếp MAX 232.
Để giao tiếp giữa vi điều khiển với máy tính, ta sử dụng chuẩn giao tiếp RS232 qua cổng COM của máy tính. Chuẩn này quy định các yêu cầu cấp tín hiệu giữa bộ truyền và bộ nhận. Do đó để làm cho nó tương thích với các chuẩn đầu ra TTL ta cần sử dụng một vi mạch giao tiếp gián tiếp. Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên dụng trong việc giao tiếp nối tiếp vi điều khiển với máy tính. Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +10V hoặc –10V ở phía truyền và các mức +3…+15V hoặc -3…-15V thành mức TTL ở phía nhận.
Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối vào CTS, điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9 của vi mạch MAX 232. Còn chân RST (chân 10 của vi mạch MAX ) nối với đường dẫn bắt tay để điều khiển quá trình nhận. Thường thì các đường dẫn bắt tay được nối với cổng nối tiếp qua các cầu nối, để khi khơng dùng đến nữa có thể hở mạch các cầu này. Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND (mass).
http://www.ebook.edu.vn 32
2.7.2. Cổng nối tiếp RS232.
Cổng nối tiếp RS232 rất phổ biến và được sử dụng rộng rãi. Người ta còn gọi cổng này là cổng COM. Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp. Cổng COM khơng phải là một hệ thống bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin. Cổng nối tiếp RS232 có 2 kiểu, kiểu D25 chân và kiểu D9 chân, 2 kiểu này đều là giắc đực ở sau máy tính PC. Dưới đây là mơ tả các chân tín hiệu loại D9 chân và 25 chân.
Hình 2.10: Giắc nối 9 chân qua cổng COM.
Các chân dùng để truyền và nhận dữ liệu của giắc 9 chân là 3 và 2 cịn với giắc 25 chân thì chân truyền và nhận là 2 và 3.
Phích cắm COM có tổng cộng 8 đường dẫn, chưa kể đến đường nối đất. Trên thực tế có hai loại phích cắm, một loại 9 chân và một loại 25 chân. Cả hai loại đều có chung một đặc điểm, trong đề tài em sử dụng cáp USB converter232 vì sử dụng laptop khơng có cổng COM.
Việc truyền dữ liệu xảy ra ở trên hai đường dẫn. Qua chân cắm TXD máy tính gửi dữ liệu của nó đến vi điều khiển. Trong khi đó các dữ liệu mà máy tính nhận được lại được dẫn đến chân RXD, các tín hiệu khác đóng vai trị như là tín
http://www.ebook.edu.vn 33 hiệu hỗ trợ khi trao đổi thơng tin, vì thế khơng phải trong mọi trường hợp ứng dụng đều dùng hết.
2.7.3. Truyền thông qua cổng nối tiếp RS232.
Truyền thông nối tiếp là một chuẩn giao tiếp thông dụng dùng để truyền phát dữ liệu giữa máy tính và các thiết bị ngoại. Có thể sử dụng phương pháp này khi tốc độ truyền dữ liệu thấp hoặc phải truyền dữ liệu trên một khoảng cách lớn. Truyền thông nối tiếp được sử dụng rất phổ biến bởi vì mỗi một máy tính đều có một hay nhiều cổng nối tiếp.
Hình 2.11: Giao tiếp máy tính với vi điều khiển qua cổng RS232.
Chuẩn RS232 được nối ra một giắc cắm (gọi là cổng COM). Khi sử dụng có thể sử dụng 2 hay toàn bộ chân (pin) của cổng này (có nhiều loại cổng COM phục vụ các chức năng khác nhau gồm loại 4, 9, 15, 37 chân). Nếu mục đích chỉ truyền hoặc nhận tín hiệu giữa hai thiết bị thì ta chỉ cần sử dụng 2 dây (một dây truyền hoặc nhận) và một dây nối đất (GND – ground, hay mass). RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất. Các cổng của RS–232 có ngưỡng điện áp qui ước là -15V (volt) tới -3V , và 3V tới 15V (hoặc -5V, +5V, sự khác biệt giữa hai giá trị 3, và 5V này được gọi là noise magin - biên độ dao động của nhiễu).
http://www.ebook.edu.vn 34 • Tín hiệu có áp lớn +3V được coi có logic 0 hoặc có giá trị cao (H)
• Tín hiệu có áp nhỏ hơn –3V được coi có logic 1 hoặc giá trị thấp (L). • Điện áp từ -3V tới +3V khơng có ý nghĩa.
Chính vì từ - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd (chiều dài cho phép 30 – 50 m). Đối với truyền thông nối tiếp ta cần phải quan tâm đến 4 tham số là baud rate (tốc độ baurd) truyền, số bít dữ liệu mã hóa một ký tự, bít chẵn lẻ, bít stop. Mỗi một ký tự truyền được đóng gói thành một khung ký tự bao gồm một bít start và sau bít này là các bít dữ liệu, sau bít các bít dữ liệu là bít chẵn lẻ (bít này có thể chọn), bít cuối của khung dữ liệu là bít stop.
Ví dụ một khung truyền dữ liệu có dạng như sau:
Hình 2.12: Khung truyền theo chuẩn RS232.
Tốc độ Baurd nói lên việc thu phát dữ liệu giữa thiết bị và cổng nối tiếp nhanh hay chậm. Cổng nối tiếp RS-232 chỉ sử dụng 2 trạng thái điện áp, mức 0 hay mức 1.
http://www.ebook.edu.vn 35 Bít Start là bít đầu tiên của khung truyền. Bít này là sự chuyển trạng thái từ điện áp âm sang điện áp dương. Khoảng thời gian của bít Start được tính bằng giây và tỉ lệ nghịch với tốc độ Baurd. Nếu thiết bị truyền với tốc độ Baurd là 9600, khoảng cách giữa bít Start với bít kế tiếp khoảng 0.104 ms. Toàn bộ khung truyền 11 bít truyền cỡ khoảng 1.146ms.
Các bít dữ liệu được truyền từ bít thấp nhất (LSB) tới các bít cao (MSB). Để dịch các bít dữ liệu trong khung truyền, bạn cần phải đọc từ phải sang trái và đọc mức 1 cho điện áp âm còn 0 cho điện áp dương. Hình trên là một khung truyền dữ liệu có mã 1101101 (Binary) hoặc ở dạng mã Hex là 6D.
Bít chẵn lẻ là bít ở sau các bít dữ liệu trong khung truyền. Nếu có bít chẵn lẻ, bít này cũng bị đảo ngược trạng thái (1 đối với điện áp âm, 0 đối với điện áp dương). Bít này thường dùng với chức năng kiểm tra lỗi.
Phần cuối cùng của khung truyền bao gồm 1, 1.5, 2 bit stop. Những bit này luôn luôn ở trạng thái âm.
2.7.4. Để truyền dữ liệu nhanh hơn.
Khi nói đến truyền thơng nối tiếp là ta phải quan tâm đến cấu trúc của khung truyền và tốc độ Baurd. Tốc độ này được tính bằng tốc độ Baud chia cho số bít trong khung truyền. Ở ví dụ trên, khung truyền có 11 bít, nếu tốc độ Baud là 9600 thì mỗi một giây ta sẽ nhận được 9600/11 = 872 ký tự.