Giải pháp bảo mật hệ thống thư điện tử và Web
Trang 1CHƯƠNG TRÌNH KC 01 ĐỀ TÀI MÃ SỐ KC-01-14
~~~===e y~~~~-~~
TÊN ĐỀ TÀI:
TÀI LIỆU HƯỚNG DÃN SỬ DỤNG THIẾT BỊ CÀM TAY SPASURO
CAP QUANLY: Nhà nước
CƠ QUAN CHỦ TRÌ : Viện cơng nghệ thơng tin, Đại học Quốc gia Hà nội CƠ QUAN THỰC HIỆN:
- Viện công nghệ thông tin, Đại học Quốc gia Hà nội
~ Trung tâm Công nghệ Hội tụ Đa phương tiện
- Viện Khoa học Giáo dục, Bộ GD&ĐT
- Khoa Toán Tin, Đại học KHTN, Đại học Quốc gia Hà nội - Bộ môn Y học Hạt nhân, Đại học Y khoa Hà nội
- Viện da liễu trung ương - Công ty AMEC
CHỦ NHIỆM ĐỀ TÀI :_PGS TSKH Nguyễn Cát Hồ
NHÁNH ĐỀ TÀI Y TẾ: Nghiên cứu thiết kế và chế tạo thiết bị kiểu Palm Size computer PALMUSOR (simple PALMsize USer Oriented) phuc vu công tác y tế cộng đồng
CHỦ TRÌ ĐỀ TÀI NHÁNH: Trần Văn Liên
Trang 2TÀI LIỆU HƯỚNG DẪN SỬ DỤNG
THIET BI CAM TAY SPASURO
Cau trac SPASURO
Thiết bị cầm tay SPASURO có cấu trúc được mô tả trong hình 1 Đây là sơ đồ khối của ết bị cầm tay SPASURO phiên bản gần đây nhất
cấu trúc SPASURO bao gồm các bộ phận chính như sau : * Chuan:
- CPU CMOS ATMEGA128
- B6énhé FlashROM nhé chugng trình và dữ liệu 128 Kbyte
-_ Bộ nhớ SRAM 4Kbyte lưu trữ các biến phụ trong khi chạy chương trình
-_ Bộ nhớ EEPROM 4Kbyte lưu trữ dữ liệu, tham số khi tắt điện
- Nguén ác qui 3,6 V
-_ Màn hình LCD đơn sắc hoặc LCD màu (256 / 4096 mau)
- Cable kết nối với cổng COM RS232 hoặc LPT (cổng máy in) của máy PC
+ Option (theo dõi điện tim ECG 1 kênh : 3 đạo trình I, II, ill ) - Cable dién tim
- _ Điện cực điện tim
- _ Phần cứng ECG
- Phan mém ECG
Trang 3
ECG
Man hinh LCD
—>| don sic / mau
foo oe |
t—J Khuéch dai |
CPU hates ECG
i FLASHROM | SRAM mm EEPROM | re [r= ~100 240 V —| Acqui |#———————| Bộnap #® ———————
Hình 1 Sơ đồ khối của thiết bi cam tay SPASURO
Hướng dẫn sử dụng (phần cứng)
ân hành
him bam
Thiết bị cầm tay SPASURO có 3 phím bấm 1, 2, 3 theo thứ tự từ phải qua trái Chức ng cua mỗi phím này tuỳ thuộc vào phần mềm qui định dùng làm gì Thường phần lớn được
4Í định như sau phím 1 là phím trái (L), phím 2 là phím phải (R), phím 3 là phím chọn (E)
ơng tắc nguồn ,
Trang 4ni đó hãy gạt cơng tắc về vị trí OFF để khoảng 5s sau đó gạt công tắc nguồn trở lại vị trí ON
hi khơng dùng thiết bị hãy nhớ tắt nguồn
sp điện cho ác qui
Cắm giắc nạp điện của Adapter vào thiết bị, sau đó cắm Adapter vào ổ điện có điện áp ¡100V đến 240V xoay chiều Quá trình nạp điện có thể được tiến hành cả lúc bật và lúc tat
iết bị Để kéo dài tuổi thọ của ác qui thì phải thường xuyên nạp điện đầy cho nó Khi sử dụng ¬h tại ở nơi có điện nên nạp điện khi đang dùng Thời gian nạp phụ thuộc vào lượng điện còn
ong ác qui Trong trường hợp ác qui hết điện thì thời gian nạp tối thiểu là 6 giờ ải đặt và nâng cấp phần mềm
Khi cần cài đặt phần mềm mới hay nâng cấp phần mềm từ máy vi tính người sử dùng én trao đổi với chuyên gia lập trình nếu mới cài đặt lần đầu
Nối cáp nạp trình vào thiết bị và máy vi tính Có hai loại cáp nạp trình Cáp nối tiếp CS
ì cáp song song CP Cáp song song CP nạp trinh nhanh hơn nhưng cáp nối tiếp CS lại gọn
1ỏ hơn Nếu sử dụng cáp CS thì cắm vào cổng nối tiếp (COM) trên máy vi tính còn nếu dùng
ip CP thì nối vào cổng ra máy in
Có một số phần mềm quản lý việc nạp trình mỗi phần mềm đều có hướng dẫn chỉ tiết
ng Hãy đọc kỹ hưỡng dẫn trước khi thao tác nạp trình
Cài đặt phần mềm mới hay nâng cấp phần mềm đều xoá hay ghi đè lên phần mềm hiện trong thiết bị Vì thế hãy lưu lại phần mềm trong thiết bị đề phòng trường hợp phần mềm mới tông tương thích với thiết bị thì có thể khơi phục lại (nap lại) để dùng trong khi chờ khắc phục
Người sử dụng trong khi cài đặt hay nâng cấp tuyệt đối không được đặt lại cấu hình thiết
- một số phần mềm quản lý nạp trình cho phép đặt lại cấu hình) Việc đặt sai cấu hình có thể
m ngưng hoạt động của thiết bị Phần lớn các trường hợp phải tháo chip vi xử lý / vi điều
én để cài đặt lại cấu hình trên một thiết bị chuyên dựng, trong một số trường hợp có thể dẫn ấn hỏng chip
ảo quản
Không để thiết bị nơi ẩm ướt hay quá nóng Không để ánh nắng mặt trời chiếu trực tiếp
Trang 5›á chất như xăng, axeton Không để thiết bị gần những nơi có nguồn bức xạ mạnh như cạnh
àn hình TV, màn máy tính CRT, máy dao mổ điện, máy X quang, máy cộng hưởng từ MRI
Hướng dẫn lập trình ứng dụng (dùng cho chuyên gia lập trình)
Phần này hướng dẫn các thao tác lập trình cho thiết bị bằng ngôn ngữ C và C++ Nội ¡ng chính là cách sử dụng thư viện lcdgraph bao gồm các hàm điều khiển màn hình, và các ao tác như vẽ một điểm, vẽ đường, bật bít màu trên màn LCD, sử dụng phơng tiếng Việt,
tím bấm Trong hướng dẫn này không bao gồm hướng dẫn các thao tác và kỹ năng chung ong lập trình C và C++ và cũng không bao gồm hướng dẫn sử dụng trình biên dich cụ thể
30
Trình biên dịch dùng để phát triển các phần mềm ứng dụng cho SPASURO có khá tiểu Bất cứ phần mềm biên dịch nào cho Atmega128 đều có thể dùng được như C, C++, ascal, Basic, Assembler Có nhiều hãng cung cấp phần mềm biên dịch giá cả cũng hết sức
vác nhau Tuy nhiên những phần mềm ít tiền hoặc cho khơng rất hạn chế về debug, hạn chế
¡ hỗ trợ lập trình các thiết bị ngoại vi, hạn chế kích thước mã lệnh và nói chung hầu như
tông khai thác được vùng nhớ trên 64 K Byte Các phần mềm biên dịch với phiên bản chuyên
1hiệp của các hãng nổi tiếng như IAR, Keil thường đáp ứng được các hạn chế trên nhưng
a kha dat
Thư viện lcdgraph được thiết kế cho các phát triển ứng dụng của thiết bị SPASURO nó
ìo phép dùng các hàm trong các trình viết bằng ngôn ngữ C và C++ Vi thu viện dùng cho hệ
úng nên phải viết rất gọn để tiết kiệm bộ nhớ và có thể dùng chung cho cả C và C++ do đó
ản thân các hàm khơng viết theo hướng đối tượng
ác ham trong thư viện lcdgraph
THU VIEN HAM DIEU KHIEN MAN HINH VA PHIM BAM CHO :
CHUONG TRINH DIEU KHIEN MAN HINH TINH THE LONG LCD, BAN PHIM VA LOA (COI) CHO THIET BI CAM TAY SPASURO
CAU TRUC:
- CPU ATmegal28, 8 MHz, FLASH 128KB, RAM 4KB, EEPROM 4KB
Trang 6Phim bam : LB (trai), RB (phai), ENTER (giua), Du phong UP (len) va DN (xuong)
a
«, Loa dung loai nho
«Tac gia : Tran Van Lien (AMEC)
- Thoi gian : 8/2004 gindef LCDORAP HB_ ddefine LCDGRAP H_ 4ifdef cplusplus extern "C" { #endif difndef_ AVR_ATmegal28 #define AVR_ATmegal28 #endif Ụ ¡ #define _ MCU_CLOCK_FREQUENCY 2 3 #include <io.h> 4 #include <wdt.h> 5 dinclude <sleep.h> 6 #include <Interrupt.h> 7 #include <sig-avr.h> 8 #include <inttypes.h> 9 #include <avr/pgmspace.h> 0 | 2
3/Dinh nghia PHIM +#define KRIGHT 0x04 3 #define KENTER 0x02
4 Hdefine KLEFT 0x01
Trang 7a
/a few basic colors format 256 mau 8 bit: RRRGGGBB
tdefine RED 0x80
tdefine LIGHTRED 0xE0
tdefine GREEN 0x10
idefine LIGHTGREEN OxiC
idefine BLUE 0x02
idefine LIGHTBLUE 0x03
idefine YELLOW OxFC
tdefine MAGENTA 0x82
tdefine LIGHTMAGENTA 0xE3
‡define CYAN 0x12
tdefine LIGHTCYAN OxIF
define BLACK 0x00
#define GRAY 0x92
define WHITE OxFF
Trang 8) "0" (Svar) \
we
j#define pgm_get_far_address(var) GET_FAR_ADDRESS(var) 5 // Pins
3/CS -> PortB.6 ~SS (SPI) doi 8/7/05 PortB.0 7 {PIN cho Atmegal28
3 #define CS 6 /0 doi 8/7/05 PortB.0 (~SS)
3
J
| void Ied_init( void);
2 void Ied_clr_graph(void),
3 void LedSendCommand(unsigned char cmd);
+ void LedSendData(unsigned char data);
; -
6 void dlay(unsigned int n); 7 void beep (unsigned int lg); 8 unsigned char getkey(void);
9 void LedSetDrawRect(unsigned char startX, unsigned char endX,
0 unsigned char startY, unsigned char endY);
| void Ied_setpixel(unsigned char column, unsigned char row, unsigned char color); 2 void rectang(unsigned char x1, unsigned char yl, unsigned char x2, unsigned char y2,
3 unsigned char color);
4 void DrawLine(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char 85 y2, unsigned char color);
6 void DrawCircle(unsigned char xcen, unsigned char ycen, unsigned char rad,
7 unsigned char color);
8 void LedFillRect(unsigned char x, unsigned char y, unsigned char width, 9 unsigned char height, unsigned char color);
Trang 9I
1 #ifdef _—_cplusplus : 3}
4#endif
5 #endif
tải thích các khai báo hằng, biến và hàm của thư viện lcdrgaph
Dòng 1 đến 19 là khai báo cho trình dịch biết chịp là loại Atnega128, dao động 8 MHz
à các thư viện chuẩn dùng đến
Dòng 23 đến 26 là định nghĩa phím bấm, người lập trình có thể định nghiã lại cho phù
op với phần mềm định phát triển, thậm chí có thể đặt lại tên mới
Dòng 29 chú giải format 8 bít của biến màu cho LCD có dạng RRRGGGBB Ba bít cao
iểu diễn màu đỏ, ba bít tiếp theo biểu diễn màu lục, hai bịt thấp biểu diễn màu lam Như vậy iến màu có thể biểu diễn 256 màu Ngoài ra màu hiển thị trên LCD cịn có thể được đặt bằng
alet màu Bằng cách đặt palet màu LCD có thể hiển thị được tối đa là 4096 màu Để đặt palet
tàu phải can thiệp sâu hơn vào driver điều khiển LCD
Dòng 30 đến 43 là một số màu thường dùng được chọn từ 256 màu Trong quá trình
hát triển ứng dụng nếu cần có thể định nghĩa thêm các màu khác hoặc đặt lại các giá trị màu
ho các biến đã được định nghĩa -
Dòng 45 đến 47 là khai báo biến cho con trỏ xa truy cập vùng nhớ FLASH trên 64 K
‡yte Dòng 49 đến 62 là hàm lấy địa chỉ con trỏ xa 24/32 bit Hàm này được viết bằng hợp ngữ ưới dạng macro Dòng 64 định nghĩa lại hàm lấy con trỏ xa là pợm_get_far_address(var)
Những dòng tiếp theo khai báo chân CS của màn hình LCD nối với chân nào của
\tmega128 Do có hai phiên bản khác nhau nên thư viện cho phép thay đổi tuỳ biến cho thích
iợp với phần cứng khác nhau
Dòng 71 đến 90 là mô tả khai báo của các hàm trong thư viện và kiểu biến của các
‘am
Ham fcd_¡inif( ) khởi động CPU và màn hình LCD Hàm nay được triệu gọi trước khi thực
liện bất cứ thao tác nào trên LCD
Trang 10Hàm LcdSendCommand(unsigned char cmd) gửi lệnh đến LCD
Ham tcdSendData(unsigned char data) gửi dữ liệu đến LCD
Ham diay(unsigned int n) trễ n lần
Ham beep(unsigned int Ig) tạo tiếng bíp ra loa với độ dài Ig (nếu có gắn loa)
Hàm LcdSetDrawRect(unsigned char startX, unsigned char endx,
unsigned char startY, unsigned char endY) hàm này khởi tạo
not hình chữ nhật có toạ độ (startX, startY) và (endX, endY) chuẩn bị cho một thao tác trên
;ùng chữ nhật đó :
Ham icd_setpixei(unsigned char column, unsigned char row, unsigned char color) sham mat diém mau color lên màn hình LCD Toạ độ của điểm chấm là (colummn, row)
Hàm rectang(unsigned char x†f, unsigned char y1, unsigned char x2, unsigned char y2, ynsigned char color) vẽ một khung hình chữ nhật với toạ độ (xf,y7} và (x2,y2) màu là cokor
— Hàm DrawLine(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char
/2, unsigned char color) ham nay vé đường thẳng màu cofor từ điểm (x1,y1) dén điểm (x2,y2) Ham DrawCircle(unsigned char xcen, unsigned char ycen, unsigned char rad, unsigned
;har color) vẽ đường tròn màu color có tâm là (xcen, ycen) ban kinh la rad
Hàm LedFilffRect(unsigned char x, unsigned char y, unsigned char width, unsigned char
wight, unsigned char color) hầm tơ màu color hình chữ nhật có toạ độ góc trên bên trái (x,y) 6ng width cao height
Hàm LedDrawimg(unsigned char x, unsigned char y, unsigned long address) ham vé
inh với toạ độ bắt đầu là (x,y) Hình ảnh được lưu trong vùng nhớ có địa chỉ là address
›ài đặt thư viện ledgraph cho trình biên dịch
Thư viện cdgraph bao gồm Icdgraph.h và Icdgraph.a hoặc Icdgraph.o
8 cai đặt thu vién copy /edgraph.h vao thu muc /include, copy Icdgraph.a hoặc lcdgraph.o ‘ao thu muc /lib Ngoai ra tuy theo mét s6 trinh bién dich sé phai setup báo cho trình biên dịch
ty thư viện nào và ở đâu
'ont chữ Việt
Trang 11Font chit static unsigned char FLASH CharFontf] = { } dudc khai bao FLASH chỉ ra
¡ng bộ font nằm trong bộ nhớ.FLASH Font có thể được tạo ra bằng phương pháp thủ cơng ay dùng một trình tạo font nào đó để soạn thảo Day là bộ font chữ nhỏ kích thước mỗi ký tự
xõ pixel Néu cần, người lập trình có thể tạo ra các font chữ có kích thước lớn hơn cho dễ nhìn
en LCD
làm xuất ký tựra màn LCD lạm xuất ký tự :
yaphChar(unsigned char x, unsigned char y, unsigned char ch, unsigned char color)
unsigned char xi, yi;
for (yi = 0; yi < 8; ++yi) for (xi = 0; xi < 5; ++xi)
jf (pgm_read_byte (&CharFont[(ch*5+xi)]) & (1 << yi) )
lcd_setpixel(x + xi, y + yi, color);
Hàm xuất ký tu ch mau color trén man hinh LCD tai toa d6 (xy)
Trong hàm nay co st? dung ham (pgm_read_byte (&CharFont[(ch*5+xi)}) Ham nay doc
tử liệu font chữ từ bộ nhớ FLASH
làm xuất chuỗi ký tự :
2raphString(unsigned char x, unsigned char y, unsigned char “str,
unsigned char color)
Trang 12ơng tự như hàm xuất ký tự ra màn LCD, nhưng ở đây là xuất chuỗi kỹ tự Chuỗi ký tự này m trong RAM được định vị bởi con trỏ *str
aphStringF(unsigned char x, unsigned char y, PGM_P str,
unsigned char color)
unsigned char ch; ch = pgm_read_byte(str); while(ch) { GraphChar(x, y, (ch - 32), color); ++str; : ch = pgm_read_byte(str); x += 6; }
iy la ham xuat chudi ky tự giống ham GraphString nhung dinh vị chuỗi bằng con trổ str kiểu 3M_P là kiểu con trỏ chỉ đến vùng nhớ FLASH
ich khai báo hằng biến trong FLASH và dùng hàm GraphStringF lsigned char FLASH chuoij] = "Hello !;
‘aphStringF(17,26, chuoi, BLUE);
im xuat anh ra man LCD
Cách khai báo hằng biến trong FLASH và dùng hàm về ảnh ¡cdDrawlmg truy cập vào ing nhé xa (trén 64 K Byte)
Trang 13zlude <inttypes.h>
zlude <stdio.h> :
clude <avr/io.h>
clude <avr/pgmspace.h>
tic unsigned char FLASH hinh_anh [J={ };
main(void){ signed long add;
_ink0; _clr_graph(); 1=pgm_get_far_address(hinh_anh); 1Drawlmg(0,0,add); ile(1); ym (0);
Trong ví dụ trên sau khi LcdDrawimg(0,0,add) xuất ảnh ra man LCD thi while(1) tao ra
1g lặp vô tận cho phép xem ảnh đến khi tắt thiết bị Dòng lệnh retern (0) để trình dịch khơng 3 lỗi
Hướng dẫn sử dụng theo dai nhip tim (option)
Chỉ những thiết bị SPASRO có phần cứng hỗ trợ theo dõi điện tìm ECG mới có chức
ng này
Đây là chức năng mở rộng ngoài khuôn khổ của đề tải
ï đặt phần mềm theo dõi điện tim
Chuẩn bị cable nạp trình và phần mềm theo dõi ECG Tiến hành nạp trình vào thiết bị
ư các phần mềm khác
"dụng SPASURO trong theo dõi nhịp tim
Sau khi nạp trình phần mềm theo dõi nhịp tim thì thiết bị đã sẵn sàng cho sử dụng
Trang 14:® den
Hình 4 cách mắc điện cực trên ngực để theo dõi đạo trình V5 của ECG
Trang 15Nối cabie điện tim vào thiết bị Cable điện tim được lắp vào đầu nối nạp trình Đây [a jac ám 10 chân Một số chân jắo dùng cho nạp trình Ba chân jắc dùng cho theo đõi điện tim
:(6
Gắn điện cực lên bệnh nhân theo qui định
Cable dién tim có ba dây màu đỏ, vàng và đen Để theo dõi sóng điện tim đạo trinh | thi jay dO ndi với điện cực bên phải, dây vàng nối với điện cực bên trái dây đen còn lại nối với ấên cực phía chân phải Hình1 Điện cực đen là điện cực đất nên có thể gắn vào bất kỳ vùng
go trên cơ thể người sao cho nhiễu ít nhất Thường để theo dõi ECG người ta hay gắn các
fen cực trên ngực và hai đạo trình hay được dùng nhất la ll va V5 vì biện độ lớn và ít nhiễu
nh 3 và Hình 4
Bật công tắc nguồn để thiết bị hoạt động
Các hướng dẫn khác có trong phần mềm 7s | " ae ⁄À - AX Kye — BY NL ‘a R L Rr/À \F + là
Hình 2 cách mắc điện cực trên chi để theo dõi các đạo trình I,II,lII của EŒG
den | of? a f vang
Hình 3 cách mắc điện cực trên ngực để theo đõi đạo trình II của ECG