BÁO CÁO BÀI TẬP LỚN MÔN HỆ THỐNG NHÚNG Giảng viên hướng dẫn TS NGUYỄN NGỌC MINH Nhóm Sinh viên thực hiện ĐÀO CÔNG MINH – B18DCDT149 TRẦN DUY KHẢI – B18DCDT106 NGUYỄN VĂN MẠNH – B18DCDT145 ĐỖ THỊ THÀNH.
Trang 1BÁO CÁO BÀI TẬP LỚN MÔN HỆ THỐNG NHÚNG
Giảng viên hướng dẫn: TS NGUYỄN NGỌC MINH
Nhóm Sinh viên thực hiện: ĐÀO CÔNG MINH – B18DCDT149
TRẦN DUY KHẢI – B18DCDT106
NGUYỄN VĂN MẠNH – B18DCDT145
ĐỖ THỊ THÀNH – B18DCDT232
Trang 2Phần I: Chọn 1 hệ thống nhúng trong thực tế Thuyết minh giải thích các tính năng và các thành phần của hệ thống nhúng đó.
Ví dụ về hệ thống nhúng ngoài thực tế : CPU laptop
CPU là gì ?
Cấu tạo chung của CPU
Nguyên lí hoạt động của CPU
Trang 31.CPU là gì ?
CPU là bộ xử lý trung tâm của máy tình và cách CPU xử lý dữ liệu sẽ phụ
thuộc vào chương trình Không có vấn đề gì chương trình dành cho CPU sẽ không tạo ra nhiều khác biệt, vì nó không hiểu chương trình sẽ làm gì Nó chỉ tuân theo yêu cầu - mệnh lệnh có trong chương trình
CPU được thiết kế với dạng hình chữ nhật hoặc vuông tùy thuộc dòng đó là gì
Có một góc nhỏ để đặt chip đúng vào socket CPU Phần chip sẽ được đặt và gia cố chắc chắn vào một ổ cắm CPU tương thích được tìm thấy trên bo mạch chủ Ở dưới cùng của chip là hàng trăm chân kết nối với mỗi lỗ tương ứng trên
ổ cắm CPU
Trang 42 Cấu tạo chung của CPU
CPU được tạo thành từ hàng triệu bóng bán dẫn được sắp xếp cùng nhau trên một bảng mạch nhỏ
Bộ điều khiển (CU - Control Unit) : Thành phần được tích hợp trong CPU
máy tính này có chức năng chính là diễn giải các lệnh chương trình Theo đó
sẽ thực hiện điều khiển quá trình xử lý, được điều chỉnh chính xác bởi xung nhịp hệ thống Đây là phần cốt lõi của bộ xử lý từ mạch logic so với các linh kiện bán dẫn như bóng bán dẫn
Khối tính toán (ALU) : Hàm thực hiện các phép toán số học và logic sau đó trả kết quả vào thanh ghi hoặc bộ nhớ
Các thanh ghi :Thanh ghi thường được trang bị trong CPU máy tính Nhiệm
vụ của thiết bị này là lưu tạm thời các toán hạng, kết quả tính toán, địa chỉ ô nhớ hoặc thông tin điều khiển Được biết mỗi thanh ghi có một chức năng cụ thể và mặc dù chúng có kích thước nhỏ nhưng tốc độ truy xuất rất cao
Trang 53 Nguyên lí hoạt động của CPU
Nguyên lí hoạt động của CPU bao gồm : Fetch, Decode và Execute
Fetch sẽ có chức năng nhận lệnh từ CPU được chuyển đến từ RAM Qua đó
PC và hướng dẫn được đưa vào IR Độ dài của PC sau đó được tăng lên để tham chiếu đến địa chỉ của lệnh tiếp theo
Decode :ngay sau khi một lệnh được tìm nạp và lưu trữ trong IR Ngay lúc này chúng sẽ được truyền đến một mạch được gọi là bộ giải mã lệnh bởi CPU
Mục đích của việc này là nhằm đổi lệnh thành tín hiệu được chuyển đến các
bộ phận khác của CPU để thực hiện
Execute : các lệnh được giải mã sẽ được gửi đến các bộ phận của CPU máy tính để tiến hành thực thi Kết quả thường được ghi vào thanh ghi CPU, nơi chúng có thể được tham chiếu bằng các hướng dẫn sau này Thanh đăng ký này hoạt động giống như RAM
Trang 6Phần 2 Lựa chọn một đề tài, làm project trên Cortex M3 Compile và build code
Đề tài lựa chọn: Đồng hồ bấm giờ sử dụng timer hiển thị led 7 thanh có 3 nút nhấn tương ứng 3 chế độ: stop, start, reset - 4 led
Bài làm được chia làm 4 khối chính:
Trang 7Mạch mô phỏng của đề tài
Trang 81 Khối vi xử lí
Khối vi xử lý đảm nhận việc cấu hình cho các khối còn lại hoạt động đồng thời tạo ra bộ đếm thời gian chuẩn bằng timer và nhận tín hiệu từ nút bấm để điều
khiển các chức năng mong muốn
Việc đầu tiên phải làm cho mỗi chương trình là khai báo thư viện: ở đây ngoài những thư viện bắt buộc phải có như: stdio.h, stm32f10x.h, stm32f10x_gpio.h, stm32f10x_rcc.h thì cần phải sử dụng thêm thư viện stm32f10x_tim.h để sử dụng timer
Trang 9 Hàm SEG_Config để cấu hình cho các chân của LED 7 đoạn Sử dụng các
chân A0, A1, A2, A3, A4, A5, A6, A7 để các LED hiển thị được các số: 0, 1, 2,
3, 4, 5, 6, 7, 8, 9
Hàm button_config để cấu hình cho các chân C13, C14, C15 để nhận tín hiệu
từ các nút bấm chắc năng
Trang 10 Hàm SEG_control để câu hình các chân B11, B12, B13, B14, B15 để điều khiển sử bật tắt của các LED thông qua các transistor
Trang 11 Hàm timer_Init để tạo ra bộ đếm có chu kì 1s sử dụng cho đồng hồ.
Trang 12 Hàm TIM2_IRQHandler để kiểm tra trạng thái của timer khi timer bị ngắt thì biến Counter sẽ chạy theo đúng chu trình thời gian là hết 60 giây biến min sẽ tăng lên 1 ứng với phút
Hàm Delay_ms để tạo Delay tương đối là 1ms
Trang 13 Hàm check để kiểm tra các nút bấm chức năng.
Trang 14 Hàm SEG_Disp để hiện thị thời gian dựa trên biến Counter và min.
Trang 152 Khối hiển thị
Ta có bảng mã hiển thị các số từ 0 – 9 trên LED 7 thanh:
Trang 163 Khối điều khiển LED 7 đoạn.
Để giảm thiểu tối đa số chân cho việc hiển thị ra các LED 7 thanh ta cần phương pháp quét LED để điều khiển hiển thị
mất khoảng 25ms để xử lý một hình ảnh (40 hình/s), vậy nếu cho LED sáng tắt với khoảng thời gian nhỏ hơn 25ms thì giá trị hiển thị trên LED giống như luôn sáng
LED và bắn dữ liệu vào các chân data
Trang 174 Khối nút bấm
Ban đầu treo điện áp cao vào chân vi xử lý, khi nhấn nút điện áp cao sẽ chạy tới đất khiến điện áp vào chân vi xử lý ở mức thấp Khi đó vi xử lý sẽ nhận biết được người dùng vừa nhấn nút chức năng nào