Luận Văn Tốt Nghiệp: Thiết Kế và Thực Hiện Mạch Quang Giao Tiếp Với Máy Tính

Chuyên khảo phân tích Thiết kế và thi công mạch quang báo giao tiếp với máy tính 2, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Người đăng

Ẩn danh
121
5
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI GIỚI THIỆU

1. CHƯƠNG 1: GIỚI THIỆU CÁC PHƯƠNG PHÁP GIAO TIẾP MÁY TÍNH

1.1. GIAO TIẾP BẰNG SLOT CARD

1.2. GIAO TIẾP BẰNG CỔNG SONG SONG

1.3. GIAO TIẾP BẰNG CỔNG NỐI TIẾP

2. CHƯƠNG 2: TRUYỀN THÔNG NỐI TIẾP

2.1. GIỚI THIỆU TRUYỀN THÔNG NỐI TIẾP

2.2. THANH GHI ĐIỀU KHIỂN ĐƯỜNG TRUYỀN

2.3. THANH GHI ĐIỀU KHIỂN MODEM

2.4. THANH GHI TRẠNG THÁI ĐƯỜNG DÂY

2.5. CHUẨN RS-449, RS-423A

3. CHƯƠNG 3: GIỚI THIỆU LINH KIỆN

3.1. GIỚI THIỆU VI ĐIỀU KHIỂN AT89C51

3.1.1. KHẢO SÁT VI ĐIỀU KHIỂN 8951

3.1.2. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MSC-51

3.1.3. KHẢO SÁT SƠ ĐỒ CHÂN CỦA 8951

3.1.4. CHỨC NĂNG CÁC CHÂN CỦA 8951

3.1.5. CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN

3.2. TỔ CHỨC BỘ NHỚ VÀ CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT

3.3. HOẠT ĐỘNG TIMER CỦA 8951

3.3.1. CÁC THANH GHI ĐIỀU KHIỂN TIMER

3.4. HOẠT ĐỘNG CỦA PORT NỐI TIẾP

3.4.1. GIỚI THIỆU

3.4.2. CÁC THANH GHI VÀ CHẾ ĐỘ HOẠT ĐỘNG CỦA PORT NỐI TIẾP

3.5. GIỚI THIỆU IC MAX-232

3.6. GIỚI THIỆU VISUAL BASIC

3.6.1. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH VISUAL BASIC

3.6.2. GIỚI THIỆU CÁC PHẦN MỀM LẬP TRÌNH

3.6.3. TỔNG QUAN VỀ VISUAL BASIC

3.6.4. GIỚI THIỆU THƯ VIỆN LIÊN KẾT ĐỘNG (DLL)

3.6.5. SỬ DỤNG DLL TRONG VISUAL BASIC

3.6.6. SỬ DỤNG THỦ TỤC VÀ HÀM TRONG PORTLIB.DLL

3.7. TRUYỀN THÔNG NỐI TIẾP DÙNG TRONG VISUAL BASIC

3.7.1. ĐIỀU KHIỂN TRUYỀN THÔNG

3.7.2. CÁC ĐẶC TÍNH PHỤC VỤ NHẬP XUẤT DỮ LIỆU

3.7.3. CÁC THÔNG BÁO LỖI

4. CHƯƠNG 4: THIẾT KẾ

4.1. SƠ ĐỒ KHỐI TỔNG QUAN

4.2. SƠ ĐỒ THIẾT KẾ CHI TIẾT

4.2.1. THIẾT KẾ MẠCH GIAO TIẾP MÁY TÍNH

4.2.2. SƠ ĐỒ MẠCH HIỂN THỊ

4.2.3. THIẾT KẾ KHỐI NGUỒN

5. CHƯƠNG 5: THIẾT KẾ CHƯƠNG TRÌNH

5.1. LƯU ĐỒ CHƯƠNG TRÌNH ĐIỀU KHIỂN

5.2. LƯU ĐỒ CHƯƠNG TRÌNH CON

5.2.1. LƯU ĐỒ CHƯƠNG TRÌNH CON DÒ MÃ KÝ TỰ

5.2.2. LƯU ĐỒ CHƯƠNG TRÌNH CON DÒ MÃ VÀ CHUYỂN SANG RAM NGOẠI

5.2.3. LƯU ĐỒ CHƯƠNG TRÌNH XỬ LÝ TRONG THỜI GIAN DELAY

5.2.4. LƯU ĐỒ CHƯƠNG TRÌNH NHẬN TỪ MÁY TÍNH

5.2.5. LƯU ĐỒ CHƯƠNG TRÌNH VỪA QUÉT VỪA XỬ LÝ

5.3. CHƯƠNG TRÌNH ĐIỀU KHIỂN VISUAL BASIC

5.3.1. GIAO DIỆN ĐIỀU KHIỂN

5.3.2. HƯỚNG DẪN SỬ DỤNG

KẾT LUẬN VÀ ĐỀ NGHỊ

TÀI LIỆU THAM KHẢO

PHẦN PHỤ LỤC

Tóm tắt

I. Tổng quan về thiết kế mạch quang giao tiếp với máy tính

Thiết kế và thực hiện mạch quang giao tiếp với máy tính là một lĩnh vực cốt lõi trong ngành điện tử viễn thông, đóng vai trò cầu nối giữa thế giới số của máy tính và các thiết bị vật lý bên ngoài. Mục tiêu chính là tạo ra một kênh truyền dữ liệu quang ổn định, tốc độ cao và đặc biệt là an toàn. Việc sử dụng ánh sáng làm trung gian truyền tín hiệu mang lại nhiều ưu điểm vượt trội so với các phương pháp truyền dẫn bằng điện thông thường. Lợi ích lớn nhất là khả năng cách ly quang hoàn toàn giữa hai hệ thống. Điều này giúp loại bỏ nguy cơ nhiễu điện từ (EMI), vòng lặp đất (ground loops) và bảo vệ các cổng giao tiếp nhạy cảm của máy tính khỏi sự cố quá áp hoặc ngắn mạch từ thiết bị ngoại vi. Các linh kiện quang điện như optocoupler, photodiode và phototransistor là nền tảng của công nghệ này. Trong bối cảnh công nghiệp hóa và tự động hóa, nhu cầu giao tiếp giữa máy tính điều khiển trung tâm và các hệ thống chấp hành, cảm biến ngày càng tăng. Mạch quang không chỉ đáp ứng yêu cầu về khoảng cách truyền xa mà còn đảm bảo độ tin cậy trong môi trường công nghiệp khắc nghiệt. Tài liệu gốc "THIẾT KẾ VÀ THI CÔNG MẠCH QUANG BÁO GIAO TIẾP VỚI MÁY TÍNH" từ năm 2003 đã đặt nền móng cho việc ứng dụng vi điều khiển AT89C51 và Visual Basic, cho thấy tiềm năng to lớn của lĩnh vực này. Ngày nay, với sự phát triển của các vi điều khiển PIC/AVR/STM32 mạnh mẽ hơn và các chuẩn giao tiếp USB hiện đại, việc thiết kế các mạch quang trở nên linh hoạt và hiệu quả hơn bao giờ hết, mở ra nhiều ứng dụng từ bảng quảng cáo điện tử, hệ thống đo lường, đến điều khiển robot và các đồ án điện tử viễn thông phức tạp.

1.1. Khái niệm và tầm quan trọng của truyền dữ liệu quang

Truyền dữ liệu quang là phương pháp truyền tải thông tin sử dụng sóng ánh sáng, thường là hồng ngoại hoặc ánh sáng khả kiến, thông qua một môi trường truyền dẫn hoặc không gian tự do. Thay vì dùng các electron di chuyển trong dây dẫn, phương pháp này sử dụng các photon. Tầm quan trọng của nó nằm ở khả năng chống nhiễu tuyệt vời. Vì ánh sáng không bị ảnh hưởng bởi nhiễu điện từ, các mạch thu phát hồng ngoại có thể hoạt động ổn định trong môi trường có nhiều động cơ, biến tần, hoặc các nguồn phát xạ điện từ mạnh khác. Hơn nữa, nó cung cấp một giải pháp cách ly quang hiệu quả, bảo vệ an toàn cho cả người vận hành và thiết bị.

1.2. Nguyên lý hoạt động cơ bản của một optocoupler

Một optocoupler (hay bộ cách ly quang) là linh kiện then chốt, bao gồm một bộ phát quang (thường là LED hồng ngoại) và một bộ thu quang (như phototransistor) được đóng gói trong cùng một vỏ kín. Khi có dòng điện đi qua LED, nó phát ra ánh sáng. Ánh sáng này chiếu vào cực base của phototransistor, làm cho nó dẫn điện. Do không có kết nối điện trực tiếp giữa đầu vào và đầu ra, tín hiệu được truyền đi hoàn toàn bằng ánh sáng. Nguyên lý này tạo ra một rào cản điện áp an toàn, cho phép hai mạch có mức điện áp chênh lệch lớn hoặc nền đất (ground) khác nhau có thể giao tiếp mà không gây hư hỏng.

1.3. So sánh giao tiếp quang với giao tiếp điện truyền thống

So với giao tiếp điện truyền thống như giao tiếp RS232 trực tiếp, giao tiếp quang có ưu thế về khả năng chống nhiễu và an toàn. Giao tiếp điện dễ bị ảnh hưởng bởi sụt áp trên đường dây dài và nhiễu xuyên kênh. Ngược lại, truyền thông nối tiếp qua quang học miễn nhiễm với các vấn đề này. Tuy nhiên, giao tiếp quang có thể bị hạn chế về tốc độ bởi thời gian đáp ứng của các linh kiện quang điện. Việc thiết kế mạch khuếch đại quangmạch chuyển đổi tín hiệu cũng đòi hỏi sự tính toán cẩn thận để đảm bảo tín hiệu không bị méo, đặc biệt là ở tốc độ cao.

II. Các thách thức chính khi thực hiện mạch quang giao tiếp

Việc thực hiện một mạch quang giao tiếp với máy tính dù mang lại nhiều lợi ích nhưng cũng đi kèm với không ít thách thức kỹ thuật. Một trong những vấn đề lớn nhất là đảm bảo tính toàn vẹn tín hiệu ở tốc độ cao. Thời gian đáp ứng của các linh kiện quang điện như photodiode và phototransistor có thể gây ra hiện tượng méo tín hiệu, làm giới hạn tốc độ truyền tối đa. Điều này đòi hỏi phải lựa chọn linh kiện cẩn thận và thiết kế mạch khuếch đại quang phù hợp. Thách thức thứ hai là sự tương thích giữa các chuẩn giao tiếp. Máy tính hiện đại chủ yếu sử dụng giao tiếp USB, trong khi nhiều vi điều khiển vẫn hoạt động với chuẩn UART (TTL). Việc thiết kế một mạch chuyển đổi tín hiệu hiệu quả để kết nối hai thế giới này, đồng thời tích hợp lớp cách ly quang, là một bài toán phức tạp. Sai sót trong giai đoạn này có thể dẫn đến mất dữ liệu hoặc giao tiếp không ổn định. Một thách thức khác nằm ở khâu thiết kế mạch in PCB. Việc bố trí đường mạch không hợp lý có thể gây nhiễu串 âm (crosstalk) giữa đường tín hiệu và đường nguồn, hoặc làm giảm hiệu quả của lớp cách ly. Đặc biệt, khoảng cách an toàn (creepage and clearance) giữa hai phía của bộ optocoupler cần được tuân thủ nghiêm ngặt để đảm bảo khả năng cách ly điện áp. Cuối cùng, việc phát triển phần mềm đồng bộ giữa vi điều khiển và máy tính cũng là một rào cản. Cần có một giao thức truyền thông nối tiếp rõ ràng, cơ chế xử lý lỗi và đảm bảo driver cho thiết bị USB (nếu sử dụng) hoạt động chính xác. Việc gỡ lỗi khi có sự cố xảy ra thường khó khăn vì nó có thể bắt nguồn từ phần cứng, firmware hoặc phần mềm giao diện.

2.1. Vấn đề suy hao và méo tín hiệu trong truyền dữ liệu quang

Tín hiệu quang có thể bị suy hao do khoảng cách, môi trường truyền không trong suốt, hoặc do sự không thẳng hàng giữa bộ phát và bộ thu. Méo tín hiệu, đặc biệt là méo dạng xung vuông ở tần số cao, xảy ra do thời gian lên và xuống (rise/fall time) của optocoupler không đủ nhanh. Để khắc phục, cần lựa chọn các bộ cách ly quang tốc độ cao và thiết kế mạch lái (driver) cho LED phát đủ mạnh, cũng như mạch nhận có độ nhạy phù hợp. Việc sử dụng cáp quang thay cho truyền qua không khí có thể giảm thiểu đáng kể suy hao và ảnh hưởng từ môi trường bên ngoài.

2.2. Lựa chọn vi điều khiển và linh kiện quang điện phù hợp

Việc lựa chọn vi điều khiển PIC/AVR/STM32 phụ thuộc vào yêu cầu về tốc độ xử lý, số lượng cổng I/O, và các ngoại vi tích hợp sẵn (như UART, SPI, USB). Đối với linh kiện quang điện, cần xem xét các thông số như Tỷ số truyền dòng (CTR - Current Transfer Ratio) của optocoupler, băng thông, và điện áp cách ly. Một CTR quá thấp sẽ yêu cầu dòng kích lớn, trong khi một CTR quá cao có thể nhạy với nhiễu. Lựa chọn sai linh kiện có thể dẫn đến một hệ thống hoạt động không ổn định hoặc không đạt được hiệu suất như mong muốn.

2.3. Khó khăn trong việc đồng bộ phần mềm và xử lý lỗi

Đồng bộ hóa luồng dữ liệu giữa máy tính và vi điều khiển là rất quan trọng. Các vấn đề như tràn bộ đệm (buffer overflow) ở phía nhận có thể xảy ra nếu bên gửi truyền dữ liệu quá nhanh. Cần triển khai các cơ chế bắt tay (handshaking) bằng phần cứng hoặc phần mềm. Ngoài ra, việc xây dựng một giao thức truyền tin có khả năng phát hiện và yêu cầu truyền lại gói tin lỗi (ví dụ, sử dụng checksum hoặc CRC) sẽ tăng cường độ tin cậy của hệ thống, đặc biệt trong các ứng dụng đồ án điện tử viễn thông yêu cầu độ chính xác cao.

III. Hướng dẫn thiết kế phần cứng cho mạch quang giao tiếp

Quá trình thiết kế phần cứng là nền tảng quyết định sự thành công của dự án thiết kế và thực hiện mạch quang giao tiếp với máy tính. Giai đoạn này bao gồm ba bước chính: lựa chọn linh kiện, vẽ sơ đồ nguyên lý, và thiết kế mạch in. Đầu tiên, việc lựa chọn linh kiện phải dựa trên yêu cầu cụ thể của ứng dụng. Về bộ não trung tâm, các dòng vi điều khiển PIC/AVR/STM32 cung cấp nhiều lựa chọn với các ngoại vi UART tích hợp, giúp đơn giản hóa việc truyền thông nối tiếp. Đối với khối cách ly, optocoupler PC817 là lựa chọn phổ biến cho tốc độ thấp, trong khi 6N137 phù hợp hơn cho các ứng dụng tốc độ cao. Việc tính toán điện trở hạn dòng cho LED bên trong optocoupler là cực kỳ quan trọng để đảm bảo nó hoạt động trong vùng an toàn và đạt được Tỷ số truyền dòng (CTR) mong muốn. Tiếp theo, sơ đồ nguyên lý mạch quang cần được thiết kế một cách logic và rõ ràng. Sơ đồ nên được chia thành các khối chức năng riêng biệt: khối nguồn, khối vi điều khiển, khối cách ly phát, khối cách ly thu, và khối giao tiếp với máy tính (ví dụ: sử dụng IC chuyển đổi USB-to-UART như CH340 hoặc FT232). Việc phân chia này giúp dễ dàng kiểm tra và gỡ lỗi sau này. Cần chú ý đến việc kết nối chân của các linh kiện và đảm bảo các mức logic tương thích. Cuối cùng, giai đoạn thiết kế mạch in PCB đóng vai trò quyết định đến khả năng chống nhiễu và độ ổn định. Sử dụng các phần mềm chuyên dụng như Altium Designer hoặc KiCad là cần thiết. Nguyên tắc quan trọng nhất khi layout mạch có cách ly quang là phải tách biệt hoàn toàn vùng đất (ground plane) của hai phía sơ cấp và thứ cấp. Giữa hai vùng đất này cần có một khoảng trống (isolation slot) trên PCB, ngay bên dưới con optocoupler, để tối đa hóa khoảng cách cách điện.

3.1. Xây dựng sơ đồ nguyên lý mạch quang chi tiết

Một sơ đồ nguyên lý mạch quang tốt phải thể hiện rõ ràng luồng tín hiệu. Ví dụ, tín hiệu TX từ vi điều khiển sẽ đi qua một điện trở hạn dòng, vào chân anode của LED trong optocoupler. Chân cathode của LED được nối với đất của vi điều khiển. Ở phía máy tính, chân collector của phototransistor được kéo lên nguồn 5V (của phía máy tính) thông qua một điện trở kéo lên (pull-up), và tín hiệu RX của máy tính được lấy ra từ chân này. Việc ghi chú rõ ràng các giá trị linh kiện, điện áp hoạt động và tên tín hiệu trên sơ đồ là bắt buộc để thuận tiện cho việc thi công và bảo trì.

3.2. Kỹ thuật thiết kế mạch in PCB cho mạch cách ly quang

Trong thiết kế mạch in PCB, quy tắc vàng là 'đất riêng, nguồn riêng'. Vùng mạch phía vi điều khiển và vùng mạch phía máy tính phải có đường cấp nguồn và mặt phẳng đất (ground plane) hoàn toàn độc lập. Đường đi của tín hiệu quang nên ngắn và thẳng. Tránh đi các đường tín hiệu số tốc độ cao song song với nhau trên một quãng đường dài để giảm nhiễu串 âm. Việc sử dụng các tụ lọc nhiễu (decoupling capacitors) gần chân nguồn của vi điều khiển và các IC khác là rất quan trọng để đảm bảo nguồn cấp ổn định. Phần mềm Altium Designer cung cấp các công cụ kiểm tra quy tắc thiết kế (DRC) mạnh mẽ giúp phát hiện sớm các lỗi layout tiềm ẩn.

3.3. Mô phỏng hoạt động mạch bằng phần mềm Proteus

Trước khi tiến hành gia công PCB, việc sử dụng phần mềm Proteus mô phỏng có thể tiết kiệm rất nhiều thời gian và chi phí. Proteus cho phép xây dựng sơ đồ nguyên lý và mô phỏng hoạt động của mạch trong môi trường ảo. Người dùng có thể nạp file HEX đã biên dịch cho vi điều khiển và quan sát dạng sóng tín hiệu tại các điểm khác nhau bằng các công cụ như máy hiện sóng ảo (virtual oscilloscope) hay logic analyzer. Mặc dù mô phỏng không thể thay thế hoàn toàn việc kiểm tra trên mạch thật, đặc biệt là với các vấn đề nhiễu ở tần số cao, nó vẫn là một bước kiểm tra logic hoạt động vô cùng hữu ích.

IV. Phương pháp lập trình vi điều khiển và giao diện máy tính

Phần mềm là linh hồn của hệ thống, quyết định cách thức thiết kế và thực hiện mạch quang giao tiếp với máy tính hoạt động. Quá trình này bao gồm hai phần song song: lập trình firmware cho vi điều khiển và xây dựng ứng dụng giao diện trên máy tính. Đối với firmware, nhiệm vụ chính của vi điều khiển PIC/AVR/STM32 là cấu hình ngoại vi truyền thông nối tiếp (UART) với các thông số như tốc độ baud, số bit dữ liệu, và bit dừng. Chương trình cần có một vòng lặp chính để xử lý các tác vụ và một trình phục vụ ngắt (Interrupt Service Routine - ISR) để nhận dữ liệu từ máy tính một cách hiệu quả. Khi có một byte dữ liệu đến, ngắt UART sẽ được kích hoạt, chương trình sẽ đọc byte đó từ thanh ghi đệm và lưu vào một bộ đệm (buffer) để xử lý sau. Ngược lại, để gửi dữ liệu đi, chương trình chỉ cần ghi từng byte vào thanh ghi truyền của UART. Ở phía máy tính, việc xây dựng một giao diện người dùng (GUI) là cần thiết để điều khiển và hiển thị dữ liệu. Như trong tài liệu tham khảo, Visual Basic là một lựa chọn kinh điển. Tuy nhiên, ngày nay, việc lập trình C# giao diện máy tính với Windows Forms hoặc WPF, hay sử dụng Python với các thư viện như PyQt/Tkinter đang trở nên phổ biến hơn do tính linh hoạt và cộng đồng hỗ trợ lớn. Ứng dụng trên máy tính cần mở đúng cổng COM ảo được tạo bởi driver cho thiết bị USB, cấu hình các thông số truyền thông tương ứng với vi điều khiển, và sau đó có thể bắt đầu quá trình gửi và nhận dữ liệu. Việc sử dụng các luồng (threading) riêng biệt để xử lý việc nhận dữ liệu giúp giao diện không bị 'đóng băng' khi chờ dữ liệu đến.

4.1. Lập trình firmware cho vi điều khiển nhận và gửi dữ liệu

Firmware cho vi điều khiển STM32 thường được viết bằng ngôn ngữ C/C++. Bước đầu tiên là khởi tạo hệ thống clock, sau đó cấu hình các chân GPIO cho chức năng UART (TX và RX). Tiếp theo, cấu hình bộ UART với tốc độ baud, parity, và số bit stop. Sử dụng ngắt (interrupt) khi nhận dữ liệu (RXNE - Read Data Register Not Empty) là phương pháp tối ưu. Trong hàm ngắt, dữ liệu sẽ được đọc từ thanh ghi dữ liệu của UART và đưa vào một hàng đợi (queue) hoặc bộ đệm vòng (circular buffer). Vòng lặp chính của chương trình sẽ kiểm tra hàng đợi này để xử lý dữ liệu. Để gửi dữ liệu, một hàm UART_SendString() có thể được viết để lặp qua từng ký tự của chuỗi và ghi vào thanh ghi truyền (TDR - Transmit Data Register).

4.2. Xây dựng ứng dụng giao diện C trên máy tính

Trong việc lập trình C# giao diện máy tính, lớp SerialPort trong .NET Framework là công cụ mạnh mẽ để làm việc với cổng COM. Lập trình viên cần tạo một đối tượng SerialPort, thiết lập các thuộc tính như PortName, BaudRate, DataBits, Parity, StopBits. Sau đó, gọi phương thức Open() để mở cổng. Để gửi dữ liệu, sử dụng phương thức Write(). Để nhận dữ liệu, cách tốt nhất là đăng ký sự kiện DataReceived. Khi có dữ liệu đến cổng, sự kiện này sẽ được kích hoạt, và trong trình xử lý sự kiện, ta có thể đọc dữ liệu bằng phương thức Read() hoặc ReadLine(). Việc này đảm bảo ứng dụng có khả năng đáp ứng cao.

4.3. Thiết lập giao thức truyền thông nối tiếp hiệu quả

Để đảm bảo dữ liệu được truyền và nhận một cách chính xác, cần có một giao thức truyền thông nối tiếp đơn giản. Một phương pháp phổ biến là đóng gói dữ liệu vào các 'khung' (frame). Mỗi khung có thể bắt đầu bằng một ký tự đặc biệt (Start Byte), theo sau là độ dài của dữ liệu, chính dữ liệu, một byte kiểm tra lỗi (Checksum), và kết thúc bằng một ký tự đặc biệt khác (End Byte). Bên nhận sẽ chờ Start Byte, đọc độ dài, nhận đủ số byte dữ liệu, sau đó tính toán checksum của dữ liệu nhận được và so sánh với checksum trong khung. Nếu khớp, dữ liệu được coi là hợp lệ.

V. Ứng dụng thực tiễn Mạch quang báo giao tiếp máy tính

Một ứng dụng kinh điển và trực quan của chủ đề này chính là thiết kế và thực hiện mạch quang giao tiếp với máy tính cho mục đích hiển thị thông tin, cụ thể là bảng quang báo LED ma trận. Dự án được mô tả trong tài liệu gốc là một minh chứng rõ ràng về tính khả thi và hiệu quả của giải pháp. Hệ thống bao gồm một board mạch điều khiển trung tâm sử dụng vi điều khiển AT89C51, kết nối với máy tính thông qua chuẩn giao tiếp RS232 đã được cách ly. Máy tính, thông qua một phần mềm viết bằng Visual Basic, cho phép người dùng nhập vào một chuỗi ký tự. Chuỗi ký tự này sau đó được gửi xuống vi điều khiển. Vi điều khiển nhận dữ liệu, lưu vào bộ nhớ trong và thực hiện nhiệm vụ quét LED để hiển thị nội dung lên bảng quang báo. Mạch quang báo sử dụng các module LED ma trận 8x8, và vi điều khiển điều khiển cả việc chọn hàng và cột để tạo ra hình ảnh ký tự. Việc sử dụng cách ly quang trong mạch giao tiếp RS232 với IC MAX232 và optocoupler đóng vai trò cực kỳ quan trọng. Nó giúp bảo vệ cổng COM của máy tính khỏi các sự cố điện có thể xảy ra ở board mạch công suất lớn của bảng LED. Đồng thời, nó cũng ngăn chặn nhiễu từ mạch quét LED (hoạt động ở tần số cao) ảnh hưởng ngược lại máy tính. Kết quả của dự án là một hệ thống cho phép cập nhật nội dung hiển thị một cách linh hoạt và trực quan từ máy tính, thay thế cho các phương pháp nạp chương trình cố định, thiếu uyển chuyển. Đây là một đồ án điện tử viễn thông tiêu biểu, kết hợp nhuần nhuyễn giữa kiến thức về vi điều khiển, kỹ thuật số, lập trình nhúng và lập trình ứng dụng trên máy tính.

5.1. Phân tích thiết kế của đồ án mạch quang báo gốc

Đồ án gốc sử dụng vi điều khiển AT89C51 làm trung tâm xử lý. Port 0 được dùng để xuất dữ liệu cho các cột của ma trận LED. Port 1 và Port 2 được dùng để giải mã địa chỉ, chọn hàng và cột cần quét. Port 3, với các chân RXD và TXD, đảm nhận nhiệm vụ truyền thông nối tiếp với máy tính. Mạch giao tiếp sử dụng IC MAX232 để chuyển đổi mức điện áp TTL của vi điều khiển sang mức điện áp của chuẩn giao tiếp RS232. Một lớp cách ly quang được thêm vào giữa vi điều khiển và MAX232 để đảm bảo an toàn. Sơ đồ này tuy cổ điển nhưng thể hiện đầy đủ các nguyên tắc cơ bản của một hệ thống nhúng giao tiếp với PC.

5.2. Kỹ thuật quét LED ma trận để hiển thị ký tự

Để hiển thị hình ảnh trên một ma trận LED, kỹ thuật quét (scanning) được sử dụng để tiết kiệm số chân I/O của vi điều khiển. Thay vì điều khiển từng LED riêng lẻ, vi điều khiển sẽ lần lượt kích hoạt từng hàng (hoặc cột) một và cùng lúc đó xuất dữ liệu tương ứng cho tất cả các cột (hoặc hàng) của hàng (cột) đang được kích hoạt. Quá trình này được lặp lại với tốc độ rất nhanh (thường trên 100Hz). Do hiện tượng lưu ảnh của mắt người, chúng ta sẽ thấy một hình ảnh ổn định thay vì các hàng/cột được quét rời rạc. Đây là nguyên tắc cốt lõi đằng sau hầu hết các màn hình LED.

5.3. Vai trò của giao diện Visual Basic trong hệ thống

Giao diện trên máy tính, được lập trình bằng Visual Basic trong dự án gốc, đóng vai trò là cầu nối giữa người dùng và phần cứng. Nó cung cấp một hộp văn bản (Textbox) để người dùng nhập nội dung, một nút bấm (Button) để gửi lệnh. Khi nút được nhấn, chương trình sẽ lấy chuỗi ký tự, đóng gói theo một giao thức đã định sẵn, và gửi qua cổng COM. Giao diện này giúp đơn giản hóa hoàn toàn quá trình điều khiển, cho phép người không có chuyên môn về kỹ thuật cũng có thể dễ dàng thay đổi nội dung hiển thị trên bảng quang báo.

VI. Kết luận và xu hướng phát triển mạch quang giao tiếp mới

Việc thiết kế và thực hiện mạch quang giao tiếp với máy tính đã và đang là một kỹ thuật quan trọng, mang lại sự an toàn và ổn định cho các hệ thống điện tử. Từ những nền tảng kinh điển như sử dụng vi điều khiển 8-bit và giao tiếp RS232, lĩnh vực này đã có những bước tiến vượt bậc. Các nguyên tắc cốt lõi về cách ly quang, lựa chọn linh kiện quang điện, và thiết kế phần mềm đồng bộ vẫn giữ nguyên giá trị. Tuy nhiên, công nghệ hiện đại đã mở ra nhiều hướng phát triển mới, hứa hẹn hiệu suất và tính năng cao hơn. Xu hướng đầu tiên là sự chuyển dịch sang các chuẩn giao tiếp tốc độ cao và tiện dụng hơn. Giao tiếp USB đã gần như thay thế hoàn toàn cổng COM trên các máy tính hiện đại. Do đó, các thiết kế mới thường tích hợp IC chuyển đổi USB-to-UART hoặc sử dụng các vi điều khiển PIC/AVR/STM32 có hỗ trợ USB native. Điều này không chỉ tăng tốc độ truyền dữ liệu mà còn đơn giản hóa việc kết nối cho người dùng cuối, vì không cần bộ chuyển đổi ngoài và được cấp nguồn trực tiếp từ cổng USB. Một xu hướng khác là việc tăng cường tốc độ truyền thông quang. Thay vì chỉ truyền các tín hiệu UART tốc độ thấp, các hệ thống hiện đại hướng tới việc truyền dữ liệu tốc độ cao qua cáp quang, phục vụ cho các ứng dụng như truyền video, âm thanh hoặc dữ liệu cảm biến thời gian thực trong công nghiệp. Điều này đòi hỏi các bộ thu phát quang chuyên dụng và các giao thức phức tạp hơn. Cuối cùng, sự tích hợp với Internet of Things (IoT) đang mở ra một kỷ nguyên mới. Các mạch quang giờ đây không chỉ giao tiếp với một máy tính đơn lẻ mà có thể kết nối với các bo mạch như ESP32, Raspberry Pi, cho phép truyền dữ liệu lên nền tảng đám mây, điều khiển và giám sát từ xa qua internet. Sự kết hợp giữa cách ly quang và kết nối không dây tạo ra các hệ thống vừa an toàn vừa linh hoạt.

6.1. Tóm tắt các nguyên tắc thiết kế cốt lõi đã trình bày

Tổng kết lại, một thiết kế thành công yêu cầu: (1) Lựa chọn đúng linh kiện quang điện và vi điều khiển dựa trên yêu cầu tốc độ và tính năng. (2) Thiết kế sơ đồ nguyên lý mạch quang rõ ràng, phân chia theo khối chức năng. (3) Tuân thủ nghiêm ngặt các quy tắc layout PCB cho mạch cách ly, đặc biệt là tách biệt vùng đất. (4) Xây dựng firmware và phần mềm giao diện với một giao thức truyền thông đáng tin cậy. Việc nắm vững các nguyên tắc này là chìa khóa để tạo ra một hệ thống ổn định và hiệu quả.

6.2. Hướng tới giao tiếp USB và các chuẩn tốc độ cao hơn

Tương lai của lĩnh vực này gắn liền với giao tiếp USB. Các driver cho thiết bị USB ngày càng được chuẩn hóa, giúp việc phát triển trở nên dễ dàng hơn. Các lớp thiết bị như CDC (Communications Device Class) cho phép một thiết bị USB hoạt động như một cổng COM ảo, giúp tái sử dụng các đoạn mã truyền thông nối tiếp đã có. Đối với yêu cầu cao hơn, các giao thức như SPI hoặc I2C cũng có thể được truyền qua một lớp cách ly quang, cho phép giao tiếp tốc độ cao giữa các bo mạch trong cùng một hệ thống mà vẫn đảm bảo an toàn điện.

6.3. Tích hợp với IoT và các hệ thống điều khiển từ xa

Sự kết hợp giữa mạch quang và IoT là một hướng đi đầy tiềm năng. Một cảm biến công nghiệp có thể được đọc bởi một vi điều khiển, dữ liệu sau đó được truyền qua một bộ optocoupler đến một module Wi-Fi/Ethernet (như ESP8266/ESP32). Module này sẽ gửi dữ liệu lên một máy chủ đám mây. Giải pháp này đảm bảo phần mạch cảm biến hoạt động trong môi trường khắc nghiệt được cách ly hoàn toàn khỏi phần mạch truyền thông internet, tạo ra một hệ thống giám sát từ xa vừa an toàn, vừa thông minh.

10/07/2025
Thiết kế và thi công mạch quang báo giao tiếp với máy tính 2

Trích đoạn nội dung tài liệu

mở đầu việc truyền dữ liệu. Tiếp theo đó là các bit riêng lẻ đến, trong đó các bit có giá trị thấp được gởi trước tiên. Con số của các bit thay đổi giữa 5 và 8. Ở cuối dòng dữ liệu còn có một bit dừng ( stop bit) dé dat lai trạng thái lối ra (12V).

Tốc độ baud có giá trị thông thường là : 300, 600, 1200, 2400, 4800, 9600, 19200 Ký hiệu baud tương ứng với số bit truyền trong 1 gidy (bit persecond_bps). GVHD : Trương Thị Bích Ngà SVTH : Đỗ Thế Thịnh~ Nguyễn Xuân Thắng trang 16 Luận Văn Tốt Nghiệp Ví dụ tốc độ baud là 9600 có nghĩa là có 9600 bit dữ liệu được truyền trong 1 giây. Mỗi byte dữ liệu có 1 bit start và 1 bit stop được gởi kèm theo, do đó khi truyền một byte dữ liệu đã có 10 bịt được gởi đi. Với tốc độ baud thông thường, mỗi giây cho phép truyền nhiều nhất từ 30 đến 1920 byte dữ liệu, nhược điểm lớn nhất của cổng truyền nối tiếp là tốc độ truyền dữ liệu bị hạn chế.

Một trong những yêu cầu quan trọng của RS-232 là thời gian chuyển từ một mức logic này sang mức logic khác không vượt quá 4% thời gian một bit. Vì thếở tốc 4619200 baud thời gian mức logic phẩi nhỏ hơn 0. vấn để này làm giới hạn chiều dài đường truyền. Với tốc độ 19200 baud thì ta có thể truyễn xa nhất là 15m.

Một trong những vấn để quan trọng cẦn chú ý khi sử dụng RS-232 là mạch thu phát không cần bằng. Điều này có ý nghĩa là tín hiệu vào ra được so với đất. Vì vậy nếu điện thể tại hài điểm đất của hai mach thu phát không cân bằng nhau thì sẽ có dòng điện chạy trên dây nổi đất kết quả sẽ có ấp rơi trên dây nối đất ( V=I. Sẽ lầm suy yêu tủ hiệu logic.

Nếu truyền tú hiệu đi xã R sẽ táng, dẫn đến áp rơi trên đường dây nết đất sẽ lồn dẫn đến lúc tn hiệu logic sẽ rợi vào mức khóng xác định và mạch thủ sẽ không nhân đúng dữ: Hiệu được truyền từ mạch phát. Chính sự khóng cần bằng trên mạch thụ phát là một trong những nguyên nhân giới hạn đường truyền, VL, CHUAN RS-449, RS-423A Do chuẩn thông dụng RS-232 có hạn chế như: © — RS-232 bị hạn chế tốc độ ứn hiệu, lớn nhất là 20Kbps và chi truyền được tối đa là 30m. e — Khi các mạch RS-232 không cân bằng, sự loại trừ nhiễu nhỏ hơn mức tối ưu. s — Các điện áp RS-232 quá cao đối với mật độ dòng điện của IC hiện nay.

e — Trong nhiều ứng dụng, cần thiết phẩi có thêm các đường dây nối giữa các modem với các DTE để kiểm tra từ xa. Do vậy vào năm 1978-1979, EIA đưa ra hai chuẩn giao tiếp mới để khắc phục các nhược điểm trên của RS-232 là RS-449 ( cân bằng) và RS-423A ( không cân bằng). Sự lựa chọn giữa truyền cân bằng và không cân bằng được quyết định bởi tốc độ truyền tín hiệu. Khi tốc độ truyền vượt quá 20 Kbps thì hau hết các mạch sử dụng giao tiếp cân bằng.

Với chuẩn RS-423A, tốc độ truyển có thể lên đến trên 20Kbps. Khi tốc độ truyền lớn hơn 20 Kbps thì dùng đường truyển cân bằng. Với chuẩn RS-499, tốc độ GVHD : Trương Thị Bích Ngà - SVTH : Đỗ Thế Thịnh - Nguyễn Xuân Thắng trang 17 KL 00 A424 Luận Văn Tốt Nghiệp _ truyền có thể lên đến 100Kbps và khoảng cách đường truyền có thể lên đến 1 Km. “Tiêu chuẩn này sử dụng cho các IC kích phát và thu MC 3488 và MC 3486.

CHUẨN RS-422A : Một cải tiến nữa của chuẩn RS-232 là chuẩn RS-422A.Với chuẩn này độ lợi được gia tăng và sử dụng việc truyền dữ liệu sai biệt (differential data) trên những đường truyền cân bằng. Một dữ liệu sai biệt yêu câu hai dây, một cho dữ liệu không đảo ( noninverted) và một cho dữ liệu đảo ( inverted ). Dữ liệu được truyền trên đường dây cân bằng thường là cặp dây xoắn. Với chuẩn này tốc độ truyền và khoảng cách truyền được cải thiện rất nhiều.

VI, CHUẨN RS-48E : RS-485 là một thê hệ tiến của R§-422 và mở rộng số lượng ngoại vi giao tiếp, Nó cho phép kết nổi tryển thông nhiều thiết bị theo cả hai hướng, RS-422 và RS-232 thích hú cho việc tuyển đơn giản, trong khi đó RS-485 cho phép nhiễu đầu thu trên một đường tuyển bản song công, Tốc độ truyền khóng giới hạn và được xác định bài thời giản lên của xung, thường giới hạn là 1OMbps. Một mạng sử dụng tiêu chuẩn RS-485 cho phép 32 Transmiter/receiver với khoảng cách truyền tối đa là 1km đến 2 kín Bang so sanh đặc tính giữa các chuẩn truyền EIA “Thông số. RS-232 RS-422 RS-423A.2km 1⁄2km length Baudrate 20Kbps 10Mbps/12m 100Kbps/9m_ | 10Mbps/12m 1Mbps/120m 10Kbps/90m | IMbps/120m 100Kbps/1.2 km Mode Không cân | Cân bằng vi sai | Không cân | Cân bằng vi sai bằng bằng vi sai Drive no 1 1 1 32 Receiveno |1 L10 10 32 | Logic 0 +5V.4V 13V Cable/Signa | 1 2 2 2 GVHD : Trương Thị Bích Ngà SVTH : Đỗ Thế Thịnh Nguyễn Xuân Thắng trang 18 Luận Văn Tốt Nghiệp Methode Simplex Simplex Simplex Simplex Half-duplex | Half-duplex Half-duplex | Half-duplex Full-duplex_| Full-duplex Full-duplex__| Full-duplex Short circuit | S00mA 150mA 150mA 150mA current GVHD : Truong Thị Bích Nga „ SVTH : Đỗ Thế Thịnh — Nguyễn Xuân Thắng trang 19 Luận Văn Tốt Nghiệp PHAN I GIỚI THIỆU LINH KIỆN GVID : Trương Thị Bích Ngà SVTH : Đỗ Thế Thịnh - Nguyễn Xuân Thắng trang 20 Luận Văn Tốt Nghiệp CHƯƠNG 1 GIỚI THIỆU VI ĐIỀU KHIỂN AT 89C51 1. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MSC-5I (8951): Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự nhau, Ở đây giới thiệu IC ATS9CS51 là một họ IC vi điểu khiển do hãng Intel của Mỹ sẵn xuất, Chúng có các đặc điểm chúng như sau: Các đặc đ mì của ÑOSI được tóm tất như sau : Ý 4KHTEPROM bên trong dùng để lưu chương trình điều khiến V 128 Byte RAM nda Ý 4 Đoi xuất /nhap (outpuvinput) 8 bit.

Ý Có khả nàng giao tiếp truyền dữ liệu nối tiếp. ễ giao tiếp với 64 KB bộ nhớ Eprom bên ngoài dùng để lưu chương trình điều khiển ö tiếp với 64 KB bộ nhớ ngoài dùng để lưu dữ liệu. Ý Có các lệnh xử lý bit Ä Có 210 vị trí nhớ có thể truy xuất từng bit. 3Ì Có lệnh nhân và chia GVHD : Trương Thị Bích Ngà | SVTH : Đỗ Thế Thịnh— Nguyễn Xuân Thắng trang 21 Luận Văn Tốt Nghiệp II.

KHẢO SÁT SƠ ĐỒ CHÂN 8951, CHỨC NĂNG TỪNG CHÂN: 1. Sơ đồ chân 8951: P2T-A1S Sơ đồ chân IC 8951 2. Chức năng, a 8951: ~ R05I có tấ cä 40 chân có chức năng như các đường xuất nhập. Trong đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập , đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ.Các Port: a Port0: ~ Port0 là port có 2 chức năng ở các chân 32 - 39 của 8951.

Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các dudng VO. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu. D Port1: - Port 1 1a port ƯO trên các chân 1-8. Các chân được ký hiệu PI.

có thể dùng cho giao tiếp với các thiết bị ngoài nếu cẩn. Port 1 GVHD : Truong Thi Bich Nga - SVTH : Đỗ Thế Thịnh - Nguyễn Xuân Thắng trang 22 Luận Văn Tốt Nghiệp không có chức năng khác, vì vậy chúng chỉ được dùng cho giao. tiếp với các thiết bị bên ngoài. H Port2: - Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mổ rộng.

ñ Port3: ~Port 3 là port có tác dụng kép trên các chân 10 - 17. Các chân của port này có nhiều chức năng, công dụng chuyển đổi có liền hệ với các đặc tính đặc biệt của 8951 như ở bảng s¡ BH —— Tên Chức náng chuyển đổi ro RAD Neo vào dữ liệu nối tiếp. Pua TAD Ngõ xuất dữ liệu nối tiếp. "2 INTO\ NgÕ vào ngắt cứng thé0.

mà INTI Ngõ vào ngắt cứng thứ 1. P34 TO Ngõ vào của TIMER/COUNTER thứ 0, Pus TL Ngõ vào của TIMER/COUNTER thứ 1. Pho WR\ Tín hiệu ghi dữ liệu lén bộ nhớ ngoài. RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài.

Các ngõ tín hiệu điều khiển: Ngõ tín hiệu PSEN (Program store enable): - PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối dén chan OE\ (output enable) của Eprom cho phép đọc các byte mã lệnh. - PSEN ở mức thấp trong thời gian vi điều khiển 8951 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh. Khi 8951 thi hành chương trình trong ROM nội PSEN sẽ ở mức logic 1.

_Ngõ tín hiệu diéu khién ALE (Address Latch Enable ) : - Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 GVHD : Trương Thị Bích Ngà SVTH : Đỗ Thế Thịnh - Nguyễn Xuân Thắng trang 23 Luận Văn Tốt Nghiệp dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. - Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. Ngõ tín hiệu EA\(External Access): - Tín hiệu vào EA\ ở chân 31 thường được đưa lên mức 1 hoặc mức 0.

Nếu ở mức 1, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 4 Kbyte. Nếu ở mức 0, 8951 sé thi hành chương trình từ bộ nhớ mở rộng. ñ Ngõ tín hiệu RST (ReseÐ) : -Ngõ vào RST ở chân 9 là ngõ vào ReseL của 8951. Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khẩi động hệ thống.

Khi cấp điện mạch tự đóng Reset. Các ngồ vào bộ đào động XUXLL, XEAL2: ~ Hộ dạo động được tích hợp bến ưong 8951, khi sử dụng #9251 người thiết kế chí cẩn kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Thiết Kế và Thực Hiện Mạch Quang Giao Tiếp Với Máy Tính" trình bày chi tiết về các nguyên tắc và quy trình xây dựng một kênh truyền dữ liệu hiệu quả, an toàn giữa các thiết bị và máy tính bằng công nghệ quang học. Người đọc sẽ nắm bắt được phương pháp thiết kế mạch, lựa chọn linh kiện và triển khai một hệ thống giao tiếp có khả năng chống nhiễu vượt trội, đảm bảo tín hiệu luôn ổn định và chính xác—một lợi thế cực kỳ quan trọng trong môi trường công nghiệp hoặc các ứng dụng đòi hỏi độ tin cậy cao.

Để hiểu rõ hơn cách mạch giao tiếp này được tích hợp vào một hệ thống vi điều khiển hoàn chỉnh, bạn có thể khám phá thêm về Đồ án tốt nghiệp đại học đề tài thiết kế chế tạo kit phát triển sử dụng stm32, nơi một kit phát triển làm trung tâm xử lý cần giao tiếp với máy tính và các thiết bị ngoại vi khác. Ngoài ra, việc ứng dụng các phương thức truyền thông tin cậy này là nền tảng cho nhiều hệ thống tự động hóa phức tạp. Hãy tìm hiểu sâu hơn về một ứng dụng thực tiễn trong ngành tự động hóa qua tài liệu Đồ án tốt nghiệp công nghệ kỹ thuật điều khiển và tự động hóa delta robot phân loại sản phẩm dùng plc s71200, nơi robot và bộ điều khiển PLC cần trao đổi dữ liệu một cách chính xác và nhanh chóng để vận hành hiệu quả. Một ví dụ khác về hệ thống tự động đòi hỏi giao tiếp ổn định là trong quản lý thông minh, tài liệu Đồ án tốt nghiệp ngành điện tự động công nghiệp thiết kế lập trình nhà giữ xe tự động sử dụng plc s7 200 sẽ cho bạn thấy cách các cảm biến, bộ điều khiển và máy tính trung tâm phối hợp nhịp nhàng, nhấn mạnh tầm quan trọng của một kênh giao tiếp không lỗi.