Chuẩn giao tiếp I2C

Một phần của tài liệu Máy theo dõi bệnh nhân ba thông số nhịp tim, SPO2, nhiệt độ (Trang 30)

CHƢƠNG 1 : GIỚI THIỆU ĐỀ TÀI

2.4 Chuẩn giao tiếp I2C

Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây đƣợc gọi là I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đƣờng Bus giao tiếp giữa các IC với nhau. I2C mặc dù đƣợc phát triển bởi Phillips, nhƣng nó đã đƣợc rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài Phillips nhƣ: Texas Instrument(TI), MaximDallas, analog Device, National Semiconductor, w. Bus 12C đƣợc sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau nhƣ các loại Vi điều khiển 8051, PIC, AVR, ARM, vv chip nhớ nhƣ: RAM tĩnh (Static RAM), EEPROM, bộ chuyển đổi tƣơng tự số (ADC), số tƣơng tự (DAC), IC điều khiển LCD, LED, vv.

25

- Một đƣờng xung clock (SCL) chỉ do Master phát đi (thông thƣờng ở 100kHz và 400kHz. Mức cao nhất là 1MHz và 3.4MHz)

- Một đƣờng dữ liệu (SDA) theo 2 hƣớng.

Có rất nhiều thiết bị có thể cũng đƣợc kết nối vào một bus I2C, tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ đƣợc nhận ra bởi một địa chỉ duy nhất với một quan hệ master/slave tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động nhƣ là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là master hay slave.

Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó cịn đƣợc cấu hình là thiết bị master hay slave. Đó là vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị master hay slave. Thiết bị master nắm vai trị tạo xung clock đồng bộ cho tồn hệ thống, khi giữa hai thiết bị master - slave giao tiếp thì thiết bị master có nhiệm vụ tạo xung clock đồng bộ và quản lý địa chỉ của thiết bị slave trong suốt quá trình giao tiếp. Thiết bị master giữ vai trò chủ động, còn thiết bị slave giữ vai trò bị động trong việc giao tiếp. Về lý thuyết lẫn thực tế I2C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 27 địa chỉ tƣơng ứng với 128 thiết bị có thể kết nối, nhƣng chỉ có 112, 16 địa chỉ cịn lại đƣợc sử dụng vào mục đích riêng. Bit cịn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là read).

Có một lƣu ý nhỏ về xung clock. Bản chất của IDC là dữ liệu trên đƣờng SDA chỉ đƣợc ghi nhận ở sƣờn lên của chân CLK. Do vậy xung clock có thể khơng cần chính xác tốc độ là 1MHz hay 3.4MHz. Lợi dụng điểm này có thể sử dụng 2 chân GPIO để làm chân giao tiếp I2C mềm mà không nhất thiết cần một chân CLK tạo xung với tốc độ chính xác.

Quá trình truyền dữ liệu giữa 2 thiết bị chế độ Master – Slave dùng bus I2C diễn ra nhƣ sau:

26

Thiết bị master tạo xung START (tức là đƣờng SDA thay đổi từ mức cao xuống mức thấp và đƣờng SCL đang ở mức cao) để bắt đầu quá trình giao tiếp.

Thiết bị master gửi địa chỉ của thiết bị slave muốn giao tiếp cùng với bit R/W và đợi xung ACK phản hồi. Địa chỉ của thiết bị slave đƣợc định nghĩa bởi 7 bit, ngồi ra có thể đánh địa chỉ dƣới dạng 10 bit nếu sau lệnh START gửi chuỗi 11110 ra đƣờng SDA. Bit R/W dùng để điều khiển hƣớng truyền- bit “0” là truyền từ master tới slave, ngƣợc lại bit “1” là truyền từ slave tới master. Việc thiết lập bit R/W do thiết bị master quy định.

Khi nhận đƣợc cung báo ACK từ thiết bị slave xác nhận đúng địa chỉ thì bắt đầu thực hiện truyền dữ liệu. Dữ liệu đƣợc gửi theo từng byte. Mỗi byte gồm 8 bit và sau mỗi byte đều bắt buộc có một xung ACK để đảm bảo quá trình truyền nhận diễn ra chính xác. Số lƣợng byte là khơng giới hạn. Xung ACK đƣợc định nghĩa là SDA kéo xuống mức thấp. Ngồi ra, khi khơng nhận đƣợc đúng địa chỉ hay khi muốn kết thúc quá trình giao tiếp thiết bị nhận sẽ gửi một xung NACK tức là SDA ở mức cao.

Kết thúc quá trình truyền, thiết bị master sẽ gửi xung STOP hoặc thiết bị slave gửi xung NACK để báo hiệu kết thúc. Xung STOP tƣơng tự nhƣ xung START nhƣng trạng thái của đƣờng SDA thay đổi từ mức thấp lên mức cao. Ngoài ra, trong một q trình giao tiếp có thể lặp lại xung START kèm theo một địa chỉ mới để bắt đầu một giao tiếp khác.

Điểm mạnh của I2C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển.

2.5 Ƣu nhƣợc điểm của thiết bị Ƣu điểm:

- Hệ thống dễ sử dụng, dễ thao tác.

27

- Giá thành rẻ.

- Sử dụng đƣợc tại nhà, tại giƣờng bệnh, phịng khám tƣ.

- Khơng phụ thuộc vào nguồn điện 220V. Nguồn cấp ở thể là sạc để sử dụng.

Nhƣợc điểm:

- App điện thoại dung kết nối Bluetooth nên khoảng cách kết nối hạn chế.

- Hệ thống dữ liệu truyền nhận nội bộ bảo mật chƣa tốt, ngƣời lạ có thể xâm nhập.

- Hệ thống đo cịn phụ thc rất nhiều vào chất lƣợng cảm biến vì phƣơng pháp đo là hấp thụ quang học nên rất dễ bị nhiễu bở ánh sang bên ngoài.

28

Chƣơng 3: PHƢƠNG PHÁP GIẢI QUYẾT

3.1 Giới thiệu phần cứng

Thiết bị đầu vào là nút nhấn, cảm biến nhịp tim và nồng độ oxy trong máu MAX30100 và cảm biến nhiệt độ MLX90614. Thiết bị đầu ra sử dụng Led, buzzer Bộ điều khiển trung tâm là vi điều khiển Atmega 2560. Sử dụng chuẩn truyền dữ liệu có dây I2C và truyền không dây qua module Bluetooth. Thiết bị lƣu trữ là bộ nhớ RAM. Nguồn cấp là 2 Pin Cell 18650 4200mAh 3.7V.

3.1.1 Cảm biến nhịp tim và nồng độ oxy trong máu MAX30100

Cảm biến MAX30100 của hãng Maxim là module tích hợp có khả năng đo đƣợc nồng độ oxy trong máu và nhịp tim. Đây là một cảm biến quang học, nó phát ra hai bƣớc sóng ánh sáng từ hai đèn LED (LED đỏ và một LED hồng ngoại) nhƣ trong hình 2.5. Sau đó đo sự hấp thụ của mạch đập (pulsing blood) bằng cách thu tín hiệu thơng qua một bộ cảm biến ánh sáng (photodetector). Sự kết hợp màu LED đƣợc sử dụng để đọc dữ liệu ở đầu ngón tay. Từ đó xác định đƣợc nồng độ oxy trong máu và nhịp tim.[9]

Hình 3. 1 Cảm biến nhịp tim và SpO2 MAX30100

Cảm biến có đặc điểm là tích hợp IC MAX30100 của Maxim, đây chính là bộ cảm biến quang học gồm hai LED, đƣợc tối ƣu và giảm nhiễu. Bên cạnh đó có sử dụng nguyên lý đo hấp thụ quang học của máu với tốc độ lấy mẫu dựa trên trạng

29

thái LED có thể lập trình đƣợc phục vụ cho mục đích tiết kiệm năng lƣợng. Giao tiếp thông qua I2C. Chi tiết về cảm biến đƣợc thể hiện rõ ở thông số kỹ thuật trong

bảng 3.1 bên dƣới.

Bảng 3. 1 Băng thông số kỹ thuật cảm biến MAX30100

S TT THÔNG SỐ GIÁ TRỊ 1 IC MAX30100 2 Điện áp hoạt động 1.8V – 3.3V (DC) 3 Dòng hoạt động thấp 0.7 (uA)

4 Giá trị ADC 16-bit

5 Tốc độ đọc dữ liệu 50Hz to 1kHz

6 Cảm biến quang IR led hồng ngoại & bộ tách sóng quang

7 Hỗ trợ giao tiếp I2C

8 Nhiệt độ hoạt động -40 ° C đến +85 ° C

30

Hình 3. 2 Cảm biến đo nhiệt độ hồng ngoại MXL90614

Cảm biến MXL90614 đƣợc sử dụng để đo nhiệt độ. Nhiệt kế đƣợc gắn đầu phát để phát ra tia hồng ngoại (hình 3.1) từ đó có thể đo nhiệt độ vật mà khơng cần tiếp xúc. MLX90614 tích hợp cả chip dị nhiệt độ nhạy IR. Điều này cho phép độ chính xác và độ phân giải cao của nhiệt kế. Nhiệt độ đo đƣợc trong phạm vi nhiệt độ hoàn chỉnh với độ phân giải 0,02 ° C.

Nhiệt độ đo đƣợc trong phạm vi từ -20 đến 120 ° C, với độ phân giải đầu ra là 0,14 ° C. Cảm biến MLX90614 có 4 chân thể hiện ở hình 2.7 cùng với vỏ bọc ngoài và thân. Hai chân dùng để giao tiếp I2C với oled là SCL và SDA. SCL có tác dụng để đồng bộ hóa giữa các thiết bị khi truyền dữ liệu, còn SDA là dây dữ liệu truyền qua. 2 chân cịn lại dùng để nối nguồn và đất.[10]

Hình 3. 3 Sơ đồ chân cảm biến MXL90614

31

loại sóng này có bƣớc sóng dài và mang đến ánh sáng tốt. Hầu hết các cảm biến đo nhiệt độ hồng ngoại sẽ có bƣớc sóng từ 0.8µm đến 14µm. Tất cả các phép đo nhiệt độ trên 0°K đều phát ra bức xạ điện từ. Từ nguyên lý này, cảm biến hồng ngoại sẽ thu đƣợc bức xạ điện từ trên vật. Sau đó truyền dữ liệu về cho vi xử lý để tính tốn ra đƣợc nhiệt độ của vật đó. Module cảm biến MLX90614, cảm biến thích hợp cho việc đo nhiệt độ không tiếp xúc. Đầu ra là tín hiệu số, đầu vào là tín hiệu tƣơng tự.

Cảm biến có đặc điểm hoạt động ở 3.3 - 5 V. Có thể điều chỉnh độ nhạy cảm biến thông qua phần mềm lập trình. Kích thƣớc nhỏ, chi phí thấp, thời gian đáp ứng nhanh. Cảm biến hoạt động ổn định, tiết kiệm năng lƣợng. Khoảng cách đo nhỏ hơn 1 m với phạm vi nhiệt độ đo rộng: (-40 đến + 85 ° C trong nhiệt độ cảm biến) và (-70 đến + 380 ° C nhiệt độ của đối tƣợng).

3.1.3 Tổng quan về module Arduino Mega2560

Arduino Mega 2560 là board mạch vi điều khiển xây dựng dựa trên vi điều khiển Atmega 2560. Nó có 54 chân I/O (trong đó có 15 chân có thể sử dụng làm chân ouput với chức năng PWM), 16 chân đầu vào Analog, 4 UART, 1 thạch anh 16Mhz, 1 cổng USB, 1 jack nguồn, 1 header, 1 nút nhấn reset (hình 3.4). Nó chứa mọi thứ cần thiết hỗ trợ cho ngƣời lập trình vi điều khiển, đơn giản chỉ việc kết nối nó với máy tính bằng cable USB là có thể bắt đầu học tập. Mach Arduino 2560 sử dụng tƣơng thích với phần lớn các Shield của Arduino UNO[11]. Chi tiết về đặc điểm của Arduino Mega 2560 đƣợc mô tả rõ ở bảng 3.2 thông số kỹ thuật.

32

Bảng 3. 2 Thông số kĩ thuật Arduino Mega 2560

S

TT THÔNG SỐ GIÁ TRỊ

1 Vi điều khiển chính Atmega2560

2 Điện áp hoạt động 5VDC

3 Dòng ra tối đa (5V) 500 mA

4 Giao tiếp I2C 1 bộ

5 EEPROM 4KB

6 Thạch anh 16MHz

7 Giao tiếp UART 4 bộ UART

8 Dòng ra tối đa trên mỗi

chân I/O 20mA

9 Số chân digital 54 1 0 Số chân analog 16 1 1 Ngắt ngoài 6 chân 1

2 Giao tiếp SPI

1 bộ (chân 50 đến 53) dùng với

thƣ viện SPI

Qua những thông số kỹ thuật ở bảng 3.2 bên trên, ta nhận thấy hệ thống I / O

33

độ giao tiếp khác. Bên cạnh đó, Arduino Mega 2560 có sẵn RTC và các tính năng khác nhƣ bộ so sánh, timer, ngắt để điều khiển hoạt động, tiết kiệm điện năng và tốc độ nhanh hơn với xung thạch anh là 16 Mhz. Với bộ nhớ FLASH lớn và SRAM, bo này có thể xử lý chƣơng trình hệ thống lớn một cách dễ dàng. Nó cũng tƣơng thích với các loại bo mạch khác nhau nhƣ tín hiệu mức cao (5V) hoặc tín hiệu mức thấp (3.3V) với chân nạp I / O.

3.1.4 Tổng quan công nghệ Bluetooth

Bluetooth là một chuẩn công nghệ truyền thông không dây tầm gần giữa các thiết bị điện tử. Công nghệ này hỗ trợ việc truyền dữ liệu qua các khoảng cách ngắn giữa các thiết bị di động và cố định, tạo nên các mạng cá nhân không dây (Wireless Personal Area Network-PANs). Bluetooth có thể đạt đƣợc tốc độ truyền dữ liệu 1Mb/s. Bluetooth hỗ trợ tốc độ truyền tải dữ liệu lên tới 720 Kbps trong phạm vi 10 m–100 m. Khác với kết nối hồng ngoại (IrDA), kết nối Bluetooth là vô hƣớng và sử dụng giải tần 2,4 GHz.[12]

Bluetooth đƣợc thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một cách thuận lợi với giá thành rẻ. Khi đƣợc kích hoạt Bluetooth có thể tự động định vị những thiết bị khác có chung công nghệ trong vùng xung quanh và bắt đầu kết nối với chúng. Nó đƣợc định hƣớng sử dụng cho việc truyền dữ liệu lẫn tiếng nói.

Cơng nghệ khơng dây Bluetooth là một tiêu chuẩn trong thực tế, dùng cho các thiết bị cỡ nhỏ, chi phí thấp, sóng ngắn liên kết giữa PC di động, điện thoại di động và giữa các máy tính với nhau nhƣ hình 2.9. Bluetooth ít tiêu hao năng lƣợng và có giá thành thấp nhƣng tốc độ của nó chậm hơn khá nhiều so với mạng không dây Wi- Fi. Các Smartphone và máy tính bảng đã trang bị chức năng hỗ trợ Bluetooth vào hệ điều hành của chúng để kích hoạt khả năng hoạt động với đồng bộ hoá dữ liệu với điện thoại di động (ĐTDĐ) và thiết bị hỗ trợ cá nhân PDA, in ấn với các máy in hỗ trợ Bluetooth

34

và kết nối đến các thiết bị khác. Đặc điểm của công nghệ Bluetooth đƣợc thể hiện rõ ở những ƣu nhƣợc điểm trong bảng 2.3 bên dƣới.

Hình 3. 5 Ứng dụng Bluetooth điều khiển các thiết bị ngoại vi

ƢU ĐIỂM NHƢỢC ĐIỂM

- Kết nối không dây

- Bảo mật an tồn với cơng nghệ mã hóa trong. Một khi kết nối đƣợc thiết lập thì khó có một thiết bị nào có thể nghe trộm hoặc lấy cắp dữ liệu.

- Các thiết bị có thể kết nối với nhau trong vòng 10m đến 100m.

- Tốn ít năng lƣợng, khi ở chế độ chờ tốn 0.3mAh, hoạt động 30mAh trong chế độ truyền dữ liệu.

- Không gây nhiễu các thiết bị không dây khác.

- Tốc độ thấp, khoảng 720kbps tối đa. - Bắt sóng kém khi có vật cản, dễ bị - Chờ kết nối bluetooth tiêu tốn một

35

3.1.5 Tổng quan về màn hình OLED

OLED (Organic Light Emitting Diode): là loại công nghệ màn hình có cấu tạo mới gồm các Diode phát sáng hữu cơ, loại vật liệu này có khả năng phát sáng khi có dịng điện chạy qua. Đây là cơng nghệ màn hình phát quang nổi tiếng và đƣợc đánh giá cao hơn LCD truyền thống, giới công nghệ ln mong muốn màn hình OLED trở nên phổ biến hơn và nâng cao chất lƣợng hơn, nhằm thay thế các màn hình LCD[13]. Màn Hình Oled 128X64 - I2C 1.3 Inch ứng dụng hiển thị hình ảnh với khung 128x64 pixel, màn hình oled tƣơng thích với hầu hết các vi điều khiển với giao tiếp I2C. Màn hình Oled có thiết kế khá nhỏ gọn. Đặc điểm của Oled đƣợc thể hiện rõ ở bảng 2.4 thông số kỹ thuật bên dƣới.

Bảng 3. 3 Bảng thông số kỹ thuật OLED

S

TT THÔNG SỐ GIÁ TRỊ

1 Điện áp làm việc 2.2 ~ 5.5VDC

2 Kích thƣớc màn hình 1.3 inch (128x64 pixel)

3 Nhiệt độ hoạt động -30℃ ~ +70℃

4 Tiêu thụ điện năng thấp 0.08W (fullscreen)

5 Chuẩn giao tiếp I2C (thông qua 2 chân SCL, SDA)

36

3.2 Giới thiệu phần mềm 3.2.1 MIT App Inventor 3.2.1 MIT App Inventor

App Inventor là cơng cụ lập trình dành cho mọi ngƣời, kể cả trẻ em. Đƣợc công bố dƣới dạng phần mềm tự do (free software), App Inventor trở thành hiện tƣợng chƣa từng có trong lĩnh vực lập trình cho thiết bị di dộng. Ƣu điểm của MIT App Inventor là phần mềm hỗ trợ xây dựng những thành phần cơ bản của một ứng dụng Android: Nút

Một phần của tài liệu Máy theo dõi bệnh nhân ba thông số nhịp tim, SPO2, nhiệt độ (Trang 30)

Tải bản đầy đủ (PDF)

(99 trang)