BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO CUỐI KÌ MÔN HỆ THỐNG NHÚNG Giảng viên hướng dẫn Ts Nguyễn Ngọc Minh Hệ đào tạo Đại học chính quy Mục lục PHẦN 1 THIẾT KẾ MẠ.
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-BÁO CÁO CUỐI KÌ MÔN: HỆ THỐNG NHÚNG
Giảng viên hướng dẫn: Ts Nguyễn Ngọc Minh
Hệ đào tạo: Đại học chính quy
Trang 2Mục lục PHẦN 1: THIẾT KẾ MẠCH ĐO NHIỆT ĐỘ ĐỘ ẨM HIỂN THỊ LÊN LCD
SỬ DỤNG KIT STM32F4 DISCOVERY……… 4
I Linh kiện sử dụng 4
1 Kit STM32F407 Discovery 4
2 LCD 20x4 5
3 Module i2c 6
4 Cảm biến nhiệt độ độ ẩm DHT11 7
II Lý thuyết liên quan 8
1 GPIO 8
2 I2C (inter-integrated circuit) 8
3 Chuẩn giao tiếp 1-Wire 11
PHẦN 2: Thiết kế máy tính đơn giản hiển thị lên led 4 led 7 đoạn 13
I Giới thiệu các linh kiện 13
1 STM32F103C8T6 13
a Giới thiệu sơ lược 13
b Sơ đồ chức năng chân của STM32F103C8T6 14
2 KeyPad 4×4 16
3 Led 7 Thanh 4 số 17
II Cơ sở lý thuyết 17
1 Timer 17
2 Sơ đồ hệ thống 19
III Demo sản phẩm 21
1 Hình ảnh mạch cứng 21
Trang 3Đề bàiPhần 1: 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 đó
Phần 2: Làm project trên Cortex M3 Compile và build code:
Thiết kế máy tính đơn giản, sử dụng ma trận phím 4x4 thực hiện các phép tính cộng, trừ, nhân, chia hiển thị kết quả lên led 7 thanh, nếu kết quả > 9999 hiển thị chữ "FULL"
Trang 4PHẦN 1: THIẾT KẾ MẠCH ĐO NHIỆT ĐỘ ĐỘ ẨM HIỂN THỊ LÊN LCD SỬ
DỤNG KIT STM32F4 DISCOVERY
I Linh kiện sử dụng
1 Kit STM32F407 Discovery
Kit STM32F407 Discovery hiện là loại kit được rất nhiều trường đại học hiện nay
sử dụng trong giảng dạy vi điều khiển ARM, nếu so sánh về ngoại vi và sức mạnh củaSTM32 so với các dòng ARM của các hãng khác thì ở cùng 1 tầm giá, ARM của ST vượttrội về cấu hình và ngoại vi hơn rất nhiều Kit STM32F4DISCOVERY thúc đẩy khảnăng của vi điều khiển hiệu suất cao STM32F407, cho phép người dùng dễ dàng pháttriển các ứng dụng có âm thanh Kit bao gồm một bộ công cụ gỡ lỗi nhúng ST-LINK,một gia tốc số ST-MEMS, một micro số, một audio DAC với trình điều khiển loa tíchhợp lớp D, đèn LED, nút bấm và cổng micro-AB USB OTG
Các đặc điểm tính năng chính:
- Bộ vi xử lý STM32F407VGT6: 32-bit ARM Cortex – M4 với lõi FPU, bộ nhớ
Flash 1Mbyte, RAM 192-Kbyte với kiểu chân LQFP100
- Trình gỡ lỗi LINK / V2 trên STM32F4DISCOVERY (bản cũ) hoặc
ST-LINK / V2-A trên STM32F407G-DISC1 (phiên bản mới)
- USB ST-LINK với khả năng kiểm tra lại và ba giao diện khác nhau:
- Cổng gỡ lỗi
- Cổng COM ảo
- Lưu trữ khối lượng
- Nguồn cung cấp: thông qua USB hoặc nguồn điện bên ngoài 3V – 5V
- Gia tốc kế 3 trục LIS302DL hoặc LIS3DSH ST MEMS
- Micro số đa hướng dùng cảm biến âm thanh MP45DT02 ST-MEMS
- CS43L22 bộ chuyển đổi âm thanh/kỹ thuật số âm thanh công suất thấp (DAC)
với trình điều khiển loa tích hợp lớp D
- Tám đèn LED
- LD1 (đỏ/xanh) cho giao tiếp USB
Trang 5- LD2 (đỏ) led báo nguồn 3.3V
- Bốn led của người dùng, LD3 (màu cam), LD4 (xanh lục), LD5 (màu đỏ) và
LD6 (màu xanh lam)
- 2 đèn led OTG USB LD7 (xanh lá cây) VBUS và LD8 (màu đỏ) quá dòng điện
- Hai nút nhấn (người dùng và reset)
- USB OTG FS có cổng kết nối micro-AB
- Header mở rộng I/O cho LQPF64 để kết nối nhanh với bo mạch gốc và dễ dàng
sử dụng
Hình 1.1 Cấu tạo Kit STM32F407 Discovery
Thông số kỹ thuật
Trang 6Hình 1.3 Mạch chuyển đổi giao tiếp I2C cho LCD
LCD có quá nhiều chân gây khó khăn trong quá trình kết nối và chiếm dụng nhiều châncủa vi điều khiển Module chuyển đổi I2C cho LCD sẽ giải quyết vấn đề này, thay vì sửdụng tối thiểu 6 chân của vi điều khiển để kết nối với LCD (RS, EN, D7, D6, D5 và D4)thì với module chuyển đổi bạn chỉ cần sử dụng 2 chân (SCL, SDA) để kết nối Module
Trang 7chuyển đổi I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 1602, LCD 2004, ),kết nối với vi điều khiển thông qua giao tiếp I2C, tương thích với hầu hết các vi điềukhiển hiện nay.
- Giao tiếp: I2C
- Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)
- Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H)
- Trọng lượng: 5g
- Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt
- Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD
4 Cảm biến nhiệt độ độ ẩm DHT11
Hình 1.4 Cảm biến nhiệt độ độ ẩm DHT11
Trang 8Cảm biến nhiệt độ và độ ẩm DHT11 ra đời sau và được sử dụng thay thế cho dòngSHT1x ở những nơi không cần độ chính xác cao về nhiệt độ và độ ẩm Cảm biến sử dụnggiao tiếp số theo chuẩn 1 dây.
Thông số kỹ thuật:
- Điện áp hoạt động: 5VDC
- Chuẩn giao tiếp: TTL, 1 wire.
- Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH
- Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C
- Tần số lấy mẫu tối đa 1Hz (1 giây / lần)
- Kích thước: 28mm x 12mm x10m
II Lý thuyết liên quan
1 GPIO
GPIO là viết tắt của General Purpose Input Output GPIO chính là “cổng” để vi điều
khiển có thể kết nối được với những ngoại vi bên ngoài
Chức năng cơ bản của GPIO là xuất tín hiệu ra (output) và nhận tín hiệu vào (input), VD:output có làm sáng tắt bóng LED, input có thể nối với nút nhấn
2 I2C (inter-integrated circuit)
I2C là chuẩn truyền thông nối tiếp 2 dây gồm 1 dây xung clock (SCL) và 1 dây dữliệu (SDA) Các chip chủ-tớ được nối chung với nhau trên hai đường dây này và được nốivới điện trở treo
Trang 9Hình 1.5 Giao diện kết nối I2C
Đặc điểm
Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trênmạng I2C
Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART
Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết
Cơ chế đơn giản để xác thực dữ liệu được truyền
Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C
Các mạng I2C dễ dàng mở rộng Các thiết bị mới có thể được kết nối đơn giản vớihai đường bus chung I2C
Trang 10 Hình 1.6 Bus vật lý I2C
Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực máng hở(open drain) Nó có nghĩa là bất kỳ thiết bị / IC trên mạng I2C có thể lái SDA vàSCL xuống mức thấp, nhưng không thể lái chúng lên mức cao Vì vậy, một điệntrở kéo lên (khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữcho chúng ở mức cao (ở điện áp dương) theo mặc định
Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy ra hiệntượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo đường dâylên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp
Thiết bị chủ (Master) và tớ (Slave)
Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master) hoặc
là thiết bị Tớ (Slave) Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bịMaster ở trang thái hoạt động trên bus I2C Nó điều khiển đường tín hiệu đồng hồSCL và quyết định hoạt động nào sẽ được thực hiện trên đường dữ liệu SDA
Tất cả các thiết bị đáp ứng các hướng dẫn từ thiết bị Master này đều là Slave Đểphân biệt giữa nhiều thiết bị Slave được kết nối với cùng một bus I2C, mỗi thiết bịSlave được gán một địa chỉ vật lý 7-bit cố định
Trang 11 Khi một thiết bị Master muốn truyền dữ liệu đến hoặc nhận dữ liệu từ một thiết bịSlave, nó xác định địa chỉ thiết bị Slave cụ thể này trên đường SDA và sau đó tiếnhành truyền dữ liệu Vì vậy, giao tiếp có hiệu quả diễn ra giữa thiết bị Master vàmột thiết bị Slave cụ thể.
Tất cả các thiết bị Slave khác không phản hồi trừ khi địa chỉ của chúng được chỉđịnh bởi thiết bị Master trên dòng SDA
Hình 1.7 Kết nối giữa thiết bị Master (chủ) và thiết bị Slave (tớ)
Giao thức truyền dữ liệu
Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua mộtđường dữ liệu SDA duy nhất, thông qua các chuỗi có cấu trúc gồm các số 0 và 1(bit) Mỗi chuỗi số 0 và 1 được gọi là giao dịch (transaction) và dữ liệu trong mỗigiao dịch có cấu trúc như sau:
Hình 1.8 Giao thức truyền dữ liệu
Trang 123 Chuẩn giao tiếp 1-Wire
1-Wire là một chuẩn giao tiếp được thiết kế bởi Dallas Semiconductor và đã đượcmaxim mua lại năm 2001 Maxim là một hãng sản xuất chip lớn
1-Wrire dùng một dây để truyền nhận nên có tốc độ thấp Chủ yếu sử dụng choviệc thu thập dữ liệu, truyền nhận dữ liệu thời tiết, nhiệt độ, công việc không yêu cầu tốc
độ cao
Hình 1.9 Sơ đồ lắp đặt chuẩn giao tiếp 1-Wire
Cơ sở truyền nhận:
Các tín hiệu sử dụng Restart , 0 write , 1 write , Read
Write 1: truyền đi bit 1: Master kéo xuống 0 một khoảng A(us) rồi về mức 1
khoảng B
Write 0: truyền đi bit 0 : Master kéo xuống 0 khoảng C rồi trả về 1 khoảng DRead : Đọc một Bit : Master kéo xuống 0 khoảng A rồi trả về 1 delay khoảng Erồi đọc giá trị slave gửi về delay F
Restart: Chuẩn bị giao tiếp Master ké0 xuống 0 một khoảng H rồi nhả lên mức 1sau đó cấu hình Master là chân In delay I (us) rồi đọc giá trị slave trả về Nếu =0 thì chophép giao tiếp =1 đường truyền lỗi hoặc slave đang bận
Trang 13Chuẩn 1-Wire điều cần chính xác nhất là thời gian Vậy để tối ưu đường truyềnthì cần một bộ định thời để delay chính xác nhất.
Các frame byte truyền nhận với mỗi Ic có môt dạng Frame khác nhau vậy cần chú
ý đọc datasheet
Bus dữ liệu khi ở trạng thái chờ (khi không có dữ liệu trên đường truyền) phải ởmức cao do vậy bus dữ liệu phải được kéo lên nguồn thông qua một điện trở Giá trị điệntrở này có thể tham khảo trong datasheet của thiết bị / các thiết bị slave
Hình 1.10 Truyền nhận dữ liệu trong 1-Write
Trang 14PHẦN 2: Thiết kế máy tính đơn giản hiển thị lên led 4 led 7 đoạn
I Giới thiệu các linh kiện
1 STM32F103C8T6
Hình 2.1 Kit STM32F103C8T6
Trang 15a Giới thiệu sơ lược
Bo mạch STM32F103C8T6 blue-pill có lõi ARM 32-bit Cortex-M3 RISC với bộ
b Sơ đồ chức năng chân của STM32F103C8T6
Trang 16
Hình 2.2 Sơ đồ chức năng chân của STM32F103C8T6
Trang 171 Điện áp hoạt động đầu ra
2 Chân cấp nguồn ở cổng USB hoặc nguồn 5V bên ngoài
Giao tiếp dữ liệu
nối tiếp ( UART )
TX1, RX1, TX2, RX2,
SPI
MISO0, MOSI0, SCK0, MISO1, MOSI1, SCK1, CS0
2 chân SPI
I2C SCL1, SCL2, SDA1, SD2 Chân dữ liệu I2C và chân
xung nhịp
Trang 18Hình 2.3 Keypad 4x4
Bàn phím ma trận Mềm 4x4 Keypad được thiết kế với giao diện đơn giản giúp dễdàng giao tiếp với bất kì vi điều khiển nào Mặt sau dính thuận tiên để gắn bàn phímtrong nhiều dự án
Trang 193 Led 7 Thanh 4 số
Hình 2.5 Led 7 thanh 4 số
Led 7 seg 0.56inch (4 số, anot chung) là các diode có khả năng phát ra ánh sang hay tia hồng ngoại, tử ngoại Led được cấu tạo từ một khối bán dẫn loại p ghép với một số bán dẫn loại n Nó dùng để làm bộ phận hiển thị trong các thiết bị điện, điện tử, ứng dụng trong công nghiệp, hiển thị các tỷ giá, lãi xuất Góc nhìn rộng, tương thích với IC và tiêu thụ điện năng thấp
Trang 20Dưới đây là 1 bộ timer 16 bit cơ bản, nó có thể đếm từ 0 -> 65535 (216-1) Mỗi chu kỳclock, giá trị của bộ đếm được tăng thêm 1 Và như các bạn có thể thấy, tần số của timerftimer = tần số APB của timer / (Prescaler+1) (fAPBx / (PSC+1)) Vì khi PSC = 0 nghĩa
là hệ số chia 1:1
Hình 2.6 Cơ chế làm việc timer
Timer còn có thể hoạt động ở chế độ counter, nó sẽ nhận xung clock từ các tín hiệungoài Có thể là từ 1 nút nhấn, bộ đếm sẽ được tăng sau mỗi lần bấm nút (sườn lên hoặcsườn xuống tùy vào cấu hình) Như các bạn có thể thấy, ở chế độ này tín hiệu của xungclock sẽ được điều khiển bằng nút nhấn và đồng thời PSC = 1 (bấm bao nhiêu thì đếmbấy nhiêu)
Trang 22*Ý tưởng:
- Máy tính đơn giản có các chức năng cộng trừ nhân chia (chia nguyên): bấm số thứ nhất,chọn phép tính, bấm số thứ 2 sau đó bấm dấu “=” sẽ ra kết quả, nếu kết quả lớn hơn 9999hiển thị “FULL” Bấm nút “ON” sẽ reset
- Cụ thể:
+ Khi bấm phím, hàm quét phím sẽ trả về giá trị theo thứ tự từ 1 đến 16
+ Mỗi lần bấm phím ta sẽ lưu giá trị phím bấm đó vào 1 mảng, sau đó hiển thị mảng đó
ra led 7 thanh theo đúng giá trị của số vừa bấm
+ Bấm chọn phép tính Led 7 thanh lập tức reset và ta tiến hành bấm số thứ 2, cách hiển thị tương tự như số thứ nhất
+ Bấm dấu “On” reset tất cả giá trị về 0
+ Khi có giá trị số thứ nhất và số thứ 2, tiến hành thực hiện phép toán như đã chọn, lưu thành 1 biến, nếu biến đó >9999 hiển thị “FULL” theo mã hexa, không thì hiển thị kết quả phép tính
Trang 23III Demo sản phẩm
1 Hình ảnh mạch cứng
Hình 2.8 Mạch demo sản phẩm