Thiết kế hệ thống KIT DE2 của Altera

43 1.4K 29
Thiết kế hệ thống KIT DE2 của Altera

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Thiết kế hệ thống KIT DE2 của Altera

Chương 4: Sơ lược hệ thống Trang 33 PHẦN II: THIẾT KẾ HỆ THỐNG CHƯƠNG 4: SƠ LƯC HỆ THỐNG 4.1. YÊU CẦU  Tìm hiểu về các giải thuật xử lý ảnh.  Ứng dụng giải thuật xử lý ảnh video vào phần cứng, cụ thể là mô tả phần cứng thực hiện giải thuật bằng ngôn ngữ Verilog HDL.  Ứng dụng FPGAs để kiểm tra kết quả, đồng thời so sánh với kết quả với hình ảnh video ban đầu. 4.2 NỘI DUNG THỰC HIỆN  Lấy nguồn tín hiệu video từ DVD ( VCD ) Player đưa vào kit DE2 của Altera qua cổng TV-IN.  Sử dụng phần mềm Quartus II của Altera để viết chương trình bằng ngôn ngữ Verilog HDL và giao tiếp với kit DE2.  Thiết kế khối lọc trung bình và dò biên cho ảnh ngõ ra bằng Verilog HDL.  Giao tiếp với ADV7181B, VGA, SDRAM trên kit DE2.  Hiển thò kết quả lên Monitor và so sánh với tín hiệu gốc Chương 4: Sơ lược hệ thống Trang 34 4.3 SƠ ĐỒ THIẾT KẾ VÀ NGUYÊN LÝ HOẠT ĐỘNG 4.3.1 SƠ ĐỒ THIẾT KẾ Hình 4.1: Sơ đồ hệ thống 4.3.2 NGUYÊN LÝ HOẠT ĐỘNG  Khối I2C_Video_Config: với giao thức giao tiếp I2C sẽ đặt giá trò cho các thanh ghi của bộ mã hóa ADV7181 để cấu hình hoạt động cho chip mã hóa này.  Khối Timer trì hỗn ban đầu: Sau chuỗi khới động, ADV7181B rơi vào thời kì không ổn đònh, khối sẽ phát hiện thời kì không ổn đònh này rôiø tính toán thời điểm bắt đầu làm việc của các khối khác.  Khối Desize_Horizon: Lấy ra chuỗi liên tục các Pixel trong dòng dữ liệu do ADV7181B xuất ra đồng thời đònh lại kích thước frame ảnh từ dạng 720 x 480 sang chuẩn VGA 640 x480. Chương 4: Sơ lược hệ thống Trang 35  SDRAM BUFFER: Nhận dữ liệu và tín hiệu điều khiển ghi từ khối Desize Horizon để ghi giá trò các Pixel vào SDRAM, đồng thời cũùng nhận tín hiệu từ VGA controller để điều khiển việc xuất dữ liệu, đòa chỉ phù hợp (xuất xen kẽ các line thuộc Odd field và Even fieldû)  Khối xử lý ảnh YUV: Xử lý dữ liệu ảnh nhận được từ SDRAM BUFFER rồi xuất ra dữ liệu ảnh cho khối Convert YUV to RGB  Khối ConvertYUVtoRGB: ADV7181B xuất ra ảnh video dạng YUV, để có thể hiển thò lên VGA thì trước tiên chuyển đổi thành dạng RGB.  Khối VGA_Controller: Nhận dữ liệu ảnh RGB từ khối ConvertYUVtoRGB để xuất dữ liệu và tín hiệu đồng bộ cho Video DAC 7123, đồng thời cũng phát ra các tín hiệu điều khiển SDRAM_BUFFER để xuất dữ liệu từ SDRAM. Chương 5: Khối I2C_Video_Config Trang 36 PHẦN III: NỘI DUNG THIẾT KẾ CHƯƠNG 5: Khối I2C_VIDEO_CONFIG 5.1 SƠ ĐỒ KHỐI Hình 5.1: Sơ đồ khối I2C_Video_Config Tên Mô tả ICLK Xung Clock 50MHz từ Kit DE2 RESET Tín hiệu Reset hệ thống I2C_SCLK Ngõ ra chứa xung Clock cung cấp cho ADV7181B I2C_DATA Port 2 chiều để cấu hình giá trò các thanh ghi của ADV7181B Hình 5.2: Dạng sóng để truyền dữ liệu và cấu trúc ghi với giao thức I2C Chương 5: Khối I2C_Video_Config Trang 37 5.2 LƯU ĐỒ GIẢI THUẬT: 5.3 MÔ TẢ Vai trò của khối chỉ là ghi giá trò vào các thanh ghi của ADV7181B nên có thể chọn xung clock làm việc của khối là 20KHz nhờ vào bộ chia tần từ tần số 50MHz. Đòa chỉ Slaver của ADV7181B là 40h nên ta sử dụng cách gán mI2C_DATA <= {8’h40, LUT_DATA}. Với mI2C_DATA là chuỗi dữ liệu cần truyền trên Bus và LUT_DATA chứa đòa chỉ của thanh ghi và giá trò cần nạp. Khi reset, bắt đầu cấu hình lại cho ADV7181B bằng cách xóa giá trò các bộ đếm và cờ. Sau đó để nạp giá trò cho các thanh ghi ta sử dụng máy trạng thái sau: Chương 5: Khối I2C_Video_Config Trang 38 always@(posedge mI2C_CTRL_CLK or negedge iRST_N) begin if(!iRST_N) begin LUT_INDEX <= 0; mSetup_ST <= 0; mI2C_GO <= 0; end else begin if(LUT_INDEX < LUT_SIZE) //LUT_SIZE làsố lần nạp giá trò cho các thanh ghi cần thiết vàLUT_INDEX //là biến đếm để ánh xạ đến đòa chỉ của các thanh ghi và giá trò cần nạp. begin case(mSetup_ST) 0: begin // Nhập chuỗi dữ liệu cần truyền để đặt giá trò cho các thanh ghi mI2C_DATA <= {8'h40,LUT_DATA}; mI2C_GO <= 1; mSetup_ST <= 1; end 1: begin if(mI2C_END) // mI2C_END là cờ báo khi truyền hết chuỗi dữ liệu Begin //Có xác nhận ACK là đã nạp xong giá trò cho 1 thanh ghi từ ADV thì nhảy tới trạng thái 2 if(!mI2C_ACK) mSetup_ST <= 2; //Không có xác nhận thì nhảy về trạng thái 0 else mSetup_ST <= 0; mI2C_GO <= 0; end end 2: begin Chương 5: Khối I2C_Video_Config Trang 39 // Tăng LUT_INDEX lên 1 để nhảy đến thanh ghi mới rồi quay về trạng thái 0 LUT_INDEX <= LUT_INDEX+1; mSetup_ST <= 0; end endcase end end end Ta chỉ cần đặt giá trò cho một số thanh ghi cần thiết nên không thực hiện việc tăng dần đòa chỉ thanh ghi mà sẽ ánh xạ từ LUX_INDEX đến LUX_DATA nhờ vào lệnh case, chẳng hạn như khi LUX_INDEX =27 để nạp giá trò 8’h50 vào thanh ghi có đòa chỉ 8’h00 ta có cấu trúc: case(LUX_INDEX): 27: LUT_DATA <= 16'h0050; Để ADV7181B có thể phát hiện chuẩn video NTSC thì ta sẽ nạp các giá trò cho các thanh ghi theo bảng giá trò cài đặt ở phần mô tả ADV7181B . Tuy nhiên khi truyền chuỗi này trên bus ta cần phải thêm các bit đồng bộ: 1 bit cho trạng thái IDE, 2 bit để thiết lập cờ START, 3 bit để chờ 3 ACK do ADV xác nhận, 3 bit để thiết lập cờ STOP và báo kết thúc chuỗi, vì vậy thực sự chuỗi dài 33 bit: case (SD_COUNTER) 6'd0 : begin ACK1=0 ;ACK2=0 ;ACK3=0 ; END=0; SDO=1; SCLK=1;end //Thiết lập cờ START 6'd1 : begin SD=I2C_DATA;SDO=0;end 6'd2 : SCLK=0; //Đòa chỉ SLAVER của ADV7181B 6'd3 : SDO=SD[23]; 6'd4 : SDO=SD[22]; 6'd5 : SDO=SD[21]; 6'd6 : SDO=SD[20]; 6'd7 : SDO=SD[19]; 6'd8 : SDO=SD[18]; Chương 5: Khối I2C_Video_Config Trang 40 6'd9 : SDO=SD[17]; 6'd10 : SDO=SD[16]; //Thả nổi đường truyền để nhập ACK từ ADV7181B qua Port 2 chiều I2C_DATA 6'd11 : SDO=1'bz; //Đòa chỉ thanh ghi cần nạp 6'd12 : begin SDO=SD[15]; ACK1=I2C_SDAT; end 6'd13 : SDO=SD[14]; 6'd14 : SDO=SD[13]; 6'd15 : SDO=SD[12]; 6'd16 : SDO=SD[11]; 6'd17 : SDO=SD[10]; 6'd18 : SDO=SD[9]; 6'd19 : SDO=SD[8]; // Thả nổi đường truyền nhập để ACK từ ADV7181B qua Port 2 chiều I2C_DATA 6'd20 : SDO=1'bz; //Giá trò cần ghi vào thanh ghi 6'd21 : begin SDO=SD[7]; ACK2=I2C_SDAT; end 6'd22 : SDO=SD[6]; 6'd23 : SDO=SD[5]; 6'd24 : SDO=SD[4]; 6'd25 : SDO=SD[3]; 6'd26 : SDO=SD[2]; 6'd27 : SDO=SD[1]; 6'd28 : SDO=SD[0]; // Thả nổi đường truyền nhập ACK từ ADV7181B qua Port 2 chiều I2C_DATA 6'd29 : SDO=1'bz; //Thiết lập cờ STOP và báo kết thúc chuỗi 6'd30 : begin SDO=1'b0; SCLK=1'b0; ACK3=I2C_SDAT; end 6'd31 : SCLK=1'b1; 6'd32 : begin SDO=1'b1; END=1; end endcase Trong đó SD_COUNTER thực hiện đếm từ 0 -> 63, như vậy việc nạp cho một thanh ghi chỉ thực hiện trong 33 chu kỳ đầu còn 30 chu kỳ sau thì Bus ở trạng thái IDE (SCLK = Chương 5: Khối I2C_Video_Config Trang 41 1 và SDO = 1) để chờ chu kỳ ghi tiếp theo. Đồng thời để đảm bảo được yêu cầu về dạng sóng trên chân I2C_SCLK và xác nhận (ACK) đã nạp xong thanh ghi, ta thực hiện: wire I2C_SCLK = SCLK | ( ( (SD_COUNTER >= 4) & (SD_COUNTER <=30) )? ~CLOCK : 0 ); wire ACK=ACK1 | ACK2 |ACK3; // khi xét xác nhận đã nạp xong thanh ghi ta sử dụng giá trò bù của ACK(tích cự mức thấp), chỉ xác nhận khi có đủ 3 xác nhận ACK1, ACK2, ACK3 Và dạng sóng thu được trên chân I2C_SCLK như sau (END từ 0 lên 1 chỉ ra rằng đã nạp xong giá trò cho một thanh ghi): Hình 5.3: Dạng sóng mô phỏng trên chân I2C_SCLK Chương 6: Khối Timer trì hoãn ban đầu Trang 42 CHƯƠNG 6: KHỐI TIMER TRÌ HOÃN BAN ĐẦU 6.1 SƠ ĐỒ KHỐI Hình 6.1: Sơ đồ của khối Timer trì hoãn ban đầu Tên Mô tả ICLK Xung clock 50Mhz từ kit DE2 VS Tín hiệu VS ( Vertical Sync ) từ ADV7181B HS Tín hiệu HS (Horizontal Sync) từ ADV7181B TD_Stable Báo hiệu ADV7181b đã hoạt động ổn đònh RST0, RST1, RST3 Ngõ ra cho phép các khối khác bắt đầu làm việc 6.2 MÔ TẢ Với cấu hình đã cài đặt ở phần trước, khi đã hoạt động ổn đònh, dạng sóng do ADV7181B phát ra như sau: Vì vậy để phát hiện xem chip mã hóa này đã hoạt động ổn đònh hay chưa khối TD_DETEC tiến hành kiểm tra điều kiện: VS ở mức cao trong 9 chu kỳ liên tiếp của HS rồi chuyển xuống mức thấp, nếu thỏa mãn thì đưa TD_Stable lên mức cao. Khi tín hiệu TD_Stable lên mức cao, khối RESET_DELAY bắt đầu đếm lên theo xung nhip của ICLK [...]... 10.1: Sơ đồ của khối Convert YCrCb to RGB Tên Mô tả CLK Xung clock 27Mhz từ kit DE2. RESET Reset hệ thống. iY[7:0] Thành phần độ sáng (Luma) của Pixel được tách ra. iCb[7:0] Thành phần Cb của Pixel được tách ra. iCr[7:0] Thành phần Cr của Pixel được tách ra. Red[9:0] Thành phần Red của Pixel tương ứng. Green[9:0] Thành phần Green của Pixel tương ứng. Blue[9:0] Thành phần Blue của Pixel tương... SƠ ĐỒ KHỐI Hình 7.1: Sơ đồ của khối Desize Horizontal Tên Mô tả CLK_27 Xung clock 27Mhz từ kit DE2 RST_N Reset hệ thống TD_DATA[7:0] Dữ liệu hình ảnh từ ADV7181B ACLR Tín hiệu xóa bất đồng bộ do khối Timer trì hoãn cung cấp CLK Xung clock 27MHz từ chân TD_CLK của ADV7181B Số chia = 9 Số chia cung cấp cho bộ chia do người thiết kế nhập vào TV_X[9:0] Vị trí của Pixel trong hàng hiện hành... : SDO=SD[20]; 6'd7 : SDO=SD[19]; 6'd8 : SDO=SD[18]; Chương 4: Sơ lược hệ thống Trang 34 4.3 SƠ ĐỒ THIẾT KẾ VÀ NGUYÊN LÝ HOẠT ĐỘNG 4.3.1 SƠ ĐỒ THIẾT KẾ Hình 4.1: Sơ đồ hệ thống 4.3.2 NGUYÊN LÝ HOẠT ĐỘNG  Khối I2C_Video_Config: với giao thức giao tiếp I2C sẽ đặt giá trị cho các thanh ghi của bộ mã hóa ADV7181 để cấu hình hoạt động cho chip mã hóa này.  Khối Timer trì hỗn... SDRAM có sẵn trên kit DE2. Chương 5: Khối I2C_Video_Config Trang 36 PHẦN III: NỘI DUNG THIẾT KẾ CHƯƠNG 5: Khối I2C_VIDEO_CONFIG 5.1 SƠ ĐỒ KHỐI Hình 5.1: Sơ đồ khối I2C_Video_Config Tên Mô tả ICLK Xung Clock 50MHz từ Kit DE2 RESET Tín hiệu Reset hệ thống I2C_SCLK Ngõ ra chứa xung Clock cung cấp cho ADV7181B I2C_DATA Port 2 chiều để cấu hình giá trị các thanh ghi của ADV7181B... [9:0] thêm bit dấu thành số [11:0], tức là 12 bits. Sau đó cộng tất cả các thành phần của cửa sổ thu được rồi lấy 8 bit cao trong giá trị tuyệt đối ta có kết quả là | x G | và | y G | 2)Tính giá trị ngõ ra của pixel theo công thức 22 xy G = G + G :  Tính giá trị bình phương của x G và y G với bộ nhân từ thư viện của Quartus: Phần Menu >> Tools >> MegaWizard Plug_in Manager… >>... bit cho trạng thái IDE, 2 bit để thiết lập cờ START, 3 bit để chờ 3 ACK do ADV xác nhận, 3 bit để thiết lập cờ STOP và báo kết thúc chuỗi, vì vậy thực sự chuỗi dài 33 bit: case (SD_COUNTER) 6'd0 : begin ACK1=0 ;ACK2=0 ;ACK3=0 ; END=0; SDO=1; SCLK=1;end / /Thiết lập cờ START 6'd1 : begin SD=I2C_DATA;SDO=0;end 6'd2 : SCLK=0; //Địa chỉ SLAVER của ADV7181B 6'd3 : SDO=SD[23];... bù của ACK(tích cự mức thấp), chỉ xác nhận khi có đủ 3 xác nhận ACK1, ACK2, ACK3 Và dạng sóng thu được trên chân I2C_SCLK như sau (END từ 0 lên 1 chỉ ra rằng đã nạp xong giá trị cho một thanh ghi): Hình 5.3: Dạng sóng mô phỏng trên chân I2C_SCLK Chương 8: Khối SDRAM BUFFER Trang 51 Tên Mô tả RESET Tín hiệu Reset hệ thống CLK_27 Xung clock 27Mhz từ kit DE2. .. RD2: Lần lượt cho phép đọc dữ liệu từ SDRAM READ FIFO1, SDRAM READ FIFO2 với sự điều khiển của khối VGA Cotroller thông qua chân Request và VGA_Y. RD1_CLK RD2_CLK Tần số đọc của SDRAM READ FIFO1 và SDRAM READ FIFO2 được là 27MHz từ KIT DE2 READ_SIDE1[8:0] Số từ (Word) hiện có trong SDRAM READ FIFO1 READ_SIDE2[8:0] Số từ (Word) hiện có trong SDRAM READ FIFO2 WR_RDFIFO1 Cho phép ghi dữ liệu SDRAM... Xung clock 81MHz PLL đưa ra cho các ngõ vào CLK của khối SDRAM Controller ( chính là tần số đọc của SDRAM WRITE FIFO, ghi của SDRAM READ FIFO1 và SDRAM READ FIFO2) SDR_CLK Xuaát xung clock 81MHz cho SDRAM WR_LOAD RD1_LOAD RD2_LOAD Lần lượt là tín hiệu để xóa bất đồng bộ SDRAM WRITE FIFO, SDRAM READ FIFO1 và SDRAM READ FIFO2 lấy từ chân RST0 của khối Timer trì hoãn ban đầu. WR_DATA Dữ liệu... chịu ảnh hưởng của các ngõ vào RD1 và RD2, (tác động đến các giá trị READ_SIDE1 và READ_SIDE2) sẽ điều khiển các thao tác xuất dữ liệu từ SDRAM vào SDRAM READ FIFO như sau: +RD1 = ~RD2 = 1: ngừng tác vụ xuất dữ liệu từ SDRAM vào SDRAM READ FIFO2 tức là chỉ xuất các line của Odd Field +RD1 = ~RD2 = 0: ngừng tác vụ xuất dữ liệu từ SDRAM vào SDRAM READ FIFO1 tức là chỉ xuất các line của Even Field. . Chương 4: Sơ lược hệ thống Trang 33 PHẦN II: THIẾT KẾ HỆ THỐNG CHƯƠNG 4: SƠ LƯC HỆ THỐNG 4.1. YÊU CẦU  Tìm hiểu về các giải. Chương 4: Sơ lược hệ thống Trang 34 4.3 SƠ ĐỒ THIẾT KẾ VÀ NGUYÊN LÝ HOẠT ĐỘNG 4.3.1 SƠ ĐỒ THIẾT KẾ Hình 4.1: Sơ đồ hệ thống 4.3.2 NGUYÊN LÝ HOẠT

Ngày đăng: 01/10/2012, 16:16

Hình ảnh liên quan

Hình 4.1: Sơ đồ hệ thống - Thiết kế hệ thống KIT DE2 của Altera

Hình 4.1.

Sơ đồ hệ thống Xem tại trang 2 của tài liệu.
Hình 5.1: Sơ đồ khối I2C_Video_Config - Thiết kế hệ thống KIT DE2 của Altera

Hình 5.1.

Sơ đồ khối I2C_Video_Config Xem tại trang 4 của tài liệu.
Khi reset, bắt đầu cấu hình lại cho ADV7181B bằng cách xóa giá trị các bộ đếm và cờ. Sau đó để nạp giá trị cho các thanh ghi ta sử dụng máy trạng thái sau:  - Thiết kế hệ thống KIT DE2 của Altera

hi.

reset, bắt đầu cấu hình lại cho ADV7181B bằng cách xóa giá trị các bộ đếm và cờ. Sau đó để nạp giá trị cho các thanh ghi ta sử dụng máy trạng thái sau: Xem tại trang 5 của tài liệu.
Hình 5.3: Dạng sóng mô phỏng trên chân I2C_SCLK - Thiết kế hệ thống KIT DE2 của Altera

Hình 5.3.

Dạng sóng mô phỏng trên chân I2C_SCLK Xem tại trang 9 của tài liệu.
Hình 6.1: Sơ đồ của khối Timer trì hoãn ban đầu - Thiết kế hệ thống KIT DE2 của Altera

Hình 6.1.

Sơ đồ của khối Timer trì hoãn ban đầu Xem tại trang 10 của tài liệu.
Với cấu hình đã cài đặt ở phần trước, khi đã hoạt động ổn định, dạng sóng do ADV7181B phát ra như sau:  - Thiết kế hệ thống KIT DE2 của Altera

i.

cấu hình đã cài đặt ở phần trước, khi đã hoạt động ổn định, dạng sóng do ADV7181B phát ra như sau: Xem tại trang 10 của tài liệu.
TD_DATA[7:0] Dữ liệu hình ảnh từ ADV7181B - Thiết kế hệ thống KIT DE2 của Altera

7.

0] Dữ liệu hình ảnh từ ADV7181B Xem tại trang 12 của tài liệu.
Hình 7.1: Sơ đồ của khối Desize Horizontal - Thiết kế hệ thống KIT DE2 của Altera

Hình 7.1.

Sơ đồ của khối Desize Horizontal Xem tại trang 12 của tài liệu.
Hình 7.2: Vị trí các Pixel trong chuỗi - Thiết kế hệ thống KIT DE2 của Altera

Hình 7.2.

Vị trí các Pixel trong chuỗi Xem tại trang 13 của tài liệu.
Hình 8.1: Sơ đồ của khối SDRAM BUFFER - Thiết kế hệ thống KIT DE2 của Altera

Hình 8.1.

Sơ đồ của khối SDRAM BUFFER Xem tại trang 18 của tài liệu.
Hình 8.2: Giản đồ định thì cho chu kỳ truy xuất giữa SDRAM và các FIFO - Thiết kế hệ thống KIT DE2 của Altera

Hình 8.2.

Giản đồ định thì cho chu kỳ truy xuất giữa SDRAM và các FIFO Xem tại trang 25 của tài liệu.
Hình 9.1: Sơ đồ của khối xử lý ảnh YUV - Thiết kế hệ thống KIT DE2 của Altera

Hình 9.1.

Sơ đồ của khối xử lý ảnh YUV Xem tại trang 30 của tài liệu.
mYCbCr_d[15:0] Dữ liệu hình ảnh ngõ vào. - Thiết kế hệ thống KIT DE2 của Altera

m.

YCbCr_d[15:0] Dữ liệu hình ảnh ngõ vào Xem tại trang 30 của tài liệu.
Hình 9. 2: Sử dụng các Line_buffer và Register để tạo cửa sổ 3x3 pixel - Thiết kế hệ thống KIT DE2 của Altera

Hình 9..

2: Sử dụng các Line_buffer và Register để tạo cửa sổ 3x3 pixel Xem tại trang 31 của tài liệu.
Hình 10.1: Sơ đồ của khối Convert YCrCb toRGB - Thiết kế hệ thống KIT DE2 của Altera

Hình 10.1.

Sơ đồ của khối Convert YCrCb toRGB Xem tại trang 35 của tài liệu.
CHƯƠNG 10: KHỐI CONVERT YCRCB TO RGB - Thiết kế hệ thống KIT DE2 của Altera

10.

KHỐI CONVERT YCRCB TO RGB Xem tại trang 35 của tài liệu.
Hình 11. 1: Sơ đồ của khối VGA Controller - Thiết kế hệ thống KIT DE2 của Altera

Hình 11..

1: Sơ đồ của khối VGA Controller Xem tại trang 39 của tài liệu.
VGA_Y[0] Cho biết Line sẽ hiển thị trên màn hình là thuộc Odd Frame hay Even Frame để chọn dữ liệu đưa ra từ SDRAM BUFFER - Thiết kế hệ thống KIT DE2 của Altera
] Cho biết Line sẽ hiển thị trên màn hình là thuộc Odd Frame hay Even Frame để chọn dữ liệu đưa ra từ SDRAM BUFFER Xem tại trang 39 của tài liệu.
Hình 11.2: Vùng hiển thị trong 1 chu kỳ quét với tín hiệu reset từ hệ thống - Thiết kế hệ thống KIT DE2 của Altera

Hình 11.2.

Vùng hiển thị trong 1 chu kỳ quét với tín hiệu reset từ hệ thống Xem tại trang 40 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan