1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực nghiệm môn học ktmt&hđh Đề tài nghiên cứu tìm hiểu về vi mạch Điều khiển truy nhập bộ nhớ trực tiếp dmac 8237 (direct memory access controller)

19 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 (Direct Memory Access Controller)
Tác giả Nguyễn Văn Phương, Đinh Văn Minh Quân, Nguyễn Sỹ Hoàng Minh, Vũ Minh Thảo
Người hướng dẫn Th.s Nguyễn Tuấn Tú
Trường học Đại học Công nghiệp Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại báo cáo thực nghiệm
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 1,34 MB

Nội dung

-Chân đặc biệt: Chân Vcc là chân cấp nguồn bổ sung.- RESET: Xóa các thanh ghi tạm, thanh ghi trạng thái, thanh ghi lệnh, thanh ghi yêu cầu - : Tín hiệu chọn mạch, thông thường nối với đầ

Trang 1

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN

Báo cáo thực nghiệm môn học: KTMT&HĐH

Đề tài : Nghiên cứu tìm hiểu về vi mạch điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 (Direct Memory Access Controller)

Giáo viên hướng dẫn: Th.s Nguyễn Tuấn Tú Nhóm thực hiện: Nhóm 4

Lớp: IT6067.8 K17

Trang 2

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-BÀI TẬP LỚN

Báo cáo thực nghiệm môn học: KTMT&HĐH

ĐỀ TÀI: Nghiên cứu tìm hiểu về vi mạch điều khiển truy

nhập bô nhớ trực tiếp DMAC 8237

Giảng viên: Ths Nguyễn Tuấn Tú

Sinh Viên thực hiện:

Nguyễn Văn Phương-2022602307 Đinh Văn Minh Quân -2022601048

Nguyễn Sỹ Hoàng Minh -2022606444

Vũ Minh Thảo - 2022601891

Lớp: IT6067.8 K17

Hà Nội, 2023

Trang 3

MỤC LỤC

Mở đầu 5

Chương I : Bộ điều khiển DMA 8237 6

1.Sơ đồ chân và chức năng của các chân 6

2.Sơ đồ khối và chức năng của các khối 7

3.Các thanh ghi 9

3.1.Khái niệm thanh ghi 9

3.2.Các loại thanh ghi 10

Chương II: Ghép nối với 8237A-5 trong hệ vi xử ý 8088 14

1.Các trạng thái hoạt động 15

2.Các chế độ 16

3 Các chế độ ưu tiên của yêu cầu DMAC 16

4.Khởi phát và đảm bảo chương trình phục vụ 16

5.Kết thúc trao đổi DMA 17

6.Kiểm tra sự kết thúc ở kênh mong muốn 17

7.Đặc điểm về hoạt động của 8237 17

Chương III : Chuyển nhượng BUS giũa CPU và DMAC 8237 18

Trang 4

Danh mục Hình Ảnh

Lời nói đầu

Chương 1 : Cấu trúc vi mạch DMAC 8237

1.1 Sơ đồ chân và chức năng các chân tín hiệu

Hình 1.1: vi mạch 8237

2 Sơ đồ khối và chức năng các khối

Hình 1.2 : Sơ đồ khối

3 Các thanh ghi

Hình 1.3.1 : Thanh ghi trạng thái (Status Register)

Hình 1.3.2 : Thanh ghi lệnh (Command register)

Hình 1.3.4 : Thanh ghi mặt nạ (Mask Register)

Hình 1.3.3 : Thanh ghi yêu cầu ngắt (Request Register) Chương 2: Nguyên lý hoạt động của vi mạch DMAC 8237 2.1 Sơ đồ ghếp nối của DMAC 8237 trong máy tính

Hình 2.1:Sơ đồ ghép nối của DMAC 8237

2.2 Các chế độ hoạt động của DMAC 8237

2.3 Nguyên lý chuyển nhượng BUS giữa CPU và DMAC 8237 Kết luận

Tài liệu tham khảo

Trang 5

Lời nói đầu

Truy nhập bộ nhớ trực tiếp (DMA) là một kỹ thuật cho phép các thiết bị ngoại vi trao đổi dữ liệu với bộ nhớ mà không cần sự can thiệp của bộ xử lý Điều này giúp tăng hiệu năng của hệ thống máy tính, giảm tải cho bộ xử lý và giảm thời gian chờ đợi của các thiết bị ngoại vi Để thực hiện DMA, cần có một vi mạch điều khiển truy nhập bộ nhớ trực tiếp (DMAC), có nhiệm vụ điều phối quá trình truyền dữ liệu giữa các thiết bị ngoại vi và bộ nhớ Trong bài báo cáo này, chúng em sẽ nghiên cứu về một trong những vi mạch DMAC tiêu biểu, đó là vi mạch 8237

Vi mạch DMAC 8237 là một vi mạch điều khiển truy nhập trực tiếp bộ nhớ (DMA), cho phép các thiết bị ngoại vi trao đổi dữ liệu với bộ nhớ máy tính mà không cần sự can thiệp của CPU1 Vi mạch này có các chức năng chính sau: -Điều khiển và phân chia thời gian cho các hoạt động bên trong và tạo tín hiệu điều khiển cho bên ngoài

-Điều khiển mã lệnh do CPU đưa tới trước khi phục vụ DMA và giải mã từ điều khiển chế độ để chọn điều khiển DMA

-Điều khiển các thanh ghi địa chỉ và đếm cho từng kênh DMA

-Điều khiển các tín hiệu yêu cầu DMA và ưu tiên cho các kênh DMA Chúng em

sẽ giới thiệu về sơ đồ chân, chức năng các chân tín hiệu, sơ đồ khối, chức năng các khối, các thanh ghi, sơ đồ ghép nối trong máy tính để thấy được các chế độ hoạt động của DMAC 8237 và nguyên lý chuyển nhượng BUS giữa CPU và DMAC 8237

Nhóm sinh viên thực hiện!

Trang 6

Chương I : Bộ điều khiển DMA -8237 1.Sơ đồ chân và các chức năng của các chân

Hình 1.1: vi mạch 8237

Các chân tín hiệu của DMAC 8237:

Chân nguồn: Chân Vcc cấp nguồn (+5V) cho vi mạch, chân GND (VSS) nối đất -Chân địa chỉ: Chân A0-A3 là các chân địa chỉ thấp, được sử dụng để lựa chọn các thanh ghi bên trong vi mạch Chân A4-A7 là các chân địa chỉ cao, được sử dụng để truyền địa chỉ bộ nhớ ra ngoài

-Chân dữ liệu: Chân DB0-DB7 là các chân dữ liệu, chúng được sử dụng để truyền

dữ liệu giữa vi mạch và CPU hoặc các thiết bị ngoại vi

-Chân điều khiển: Chân IOR là chân yêu cầu đọc vào/ra, chân IOW là chân yêu cầu ghi vào/ra, chân CS là chân chọn chip, chân MEMR là chân yêu cầu đọc bộ nhớ, chân MEMW là chân yêu cầu ghi bộ nhớ, chân HRQ là chân yêu cầu BUS, chân HLDA là chân chấp nhận BUS, chân AEN là chân cho phép địa chỉ, chân ADSTB là chân xung địa chỉ, chân RESET là chân khởi động lại, chân CLK là chân xung đồng hồ, chân READY là chân sẵn sàng, chân EOP là chân kết thúc xử lý

-Chân yêu cầu: Chân DRQ0-DRQ3 là các chân yêu cầu DMA, được sử dụng để nhận các tín hiệu yêu cầu DMA từ các thiết bị ngoại vi

-Chân trạng thái: Chân DACK0-DACK3 là chân xác nhận DMA, chân DREQ là chân yêu cầu DMA bổ sung, chân HRQ là chân yêu cầu BUS cao cấp

Trang 7

-Chân đặc biệt: Chân Vcc là chân cấp nguồn bổ sung.

- RESET: Xóa các thanh ghi tạm, thanh ghi trạng thái, thanh ghi lệnh, thanh ghi yêu cầu

- : Tín hiệu chọn mạch, thông thường nối với đầu ra của một bộ giải mã

- READY: tạo trạng thái chờ cho 8237A – 5 đối với bộ nhớ hoặc I/O có tốc

độ thấp

- CLK: Được nối với tín hiệu đồng hồ hệ thống

- AEN: Cho phép chốt địa chỉ nới với DB0 – DB7 đồng thời không cho phép các bộ đệm trong hệ thống được nối với VXL

- ADSTB (address strobe): hoạt động như ALE nhưng chỉ sử dụng bởi bộ điều khiển DMA chốt địa chỉ A8 – A15 trong suốt quá trình truyền DMA

- : Đầu ra điều khiển bộ nhớ đọc, ghi dữ liệu trong chu kỳ DMA tương ứng

- : điều khiển đọc và ghi I/O

- DREQ0 – DREQ3 (DMA request): Đầu vào yêu cầu DMA cho mỗi kênh của 8237, cực tính của các tín hiệu vào này là có thể lập trình được

- HLDA (hold Acknowledge): tín hiệu thông báo CPU đã thả nổi BUS đia chỉ, dữ liệu, điều khiển của nó

- HRQ (hold request): nối với HOLD của VXL tạo yêu cầu DMA

- DACK0 – DACK3: (DMA chanel acknowledge ) Ðầu ra chấp nhận DMA ( có thể lập trình được ) Thường dùng để chọn thiết bị cần điều khiển DMA

- DB0 – DB7 (data bus ): Chân nối với bus dữ liệu của bộ VXL 8088 được

sử dụng trong quá trình lập trình cho 8237

- A0 – A3: Chọn thanh ghi nội cần lập trình và một phần địa chỉ truyền DMA trong quá trình DMA

- A4 – A7: Cung cấp 1 phần địa chỉ còn lại của DMA

Trang 8

2: Sơ đồ khối và chức năng các khối

Hình 1.2 : Sơ đồ khối

Vi mạch điều khiển truy nhập bộ nhớ trực tiếp DMAC 8237 gồm có 3 khối chính :

-Khối điều khiển và phân chia thời gian: có nhiệm vụ điều khiển các hoạt động bên trong và bên ngoài của vi mạch, tạo ra các tín hiệu điều khiển cho CPU và các thiết

bị ngoại vi, phân chia thời gian cho các kênh DMA, và xử lý các yêu cầu DMA -Khối điều khiển mã lệnh: có nhiệm vụ giải mã các mã lệnh do CPU đưa tới trước khi phục vụ DMA, và lập trình các thanh ghi bên trong vi mạch theo các chế độ hoạt động mong muốn

-Khối thanh ghi: bao gồm các thanh ghi dùng để lưu trữ các thông tin cần thiết cho quá trình DMA, như địa chỉ bộ nhớ, số lượng dữ liệu, chế độ hoạt động, trạng thái, v.v

Trang 9

3 Các thanh ghi

3.1 Thanh ghi là gì?

 Trong kiến trúc máy tính, một thanh ghi (registers) là một bộ nhớ dung

lượng nhỏ và rất nhanh được sử dụng để tăng tốc độ xử lý của các chương trình máy tính bằng cách cung cấp các truy cập trực tiếp đến các giá trị

cần dùng Hầu hết, nhưng không phải tất cả, các máy tính hiện đại hoạt

động theo nguyên lý chuyển dữ liệu từ bộ nhớ chính vào các thanh ghi,

tính toán trên chúng, sau đó chuyển kết quả vào bộ nhớ chính

 Các thanh ghi xử lý là phần đầu tiên của phân cấp bộ nhớ, và cung cấp

nhanh nhất vào hệ thống để xử lý dữ liệu Thuật ngữ này thường được

dùng để nói đến một tập các thanh ghi có thể được chỉ trực tiếp cho việc

nhập hay xuất các câu lệnh, xem thêm ở tập lệnh Chúng được gọi là ”

kiến trúc thanh ghi”

Ví dụ: Đưa các biến số thường dùng vào thanh ghi là một hoạt động then chốt làm

tăng hiệu ứng của chương trình Việc này có tên là register allocation và thường được thực hiện bởi một trình biên dịch trong giai đoạn phát sinh mã hoá

3.2 Các loại thanh ghi:

Thanh ghi địa chỉ hiện thời (CAR ): Lưu 16 bít địa chỉ bộ nhớ trong suốt quá trình truyền DMA Mỗi kênh đều có một thanh ghi này và CAR tăng hoặc giảm tuỳ thuộc vào cách lập trình

Thanh ghi đếm từ hiện thời (CWCR ): điều khiển số byte được truyền trong quá trình DMA Số ghi trong thanh ghi này nhỏ hơn số byte đã được truyền 1 đơn vị

Trang 10

Thanh ghi địa chỉ cơ sở và từ cơ sở (BWCR): sử dụng khi chọn chế độ tự động kích hoạt cho một kênh, trong quá trình này thanh ghi BWCR được dùng để gọi lại các thanh ghi CAR và CWCR sau khi DMA kết thúc

- Thanh ghi lệnh: lập trình cho hoạt động của 8237

Hình 1.3.1 : Thanh ghi lệnh (Command register)

-Thanh ghi chế độ : thiết lập chế độ họa động cho mỗi kênh

Hình 1.3.2 :Thanh ghi chế độ (Mode register)

-Thanh ghi yêu cầu : cùng yêu cần truyền DMA bằng phần mềm

Trang 11

Hình 1.3.3 : Thanh ghi yêu cầu DMA(request register)

-Thanh ghi che set/ reset : xóa , thiết lập việc cấm các kênh

Hình 1.3.4: Mask register set / reset mode

-Thanh ghi cấm : xóa hoặc thiết lập việc cấm của tất cả các kênh

Hình 1.3.5: Thanh ghi cấm (Mask register)

Trang 12

-Thanh ghi trạng thái SR :Xác định trạng thái của các kênh DMA

Hình 1.3.6 : Thanh ghi trạng thái (Status register)

Định dạng cho các thanh ghi

Trang 13

Các lệnh của chip DMA-8237A

Tín hiệu

A3 A2 A1 A0 IOR

IOW

Lệnh

1 0 0 0 0 1 Đọc thanh ghi trạng thái

1 0 0 0 1 1 Nạp thanh ghi lệnh

1 0 0 1 0 1 Không hợp lệ

1 0 0 1 1 0 Nạp thanh ghi yêu cầu

1 0 1 0 0 1 Không hợp lệ

1 0 1 0 1 0 Ghi từng bit cho thanh ghi mặt na

1 0 1 0 1 0 Không hợp lệ

1 0 1 1 0 1 Nạp thanh ghi chế độ

1 0 1 1 1 0 Không hợp lệ

1 1 0 0 0 1 Xóa mạch lật xong

1 1 0 1 0 1 Đọc thanh ghi tạm thời

Trang 14

1 1 0 1 1 0 Reset DMA

1 1 1 0 0 1 Không hợp lệ

1 1 1 0 1 1 Không hợp lệ

1 1 1 1 0 1 Không hợp lệ

1 1 1 1 1 1 Ghi toàn bộ thanh ghi mặt na

Trong CPXC một chip DMAC chỉ có khả năng phục vụ các ngoại vi 8bit (các thiết bị chỉ có các thanh ghi 8 bit) Trong máy PC AT (16 bit) có thêm một chip DMAC nữa gọi là chủ (master) được nối với vi xử lý Các chân HRQ và HLDA của chip DMAC tớ được nối với kênh 0 của chip chủ để để nhằm cho các kênh từ 0 – 3 có mức ưu tiên hơn 3 kênh của chip chủ Các kênh 0 – 3 của chủ được quy ức

là kênh DMA từ 4 – 7 của máy AT Bốn kênh của chip tớ phục vụ cho ngoại vi 8 bit, trong khi đó 3 kênh tùe 5 đến 7 không sử dụng được cấu hình cho các thiết bị

16 bit

Chương II : Ghép nối tiếp với 8237A -5 trong hệ vi sử lý 8088

Vi mạch 8237 được sử dụng trong máy tính IBM PC để thực hiện các quá trình DMA trao đảo dữ liệu trực tiếp giữa thiết bị ngoài và máy tính

Tín hiệu AEN và ADSTB ra của 8237A – 5 điều khiển đầu ra của chốt 82C82 Trong suốt quá trình hoạt động bình thường của 8088 (AEN = 0) các vi mạch chốt địa chỉ cung cấp các bit địa chỉ truyền DMA Tín hiệu điều khiển MEMR,

Trang 15

MEMW, IOR, IOW cũng được tạo bởi bộ điều khiển DMA Gải thiết địa chỉ đầu cho DMAC là 0070h

Hình 2 : Sơ đồ ghép nối 8237 với 8088

1 : Các trạng thái hoạt động

Vi mạch 8237A có các trạng thái sau :

- Trạng thái nghỉ SI: trạng thái trở kháng cao, không được chọn mạch ( = 1)

- Trạng thái chờ SO: trạng thái đầu của quá trình trao đổi DMA 8257 nhận tín hiệu DREQ, xử lý và gởi yêu cầu Hold cho VXL nhưng chưa nhận được tín hiệu xác nhận theo HLDA Khi nhận được xác nhận, DMAC bắt đầu quá trình trao đổi dữ liệu

- Trạng thái phát địa chỉ nguồn số liệu S1:

DMAC phát địa chỉ nguồn số liệu (cửa I/O hoặc Memory)

- Trạng thái phát lệnh đọc cho nguồn số liệu của nguồn số liệu S2:

DMAC phát lệnh đọc số liệu của nguồn số liệu

Trang 16

- Trạng thái chờ SW:

DMAC chờ trong thời gian SW để số liệu được đoc xong ở nguồn phát số liệu, ghi xong vào thanh ghi đệm, chờ Ready của DMAC

- Trạng thái phát địa chỉ của đích sô liệu S3:

DMAC phát địa chỉ phát lệnh ghi số liệu (Memory hoặc I/O)

- Trạng thái phát kệnh ghi số liệu vào S4:

DMAC phát lệnh ghi số liệu từ thanh ghi đệm vào cửa vào – ra

2 Các chế độ

Tùy nội dung thanh ghi chế độ lúc khởi phát, DMAC có các chế độ sau:

- Chế độ chuyển từng từ đơn (Single Transfer Mode)

- Chế độ chuyển nhiều từ (Block Transfer Mode)

- Chế độ chuyển theo nhu cầu (Demand Transfer Mode) với số lượng từ tùy theo người sử dụng điều khiển

- Chế độ ghép tầng (Cascade Mode) là chế độ chuyển liên tiếp các từ, điều khiển bởi các DMAC mắc nối tầng

3 :Các chế độ ưu tiên của yêu cầu DMAC

Cũng giống như xử lý ngắt, DMAC có hai chế độ ưu tiên:

- Chế độ ưu tiên cố định: kênh 0 có mức ưu tiên cao nhất, kênh 3 có mức ưu tiên thấp nhất

- Chế độ ưu tien vòng: kênh vừa được phục vụ sẽ có mức ưu tiên thấp nhất Khi mới lập chế độ, kênh 0 có mức ưu tiên cao nhất

4: Khởi phất và đẩm bảo chương trình được phục vụ :

Trước khi đưa DMAC vào hoạt động, chương trình phải khởi phát nó Quá trình khởi phát gồm 2 giai đoạn:

- Xóa cứng bằng tìn hiệu Reset, làm các thanh ghi về 0

Trang 17

- Ghi các lệnh của chương trình khởi phát VXL ghi vào các thanh ghi chức năng như địa chỉ ban đầu, số từ trao đổi, số kênh, che chắn yêu cầu của kênh không cần hoạt động, chế độ trao đổi, chiều tăng hay giảm địa chỉ …Khi ghi dữ liệu vào thanh ghi 16bit, phải ghi lần lượt 2byte theo thứ tự byte thấp trước, byte cao sau

- Sau khi được khởi phát, DMAC sẽ hoàn toàn tự động làm việc Kết thúc chương trình khởi phát này, luôn phải có lệnh ghi bit D4 = 1 vào thanh ghi

chế độ để cho phép tự khởi động

5 Kết thúc trao đổi DMA

Có hai cách kết thúc trao đổi dữ liệu:

- Kết thúc tự động: Kết thúc khi bộ đếm số tin trao đổi đếm về 0, hay số đếm kết thức TC (Terminal Count) Với DMAC 8237, việc kết thúc thể hiện ở tín hiệu Hold kết thúc, tức trở về mức mogic 0

- Kết thúc cưỡng bức: đây là tín hiệu từ ngoài vào (do mạch TBNV hoặc do người điều hành can thiệp bằng cách ấn nút lệnh) để kết thúc quá trình trao đổi DMA

6 Kiểm tra sự kết thúc ở kênh mong muốn

Trong khi DMAC hoạt động, thanh ghi trạng thái luôn được cập nhật, tức luôn ghi trạng thái hiện thời của DMAC Khi kết thứ, VXL có thể đọc nội dung này của thanh ghi trạng thái để biết rằng kênh nào của DMA đã đạt đến số đếm kết thúc TC, số lời đã trao đổi là bao nhiêu (trường hợp kết thúc cương bức so từ ngoài vào) và kênh vào đang chờ phục vụ

7 Đặc điểm về hoạt động của 8237

8237 có những đặc điểm chính sau:

- Cho phép hoặc cấm riêng biệt từng kênh DMA trong số 4 kênh

Trang 18

- Trao đổi dữ liệu DMA trực tiếp giữa hai vùng bộ nhớ

- Cho phép nối tầng các DMAC để tăng số kênh DMA

- Có thể tạo yêu cầu DMA bằng chương trình

- Với 8237 – 2, tốc độ trao đổi DMA có thể đạt tới 1,6Mbps Do đó ngoài phục vụ trao đổi dữ liệu giữa MVT và màn hình, đĩa, DMA còn được dung trong mạng MVT

Chương III : Chuyển nhượng BUS giữa CPU và DMAC 8237

DMAC được xác lập chế độ làm việc: các thanh ghi lệnh, thanh ghi kiểu làm việc, thanh ghi địa chỉ nền và thanh đếm kích thước khối dữ liệu được nạp, cho phép kênh làm việc

- Thiết bị vào-ra phát tín hiệu DRQ cho DMAC.

- DMAC phát tín hiệu HOLD = 1 cho CPU, đòi CPU đi vào chế độ DMA.

- CPU thực hiện nốt chu kỳ máy.

- CPU phát tín hiệu HLDA cho DMAC và tách ra khỏi hệ thống BUS.Quyền điều

khiển BUS thuộc về DMAC

- DMAC làm chủ các BUS địa chỉ, BUS số liệu và BUS điều khiển DMAC tạo ra

tín hiệu DACK, phát ra địa chỉ bộ nhớ (16 bit), tạo tín hiệu

điều khiển ghi/đọc thiết bị vào/ra, tín hiệu điều khiển ghi/đọc bộ nhớ và một byte

dữ liệu được truyền trực tiếp giữa bộ nhớ và tiết bị vào-ra Địa chỉ ô nhớ tiếp theo được phát ra và quá trình trên lặp lại cho đến khi thực hiện xong quá tình DMA theo kiểu đã được lập trình (TC = 0)

Ngày đăng: 13/01/2025, 13:58

HÌNH ẢNH LIÊN QUAN

Hình 1.1: vi mạch 8237 - Báo cáo thực nghiệm môn học  ktmt&hđh Đề tài   nghiên cứu tìm hiểu về vi mạch Điều khiển truy nhập bộ nhớ trực tiếp dmac 8237 (direct memory access controller)
Hình 1.1 vi mạch 8237 (Trang 6)
2: Sơ đồ khối và chức năng các khối - Báo cáo thực nghiệm môn học  ktmt&hđh Đề tài   nghiên cứu tìm hiểu về vi mạch Điều khiển truy nhập bộ nhớ trực tiếp dmac 8237 (direct memory access controller)
2 Sơ đồ khối và chức năng các khối (Trang 8)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN