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

BÁO CÁO ĐỒ ÁN TIN HỌC 2013

21 641 1

Đ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

Định dạng
Số trang 21
Dung lượng 4,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu và viết chương trình cơ chế nhận và xuất tín hiệu video sử dụng card ADSP BF533 Yêu cầu: Ngôn ngữ lập trình sử dụng CC++Assemly… Chương trình cần phải nhận và xuất dòng dữ liệu video từ card trên.

Trang 1

Trang 1

LỜI CẢM ƠN

Chúng em xin chân thành cám ơn thầy TS.Đặng Thành Tín và thầy Huỳnh Xuân Cảnh đã tận tình hướng dẫn, chỉ bảo và nhắc nhở những thiếu sót trong đề tài Chính sự nhiệt tình chỉ dẫn của các thầy đã giúp chúng em hoàn thành đồ án khá tốt, đạt được những yêu cầu cơ bản

mà đề tài đặt ra Và qua đó, chúng em đã hiểu thêm về card giao tiếp video qua máy tính… Mặc dù có thể còn một vài thiếu sót nhưng dù sao chúng em cũng đã cố gắng hết sức để hoàn thành đề tài này Chúng em xin chân thành cám ơn các thầy

Bên cạnh đó, chúng em xin chân thành gửi lời cám ơn đến Phòng máy tính – Khoa Điện - Điện tử đã tạo điện kiện tốt nhất để nhóm chúng em có thể hoàn thành đồ án

Chúng em xin gửi lời cám ơn đến tất cả

Tp.Hồ Chí Minh, ngày 19 tháng 06 năm 2013 Nhóm sinh viên thực hiện

Thiều Hữu Trung

Lê Quang Long

Trang 2

Phần A: GIỚI THIỆU ĐỀ TÀI……… Trang3

I.YÊU CẦU ĐỀ TÀI ……… Trang3

II.HƯỚNG TÌM HIỂU……… Trang3

PHẦN B: NỘI DUNG ĐỀ TÀI……… Trang4

1 Tổng quan về ADSP BF533 Processor:……… Trang4

2 Sơ đồ mắc dây và cách vận hành sử dụng Card ADSP BF533………Trang6

3 Nội dung soure code ShowFrame.c:……… … Trang7

3.1Một vài thông số ban đầu:……….……… Trang7

Trang 3

Trang 3

Phần A: GIỚI THIỆU ĐỀ TÀI

I.Yêu cầu của đề tài :

Đề tài số 10: Tìm hiểu và viết chương trình cơ chế nhận và xuất tín hiệu video sử dụng

card ADSP BF533

Yêu cầu:

- Ngôn ngữ lập trình sử dụng C/C++/Assemly…

- Chương trình cần phải nhận và xuất dòng dữ liệu video từ card trên

II Hướng tìm hiểu:

 Tìm hiểu tổng quan phần cứng và cách vận hành của card ADSP BF533

 Đọc tìm hiểu sour code ShowFrame.c

 Cách thức thay đổi thới gian bắt ảnh và cách bắt ảnh từ Dish video từ đầu DVD qua card ADSP BF533

Trang 4

Trang 4

Phần B : NỘI DUNG ĐỀ TÀI

1 Tổng quan về ADSP BF533 Processor:

ADSP – BF533 là một trong những bộ vi xử lý thuộc họ Blackfin (ADSP – BF532, ADSP – BF532) có hiệu suất lớn hơn, công suất thấp sơn nhưng chúng dễ dàng tương thích code hơn những bộ vi xử lý trước

Hệ thống thiết bị ngoại vi liên quan đến bộ vi xử lý này:

➢ Parallel Peripheral Interface (PPI)

➢ Serial Ports (SPORTs)

➢ Serial Peripheral Interface (SPI)

➢ General-Purpose timers

➢ Universal Asynchronous Receiver Transmitter (UART)

➢ Real-Time Clock (RTC)

➢ Watchdog timer

➢ General-purpose I/O (programmable flags)

Sơ đồ khồi của bộ vi xử lý:

Trang 5

Trang 5

Trang 6

Trang 6

2 Sơ đồ mắc dây và cách vận hành sử dụng Card ADSP BF533:

2.1 Sơ đồ mắc dây vào Card ADSP BF533:

2.2 Cách vận hành :

Bước 1: Lắp dây như trên Khởi động máy tính , đầu đĩa DVD và cấp nguồn cho Card

Bước 2: Cho chương trình VisualDSP+++ và đầu đĩa DVD chạy

Bước 3: Mở sourecode ShowFrame và chạy trên VisualDSP+++

Bước 4: Buid sourecode lên card và sau đó cho Run rồi quan sát kết quả thu được Nếu chưa có thì thực hiện lại các bước trên

Dây từ đầu CD

Dây từ card ra và chuyển thành S-video

để vào TV

SW1 và SW2 (ở mặt sau) tất cả off

SW3: 1-5 OFF

6 ON

SW9: 1-4 ON 5-6 OFF

Nguồn cho card

Cổng USB nối với máy tính

Trang 7

Trang 7

2 Nội dung soure code ShowFrame.c:

3.1 Một vài thông số ban đầu:

#define USE_LOOPBACK // sử dụng vòng lặp

#define PAL_FRAME //sử dụng khung hình song song

=> set các thông số như sau:

#if defined(PAL_FRAME) // nếu sử dụng khung hình song song

#define FRAME_DATA_LEN 1728 // Chiều dài dữ liệu trên một hàng PAL video

#define NUM_LINES 625 // Số hàng trên một khung hình

#define ACTIVE_FIELD1 22 // số hàng của first active field1

#define ACTIVE_FIELD2 335 // số hàng của of first active field2

#define HORIZONTAL_BLANKING 72 // chiều rộng (32bits) của horizontal blanking

#define NUM_LINES_ACTIVE 288 // Số hàng chủ động trên một khung hình

#else

#endif

Kích thước của một khung hình=FRAME_DATA_LEN*NUM_LINES=1728*625

#define FRAME_SIZE FRAME_DATA_LEN*NUM_LINES

Chiều dài dữ liệu trên một hàng PAL video, 32 bit=FRAME_DATA_LEN/4=1728/4=432

#define FRAME_DATA_LEN_32BIT FRAME_DATA_LEN/4

int Resultat=0; // response count

// initialize the system services

InitSystemServices();

// enable all LED's

for(j=0;j<EZ_NUM_LEDS;j++)

Trang 8

// initialize the device manager

Resultat = adi_dev_Init(DevMgrData, // pointer to data for the device manager to use

sizeof(DevMgrData), // size of the data in bytes

&ResponseCount, // location where the number of devices that

//can be managed will be stored &DeviceManagerHandle,// location where the device manager

//handle will be stored NULL); // parameter for adi_int_EnterCriticalRegion() function

//(always NULL for standalone and VDK)

StartADV7183();

StartADV7171();

//last button(SW7) isn't pushed => work

while (ezIsButtonPushed(EZ_LAST_BUTTON) == FALSE) ;

// close the device

Trang 9

// initialize the interrupt manager

ezErrorCheck( adi_int_Init(IntMgrData, // pointer to memory for interrupt manager to use sizeof(IntMgrData), // memory size (in bytes)

&i, // location where the number of secondary handlers

//that can be supported will be stored NULL)); // parameter for adi_int_EnterCriticalRegion

//(always NULL for VDK and standalone systems)

// hook the exception and hardware error interrupts

ezErrorCheck( adi_int_CECHook(3, ExceptionHandler, NULL, FALSE));

ezErrorCheck( adi_int_CECHook(5, HWErrorHandler, NULL, FALSE));

// initialize the dma manager

ezErrorCheck(adi_dma_Init(DMAMgrData, // pointer to memory for the DMA manager to

//use sizeof(DMAMgrData), // memory size (in bytes)

&i, // location where # of DMA channels is stored &DMAManagerHandle,// location where DMA manager handle is

//stored NULL)); // parameter for adi_int_EnterCriticalRegion

//(always NULL for VDK and standalone systems) // return

}

3.4 ezInit:

*Thanh ghi pEBIU_AMGCTL

Trang 10

Trang 10

EBIU_AMGCTL = 0x00FF

AMCKEN=1: kích hoạt CLKOUT

AMBEN=111: cả 4 bank0, bank1, bank2, bank3 kích hoạt

CDPRIO=0: lõi được ưu tiên hơn DMA cho sự truy cập từ bên ngoài

*Thanh ghi EBIU_AMGCTL0

Trang 11

Trang 11

*Thanh ghi EBIU_AMGCTL1

Trang 12

Trang 12

Giá trị: EBIU_AMGCTL0=0x7bb07bb0; EBIU_AMGCTL1=0x7bb07bb0

BxRDYEN và BxRDYPOL đều = 0: không có ARDY

BxTT=00: thời gian chuyển dịch của bank x: 4 chu kì

BxST=11: thời gian cài đặt cùa bank x: 3 chu kì

BxHT=10: thời gian chờ của bank x: 2 chu kì

BxRAT=b16=10112: thời gian đọc của bank x: 11 chu kì

BxWAT=716=01112: thời gian ghi của bank x: 7 chu kì

x= 0,1,2,3

code

Trang 13

Trang 13

void ezInit(u32 NumCores)

{

// configure async memory

#if defined( ADSP_EDINBURGH ) // ADSP-BF533 EZ-Kit specific info

*pEBIU_AMBCTL0 = 0x7bb07bb0; // Write access time = 7 cycles, read access time = 11

//cycles, no ARDY *pEBIU_AMBCTL1 = 0x7bb07bb0; // Hold time = 2 cycles, setup time = 3 cycles,

//transition time = 4 cycles *pEBIU_AMGCTL = 0x00FF;

#endif

// configure flash

#if defined( ADSP_EDINBURGH ) // ADSP-BF533 EZ-Kit specific info

*pFlashA_PortA_Out = 0; // resets port A to initial value

*pFlashA_PortA_Dir = 0xFF; // configure everything on port A as outputs

*pFlashA_PortB_Out = 0; // resets port B to initial value

*pFlashA_PortB_Dir = 0x3f; // configure everything on port B as outputs

ezEnableVideoDecoder();// enable AD7183

ezDelay(500); // wait for 7183 to come out of reset

// open the ad7183 driver

ezErrorCheck(adi_dev_Open(DeviceManagerHandle, // DevMgr handle

Trang 14

Trang 14

&ADIADV7183EntryPoint, // pdd entry point

(void *)0x7183, // client handle (0x7183 will be

//given to the AD7183 decoder //driver)

&AD7183DriverHandle, // DevMgr handle for this

//device ADI_DEV_DIRECTION_INBOUND,// data direction for this device DMAManagerHandle, // handle to DmaMgr for this

//device

CallbackFunction)); // client's callback function

/********* open AD7183-PPI **************************************/

//Send Pseudo TWI Configuration table to AD7183 if register configuratian is needed

//ezErrorCheck(adi_dev_Control(AD7183DriverHandle,ADI_AD7183_CMD_SET_TWI_CON FIG_TABLE,(void*)PseudoTWIConfig));

// open the AD7183-PPI device 0 (see Schematic)

ezErrorCheck(adi_dev_Control(AD7183DriverHandle, ADI_AD7183_CMD_OPEN_PPI, (void *)0));

/******************* AD7183 Inbound Buffers ***************************/

// populate the buffers that we'll use for the PPI input

Trang 15

/********* AD7183 registers access **************************************/

// Send Pseudo TWI Configuration table to AD7183 if register configuratian is needed

ezErrorCheck(adi_dev_Control(AD7183DriverHandle,ADI_AD7183_CMD_SET_TWI_CONF IG_TABLE,(void*)PseudoTWIConfig));

// do the register configuration here if needed

}

Trang 16

ezEnableVideoEncoder();// enable AD7171

//ezDisableVideoEncoder();// enable AD7171

// open the ad7171 driver

ezErrorCheck(adi_dev_Open( DeviceManagerHandle, // device manager

//handle &ADIADV7171EntryPoint, // entry point of device driver to open

0, // the device number (0th AD7171)

(void *)0x7171, // client handle (0x7171 will be given

//to the AD7171 encoder driver) &AD7171DriverHandle, // location where AD7171 device

//driver handle will be stored ADI_DEV_DIRECTION_OUTBOUND,// direction the device is

//to be opened DMAManagerHandle, // DMA Manager handle

NULL, // DCB handle (NULL cause we want live

//callbacks) CallbackFunction)); // address of callback function

// configure the AD7171 driver(Set PPI Device number)

Trang 17

// populate AD7171 outbound buffers

Out1_Buffer2D.Data = (void*)sFrame0;// address of the data storage

Out1_Buffer2D.pNext = &Out2_Buffer2D;// point to the next buffer in the chain

Out2_Buffer2D.Data = (void*)sFrame1;// address of the data storage

Out2_Buffer2D.ElementWidth = sizeof(u32);

Out2_Buffer2D.XCount = (FRAME_DATA_LEN/2);

Trang 18

Out2_Buffer2D.pNext = NULL;// terminate the chain of buffers

// configure the ad7171 dataflow method

Trang 19

Trang 19

Trang 20

Trang 20

Trang 21

Trang 21

Ngày đăng: 08/05/2015, 22:00

TỪ KHÓA LIÊN QUAN

w