Tải bản đầy đủ (.docx) (77 trang)

nghiên cứu về chip ARM cortex m3 LM3S8962 của hãng texas instruments

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 77 trang )

Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển của các nghành khoa học kỹ thuật, kỹ
thuật điện tử mà trong đó là kỹ thuật vi điều khiểm đóng vai trò quan trọng
trong mọi lĩnh vực khoa học, kỹ thuật, quản lí, công nghiệp tự động hoá, cung
cấp thông tin,… Do đó chúng ta phải nắm bắt và vận dụng nó một cách có
hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật nói chung và
trong sự phát triển kỹ thuật điện tử nói riêng. Các dòng vi điều khiển 8051
được sinh viên sử dụng nhiều với tính năng đơn giản, dễ sử dụng; AVR được
sử dụng nhiều trong các cuộc thi Robocon nhờ tốc độ xử lý khá cao, ổn định;
PIC với ưu thế tốc độ cao, chi phí thấp hơn cũng được nghiên cứu, sử dụng
nhiều, đặc biệt là trong các cuộc thi lập trình tay nghề khu vực và thế giới…
Nhưng trong một vài năm trở lại đây họ vi điều khiển ARM, Với rất nhiều thế
hệ đã ra đời, với nhiều tính năng,công dụng khác nhau. càng ngày càng nắm
vị trí quan trọng trong các lĩnh vực đòi hỏi tốc độ xử lý cao như điện tử viễn
thông, giám sát, an ninh
Chíp ARM được nghiên cứu phát triển và ứng dụng rất rộng rãi trong đo
lường và điều khiển. Đặc biệt chíp ARM được nghiên cứu ứng dụng để sản
xuất các thiết bị cầm tay như điện thoại, máy ảnh và các thiết bị đòi hỏi tốc độ
xử lý cao như tivi, các thiết bị xử lý tín hiệu số….
Với nhiều tính năng vượt trội của ARM và xu thế lựa chọn dòng vi điều
khiển mới ở Việt Nam nên trong đề tài nghiên cứu khoa học này, dưới sự giúp
đỡ của cô Dương Thị Hằng, chúng em thực hiện đề tài nghiên cứu về chip
ARM Cortex M3 LM3S8962 của hãng Texas Instruments.

GVHD: Dương Thị Hằng

Page: 1



SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn cô Dương Thị Hằng, thầy Phạm Văn
Chiến, thầy Nguyễn Văn Tùng, thầy Nguyễn Anh Dũng và các thầy cô
trong khoa Điện Tử đã hướng dẫn, tư vấn, giảng dạy, cung cấp tài liệu và
phần mềm bổ ích và tạo điều kiện hết mức trong quá trình học học và thực
hành nhờ đó mà chúng em hoàn thành đề tài nghiên cứu này!
Trong trong quá trình làm đề tài do hạn chế về thời gian ,nguồn tài liệu
tham khảo, kiến thức còn hạn hẹp nên đề tài nghiên cứu của tôi còn nhiều
thiếu sót, còn nhiều lỗi kỹ thuật trong báo cáo, nên rất mong được sự đóng
góp ý kiến của Hội đồng bảo vệ và các thầy cô để đề tài nghiên cứu của chúng
em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Sinh viên thực hiện:
Trịnh Đình Chương

GVHD: Dương Thị Hằng

Page: 2

SVTH: Trịnh Đình Chương



Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Chương I: Tổng quan kiến trúc ARM Cortex M3
Các dòng vi điều khiển Stellaris – ARM ® ™ Cortex-M3 đầu tiên - mang
lại những ứng dụng vi điều khiển nhúng hiệu suất cao 32-bit. Những bộ phận
tiên phong cung cấp cho khách hàng 32-bit hoạt động tại một chi phí tương
đương với các vi điều khiển kế thừa 8 bit và 16bit
Các Stellaris cung cấp hiệu suất hiệu quả và hội nhập sâu rộng, thiết bị
định vị thuận lợi với chi phí hợp lý, các ứng dụng đòi hỏi phải kiểm soát quá
trình đáng kể và khả năng kết nối. Dòng Stellaris LM3S8000 kết hợp công
nghệ Bosch Controller Area Network với cả 10/100 Ethernet Media Access
Control (MAC) và lớp vật lý (PHY).
Các vi điều khiển LM3S8962 là mục tiêu cho các ứng dụng công nghiệp, bao
gồm cả giám sát từ xa, máy bán điện tử, thiết bị kiểm tra và đo lường, thiết bị
mạng và thiết bị chuyển mạch, nhà máy tự động hóa, HVAC và kiểm soát các
tòa nhà, thiết bị chơi game, điều khiển chuyển động, thiết bị y tế, cứu hỏa và
an ninh.
Đối với các ứng dụng yêu cầu tiết kiệm năng lượng, LM3S8962 đề cao
một mô-đun pin hiệu quả đi theo, đưa năng lượng tiêu hao của LM3S8962 đến
một trạng thái năng lượng thấp trong thời gian dài không hoạt động. Với một
chuỗi power-up/power-down, một đồng hồ thời gian thực lien tục (RTC), một
cặp thanh ghi phù hợp, một giao diện APB với bus hệ thống, và bộ nhớ không
bay hơi dành riêng, các mô-đun Hibernation, các vi điều khiển LM3S8962
hoàn hảo cho các ứng dụng pin.
Ngoài ra, các vi điều khiển LM3S8962 cung cấp những lợi thế của ARM
phổ biến rộng rãi với các công cụ phát triển, System-on-Chip (SoC) các ứng
dụng cơ sở hạ tầng IP, và một cộng đồng lớn người dùng. Ngoài ra, vi điều
khiển ARM sử dụng Thumb ® tương thích Thumb-2 hướng dẫn thiết lập để

giảm bộ nhớ yêu cầu và, do đó chi phí giảm theo. Cuối cùng, các vi điều khiển
LM3S8962 là mã tương thích cho tất cả các thành viên của gia đình Stellaris
rộng, cung cấp sự linh hoạt để phù hợp chính xác nhu cầu của khách hàng.
1.1 Tính năng sản phẩm
Các vi điều khiển LM3S8962 bao gồm các tính năng sau:
GVHD: Dương Thị Hằng

Page: 3

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

■ 32-bit RISC
- 32-bit ARM Cortex ® ™-M3 v7M kiến trúc tối ưu hóa với chân linh
kiện nhỏ cho ứng dụng nhúng.
- Hệ thống hẹn giờ (SysTick), cung cấp đơn giản, 24-bit tự động nạp lại,
tạo sự kiện ngắt khi bộ đếm xuống mức zero, truy cập với một cơ chế điều
khiển linh hoạt, được thiết kế cho hệ điều hành thời gian thực.
- Thumb ® tương thích Thumb-2-nhằm đạt được hiệu suất cao của tập
lệnh ARM-32bit với mật độ ma chương trình tối ưu của tập lệnh Thumb 16bit.
- Hoạt động 50-MH
- Chia phần cứng và khuếch đại chu trình đơn.
- Tích hợp Bộ điều khiển vector ngắt lồng nhau (NVIC) cung cấp tính
quyết định xử lý ngắt
- 36 ngắt với tám cấp độ ưu tiên
- Khối bảo vệ bộ nhớ (MPU), cung cấp một chế độ đặc quyền cho cấu trúc

hệ điều hành được bảo vệ
- Truy cập dữ liệu độc lập, cho phép dữ liệu được đóng gói vào bộ nhớ
hiệu quả
- Thao tác bit (dải bit), cung cấp sử dụng bộ nhớ tối đa và kiểm soát các
thiết bị ngoại vi hợp lý.
■ ARM Cortex ® ™-M3 Processor Core
- Lõi thu gọn.
- Thumb-2, cung cấp các tính năng cao dự kiến của một lõi ARM trong
kích thước bộ nhớ thường được kết hợp với 8 - và 16-bit thiết bị; thường trong
khoảng một vài kilobyte bộ nhớ cho các ứng dụng lớp vi điều khiển.
- Nhanh chóng thực hiện thông qua các ứng dụng kiến trúc Harvard bằng
các bus đặc trưng riêng biệt cho điều khiển và dữ liệu.
- Xử lý gián đoạn vượt trội, bằng cách thực hiện các thao tác thanh ghi cần
thiết để xử lý một gián đoạn trong phần cứng.
- Tính quyết định, xử lý ngắt nhanh chóng: trong 12 chu kỳ, hoặc chỉ có 6
chu kỳ với kỹ thuật tail-chaining

GVHD: Dương Thị Hằng

Page: 4

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- Đơn vị bảo vệ bộ nhớ (MPU) cung cấp một chế độ ưu tiên để thực hiện
các ứng dụng phức tạp.

- Dịch chuyển từ các gia đình bộ xử lý ARM7 ™ cho hiệu năng tốt hơn và
hiệu quả về năng lượng.
- Đầy đủ tính năng giải pháp gỡ rối
• JTAG Debug Serial Port (SWJ-DP)
• Flash Patch và Breakpoint (FPB) đơn vị để thực hiện các điểm ngắt
• DataWatchpoint và Trigger (DWT) đơn vị thực hiện watchpoints, nguồn
trigger và hệ thống hồ sơ.
• Instrumentation Trace Macrocell (ITM) để hỗ trợ gỡ rối các kiểu printf
• Trace Port Interface Unit (TPIU) để chuyển tiếp đến Trace Port Analyzer
- Tối ưu hóa cho việc sử dụng flash đơn chu kỳ
- Ba chế độ ngủ với điện năng thấp
- Hướng dẫn đơn chu kỳ và phân chia phần cứng
- Hoạt động nguyên tử
- ARM Thumb2 16-/32-bit tập lệnh hỗn hợp
- 1.25 DMIPS/MHz
■ JTAG
- IEEE 1.149,1-1990 tương thích điều khiển Test Access Port (TAP)
- Bốn-bit thanh ghi điều khiển (IR) để lưu trữ chỉ thị JTAG
- Tiêu chuẩn chỉ thị IEEE: BYPASS, IDCODE, SAMPLE/PRELOAD,
EXTEST và INTEST
- ARM thêm chỉ thị: APACC, DPACC và ABOR
- Tích hợp ARM Serial Wire Debug (SWD)
■ Hibernation
- Hệ thống điều khiển công suất sử dụng bộ điều chỉnh bên ngoài riêng
biệt
- Pin chuyên dụng để báo một tín hiệu bên ngoài
- Phát hiện pin thấp, báo hiệu và tạo ngắt
- Đồng hồ thời gian thực (RTC) 32-bit
- Hai thanh ghi RTC 32-bit phù hợp cho thức dậy và tạo ngắt
GVHD: Dương Thị Hằng


Page: 5

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- Xung nhịp nguồn từ một bộ dao động bên ngoài 32,768-kHz hoặc một
thạch anh 4,194304-MHz
- RTC vi chỉnh để điều chỉnh tốt với tỷ lệ xung nhịp
- 64 từ nhớ 32-bit không bay hơi
- Có thể lập trình ngắt cho RTC phù hợp, đánh thức bên ngoài, và các sự
kiện pin thấp
■ Bộ nhớ trong
- 256 KB flash
- 64 kB SRAM
■ GPIOs
- 5-42 GPIOs, tùy thuộc vào cấu hình
- 5-V, tùy vào cấu hình đầu vào
- Có thể lập trình điều khiển cho ngắt GPIO
• Tạo ngắt
• Gây ra ngắt theo sườn: lên, xuống hoặc cả hai
• Ngắt theo mức : cao hoặc thấp
- Đọc và ghi hoạt động các bit thông qua các dòng địa chỉ
- Có thể bắt đầu một chuỗi mẫu ADC
- Các Pin cấu hình như các đầu vào kỹ thuật số là các Schmitt-Trigger
- Có thể lập trình điều khiển để cấu hình các chân GPIO

• Điện trở kéo lên nguồn, hoặc kéo xuống mass.
• 2-mA, 4-mA, và 8-mA để giao tiếp kỹ thuật số; có thể được cấu hình lên
đến 18-mA cho các ứng dụng cần dòng lớn.
• Cho phép đầu vào kỹ thuật số
■ General-Purpose Timers
- 4 bộ General-Purpose Timer Modules (GPTM), mỗi bộ cung cấp hai bộ
timer/counter 16-bit. Mỗi GPTM có thể được cấu hình để hoạt động độc lập:
• Là một bộ đếm thời gian 32-bit
• Là một đồng hồ thời gian thực 32-bit (RTC) để nắm bắt sự kiện
• Dùng cho điều chế rộng xung (PWM)
• Để kích hoạt chuyển đổi tương tự - số
GVHD: Dương Thị Hằng

Page: 6

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- Chế độ Timer 32-bit
• Có thể lập trình one-shot thời gian
• Có thể lập trình theo chu kỳ thời gian
• Real-Time Clock sử dụng một xung nhịp 32,768-KHz bên ngoài như đầu
vào
• Người dùng có thể dừng trong quá trình gỡ rối
• Kích hoạt ADC
- Chế độ Timer 16-bit

• Chức năng như độ định thời với một bộ chia 8-bit (cho chế độ one-shot
và chế độ theo chu kỳ)
• Có thể lập trình one-shot thời gian
• Có thể lập trình theo chu kỳ thời gian
• Người dùng có thể dừng trong quá trình gỡ rối
• Kích hoạt ADC
- Chế độ Input Capture 16-bit
• Capture đầu vào theo sườn
• Capture đầu vào theo thơi gian
- Chế độ PWM 16bit
• Chế độ PWM đơn giản với đầu ra có thể lập trình phần mềm của tín hiệu
PWM
■ Watchdog Timer
- Bộ đếm xuống 32-bit với một thanh ghi tải có thể lập trình.
- Xung watchdog riêng biệt
- Có thể lập trình tạo ngắt
- Khóa thanh ghi bảo vệ từ phần mềm sai
- Thiết lập lại bằng logic với một phép / vô hiệu hóa
- Người dùng có thể dừng trong quá trình gỡ rối
■ ADC
- Bốn kênh đầu vào analog
- Cảm biến nhiệt độ bên trong on-chip
- Tốc độ lấy mẫu 500.000 mẫu / giây
GVHD: Dương Thị Hằng

Page: 7

SVTH: Trịnh Đình Chương



Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- Dễ dàng cấu hình chuyển đổi tương tự - số
- Linh hoạt trong kích hoạt các điều khiển
• Bộ điều khiển (phần mềm)
• Timers
• So sánh tương tự
• PWM
• GPIO
- Phần cứng trung bình lên đến 64 mẫu để cải thiện độ chính xác
- Chuyển đổi sử dụng một tham chiếu 3-V nội
- Nguồn và mass cho các mạch tương tự là tách biệt với nguồn và mass
của mạch kỹ thuật số.
■ UART
- Hai chuẩn lập trình đầy đủ 16C550-loại UARTs với hỗ trợ IrDA
- 16x8 truyền (TX) và nhận (RX) FIFOs riêng biệt để giảm tải ngắt CPU
- Có thể lập trình cho phép tốc độ lên tới 3,125 Mbps
- Các mức độ FIFO 1 / 8, 1 / 4, 1 / 2, 3 / 4, và 7 / 8
- Tiêu chuẩn giao tiếp không đồng bộ với các bit bắt đầu, dừng lại, và tính
chẵn lẻ
- Phát hiện và sửa lỗi đường truyền
- Lập trình đầy đủ các đặc tính giao diện nối tiếp
• 5, 6, 7, hoặc 8 bit dữ liệu
• Tạo và kiểm tra bit chẵn, lẻ hoặc không
• Tạo 1 hoặc 2 bit dừng
- Cung cấp bộ mã hóa / giải mã IrDA serial -IR (SIR)
• Lập trình sử dụng IrDA Serial Infrared (SIR) hoặc đầu vào / đầu ra
UART

• Hỗ trợ chức năng mã hóa / giải mã IrDA SIR cho tốc độ dữ liệu lên đến
115,2 Kbps bán song công
• Hỗ trợ mức năng lượng 3 / 16 bình thường và mức năng lượng thấp
(1,41-2,23 μs) thời lượng bit

GVHD: Dương Thị Hằng

Page: 8

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

• Có thể lập trình lấy xung clock là bộ chia 1-256 cho chế độ năng lượng
thấp
■ Giao diện nối tiếp đồng bộ (SSI)
- Hoạt động master hoặc slave
- Có thể lập trình xung nhịp tốc độ bit và chia xung nhịp
- Truyền và nhận FIFOs riêng biệt, 16 bit rộng, 8 vị trí sâu
- Có thể lập trình giao diện hoạt động các giao diện nối tiếp đồng bộ của
Freescale SPI, MICROWIRE, hay Texas Instruments
- Lập trình khung dữ liệu 4-16 bit
- Chế độ kiểm tra ngược bên trong để kiểm tra phán đoán / gỡ rối
■ I2C
- Các thiết bị trên bus I2C có thể được chỉ định là master hoặc slave
• Hỗ trợ cả việc gửi và nhận dữ liệu như một master hoặc slave
• Hỗ trợ hoạt động đồng thời master và slave

- Bốn chế độ I2C
• Master truyền
• Master nhận
• Slave truyền
• Slave nhận
- Hai tốc độ truyền dẫn: Tiêu chuẩn (100 Kbps) và nhanh (400 Kbps)
- Nguồn ngắt master và slave
• Master tạo ra ngắt khi hoạt động truyền hoặc nhận hoàn thành (hoặc hủy
bỏ do lỗi)
• Slave tạo ra ngắt khi dữ liệu đã được gửi hoặc yêu cầu của master
- Master với phân xử và xung nhịp đồng bộ, hỗ trợ đa chủ, và chế độ 7-bit
địa chỉ
■ Controller Area Network (CAN)
- CAN giao thức phiên bản 2.0 A / B
- Tốc độ bit lên đến 1 Mbps
- 32 tin nhắn với nhận dạng mask cá nhân
- Ngắt mask
GVHD: Dương Thị Hằng

Page: 9

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- Vô hiệu hoá chế độ tự động gửi lại cho ứng dụng Time-Triggered CAN
(TTCAN)

- Lập trình kiểm tra ngược cho chế độ tự kiểm tra
- Cho phép lập trình FIFO lưu trữ của nhiều đối tượng nhắn tin
- Kèm theo một giao diện CAN bên ngoài thông qua các tín hiệu
CANnTX và CANnRX
■ 10/100 Ethernet Controller
- Phù hợp với các đặc điểm kỹ thuật IEEE 802,3-2002
• 10Base-T/100Base-TX IEEE-802,3
• 10Base-T/100Base-TX ENDEC, 100BASE-TX Scrambler / descrambler
- Nhiều chế độ hoạt động
• Song công và bán song công 100 Mbps
• Song công và bán song công 10 Mbps
• Chế độ tiết kiệm điện và giảm công suất xuống
- Cấu hình cao
• Lập trình địa chỉ MAC
• Lựa chọn hoạt động LED
• Hỗ trợ chế độ pha tạp
• Điều khiển loại bỏ lỗi CRC
•Người dùng cấu hình ngắt
- Thao tác truyền thông vật lý
• Tự động MDI / MDI-X qua chỉnh sửa
• Tự động điều chỉnh phân cực và tiếp nhận tín hiệu 10BASE-T
- IEEE 1588 Giao thức Thời gian chính xác - cung cấp thời gian chính xác cao
cho các gói cá nhân
Bộ so sánh tương tự
- Tích hợp một bộ so sánh tương tự
- Cấu hình cho đầu ra để điều khiển chân đầu ra, tạo ra một ngắt, hoặc bắt
đầu một mẫu ADC trình tự.
- So sánh đầu vào chân bên ngoài hoặc để lập trình điện áp tham chiếu bên
trong
GVHD: Dương Thị Hằng


Page: 10

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

- So sánh một điện áp kiểm tra đối với bất kỳ một trong những điện áp
• Một điện áp tham chiếu cá nhân bên ngoài
• Một điện áp tham chiếu chia sẻ duy nhất bên ngoài
• Một điện áp tham chiếu chia sẻ nội bộ
■ PWM
- Ba khối tạo PWM 16-bit, hai bộ so sánh PWM, một khối tạo tín hiệu
PWM, một máy phát băng tần chết, và một bộ lựa chọn ngắt /kích hoạt ADC
- Một lỗi đầu vào trong phần cứng để tăng độ trễ thấp tắt máy
- Bộ đếm 16 bit:
• Đếm xuống hoặc chế độ Lên / Xuống
• Tần số đầu ra được điều khiển bởi một giá trị nạp 16-bit
• Cập nhật giá trị nạp có thể được đồng bộ
• Tạo ra tín hiệu zero và giá trị tải
- Hai bộ so sánh PWM
• Cập nhật giá trị so sánh có thể được đồng bộ
• Tạo ra các tín hiệu đầu ra khi so sánh đúng
- Bộ tạo PWM
• Đầu ra tín hiệu PWM được xây dựng dựa trên các hoạt động như là một
kết quả của bộ đếm và tín hiệu so sánh PWM đầu ra
• Tạo ra hai tín hiệu PWM độc lập

- Bộ tạo Dead-band
• Tạo ra hai tín hiệu PWM với lập trình trễ băng tần chết phù hợp để điều
khiển nửa cầu H
• Có thể được bỏ qua, để lại các tín hiệu PWM đầu vào không sửa đổi
- Kiểm soát đầu ra linh hoạt với cho phép đầu ra PWM của mỗi tín hiệu
PWM
• Cho phép đầu ra PWM của mỗi tín hiệu PWM
• Các tùy chọn đảo đầu ra của mỗi tín hiệu PWM (phân cực điều khiển)
• Tùy chọn xử lý lỗi cho mỗi tín hiệu PWM
• Đồng bộ hóa các bộ timer trong các khối tạo PWM
• Đồng bộ hoá cập nhật các bộ đếm /bộ so sánh giữa các khối tạo PWM
GVHD: Dương Thị Hằng

Page: 11

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

• Tóm tắt tình trạng ngắt các khối tạo PWM
- Có thể bắt đầu một chuỗi lấy mẫu ADC
■ QEI
- Hai module QEI, với các tính năng sau đây:
- Chức vụ tích hợp, theo dõi vị trí mã hóa
- Chụp tốc độ bằng cách sử dụng tích hợp bộ đếm thời gian
- Tần số đầu vào của các đầu vào QEI có thể cao bằng 1 / 4 của tần số bộ
xử lý

- Tạo ngắt:
• Chỉ số xung
• Hẹn giờ tốc độ hết hạn
• Hướng thay đổi
• Phát hiện lỗi góc
■ Power
- Low Drop-Out (LDO) ổn áp on-chip, với người dùng lập trình điều
chỉnh đầu từ 2,25 V đến 2,75 V
- Module hibernation xử lý các chuỗi power-up/down 3.3 V và kiểm soát
mạch kỹ thuật số logic và mạch tương tự
- Tùy chọn mức năng lượng thấp trên bộ điều khiển: chế độ Sleep và
Deep-Sleep
- Tùy chọn mức năng lượng thấp cho các thiết bị ngoại vi: điều khiển bằng
phần mềm tắt máy của các thiết bị ngoại vi cá nhân
- Phát hiện nguồn cung cấp 3.3V bị gián đoạn và báo cáo ngắt hoặc reset
■ Các nguồn reset linh hoạt
- Power-on reset (POR)
- Xác nhận reset pin
- Brown-out (BOR) phát hiện cảnh báo cho hệ thống nguồn giảm
- Reset bằng Phần mềm
- Đặt lại Watchdog timer
- Low drop-out (LDO) bên trong
1.2 Mục tiêu ứng dụng
GVHD: Dương Thị Hằng

Page: 12

SVTH: Trịnh Đình Chương



Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

■ Giám sát từ xa
■ Máy bán hàng điện tử (POS)
■ Thiết bị kiểm tra và đo lường
■ Thiết bị mạng và thiết bị chuyển mạch
■ Nhà máy tự động hóa
■ HVAC và kiểm soát các tòa nhà
■ Thiết bị chơi game
■ Điều khiển động cơ
■ Thiết bị y tế
■ Báo cháy và an ninh
■ Điện năng và năng lượng
■ Giao thông vận tải
1.3 Sơ đồ khối

GVHD: Dương Thị Hằng

Page: 13

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Hình 1-1: Sơ đồ khối LM3S8962


GVHD: Dương Thị Hằng

Page: 14

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Chương II : Cấu trúc của họ vi điều khiển ARM CORTEX
Bộ xử lý Cortex là thế hệ lõi nhúng kế tiếp từ ARM. Cortex thừa kế
các ưu điểm từ các bộ xử lí ARM trước đó, nó là một lõi xử lý hoàn
chỉnh, bao gồm bộ xử lí trung tâm Cortex và một hệ thống các thiết bị
ngoại vi xung quanh, Cortex cung cấp phần xử lí trung tâm của một hệ
thống nhúng. Để đáp ứng yêu cầu đa dạng của các hệ thống nhúng, bộ xử
lý Cortex gồm có ba nhánh, được biểu hiện bằng các ký tự sau tên Cortex
như sau:
Cortex-A : bộ vi xử lý dành cho hệ điều hành và các ứng dụng của
người dùng phức tạp. Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2.
Cortex-R : bộ xử lí dành cho các hệ thống đòi hỏi khắc khe về tính
thời gian thực.
Hỗ trợ các tập lệnh ARM, Thumb, và Thumb-2.
Cortex-M : bộ xử lí dành cho dòng vi điều khiển, được tối ưu hóa cho
các ứng dụng nhạy cảm về chi phí. Chỉ hỗ trợ tập lệnh Thumb-2.
Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương đối, với 1 là
thấp nhất và 8 là cao nhất. Hiện nay dòng Cortex-M có mức hiệu suất cao
nhất là mức 3. LM3S8962 dựa trên bộ xử lý Cortex-M3.

2.1 Các phiên bản kiến trúc ARM
Tính đến thời điểm hiện tại thì phiên bản kiến trúc mới nhất của lõi ARM là
ARMv7 (Trước đó có ARMv4, ARMv5, ARMv6). Bộ xử lý Cortex-M3 dựa
trên kiến trúc ARMv7 M và có khả năng thực hiện tập lệnh Thumb-2

GVHD: Dương Thị Hằng

Page: 15

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Hình 2.1. Các phiên bản kiến trúc của lõi ARM
2.2 Bộ xử lí Cortex và đơn vị xử lí trung tâm Cortex
Bộ xử lí Cortex (Cortex processor) và đơn vị xử lí trung tâm Cortex
(Cortex CPU) sẽ được sử dụng để phân biệt giữa nhúng lõi Cortex hoàn
chỉnh và bộ xử lí trung tâm RISC nội (internal RISC CPU).
2.3 Đơn vị xử lí trung tâm Cortex (Cortex CPU)
Trung tâm của bộ xử lý Cortex là một CPU RISC 32-bit. CPU
này có một phiên bản được đơn giản hóa từ mô hình lập trình
(programmer’s model) của ARM7/9 ,a nhưng có một tập lệnh phong phú
hơn với sự hỗ trợ tốt cho các phép toán số nguyên, khả năng thao tác với bit
tốt hơn và khả năng đáp ứng thời gian thực tốt hơn.
2.3.1 Kiến trúc đường ống (Pipline)
CPU Cortex có thể thực thi hầu hết các lệnh trong một chu kì đơn.
Giống như CPU của ARM7 và ARM9, việc thực thi này đạt được với một

đường ống ba tầng. Tuy nhiên Cortex-M3 khả năng dự đoán việc rẽ nhánh
để giảm thiểu số lần làm rỗng (flush) đường ống.

GVHD: Dương Thị Hằng

Page: 16

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Hình 2.2. Kiến trúc đường ống của ARM Cortex-M3
Trong khi một lệnh đang được thực thi, thì lệnh tiếp theo sẽ được giải
mã và lệnh tiếp theo nữa sẽ được lấy về từ bộ nhớ. Phương thức hoạt
động này sẽ phát huy hiệu quả tối đa cho mã tuyến tính (linear code),
nhưng khi gặp phải một rẽ nhánh (ví dụ cấu trúc lệnh if…else) thì các
đường ống phải được làm rỗng (flush) và làm đầy (refill) trước khi mã có
thể tiếp tục thực thi. Với CPU ARM7 và ARM9, việc rẽ nhánh là rất tốn
kém về mặt hiệu suất mã (code performance). Trong CPU Cortex có đường
ống ba tầng được tăng cường khả năng dự đoán rẽ nhánh, có nghĩa rằng khi
một lệnh rẽ nhánh có điều kiện xuất hiện, một thao tác lấy lệnh dựa trên
suy đoán được thực hiện, do đó lệnh rẽ nhánh có điều kiện sẵn sàng để
thực hiện mà không cần chịu thêm một thao tác nào. Trường hợp xấu nhất
khi gặp phải một rẽ nhánh gián tiếp, khi đó không thể thực hiện việc lấy
lệnh dựa trên việc suy đoán, do đó phải làm rỗng đường ống dẫn. Kiến trúc
đường ống là chìa khóa dẫn đến hiệu suất tổng thể của CPU Cortex, vì vậy
không cần bất kì cân nhắc, xem xét đặc biệt nào được thực hiện trong mã

ứng dụng.
2.3.2 Mô hình lập trình (Programmer’s model)
CPU Cortex là bộ xử lý dựa trên kiến trúc RISC, do đó hỗ trợ kiến
trúc nạp và lưu trữ (load and store architecture). Để thực hiện lệnh xử lý dữ
liệu, các toán hạng phải được nạp vào một tập thanh ghi trung tâm, các phép
tính dữ liệu phải được thực hiện trên các thanh ghi này và kết quả sau đó
GVHD: Dương Thị Hằng

Page: 17

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

được lưu lại trong bộ nhớ.

GVHD: Dương Thị Hằng

Page: 18

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử


Hình 2.3. Kiế trúc load và store của ARM Cortex-M3
Do vậy tất cả các hoạt động của chương trình tập trung xung quanh
tập thanh ghi của CPU. Tập thanh ghi này bao gồm mười sáu thanh ghi 32bit. Các thanh ghi R0-R12 là các thanh ghi đơn giản, có thể được dùng để
chứa các biến của chương trình. Các thanh ghi R13-R15 có chức năng
đặc biệt trong CPU Cortex. Thanh ghi R13 được dùng như là con trỏ
ngăn xếp (stack pointer). Thanh ghi này được chia thành nhóm (banked),
cho phép CPU Cortex có hai chế độ hoạt động, mỗi chế độ có không gian
ngăn xếp riêng biệt. Đặc điểm này thường được hệ điều hành thời gian thực
(Real Time Operating System) sử dụng để có thể chạy mã hệ thống của
mình trong một chế độ bảo vệ. Trong CPU Cortex có hai ngăn xếp được gọi
là main stack và process stack. Thanh ghi R14 tiếp theo được gọi là thanh
ghi liên kết (link register). Thanh ghi này được sử dụng để lưu trữ các địa
chỉ trở về khi một cuộc gọi thủ tục (call a procedure) được thực hiện.
Điều này cho phép CPU Cortex thực hiện rất nhanhviệc nhập và thoát
khỏi một thủ tục (fast entry and exit to a procedure). Nếu chương trình
của bạn gọi sâu vào nhiều lớp chương trình con, trình biên dịch sẽ tự động
lưu R14 trên ngăn xếp (stack). Thanh ghi cuối cùng R15 là bộ đếm chương
trình (Program Counter); nó là một phần của tập thanh ghi trung tâm, nó có
thể được đọc và thao tác giống như bất kỳ thanh ghi khác.

GVHD: Dương Thị Hằng

Page: 19

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử


Hình 2.4. Mô hình lập trình của ARM
Cortex-M3
2.3.2.1 Thanh ghi XPSR
Ngoài tập thanh ghi trung tâm còn có một thanh ghi riêng biệt được
gọi là thanh ghi trạng thái chương trình (Program Status Register). Nó
không phải là một phần của tập thanh ghi chính và chỉ có thể truy cập
thông qua hai lệnh chuyên dụng. XPSR chứa một số các vùng chức năng
quan trọng ảnh hưởng đến việc thực thi của CPU Cortex.

Hình 2.5. Thanh ghi trạng thái chương trình của
GVHD: Dương Thị Hằng

Page: 20

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

CPU Cortex
Thanh ghi xPSR cũng có thể được truy cập thông qua ba biệt hiệu đặc
biệt (special alias names) cho phép truy cập vào các bit trong xPSR. Năm bit
đầu là những cờ mã điều kiện và được gán biệt hiệu (aliased) như thanh ghi
trạng thái chương trình ứng dụng. Bốn cờ N, Z, C, V (Negative, Zero,
Carry và Overflow) sẽ được thiết lập và xóa tùy thuộc vào kết quả của một
lệnh xử lý dữ liệu. Bit Q là được sử dụng bởi các lệnh toán học DPS để chỉ
ra rằng một biến đã đạt giá trị tối đa hoặc giá trị tối thiểu của nó. Giống như

tập lệnh ARM 32-bit, các lệnh Thumb-2 chỉ được thực hiện nếu mã điều
kiện của lệnh phù hợp với trạng thái của các cờ trong thanh ghi trạng thái
chương trình ứng dụng (Application Program Status Register). Nếu mã điều
kiện của lệnh không phù hợp, thì lệnh đi ngang qua đường ống như là một
lệnh NOP (lệnh này không làm gì cả). Điều này đảm bảo rằng các lệnh đi
qua đường ống một cách trơn tru và giảm thiểu làm rỗng đường ống. Trong
CPU Cortex, kỹ thuật này được mở rộng với thanh ghi trạng thái chương
trình thực thi. Đây là một biệt hiệu của bit các bit từ 8-26 của xPSR. Nó
gồm ba trường: trường

"If

then",

trường

"interrupt continuable

instruction"và trường lệnh Thumb. Lệnh Thumb-2 có một phương pháp
hiệu quả khi thực hiện các khối lệnh nhỏ 'if then'. Khi một kiểm tra điều
kiện là đúng, nó có thể thiết lập một giá trị trong vùng IT, báo cho CPU
thực thi lên bốn lệnh. Nếu việc kiểm tra điều kiện là sai, các lệnh này sẽ đi
ngang qua đường ống như là một lệnh NOP.
Hầu hết các lệnh Thumb-2 thực thi trong một chu kì đơn, một số khác
(như lệnh load và store) cần nhiều chu kỳ. Vì vậy, để CPU Cortex có thể có
một thời gian đáp ứng ngắt xác định, các lệnh cần nhiều chu kì thực thi phải
được ngắt. Khi một lệnh được chấm dứt sớm, vùng ICI (Interrupt
Continuable Instruction) trong thanh ghi xPSR sẽ lưu lại số các thanh ghi
tiếp theo được dùng trong lệnh load hoặc store nhiều dữ liệu cùng lúc. Vì
vậy, một khi ngắt được phục vụ, lệnh load/store bị ngắt trước đó có thể tiếp

tục được thực hiện. Trường Thumb cuối cùng được thừa hưởng từ phiên bản
CPU ARM trước đó. Trường này chỉ ra nếu tập lệnh ARM hoặc Thumb
GVHD: Dương Thị Hằng

Page: 21

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

đang được thực hiện bởi CPU. Trong Cortex-M3 bit này luôn luôn được
thiết lập mức 1 (tức là tập lệnh đang được thực thi là tập lệnh Thumb). Cuối
cùng, trường trạng thái ngắt chứa thông tin về yêu cầu ngắt đã được ưu tiên
trước (pre-empted).
2.3.3 Các chế độ hoạt động của CPU
Bộ vi xử lý Cortex được thiết kế với mục tiêu giảm số bóng bán dẫn,
nhanh chóng và dễ sử dụng lõi vi điều khiển, nó có được thiết kế để hỗ trợ
việc sử dụng hệ điều hành thực hành thời gian. Bộ xử lý Cortex có hai
chế độ hoạt động: chế độ Thread và chế độ Handler. CPU sẽ chạy ở chế
độ Thread trong khi nó đang thực thi ở chế độ nền không có ngắt xảy ra và
sẽ chuyển sang chế độ Handler khi nó đang thực thi các ngắt đặc biệt
(exceptions). Ngoài ra, CPU Cortex có thể thực thi mã trong chế độ đặc
quyền hoặc không đặc quyền (privileged or non-privileged mode). Trong
chế độ đặc quyền, CPU có quyền truy cập tất cả các lệnh. Trong chế độ
không có đặc quyền, một số lệnh bị cấm truy cập (như lệnh MRS và MSR
cho phép truy cập vào xPSR và các trường của nó). Ngoài ra, việc cập các
thanh ghi điều khiển hệ thống trong bộ vi xử lý Cortex cũng bị cấm. Cách

sử dụng ngăn xếp (stack) cũng có thể được cấu hình. Ngăn xếp chính (main
stack-R13) có thể được sử dụng bởi cả hai chế độ Thread và Handler.
Chế độ Handler có thể được cấu hình để sử dụng ngăn xếp quá trình
(process stack-R13 banked register).

GVHD: Dương Thị Hằng

Page: 22

SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Hình 2.6. Mô hình hoạt động của chế độ Thread và Handler
Sau khi reset, bộ xử lý Cortex sẽ chạy trong cấu hình phẳng(flat
configuration). Cả hai chế độ Thread và Handler được thực thi trong chế
độ đặc quyền (privileged mode), do đó, không có sự giới hạn nào về quyền
truy cập vào bất kỳ tài nguyên của bộ xử lý. Cả hai chế độ Thread và
Handler đều sử dụng ngăn xếp chính. Để bắt đầu thực hiện, bộ xử lý Cortex
đơn giản chỉ cần vector reset và địa chỉ bắt đầu của ngăn xếp để được cấu
hình trước khi bạn có thể bắt đầu thực thi chương trình ứng dụng C của
bạn. Tuy nhiên, nếu bạn đang sử dụng một hệ điều hành thời gian thực
(RTOS) hoặc đang phát triển một ứng dụng đòi hỏi khắt khe về độ an toàn,
GVHD: Dương Thị Hằng

Page: 23


SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

chip có thể được sử dụng trong chế độ cấu hình nâng cao, nơi chế độ
Handler (exceptions và RTOS) chạy trong chế độ đặc quyền và sử dụng
ngăn xếp chính (main stack), trong khi mã ứng dụng chạy trong chế độ
Thread và không có đặc quyền truy cập và sử dụng ngăn xếp quá trình
(process stack). Bằng cách này mã hệ thống và mã ứng dụng được phân
vùng và các lỗi trong mã ứng dụng sẽ không làm cho RTOS sụp đổ.
2.3.4 Tập lệnh Thumb-2
Các CPU ARM7 và ARM9 có thể thực thi hai tập lệnh: ARM 32-bit
và Thumb 16- bit. Điều này cho phép người phát triển tối ưu hoá chương
trình của mình bằng cách lựa chọn tập lệnh nào được sử dụng cho thủ tục
khác nhau: lệnh 32-bit để tăng tốc độ xử lí và lệnh 16-bit để nén mã
chương trình. CPU Cortex được thiết kế để thực thi tập lệnh Thumb-2, là
một sự pha trộn của lệnh 16-bit và 32-bit. Tập lệnh thumb-2 cải tiến
26% mật độ mã so với tập lệnh ARM 32-bit và 25% hiệu suất so với tập
lệnh Thumb 16- bit. Tập lệnh Thumb2 có một số lệnh nhân được cải tiến,
có thể thực hiện trong một chu kì đơn và khả năng thực hiện phép chia
bằng phần cứng và chỉ mất từ 2-7 chu kỳ

Hình 2.7. Đồ thị biểu diễn hiệu năng của bộ xử lí Cortex

GVHD: Dương Thị Hằng

Page: 24


SVTH: Trịnh Đình Chương


Trường Đại Học Công Nghiệp Hà Nội

Khoa Điện Tử

Bảng biểu diễn hiệu năng bộ xử lý Cortex
Điểm chuẩn bộ xử lý Cortex (Cortex processor benchmark) cho
một mức độ thực hiện là 1,25 DMIPS/MHz, cao hơn so với ARM7 (0.95
DMIPS/MHz với tập lệnh ARM và 0.74 DMIPS/MHz với tập lệnh Thumb)
và ARM9 ().
Tập lệnh Thumb-2 có: các lệnh rẽ nhánh được cải tiến bao gồm việc
kiểm tra và so sánh, các khối thực thi có điều kiện if/then, thứ tự byte thao
tác dữ liệu, các lệnh trích byte và half word. CPU Cortex có một tập lệnh
phong phú được thiết kế đặc biệt cho trình biên dịch C.Một chương trình
Cortex-M3 điển hình sẽ được viết hoàn toàn bằng ANSI C,với tối thiểu
các từ khoá non-ANSI và chỉ có bảng véc tơ ngắt được viết bằng
Assembler.
2.3.5 Bản đồ bộ nhớ (Memory Map)
Bộ xử lý Cortex-M3 là một lõi vi điều khiển được tiêu chuẩn hóa, như
vậy nó có một bản đồ bộ nhớ cũng được xác định. Mặc dù có nhiều bus nội,
bản đồ bộ nhớ này là một không gian địa chỉ 4 Gbyte tuyến tính. Bản đồ bộ
nhớ này là chung cho tất cả các thiết bị dựa trên lõi Cortex. Cortex-M3 Một
Gbyte bộ nhớ đầu tiên được chia đều cho một vùng mã (code region) và một
vùng SRAM (SRAM region). Không gian mã được tối ưu hóa để thực thi từ
bus I-Code. Tương tự, SRAM được nối đến bus D-Code. Mặc dù mã có thể
được nạp và thực thi từ SRAM, các lệnh sẽ được lấy bằng cách sử dụng bus
hệ thống, vì vậy phải chịu thêm một trạng thái chờ (an extra wait state). Tức

là mã chạy trên SRAM sẽ chậm hơn so với từ bộ nhớ Flash trên chip (onchip) nằm trong vùng mã. Vùng 0,5
GVHD: Dương Thị Hằng
Page: 25

SVTH: Trịnh Đình Chương


×