Giúp sinh viên củng cố các kiến thức về thiết kế và lập trình cho hệ vi điều khiển (trên
nền PIC) đồng thời tiếp cận với một môi trường thiết kế tích hợp chuyên nghiệp là
phần mềm PIC C Compile và phần mềm mô phỏng Proteus.
- Lập trình đọc 8 kênh dữ liệu ADC, hiển thị kết quả lên LCD
- Giúp Sinh viên chuyển đổi tư duy từ kiến thức lý thuyết đến tiếp cận với kiến thức
thực tế.
- Giúp cho SV hiểu rõ được thực hành là một bộ phận công việc của người làm công
tác khoa học kỹ thuật.
49 trang |
Chia sẻ: longpd | Lượt xem: 3251 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Thực hành hệ thống nhúng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
---------- oOo ----------
TÀI LIỆU THỰC HÀNH
HỌC PHẦN: THỰC HÀNH HỆ THỐNG NHÚNG
BỘ MÔN: KỸ THUẬT MÁY TÍNH
THÁI NGUYÊN, 2011
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
2
Biên soạn:
ThS Nguyễn Tuấn Anh
ThS Nguyễn Tuấn Linh
ThS Nguyễn V ăn Huy
TÀI LIỆU THỰC HÀNH
HỌC PHẦN: THỰC HÀNH CHUYÊN NGÀNH
ĐIỆN - ĐIỆN TỬ - SPKT
MÃ SỐ HỌC PHẦN:
SỐ TÍN CHỈ:
Trưởng BM Kỹ thuật máy tính
ThS. Nguyễn Tuấn Linh
Trưởng khoa Điện tử
TS. Nguyễn Duy Cương
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
3
MỤC LỤC
BÀI 1. CHUYỂN ĐỔI TÍN HIỆU TƯƠNG TỰ SANG SỐ ........................................... 5
Phần I. THỰC HÀNH ..................................................................................................... 6
1.1. Mục đích thực hành: ............................................................................................. 6
1.2. Cơ sở lý thuyết: .................................................................................................... 6
1.3. Thực hành: ........................................................................................................... 7
1.3.1. Nội quy an toàn thực hành: ........................................................................ 7
1.3.2. Nội dung bài thực hành: ............................................................................. 7
1.3.3. Phương pháp và cách thức thực hành: ........................................................ 7
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 10
1.5. Chuẩn bị của sinh viên: ...................................................................................... 10
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 10
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 10
BÀI 2. ĐIỀU KHIỂN ĐỘNG CƠ DC SỬ DỤNG PWM .............................................. 11
Phần I. THỰC HÀNH ................................................................................................... 12
1.1. Mục đích thực hành: ........................................................................................... 12
1.2. Cơ sở lý thuyết: .................................................................................................. 12
1.3. Thực hành: ......................................................................................................... 13
1.3.1. Nội quy an toàn thực hành: ...................................................................... 13
1.3.2. Nội dung bài thực hành: ........................................................................... 13
1.3.3. Phương pháp và cách thức thực hành: ...................................................... 13
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 15
1.5. Chuẩn bị của sinh viên: ...................................................................................... 15
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 15
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 16
BÀI 3. QUANG BÁO SỬ DỤNG LED MATRẬN 8X8 .............................................. 17
Phần I. THỰC HÀNH ................................................................................................... 18
1.1. Mục đích thực hành: ........................................................................................... 18
1.2. Cơ sở lý thuyết: .................................................................................................. 18
1.3. Thực hành: ......................................................................................................... 18
1.3.1. Nội quy an toàn thực hành: ...................................................................... 18
1.3.2. Nội dung bài thực hành: ........................................................................... 19
1.3.3. Phương pháp và cách thức thực hành: ...................................................... 19
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 21
1.5. Chuẩn bị của sinh viên: ...................................................................................... 21
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 21
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 21
BÀI 4. XỬ LÝ NGẮT VÀ GIAO TIẾP BÀN PHÍM .................................................... 22
Phần I. THỰC HÀNH ................................................................................................... 23
1.1. Mục đích thực hành: ........................................................................................... 23
1.2. Cơ sở lý thuyết: .................................................................................................. 23
1.3. Thực hành: ......................................................................................................... 24
1.3.1. Nội quy an toàn thực hành: ...................................................................... 24
1.3.2. Nội dung bài thực hành: ........................................................................... 24
1.3.3. Phương pháp và cách thức thực hành: ...................................................... 24
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 26
1.5. Chuẩn bị của sinh viên: ...................................................................................... 26
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 26
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 26
BÀI 5. TRUYỀN THÔNG VỚI PC QUA CỔNG USB ................................................ 27
Phần I. THỰC HÀNH ................................................................................................... 28
1.1. Mục đích thực hành: ........................................................................................... 28
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
4
1.2. Cơ sở lý thuyết: .................................................................................................. 28
1.3. Thực hành: ......................................................................................................... 28
1.3.1. Nội quy an toàn thực hành: ...................................................................... 28
1.3.2. Nội dung bài thực hành: ........................................................................... 29
1.3.3. Phương pháp và cách thức thực hành: ...................................................... 29
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 34
1.5. Chuẩn bị của sinh viên: ...................................................................................... 34
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 35
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 35
BÀI 6. ĐỌC DỮ LIỆU TRONG THẺ NHỚ SD/MMC ................................................ 36
Phần I. THỰC HÀNH ................................................................................................... 37
1.1. Mục đích thực hành: ........................................................................................... 37
1.2. Cơ sở lý thuyết: .................................................................................................. 37
1.3. Thực hành: ......................................................................................................... 37
1.3.1. Nội quy an toàn thực hành: ...................................................................... 37
1.3.2. Nội dung bài thực hành: ........................................................................... 38
1.3.3. Phương pháp và cách thức thực hành: ...................................................... 38
1.4. Ghi chép số liệu, kết quả thực hành .................................................................... 47
1.5. Chuẩn bị của sinh viên: ...................................................................................... 47
Phần II. VIẾT BÁO CÁO THỰC HÀNH...................................................................... 48
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH ..................................... 48
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
5
Biên soạn: Th.S Nguyễn Tuấn Anh
QUY TRÌNH THỰC HIỆN BÀI THỰC HÀNH
MÔN HỆ THỐNG NHÚNG
BÀI 1.
CHUYỂN ĐỔI TÍN HIỆU TƯƠNG TỰ SANG SỐ
CHƯƠNG TRÌNH ĐÀO TẠO ĐẠI HỌC THEO HỆ THỐNG TÍN CHỈ
(HỆ 150 TC)
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
6
Phần I. THỰC HÀNH
1.1. Mục đích thực hành:
- Giúp sinh viên củng cố các kiến thức về thiết kế và lập trình cho hệ vi điều khiển (trên
nền PIC) đồng thời tiếp cận với một môi trường thiết kế tích hợp chuyên nghiệp là
phần mềm PIC C Compile và phần mềm mô phỏng Proteus.
- Lập trình đọc 8 kênh dữ liệu ADC, hiển thị kết quả lên LCD
- Giúp Sinh viên chuyển đổi tư duy từ kiến thức lý thuyết đến tiếp cận với kiến thức
thực tế.
- Giúp cho SV hiểu rõ được thực hành là một bộ phận công việc của người làm công
tác khoa học kỹ thuật.
1.2. Cơ sở lý thuyết:
Hệ thống nhúng là một hệ thống tích hợp cả phần cứng và phần mềm nhúng. Phần
cứng là hệ thống vi điều khiển PIC và thiết bị ngoại vi. Phần mềm nhúng dùng ngôn ngữ C,
biên dịch trên nền PIC C compile.
Trong bài này, chúng ta thiết kế phần mềm nhúng, dựa trên nền phần cứng nhúng đã
có, theo sơ đồ khối sau đây:
Trong đó:
Hiển thị trạng thái là một module LCD16x2, dùng để hiển thị tất cả trạng thái
của hệ thống
Cảm biến là bộ phận cảm biến nhiệt từ môi trường ngoài, chuyển thành tín
hiệu điện áp đưa về bộ điều khiển trung tâm.
Bộ điều khiển trung tâm, là phần quan trọng nhất của hệ thống; là nơi phần
mềm nhúng vào, thể hiện thuật toán của chúng ta.
Để thực hiện tốt bài thực hành, chúng ta cần chuẩn bị trước các kiến thức cơ bản sau
đây:
Cấu trúc máy tính nhúng, vi điều khiển, mạch logic cơ bản, mạch khuếch đại,
mạch lọc, LCD, cảm biến, ADC,...
Ngôn ngữ lập trình C cho PIC (CCS C). Các kiến thức về tập lệnh, cấu trúc rẽ
nhánh, vòng lặp, khai báo chương trình con, biến, hằng, mảng,...
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
7
1.3. Thực hành:
1.3.1. Nội quy an toàn thực hành:
- Người thực hiện thực hành kể cả Hướng dẫn viên và sinh viên đề phải nắm
vững các nội quy an toàn do phòng thực hành quy định, thông qua việc học nội
quy có kiểm tra sát hạch.
- Các thiết bị thực hành chịu sự kiểm soát an toàn theo phân cấp của nhà
nước phải đảm bảo có đầy đủ biên bản kiểm định an toàn của cấp có thẩm quyền.
Ví dụ: Thiết bị điện cao thế (trên 1 kV), các thiết bị áp lực, chất hóa học đặc biệt...
1.3.2. Nội dung bài thực hành:
- Làm quen phần mềm PIC C Compile, Proteus
- Thiết kế phần cứng hệ thống nhúng trên Proteus, đáp ứng bài toán Giao tiếp thiết bị
ngoại vi cơ bản: LCD, mạch tương tự (lấy tín hiệu ADC).
- Tạo một project mới trên CCS
- Lập trình phần mềm nhúng, đáp ứng được bài toán.
- Nạp vào mạch thật
- Kiểm tra hoạt động và đánh giá kết quả
1.3.3. Phương pháp và cách thức thực hành:
1. Giới thiệu thiết bị và dụng cụ thực hành
2. Phân nhóm thực hành
3. Sơ đồ hay cách thức tiến hành TN
Thiết kế phần cứng hệ thống nhúng trên môi trường mô phỏng Proteus:
27.0
3
1
VOUT
2
U1
LM35
3
2
1
4
1
1
U2:A
LM324
R1
100k
R2
10k
+5v
R3
10k
ADC0
ADC0
MCLR/VPP
1
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-
4
RA3/AN3/VREF+
5
RA4/T0CKI
6
RA5/AN4/SS/LVDIN
7
RE0/RD/AN5
8
RE1/WR/AN6
9
RE2/CS/AN7
10
OSC1/CLKI
13
RA6/OSC2/CLKO
14
RC0/T1OSO/T1CKI
15
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RD2/PSP2
21
RD3/PSP3
22
RD4/PSP4
27
RD5/PSP5
28
RD6/PSP6
29
RD7/PSP7
30
RC4/SDI/SDA
23
RC5/SDO
24
RC6/TX/CK
25
RC7/RX/DT
26
RB0/INT0
33
RB1/INT1
34
RB2/INT2
35
RB3/CCP2B
36
RB4
37
RB5/PGM
38
RB6/PGC
39
RB7/PGD
40
RC1/T1OSI/CCP2A
16
U3
PIC18F452
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
LCD1
LM016L
R4
10k
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7
ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7
Hình 1. Phần cứng hệ thống nhúng.
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
8
4. Trình tự tiến hành thực hành
Lựa chọn các linh kiện từ panel Libraries và đưa vào sơ đồ theo bảng sau:
Ký hiệu Tên linh kiện Giải thích Số lượng
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RE0/AN5/RD
8
RE1/AN6/WR
9
RE2/AN7/CS
10
OSC1/CLKIN
13
OSC2/CLKOUT
14
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RB7/PGD
40
RB6/PGC
39
RB5
38
RB4
37
RB3/PGM
36
RB2
35
RB1
34
RB0/INT
33
RD7/PSP7
30
RD6/PSP6
29
RD5/PSP5
28
RD4/PSP4
27
RD3/PSP3
22
RD2/PSP2
21
RC7/RX/DT
26
RC6/TX/CK
25
RC5/SDO
24
RC4/SDI/SDA
23
RA3/AN3/VREF+
5
RC0/T1OSO/T1CKI
15
MCLR/Vpp/THV
1
U1
PIC16F877A
PIC16F877A Vi điều khiển 1
D
7
1
4
D
6
1
3
D
5
1
2
D
4
1
1
D
3
1
0
D
2
9
D
1
8
D
0
7
E
6
R
W
5
R
S
4
V
S
S
1
V
D
D
2
V
E
E
3
LM016L
Màn hình hiển
thị trạng thái hệ
thống
1
27.0
3
1
VOUT
2
U1
LM35
LM35 Cảm biến nhiệt 1
Thiết kế mạch như hình ở “Hình 1.”.
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
9
5. Tạo Dự án nhúng:
o Viết mã nguồn như sau:
#include "ADC_LCD_Moto control.h"
#define use_portb_lcd TRUE
#include
#define Forward_pin PIN_D0
#define Backward PIN_D1
void main()
{
int16 AD;
int8 k;
const int16 Tmax=1024;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
set_tris_d(0);output_d(0);
while(1){
for(k=0;k<8;k++){
set_adc_channel(k);
AD=read_adc();//0..1023
lcd_gotoxy(1,1); printf(LCD_PUTC, "ADC%u=%4lu",k,AD);
lcd_gotoxy(1,2);
printf(LCD_PUTC, "Volt=%5.2f",(float)AD/205);
delay_ms(5000);
}
}
}
Nạp vào Mạch mô phỏng, kiểm tra kết quả.
Nạp vào mạch thật, kiểm chứng kết quả có trùng khớp với mình mong
muốn hay không.
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
10
1.4. Ghi chép số liệu, kết quả thực hành
1.5. Chuẩn bị của sinh viên:
- Đọc và nghiên cứu bài thực hành
- Đọc và nghiên cứu lý thuyết có liên quan đến nội dung bài thực hành
- Chuẩn bị các vật dụng, giấy vở ghi chép số liệu thực hành
- Mạch máy tính nhúng, phần lập trình nhúng.
- Sự chuẩn bị của sinh viên phải được thông qua kiểm tra của người hướng dẫn
thực hành. Nếu không đạt, sẽ không được tham gia thực hành và có được thực
hành tiếp vào buổi khác hay không sẽ do Bộ môn và Ban chủ nhiệm khoa giải
quyết.
Phần II. VIẾT BÁO CÁO THỰC HÀNH
2.1. Quy định chung:
Báo cáo thực hành được viết một mặt trên khổ giấy A4, đóng quyển, bìa
mềm (theo mẫu .........). Mỗi sinh viên có một quyển báo cáo riêng.
2.2. Nội dung báo cáo:
2.2.1. Cơ sở lý thuyết
Phân tích cơ sở lý thuyết như mục 1.2.
2.2.2. Báo cáo kết quả thực hành
- Tổng hợp những kết quả chính cho nội dung báo cáo
- Phân tích sơ đồ nguyên lý, mã lệnh
- Lập bảng trạng thái đầu vào, đầu ra (nếu có)
- Nhận xét kết quả:
+ Các kết quả thu được từ thực hành
+ So sánh kết quả thực hành với lý thuyết
+ Mức độ kết quả đạt được so với yêu cầu đề ra
+ Đánh giá các sai số của dụng cụ, thiết bị thực hành, người thao tác...
- Kiến nghị.
Phần III. ĐÁNH GIÁ CHẤM ĐIỂM, BẢO VỆ THỰC HÀNH
Bộ môn hay tập thể hướng dẫn thực hành tổ chức đánh giá điểm thực hành
thông qua lựa chọn một trong những hình thức sau:
- Chấm điểm dựa trên nội dung bản báo cáo thực hành của từng sinh viên
- Chấm điểm theo hình thức bảo vệ vấn đáp.
Điểm thực hành của sinh viên được tổng hợp theo lớp có chữ ký xác nhận Trưởng bộ
môn chuyên môn.
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
THIẾT KẾ HỆ THỐNG NHÚNG TRÊN NỀN FPGA
11
Biên soạn: Th.S Nguyễn Tuấn Anh
QUY TRÌNH THỰC HIỆN BÀI THỰC HÀNH
MÔN HỆ THỐNG NHÚNG
BÀI 2.
ĐIỀU KHIỂN ĐỘNG CƠ DC SỬ DỤNG PWM
CHƯƠNG TRÌNH ĐÀO TẠO ĐẠI HỌC THEO HỆ THỐNG TÍN CHỈ
(HỆ 150 TC)
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
THIẾT KẾ HỆ THỐNG NHÚNG TRÊN NỀN FPGA
12
Phần I. THỰC HÀNH
1.1. Mục đích thực hành:
- Giúp sinh viên củng cố các kiến thức về thiết kế và lập trình cho hệ vi điều khiển (trên nền
PIC) đồng thời tiếp cận với một môi trường thiết kế tích hợp chuyên nghiệp là phần mềm
PIC C Compile và phần mềm mô phỏng Proteus.
- Lập trình điều khiển tốc độ động cơ theo phương pháp PWM, đọc dữ liệu phản hổi từ
động cơ, hiển thị kết quả lên LCD
- Giúp Sinh viên chuyển đổi tư duy từ kiến thức lý thuyết đến tiếp cận với kiến thức thực tế.
- Giúp cho SV hiểu rõ được thực hành là một bộ phận công việc của người làm công tác
khoa học kỹ thuật.
1.2. Cơ sở lý thuyết:
Hệ thống nhúng là một hệ thống tích hợp cả phần cứng và phần mềm nhúng. Phần cứng là
hệ thống vi điều khiển PIC và thiết bị ngoại vi. Phần mềm nhúng dùng ngôn ngữ C, biên dịch
trên nền PIC C compile.
Trong bài này, chúng ta thiết kế phần mềm nhúng, dựa trên nền phần cứng nhúng đã có,
theo sơ đồ khối sau đây:
Trong đó:
Hiển thị trạng thái là một module LCD16x2, dùng để hiển thị tất cả trạng thái của
hệ thống
Cảm biến là bộ phận cảm biến nhiệt từ môi trường ngoài, chuyển thành tín hiệu
điện áp đưa về bộ điều khiển trung tâm.
Bộ điều khiển trung tâm, là phần quan trọng nhất của hệ thống; là nơi phần mềm
nhúng vào, thể hiện thuật toán của chúng ta.
Để thực hiện tốt bài thực hành, chúng ta cần chuẩn bị trước các kiến thức cơ bản sau đây:
Cấu trúc máy tính nhúng, vi điều khiển, mạch logic cơ bản, mạch khuếch đại,
mạch lọc, LCD, cảm biến, ADC,...
Ngôn ngữ lập trình C cho PIC (CCS C). Các kiến thức về tập lệnh, cấu trúc rẽ
nhánh, vòng lặp, khai báo chương trình con, biến, hằng, mảng,...
Bộ môn Kỹ thuật Máy tính, Khoa Điện Tử
THIẾT KẾ HỆ THỐNG NHÚNG TRÊN NỀN FPGA
13
1.3. Thực hành:
1.3.1. Nội quy an toàn thực hành:
- Người thực hiện thực hành kể cả Hướng dẫn viên và sinh viên đề phải nắm
vững các nội quy an toàn do phòng thực hành quy định, thông qua việc học nội quy có
kiểm tra sát hạch.
- Các thiết bị thực hành chịu sự kiểm soát an toàn theo phân cấp của nhà nước
phải đảm bảo có đầy đủ biên bản kiểm định an toàn của cấp có thẩm quyền. Ví dụ:
Thiết bị điện cao thế (trên 1 kV), các thiết bị áp lực, chất hóa học đặc biệt...
1.3.2. Nội dung bài thực hành:
- Làm quen phần mềm PIC C Compile, Proteus
- Thiết kế phần cứng hệ thống nhúng trên Proteus, đáp ứng bài toán Giao tiếp thiết bị ngoại
vi cơ bản: LCD, mạch tương tự (lấy tín hiệu ADC).
- Tạo một project mới trên CCS
- Lập trình phần mềm nhúng, đáp ứng được bài toán.
- Nạp vào mạch thật
- Kiểm tra hoạt động và đánh giá kết quả
1.3.3. Phương pháp và cách thức thực hành:
1. Giới thiệu thiết bị và dụng cụ thực hành
2. Phân nhóm thực hành
3. Sơ đồ hay cách thức tiến hành TN
Thiết kế phần cứng hệ thống nhúng trên môi trường mô phỏng Proteus:
M+
R4
1k
+88.8
Q1
TIP31
Q2
TIP32
Q3
2SC2547
Q4
2SC2547
Q5
TIP31
Q6
TIP32
Q7
2SC2547
Q8
2SC2547
R1
1k
R2
1k
R3
1k
+12V
VCC
R6
10K
R8
10K
INC DEC KB1
KB2
KB1 KB2
A
B
C
D
PWM
DIR
M+
MCLR/VPP
1
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-
4
RA3/AN3/VREF+
5
RA4/T0CK