CHÍP MÃ HÓA TÍN HIỆU VIDEO ADV7181B

6 292 0
CHÍP MÃ HÓA TÍN HIỆU VIDEO ADV7181B

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

Thông tin tài liệu

2. CHÍP MÃ HÓA TÍN HIỆU VIDEO ADV7181B 2.1 CHỨC NĂNG VÀ DẠNG DỮ LIỆU NGÕ RA Nguồn ảnh cần xử lý là tín hiệu analog video do DVD plalyer xuất ra. Kết nối ngõ ra TV- Out composite của DVD Player với cổng TV-In trên Kit DE2 thì bộ ADV7181B sẽ số hóa tín hiệu này sang chuẩn ITU - RTBT 656 là chuỗi các frame ảnh. Mỗi điểm trong frame ảnh thu về được biểu diễn dưới dạng I(x,y) trong đó x,y là tọa độ của pixel trên frame và I là mức xám tương ứng của pixel đó. Như vậy 1 frame ảnh thu được sẽ đươc biểu diễn dưới dạng một ma trận 2 chiều 720 x 525 với 720 là số pixel trên 1 hàng, 525 là số hàng trong 1 frame. Chuẩn Video ITU – RBT601: Chuẩn ITU – RBT 610/656 định nghĩa một thiết kế cho việc mã hóa một khung bao gồm 525 (hoặc 625) line tín hiệu video tương tự thành dạng số, truyền tín hiệu với xung clock 27MHz. Một single horizontal line có cấu trúc: EAV BLANKING SAV Active Video Data EAV, BLANKING và SAV đều là các trường (field) phân biệt để đồng bộ dữ liệu được truyền. EAV và SAV đều là các trường 4 byte: EAV: cho biết điểm kết thúc của Active Video Data trong line hiện hành cũng như là điểm bắt đầu của line tiếp theo. SAV: báo hiệu điểm bắt đầu của Active Video Data trong line hiện hành. FFh 00h 00h XY Byte thứ tư XY chứa thông tin về trường được truyền, tình trạng của khoảng trống (field blanking) theo chiều dọc (Vertical) hoặc của dòng trống (line blanking) theo chiều ngang (horizontal): MSB LSB 1 F V H P3 P2 P1 P0 Bit Symbol Chức năng 7 1 Luôn ở mức 1 6 F Field Bit: 0 => Field1; 1 => Field2 5 V Vertical Blanking Status Bit: - Lên mức cao khi ở vertical field blanking interval. - Xuống mức thấp ở các trường hợp khác. 4 H Horizontal Blanking Status bit: - Nếu là trường SAV thì ở mức 0. - Nếu là trường EAV thì ở mức 1. 3 P3 Protection bit 3 2 P2 Protection bit 2 1 P1 Protection bit 1 0 P0 Protection bit 0 Các Protecction bit thì dùng để kiểm tra và sửa lỗi phụ thuộc vào các bít F,V,H. nhưng khi nhận Video Stream ta có thể bỏ qua các bit này nên ta không xét đến. Ý nghĩa của các bit F và V là để đảm bảo sự đồng bộ các horizontal line trong một frame theo chiều dọc: TABLE 1 Field interval definitions 625 525 V-digital field blanking Field 1 Start (V=1) Finish (V=0) Field 2 Start (V=1) Finish (V=0) Line 624 Line 1 Line 23 Line 20 Line 311 Line 264 Line 336 Line 283 V-digital field identification Field 1 F=0 Field 2 F=1 Line 1 Line 4 Line 313 Line 266 Cách đặt giá trị các bit F,V theo trường (Field 1 hoặc 2) và tính hiệu dụng (Active or Blanking) sẽ được hiểu rõ hơn qua bảng mô tả một frame gồm 525 horizontal line sau : Field 1 (F=0) : 262 line từ line 4 đến line 265; Field 2(F=1) : 263 line từ line 266 đến line 3 Active or Blanking : các Active video data và các Vertical Blanking Interval được sắp xếp xen kẽ nhau : Active portion (V=0) Odd Field : 244 line từ 20->263; Even Field: 243 line từ 283->525; Vertical Blanking Interval (V=1): 38 line gồm 19 line từ 1->19 và 19 line từ 266->282; Hình 2.1: Frame ảnh theo chuẩn ITU656 Một horizontal line tín hiệu sẽ gồm các thành phần sau: Blanking: trong suốt thời gian truyền tín hiệu Video, ở giữa các Active video signal Segments sẽ là các horizontal blanking interval. Giá trị của các byte trong trường này sẽ phải phù hợp với các cấp độ (level) của các tín hiệu Cb, Cr và Y tương ứng theo quy tắc sau: Cb = 80h; Y = 10h; Cr = 80h ta có chuỗi byte : 80h, 10h, 80h,…80h,10h. Tùy vào số line tín hiệu mà chuỗi này sẽ bao gồm 268 byte (khung 525 line) hoặc là 280 byte (khung 625 line). Active Video Data: Có tất cả 1440 byte chứa đựng các thông tin về ảnh: 720 giá trị Y (luminace-brightness); 360 giá trị Cr (red chrominace); 360 giá trị Cb (blue chromiance) được sắp xếp theo từng nhóm cứ một Cb và Cr thì có 2 giá trị Y: CbYnCrYn+1 tạo thành chuỗi: Cb 0 Y 0 Cr 0 Y 1 Cb 1 Y 2 Cr 1 Y 3 …… … Cb 359 Y 71 8 Cr 359 Y 71 9 Các trường SAV và EAV: mỗi trường dài 4 byte Vậy trong hệ thống 525 line thì một Horizontal line sẽ bao gồm 1716 byte. 2.2 GIAO THỨC CÀI ĐẶT I2C ADV7181B hỗ trợ một giao diện kết nối 2 dây tuần tự “a-wire serial interface” I2C. Hai ngõ vào : dữ liệu tuần tự SDA, xung clock tuần tự SCLK mang thông tin giữa ADV7181B với bộ điều khiển hệ thống I2C. Mỗi thiết bị tới (Slave) sẽ được nhận ra bởi một địa chỉ duy nhất. Các chân I2C của ADV7181B cho phép người dùng cài đặt, cấu hình bộ mã hóa và đọc ngược lại dữ liệu VBI (vertical blank interval) bắt được. ADV7181B có 4 địa chỉ Slave cho tất cả thao tác đọc và ghi phụ thuộc vào mức logic của chân ALSB. ALSB điều khiển bit 1 của địa chỉ Slave (Slave_address[1] ) bởi việc thay đổi chân này có thể điều khiển được cả 2 bộ ADV7181B mà không có sự xung đột vì trùng địa chỉ Slave. Bit thấp nhất của địa chỉ Slave( LSB hay là Slave_address[0] ) quyết định thao tác ghi hay đọc: mức 1 đọc và mức 0 thì ghi. Ở đây ta chỉ sử dụng 1 bộ ADV7123, giao thức I2C chủ yếu dùng để nạp dữ liệu cho các thanh ghi nên chọn địa chỉ Slave cho chip mã hóa này là 0x40h từ bảng giá trị địa chỉ I2C Slave dưới đây: Để điều khiển thiết bị trên Bus thì phải có một giao thức đặc biệt đi kèm. Đầu tiên Master sẽ khởi động truyền dữ liệu bằng việc thiết lập điều kiện bắt đầu (SDA từ 1 xuống 0 trong khi SCLK vẫn ở mức cao) ở đây ta gọi là START, nó ám chỉ rằng theo sau đó là một luồng địa chỉ hay dữ liệu. Các ngoại vi đáp trả lại START và dịch chuyển 8 bit tiếp theo (7 bit địa chỉ và 1 bit đọc/ghi), các bit này được truyền từ bit cao (MSB) đến thấp (LSB). Các ngoại vi khi đã nhận ra các địa chỉ được truyền thì đáp ứng bằng cách giữ SDA = 0 trong toàn bộ chu kỳ thứ 9 của xung clock gọi là ACK. Các thiết bị khác thì sẽ rút khỏi bus tại điểm này và bảo toàn trạng thái IDE (khi cả SDA và SCLK đều ở mức cao để cho các thiệt bị theo dõi 2 line này, chờ START và địa chỉ được truyền đúng). Bit đọc/ghi chỉ ra hướng của dữ liệu, LSB = 0/1 thì master ghi/đọc thông tin vào/từ ngoại vi. ADV7181B hoạt động như thiết bị Slave tiêu chuẩn trên Bus, chứa 196 địa chỉ con (Subaddress là độ lệch của địa chỉ cần thao tác với địa chỉ thiết bị) để cho phép truy cập các thanh ghi nội. Điều đó giải thích rằng byte đầu tiên là địa chỉ của thiết bị và byte thứ 2 là địa chỉ con đầu tiên. Các địa chỉ con này tự động tăng dần cho phép truy đọc/ghi ở địa chỉ con bắt đầu. Sự truyền dữ liệu thì luôn bị ngắt bởi điều kiện dừng (STOP). Người dùng có thể truy cập tới bất cứ duy nhất 1 thanh ghi ở địa chỉ con trên cơ sở 1-1 khi không có sự cập nhật toàn bộ các thanh ghi. Ở đề tài này ta không sử dụng chế độ cập nhật toàn bộ mà chỉ truy cập vào các thanh ghi cần thiết ở các địa chỉ con trên cơ sở 1-1. START và STOP có thể xuất hiện ở bất kì đâu trong sự truyền dữ liệu, nếu các điều kiện này được khẳng định ở ngoài chuỗi liên tục với các thao tác đọc và ghi thông thường, thì nó tác động làm bus trở về trạng thái IDE. Nếu địa chỉ người dùng phát ra không phù hợp (invalid) thì ADV7181B sẽ không gửi xác nhận ACK và trở về trạng thái IDE. Nếu các địa chỉ con tự động tăng dần rồi vượt quá giới hạn địa chỉ con cao nhất: • Nếu đang đọc thì những giá trị chứa đựng trong thanh ghi có địa chỉ con cao nhất sẽ được tiếp tục đọc cho đến khi Master phát 1 NACK (SDK không bị đưa xuống mức thấp trong toàn bộ chu ky thứ 9) để chỉ rằng việc đọc kết thúc. • Nếu đang ghi thì những giá trị của byte không phù hợp sẽ không được load. Hình 2.1: Truyền dữ liệu trên bus và chuỗi đọc và ghi tuần tự với giao thức I2C  Truy cập các thanh ghi : MPU có thể viết hoặc đọc các thanh ghi ngoại trừ các địa chỉ con, chúng chỉ được ghi, chúng chỉ ra các thanh ghi mà tác vụ đọc hay ghi tiếp theo truy cập đến. Mọi sự giao tiếp với phần này thông qua Bus START với một sự truy cập các thanh ghi này. Các thao tác ghi hay đọc sẽ được thực hiện từ địa chỉ đích, rồi tăng lên địa chỉ tiếp theo đến khi một lệnh STOP trên Bus được thực thi.  Lập trình các thanh ghi: cấu hình cho từng thanh ghi, thanh ghi giao tiếp gồm 8 bit chỉ được ghi. Sau khi thanh ghi này được truy cập trên Bus và một thao tác đọc/ghi được lựa chọn, các địa chỉ con được cài đặt chỉ ra các thanh ghi mà tác vụ sẽ đặt tới.  Chọn lựa thanh ghi: (SR đến SR0) những bit này được cài đặt để chỉ ra địa chỉ bắt đầu được yêu cầu.  Chuỗi I2C : được sử dụng khi cần các thông số vượt quá 8 bit, vì vậy nó phải được phân phối trên ít nhất 2 thanh ghi của I2C: Khi một thông số được thay đổi bởi 2 lần ghi thì nó có thể giữ giá trị không phù hợp (invalid) trong khoảng thời gian lần đầu và lần cuối I2C được hoàn thành, có nghĩa là các bit đầu của nó có thể mang giá trị mới trong khi các bit còn lại vẫn giữ giá tri cũ. Để tránh sai sót này chuỗi I2C sẽ giữ các bit giá trị cập nhật của các thông số trong bộ nhớ cục bộ, và các bit của chuỗi I2C được cập nhật với nhau một lần khi tác vụ ghi vào thanh ghi cuối cùng hoàn thành. Tác vụ hợp lý trên chuỗi I2C sẽ dựa trên cơ sở sau: các thanh ghi dành cho chuỗi I2C sẽ được ghi theo thứ tự tăng dần địa chỉ các thanh ghi. Ví dụ: HSB[10:0] thì ghi lên 0x34 trước rồi ngay lập tức ghi thêm vào 0x35. . 2. CHÍP MÃ HÓA TÍN HIỆU VIDEO ADV7181B 2.1 CHỨC NĂNG VÀ DẠNG DỮ LIỆU NGÕ RA Nguồn ảnh cần xử lý là tín hiệu analog video do DVD. Chuẩn Video ITU – RBT601: Chuẩn ITU – RBT 610/656 định nghĩa một thiết kế cho việc mã hóa một khung bao gồm 525 (hoặc 625) line tín hiệu video

Ngày đăng: 04/10/2013, 00:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan