Lập Trình Hệ Thống Nhúng Sử Dụng Vi Điều Khiển MSP430

Tài liệu nghiên cứu Lập trình hệ thống nhúng sử dụng vi điều khiển msp430 embedded system i, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Trường đại học

Trường Đại Học Kỹ Thuật

Chuyên ngành

Hệ Thống Nhúng

Người đăng

Ẩn danh

Thể loại

Hướng Dẫn
120
2
0

Phí lưu trữ

35 Point

Tóm tắt

I. Bắt đầu lập trình hệ thống nhúng MSP430 Tổng quan

Lĩnh vực hệ thống nhúng đang phát triển mạnh mẽ, chiếm đến 99% tổng số chíp tính toán được sản xuất. Việc nắm vững kỹ năng lập trình hệ thống nhúng với vi điều khiển MSP430 mở ra cơ hội nghề nghiệp rộng lớn. Bài viết này là một hướng dẫn toàn diện, cung cấp kiến thức nền tảng từ khái niệm, cấu trúc vi điều khiển cho đến các bước thực hành đầu tiên. Nội dung được chắt lọc từ các tài liệu học thuật uy tín như "MSP430 Microcontroller Basics" và giáo trình của Ts. Lê Mạnh Hải, đảm bảo tính chính xác và hệ thống. Trọng tâm của hướng dẫn là dòng vi điều khiển MSP430 của Texas Instruments, một lựa chọn phổ biến cho các ứng dụng yêu cầu hiệu suất cao và tiêu thụ năng lượng thấp. Các khái niệm cốt lõi về hệ thống nhúng sẽ được làm rõ, giúp người học phân biệt và nhận diện chúng trong các thiết bị hàng ngày. Đồng thời, những ưu điểm vượt trội của MSP430 so với các dòng vi điều khiển khác sẽ được phân tích, lý giải tại sao nó trở thành công cụ học tập và phát triển sản phẩm lý tưởng. Quá trình học sẽ đi từ lý thuyết đến thực hành, bắt đầu bằng việc hiểu rõ hệ thống nhúng là gì, cấu trúc phần cứng ra sao, và sau đó là các bước để xây dựng một ứng dụng hoàn chỉnh.

1.1. Khái niệm cốt lõi về hệ thống nhúng Embedded System

Theo định nghĩa từ vi.org, hệ thống nhúng (Embedded system) là một hệ thống máy tính tự trị được tích hợp vào một hệ thống mẹ hoặc môi trường lớn hơn. Đây là sự kết hợp chặt chẽ giữa phần cứngphần mềm, được thiết kế chuyên biệt để thực hiện một hoặc một vài chức năng nhất định. Khác với máy tính đa năng, hệ thống nhúng thường hoạt động với tài nguyên hạn chế nhưng yêu cầu độ ổn định và tính tự động hóa cực kỳ cao. Chúng hiện diện ở khắp mọi nơi, từ các thiết bị gia dụng đơn giản như máy giặt, lò vi sóng đến các hệ thống phức tạp trong xe hơi hiện đại, thiết bị y tế và dây chuyền tự động hóa công nghiệp. Một chiếc xe hơi đời mới có thể chứa trên 100 bộ xử lý nhúng. Đặc điểm chính của các hệ thống này là tính chuyên dụng, khả năng hoạt động ổn định trong thời gian dài và tối ưu hóa cho bài toán cụ thể, ví dụ như điều khiển, quan trắc hoặc truyền tin.

1.2. Tại sao vi điều khiển MSP430 là lựa chọn tối ưu

Dòng vi điều khiển MSP430 của Texas Instruments (TI) là một lựa chọn lý tưởng cho việc học và phát triển các ứng dụng nhúng, đặc biệt là các hệ thống yêu cầu tiết kiệm năng lượng. MSP430 được xây dựng trên kiến trúc RISC 16-bit, cung cấp hiệu suất xử lý mạnh mẽ trong khi vẫn duy trì mức tiêu thụ điện năng cực thấp. Điều này làm cho nó trở nên hoàn hảo cho các thiết bị di động chạy bằng pin. Hơn nữa, hệ sinh thái phát triển của TI rất mạnh mẽ, với các công cụ lập trình miễn phí như Code Composer Studio (CCS) và IAR Embedded Workbench (phiên bản giới hạn), cùng với bo mạch phát triển giá rẻ MSP-EXP430G2 LaunchPad. Các tài liệu tham khảo như "MSP430 Microcontroller Basics" và "Embedded Systems Design using the TI MSP430 Series" rất chi tiết và dễ tiếp cận. Những yếu tố này giúp giảm rào cản cho người mới bắt đầu, cho phép tập trung vào việc học logic lập trình điều khiển thay vì vật lộn với các công cụ phức tạp.

II. Nền tảng kiến trúc vi điều khiển MSP430 cần nắm vững

Để thực hiện lập trình hệ thống nhúng với vi điều khiển MSP430 một cách hiệu quả, việc hiểu rõ kiến trúc phần cứng là yêu cầu bắt buộc. Kiến thức này là nền tảng giúp tối ưu hóa mã lệnh, quản lý tài nguyên và khai thác tối đa sức mạnh của vi điều khiển. Phần này sẽ đi sâu phân tích cấu trúc bên trong của dòng MSP430, đặc biệt là model MSP430G2553 phổ biến. Chúng ta sẽ bắt đầu với kiến trúc bộ nhớ von Neumann, một đặc điểm thiết kế quan trọng ảnh hưởng đến cách CPU truy cập lệnh và dữ liệu. Tiếp theo, một cái nhìn chi tiết về các thành phần cơ bản như CPU, bộ nhớ Flash, RAM, các cổng I/O và các khối chức năng ngoại vi bổ sung như ADC, Timer sẽ được trình bày. Cuối cùng, việc tổ chức bộ nhớ và vai trò của từng loại thanh ghi, từ thanh ghi đa năng đến thanh ghi trạng thái, sẽ được giải thích cặn kẽ. Nắm vững những kiến thức này giúp việc gỡ lỗi và phát triển ứng dụng trở nên trực quan và dễ dàng hơn rất nhiều, thay vì chỉ lập trình một cách máy móc.

2.1. Phân tích cấu trúc von Neumann của dòng vi điều khiển MSP430

Dòng vi điều khiển MSP430 sử dụng cấu trúc von Neumann, một điểm khác biệt so với nhiều vi điều khiển khác sử dụng cấu trúc Harvard. Trong kiến trúc von Neumann, bộ nhớ chương trình (Code memory)bộ nhớ dữ liệu (Data memory) cùng chia sẻ chung một không gian địa chỉ và một bus. Điều này có nghĩa là CPU sử dụng cùng một đường truyền để tìm nạp lệnh và truy xuất dữ liệu. Ưu điểm của thiết kế này là sự linh hoạt trong việc phân chia bộ nhớ và đơn giản hóa thiết kế phần cứng. Tuy nhiên, nó có thể tạo ra một "nút thắt cổ chai" vì CPU không thể đọc lệnh và dữ liệu cùng một lúc. Mặc dù vậy, với các ứng dụng điều khiển không yêu cầu tính toán song song tốc độ cực cao, cấu trúc này hoàn toàn đáp ứng tốt và giúp tối ưu chi phí sản xuất. Hiểu rõ đặc điểm này giúp lập trình viên quản lý bộ nhớ hiệu quả hơn khi phát triển các ứng dụng phức tạp.

2.2. Các thành phần và khối chức năng chính của MSP430G2553

Vi điều khiển MSP430G2553 tích hợp nhiều thành phần và khối chức năng trên một con chip duy nhất. Các khối cơ bản bao gồm: Khối xử lý trung tâm (CPU) 16-bit, bộ nhớ Flash 16KB để lưu chương trình, bộ nhớ RAM 512 byte để lưu dữ liệu tạm thời, và các cổng nhập/xuất (Ports) P1, P2. Bên cạnh đó, nó còn có các khối bổ sung quan trọng như: Khối nạp chương trình JTAG, bộ biến đổi tương tự - số (ADC), hai bộ định thời (Timer) loại A, và hai khối giao tiếp tuần tự (USCI) hỗ trợ các chuẩn giao tiếp phổ biến. Các khối này hoạt động đồng bộ thông qua hệ thống Bus dữ liệu và Bus địa chỉ. Việc tích hợp sẵn các ngoại vi này giúp giảm thiểu số lượng linh kiện bên ngoài, tiết kiệm không gian mạch và đơn giản hóa thiết kế tổng thể của một hệ thống nhúng.

2.3. Tổ chức bộ nhớ và các loại thanh ghi Registers quan trọng

Bộ nhớ của MSP430G2553 được tổ chức thành nhiều vùng với chức năng riêng biệt. Vùng quan trọng nhất là các thanh ghi (Registers). CPU của MSP430 có 16 thanh ghi 16-bit, trong đó 4 thanh ghi có chức năng chuyên dụng: Program Counter (PC) chứa địa chỉ lệnh kế tiếp, Stack Pointer (SP) quản lý ngăn xếp, Status Register (SR) chứa các cờ trạng thái, và Constant Generator tạo hằng số. 12 thanh ghi còn lại là thanh ghi đa năng (R4-R15) dùng cho việc tính toán và lưu trữ tạm thời. Ngoài ra, mỗi khối ngoại vi đều có các thanh ghi chức năng chuyên dụng để cấu hình và điều khiển hoạt động của chúng. Một đặc điểm cần lưu ý là MSP430 tuân theo thứ tự Little-endian, nghĩa là byte có trọng số thấp được lưu ở địa chỉ bộ nhớ thấp hơn. Việc hiểu rõ vai trò của từng thanh ghi là chìa khóa để điều khiển vi điều khiển ở mức độ thấp và tối ưu hóa chương trình.

III. Hướng dẫn cài đặt môi trường phát triển ứng dụng nhúng

Để biến ý tưởng thành một sản phẩm chạy được, việc thiết lập một môi trường phát triển tích hợp (IDE) là bước đầu tiên và quan trọng nhất trong quy trình lập trình hệ thống nhúng với vi điều khiển MSP430. Môi trường này cung cấp một bộ công cụ hoàn chỉnh từ soạn thảo mã, biên dịch, liên kết đến nạp chương trình và gỡ lỗi. Phần này sẽ hướng dẫn chi tiết về các công cụ phần mềm phổ biến và miễn phí được Texas Instruments khuyên dùng. Trọng tâm là hai IDE mạnh mẽ: IAR Embedded WorkbenchCode Composer Studio (CCS). Các bước cài đặt, cấu hình project mới và làm quen với giao diện sẽ được mô tả cụ thể. Bên cạnh đó, những đặc điểm của ngôn ngữ lập trình C sử dụng trong môi trường nhúng sẽ được nhấn mạnh. Ngôn ngữ C cho phép truy cập trực tiếp vào phần cứng thông qua các thanh ghi, điều mà các ngôn ngữ bậc cao khó thực hiện. Cuối cùng, quy trình từ một file mã nguồn .c đến một file thực thi nạp vào chip sẽ được làm rõ, giúp người học hiểu được vai trò của trình biên dịch (compiler) và trình liên kết (linker).

3.1. Công cụ cần thiết IAR Embedded Workbench và Code Composer Studio

Hai môi trường phát triển (IDE) phổ biến nhất cho vi điều khiển MSP430IAR Embedded WorkbenchCode Composer Studio (CCS). Cả hai đều cung cấp các phiên bản miễn phí với giới hạn về kích thước mã nguồn (ví dụ 16KB cho CCS), đủ cho sinh viên và người mới bắt đầu. Các IDE này tích hợp đầy đủ công cụ cần thiết: bộ soạn thảo mã (Editor) có kiểm tra cú pháp, trình biên dịch (Compiler) chuyển mã C sang mã máy, trình liên kết (Linker) để gán địa chỉ bộ nhớ, và quan trọng nhất là trình gỡ lỗi (Debugger). Trình gỡ lỗi cho phép lập trình viên chạy từng dòng lệnh trên chip thật, theo dõi giá trị của các biến và thanh ghi, giúp tìm ra lỗi logic một cách nhanh chóng. Việc lựa chọn giữa IAR và CCS thường phụ thuộc vào sở thích cá nhân, nhưng cả hai đều là những công cụ chuyên nghiệp và mạnh mẽ.

3.2. Ngôn ngữ lập trình C cho hệ thống nhúng và các lưu ý đặc biệt

Ngôn ngữ C là lựa chọn hàng đầu cho lập trình hệ thống nhúng vì nó cung cấp sự cân bằng tuyệt vời giữa khả năng kiểm soát phần cứng ở mức độ thấp và tính dễ đọc, dễ bảo trì của một ngôn ngữ có cấu trúc. Không giống như lập trình ứng dụng trên máy tính, lập trình C cho vi điều khiển đòi hỏi sự quan tâm đặc biệt đến việc quản lý tài nguyên. Lập trình viên phải làm việc trực tiếp với các thanh ghi để cấu hình hoạt động của các chân I/O, timer, ADC... Ví dụ, để kiểm tra trạng thái một chân đầu vào, có thể dùng câu lệnh: if ((P1IN & BIT3) == 0). Điều này đòi hỏi kiến thức về các phép toán trên bit (AND, OR, XOR, SHIFT). Hơn nữa, với bộ nhớ RAM hạn chế, việc tối ưu hóa sử dụng biến và cấu trúc dữ liệu là cực kỳ quan trọng để chương trình hoạt động ổn định và hiệu quả.

IV. Phương pháp xử lý ngắt và quản lý xung nhịp hiệu quả

Trong lập trình hệ thống nhúng với vi điều khiển MSP430, hai khái niệm then chốt quyết định đến hiệu suất và khả năng phản ứng của hệ thống là ngắt (interrupts) và quản lý xung nhịp. Một hệ thống nhúng hiệu quả không chỉ chạy đúng logic mà còn phải phản ứng kịp thời với các sự kiện từ bên ngoài và tiêu thụ năng lượng một cách tối ưu. Phần này sẽ đi sâu vào cơ chế hoạt động của ngắt, một công cụ mạnh mẽ do phần cứng cung cấp để xử lý các tác vụ ưu tiên cao mà không cần CPU phải liên tục kiểm tra trạng thái. Đồng thời, tầm quan trọng của việc quản lý xung nhịp sẽ được làm rõ. Vi điều khiển MSP430 được thiết kế để hoạt động ở nhiều chế độ năng lượng thấp, và việc tắt hoặc giảm tần số xung nhịp của các khối không cần thiết là kỹ thuật cốt lõi để kéo dài thời gian sử dụng pin. Các nguồn xung nhịp khác nhau và cách lựa chọn chúng cho từng ứng dụng cụ thể sẽ được phân tích, giúp xây dựng các thiết bị nhúng vừa mạnh mẽ vừa tiết kiệm năng lượng.

4.1. Khám phá vai trò của ngắt Interrupts và tái khởi động Resets

Ngắt (Interrupts) là một sự kiện được tạo ra bởi phần cứng (dù được cấu hình bằng phần mềm) và yêu cầu CPU phải xử lý ngay lập tức. Khi một ngắt xảy ra, vi điều khiển sẽ tạm dừng chương trình chính, lưu trạng thái hiện tại (PC, SR) vào ngăn xếp, và nhảy đến một chương trình con đặc biệt gọi là Trình phục vụ ngắt (ISR - Interrupt Service Routine). Sau khi ISR thực thi xong, vi điều khiển sẽ khôi phục lại trạng thái và tiếp tục chương trình chính. Cơ chế này cực kỳ hữu ích, giúp hệ thống phản ứng nhanh với các sự kiện như nút nhấn, dữ liệu từ cảm biến mà không cần vòng lặp kiểm tra liên tục (polling), tiết kiệm tài nguyên CPU. Tái khởi động (Resets) cũng là một sự kiện phần cứng, thường dùng khi hệ thống gặp lỗi nghiêm trọng. Nó đưa vi điều khiển về trạng thái ban đầu ổn định, đảm bảo hệ thống phục hồi sau sự cố.

4.2. Các nguồn xung nhịp và cách tối ưu hóa năng lượng tiêu thụ

Bộ tạo xung nhịp là trái tim của mọi hệ thống số. MSP430 cung cấp nhiều nguồn xung và loại xung để tối ưu hóa giữa hiệu suất và năng lượng. Có các nguồn xung chính như LFXT1 (thạch anh tần số thấp, chính xác cao), VLO (dao động nội tần số thấp, tiết kiệm năng lượng), và DCO (dao động điều khiển kỹ thuật số, khởi động nhanh). Từ các nguồn này, hệ thống tạo ra ba loại xung nhịp chính: MCLK (Master Clock) cho CPU và các khối tốc độ cao, SMCLK (Subsystem Master Clock) cho các ngoại vi tốc độ trung bình, và ACLK (Auxiliary Clock) cho các tác vụ thời gian thực tốc độ thấp. Bằng cách sử dụng các thanh ghi trạng thái (SR), lập trình viên có thể tắt từng loại xung nhịp khi không cần thiết, đưa vi điều khiển vào các chế độ ngủ (low-power modes). Khi có một sự kiện ngắt, hệ thống sẽ tự động "thức dậy", cấp lại xung nhịp để xử lý, sau đó quay lại trạng thái ngủ, giúp tiết kiệm năng lượng tối đa.

V. Ứng dụng thực tiễn Lập trình I O với bo LaunchPad

Lý thuyết sẽ trở nên vô nghĩa nếu không được áp dụng vào thực tế. Đây là phần quan trọng nhất trong quá trình học lập trình hệ thống nhúng với vi điều khiển MSP430: bắt tay vào viết chương trình đầu tiên. Sử dụng bo mạch phát triển MSP-EXP430G2 LaunchPad, người học có thể dễ dàng nạp chương trình và tương tác trực tiếp với phần cứng. Bo mạch này đã tích hợp sẵn mạch nạp và gỡ lỗi, cùng với một vài đèn LED và nút nhấn cơ bản, là một phòng thí nghiệm thu nhỏ hoàn hảo. Phần này sẽ hướng dẫn chi tiết về bo LaunchPad, giới thiệu các thành phần chính trên bo mạch. Sau đó, một chương trình kinh điển "Hello, World!" của thế giới nhúng - chương trình bật tắt đèn LED (Blinky LED) - sẽ được trình bày từng bước. Qua ví dụ này, các khái niệm lý thuyết như cấu hình chân I/O (Input/Output), sử dụng thanh ghi điều hướng (P1DIR), thanh ghi xuất dữ liệu (P1OUT) và tạo trễ thời gian sẽ được hiện thực hóa bằng code, mang lại cái nhìn trực quan và củng cố kiến thức đã học.

5.1. Giới thiệu bo mạch MSP EXP430G2 LaunchPad Experimenter Board

Bo mạch MSP-EXP430G2 LaunchPad là một công cụ phát triển chi phí thấp nhưng cực kỳ mạnh mẽ từ Texas Instruments. Nó được thiết kế để giúp người dùng nhanh chóng bắt đầu với dòng vi điều khiển MSP430. Trên bo mạch tích hợp sẵn một vi điều khiển MSP430G2553, hai đèn LED (một đỏ, một xanh), một nút nhấn người dùng và một nút reset. Phần quan trọng nhất là mạch mô phỏng/gỡ lỗi tích hợp, cho phép nạp chương trình và debug trực tiếp từ máy tính qua cáp USB mà không cần mua thêm bất kỳ thiết bị đắt tiền nào. Các chân của vi điều khiển được đưa ra các hàng rào cắm (header), cho phép dễ dàng kết nối với các module cảm biến, màn hình, động cơ... để mở rộng dự án. Với LaunchPad, việc chuyển từ ý tưởng trên giấy sang một nguyên mẫu phần cứng hoạt động trở nên nhanh chóng và đơn giản.

5.2. Viết chương trình bật tắt đèn LED đơn giản cho người bắt đầu

Chương trình bật tắt đèn LED là bài học vỡ lòng kinh điển khi lập trình vi điều khiển. Mục tiêu là làm cho đèn LED màu đỏ (kết nối với chân P1.0 trên bo LaunchPad) nhấp nháy. Quy trình thực hiện bao gồm các bước sau: Đầu tiên, cần vô hiệu hóa Watchdog Timer (WDT) để tránh vi điều khiển tự reset. Tiếp theo, cấu hình chân P1.0 là chân xuất (output) bằng cách thiết lập bit tương ứng trong thanh ghi P1DIR (Port 1 Direction Register). Sau đó, trong một vòng lặp vô tận, chương trình sẽ bật đèn LED bằng cách ghi giá trị 1 vào chân P1.0 thông qua thanh ghi P1OUT (Port 1 Output Register). Kế đến, một vòng lặp tạo trễ được thực thi để giữ đèn sáng trong một khoảng thời gian. Cuối cùng, chương trình tắt đèn LED bằng cách ghi giá trị 0 vào P1OUT và lại tạo trễ. Vòng lặp này lặp lại liên tục, tạo ra hiệu ứng nhấp nháy. Chương trình này tuy đơn giản nhưng bao hàm các thao tác cơ bản nhất: cấu hình phần cứng và điều khiển đầu ra.

13/07/2025

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

Chương 1: Các hệ thống nhúng và vi điều khiển MSP430 Sau khi học bài này, sinh viên sẽ nắm được 1. Hệ thống nhúng là gì? 2. Các hướng phát triển hệ thống nhúng 3. Cấu trúc điển hình một vi điều khiển 4.

Cấu trúc vi điều khiển MSP430G2553 6 Hệ thống nhúng là gì? • Theo vi.org: Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị (máy tính) được nhúng vào trong một môi trường hay một hệ thống mẹ. • Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao. 7 Hệ thống nhúng là gì? • Máy giặt • Xe hơi đời mới có trên 100 bộ xử lý • Khoảng 99% chíp tính toán được ứng dụng trong các hệ thống nhúng 8 9 • Điện thoại di động thông minh (smartphone) • TV … 10 Bo Launchpad MSP430 IAR Kickstart or MSP430G2543 Code Composer MSP430G2553 Studio Ver 5 (CCS) MSP-EXP430G2 LaunchPad Experimenter Board 11 Các hướng phát triển hệ thống nhúng • Một hệ thống điều khiển tương tự (trước năm 1970) • Hệ thống máy tính số: Vi xử lý và vi điều khiển (1970 – nay) 12 • Mạch số tích hợp thấp: transitor, IC 555 • Mạch số tích hợp trung bình : CMOS 4000 • Mạch số tích hợp cao: Vi điều khiển 13 Các hướng ứng dụng • Application-specific integrated circuits (ASICs) – Chíp (IC) thiết kế dành riêng cho một ứng dụng • Field-programmable gate arrays (FPGAs) and programmable logic devices (PLDs) – Chíp thiết kế có thể lập trình thay đổi cấu tạo chức năng bằng cách tạo các mối liên kết giữa các cổng bên trong chíp.

Có hàng triệu cổng trong một chíp. • Microcontrollers – Có một số khối rất hay được sử dụng cùng với một khối xử lý trung tâm (CPU). 14 Vi điều khiển nhỏ • CPU xử lý 8 hoặc 16 bít • Bộ nhớ 64 KB • Tốc độ tối đa : 16Mhz • Chức năng chính: điều khiển, không phải tính toán! • http://www.com 15 Cấu trúc chung của vi điều khiển 16 Vi điều khiển có 6 thành phần cơ bản sau: 1. Khối xử lý trung tâm (CPU) bao gồm: – Khối tính toán số học/logic(ALU).

– Khối giải mã lệnh và các mạch hỗ trợ xử lý ngắt, tái khởi động – Các thanh ghi bao gồm thanh ghi đếm chương trình PC, con trỏ ngăn xếp SP, thang ghi trạng thái (SR), thanh ghi tạo hằng số CG và 12 thanh ghi đa năng 17 2. Bộ nhớ chương trình: Là bộ nhớ không mất dữ liệu khi mất điện. Trước kia là ROM, nay sử dụng FLASH. Chíp MSP430G2553 chỉ có 16KB 3.

Bộ nhớ dữ liệu: RAM truy xuất tùy ý nhưng dữ liệu bị xóa khi mất điện – Hiện đã có bộ nhớ dữ liệu không bị xóa khi mất điện 4. Các cổng nhập/xuất: Kết nối với các hệ thống khác 5. Đường BUS dữ liệu và BUS địa chỉ: Để truyền dữ liệu và lệnh giữa các khối. Khối xung nhịp: Tạo xung đồng bộ các khối 18 08 khối thường gặp khác: Khối định thời (Timer): Đếm thời gian chính xác.

Các vi điều khiển hiện nay có ít nhất 2 khối này. Khối định thời cảnh báo: Là khối kiểm soát lỗi chương trình theo thời gian. Khối này sẽ tái khởi động chíp khi chương trình bị lỗi. Khối giao tiếp tuần tự: Kết nối với các IC khác bằng cách truyền từng bít.

Khối nhớ dữ liệu không bay hơi: Lưu trữ dữ liệu ngay cả khi mất điện. Thường dùng để lưu cấu hình thiết bị như địa chỉ IP trong các ADSL router Khối biến đổi tương tự - số : Cho phép chuyển đổi tín hiệu tương tự sang dạng số. Khối biến đổi số -tương tự : Cho phép chuyển đổi tín hiệu tương tự sang dạng số, thường dùng để điều khiển động cơ bằng phương pháp xung số (PWM). Đồng hồ thời gian thực: Lưu giữ giá trị năm tháng ngày.

Bộ nạp và chạy chương trình: Cho phép nạp chương trình từ máy tính vào bộ nhớ chương trình 19 Cấu trúc Harvard và von Neumann MSP 430 có cấu trúc von Neumann 20 Câu hỏi • Hãy kể tên một vài thiết bị dân dụng là hệ thống nhúng? • Các thành phần cơ bản của một vi điều khiển? • Các khối hỗ trợ thường gặp ở một VĐK? • Sự khác biệt giữa cấu trúc Harvard và von Neumann ? 21 Bài 2: Cấu trúc vi điều khiển MSP430G2553 • Các chân VĐK MSP430G2553 • Các khối chức năng • Tổ chức bộ nhớ • Khối xử lý trung tâm (CPU) • Bộ tạo xung nhịp • Ngắt và tái khởi động • Các tài liệu chính thống 22 Các chân VĐK MSP430G2553 • Chân ra: 20 chân từ vỏ nhựa PDIP • Phần lớn các chân có nhiều chức năng. – Ví dụ chân số 3 có 5 chức năng • Các ứng dụng tại mỗi thời điểm chỉ yêu cầu mỗi chân thực hiện một chức năng => không bị mâu thuẫn 23 24 Mô tả các chân • VCC( chân 1) VSS (chân 20) dùng để cấp nguồn 3,3V cho chíp. Nguồn có thể dao động trong khoảng 1,8V – 3,6 V • P1.7 là 2 cổng nhập xuất số. Mỗi cổng 8 chân (8 bít), gọi tắt là P1 và P2.

• Các khối chức năng cũng sử dụng các chân này khi cần nhờ cấu hình thanh ghi chọn khối P1SEL và P2SEL. 25 Các khối chức năng MSP430G2553 26 Mô tả các khối chức năng • Các khối cơ bản: CPU, Xung nhịp, Flash, RAM, Ports,và Bus. • Các khối bổ xung: – Khối nạp chương trình: JTAG : 4 dây và 2 dây – Khối biến đổi tương tự - số ADC. – Khối bảo vệ sụt áp (Brownout Protection) – Khối so sánh áp (Compare A+) – Khối Đồng hồ canh gác (WDT) – 2 khối định thời loại A (Timer0_A3 và Timer_A3) – 2 khối giao tiếp tuần tự (USCI A0 và USCI B0) 27 Bộ nhớ • Bộ nhớ là các thanh ghi 8 bít, tổ chức thành các ô nhớ, • Địa chỉ ô nhớ 16 bit từ 0x0000 tới 0xFFFF • Bus dữ liệu 16 bit có thể truyền 16 bít hoặc 8 bít.

28 Bus địa chỉ và các ô nhớ 29 Thứ tự ô nhớ • Little-endian ordering: Khi dữ liệu có trên 1 byte thì byte giá trị thấp nằm ở vị trí dưới, byte giá trị cao nằm ở bên trên trong bộ nhớ. Dòng MSP430 có thứ tự này. • Big-endian ordering: Byte giá trị thấp nằm ở vị trí cao. Một số chíp của Motorola, Freescale HCS08 có cấu trúc này.

30 Tổ chức bộ nhớ Tổ chức bộ nhớ của MSP430G2553 gồm các thành phần sau • Thanh ghi chức năng chuyên dụng: Các thanh ghi của các khối có chức năng xác định trước. Ví dụ các thanh ghi PC, SP, SR, CG của CPU, thanh ghi P1REN, P1DIR của P1. • Các thanh ghi đa năng của CPU và các thiết bị ngoại vi, như các thanh ghi R4-R15 của CPU, P1IN, P1OUT của P1. – Các thanh ghi 8 bít – Các thanh ghi 16 bít • Random access memory (RAM): Các thanh ghi đặt trong khối RAM có địa chỉ từ 0x0200 và chỉ có 256/512 Bytes • Bootstrap loader : Là phần bộ nhớ không bị xóa chứa chương trình kết nối máy tính qua cổng COM của TI 31 • Bộ nhớ dữ liệu không bay hơi (Information memory): Là 256 Byte flash, cho phép lưu các thông tin quan trọng và không bị mất khi mất điện.

• Bộ nhớ chương trình (Code memory): Là bộ nhớ chỉ đọc (ROM) và chứa chương trình được nạp từ máy tính xuống. Sau khi nạp và khởi động, chương trình này sẽ được đọc vào CPU để thực thi. Chíp hiện nay có từ 2KB-16KB. • Interrupt and reset vectors: Là phần bộ nhớ chứa các địa chỉ của các hàm xử lý ngắt và tái khởi động.

32 33 Khối xử lý trung tâm (CPU) • Chức năng: Khối CPU thực thi các lệnh cất trong bộ nhớ chương trình. Các lệnh được đọc tuần tự và thực thi nếu không gặp các lệnh rẽ nhánh hoặc xử lý ngắt • Cấu tạo: Gồm một khối tính toán ALU 16 bít, mạch giải mã lệnh và 16 thanh ghi. • Tần số tối đa (cũng là tốc độ) do xung nhịp MCLK tạo là 16MHz. • 34 CPU 35 36 Các thanh ghi của CPU • Thanh ghi đếm chương trình (Program counter – PC): Chứa địa chỉ lệnh kế tiếp cần thực hiện.

PC tự động tăng 2 sau mỗi xung nhịp, ngoại trừ có lệnh rẽ nhánh hoặc gọi hàm • Con trỏ ngăn xếp (Stack pointer- SP): Trỏ đến vùng nhớ RAM dùng làm ngăn xếp. Khi một hàm được gọi, PC và SR được cất vào ngăn xếp và khi thực hiện xong hàm, các giá trị này được trả lại PC và SR để tiếp tục oc6ng việc đang thực hiện dở • Thanh ghi trạng thái (Status register – SR): Chứa các cờ trang thái. Các bít trạng thái hay được dùng là C, Z, N, và V. Ngoài ra có một số bít để tắt xung nhịp như CPUOFF (tắt MCLK) • Thanh ghi hằng số (Constant generator) Dùng để tạo ra một số hằng số thường gặp • 12 thanh ghi đa năng : là các thanh ghi dùng để lưu thông tin trung gian.

Các thanh ghi có tốc độ tru cập tương đương CPU 37 Bộ tạo xung nhịp • Xung nhịp là thiết bị không thể thiếu của các hệ thống số • Linh kiện thường dùng để tạo xung nhịp là thạch anh có thể tạo dao động khoảng vài MHz cho chíp (max = 16MHz) • Tuy nhiên khi chạy tốc độ cao, chíp tiêu tốn nhiều điện. Các hệ thống di động cần tiết kiệm pin nên một số bộ phận chỉ chạy ở tần số thấp sẽ tiết kiệm và tăng thời gian sử dụng pin. Bộ tạo xung nhịp cần đa dạng hóa các chế độ hoạt động của VĐK. • Nhiều ứng dụng nhúng phần lớn thới gian ở trạng thái ngủ (công suất thấp)-> Cần tắt xung nhịp khi có thể.

Khi có sự kiện ngắt, CPU sẽ được cấp xung đồng bộ lại để hoạt động. 38 Bộ tạo xung nhịp 39 Bộ tạo xung thấp tần bằng thạch anh LFXT1: Có thể tạo các xung nhịp từ vài chục KHz tới 1 MHz với độ chính xác cao. Bộ tạo xung cao tần bằng thạch anh- XT2: Giống LFXT1 ngoại trừ tần số cao hơn (8-16MHz) Bộ tạo xung tần số thấp VLO với độ chính xác thấp. Các VĐK có thể tạo xung nhịp tần số thấp mà không cần thạch anh.

Dùng VLO nếu cần tiết kiệm năng lượng (kéo dài thời gian sử dụng giữa hai lần sạc pin) Bộ tạo xung điều khiển kỹ thuật số (DCO): Tạo các xung nhịp tần số cao (8-10MHz) mà không dùng thạch anh.

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