Tổng quan về giáo trình

Giáo trình Vi điều khiển MSP430 do TS. Lương Vinh Quốc Danh và ThS. Trần Hữu Danh biên soạn, được Nhà xuất bản Đại học Cần Thơ ấn hành năm 2017 (ISBN: 978-604-919-805-2, phân loại DDC 621.3813, độ dài 356 trang). Tài liệu được Hội đồng thẩm định Trường Đại học Cần Thơ nghiệm thu, phục vụ trực tiếp cho học phần Kỹ thuật Vi xử lý thuộc chương trình đào tạo kỹ sư các ngành: Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Máy tính và Kỹ thuật Điều khiển & Tự động hóa.

Mục tiêu học tập của giáo trình là trang bị cho người học cấu trúc phần cứng, nguyên lý hoạt động của hệ thống vi điều khiển kiến trúc RISC 16-bit MSP430; phương pháp thiết kế mạch giao tiếp phần cứng ngoại vi và kỹ năng lập trình ngôn ngữ C điều khiển các khối chức năng tích hợp bên trong chip. Kết thúc môn học, người học có khả năng phân tích sơ đồ nguyên lý, cấu hình hệ thống thanh ghi và triển khai ứng dụng nhúng trên các dòng vi điều khiển MSP430.

Giáo trình được cấu trúc thành 04 chương logic, tiếp cận từ kiến thức hệ thống số, cấu trúc phần cứng phụ trợ, nguyên lý vi xử lý tổng quan đến kỹ thuật lập trình C nhúng trên môi trường chuyên dụng và chi tiết các module ngoại vi của MSP430.

Điểm đặc sắc của giáo trình là sự kết hợp chặt chẽ giữa lý thuyết cấu trúc thanh ghi, sơ đồ nguyên lý mạch điện thực tế và các ví dụ mã nguồn C mẫu. Toàn bộ nội dung thực hành và bài tập ứng dụng được thiết kế tương thích với kit phát triển phần cứng MSP430 LaunchPad (dòng chip MSP430G2553, MSP430FG4618), trình biên dịch IAR Embedded Workbench IDE và phần mềm mô phỏng mạch điện tử Proteus.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

  • Chương 1: Một số khái niệm cơ bản
    Cung cấp nền tảng toán học và phần cứng số: chuyển đổi qua lại giữa hệ nhị phân, thập phân, thập lục phân và mã BCD; cấu tạo và ứng dụng của các IC số chuyên dụng gồm IC đệm dòng cực thu để hở ULN2003/ULN2803A, IC đệm sửa dạng mức logic 74HC244, IC chuyển đổi mức điện áp logic 3.3V–5V 74LVC4245, IC ghi dịch mở rộng ngõ ra 74HC595. Thiết kế bản đồ không gian bộ nhớ bán dẫn song song ROM/RAM, mạch giải mã địa chỉ trực tiếp và giải mã hai cấp dùng IC 74138, 74139, 74154; nguyên lý mở rộng bộ nhớ nối tiếp chuẩn I2C (EEPROM 24C256/FM24C256) và SPI (họ chip M95xxx, M95640R); nguyên lý cảm biến $s = F(m)$, phân loại cảm biến tích cực/thụ động và các mạch chuyển đổi nguồn tín hiệu tương tự (dòng sang thế thụ động/tích cực dùng Op-Amp, trở kháng/điện dung sang tần số).
  • Chương 2: Tổng quan về Vi xử lý và Vi điều khiển
    Khái quát 5 thế hệ phát triển vi xử lý từ chip 4-bit (Intel 4004, 4040, 8008), 8-bit (8080, 8085, Z80), 16-bit (8086, 8088, 68000), 32-bit (80386, 80486, Pentium) đến 64-bit đa lõi (Multi-Core); phân biệt vi xử lý ($\mu\text{P}$/CPU) và vi điều khiển ($\mu\text{C}$); so sánh kiến trúc phần cứng Harvard và Von Neumann; phân tích ưu nhược điểm giữa tập lệnh phức CISC và tập lệnh thu gọn RISC; kỹ thuật đường ống lệnh (Pipelining); cấu trúc phân cấp hệ thống bộ nhớ (Cache, bộ nhớ vật lý, bộ nhớ ảo); khái niệm hệ thống nhúng và chip khả trình PSoC.
  • Chương 3: Ngôn ngữ C và công cụ lập trình nhúng cơ bản
    Cú pháp ngôn ngữ C cho hệ thống nhúng: các kiểu dữ liệu số nguyên/số thực, biến, hằng, con trỏ, toán tử số học/logic/xử lý bit (&, |, ^, ~, <<, >>); cấu trúc chương trình C cho MSP430 trên IAR; phương pháp xây dựng thư viện chuẩn .h.c (khởi tạo DS18B20, LCD); cấu hình phần cứng nạp và gỡ lỗi qua chuẩn JTAG MSP-FET430UIF, nạp qua giao thức BSL (Bootstrap Loader) bằng phần mềm MSPFET; quy trình biên dịch, gỡ lỗi dự án trên IAR Embedded Workbench IDE và Kit LaunchPad.
  • Chương 4: Vi điều khiển MSP430
    Chương chuyên sâu tập trung vào kiến trúc và ngoại vi họ vi điều khiển MSP430 (MSP430F2013, MSP430G2553, MSP430FG4618, MSP430FG6419):
    • Mạch phần cứng phụ trợ: Thiết kế khối nguồn ổn áp 3.3V/5V, mạch bảo vệ tự động Reset (POR, PUC, BOR, SVS), mạch đệm dòng và chuyển mức logic (74245, 74LVC4245), mạch mở rộng hiển thị LED 7 đoạn (4511, 7447, 74595), mạch điều khiển công suất cách ly qua Relay, Triac và động cơ DC.
    • Kiến trúc CPU và bộ nhớ: Cấu trúc CPU RISC 16-bit, tập 16 thanh ghi từ R0 đến R15 (R0: PC, R1: SP, R2: SR/CG1, R3: CG2, R4–R15: thanh ghi đa dụng); tổ chức không gian nhớ theo Bit, Byte, Word.
    • Hệ thống dao động xung clock và chế độ nguồn thấp: Cấu hình các nguồn xung ACLK, MCLK, SMCLK thông qua các khối dao động tần số thấp LFXT1, dao động số hóa DCO (thanh ghi DCOCTL, BCSCTL1, BCSCTL2, BCSCTL3) và mạch vòng khóa tần số FLL; quản lý 5 chế độ tiết kiệm năng lượng Low-Power Modes (LPM0 đến LPM4).
    • Cổng vào/ra số và hệ thống ngắt: Cấu hình các cổng GPIO từ Port 1 đến Port 6 thông qua các thanh ghi PxIN, PxOUT, PxDIR, PxSEL, PxREN, PxIE, PxIES, PxIFG; cơ chế ngắt phần cứng, phân cấp mức ưu tiên ngắt, quản lý bit cho phép ngắt toàn cục GIE và bảng vector ngắt.
    • Bộ định thời Timer và Watchdog Timer+: Cấu tạo và thanh ghi điều khiển Timer_A (TACTL, TAR, TACCRx, TACCTLx, TAIV) và Timer_B (TBCTL, TBR, TBCCRx, TBCCTLx, TBIV); các chế độ đếm Stop, Up, Continuous, Up/Down; khối bắt/so sánh (Capture/Compare); kỹ thuật điều chế độ rộng xung PWM; cấu hình Watchdog Timer+ (WDTCTL, IE1, IFG1).
    • Bộ biến đổi tương tự - số ADC và DAC: Cấu trúc và phương pháp cấu hình bộ ADC10 (ADC10CTL0, ADC10CTL1, ADC10DTC0, ADC10MEM, ADC10SA), bộ điều khiển chuyển tiếp dữ liệu tự động DTC (Data Transfer Control), cảm biến nhiệt độ nội trên chip MSP430, ứng dụng đo nhiệt độ với cảm biến LM35 hiển thị LCD; bộ chuyển đổi ADC12 (ADC12CTL0, ADC12CTL1, ADC12MEMx, ADC12MCTLx); bộ biến đổi số sang tương tự DAC12 (DAC12_xCTL, DAC12_xDAT).
    • Module truyền thông nối tiếp USCI: Thiết lập UART trong khối USCI_A0 (UCA0CTL0, UCA0CTL1, UCA0BR0, UCA0BR1, UCA0MCTL, UCA0STAT, bảng tính tốc độ baud ở chế độ UCOS16, giao tiếp cổng COM ảo trên máy tính); thiết lập chuẩn I2C trong khối USCI_Bx (UCBxCTL0, UCBxCTL1, UCBxBR0/1, UCBxI2CSA, UCBxI2COA, UCBxI2CIE, giao tiếp bộ nhớ EEPROM 24C256, chip thời gian thực DS1307, IC RTC BQ32000 điều khiển chuông trường học, mạch đệm PCA9517); thiết lập chuẩn SPI trong USCI_Ax/USCI_Bx (chế độ Master/Slave, đường truyền SIMO, SOMI, UCLK, STE, ứng dụng quét LED 7 đoạn qua 74HC595).

Kiến thức nền tảng được xây dựng

  • Lý thuyết nền tảng (Fundamental Theories): Nguyên lý kiến trúc máy tính vi xử lý 16-bit RISC; lý thuyết biểu diễn thông tin số và không gian địa chỉ hóa bộ nhớ ($N = 2^n$ ô nhớ); nguyên lý chuyển đổi tín hiệu tương tự - số (lấy mẫu, giữ mẫu, lượng tử hóa trong ADC/DAC); mô hình truyền thông nối tiếp đồng bộ (SPI, I2C) và không đồng bộ (UART).
  • Nguyên lý cốt lõi (Core Principles): Nguyên tắc tạo xung nhịp cơ bản và tối ưu công suất tiêu thụ của chip; nguyên lý thực thi ngắt phần cứng thông qua vector ngắt và chương trình con phục vụ ngắt (ISR); nguyên tắc điều chế độ rộng xung (PWM) ứng dụng trong điều khiển công suất.
  • Khung kiến trúc hệ thống (Essential Frameworks): Khung điều khiển ngoại vi thông qua bản đồ thanh ghi chức năng đặc biệt (SFR); khung lập trình C phân tầng giao tiếp trực tiếp với phần cứng (Hardware Abstraction Layer).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Tính toán tham số phân tần và tạo bảng giá trị Baud Rate; cấu hình thanh ghi thao tác bit trong C; thiết kế mạch giải mã địa chỉ tĩnh cho ROM/RAM; tích hợp mạch chuyển mức logic và mạch công suất cách ly quang.
  • Kỹ năng phân tích (Analytical Skills): Đọc và phân tích giản đồ thời gian (Timing Diagrams) của các giao thức truyền thông SPI, I2C, 1-Wire; phân tích lưu đồ giải thuật điều khiển và trạng thái các cờ ngắt trong thanh ghi.
  • Năng lực thực hành (Practical Competencies): Thiết kế hoàn chỉnh mạch nguyên lý ứng dụng vi điều khiển trên phần mềm Proteus; xây dựng thư viện C nhúng tái sử dụng; lập trình nạp firmware và gỡ lỗi phần cứng thời gian thực bằng công cụ IAR và bộ nạp JTAG/BSL.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp tiếp cận sư phạm tích hợp: kết hợp phân tích kiến trúc phần cứng, ánh xạ bản đồ thanh ghi, hiện thực hóa mã nguồn ngôn ngữ C và kiểm chứng thực nghiệm. Nội dung được thiết kế theo hướng phân hóa đối tượng người học: sinh viên chuyên ngành Điện tử đã tích lũy kiến thức về hệ thống số và kiến trúc máy tính có thể bắt đầu trực tiếp từ Chương 3 và Chương 4; sinh viên các khối ngành kỹ thuật khác tiếp cận tuần tự từ Chương 1 và Chương 2 để củng cố nền tảng.

Hệ thống bài tập và nghiên cứu tình huống được bố trí chi tiết ở cuối mỗi chương với mức độ nâng cao dần:

  • Bài tập tính toán và thiết kế logic: Tính toán dung lượng bộ nhớ theo bus địa chỉ, thiết kế sơ đồ mạch giải mã chọn chip dùng IC 74138 cho các vùng nhớ 8KBx8, 4KB, 128KB (Chương 1); so sánh tập lệnh và chu kỳ xung nhịp giữa CISC và RISC (Chương 2).
  • Bài tập thực hành và case study ứng dụng thực tế:
    • Tạo xung dao động 2Hz và điều chế xung PWM điều khiển tốc độ/độ sáng thông qua phím bấm SW1/SW2 (Hình 4.59, Hình 4.61).
    • Thiết kế hệ thống đo nhiệt độ môi trường sử dụng cảm biến tương tự LM35, xử lý qua khối ADC10 và hiển thị kết quả trực tiếp lên màn hình LCD (Hình 4.80, Hình 4.81).
    • Xây dựng giao thức truyền thông UART kết nối vi điều khiển với máy tính cá nhân qua cổng COM ảo (sử dụng phần mềm Terminal/Hercules) để điều khiển bật/tắt thiết bị (Hình 4.98, Hình 4.100).
    • Thiết kế mạch nguyên lý và lập trình giao tiếp chuẩn I2C với IC thời gian thực DS1307 phục vụ ứng dụng lịch vạn niên (Hình 4.126, Hình 4.129).
    • Hiện thực hóa hệ thống phát chuông báo học đường tự động sử dụng chip thời gian thực BQ32000 qua giao tiếp I2C (Hình 4.130, Hình 4.131).
    • Ứng dụng giao thức SPI Master điều khiển IC chốt 74HC595 giải mã xuất ký tự từ 0 đến 9 ra LED 7 đoạn (Hình 4.142).

Phương pháp tự học và đánh giá được xây dựng dựa trên việc phân tích lưu đồ thuật toán, đối chiếu trực tiếp với bảng thanh ghi ngoại vi trong giáo trình, sau đó tiến hành viết mã trên IAR, kiểm tra mô phỏng trên Proteus và nạp trực tiếp vào Kit LaunchPad để đối soát kết quả.


Điểm nổi bật và cập nhật

  • Tập trung vào kiến trúc vi điều khiển công suất cực thấp (Ultra-Low Power): Giáo trình tập trung phân tích sâu kiến trúc MSP430 của hãng Texas Instruments (TI), làm rõ cơ chế quản lý 5 chế độ năng lượng thấp (LPM0–LPM4) kết hợp module xung clock linh hoạt (DCO, LFXT1, FLL), đáp ứng tiêu chuẩn thiết kế các thiết bị đo lường và hệ thống nhúng dùng nguồn pin.
  • Khai thác module giao tiếp nối tiếp đa năng USCI: Tài liệu hệ thống hóa toàn diện khối ngoại vi USCI (Universal Serial Communication Interface) hỗ trợ cấu hình linh hoạt cả ba chuẩn truyền thông công nghiệp phổ biến trên cùng một kiến trúc phần cứng: UART không đồng bộ, I2C đồng bộ hai dây và SPI đồng bộ tốc độ cao.
  • Tích hợp cơ chế truyền dữ liệu tự động DTC: Phân tích chi tiết bộ điều khiển chuyển tiếp dữ liệu (Data Transfer Control - DTC) trong module ADC10, cho phép lấy mẫu và chuyển giao trực tiếp các khối dữ liệu tương tự vào bộ nhớ RAM mà không cần sự can thiệp của CPU, giảm tải tài nguyên tính toán.
  • Liên kết chặt chẽ giữa thiết kế mạch và ứng dụng công nghiệp: Giáo trình cung cấp danh mục các linh kiện công nghiệp tiêu chuẩn như IC ổn áp công suất thấp, IC đệm dòng ULN2003, mạch cách ly quang điều khiển Triac/Relay, IC nhớ EEPROM FM24C256, chip thời gian thực DS1307 và BQ32000.

Đối tượng sử dụng giáo trình

  • Sinh viên đại học khối ngành kỹ thuật: Giáo trình được biên soạn phục vụ sinh viên năm 2 và năm 3 thuộc các chuyên ngành: Kỹ thuật Điện tử - Truyền thông, Kỹ thuật Máy tính, Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử và Kỹ thuật Điện.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần có kiến thức cơ sở về Kỹ thuật số, Mạch điện tử và Ngôn ngữ lập trình C căn bản. Đối với sinh viên chưa hoàn thành các học phần trên, Chương 1 và Chương 2 cung cấp đầy đủ phần lý thuyết bổ trợ về biểu diễn số, IC logic và cấu trúc vi xử lý đại cương.
  • Giảng viên các trường đại học, cao đẳng: Tài liệu là cơ sở xây dựng đề cương chi tiết học phần Kỹ thuật Vi xử lý, Hệ thống nhúng; cung cấp ngân hàng sơ đồ mạch nguyên lý, lưu đồ thuật toán và bài tập thiết kế mạch phục vụ giảng dạy lý thuyết và hướng dẫn thí nghiệm.
  • Kỹ sư và người tự học: Phục vụ kỹ sư phần cứng nhúng cần tài liệu tra cứu có hệ thống về cấu hình thanh ghi họ MSP430, giao thức truyền thông nối tiếp và kỹ thuật thiết kế mạch nhúng thực tế.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Giáo trình phù hợp với sinh viên đại học, học viên cao học thuộc khối ngành kỹ thuật (Điện tử Viễn thông, Tự động hóa, Kỹ thuật Máy tính) học môn Kỹ thuật Vi xử lý, cùng các kỹ sư và người tự học thiết kế hệ thống nhúng trên dòng chip MSP430.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần kiến thức cơ sở về mạch điện tử và lập trình C cơ bản. Các kiến thức về hệ thống số, giải mã bộ nhớ và tổng quan kiến trúc máy tính đã được hệ thống hóa đầy đủ tại Chương 1 và Chương 2.

3. Điểm khác biệt của giáo trình so với các tài liệu vi điều khiển khác?

Giáo trình đi sâu vào họ vi điều khiển 16-bit RISC công suất thấp MSP430 của Texas Instruments thay vì các dòng 8-bit truyền thống (như 8051 hay PIC); tích hợp chi tiết bảng chức năng từng bit trong hệ thống thanh ghi SFR kết hợp mã nguồn C trên trình biên dịch IAR và kit phần cứng LaunchPad.

4. Làm sao để tự học và thực hành hiệu quả theo giáo trình?

Người học nên kết hợp đọc hiểu nguyên lý thanh ghi, vẽ và chạy mô phỏng sơ đồ mạch nguyên lý trên phần mềm Proteus, sau đó sử dụng IAR Embedded Workbench để biên dịch mã nguồn C và nạp trực tiếp xuống Kit MSP430 LaunchPad qua giao tiếp BSL hoặc mạch nạp JTAG FET.

5. Có tài liệu và công cụ bổ trợ nào đi kèm giáo trình?

Giáo trình cung cấp hệ thống sơ đồ mạch nguyên lý (Danh mục Hình), bảng tra cứu thanh ghi (Danh mục Bảng), danh mục từ viết tắt chuyên ngành (Danh mục từ viết tắt), Danh mục tài liệu tham khảo và hai phần Phụ lục (Phụ lục A, Phụ lục B) hỗ trợ tra cứu chi tiết thông số kỹ thuật và mã lệnh.


Kết luận

Giáo trình Vi điều khiển MSP430 là tài liệu học thuật có tính hệ thống cao, phản ánh chính xác cấu trúc phần cứng, cơ chế hoạt động của các module ngoại vi và kỹ thuật lập trình C nhúng cho họ vi điều khiển 16-bit RISC của Texas Instruments. Lộ trình học tập được thiết kế khoa học từ lý thuyết mạch số, phân bổ không gian bộ nhớ đến việc làm chủ từng module chuyên dụng (GPIO, Hệ thống xung clock DCO/FLL, Timer_A/Timer_B, PWM, ADC10/ADC12, DAC12, UART, I2C, SPI).

Kết hợp với các công cụ chuẩn công nghiệp như IAR Embedded Workbench, Proteus, phần mềm MSPFET và kit thực hành LaunchPad, giáo trình cung cấp nguồn tài liệu tham khảo chuẩn xác phục vụ đào tạo kỹ sư và nghiên cứu ứng dụng hệ thống nhúng.