CHƯƠNG 3: THIẾT KẾ HỆ THỐNG GIÁM SÁT BỆNH NHÂN QUA MẠNG CẢM BIẾN KHÔNG DÂY
3.6 Linh kiện thiết bị sử dụng trong thiết kế
3.6.2 Module truyền thông XBee
Module XBee của hãng Maxstream đƣợc thiết kế theo chuẩn IEEE 802.15.4 và hỗ trợ mức năng lƣợng thấp. Module này yêu cầu ít năng lƣợng và cung cấp truyền dữ liệu giữa 2 thiết bị với nhau. Dải tần sử dụng của module XBee là 2.4 GHz. Trong quá trình hoạt động, tại mỗi node cảm biến thì khối thu phát vô tuyến là module XBee ZB24 có nhiệm vụ truyền dữ liệu từ hệ thống về máy tính trung tâm.
3.6.2.1 Thông số kỹ thuật
- Cự ly truyền thông trong nhà lên tới 30m - Cự ly truyền ngoài trời lên tới 90m - Công suất truyền đi là 1mW(dBm)
Hình 3.17-Hình ảnh XBee ZB24.
81
- Tốc độ truyền dữ liệu RF là 250.000 bps
- Tốc độ dữ liệu giao tiếp nhận nối tiếp là 1200 bps-250 kps.
- Độ nhạy thu là -92dBm(1% tỷ lệ gói lỗi) - Nguồn cung cấp 2.8-3.4V
- Dòng truyền 45mA – 3.3V - Sử dụng dải tần 2.4 GHz
- Mạng hỗ trợ: Point to Point, Point to MultiPoint, peer to peer.
- Dải nhiệt độ hoạt động -40-85 độ C.
Mô tả các chân PIN
# Tên In/Out Mô tả
1 VCC - Chân cấp nguồn
2 DOUT Out Lối ra UART
3 DIN In Lối vào UART
4 D08 Out Lối ra D8
5 Reset In Khởi tạo trạng thái của XBee
6 PWM0/RSSI Out Chân băm xung, chỉ số độ dài tín hiệu Rx
7 PWM1 Out Lối ra băm xung số 1
8 Not connect Không dùng
9 DTR.SLEEP_RQ,DI8 In Điều khiển sleep và lối ra số 8
82
10 GND - Nối đất
11 AD4.DI04 In/Out Lối vào tương tự 4, Lối vào/ra số 4 12 CTS.DIO7 In/Out Cờ điều khiển xóa khi tràn, lối vào/ra số 7
13 ON/SLEEP Out Chỉ số trạng thái module
14 VREF In Điện áp tham chiều chân Analog
15 Associate/AD5/DIO5 In/Out Chỉ số kết hợp, Lối vào tương tự 5, Lối vào/ra số 5
16 RTS/ AD6 / DIO6 In/Out Cờ yêu cầu gửi dữ liệu, Lối vào tương tự 6, Lối vào/ra số 6
17 AD3 / DIO3 In/Out Lối vào tương tự 3, Lối vào/ra số 3 18 AD2 / DIO2 In/Out Lối vào tương tự 2, Lối vào/ra số 2 19 AD1 / DIO1 In/Out Lối vào tương tự 1, Lối vào/ra số 1 20 AD0 / DIO0 In/Out Lối vào tương tự 0, Lối vào/ra số 0
Bảng 3.2-Mô tả các chân pin 3.6.2.2 Truyền thông với module XBee
Module truyền thông XBee có thể truyền thông tin từ thiết bị này sang thiết bị khác trực tiếp như hình dưới đây:
83
Hình 3.18-Hoạt động truyền thông RF của module XBee.
Các Module XBee giao tiếp với vi điều khiển bởi các chân DI truyền dữ liệu, chân DO nhận dữ liệu, các cờ báo truyền nhận CTS và RTS. Dữ liệu truyền/nhận ở đây cũng là dạng truyền thông nối tiếp truyền thống. [19]
Hình 3.19-Khung truyền UART.
Khung truyền bao gồm 1 bit Start, 8 bit dữ liệu và 1 bit stop.
Truyền thông kiểu API
Truyền thông API là giao diện lập trình ứng dụng đƣợc ứng dụng cho các module XBee nâng cao khả năng truyền thông, giảm xác xuất lỗi. Có thể mở rộng khung chứa dữ liệu tùy ý. Khi hoạt động ở chế độ API tất cả dữ liệu vào ra thông qua XBee đều có một khung xác định nhƣ quy định. Truyền khung dữ liệu ở chân DI (pin3) bao gồm: Khung truyền dữ liệu RF và khung truyền lệnh (AT Command).
Khung dữ liệu nhận ở chân sô 2 DO bao gồm: Khung dữ liệu nhận RF và lệnh trả về.
Chế độ API cho phép XBee hoạt động ở 3 chế độ:
84
AP=0: Chế độ mặc định của XBee (truyền thông nối tiếp bình thường).
AP=1: Hoạt động ở chế độ API
AP=2: Hoạt động ở chế độ API (với ký tự thoát).
Hoạt động API ở chế độ 1 (AP=1)
Khi chế độ API đƣợc cho phép thì khung dữ liệu đƣợc xác định nhƣ sau:
Hình 3.20-Cấu trúc khung API chế độ 1.
Khung bao gồm 1 byte bắt đầu 0x7E, 2 byte độ dài của khung dữ liệu, các byte dữ liệu và byte checksum.
Chế độ API ở chế độ 2 (AP=2)
Khi hoạt động ở chế độ 2 với ký tự thoát thì khung API đƣợc xác định nhƣ sau:
Hình 3.21-Khung API ở chế độ 2.
Ký tự thoát: Khi truyền và nhận khung dữ liệu UART, giá trị dữ liệu cụ thể phải được đánh dấu như sau: Chèn byte 0x7D trước ký tự cần xác định là thoát và Xor nó với giá trị 0x20 để báo thoát.
85 Ví dụ khung dữ liệu cần đánh dấu bao gồm:
0x7E - Xác định khung.
0x7D - Ký tự thoát.
0x11 - XON 0x13 - XOFF
Vì vậy khung dữ liệu trước lúc được đánh dấu có dạng như sau: 0x7E 0x00 0x02 0x23 0x11 0xCB
Sau khi đánh dấu nó sẽ trở về nhƣ sau: 0x7E 0x00 0x02 0x23 0x7D 0x31 0xCB vì 0x11 đã đƣợc đánh dấu bằng các XOR với 0x20.
Tính toán Byte Checksum nhƣ sau: Lấy 0xFF - Tất cả các byte trừ byte xác định khung và các byte độ dài.
Các kiểu API
Khung API có cấu trúc nhƣ sau:
Hình 3.22-Cấu trúc cụ thể khung API.
Khung API trong phần khung dữ liệu bao gồm có byte xác định API và dữ liệu.
Truyền thông với 64 bít địa chỉ.
API identifier: 0x00
Một khung RF sẽ gửi đi tới module RF tới module nhận.
86
Hình 3.23-API truyền 64 bít địa chỉ
Trong phần khung dữ liệu Byte6-13 chứa địa chỉ của đích muốn gửi đến, nếu muốn truyền kiểu quảng bá thì đặt là 0x000000000000FFFF. Byte 14 là tùy chọn 0x01 vô hiệu hóa ACK, 0x04 gửi dữ liệu tới tất cả PANID, tất cả thiết bị khác để là 0. [19]
Truyền thông với 16 bít địa chỉ Giá trị xác định khung là 0x01
Một khung RF sẽ gửi đi tới module RF tới module nhận.
Hình 3.24-API truyền 16 bít địa chỉ.
Trạng thái truyền
Giá trị xác định của khung API là 0x89
Khi truyền thành công module sẽ gửi trạng thái như khung dưới đây:
87
Hình 3.25-Khung trạng thái truyền.
Gói nhận 64 bít địa chỉ
Giá trị API là 0x80 khi nhận đƣợc dữ liệu nó sẽ gửi tới lối ra UART một bản tin nhƣ sau:
Hình 3.26-Khung nhận 64 bít địa chỉ.
Gói nhận 16 bít địa chỉ
Giá trị là 0x81. Khi nhận đƣợc gói dữ liệu nó sẽ gửi ra UART một bản tin nhƣ sau:
Hình 3.27-Khung nhận 16 bít địa chỉ.
88 3.6.3 Sensor cảm biến nhiệ độ DS18B20
3.6.3.1 Thông số của Sensor cảm biến nhiệ độ DS18B20
Các đặc điểm kỹ thuật của cảm biến DS18B20 có thể kể ra một cách tóm tắt nhƣ sau: [24]
• Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông.
• Có thể đo nhiệt độ trong khoảng -55 đến +125oC. Với khoảng nhiệt độ là 10°C đến +85°C thì độ chính xác ±0.5°C.
• Điện áp sử dụng: 3V - 5.5V, có thể cấu hình mã hóa nhiệt độ từ 9 đến 12 bit, số bit càng lớn thì độ chính xác cao hơn. Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit
Hình 3.28-Cảm biến nhiệt độ DS18B20.
• Dòng tiêu thụ tại chế độ nghỉ rất nhỏ.
• Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân đƣợc khắc bằng tia laze.
• Nếu cấu hình cho DS18B20 theo 9,10,11,12 bit thì ta có độ chính xác tương ứng là: 0.5°C , 0.25°C ,0.125°C, 0.0625°C.Theo mặc định của nhà sản xuất nếu chúng ta không cấu hình chế độ chuyển đổi thì nó sẽ tự cấu hình là 12 bit.
89
Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ đƣợc kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao. Nhƣ vậy đây là dấu hiệu để căn cứ vào hiện tƣợng này để xác định khi nào chuyển đổi xong nhiệt độ.
Cảm biến nhiệt độ DS18B20 có độ chính xác rất cao, có thể áp dụng để đo thân nhiệt cơ thể.
3.6.3.2 Các tập lệnh của DS18B20 [24]
READ ROM (33h)
Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị tớ cùng đáp ứng.
MATCH ROM (55h)
Lệnh này đƣợc gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa đƣợc gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây.
SKIP ROM (CCh)
Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Nhƣ vậy sẽ tiết kiệm đƣợc thời gian chờ đợi nhƣng chỉ mang hiệu quả khi trên bú chỉ có một cảm biến.
90 SEARCH ROM (F0h)
Lệnh này cho phép bộ điều khiển bus có thể dò tìm đƣợc số lƣợng thành viên tớ đang đƣợc đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm.
ALARM SEARCH (ECh)
Tiến trình của lệnh này giống hệt nhƣ lệnh Search ROM, nhƣng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báo ở đây đƣợc định nghĩa là giá trị nhiệt độ đo đƣợc lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã đƣợc đặt trên thanh ghi trong bộ nhớ của cảm biến.
Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang đƣợc đấu vào bus, thiết bị chủ sẽ đƣa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820 khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo đƣợc và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có thể đƣợc mô tả ngắn gọn nhƣ sau:
WRITE SCRATCHPAD (4Eh)
Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên đƣợc ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai đƣợc ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện.
91 READ SCRATCHPAD (BEh)
Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 – CRC). Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu nhƣ chỉ có một phần của dữ liệu trên bộ nhớ nháp cần đƣợc đọc.
COPYSCRATCHPAD (48h)
Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM. Nếu cảm biến đƣợc sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo.
CONVERT T (44h)
Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.
READ POWER SUPPLY (B4h)
Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng.
3.6.4 Sensor cảm biến nhịp tim
Cảm biến nhịp tim đƣợc xây dựng trên mạch cảm biến SPO2 bằng hồng ngoại.
92
Hình 3.29-Sơ đồ mạch đo nhịp tim bằng hồng ngoại.
Phân tích quá trình giám sát nhịp tim dựa trên lƣợng SpO2:
Khi chúng ta thở oxy sẽ vào phổi. Máu mà thành phần quan trọng nhất của máu là Hemoglobine (Hb) sẽ vận chuyển oxy từ phổi đến các nơi cần thiết trong cơ thể để đảm bảo sự sống. Sự vận chuyển đó xảy ra khi Hb kết hợp với oxy thành HbO2. [22,23]
Tỷ lệ gọi là độ bão hòa oxy trong máu, nói cách khác là tỷ lệ phần trăm hemoglobine của máu kết hợp với Oxy. Độ bão hòa oxy trong máu nếu đƣợc đo trên thực tế đƣợc gọi là SaO2, còn nếu đƣợc đo dựa trên mạch đập đƣợc gọi là SpO2. Đến năm 1935, với sự phát minh ra thiết bị thô sơ đầu tiên dựa vào 2 bước sóng chính là đỏ và xanh dương đặt ở dáy tai dùng để đo SpO2, Matthes được nhắc đến như người đầu tiên đã tìm ra phương pháp khảo sát oxy trong máu. Thiết bị này vấp phải 2 nhƣợc điểm:
- Sự dẫn truyền ánh sáng qua dái tai bị ảnh hưởng bởi các yếu khác ngoài Hb như sắc tố da.
- Không phân biệt đƣợc HbO2 nào là của động mạch, HbO2 nào là của tĩnh mạch.
93
Đến năm 1949, Wood đã phát triển thêm kỷ thuật trên bằng cách đƣa vào đó 1 thiết bị có khả năng cảm biến với mạch đập. Nhƣng sau đó, kỹ thuật này đã bị đình trệ lại vì ký do kinh phí. Mãi đến khi đƣợc tập đoàn Nihon Kohden tài trợ, năm 1972, Aoyagi đã chính thức cho ra đời máy đo oxy dựa vào mạch đập (Pulse oxymetri).
Sự ra đời của máy đo Oxy dựa vào mạch đập trong những năm 1970 đã loại bỏ những nhược điểm của máy đo oxy trước đây. Điểm đặc biệt của máy đo Oxy dựa vào mạch đập là bộ phận tiếp nhận ánh sáng chỉ nhận các sóng ánh sáng có cường độ dao động. Đầu dò của nó sẽ đặt quanh ngón tay. Điều này cho phép máy đo oxy dựa vào mạch đập chỉ phát hiện ra các Hb của động mạch và nó làm giảm hoặc loại bỏ những sai sót tạo nên bởi sự hấp thu ánh sáng của những cấu trúc không có mạch đập nhƣ: mô liên kết và tĩnh mạch.
Đến năm 1987, máy đo oxy dựa vào mạch đập đã đƣợc sử dụng rộng rãi ở các phòng gây mê Mỹ. Vài năm sau, SpO2 trở nên phổ biến khắp thế giới.