ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
XÂY DỰNG HỆ THỐNG NHÚNG THỜI GIAN
THỰC VỚI VI ĐIỀU KHIỂN AT91SAM7S256
GVHD: Th.S CAO TRẦN BẢO THƯƠNG
SVTH: NGUYỄN CÔNG MINH 0520043
HOÀNG TRỌNG HẠNH 0620020
TRƯƠNG THANH HẢI 0620019
TP Hồ Chí Minh – Tháng 06/2010
- 1 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
- 2 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Mục lục
MỤC LỤC 2
1. Giới thiệu chung 3
1.1 Phần cứng 3
1.2 Phần mềm 5
2. Quá trình thực hiện 13
3. Kết luận 23
TAÌ LIỆU THAM KHẢO 24
NHẬN XÉT CỦA GIẢNG VIÊN 25
1. Giới thiệu chung
1.1 Phần cứng
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc
vi xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc
điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện
tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết
kế quan trọng hàng đầu.
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM
trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới. CPU ARM được tìm
thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA, điện
thoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay) cho
đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn.) Một nhánh nổi
tiếng của họ ARM là các vi xử lý Xscale của Intel.
Nhóm sử dụng vi điều khiển AT91SAM7S256 - hãng Atmel, tích hợp bên trong
là vi xử lý 32-bit ARM7TDMI RISC. Và vi điều khiển này lại được tích hợp vào
AT91SAM7S Evaluation Board của PNlab.
Thông tin về sản phẩm VĐK AT91SAM7S256 trên trang chủ của Atmel
- 3 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Cấu trúc vi điều khiển dòng SAM7S
Cấu trúc AT91SAM7S Evaluation Board của PNlab
- 4 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Các hỗ trợ chính:
* Vi xử lý : AT91SAM7S256, 256kByte Flash, 64kByte RAM, USB 2.0,
RTT, 10 bit ADC 384 ksps, 2x UARTs, TWI (I2C), SPI, 3x 32bit TIMERS, 4x PWM,
SSC, WDT, PDC (DMA) cho tất cả các ngoại vi, tốc độ tối đa 60MHz.
* USB 2.0 Full Speed.
* 2 Cổng RS232 hỗ trợ giao tiếp UART hoặc DBG.
* 1 cổng chuyển đổi USB2COM chuyên dụng hỗ trợ làm việc Laptop.
* SD/MMC Socket.
* 2 nút bấm đa năng.
* 2 LED trạng thái.
* Thạch anh 18.432 Mhz onboard.
* Kết nối chuẩn JTAG 20 chân.
* Hỗ trợ SAM-BA In System Programming (USB hoặc RS232).
* Biến trở xoay nối trực tiếp với ADC.
* Header mở rộng cho tất cả các cổng vào ra.
* Vùng Free Gird cho ứng dụng của người dùng.
* Nguồn cấp từ cổng USB hoặc 5-9V DC ngoài.
* Mạch 2 lớp chất lượng cao, linh kiện SMD
Chức năng của sản phẩm :
AT91SAM7S256 là một vi điều khiển hiệu năng cao thuộc dòng ARM7-TDMI
32 bit được phát triển bởi Atmel. AT91SAM7S_EB là một hệ phát triển cho phép các
kỹ sư dễ dàng tiếp cận và làm việc một cánh nhanh chóng nhất với dòng ARM.
Với một khe cắm thẻ nhớ SD/MMC người dùng hoàn toàn có thể phát triển các
ứng dụng lưu trữ hoặc sử dụng số liệu dung lượng cao. Ngoài ra,phần cứng có sẵn cho
phép lập trình minh họa hoạt động của các giao tiếp cơ bản như UART, ADC, GPIO,
USB 2.0.
Đặc biệt Board hỗ trợ chế độ lập trình BOOT ASSISTANT của Atmel, có khả
năng nạp chương trình trực tiếp qua cổng USB hoặc RS232 mà không cần đến mạch
nạp JTAG.
1.2 Phần mềm
Nhóm đã sử dụng và phát triển
- Driver giao tiếp USB 2.0 và cổng COM ảo trên Windows
- Phần mềm biên dịch IAR Embedded Workbench for ARM version 5.11
- Phần mềm nạp SAMBA version 2.8, hỗ trợ chế độ boot assistant
- Phần mềm Terminal giao tiếp giữa board và máy tính qua cổng COM, viết trên
môi trường Visual Basic.net
- Hệ điều hành thời gian thực FreeRTOS version 5.4.2
- 5 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
- Code giao tiếp với máy tính qua cổng COM và USB 2.0, nạp cho VĐK
AT91SAM7S256.
Về hệ thống nhúng thời gian thực
Mặc dù khái niệm hệ thống nhúng (embedded system) ra đời cách đây thực sự chưa
lâu (1971), tuy nhiên sự phát triển và thành công của nó càng ngày càng rõ nét và
chưa có giới hạn cuối cùng.
- Giới thiệu
Ngày nay, một hệ thống nhúng có các ứng dụng rất rộng rãi trong cuộc sống hàng
ngày và có thể tìm gặp ở bất kì các thiết bị điện tử nào. Ví dụ trong các thiết bị điện tử
dân dụng (máy giặt, tủ lạnh, TV . . .), các thiết bị điện tử “thông minh” (điện thoại di
động), thiết bị truyền thông, thiết bị y tế, xe hơi, thậm chí cả trong một máy tính cá
nhân (card mở rộng).
Một hệ thống nhúng đầu tiên được phát triển bởi Intel vào năm 1971. Đó chính là một
con chip vi xử lý 4004 cho các máy tính cầm tay. Một con chip giống nó cũng đã
được sử dụng cho tất cả các máy tính cầm tay với nhiều chủng lại khác nhau, chúng
chỉ khác nhau ở phần mềm tương ứng với mỗi dòng được nạp trên ROM. Ngày nay,
trên thế giới xấp xỉ 98% các loại vi xử lý/vi điều khiển được sử dụng trong một hệ
thống nhúng. Và ARM là nhà cung cấp hàng đầu các vi xử lý dựa trên kiến trúc RISC
32 bit (chiếm 75% thị trường) cho các hệ thống nhúng đó. Điểm đặc biệt là ARM chỉ
bán IP chứ không bán chip, do đó việc tích hợp các IP vi xử lý 32 bit của ARM vào
một chip để xây dựng một SoC trở nên dễ dàng hơn.
- Hệ thống nhúng là gì?
Trong những năm gần đây, sự phân chia khái niệm một hệ thống thế nào là nhúng và
thế nào là không nhúng ngày càng mờ nhạt, không rõ ràng. Lý do rất đơn giàn, vì hầu
- 6 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
hết các hệ thống ngày nay đều là hệ thống nhúng. Hệ thống nhúng đã có một số lượng
rất lớn các ứng dụng từ nhỏ đến lớn, từ trong dân dụng đến trong công nghiệp, từ điều
khiển đơn giản đến xử lý phức tạp. . . Trong khuôn khổ bài viết này, một hệ thống
nhúng có thể định nghĩa như sau : là một hệ thống chuyên dụng cho một mục đích xác
định, bao gồm nhiều thành phần (bộ nhớ, I/O, module chức năng . . .) xung quanh một
vi xử lý cùng với một hệ điều hành nhỏ, gọn, nhanh nhằm mục đích điều khiển vi xử
lý, tất cả nằm trên một con chip (SoC) hay một board mạch.
Điểm quan trọng cần lưu ý là sự khác biệt giữa một hệ thống nhúng và hệ thống máy
tính PC : một hệ thống nhúng chính là một hệ thống chuyên dụng với một chức năng
cụ thể, trong khi đó hệ thống máy tính PC là một hệ thống đa dụng với chức năng của
nó tại một thời điểm do phần mềm quyết định.
Trong một hệ thống nhúng có thể có nhiều chương trình phần mềm chạy cùng lúc với
nhau dưới một hệ điều hành nào đó. Bởi vì một hệ thống nhúng còn có thể là một
phần nhỏ của một hệ thống lớn hơn, nên nó có thể nằm trên một board mạch với một
vi xử lý riêng cùng với phần mềm được lưu trữ trong ROM. Vì là một hệ thống
chuyên dụng, nên hầu hết các hệ thống nhúng phải đáp ứng sự thay đổi ở các tín hiệu
ngõ vào (input) trong thời gian ngắn nhất có thể, tức là phải đảm bảo tốc độ hoạt động
của nó. Vì vậy, các hệ thống nhúng đều có tốc độ hoạt động rất cao là được xếp vào
loại thời gian thực (real time). Với các ứng dụng đơn giản, nó chỉ cần một chương
trình nhỏ (mà không cần hệ điều hành) để điều khiển hệ thống, tuy nhiên, một hệ điều
hành cài đặt trên hệ thống nhúng để chạy các chương trình ứng dụng sẽ giúp cho hệ
thống trở nên cực kỳ linh hoạt.
- Đặc trưng của hệ thống nhúng
Một đặc trưng quan trọng của hệ thống nhúng đó chính là “tính quyết định”. Đặc
trưng này có nghĩa là tất cả các trạng thái bên trong của hệ thống, các giá trị ngõ vào
liên quan đến ngõ ra đều có thể tính toán trước được (về mặt nguyên tắc). Tất nhiên
“tính quyết định” không chỉ là một đặc trưng riêng cho một hệ thống nhúng mà nó có
thể là một hệ thống bất kỳ, tuy vậy, một đặc tính khác cũng khá quan trọng và mang
nét riêng của hệ thống nhúng đó chính là thời gian thực. Một hệ thống nhúng phải có
khả năng thực hiện chức năng của mình trong một khoảng thời gian hữu hạn, ít nhất
và có thể biết trước.
Một hệ thống nhúng bao giờ cũng được “bao bọc” bởi một hệ thống phần cứng mà nó
điều khiển, chính vì vậy, đối với người sử dụng cuối, họ không nhận ra sự hiện diện
của hệ thống nhúng trong một thiết bị phần cứng. Do đó, đây cũng là sự khác biệt giữa
một hệ thống nhúng và một máy tính cá nhân. Một hệ thống nhúng cũng có khả năng
tương tác với thế giới bên ngoài, tuy nhiên giao diện người sử dụng của nó lại thường
khá đơn giản.
Lĩnh vực hệ thống nhúng đòi hỏi sự kết hợp của nhiều ngành lại với nhau như : kỹ
thuật phần mềm, hệ điều hành, thiết kế phần cứng (chip) . . . Vì vậy, một kỹ sư thiết
kế hệ thống nhúng phải có khả năng hiểu được nhiều lĩnh vực khác nhau, từ thiết kế
phần cứng, xuống layout ra chip, đến lập trình phần mềm, cài đặt hệ điều hành . . .
- 7 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
- Hệ thống thời gian thực
Như đã đề cập ở trên, một hệ thống có khả năng thực hiện thời gian thực nghĩa là hệ
thống đó phải thực hiện các chức năng của mình trong một khoảng thời gian xác định
và nhỏ nhất có thể chấp nhận được. Khi đáp ứng được yêu cầu này, hệ thống đó có thể
gọi là hệ thống thời gian thực
Các hệ thống này phải có khả năng đáp ứng các tín hiệu ngõ vào hoặc các sự kiện
trong giới hạn một khoảng thời gian bắt buộc. Cho nên các hệ thống này không chỉ
phải trả về một kết quả đúng mà còn phải nhanh nhất đáp ứng được yêu cầu về tốc độ
của hệ thống. Trong các hệ thống thời gian thực, tốc độ cũng quan trọng không kém gì
độ chính xác của nó.
Có 2 loại thời gian thực : thời gian thực cứng và thời gian thực mềm. Đối với hệ thống
thời gian thực cứng, tất cả các chức năng của nó phải được thực thi chính xác trong
một khoảng thời gian xác định, nếu không cả hệ thống sẽ bị lỗi nghiêm trọng. Ví dụ :
hệ thống điều khiển không lưu, hệ thống dẫn đường tên lửa, thiết bị y tế . . . Đối với
hệ thống thời gian thực mềm, các chức năng phải được thực hiện trong một khoảng
thời gian xác định nhỏ nhất nhưng không bắt buộc.
- Hệ điều hành thời gian thực (RTOS) và kernel thời gian thực
Một số các ứng dụng nhúng có thể thực hiện hiệu quả mà chỉ cần một chương trình
đơn giản chạy độc lập điều khiển cả hệ thống. Tuy nhiên, đối với đa số các ứng dụng
mang tính thương mại, một hệ nhúng cần phải có hệ điều hành thời gian thực hoặc
kernel thời gian thực. Một kernel thời gian thực thường nhỏ hơn rất nhiều so với một
RTOS hoàn chỉnh. Trong lý thuyết về hệ điều hành, kernel chính là một phần của hệ
điều hành, nó sẽ được nạp lên bộ nhớ đầu tiên và vẫn tồn tại trong lúc chương trình
hoạt động. Một kernel thời gian thực sẽ cung cấp hầu hết các dịch vụ cần thiết cho các
ứng dụng nhúng.Do đó chỉ là một phần của hệ điều hành và được nạp thẳng lên bộ
nhớ, nên một kernel thời gian thực thường có kích thước rất nhỏ, rất phù hợp cho các
bộ nhớ có dung lượng thấp trong các hệ thống nhúng. Hình dưới mô tả một kernel
trong một RTOS hoàn chỉnh.
- 8 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Hoạt động của hệ thống nhúng đươc thực hiện theo chương trình, gồm các tác vụ
(task) hoặc luồng (thread) trong việc đáp ứng các tín hiệu ngõ vào hay trong quá trình
xử lý bình thường theo yêu cầu của hệ thống. Các quá trình xử lý phải trả về kết quả
đúng trong một khoảng thời gian xác định.
- Chương trình, tác vụ và luồng
Một chương trình trên một hệ thống nhúng chính là một phần mềm có khả năng thực
thi độc lập và có vùng nhớ riêng của mình. Nó bao gồm môi trường thực thi một chức
năng cụ thể và khả năng tương tác với hệ điều hành. Một chương trình có thể được bắt
đầu chạy một cách độc lập hoặc có thể từ các chương trình khác. Một hệ điều hành có
khả năng thực thi nhiều chương trình cùng một lúc song song nhau.
Tuy nhiên, khi một chương trình có khả năng tự chia ra một vài phần có khả năng
thực thi song song nhau, mỗi phần đó được gọi là một luồng. Một luồng chính là một
phần trong chương trình và phụ thuộc về mặt chức năng so với các luồng khác nhưng
lại có khả năng hoạt động độc lập nhau. Các luồng sẽ chia sẻ chung một bộ nhớ trong
một chương trình. Khái niệm về tác vụ và luồng có thể thay thế cho nhau. Hình dưới
mô tả sự khác nhau giữa chương trình và luồng.
- Kiến trúc của hệ thống thời gian thực
Kiến trúc của một hệ thống thời gian thực sẽ quyết định các luồng được thực thi khi
nào và bằng cách nào. Có 2 kiến trúc phổ biến là kiến trúc điều khiển vòng lặp với
polling và mô hình sắp xếp ưu tiên. Trong kiến trúc điều khiển vòng lặp với polling,
kernel sẽ thực thi một vòng lặp vô hạn, vòng lặp này sẽ chọn ra luồng trong một mẫu
được định trước. Nếu một luồng cần dịch vụ, nó sẽ được xử lý. Có một vài biến thể
của phương pháp này, tuy nhiên vẫn phải đảm bảo mỗi luồng đều có khả năng truy
cập đến vi xử lý. Hình dưới mô tả cách xử lý của phương pháp này.
- 9 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Mặc dù phương pháp điều khiển vòng lặp với polling rất dễ thực hiện, tuy nhiên nó
vẫn có những hạn chế nghiêm trọng. Thứ nhất đó chính là nó sẽ mất rất nhiều thời
gian, khi mà một luồng cần truy cập đến vi xử lý sẽ phải chờ đến lượt của mình, và
một chương trình có quá nhiều luồng sẽ bị chậm đi rất nhiều. Thứ hai, phương pháp
này không có sự phân biệt giữa các luồng, luồng nào quan trọng và luồng nào ít quan
trọng, từ đó xác định mức độ ưu tiên giữa các luồng.
Một phương pháp khác mà các kernel thời gian thực hay sử dụng đó chính là mô hình
sắp xếp mức độ ưu tiên. Trong mô hình này, mỗi luồng sẽ đi kèm với mức độ ưu tiên
của nó, lúc này, vi xử lý sẽ thiết lập đường truy cập tới luồng nào có mức độ ưu tiên
cao nhất khi nó đòi hỏi được phục vụ. Cũng có một vài biến thể của phương pháp này,
tuy nhiên vẫn phải đảm bảo các luồng có mức độ ưu tiên thấp nhất vẫn phải có thể
truy cập tới vi xử lý một vài lần. Hình dưới mô tả phương pháp cách xử lý của phương
pháp này.
- 10 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Một ưu điểm cực kỳ quan trọng của phương pháp này đó chính là nó có khả năng tạm
hoãn thực thi một luồng khi có một luồng khác với mức độ ưu tiên cao hơn cần phục
vụ. Quá trình lưu trữ lại các thông tin hiện thời của luồng bị tạm hoãn thực thi khi có
một luồng khác với mức độ ưu tiên cao hơn cần phục vụ gọi là “context switching”.
Quá trình này phải được thực hiện nhanh và đơn giản để luồng bị tạm hoãn có thể
thực hiện tiếp nhiệm vụ của mình một cách chính xác khi nó lấy lại đươc quyền điều
khiển.
Một hệ thống nhúng thời gian thực phải có khả năng đáp ứng lại các tín hiệu ngõ vào
hay các sự kiện một cách nhanh nhất và chính xác nhất, đây chính là các ngắt của hệ
thống. Ngắt của hệ thống sẽ phải làm cho vi xử lý ngưng nhiệm vụ đang thực thi để
xử lý ngắt. Một ngắt sẽ được xử lý bởi ISR (interrupt service routine), nó có khả năng
kích hoạt một luồng có mức độ ưu tiên cao hơn luồng đang được thực thi. Lúc này, nó
sẽ tạm hoãn lại luồng hiện tại để dành quyền cho luồng mới có mức độ ưu tiên cao
hơn. Ngắt có thể được tạo ra bởi phần mềm (ngắt mềm) hay bởi các thiết bị phần cứng
(ngắt cứng).
- Sự phát triển của hệ thống nhúng
Các ứng dụng nhúng ngày nay rất rộng rãi và sẽ được phát triển ngày càng cao ở cả
phần cứng lẫn phần mềm. Các ứng dụng nhúng đều cần phải có thời gian thực, đây là
một sự khác biệt rất lớn giữa một hệ thống nhúng và một hệ thống máy tính truyền
thống. Ngày nay để tăng tốc độ của một hệ thống nhúng, nó phải có khả năng thực
hiện xử lý song song giữa các luồng với nhau. Do vậy, cách viết các chương trình
phần mềm truyền thống sẽ không còn phù hợp khi lập trình cho các hệ thống nhúng đa
luồng nữa. Hơn nữa, một vi xử lý trong hệ thống nhúng đòi hỏi tốc độ cao sẽ không
còn làm nhiệm vụ xử lý, mà chỉ còn làm nhiệm vụ điều khiển và giám sát hoạt động
của hệ thống. Chức năng xử lý luồng dữ liệu sẽ được các module phần cứng trong hệ
thống đảm nhận và được thực hiện song song nhau. Kiến trúc một hệ thống nhúng
thời gian thực đã có sự khác biệt rất nhiều và những cải tiến đáng kể so với kiến trúc
hệ thống máy tính truyền thống trước kia. Điều này nhằm đảm bảo về sự chính xác và
cải thiện tốc độ của hệ thống. Hầu hết các hệ thống nhúng ngày nay dùng ngôn ngữ C
để lập trình, tuy nhiên một số rất ít vẫn dùng hợp ngữ.
Nguyên tắc hoạt động của HĐH FreeRTOS
- 11 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Hoạt động đa nhiệm
2 con trỏ program counter và stack pointer sẽ định hướng hoạt động cho HĐH
- 12 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
2. Quá trình thực hiện
Ý tưởng chính của nhóm là sẽ cài đặt hệ điều hành thời gian thực FreeRTOS
phiên bản 5.4.2 lên bộ nhớ flash của VĐK AT91SAM7S256 và thực hiện 2 chương
trình giao tiếp với PC qua cổng COM và USB.
A. Truyền nhận text giữa board và máy tính qua cổng COM ảo
B. Mô phỏng một Joystick qua cổng USB
- Cài đặt phần mềm nạp Samba 2.7, nằm trong bộ AT91-ISP (In System
Programmer) 1.12 của Atmel, đây là chương trình cài đặt của hãng Atmel.
- Cài đặt driver giao tiếp với máy tính qua cổng USB và COM ảo
- 13 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Cài đặt driver giao tiếp USB thành công, máy đã nhận board.
- 14 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Cài đặt driver COM ảo thành công, máy đã nhận board.
- Cài đặt trình biên dịch IAR Embedded Workbench for ARM version 5.11:
chương trình này dùng để viết và biên dịch chương trình cho VĐK AT91SAM7S256.
- 15 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
- Tải bộ cài HĐH FreeRTOS 5.4.2
- Tiến hành chỉnh sửa và biên dịch mã nguồn FreeRTOS, viết ứng dụng giao
tiếp với máy tính trên môi trường IAR
Giao diện chương trình IAR.
- 16 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Chọn xuất ra file .bin khi dịch xong
Bắt đầu biên dịch chương trình, chuột phải vào tên project ở menu bên trái, chọn
“Rebuild All”.
- 17 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Đã biên dịch thành công chương trình, IAR xuất ra file .bin, dùng để nạp vào
VĐK trên board.
- Sau đó tiến hành viết chương trình Terminal giao tiếp giữa board và máy tính
qua cổng COM ảo, trên môi trường Microsoft Visual Basic.net 2008
Giao diện Microsoft Visual Basic.net 2008
- Dùng Samba nạp HĐH FreeRTOS và ứng dụng của nó (dạng file .hex) vào bộ
nhớ flash của VĐK AT91SAM7S256
- 18 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Chạy chương trình nạp SAMBA, chọn cổng kết nối là USB, tên VĐK là
AT91SAM7S256
Chọn file .bin đã được dịch thành công ở trên và tiến hành nạp chương trình.
- 19 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
A. Truyền nhận text giữa board và máy tính qua cổng COM ảo
Khởi chạy chương trình giao tiếp qua cổng COM và thiết lập chế độ hoạt động
thích hợp
Giao tiếp qua cổng COM ảo, truyền và nhận text giữa board với máy tính
- 20 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
B. Mô phỏng một Joystick qua cổng USB
Ta mô phỏng một joystick, khi kết nối, PC nhận dạng board như một thiết bị
USB mới được cắm vào
Kết nối thành công, board đã được cấu hình thành 1 joystick USB
Ta tiếp tục kiểm tra chế độ điều khiển của joystick
Ta sử dụng 2 nút nhấn PA20 và PA19 trên board để điều khiển hướng đi của
joystick, nút phải (switch 2) đi xuống và nút trái (switch 1) đi lên.
3. Kết luận
- 21 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Đề tài của nhóm chỉ dừng ở mức độ nghiên cứu một cách tổng quan và cơ bản về
cấu tạo và những ứng dụng của dòng vi xử lý ARM nói riêng, và các thao tác chính
trong quy trình xây dựng và phát triển một ứng dụng nhúng nói chung.
- 22 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Tài liệu tham khảo
1. Bách khoa mở wikipedia.org - />2. How FreeRTOS works - />3. Hệ thống nhúng thời gian thực là gì - BIMOS Việt Nam
- 23 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256
Nhận xét của giảng viên
- 24 -
Xây dựng hệ thống nhúng thời gian thực với vi điều khiển AT91SAM7S256