Thuật toán xử lý ảnh trên kit DSP Một trong những lĩnh vực được ứng dụng rất nhiều trong công nghiệp,trong y tế,trong quốc phòng là xử lý, phân tích hình ảnh và video. Để phát triển và cho phép người dùng thử nghiệm những ứng dụng này thì những kit phát triển DSP của TI có những tính năng và môi trường làm việc rất phù hợp. Các kit DSP nói riêng và kit DSP EVMDM642 nói riêng có mức độ tích hợp và tốc độ xử lý rất cao.,nó đáp ứng được những yêu cầu trong lĩnh vực xử lý số ,tín hiệu,và xử lý hình ảnh,xử lý video. Vì những ứng dụng rộng rãi của của lĩnh vực này nên nhóm sinh viên chúng em đã quyết định chọn đề tài “Tìm hiểu về DSP Evaluation board EVMDM642 ứng dụng xử lý ảnh”. Để có thể thực hiện và hoàn thành đề tài này em xin chân thành cảm ơn thầy TS. Lê Dũng và các thầy cô trong bộ môn đã tận tình giúp đỡ và tạo mọi điều kiện thuận lợi nhất về phương tiên,dụng cụ cũng như về mặt kiến thức cho chúng em trong suốt quá trình thực hiện đề tài. Nhóm sinh viên thực hiện đã hoàn thành được những yêu cầu mà đề tài đồ án đặt ra đó là tìm hiểu về hoạt động của board EVMDM642 và cài đặt một số những thuật toán xử lý ảnh sử dụng board này.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG
Giảng viên hướng dẫn: TS.LÊ DŨNG
Sinh viên thực hiện: ĐÀO ĐĂNG TOÀN
NGUYỄN VĂN TIỆP
LÊ CAO BẰNG
Hà Nội, 6-2013
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG
Giảng viên hướng dẫn: TS.LÊ DŨNG
Sinh viên thực hiện: ĐÀO ĐĂNG TOÀN
NGUYỄN VĂN TIỆP
LÊ CAO BẰNG
Cán bộ phản biện: NCS.TRƯƠNG CAO DŨNG
ThS.NGUYỄN QUANG MINH
TS.TRẦN ĐỖ ĐẠT
TS.NGÔ VŨ ĐỨC
TS.NGUYỄN VŨ SƠN
Hà Nội, 6-2013
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Độc lập - Tự do - Hạnh phúc
-
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Đào Đăng Toàn Số hiệu sinh viên: 20082691
Họ và tên sinh viên: Nguyễn Văn Tiệp Số hiệu sinh viên: 20082676
Họ và tên sinh viên: Lê Cao Bằng Số hiệu sinh viên: 20080171 Khoá:53 Khoa: Điện tử - Viễn thông Ngành: Điện
tử
1 Đầu đề đồ án: Tìm hiểu về DSP Evaluation board EVMDM642 ứng dụng
các thuật toán xử lý ảnh
2 Các số liệu và dữ liệu ban đầu:
Một camera tương tự, một board DSP EVMDM642, một bộ nạp blackhawk
bhusb-560m và các dây nối đi kèm
3 Nội dung các phần thuyết minh và tính toán:
5 Họ tên giảng viên hướng dẫn: TS Lê Dũng
6 Ngày giao nhiệm vụ đồ án: 15/3/2013
7 Ngày hoàn thành đồ án: 4/6/2013
Ngày tháng năm
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm
Cán bộ phản biện
BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 4TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: Đào Đăng Toàn Số hiệu sinh viên: 20082691 Họ và tên sinh viên: Nguyễn Văn Tiệp Số hiệu sinh viên: 20082676 Họ và tên sinh viên: Lê Cao Bằng Số hiệu sinh viên: 20080171 Khoá:53 Khoa: Điện tử - Viễn thông Ngành: Điện tử Giảng viên hướng dẫn: TS.Lê Dũng Cán bộ phản biện: : NCS.Trương Cao Dũng ThS Nguyễn Quang Minh TS TRần Đỗ Đạt TS Ngô Vũ Đức TS Nguyễn Vũ Sơn 1 Nội dung thiết kế tốt nghiệp:
2 Nhận xét của cán bộ phản biện:
Trang 5
Ngày tháng năm Cán bộ phản biện ( Ký, ghi rõ họ và tên )
Trang 6LỜI MỞ ĐẦU
Ngày nay khi khoa học và công nghệ ngày một phát triển, đặc biệt là lĩnh vực công nghệ số,công nghệ điện tử Trong lĩnh vực điện tử yêu cầu về tốc độ xử lý, cũng như kích thước của những linh kiện,sản phẩm ngày càng cao Tốc độ xử lý của chip được cải thiện rất nhanh vì vậy chúng có khả năng xử lý tốt trong các lĩnh vực công nghệ âm thanh và hình ảnh
Một trong những lĩnh vực được ứng dụng rất nhiều trong công nghiệp,trong
y tế,trong quốc phòng là xử lý, phân tích hình ảnh và video Để phát triển và cho phép người dùng thử nghiệm những ứng dụng này thì những kit phát triển DSP của
TI có những tính năng và môi trường làm việc rất phù hợp Các kit DSP nói riêng
và kit DSP EVMDM642 nói riêng có mức độ tích hợp và tốc độ xử lý rất cao.,nó đáp ứng được những yêu cầu trong lĩnh vực xử lý số ,tín hiệu,và xử lý hình ảnh,xử
lý video
Vì những ứng dụng rộng rãi của của lĩnh vực này nên nhóm sinh viên chúng
em đã quyết định chọn đề tài “Tìm hiểu về DSP Evaluation board EVMDM642 ứng dụng xử lý ảnh”
Để có thể thực hiện và hoàn thành đề tài này em xin chân thành cảm ơn thầy
TS Lê Dũng và các thầy cô trong bộ môn đã tận tình giúp đỡ và tạo mọi điều kiện thuận lợi nhất về phương tiên,dụng cụ cũng như về mặt kiến thức cho chúng em trong suốt quá trình thực hiện đề tài
Nhóm sinh viên thực hiện đã hoàn thành được những yêu cầu mà đề tài đồ án đặt ra đó là tìm hiểu về hoạt động của board EVMDM642 và cài đặt một số những thuật toán xử lý ảnh sử dụng board này
Mặc dù chúng em đã cố gắng và nỗ lực hết mình để hoàn thành đồ án tốt nghiệp này, song chắc chắn không thể tránh khỏi những sai sót và hạn chế Vì vậy, chúng
em rất mong sẽ nhận được sự đóng góp ý kiến của thầy cô giáo và các bạn để đề tài tốt nghiệp này được hoàn thiện hơn Xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
TÓM TẮT ĐỒ ÁN
Xử lý hình ảnh,video là một lĩnh vực mang tính khoa học và công nghệ
Trang 7Những năm gần đây sự phát triển của lĩnh vực này ngày càng nhanh,kích thích các trung tâm nghiên cứu phát triển ứng dụng của nó
Đồ án tập trung nghiên cứu cách sử dụng bộ kit phát triển của TI: board EVMDM642 Bởi vì sự chuyên dụng trong việc xử lý hình ảnh , nên sự nghiên cứu
về hoạt động của kit là cần thiết Đồng thời đồ án cũng đưa ra những kết quả ban đầu trong việc thử nghiệm các thuật toán xử lý hình ảnh,video
Nội dung của đồ án bao gồm 3 chương:
Chương I : Khái quát chung
Chương II : Quy trình xử lý dữ hiệu video của DSP board EVMDM642 Chương III : Quy trình thực hiện đồ án và các kết quả thu được
ABSTRACT Image processing and video processing is a scientific and technological field In few recent years,the development of the field is growing rapidly, It stimulated research and development centers to develop its applications
We’s thesis focused on the usage of TI development kits: EVMDM642 board Because the specialization in image processing, so reseaching about the activities of this kit is necessary Beside, the thesis also provides the initial results
of the testing of image, video processing algorithms
The contents of the thesis includes 3 chapters:
Chapter I : Overview
Chapter II : The procedure video data process of DSP board EVMDM642 Chapter III : The implementation procedure of thesis and the results obtained
PHÂN CÔNG NHIỆM VỤ
Nhiệm vụ thực hiện Nhiệm vụ chung
Trang 8Đào Đăng
Toàn 20082691
Thực hiện thuật toán làm nổi đường biên sobel và quick mask ,tăng giảm độ sáng của
ảnh
Tìm hiểu về cách thức hoạt động của trình biên dịch Code Composer Studio cũng như hoạt động của board DSP EVMDM642 Quá trình xử lý luồng dữ liệu video Cách thức hoạt động và lưu trữ của các bộ đệm và bộ nhớ
Nguyễn Văn
Tiệp 20082676
Cách thức tác động lên từng
ô nhớ của bộ nhớ DSP, viết dòng chữ chạy trên màn hình, hiển thị hình ảnh của ảnh đảo ngược,xử lý lọc Gauss cho ảnh
Lê Cao Bằng 20080171
Chuyển đổi từ ảnh mầu sang ảnh grayscale.phân chia ,hiển thị nhiều ảnh lên màn
hình
TÓM TẮT ĐỒ ÁN 6PHÂN CÔNG NHIỆM
VỤ……….8
DANH SÁCH HÌNH VẼ 10DANH SÁCH BẢNG BIỂU 12
Trang 9DANH SÁCH CÁC TỪ VIẾT TẮT 14
CHƯƠNG 1: KHÁI QUÁT CHUNG 17
1.1 Tổng quan về các ứng dụng của các bộ DSP 17
1.1.1 Các ưu điểm của xử lý số tín hiệu 17
1.1.2 Sử dụng DSP để thực hiện: 17
1.1.3 Các lĩnh vực ứng dụng DSP: 17
1.1.4 Đặc điểm của các bộ DSP: 18
1.2 Quá trình thực hiện 19
1.3 Nội dung tìm hiểu về board TMS320DM642 20
1.3.1 Lắp đặt phần cứng 20
1.3.2 Các thành phần phần cứng của board 21
1.4 Code Composer Studio và ngôn ngữ lập trình 30
1.4.1 Giới thiệu tổng quan về CCS 30
1.4.2 Ngôn ngữ lập trình trên CCS với DSP 31
1.4.3 Download,cài đặt và làm việc với Code Composer Studio 32
CHƯƠNG 2: QUY TRÌNH XỬ LÝ DỮ LIỆU VIDEO CỦA DSP BOARD EVMDM642 47
2.1 Sơ đồ đường đi của luồng dữ liệu video 47
2.2 Video Capture Port 48
2.2.1 Cấu hình Video Capture FIFO 48
2.2.2 Chọn chế độ thu video 50
2.2.3 Chế độ thu video chuẩn BT 656 51
2.2.4 Các kênh thu BT.656 51
2.2.5 Mã tham chiếu thời gian BT.656 52
2.2.6 Cửa sổ video BT.656 54
2.2.7 Lấy mẫu dữ liệu BT.656 56
2.2.8 Cách thức đóng gói trong bộ đệm của BT.656 56
2.2.9 Các chế độ thu videoY/C 59
2.2.10 Chế độ bắt dữ liệu Raw 63
2.3 Các cổng video hiển thị 67
2.3.1 Các chế độ lựa chọn hiển thị 67
Trang 102.3.2 Chế độ hiển thị video dạng BT.656 72
2.3.3 Chế độ hiển thị video Y/C 75
2.3.4 Chế độ hiển thị ảnh thô (RAW) 77
2.3.5 Tổ chức trường và khung hình trong hiển thị video 79
2.3.6 Hiển thị video dạng dữ liệu thô (raw data mode) 81
2.3.7 Hiển thị video dạng BT.656 hoặc chế độ Y/C 83
CHƯƠNG 3: QUY TRÌNH THỰC HIỆN ĐỒ ÁN VÀ CÁC KẾT QUẢ THU ĐƯỢC 86
3.1 Chương trình gốc 86
3.2 Thu dữ liệu từ camera,hiển thị video lên màn hình 87
3.3 Các phần đã thực hiện 89
3.3.1 Chuyển video từ mầu sang ảnh grayscale và chia màn hình làm bốn phần, mỗi phần hiển thị một ảnh 89
3.3.2 Thực hiện thuật toán nổi đường biên.Tăng giảm độ sáng của ảnh 94
3.3.3 Phương pháp lọc gauss, thuật toán viết dòng chữ chạy và đảo ảnh 101
KẾT LUẬN 112
DANH MỤC TÀI LIỆU THAM KHẢO 113
DANH SÁCH HÌNH VẼ Chương 1 Hình 1 1 Ví dụ về cài đặt phần cứng 21
Hình 1 2 Sơ đồ khối DM642 EVM 22
Hình 1 3 Giao diện bộ nhớ Flash 24
Hình 1 4 Sơ đồ board layout 27
Hình 1 5 Bản đồ bộ nhớ KIT DM642 28
Hình 1 6 Sơ đồ biên dịch của chương trình 31
Hình 1 7 Bắt đầu cài đặt CCS 3.1 34
Hình 1 8 Lựa chọn cài đặt CCS 3.1 34
Hình 1 9 Lựa chọn dòng chip hỗ trợ 35
Hình 1 10 Hoàn thành cài đặt CCS3.1 35
Hình 1 11 Biểu tượng của chương trình sau khi cài đặt 36
Trang 11Hình 1 12 Cài đặt cho CCS3.1 36
Hình 1 13 Lựa chọn thiết lập 37
Hình 1 14 Thiết lập Properties cho DM642 37
Hình 1 15 Cửa sổ làm việc của CCS 3.1 38
Hình 1 16 Lựa chọn mở project 38
Hình 1 17 Màn hình cài đặt CCS 5.3 39
Hình 1 18 Lựa chọn thư mục làm việc 39
Hình 1 19 Tùy chọn License 40
Hình 1 20 Màn hình làm việc CCS 5.3 40
Hình 1 21 Tạo mới 1 project 41
Hình 1 22 Tùy chọn cho project khởi tạo 42
Hình 1 23 Thêm file cho project 43
Hình 1 24 Tùy chọn thêm file 43
Hình 1 25 Build 1 project 44
Hình 1 26 Nạp file out xuống KIT 45
Hình 1 27 Thiết lập file out mặc định cho debug 46
Chương 2 Hình 2 1 Sơ đồ luồng dữ liệu video 47
Hình 2 2 Cấu hình BT 656 Video Capture FIFO 48
Hình 2 3 Cấu hình 8/10-Bit Raw Video Capture và TSI Video Capture FIFO 49
Hình 2 4 Cấu hình Y/C Video Capture FIFO 50
Hình 2 5 Cấu hình 16/20-Bit Raw Video Capture FIFO 50
Hình 2 10 Các tham số video capture 55
Hình 2 11 Tiêu chuẩn chung của chuẩn thu video 55
Hình 2 12 Bit BT.656 FIFO Packing 57
Hình 2 13 10-Bit BT.656 FIFO Packing 58
Hình 2 14 Đóng gói 10-Bit BT.656 Dense FIFO 59
Hình 2 15 Đóng gói 10-Bit Y/C FIFO 62
Hình 2 16 Đóng gói chế độ 10-Bit Y/C FIFO dày đặc 63
Hình 2 17 Đóng gói dữ liệu raw 8-bit trong FIFO 65
Hình 2 18 Đóng gói dữ liệu raw 10-bit trong FIFO 66
Hình 2 19 Đóng gói dữ liệu raw10-Bit dày trong FIFO 66
Hình 2 20 Đóng gói dữ liệu raw 16-bit 66
Hình 2 21 Đóng gói dữ liệu raw trong FIFO 67
Hình 2 22 Quá trình quét 1 ảnh I 68
Hình 2 23 Quá trình quét 1 ảnh P 68
Hình 2 24 Khung hình 1 ảnh I 69
Hình 2 25 Khung hình 1 ảnh P 70
Hình 2 26 Hoạt động bộ đếm FLCOUNT 71
Trang 12Hình 2 27 Hoạt động của bộ đếm FLCOUNT 71
Hình 2 28 Chuỗi đầu ra của định dạng BT656 73
Hình 2 29 Timing theo phương ngang mode BT656 (với kích thước khung là 525) 73
Hình 2 30 Giải đóng gói ở chế độ BT656 8 bit 75
Hình 2 31 Timing theo phương ngang chế độ Y/C 76
Hình 2 32 Giải đóng gói bộ đệm FIFO chế độ Y/C 8- bit 77
Hình 2 33 Giải đóng gói bộ đệm dữ liệu ảnh thô 79
Chương 3 Hình 3 1 Build chương trình trên CCS3.1 86
Hình 3.2 Bố trí màn hình hiển thị 92
Hình 3.3.2.1 Hiển thị các ảnh khác nhau trên màn hình……… 103
Hình 3.3.3.1 Bố trí màn hình hiển thị……… 108
Hình 3.3.3.2 Kích thước của một chữ……… … 109
Hình 3.3.3.3 Cách chuyển dữ liệu của một dòng của ký tự thành giá trị trung gian sử dụng trong hàm gán giá trị cho mảng……… 110
DANH SÁCH BẢNG BIỂU Chương 1 Bảng 1 1 Chức năng các chip select 22
Bảng 1 2 Các tần số có sẵn sử dụng xung clock đầu vào 25Mhz 23
Bảng 1 3 Cấu hình các chân ECLKIN 23
Bảng 1 4 Địa chỉ và page 24
Bảng 1 5 Dải địa chỉ do CE1 quy định 25
Bảng 1 6 Chức năng các thanh ghi đồng bộ bộ nhớ 25
Bảng 1 7 Cấu hình switch S1 28
Bảng 1 8 Cấu hình switch S2 29
Bảng 1 9 Nguồn cung cấp cho các thành phần của board 29
Chương 2 Bảng 2 1 Các chế độ lựa chọnVideo Capture 50
Bảng 2 2 Mã tham chiếu thời gian video BT.656 52
Bảng 2 3 Các bít bảo vệ BT 656 53
Bảng 2 4 Sự sửa lỗi bởi các bit bảo vệ 53
Trang 13Bảng 2 5 Các chế độ hoạt động thu video raw 64Bảng 2 6 Bảng các chế độ hiển thị 67Bảng 2 7 Mã hóa quá trình hiển thị 80
Trang 14DANH SÁCH CÁC TỪ VIẾT TẮT
UART Universal Asinchonus Receiver Transmitter
SPDIF Sony/Philips Digital Interface Format
VDFRMSZ Video Display Frame Size Register
EEPROM Electrically Erasable Programmable Read-Only Memory
Trang 15BSL Board Support Libraries
DEDSEC Double Error Detection , Single Error Correction
VCTHRLD Video Capture Threshold Register
VCxSTRT1 Video Capture Channel x Field 1 Start Register
VCACTL Video Capture Channel A Control Register
VDCTL Video Display Control Register
Trang 16ILCOUNT Image Line Counter
VDFRMSZ Video Display Frame Size Register
VDHBLNK Video Display Horizontal Blanking Register
VDVBLKS1 Video Display Field 1 Vertical Blanking Start Register VDVBLKE1 Video Display Field 1 Vertical Blanking End Register
VDBLKE2 Video Display Field 2 Vertical Blanking End Register
VDVSYNE1 Video Display Field 1 Vertical Synchronization End Register
VDVSYNS2 Video Display Field 2 Vertical Synchronization Start
Register VDVSYNE2 Video Display Field 2 Vertical Synchronization End Register VDHSYNC Video Display Horizontal Synchronization Register
VDFLDT1 Video Display Field 1 Timing Register
VDFLDT2 Video Display Field 2 Timing Register
VDDISPEVT Video Display Display Event Register
VPIE Video Port Interrupt Enable Register
Trang 17CHƯƠNG 1: KHÁI QUÁT CHUNG 1.1 Tổng quan về các ứng dụng của các bộ DSP
1.1.1 Các ưu điểm của xử lý số tín hiệu
- Ít linh kiện hơn
- Hoạt động ổn định
- Ứng dụng rộng dãi
- Độ kháng nhiễu cao
- Ổn định với thay đổi nguồn nuôi
- Khả năng tự kiểm tra
Các hàm xử lý tín hiệu: nén tín hiệu,lấy trung bình,tính năng lượng, …
Các hàm phân tích phổ : DFT,IDFT, biến đổi sin,cosin …
Chuyển phát dữ liệu : Modem , máy fax , mạng LAN …
Xử lý tín hiệu âm thanh: tổng hợp âm thanh, các bộ trộn và hòa âm
Máy tính: điều khiển servo đĩa quang, mạng máy tính ,đồ họa hai chiều và ba chiều, bộ đồng xử lý toán học,máy tính laze , hệ thống đa nhiệm , âm thanh số …
Đo lường : lọc số , các bộ phân tích phổ, các máy phát tín hiệu
Trang 18Truyền hình: truyền hình số , màn hình độ phân giải cao
Xử lý tiếng nói : tổng hợp tiếng nói, nhận dạng tiếng nói
Trang 191.2 Quá trình thực hiện
Thứ tự các
bước thực
hiện đồ án
1 Chạy thử ,kiểm tra bo mạch, các
thiết bị và dây nối
Kiểm tra xem kit có hoạt động
tốt hay không
2 Tìm hiểu về phần cứng của kít
TMS320DM642 GDK
Tìm hiểu về các thành phần phần cứng và các chức năng của
chúng
3
Tìm hiểu về Code Composer Studio,ngôn ngữ sử dụng của CCS trong ứng dụng với kit
xuống kit và chạy thử
Kết nối kit với máy tính,biên dịch chương trình bằng CCS và nạp chương trinh qua emulator BH-USB 560M
Trang 207 Phát triển chương trình
Dựa vào chương trình nhỏ có trước ( hiển thị 8 thanh mầu tĩnh trên màn hình ) phát triển thành chương trình thu video
8 Mỗi người phát triển một
chương trình riêng
Từ chương trình thu video ở trên, mỗi người viết một chương trinh với những thuật toán khác nhau như trong phần nhiệm vụ
đã nêu
Từ những chương trình riêng biệt, tổng hợp lắp ghép để tạo ra một chương trình hoàn chỉnh
10 Kiểm tra chức năng chương
trình
Đánh giá kết quả thu được, kiểm tra sự thực hiện đúng đắn của chương trình và sửa lỗi
báo cáo
1.3 Nội dung tìm hiểu về board TMS320DM642
1.3.1 Lắp đặt phần cứng
Để chạy ví dụ, phần cứng phải được lắp đặt chính xác
Đầu tiên DM642 EVM phải được kết nối với nguồn tương thích
USB560 emulator phải được kết nối tới JTAG pin để tải code mô phỏng xuống board và điều khiển nó từ Code Composer Studio IDE
Nối nguồn tương thích cho emulator USB560-M
Trang 21thể )
Hình 1 1Ví dụ về cài đặt phần cứng 1.3.2 Các thành phần phần cứng của board
1.3.2.1 Sơ đồ khối của board
Trang 22Hình 1 2 Sơ đồ khối DM642 EVM 1.3.2.2 Các thuộc tính chính của board
Giao diện EMIF
DM642 kết hợp 64 bits bên ngoài giao diện bộ nhớ,4 chip enable chia không gian địa chỉ và cho phép đồng bộ và không đồng bộ ở 8,16,32 và 64 bits DM642 EVM sử dụng các “chip select” là CE0, CE1, và CE3 CE0 được định tuyến tới SDRAM có độ rộng bus là 64 bits CE1 được sử dụng cho 8 bit flash,UART và FPGA function CE3 được đặt cho chức năng đồng bộ Cả CE2 và CE3 được định tuyến tới giao diện kết nối card con
Bảng 1 1 Chức năng các chip select
Giao diện card con
Trang 23 Giao diện bộ nhớ SDRAM
DM642 EVM giao tiếp với SDRAM qua bus 64 bits trong không gian CE0 Không gian SDRAM (32 megabyte) được sử dụng để chứa chương trình,dữ liệu,và video Bus sử dụng một vòng khóa pha(PLL)bên ngoàiđể tạo tần số 133 Mhz cho SDRAM hoạt động với hiệu năng tối ưu Refresh cho SDRAM được xử lý tự động bởi DM642
PLL được sử dụng cho EMIF là một ICS512 Clock đầu vào PLL này là 25 Mhz Bảng sau biểu diễn tần số sẵn có sử dụng xung clock đầu vào 25 Mhz:rc
Bảng 1 2 Các tần số có sẵn sử dụng xung clock đầu vào 25Mhz
Bảng 1 3 Cấu hình các chân ECLKIN
Trang 24Flash Memory Interface
Hình 1 3 Giao diện bộ nhớ Flash
Giao diện UART
Dual UART ( TLC16C752) là bộ nhớ đã map vào nửa trên của không gian
Flash A0 – A18 A19 – A21
Trang 25CE1 của DM642 dọc theo thanh ghi đồng bộ FPGA Mỗi UART,A và B chiếm 8 vị trí CE1 được cấu hình cho 8 bit truy cập trên DM642 EVM, dải địa chỉ được show trong bảng sau:
Bảng 1 5 Dải địa chỉ do CE1 quy định
Giao diện đồng bộ bộ nhớ FPGA
FPGA có 10 thanh ghi đồng bộ bộ nhớ,cái thường có vị trí cao nhất của không gian CE1 Những biến thanh ghi thực hiện chức năng của chúng được liệt kê như ở dưới Nhiều thông tin thì có sẵn trên những thanh ghi này trong hướng dẫn sử dụng của TMS320DM642 EVM OSD FPGA
Bảng 1 6 Chức năng các thanh ghi đồng bộ bộ nhớ
Trang 260x9008 001D Reserved
0x9008 001E Reserved
EMIF Buffer/Decoder Control
Bộ đệm EMIF và hàm decode được thực hiện với thiết bị mảng logic GAL 16LV8D generic ,U15 Thiết bị thực hiện giải mã cơ bản cho flash và UART và điều khiển bộ đệm cho CE1,CE2 và CE3
Video Port/McASP Interfaces
DM642 có 3 cổng video on chip,những cổng này có thể chia ra để cho phép tùy chọn hàm như McASP hoặc SPDIF trên cổng 0 và cổng 1 DM642 EVM sử dụng tất cả ba cổng video này Cổng video 0 và cổng video 1 được sử dụng cho capture port và cổng video 2 được sử dụng như một cổng hiển thị Trong một cấu hinh EVM chuẩn,cổng video 0 và cổng video 1 được thiết lập cho việc chia ra để cho phép chức năng McASP được thực hiện và giao tiếp với một TLV320AIC23 stereo codec hoặc để giao tiếp với đầu ra SPDIF J9
Video Decoder Ports
Trên DM642 EVM chia ra các cổng video 0 và cổng video 1 được sử dụng như đầu vào capture: cổng capture 1 và cổng capture 2 Những cổng này giaotiếp với bộ giải mã video Philips SAA7115H Cổng video được chạy qua switch CBT để chúng có thể lựa chọn vô hiệu hóa sử dụng cable con Nửa bên kia của cổng được
sử dụng trên giao diện board McASP (cổng audio nối tiếp đa kênh ) Cổng capture 1 giao tiếp với nguồn video qua 1 jack loại RCA , J15 và 4 chân S-Video mini-din connector J16 Đầu vào có thể kết hợp với nguồn video như một DVD player hay video camera SAA7115 khả trình qua bus I2C của DM642 và có thể giao tiếp với phần lớn các chuẩn video như NTSC,PAL và SECAM bởi những chương trình tương thích với những thanh ghi nội trong bộ giải mã
Trang 27Hình 1 4 Sơ đồ board layout
Các thành phần khác như:
a Cổng mã hóa video
b FPGA Video Functions
c Giao diện AIC23
d Audio PLL/VCXO Circuit/Bộ tạo xung PLL1708
e Giao diện PCI
f Giao diện PCI EEPROM
g Giao diện Ethernet
h Giao diện HPI
i Giao diện I2C
j Giao diện SPDIF
k Daughter Card Interface
l FPGA
m DM642 Core CPU Clock
n Bộ thiết lập HDTV
1.3.2.4 Memory map
Họ C6000 ( C64xx ) của DSP có không gian địa chỉ lớn Code chương trình
và dữ liệu có thể được đặt bất kỳ nơi đâu trong một không gian địa chỉ thống nhất.Địa chỉ luôn luôn là 32 bits
Memory map biểu diễn không gian địa chỉ của vi xử lý DM642 ở cột bên trái với những chi tiết rõ ràng sử dụng mỗi vùng như thế nào ở bên phải Mặc định ,bộ
Trang 28nhớ bên trong được đặt ở vị trí bắt đầu của không gian địa chỉ
EMIF ( External Memory Interface ) có 4 vùng riêng biệt có thể đánh địa chỉ gọi là không gian Chip Enable ( CE0 – CE3 ) SDRAM chiếm giữ CE0 trong khi Flash,UART và FPGA được map tới CE1 Cable con sử dụng CE2 và CE3 CE3 được cấu hình cho hoạt động đồng bộ cho chức năng hiển thị màn hình và các thanh ghi đồng bộ khác thực hiện trong external FPGA
Hình 1 5 Bản đồ bộ nhớ KIT DM642 1.3.2.5 Thiết lập switch cấu hình
EVM board có hai vị trí switch cấu hình cho phép người sử dụng điều khiển các trạng thái hoạt động của DSP khi mà nó vừa mới thoát khỏi trạng thái reset Switch cấu hình được gắn nhãn là S1 và S2 trên EVM board
Switch 1 cấu hình “boot mode” sẽ được sử dụng khi DSP bắt đầu thực hiện Mặc định,switch được cấu hình để boot EMIF ( out of 8 bit flash ) trong mode little endian Bảng sau thể hiện thiết lập cho switch:
Bảng 1 7 Cấu hình switch S1
Trang 29off off No boot
1.3.2.6 Nguồn cung cấp cho board
EVM hoạt động ở điện áp đơn + 5V nguồn cấp từ bên ngoài kết nối với đầu vào chính ( J5 ) hoặc từ khe PCI.Bên trong, đầu vào +5V được kết nối vào trong +1,4V và +3.3V sử dụng cuộn dây điều chỉnh điện áp của Texas Instrument Nguồn cung +1,4V được sử dụng cho “DSP core” trong khi nguồn cung +3.3V được sử dụng cho “DSP I/O buffer” và tất cả các chíp khác trên board Dây nguồn là loại 2,5
mm barel-type plug
Bảng 1 9 Nguồn cung cấp cho các thành phần của board
Trang 30TP8 +3.3V DSP I/O and logic
1.4 Code Composer Studio và ngôn ngữ lập trình
1.4.1 Giới thiệu tổng quan về CCS
CCS cung cấp một IDE để kết hợp chặt chẽ những công cụ phần mềm CCS bao gồm những công cụ để sinh code như một trình biên dịch C, một assembler và một linker Nó có khả năng đồ họa và hỗ trợ gỡ lỗi thời gian thực
C compiler biên dịch một chương trình nguồn C với định dạng *.c thành một file assembly với định dạng *.asm Trình biên dịch assembler lại assembles một file *.asm thành file ngôn ngữ máy ( *.obj )
Linker tổng hợp các file đối tượng ngôn ngữ máy và đối tượng thư viện dùng như đầu vào để tạo ra các file thực thi *.out File thực thi này biểu diễn một định dạng file đối tượng chung được kết nối ( COFF: Common Object File Format ) , phổ biến trong hệ thống Unix-based
Các file trong một project CCS:
*.out có thể được load và chạy trực tiếp xuống board DSP
*.pjt là file project , tạo và xây dựng, đặt tên một project
*.c là chương trình mã nguồn C
*.asm là chương trình mã nguồn assembly được tạo bởi người dùng thông qua C compiler hoặc linear optimizer
*.sa là linear assembly source program
*.h là header support file
*.lib là file thư viện
*.cmd : file command linker, có nhiệm vụ map phiên làm việc tới bộ nhớ
*.obj là file đối tượng được tạo bởi assembler
*.out là file thực thi,được tạo bởi linker để load và chạy chương trình trên TMS320DM642 board
*.cdb là file cấu hình khi sử dụng DSP/BIOS
Trang 31Hình 1 6 Sơ đồ biên dịch của chương trình
Các ứng dụng DSP thường có yêu cầu hiệu năng cao Do vậy các lập trình viên thường sử dụng ngôn ngữ assembly Tuy rất nó hiệu quả nhưng thời gian đưa
ra sản phẩm lâu dẫn đến việc sử dụng C trong lập trình cho DSP trở nên phù hợp hơn Có một số lý do cơ bản để sử dụng C thay cho assembly:
+ C dễ phát triển hơn +C dễ duy trì hơn + C tương đối dễ di chuyển Ngôn ngữ C cho phép bạn xây dựng một chương trình di động và nhanh chóng có thể kiểm tra khả năng thực thi với nó Các nhà sản xuất có thể thấy được kết quả sớm trong chu kỳ phát triển sản phẩm Tuy nhiên ngôn ngữ C vẫn có vấn đề riêng của nó, bắt nguồn từ khoảng cách giữa ngôn ngữ lập trình , thiết kế và phần cứng ANSI C không được thiết kế như một ngôn ngữ xử lý tín hiệu Nó nhấn mạnh vào thiết kế hệ thống chứ không phải là toán học Do vậy ANSI C không phải là ngôn ngữ tự nhiên nhất để thực hiện thuật toán DSP
Các bộ vi xử lý DSP có nhiều yếu tố để tăng sự tương thích, chẳng hạn như chế độ tối ưu địa chỉ Do vậy trong thiết kế vi xử lý, DSP thường sử dụng assembly trong các đoạn mã yêu cầu hiệu năng quan trọng
Với tất cả các lý do trên , hiệu suất của mã biên dịch có thể thấp hơn so với assembly
Ngôn ngữ lập trình C cung cấp một mô hình tính toán thống nhất Một lập trình viên có thể giả định chương trình của mình sẽ có kết quả tương tự trên nền
Trang 32tảng nào Tuy mô hình thực thi trên các nền tảng có khác nhau
C cũng giả định một bộ nhớ nền tảng lớn Trên thực tế, hiệu năng truy cập bộ nhớ trong một số trường hợp có thể là nhân tố chính ảnh hưởng tới hiệu suất ứng dụng
Các tính năng phần cứng là rất cấn thiết để xử lý hiệu quả nhưng không được
hỗ trợ trong C Do vậy để xây dựng được các chương trình có hiệu năng cao ta không thể bỏ qua các nền tảng phần cứng Các chương trình sẽ được tăng tốc khi có chương trình chuyên dụng cho phần cứng cụ thể Tuy nhiên điều này sẽ làm cho chương trình lớn hơn, phức tạp hơn và ít di động hơn
1.4.3 Download,cài đặt và làm việc với Code Composer Studio
1.4.3.1 Download Code Composer Studio 5.3 và CCS 3.1
B1 Vào website http://processors.wiki.ti.com/index.php/Download_CCS
B2 Download bản 5.3 off-line Installers
B3 Thực hiện cài đặt trên máy
B4 Đăng ký một tài khoản trên trang ti.com và kích hoạt tài khoản
B5 Download file active và sử dụng file đó để active CCS
Vì hiện nay các trang web của TI không còn hỗ trợ trực tiếp cho việc download CCS 3.1 vì vậy phải gửi mail cho họ để xin lại đường link down Khi down được ta chỉ việc click vào file launch.exe và cài đặt bằng việc click “next”, và cuối cùng là “finish”
Lý do phải cài 2 phiên bản khác nhau của CCS này là vì CCS 5.3 thì không tương thích với việc debug code cho TMS320DM642 nhưng phần mềm này có thể nạp được file out xuống kit EVMDM642 Trong khi đó CCS 3.1 lai chỉ làm việc được trong môi trường Win XP, và có thể debug code tạo file out Nhưng bản CCS 3.1 lại không nạp được code xuống EVMDM642
Ở đây có một chú ý là chúng em sử dụng máy ảo để chạy Win XP và cài đặt CCS 3.1 trên đó Còn trên Win 7 32 bít chúng em cài CCS 5.3 ( không dùng Win 7
64 bit bởi vì chạy trên Win 7 64 bít gặp khá nhiều trục trặc do không tương thích môi trường ) Thêm nữa chún em chưa sử dụng máy thật XP để chạy CCS 3.1 nên cũng chưa giám khẳng định là trên Win XP chạy tại máy thật thì CCS có thể debug, compile và run nạp code xuống kit hay không
Trong đồ án này chúng em sử dụng gói example đi kèm board mà TI cung cấp download tại địa chỉ: http://www.mediafire.com/?os2bez5d2lje48h Khi
Trang 33download về sẽ được một file có tên là evmdm642.zip , Trong file này có những file nhỏ: demo chứa những file out,có thể lấy những file này chạy luôn được chương trình File docs là file chứa những tài liệu tham khảo cho việc tìm hiểu về cách sử dụng board DSP evmdm642 file examples chứa những ví dụ được TI viết sẵn, những ví dụ này miêu tả những chức năng cơ bản của board File gel chứa file evmdm642.gel , khi cấu hình thiết bị đích chúng ta cần phải add file này vào
Hình 1 7 Thư mục chứa file gel 1.4.3.2 Bắt đầu làm việc với CCS
Với CCS 3.1
Khi ta download về xuất hiện thư mục CCS 3.1 và ta click vào file launch.exe và bắt đầu tiến hành setup
Trang 34Hình 1 8 Bắt đầu cài đặt CCS 3.1 Sau đó ta sẽ nhấn chọn “Install Product”:
Hình 1 9 Lựa chọn cài đặt CCS 3.1 Tiếp tục ta nhấp chọn “ C6000 Code Composer Studio v3.1”
Trang 35Hình 1 10 Lựa chọn dòng chip hỗ trợ Sau đó CCS 3.1 sẽ hiện ra màn hình cài đặt thông thường và nhiệm vụ của ta bây giờ là click “next” và “finish” và hoàn thành cài đặt
Hình 1 11 Hoàn thành cài đặt CCS3.1 Sau khi cài đặt xong Desktop sẽ xuất hiện biểu tượng của bộ phần mềm CCS
Trang 36cho ta làm việc:
Hình 1 12 Biểu tượng của chương trình sau khi cài đặt
Để làm việc với CCS 3.1, đầu tiên ta phải chạy file “Setup CCStudio 3.1” để chọn mô hình chíp cho CCStudio 3.1:
Hình 1 13 Cài đặt cho CCS3.1 Sau đó ta phải set “properties” cho con DM642 của ta để nó phù hợp với
TMS320DM642 trên board của ta
Trang 37Hình 1 14 Lựa chọn thiết lập Khi hộp thoại properties của DM642 hiện ra ta sẽ thiết lập lại các thông số của nó như sau
Hình 1 15 Thiết lập Properties cho DM642
Ở đây có hai option cần chú ý là Gel file và CPU Clock Về Gel file thì ta
chọn đường dẫn tới file gel của chúng ta Và CPU clock ta thay đổi từ 600 lên 720 MHz Sau khi chọn xong ta click “Save & Quit” Khi đó cửa sổ làm việc với code của CCS 3.1 sẽ hiện lên
Trang 38Hình 1 16 Cửa sổ làm việc của CCS 3.1
Vì trong đồ án của chúng em sẽ sử dụng những ví dụ có sẵn trong gói phần mềm đi kèm theo board EVMDM642,do đĩa đi kèm theo board đã bị bị mất nên chúng em sẽ download gói evmdm642.zip này trên internet Để mở một project có sẵn chúng ta sẽ click chuột phải vào “project” và chọn “ open project” rồi tìm đến thư mục chứa file “.pjt” để add vào của sổ làm việc của ta
Hình 1 17 Lựa chọn mở project
Về compile và build cơ bản cũng giống như những trình biên dịch của những
Trang 39ngôn ngữ khác Nên nhóm sẽ không nêu thêm chi tiết về các làm việc với nó nữa
Về làm việc với CCS v5.3
Sau khi click đúp vào biểu tượng trên desktop màn hình khởi động của CCS
sẽ hiện lên như sau:
Hình 1 18 Màn hình cài đặt CCS 5.3
Ta sẽ thấy suất hiện 1 block nhắc việc chọn đường dẫn cho workspace,có thể chọn workspace như mặc định hoặc tùy chọn vào foder mà mình muốn chứa
Hình 1 19 Lựa chọn thư mục làm việc
Ở đây lần đầu tiên khi sử dụng CCS ta sẽ được nhắc để “active version” cho CCS ta có thể chọn FREE licence,hoặc vào web của TI để active
Trang 40Hình 1 20 Tùy chọn License CCS tích hợp môi trường phát triển IDE sẽ được load và ta sẽ thấy màn hình welcome như sau:
Hình 1 21 Màn hình làm việc CCS 5.3
Để tạo một project mới:
Khi muốn tạo một project mới,ở của sổ giao diện chính ta chọn File sau đó chọn New và New CCS project Lúc này một dialog box sẽ suất hiện và có các lựa