Thứ Sáu, 13 tháng 11, 2015

2.2.1. Tính năng KIT STM32F4 DISCOVERY



2.2.1. Tính năng KIT STM32F4 DISCOVERY


Vi điều khiển  KIT STM32F4 DISCOVERY được trang bị chip 32-bit ARM Cortext
®
với nhân FTU, 1MB bộ nhớ Flash, 192Kb RAM trong gói LQFP100.
ST-LINK/V2 được tích hợp trực tiếp trên board.
Nguồn cung cấp cho board: thông qua cáp USB hoặc nguồn 5V.
Nguồn điện có thể cung cấp cho 
 KIT STM32F4 DISCOVERY các ứng dụng bên ngoài: 5V hoặc 3V.
LIS302DL or LIS3DSH ST MEMS 3-axis gia tốc kế.
Có cảm ứng âm thanh với microphone kỹ thuật sô omni-directional.
CS43L22 audio DAC với bộ điều khiển loa class D được tích hợp.
Cung cấp 8 LED: 
LD1(đỏ/xanh) dành cho giao tiếp USB.
LD2(đỏ) hiển thị nguồn điện 3.3V. 
4 đèn LED dành cho người dùng: LD3(cam), LD4 (xanh lá), LD5(đỏ),
LD6(cam) 
2 USB OTG LED LD7(xanh) Vbus và LD8(đỏ) 
2 nút bấm (user và reset)
USB OTG FS với cổng kết nối Micro AB.
Các chân I/O mở rộng để kết nối nhanh nhằm mục đích tạo các bảng mạch
mẫu và dễ dàng tìm kiếm.
Đi kèm các phần mềm miễn phí bao gồm nhiều ví dụ, một phần của gói
 KIT STM32F4 DISCOVERY hoặc STSW-STM32068 nhằm kế thừa các thư viện thông
thường.





Nguồn: Banlinhkien.vn

Thứ Năm, 12 tháng 11, 2015

2.1.Giới thiệu chung về dòng ARM cortex KIT STM32F4 DISCOVERY


2.1.Giới thiệu chung về dòng ARM cortex KIT STM32F4 DISCOVERY

Dòng ARM Cortex KIT STM32F4 DISCOVERY
là một bộ xử lí thế hệ mới đua ra một kiến trúc chuẩn
cho nhu cầu đa dạng về công nghệ. Không giống nhu các chip ARM khác, dòng
Cortex là một lõi xử lí hoàn thiện, dua ra một chuẩn CPU và kiến trúc hệ thống
chung.
Dòng Cortex KIT STM32F4 DISCOVERY
gồm có 3 phân nhánh chính: dòng A dành cho các ứng dụng
cao cấp, dòng R dành cho các ứng dụng thời gian thực nhu các đầu đọc và dòng
M dành cho các ứng dụng vi điều khiển và chi phí thấp. STM32 đuợc thiết kế
dựa trên dòng Cortex-M3, dòng Cortex-M3 đuợc thiết kế đặc biệt để nâng cao
BTL Môn Lập trình nhúng cơ bản 10
Trường đại học Công nghiệp Hà Nội Khoa Công nghệ thông tin
hiệu suất hệ thống, kết hợp với tiêu thụ nang luợng thấp, CortexM3 đuợc thiết
kế trên nền kiến trúc mới, do đó chi phí sản xuất đủ thấp để cạnh tranh với các
dòng vi điều khiển 8 và 16-bit truyền thống.
KIT STM32F4 DISCOVERY Các chip ARM7 và ARM9 đuợc các nhà sản xuất bán dẫn thiết kế với giải
pháp riêng của mình, đặc biệt là phần xử lí các các ngắt đặc biệt (exception) và
các ngắt thông thuờng (interrupt). Cortex-M3 đưa ra một lõi vi điều khiển chuẩn
nhằm cung cấp phần tổng quát, quan trọng nhất của một vi điều khiển, Trang 6
Author: ARMVN Kiến trúc co bản của SMT32 - ARM Cortex M3 www.arm.vn
bao gồm hệ thống ngắt (interrupt system), SysTick timer (đuợc thiết kế cho hệ
điều hành thời gian thực), hệ thống kiểm lỗi (debug system) và memory map.
Không gian địa chỉ 4Gbyte của Cortex-M3 đuợc chia thành các vùng cho mã
chuong trình, SRAM, ngoại vi và ngoại vi hệ thống.
KIT STM32F4 DISCOVERY Không giống với ARM7 đuợc thiết kế theo kiến trúc Von Neumann (bộ nhớ
chuong trình và bộ nhớ dữ liệu chung với nhau), Cortex-M3 đuợc thiết kế dựa
theo kiến trúc Harvard (bộ nhớ chuong trình và bộ nhớ dữ liệu tách biệt với
nhau), và có nhiều bus cho phép thực hiện các thao tác song song với nhau, do
đó làm tang hiệu suất của chip. Không giống với các kiến trúc ARM truớc đó,
dòng Cortex cho phép truy cập dữ liệu không xếp hàng (unaligned data, vì chip
ARM là kiến trúc 32bit, do đó tất cả các dữ liệu hoặc mã chuong trình đều đuợc
sắp sếp khít với vùng bộ nhớ là bội số của 4byte). Ðặc điểm này cho phép sử
dụng hiệu quả SRAM nội. Dòng Cortex còn hỗ trợ việc đặt và xoá các bit bên
trong hai vùng 1Mbyte của bộ nhớ bằng phuong pháp gọi là bit banding. KIT STM32F4 DISCOVERY Ðặc
điểm này cho phép truy cập hiệu quả tới các thanh ghi ngoại vi và các cờ đuợc
dùng trên bộ nhớ SRAM mà không cần một bộ xử lí luận lí (Boolean processor).



Nguồn: banlinhkien.vn

1.4.Kiến trúc của phần mềm hệ thống nhúng KIT STM32F4 DISCOVERY


1.4.Kiến trúc của phần mềm hệ thống nhúng

Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như
sau:
KIT STM32F4 DISCOVERY  Vòng lặp kiểm soát đơn giản
Theo thiết kế này, phần mềm được tổ chức thành một vòng lặp đơn giản.
Vòng lặp gọi đến các chương trình con, mỗi chương trình con quản lý một phần
của hệ thống phần cứng hoặc phần mềm.
KIT STM32F4 DISCOVERY Hệ thống ngắt điều khiển
Các hệ thống nhúng thường được điểu khiển bằng các ngắt. Có nghĩa là các
tác vụ của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau. Ví dụ,
một ngắt có thể được sinh ra bởi một bộ định thời sau một chu kỳ được định
nghĩa trước, hoặc bởi sự kiện khi cổng nối tiếp nhận được một byte nào đó.
BTL Môn Lập trình nhúng cơ bản 6
Trường đại học Công nghiệp Hà Nội Khoa Công nghệ thông tin
Loại kiến trúc này thường được sử dụng trong các hệ thống có bộ quản lý sự
kiện đơn giản, ngắn gọn và cần độ trễ thấp. Hệ thống này thường thực hiện một
tác vụ đơn giản trong một vòng lặp chính. Đôi khi, các tác vụ phức tạp hơn sẽ
được thêm vào một cấu trúc hàng đợi trong bộ quản lý ngắt để được vòng lặp xử
lý sau đó. Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với các tiến trình
rời rạc.
KIT STM32F4 DISCOVERY Đa nhiệm tương tác
Một hệ thống đa nhiệm không ưu tiên cũng gần giống với kỹ thuật vòng lặp
kiểm soát đơn giản ngoại trừ việc vòng lặp này được ẩn giấu thông qua một giao
diện lập trình API. Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi
nhiệm vụ chạy trong một môi trường riêng của nó. Khi không cần thực hiện
nhiệm vụ đó thì nó gọi đến các tiến trình con tạm nghỉ (bằng cách gọi "pause",
"wait", "yield" …).
Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểm vòng lặp
kiểm soát đơn giản. Tuy nhiên, việc thêm một phần mềm mới được thực hiện dễ
dàng hơn bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông dịch
(queue-interpreter).
1.4.4. Đa nhiệm ưu tiên
Ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực hiện
việc chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời. Đoạn mã
này thường nằm ở mức mà hệ thống được coi là có một hệ điều hành và vì thế
cũng gặp phải tất cả những phức tạp trong việc quản lý đa nhiệm.
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải
được tách biệt một cách chính xác. Việc truy cập tới các dữ liệu chia sẻ có thể
được quản lý bằng một số kỹ thuật đồng bộ hóa như hàng đợi thông điệp
(message queues), semaphores … Vì những phức tạp nói trên nên một giải pháp
thường được đưa ra đó là sử dụng một hệ điều hành thời gian thực. Lúc đó, các
BTL Môn Lập trình nhúng cơ bản 7
Trường đại học Công nghiệp Hà Nội Khoa Công nghệ thông tin
nhà lập trình có thể tập trung vào việc phát triển các chức năng của thiết bị chứ
không cần quan tâm đến các dịch vụ của hệ điều hành nữa.
1.4.5. Vi nhân (Microkernel) và nhân ngoại (Exokernel
Khái niệm vi nhân (microkernel) là một bước tiếp cận gần hơn tới khái niệm
hệ điều hành thời gian thực. Lúc này, nhân hệ điều hành thực hiện việc cấp phát
bộ nhớ và chuyển CPU cho các luồng thực thi. Còn các tiến trình người dùng sử
dụng các chức năng chính như hệ thống file, giao diện mạng lưới,… Nói chung,
kiến trúc này thường được áp dụng trong các hệ thống mà việc chuyển đổi và
giao tiếp giữa các tác vụ là nhanh.
Còn nhân ngoại (exokernel) tiến hành giao tiếp hiệu quả bằng cách sử dụng
các lời gọi chương trình con thông thường. Phần cứng và toàn bộ phần mềm
trong hệ thống luôn đáp ứng và có thể được mở rộng bởi các ứng dụng.
1.4.6. Nhân khối (monolithic kernels)
Trong kiến trúc này, một nhân đầy đủ với các khả năng phức tạp được
chuyển đổi để phù hợp với môi trường nhúng. Điều này giúp các nhà lập trình
có được một môi trường giống với hệ điều hành trong các máy để bàn như
Linux hay Microsoft Windows và vì thế rất thuận lợi cho việc phát triển. Tuy
nhiên, nó lại đòi hỏi đáng kể các tài nguyên phần cứng làm tăng chi phí của hệ
thống. Một số loại nhân khối thông dụng là Embedded Linux và Windows CE.
Mặc dù chi phí phần cứng tăng lên nhưng loại hệ thống nhúng này đang tăng
trưởng rất mạnh, đặc biệt là trong các thiết bị nhúng mạnh như Wireless router
hoặc hệ thống định vị GPS. Lý do của điều này là:
• Hệ thống này có cổng để kết nối đến các chip nhúng thông dụng.
• Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến như các trình
điều khiển thiết bị, Web Servers, Firewalls, …
• Việc phát triển hệ thống có thể được tiến hành với một tập nhiều loại đặc
tính, chức năng còn sau đó lúc phân phối sản phẩm, hệ thống có thể được cấu
BTL Môn Lập trình nhúng cơ bản 8
Trường đại học Công nghiệp Hà Nội Khoa Công nghệ thông tin
hình để loại bỏ một số chức năng không cần thiết. Điều này giúp tiết kiệm được
những vùng nhớ mà các chức năng đó chiếm giữ.
• Hệ thống có chế độ người dùng để dễ dàng chạy các ứng dụng và gỡ rối.
Nhờ đó, qui trình phát triển được thực hiện dễ dàng hơn và việc lập trình có tính
linh động hơn.
• Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thực
của hệ thống quản lý. Còn một hệ thống như Embedded Linux có tốc độ đủ
nhanh để trả lời cho nhiều ứng dụng. Các chức năng cần đến sự phản ứng nhanh
cũng có thể được đặt vào phần cứng.



Nguồn: banlinhkien.vn

Thứ Ba, 10 tháng 11, 2015

Đặc điểm của hệ thống nhúng KIT STM32F4 DISCOVERY

1.3 Đặc điểm của hệ thống nhúng KIT STM32F4 DISCOVERY 

Hệ thống nhúng 
KIT STM32F4 DISCOVERY  thường có một số đặc điểm chung như sau:
• Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng
chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng. Một số
hệ thống đòi hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an
toàn và tính ứng dụng; một số hệ thống không đòi hỏi hoặc ràng buộc chặt
chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản
xuất.
• 
KIT STM32F4 DISCOVERY Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ
thống phức tạp nằm trong thiết bị mà nó điều khiển.
• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được
lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là
trong một ổ đĩa.

KIT STM32F4 DISCOVERY Phần mềm thường chạy với số tài nguyên phần cứng hạn
chế: không có bàn phím, màn hình hoặc có nhưng với kích thước nhỏ, dung
lượng bộ nhớ thấp Sau đây, ta sẽ đi sâu, xem xét cụ thể đặc điểm của các
thành phần của hệ thống nhúng.






Nguồn: banlinhkien.vn

Thứ Hai, 9 tháng 11, 2015

kiến thức căn bản về KIT STM32F4 (phần 1)


Lịch sử phát triển kit stm32f4 discovery
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính Dẫn
đường Apollo) được phát triển bởi Charles Stark Draper tại phòng thí nghiệm
BTL Môn Lập trình nhúng cơ bản 4

 Hệ thống nhúng được sản xuất hàng loạt đầu tiên là
máy hướng dẫn cho tên lửa quân sự vào năm 1961. Nó là máy hướng dẫn
Autonetics D-17, được xây dựng sử dụng những bóng bán dẫn và một đĩa cứng
để duy trì bộ nhớ. Khi Minuteman II được đưa vào sản xuất năm 1996, D-17 đã
được thay thế với một máy tính mới sử dụng mạch tích hợp. Tính năng thiết kế
chủ yếu của máy tính Minuteman là nó đưa ra thuật toán có thể lập trình lại sau
đó để làm cho tên lửa chính xác hơn, và máy tính có thể kiểm tra tên lửa, giảm
trọng lượng của cáp điện và đầu nối điện.
kit stm32f4 discovery Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã
giảm giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hướng
đến người tiêu dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và
những hệ thống nhỏ khác. Tuy nhiên nó vẫn cần các chip nhớ ngoài và những hỗ
trợ khác. Vào những năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất,
nhưng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến
nhiều thành phần có thể đưa vào một chip xử lý. Các bộ vi xử lý được gọi là các
vi điều khiển và được chấp nhận rộng rãi. Với giá cả thấp, các vi điều khiển đã
trở nên rất hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có một sự bùng
nổ về số lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường và số các
nhà đầu tư sản xuất theo hướng này. Ví dụ, rất nhiều chip xử lý đặc biệt xuất
hiện với nhiều giao diện lập trình hơn là kiểu song song truyền thống để kết nối
các vi xử lý. Vào cuối những năm 80, các hệ thống nhúng đã trở nên phổ biến
trong hầu hết các thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục cho đến
nay.
kit stm32f4 discovery cho đến nay, khái niệm hệ thống nhúng được nhiều người chấp nhận nhất
là: hệ thống thực hiện một số chức năng đặc biệt. Không có hệ thống nhúng nào
chỉ có phần mềm.


Thứ Bảy, 7 tháng 11, 2015