Đồ án công nghệ usb qua microchip 18f45

Đồ án công nghệ USB qua Microchip 18F45. Khám phá cách lập trình giao tiếp USB hiệu quả với vi điều khiển PIC. Nắm vững nguyên lý hoạt động.

Người đăng

Ẩn danh

Thể loại

luận văn

2008

76
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan Đồ án Công nghệ USB qua Microchip 18F4550

Sự phát triển của công nghệ bán dẫn đã thúc đẩy mạnh mẽ ngành công nghiệp tự động hóa. Trong bối cảnh đó, vi điều khiển đã trở thành một linh kiện phổ biến và không thể thiếu trong các ứng dụng điều khiển điện tử tại Việt Nam. Đồ án này tập trung vào việc khai thác công nghệ USB thông qua vi điều khiển Microchip 18F4550, một giải pháp mạnh mẽ cho việc trao đổi dữ liệu giữa các hệ thống. PIC18F4550 là một sản phẩm nổi bật của Microchip, được tích hợp sẵn module giao tiếp USB 2.0 toàn tốc. Điều này cho phép kết nối trực tiếp với máy tính mà không cần các mạch điện phức tạp bên ngoài. Đồ án không chỉ trình bày lý thuyết về cấu trúc vi điều khiển và chuẩn giao tiếp USB mà còn đi sâu vào quá trình thực thi. Quá trình này bao gồm việc thiết kế mạch phát triển, lập trình firmware cho vi điều khiển và xây dựng phần mềm giao diện trên máy tính. Mục tiêu là tạo ra một hệ thống hoàn chỉnh, có khả năng điều khiển và giám sát thiết bị ngoại vi từ xa thông qua cổng USB. Việc sử dụng PIC18F4550 giúp giảm thiểu kích thước mạch, chi phí và đơn giản hóa quá trình thiết kế. Đây là một đề tài mang tính ứng dụng cao, giải quyết nhu cầu thực tế về việc kết nối các hệ thống nhúng với máy tính cá nhân một cách hiệu quả và ổn định. Toàn bộ quá trình, từ lý thuyết cơ bản về vi điều khiển đến các bước thực hiện chi tiết, được trình bày một cách hệ thống, giúp người đọc có cái nhìn toàn diện về công nghệ USB trên dòng Microchip PIC.

1.1. Tầm quan trọng của vi điều khiển và giao tiếp USB

Ngày nay, các hệ thống điều khiển tự động và thời gian thực đặt ra yêu cầu lớn về trao đổi dữ liệu. Vi điều khiển (Microcontroller) là một vi mạch tích hợp, bao gồm một bộ xử lý (CPU), bộ nhớ (RAM, ROM) và các khối ngoại vi vào/ra trên một chip duy nhất. Sự ra đời của vi điều khiển đã làm thay đổi ngành điện tử, giúp việc thiết kế các hệ thống điều khiển trở nên dễ dàng, nhỏ gọn và chi phí thấp hơn. Song song với đó, công nghệ USB (Universal Serial Bus) đã trở thành chuẩn giao tiếp phổ biến nhất giữa máy tính và các thiết bị ngoại vi. Sự kết hợp giữa vi điều khiển và USB mở ra vô số ứng dụng, từ các thiết bị dân dụng, văn phòng đến các hệ thống công nghiệp phức tạp, cho phép truyền dữ liệu tốc độ cao và cấp nguồn trực tiếp.

1.2. Giới thiệu vi điều khiển Microchip PIC18F4550

PIC18F4550 là một vi điều khiển 8-bit thuộc họ PIC18F hiệu suất cao của hãng Microchip. Điểm đặc biệt của chip này là việc tích hợp sẵn một module giao tiếp USB 2.0 toàn tốc (Full-Speed), có khả năng hoạt động ở tốc độ 12 Mbit/giây. Ngoài ra, PIC18F4550 còn sở hữu cấu trúc mạnh mẽ với 32KB bộ nhớ Flash, 2KB SRAM, 256 byte EEPROM, 13 kênh chuyển đổi tương tự-số (ADC) 10-bit và 35 chân vào/ra số. Tần số hoạt động tối đa lên đến 48 MHz, cung cấp hiệu suất xử lý 12 MIPS (triệu lệnh mỗi giây). Những đặc tính này làm cho PIC18F4550 trở thành lựa chọn lý tưởng cho các ứng dụng đòi hỏi khả năng kết nối USB mạnh mẽ và đa chức năng.

1.3. Mục tiêu chính của đồ án công nghệ USB qua 18F4550

Mục tiêu cốt lõi của đồ án là xây dựng một hệ thống hoàn chỉnh có khả năng giao tiếp giữa vi điều khiển PIC18F4550 và máy tính thông qua chuẩn USB. Các nhiệm vụ cụ thể bao gồm: nghiên cứu cấu trúc và nguyên lý hoạt động của PIC18F4550 và giao thức USB; thiết kế và lắp ráp một bảng mạch phát triển (development board) đơn giản; lập trình firmware cho vi điều khiển để nhận dạng như một thiết bị USB lớp HID (Human Interface Device); và phát triển một ứng dụng phần mềm trên máy tính để gửi lệnh điều khiển và nhận dữ liệu từ vi điều khiển. Kết quả cuối cùng là một mô hình thực tiễn, minh họa khả năng điều khiển các chân vào/ra số và đọc giá trị tương tự từ cảm biến thông qua giao diện USB.

II. Thách thức thường gặp khi lập trình giao tiếp USB PIC18F4550

Việc triển khai công nghệ USB trên vi điều khiển PIC18F4550 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. Khó khăn lớn nhất nằm ở sự phức tạp của chính giao thức USB. Không giống như các giao tiếp đơn giản như UART hay SPI, USB đòi hỏi một quá trình "thương lượng" (enumeration) phức tạp giữa thiết bị và máy tính chủ (host). Quá trình này yêu cầu firmware của vi điều khiển phải phản hồi chính xác các yêu cầu từ host để được nhận dạng và cấu hình. Một sai sót nhỏ trong việc xử lý các bộ mô tả (descriptors) hoặc các gói tin điều khiển có thể khiến thiết bị không hoạt động. Thách thức thứ hai là vấn đề driver trên hệ điều hành. Mặc dù việc chọn lớp thiết bị chuẩn như HID (Thiết bị giao diện người dùng) có thể loại bỏ yêu cầu viết driver riêng, nhưng việc cấu hình firmware để tuân thủ chính xác đặc tả của lớp HID vẫn đòi hỏi sự hiểu biết sâu sắc. Bất kỳ sự sai lệch nào cũng sẽ khiến hệ điều hành không thể tải driver mặc định. Ngoài ra, việc nạp chương trình và gỡ lỗi lần đầu tiên cũng là một rào cản. PIC18F4550 cần một chương trình mồi gọi là bootloader để có thể nạp mã qua chính cổng USB. Việc nạp bootloader này lần đầu tiên đòi hỏi một bộ nạp trình chuyên dụng như ICD2, tạo ra thêm một bước phức tạp trong quá trình phát triển ban đầu. Quản lý xung nhịp cũng là một yếu tố quan trọng, vì USB toàn tốc yêu cầu một nguồn xung 48 MHz cực kỳ chính xác.

2.1. Sự phức tạp của giao thức và quá trình Enumeration

Giao thức USB là một hệ thống phân cấp phức tạp, bao gồm nhiều lớp và loại truyền dữ liệu khác nhau (Control, Interrupt, Bulk, Isochronous). Khi một thiết bị USB được kết nối, nó phải trải qua một quá trình gọi là Enumeration. Trong giai đoạn này, máy tính chủ sẽ gửi một loạt các yêu cầu chuẩn để xác định thông tin về thiết bị, chẳng hạn như ID nhà sản xuất (VID), ID sản phẩm (PID), và các cấu hình mà thiết bị hỗ trợ. Firmware trên PIC18F4550 phải được lập trình để xử lý các yêu cầu này một cách chính xác và gửi lại các bộ mô tả (Device, Configuration, Interface, Endpoint Descriptors) phù hợp. Đây là một nhiệm vụ đòi hỏi sự tỉ mỉ và chính xác cao.

2.2. Yêu cầu về firmware và driver cho thiết bị lớp HID

Để đơn giản hóa việc phát triển, đồ án lựa chọn sử dụng lớp thiết bị HID (Human Interface Device). Lợi thế chính của lớp HID là hầu hết các hệ điều hành hiện đại đều có sẵn driver chuẩn. Tuy nhiên, firmware của vi điều khiển vẫn phải tuân thủ nghiêm ngặt các đặc tả của lớp HID. Điều này bao gồm việc định nghĩa một "Report Descriptor" để mô tả định dạng của các gói dữ liệu sẽ được trao đổi. Cấu trúc của Report Descriptor khá phức tạp và phải được khai báo đúng để driver của hệ điều hành hiểu và xử lý dữ liệu từ PIC18F4550. Việc cấu hình sai có thể dẫn đến tình trạng thiết bị được nhận dạng nhưng không thể giao tiếp.

2.3. Khó khăn trong việc nạp mã và gỡ lỗi ban đầu

Một vi điều khiển PIC18F4550 mới xuất xưởng hoàn toàn trống bộ nhớ. Để có thể nạp chương trình ứng dụng qua USB, trước tiên cần phải nạp một chương trình đặc biệt gọi là bootloader vào chip. Quá trình nạp bootloader này không thể thực hiện qua USB mà phải dùng một bộ nạp trình mạch (In-Circuit Programmer/Debugger) như MPLAB ICD2. Điều này tạo ra một rào cản ban đầu về mặt phần cứng. Sau khi bootloader đã được nạp thành công, các phiên lập trình tiếp theo mới có thể được thực hiện một cách tiện lợi thông qua phần mềm PDFSUSB trên máy tính. Việc gỡ lỗi thời gian thực cũng yêu cầu các công cụ chuyên dụng, làm tăng độ phức tạp của quá trình phát triển.

III. Hướng dẫn Môi trường Phát triển cho Đồ án PIC18F4550

Để thực hiện thành công đồ án công nghệ USB với PIC18F4550, việc thiết lập một môi trường phát triển hoàn chỉnh và đúng đắn là bước đi tiên quyết. Môi trường này bao gồm cả phần cứng và phần mềm. Về phần mềm, hai công cụ chính đến từ Microchip là MPLAB IDE và bộ biên dịch MPLAB C18. MPLAB IDE (Integrated Development Environment) là môi trường phát triển tích hợp, cung cấp trình soạn thảo mã, trình quản lý dự án, trình mô phỏng và giao diện để kết nối với các công cụ gỡ lỗi phần cứng. Nó đóng vai trò trung tâm trong toàn bộ quy trình phát triển. Đi kèm với đó là bộ biên dịch MPLAB C18, được thiết kế chuyên biệt cho dòng vi điều khiển PIC18, cho phép lập trình bằng ngôn ngữ C, giúp mã nguồn trở nên dễ đọc và quản lý hơn so với hợp ngữ. Về phần cứng, cần lắp ráp một bảng mạch phát triển (development board) chứa vi điều khiển PIC18F4550 và các linh kiện phụ trợ tối thiểu như thạch anh 20MHz, tụ điện, điện trở, và cổng kết nối USB. Mạch này là nền tảng để nạp và chạy thử nghiệm firmware. Một yếu tố quan trọng khác là bootloader. Đây là một đoạn mã nhỏ được nạp vào vi điều khiển trước tiên, cho phép nó nhận các chương trình ứng dụng mới thông qua cổng USB mà không cần đến bộ nạp ngoài. Chương trình PDFSUSB.EXE trên máy tính sẽ giao tiếp với bootloader để thực hiện việc nạp file .hex đã được biên dịch.

3.1. Các công cụ phần mềm MPLAB IDE và MPLAB C18 Compiler

MPLAB IDE là phần mềm miễn phí do Microchip cung cấp, đóng vai trò là công cụ trung tâm cho việc phát triển ứng dụng trên vi điều khiển PIC. Nó tích hợp tất cả các tính năng cần thiết: tạo và quản lý dự án, soạn thảo mã nguồn, biên dịch, và gỡ lỗi. MPLAB C18 Compiler là bộ biên dịch ngôn ngữ C được tối ưu hóa cho kiến trúc của dòng PIC18, bao gồm cả PIC18F4550. Việc sử dụng C giúp tăng tốc độ phát triển và làm cho mã nguồn dễ bảo trì hơn. Phiên bản dành cho sinh viên của C18 được cung cấp miễn phí, đủ chức năng để thực hiện các dự án quy mô vừa và nhỏ. Sự kết hợp giữa MPLAB IDE và C18 tạo ra một luồng làm việc liền mạch, từ việc viết mã đến khi tạo ra file .hex sẵn sàng để nạp vào vi điều khiển.

3.2. Lắp ráp bảng mạch phát triển và các linh kiện chính

Bảng mạch phát triển là nền tảng vật lý của đồ án. Thiết kế mạch tối thiểu cho PIC18F4550 để hoạt động với USB bao gồm các thành phần chính sau: vi điều khiển PIC18F4550, một bộ dao động thạch anh (thường là 20MHz để tạo ra xung nhịp 48MHz cần thiết cho USB thông qua bộ nhân tần PLL bên trong chip), hai tụ gốm cho thạch anh, một tụ lọc nguồn, một điện trở kéo lên cho chân MCLR (Reset), và một cổng USB Type B. Ngoài ra, các nút nhấn cho việc reset và vào chế độ bootloader, cùng với một vài đèn LED để hiển thị trạng thái, cũng rất hữu ích cho việc kiểm tra và gỡ lỗi. Sơ đồ mạch cần được thiết kế cẩn thận để đảm bảo kết nối ổn định, đặc biệt là các đường tín hiệu D+ và D- của USB.

3.3. Vai trò của Bootloader và công cụ nạp trình PDFSUSB

Bootloader là một chương trình mồi, chiếm một phần nhỏ trong bộ nhớ Flash của vi điều khiển. Nhiệm vụ chính của nó là khởi tạo giao tiếp USB ở mức cơ bản, chờ đợi lệnh từ máy tính và ghi chương trình ứng dụng mới vào phần còn lại của bộ nhớ Flash. Việc sử dụng bootloader mang lại sự tiện lợi rất lớn, vì sau khi đã nạp bootloader lần đầu bằng một thiết bị chuyên dụng, người dùng có thể cập nhật firmware nhiều lần chỉ bằng một sợi cáp USB. Công cụ phần mềm trên PC được sử dụng để giao tiếp với bootloader là PDFSUSB.EXE. Chương trình này cho phép người dùng tải một file .hex, sau đó gửi nó đến PIC18F4550 đang ở chế độ bootloader để thực hiện việc nạp trình.

IV. Quy trình Lập trình Firmware USB HID cho Microchip 18F4550

Lập trình firmware là trái tim của đồ án công nghệ USB với PIC18F4550. Quá trình này biến vi điều khiển từ một con chip đơn thuần thành một thiết bị USB thông minh, có thể giao tiếp với máy tính. Quy trình bắt đầu bằng việc lựa chọn lớp thiết bị phù hợp. Đồ án đã chọn lớp HID (Human Interface Device) vì tính phổ biến và được hỗ trợ sẵn driver trên mọi hệ điều hành. Điều này giúp loại bỏ bước phát triển driver phức tạp. Tiếp theo, cần phải cấu hình các bit trong vi điều khiển. Các bit này quyết định chế độ hoạt động của chip, chẳng hạn như chọn nguồn xung nhịp (sử dụng bộ nhân tần PLL để đạt 48MHz từ thạch anh ngoài), bật bộ điều chỉnh điện áp cho USB, và các thiết lập an toàn khác. Phần cốt lõi của firmware là xử lý các giao tiếp USB. Điều này bao gồm việc khởi tạo module USB, xử lý quá trình enumeration bằng cách gửi các bộ mô tả (descriptors) chính xác khi host yêu cầu. Các bộ mô tả này định nghĩa thiết bị là một HID, với các thông số như VID/PID và kích thước gói tin. Sau khi được nhận dạng, firmware sẽ đi vào vòng lặp chính, nơi nó xử lý việc nhận dữ liệu từ host (qua các gói tin OUT) và gửi dữ liệu phản hồi (qua các gói tin IN). Ví dụ, nhận lệnh bật/tắt LED từ PC và gửi về trạng thái của một nút nhấn. Toàn bộ mã nguồn được viết bằng ngôn ngữ C sử dụng bộ biên dịch MPLAB C18 và thư viện USB do Microchip cung cấp.

4.1. Lựa chọn lớp thiết bị HID và cấu hình Descriptors

Lớp HID (Thiết bị giao diện người dùng) ban đầu được thiết kế cho các thiết bị như chuột và bàn phím. Tuy nhiên, tính linh hoạt của nó cho phép sử dụng cho các thiết bị tùy chỉnh mà không cần driver riêng. Việc đầu tiên trong firmware là khai báo các bộ mô tả (Descriptors). Device Descriptor cung cấp thông tin chung như VID/PID. Configuration Descriptor mô tả các cấu hình của thiết bị. Interface Descriptor chỉ định rằng giao diện này thuộc lớp HID. Quan trọng nhất là HID Report Descriptor, nó định nghĩa cấu trúc và kích thước của dữ liệu được truyền đi, ví dụ: 1 byte để điều khiển 8 đèn LED, 1 byte để đọc trạng thái 8 nút nhấn. Cấu hình chính xác các descriptors này là yếu tố quyết định để thiết bị được hệ điều hành nhận dạng đúng.

4.2. Nguyên tắc hoạt động và xử lý truyền thông USB

Sau khi quá trình enumeration thành công, firmware của PIC18F4550 sẽ liên tục kiểm tra các sự kiện từ module USB. Giao tiếp HID thường sử dụng các điểm cuối (endpoint) kiểu Interrupt hoặc Control. Ứng dụng này nhận các báo cáo đầu ra (Output Reports) từ host để thực thi lệnh. Ví dụ, host gửi một gói tin 64 byte, trong đó byte đầu tiên chứa lệnh điều khiển. Firmware sẽ đọc gói tin này từ bộ đệm USB, phân tích lệnh và thực hiện hành động tương ứng, như thay đổi trạng thái của một chân I/O. Ngược lại, để gửi dữ liệu lên host, firmware sẽ chuẩn bị một báo cáo đầu vào (Input Report), ví dụ chứa giá trị ADC, và ghi nó vào bộ đệm của endpoint IN. Host sẽ định kỳ truy vấn endpoint này để nhận dữ liệu mới.

4.3. Cấu trúc mã nguồn và sử dụng thư viện USB của Microchip

Để đẩy nhanh quá trình phát triển, việc sử dụng các thư viện do Microchip cung cấp trong bộ MCHPFSUSB Framework là rất hiệu quả. Thư viện này cung cấp các hàm API cấp cao để xử lý các tác vụ USB phức tạp, giúp lập trình viên không cần phải tương tác trực tiếp với các thanh ghi cấp thấp. Cấu trúc mã nguồn firmware thường bao gồm: một file main.c chứa vòng lặp chính và logic ứng dụng; một file usb_descriptors.c để định nghĩa tất cả các bộ mô tả USB; và các file cấu hình để thiết lập các thông số của vi điều khiển và stack USB. Trong file main.c, chương trình sẽ khởi tạo hệ thống, khởi tạo stack USB, và sau đó đi vào một vòng lặp vô tận để xử lý các tác vụ của ứng dụng và gọi hàm quản lý trạng thái của stack USB (USBDeviceTasks()).

V. Ứng dụng thực tiễn và Kết quả Đồ án Công nghệ USB 18F4550

Kết quả cuối cùng của đồ án là một hệ thống hoàn chỉnh, minh chứng cho khả năng ứng dụng công nghệ USB trên vi điều khiển PIC18F4550. Hệ thống bao gồm bảng mạch phát triển đã được nạp firmware và một phần mềm giao diện người dùng trên máy tính. Phần mềm này được phát triển bằng Microsoft Visual C++, cung cấp một giao diện đồ họa trực quan để tương tác với thiết bị phần cứng. Giao diện cho phép người dùng thực hiện ba chức năng chính: điều khiển các đầu ra số, giám sát các đầu vào số, và đọc giá trị từ đầu vào tương tự. Cụ thể, người dùng có thể nhấp vào các nút trên giao diện để bật hoặc tắt các đèn LED được kết nối với các chân I/O của PIC18F4550. Đồng thời, trạng thái của các nút nhấn trên mạch sẽ được cập nhật theo thời gian thực trên màn hình máy tính. Chức năng quan trọng nhất là đọc giá trị tương tự, cho phép vi điều khiển đo điện áp từ một cảm biến (ví dụ: biến trở) thông qua bộ ADC 10-bit và gửi giá trị số về máy tính để hiển thị. Dự án đã chứng minh rằng việc truyền thông qua bus USB hoạt động ổn định và đáp ứng tốt. Toàn bộ hệ thống, từ phần cứng đến phần mềm, đã được kiểm tra và xác nhận hoạt động đúng như thiết kế. Đồ án không chỉ là một bài tập học thuật mà còn mở ra nền tảng cho nhiều ứng dụng thực tế hơn.

5.1. Xây dựng giao diện điều khiển trên máy tính Host

Phần mềm giao diện trên máy tính (Host) được xây dựng để cung cấp một phương thức tương tác thân thiện với người dùng. Sử dụng Visual C++, ứng dụng này giao tiếp với thiết bị HID thông qua các hàm API của Windows. Khi khởi chạy, chương trình sẽ tìm kiếm và kết nối với thiết bị có VID/PID đã được định nghĩa trong firmware của PIC18F4550. Giao diện đồ họa hiển thị rõ ràng các chức năng: các nút "Bật/Tắt" cho từng đèn LED (đầu ra số), các chỉ báo trạng thái cho nút nhấn (đầu vào số), và một thanh tiến trình hoặc ô văn bản để hiển thị giá trị đọc được từ bộ chuyển đổi tương tự-số (ADC). Các lệnh được gửi và dữ liệu được nhận thông qua các gói tin HID Report, đảm bảo quá trình giao tiếp liền mạch.

5.2. Điều khiển đầu vào ra số và tương tự qua USB

Đây là chức năng cốt lõi của ứng dụng. Khi người dùng nhấn nút "Bật LED 1" trên giao diện máy tính, phần mềm sẽ tạo một gói tin HID Output Report và gửi nó qua bus USB. Firmware trên PIC18F4550 nhận được gói tin này, giải mã lệnh và thiết lập chân I/O tương ứng lên mức cao, làm đèn LED sáng lên. Ngược lại, firmware liên tục quét trạng thái các nút nhấn. Nếu phát hiện một nút được nhấn, nó sẽ tạo một gói tin HID Input Report chứa thông tin này và gửi về máy tính. Đối với đầu vào tương tự, vi điều khiển định kỳ đọc giá trị từ một kênh ADC, chuyển đổi nó thành số và đưa vào gói Input Report để gửi lên giao diện, cho phép giám sát các tín hiệu cảm biến theo thời gian thực.

5.3. Đánh giá kết quả và khả năng mở rộng của dự án

Dự án đã thành công trong việc tạo ra một kênh giao tiếp hai chiều ổn định giữa PC và vi điều khiển qua USB. Tốc độ phản hồi của hệ thống nhanh, đáp ứng được các yêu cầu điều khiển và giám sát cơ bản. Việc sử dụng lớp HID đã chứng tỏ là một lựa chọn hiệu quả, giúp tiết kiệm thời gian và công sức phát triển driver. Nền tảng được xây dựng trong đồ án này có khả năng mở rộng rất lớn. Có thể dễ dàng thêm nhiều kênh điều khiển số và tương tự hơn, tích hợp các loại cảm biến phức tạp (nhiệt độ, độ ẩm, gia tốc), hoặc phát triển các ứng dụng cao cấp hơn như bộ ghi dữ liệu (data logger), bộ điều khiển PID, hoặc thậm chí là một dao động ký đơn giản. Đây là một minh chứng mạnh mẽ về tiềm năng của công nghệ USB trong các hệ thống nhúng.

VI. Tổng kết và Hướng phát triển Tương lai cho Công nghệ USB PIC

Đồ án "Công nghệ USB qua Microchip 18F4550" đã hoàn thành xuất sắc các mục tiêu đề ra. Nó đã cung cấp một cái nhìn toàn diện và thực tiễn về việc tích hợp giao tiếp USB vào các hệ thống nhúng sử dụng vi điều khiển PIC. Quá trình thực hiện đã mang lại nhiều bài học kinh nghiệm quý báu, đặc biệt là sự hiểu biết sâu sắc về sự phức tạp nhưng mạnh mẽ của giao thức USB. Việc lựa chọn PIC18F4550 với module USB tích hợp và sử dụng lớp thiết bị HID đã được chứng minh là một chiến lược hiệu quả, giúp đơn giản hóa cả phần cứng và phần mềm, giảm thời gian phát triển. Kết quả của đồ án không chỉ dừng lại ở một sản phẩm hoạt động mà còn là một nền tảng vững chắc cho các nghiên cứu và ứng dụng trong tương lai. Tiềm năng của các vi điều khiển PIC hỗ trợ USB là vô cùng lớn, bao trùm nhiều lĩnh vực từ thiết bị y tế, tự động hóa công nghiệp, đến các thiết bị điện tử tiêu dùng thông minh. Với nền tảng này, các hướng phát triển tiếp theo có thể tập trung vào việc tối ưu hóa hiệu suất, triển khai các lớp USB khác phức tạp hơn như CDC (Cổng COM ảo) hay Mass Storage (Bộ nhớ lưu trữ), hoặc kết hợp với các công nghệ không dây để tạo ra các giải pháp IoT (Internet of Things) tiên tiến. Công nghệ USB trên vi điều khiển sẽ tiếp tục là một lĩnh vực nghiên cứu và ứng dụng đầy hứa hẹn.

6.1. Bài học kinh nghiệm từ quá trình phát triển đồ án

Quá trình thực hiện đồ án đã cho thấy rằng việc phát triển một thiết bị USB không chỉ đơn thuần là kết nối phần cứng. Nó đòi hỏi sự hiểu biết kỹ lưỡng về cả giao thức phần mềm và các yêu cầu về thời gian thực. Bài học lớn nhất là tầm quan trọng của việc đọc và tuân thủ chặt chẽ các tài liệu kỹ thuật (datasheet của PIC18F4550 và đặc tả chuẩn USB). Việc sử dụng các công cụ gỡ lỗi như ICD2 và các phần mềm phân tích gói tin USB (USB sniffer) là cực kỳ hữu ích trong việc tìm và sửa lỗi. Ngoài ra, kinh nghiệm cho thấy việc bắt đầu với các ví dụ mã nguồn có sẵn từ Microchip và tùy chỉnh dần dần là một cách tiếp cận hiệu quả để giảm thiểu rủi ro và tăng tốc độ phát triển.

6.2. Tiềm năng ứng dụng của vi điều khiển PIC có giao tiếp USB

Các vi điều khiển PIC có tích hợp USB như PIC18F4550 mở ra một loạt các ứng dụng thực tiễn. Trong lĩnh vực y tế, chúng có thể được dùng để tạo ra các thiết bị theo dõi sức khỏe cá nhân, kết nối với máy tính để phân tích dữ liệu. Trong công nghiệp, chúng có thể làm giao diện cho các bộ điều khiển máy móc, cho phép cấu hình và giám sát từ xa. Trong lĩnh vực tiêu dùng, chúng là nền tảng cho các thiết bị ngoại vi máy tính tùy chỉnh, bộ điều khiển game, hoặc các bộ chuyển đổi giao thức. Khả năng cấp nguồn qua USB cũng làm cho chúng trở nên lý tưởng cho các thiết bị di động, nhỏ gọn.

6.3. Đề xuất các hướng nghiên cứu và phát triển tiếp theo

Dựa trên nền tảng của đồ án này, có nhiều hướng phát triển có thể được khám phá. Một hướng là triển khai các lớp USB khác. Ví dụ, lớp CDC (Communication Device Class) sẽ cho phép thiết bị hoạt động như một cổng COM ảo, thuận tiện cho việc gửi và nhận dữ liệu văn bản. Lớp Mass Storage sẽ biến thiết bị thành một ổ đĩa USB, hữu ích cho các ứng dụng ghi dữ liệu. Một hướng khác là tối ưu hóa tốc độ truyền dữ liệu bằng cách sử dụng các chế độ truyền Bulk. Ngoài ra, việc nghiên cứu các dòng vi điều khiển mới hơn với hiệu suất cao hơn và các tính năng USB tiên tiến hơn (như USB On-The-Go) cũng là một hướng đi đầy hứa hẹn.

01/10/2025

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

Chương I: Sơ Lược Về Vi Điều Khién Chương II: Vi Điều Khiến Microchip PIC Chương III: Vi Diéu Khién PIC 18F4550 Chuong IV: Cong Nghé USB Qua Microchip 18F4550 Chuong V: Chuyén D6i Ti Thiét Bi Flash PIC 18F Sang PIC 18FXXJ Chương VI: Đồng Hồ Báo Thức Nguyễn Thế Anh Khoa Điện Tử Viễn Thông Mục lục CHƯƠNG1: SƠ LƯỢC VẼ VI ĐIÊU KHIỂN. Sơ Lược Về Câu Trúc Của Vi Điều KhiỂn.---- + 5 2 + se ccs se sscse 5 1.2 Một Vài Họ Vi Điều Khiến Phổ Biến: .2- 52 2+2 S2 cv set reree 7 iðãxn 21 5. -- --- QC HH SH.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC. 8 CHƯƠNG II: VI DIEU KHIEN MICROCHIP PIC.

2 5s SE s E8 SE eE se ss££z<2 9 °§PIö 800 6. HH ng ng ng 0 ch ung v5 10 2.1 Họ cấp thấp (Íow-€riđ|).--s- < «sec k1 ST Hư cư cư ru cgk 10 2.2 Họ cấp chung (Miđ-rang€)).- ---c- << se c3 SH cv re gu e.3 Họ cấp cao (High-end) Í'7CXXX.-- << 5xx ke Sex ven ra 11 2.4 Ho cap cao (High- performance) .-- -- < - s se s s4 E2 xe xe £sxe 12 2.3 Một Số Ưu Điểm Microchip PIC.-- 5 - E9 9S s5 k9 eEcxg 3 9 k 12 CHƯƠNG III: VI ĐIÊU KHIÊN PIC 18F4550.- 2 52 2 2 2 2s £+£s£zsz£s+z x2 14 Na Nhia-i4.2 Cac Cong Cu Lap Trinh.3 Don Vi ICD-U40. oc ecessecccccecceecesesessecccccseeeeeesessesseecesceseesuscescesseeescueseeses 23 EE.6 CAc CON o8 ca, .7 Thiet Di lỚPD. - --G- E1 SE ng cư Hưng 25 °N.9 MOt 86 8 1P -sd+%+£ÐẦỶẢ.10 Nguyên tắc hoạt đỘng:.

- --- se ke cv cư vn cư ngư cuc 26 3.12 Mô Tả Thực Hiện Firmware Thứ Hal. 32 CHƯƠNG IV: CÔNG NGHỆ USB QUA MICROCHIP 18F4550.1 GIGI thi0 HrỒŨ. - - Gv 1 HT K1 TT T11 Tư Tung ng cu 34 4.3 Lắp ráp bảng phát triỄn. -- G sẻ x39 999 Sư ngư gen 34 4.3 Truyền tải khởi động vào 18F4550.- -G cty ưng reo 36 4.4 Phát triển ứng dụng trong MPLAB IDE.

5- < << 9E se 37 CHUONG V: CHUYEN DOI TU THIET BI FLASH PIC18F SANG PIC18FXXJ.1 Chuyén d6i thiét Di occ .- - -- 5 sư kg cư nh ngư gu 47 5.6 Đồng hồ đo năng lượng. - -- - - ket cư 99v cư ngư cư 52 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 5.7 Độ trễ khởi động/T€SG.-- - 6s SE SH 9 Sư Sư ng g c cư ngcgk 52 5.8 Sự khác Biệt VỀ Chân. SH HT 1 g3 H00 HH dc ườu 53 5.9 Điện trở kéo gắn †rOTIE.-- G «se E193 13v ưng ng 54 5.10 Tỷ lệ dòng trên các chân VàO/Ta .12 Bộ Nhớ Chương TrÌnh.G- GB HT HH TH Tư cưng re 55 5.2 Từ cấu hình .- ¿ke cư S1 SE HH TT cư Hưng re 55 5.3 Cac chu trinh hi.4 Khả năng ghi nhớ đặc tính.5M6 phong tur ghi va EEPROM.7 Vào chế độ lập trình. << SE SE E986 E935 15 9 ve ưa 59 5.13 Thiết Lập Chính Xác Cho Chương Trình Thiết Bị Và Công Cụ Phần Mềm.14 KHÁC BIỆT MODUL/E.-- G << s s2 xE*S 9E SE E3 s98 2x cv kế 61 ¡9 cm.

61 CHƯƠNG VI: DONG HO BAO THUC .-5- < +E*£E£s€ss£E £<£x£x xxx xe 62 Ó.9 0 ng 9n ng pvv 62 5001820011177 .2 Thời gian 12 giờ hay thời g1an quân SỰ.- -- c1 TT TT TH TT ng cư 64 6. - -- - << sư Sư ST TH 1n ng Tưng che 65 6.5 Đồng bộ, chờ và ngừng báo thỨcC.- --- - sex xxx se ve 65 6.4 Lap trinh PIC. nh HE cư cư re 67 6. LG HT TT TH TH TT TT LH TT TH Hành 68 ð Si 80)0)/15060ii)7.6 Chip bộ mã hoá IMP3.-- -- 4 E3 SE E4 E9 39g 701g cưng cưng 69 6.7 Bộ chuyên đổi số - tương tự CS443344.

«se v1 cv g vn 72 6.8 Màn hình LE:Ì).9 9H SH Hi nu ng kg cv 72 8.7 73 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông CHUONG I SO LUQC VE VI DIEU KHIEN 1. Sơ Lược Về Câu Trúc Của Vi Điều Khiến Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công nghệ điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công nghệ. Các hẹ thống được thiết kế dựa trên nền tảng của bộ vi xử lý ( điển hình như PC) co khả năng mà các hệ thống điện tử thông thường không thể thực hiện được. Các hãng chế tạo bán dẫn đã tích hợp các mạch ngoại vi và bộ vi xử lý lên một chíp đuy nhất (on chíp) để tạo ra các bộ vi điều khiến, để nhằm hạn chế tối đa các linh kiện mặc ngoài khi xây dựng hệ thông có sử dụng vì xử lý, vi điêu khiên.

Những bộ vi điều khiển mới hiện nay của các hãng như: ATMEL, MOTOROLA, MICROCHIP. Bên trong đã tích hợp nhiều thiết bị ngoại vi như khối ADC, khố PWM, các loại bộ nhớ, bộ đệm, các công truyền thông như: 12C, UART, CAN, PSP, USB, khối điều khiển LCD, thậm chí cả các khối thu phát không day RF. Điều này khiến cho việc thực hiện các ưng dụng với vi điều khiển trở nên để dàng, giảm được kích thước mạch điện và chi phí. Việc thiết kế và chế tạo ra các bộ xử lý (microprocessor) hiện nay phát triển theo hai hớng chính.

Hướng thứ nhất là phát triển cac bộ xử lý mạnh tốc độ cao thực hiện hàng tỷ lệnh mỗi giây, độ dài từ đữ liệu lớn 32 hoặc 64 bít, truy nhập không gian bộ nhớ đến hàng trăm Mbyte hiện nay đã lên hàng Gbyte. Các bộ xử lý này được dùng trongcác hệ thống cần có công suất tính toán cao như ở máy tính cá nhân PC (Personal Computer). các hệ điều khiển trong công nghiệp. Hướng thứ hai đó là thiết k, chế tạo các vi điều khiển (microcontroller), đó là một vi mạch đơn bên trong gồm bộ xử lý 8,12,14 hoặc 16 bit và các khối chức năng như bộ nhớ, bộ đệm, bộ biến đổi A/D, cổng nối tiếp.

Các vi điều khién dién hinh 1a intel 8051, ATMEL, AVR, MOTOROLA 68HC11, Microchip Pic. Điều thúc đảy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dé dang lập trình và giá thành thấp. Vi điều khiến tỏ ra rất hấp dẫn trong các ứng dụng điều khiến điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễ dàng tích hợp vào trong hệ thống đề điều khiến toàn hệ thống. Nguyễn Thế Anh Khoa Điện Tử Viễn Thông Các thành phần của vi điều khiên là: CPU, RAM, ROM, các bộ đếm, bộ định thời, các công vào ra, giao điện truyền thông nối tiếp, các khối chuyên đổi tương tự số A/D và ngược lại số tương tự D/A.

Khối xử lý trung tâm CPU thực hiện các chỉ thị được lưu trong bộ nhơ chương trinh ROM để điều khiến tất cả các thành phần còn lại. Bộ nhớ truy cập ngẫu nhiên RAM được dùng để lưu các thiết lập và các biến sử dụng trong chương trình. Chương trình và các số liệu có định được lưu trong ROM. Bộ nhớ ROM của vi điều khiển sẽ trở thành phần sụn (firmware) sau khi được nạp trình.

Bộ nhớ ROM này có thể là loại ROM mặt nạ (masked ROM), với loại này chương trinh được đưa vào ngay trong quá trình chế tạo vi mạch. Hay có thể là loại OTP ROM chỉ cho phép nạp chương trình một lần, loại EFROM co thể ghi va xoá nhiều lần bằng tia cực tim, ngoài ra còn loại bộ nhớ nữa là EEFROM là loại bộ nhớ không tự bay hơi có thể được thay đổi dễ đàng bởi người lập trình. Vi điều khiến được sử dụng rộng rãi trong các thiết bị điện tử: chúng có trong các thiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải trí. Các thiết bị đó nói chung đều cần một cơ cầu điều khiển thông minh, có khả năng tương tác với người sử dụng.

Chương trình cho vi điều khiển là một tập các lệnh đã được dịch thành mã máy thường được nạp trực tiếp vào bộ nhớ ROM của vi điều khiển từ máy tinh thông quamọt bộ nạp trình. Một phía của bộ nap được nối với công may tinh (COM, USB, LPT) để nhận dữ liệu từ máy tính, phía kia đưa đữ liệu tới vi điều khiển thông qua các chân nạp trình của vi điều khiến. Các chân này lại là các chân vào ra thông thường sau khi vi điều khiến đã được nạp chương trình. Các công vào ra số cho các dữ liệu nhị phân đi chuyển voà ra qua các chân của vi điều khiển.

Các chân này được dùng dé ghép nói vi điều khiển với các thiết bị vào ra số hay ghép nối với các bộ vi điều khiển khác để thực hiện các chức nang nào đó. Công truyền thông đữ liệu nói tiếp tạo khả năng giao tiếp của hệ thống với các hệ thống khác qua các chuẩn giao tiếp như: URAT, CAN, 12C, SPI. Các bộ đếm dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm xung. Khối chuyển đổi A/D cho phép vi điều khiển giao tiếp với các thiết bị điện tử tương tụ như cảm biến tương tự nhờ đó nó có thể đưa các dữ liệu tương tự vào để xử lý và lưu trữ.

Khối A/D cho phép vi điều khiến điều khiến các thiết bị không tương thích điều khiển số. Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 1.2 Một Vài Họ Vi Điều Khiến Phố Biến: 1.1 INTEL 8051 v Có 40 chân, trong đó có 32 chân vào ra 128 byte RAM NK Có khả năng định địa chỉ được 64Kbyte bộ nhớ ngoài Có 2 tới 3 khối timer NN Tần số xung nhịp 12-24MHz Có khối UART Kf Nạp trình song song ở các phân họ có bộ nhớ chương trình 1.2 ATMEL AVR AT90Sxxxx v Dong vo 8-20-40 chân, tương ứng là 3- 5-32 chân vào ra Chữ lượng bộ nhớ chương trình từ 512 byte đến 8 Kbyte. Có 128 byte đến 512 byte RAM RON Có khối UART trong một số loại cáo cao Có 1 đến 2 timer 8 bit mét sé loai co timer 16 bit KR Bo ADC 10bit voi 6-8 kénh vao NR NO Có bộ nhớ EEFROM dung lượng 64-512 byte Tan số xung nhịp 10 MHz N\ Tập lệnh RISC 4 Nạp trình nói tiếp theo chuẩn ICSP ^ 1.3 MOTOROLA 68HCxx vã Dong vo PLCCS2, 68 hoac 82 chan v 38 chan vao ra v Có 1 byte bộ nhớ RAM bên trong v Không có hoặc tối đa 20Kbyte bộ nhớ lệnh vã Có khối UARTx Nguyễn Thế Anh Khoa Điện Tử Viễn Thông w Bộ ADC 8bit, 6-§ kênh vào wx 5 bộ timer l6 bit «Có bộ nhớ không tự bay hơi EEFROM 512 byte wx Khả năng định địa chỉ 16 Kbyte bộ nhó ngoài * Tần số xung nhịp 8 MHz vx Nạp trình song song 1.

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