DSP56307EVM sử dụng DSP56002 để thực hiện chuyển đổi lệnh JTAG/OnCE. Giao diện truyền tin nối tiếp (SCI) của DSP56002 trao đổi thông tin với máy tính thông qua giao diện RS-232. SCI của DSP56002 nhận lệnh từ máy tính. Tập lệnh có thể bao gồm đọc dữ liệu, ghi dữ liệu, khởi động lại module OnCE, khởi động
lại DSP56307, yêu cầu module OnCE, hoặc giải phóng module OnCE. Phần mềm chuyển đổi lệnh DSP56002 dịch các lệnh nhận được từ máy tính và gửi một chuỗi các lệnh tới cổng JTAG/OnCE của DSP56307. DSP56307 có thể tiếp tục nhận dữ liệu hoặc có thể truyền dữ liệu ngược lại DSP56002. DSP56002 gửi một phản hồi thông tin trạng thái tới máy tính. Các phản hồi có thể thành công tốt, thất bại, trong chế độ gỡ rối, thoát khỏi chế độ gỡ rối hoặc đọc dữ liệu. Khi DSP56307 ở trạng thái gỡ rối thì LED2 sáng.
DSP56002 nối tới cổng JTAG/OnCE của DSP56307 thông qua Jum trên J8.
J8 Chức năng
1 - 2 Kích hoạt chuyển đổi lệnh trên board mở Mất khả năng chuyển đổi lệnh trên board
Bảng 22. Chức năng Jum J8
Hình 35. Kết nối giữa DSP với máy tính qua giao diện RS-232
Chân Tín hiệu DSP 1 - 2 TxD 3 RxD 4 RESET 5 GND 6 - 9 - Bảng 23. Chân RS-232 với DSP56002 Chân TxD của DSP56002 truyền dữ liệu tới chân RD của máy tính Chân RxD của DSP56002 nhận dữ liệu từ chân TD của máy tính
DSP56307EVM cho phép nối tới một card chuyển đổi lệnh trực tiếp thông qua bộ jum J6 tức khi đó jum J8 được gỡ ra
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 TDI 2 GND 3 TDO 4 GND 5 TCK 6 GND 7 - 8 KEY-PIN 9 RESET 10 TMS 11 +3.3V 12 - 13 DEZ 14 TRST
Bảng 24. Kết nối khối jum J6 với cáp của card chuyển đổi lệnh trực tiếp 7.5 Các giao diện off-board
DSP56307EVM cung cấp các giao diện với các thiết bị off-board thông qua các cổng ngoại vi on-chip của nó. Hầu hết các cổng được nối tới đầu ra trên board EVM để dễ dàng gắn trực tiếp tới các chân bằng cách sử dụng các đầu nối hoặc jum.
7.5.1 Giao diện truyền tin nối tiếp (SCI)
Cổng SCI (Serial Comunication Interface) được thực hiện thông qua jum J7. Các tín hiệu +3.3V ở J7 được trực tiếp lấy từ DSP.
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 RxD 2 -
3 SCLK 4 -
5 TxD 6 -
Bảng 25. Đầu nối chân ra của giao diện SCI
J7 Tín hiệu DSP
1 - 2 RxD
3 - 4 SCLK
Bảng 26. Jum J7
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 - 6 -
2 TxD 7 SCKL
3 RxD 8 -
4 RESET 9 -
5 GND
Bảng 27. Đầu nối cổng nối tiếp DSP (P1) 7.5.2 Cổng nối tiếp tăng cường (ESSI)
Mođun DSP56307 của Motorola có 2 cổng ESSI (enhanced synchornous serial interface) là ESSI0 và ESSI1, đó là một trong những cổng cho phép giao tiếp với thiết bị ngoại vi ngoài. Mỗi cổng bao gồm 6 chân cho phép thực hiện các chức năng khác nhau phụ thuộc vào chúng được cấu hình như thế nào. Mỗi cổng ESSI có thể đóng vai trò như cổng ESSI hoặc cổng GPIO(General-Purpose Input/Output)
Cổng ESSI hoạt động trong chế độ ESSI cho phép đồng bộ các lệnh với xung nhip đồng hồ chính. Thêm vào đó, hoạt động điều khiển và hướng truyền dữ liệu được tự động thiết lập. Khi cổng ESSI hoạt động trong chế độ GPIO cần thiết phải chỉ rõ dữ liệu được truyền như thế nào và hướng của dữ liệu cần truyền. Điều khó khăn khi hoạt động trong chế độ GPIO là phải hiểu xuyên suốt được cách sử dụng của cổng GPIO để có thể lập trình chúng
Các chân ESSI/GPIO
Cổng ESSI sử dụng 6 chân để truyền thông tin. Ta có thể cấu hình mỗi chân để chúng đóng vai trò như trong chế độ ESSI hoặc GPIO bằng cách chỉnh sửa thanh ghi điều khiển cổng
Tên chân Chức năng
Điều khiển nối tiếp 0(SC0/PC0) Có nhiều chức năng phụ thuộc vào cách đặt thanh ghi điều khiển
đặt thanh ghi điều khiển
Điều khiển nối tiếp 2(SC2/PC2) Có nhiều chức năng phụ thuộc vào cách đặt thanh ghi điều khiển
Xung đồng hồ nối tiếp (SCK/PC3)
Cung cấp hoặc nhận xung clock nối tiếp Dữ liệu thu nối tiếp(SRD/PC4) Thu dữ liệu nối tiếp
Dữ liệu phát nối tiếp(STD/PC5) Phát dữ liệu nối tiếp Bảng 28. Các chân ESSI Cổng nối tiếp tăng cường 0 (ESSI0).
Cổng ESSI0 có thể được thiết lập bởi khối jum J5
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 SCk0 2 - 3 SC00 4 - 5 STD0 6 - 7 SRD0 8 - 9 SC01 10 - 11 SC02 12 -
Bảng 29. Chân đấu nối ESSI0 (J5) Cổng nối tiếp tăng cường 1 (ESSI1).
Cổng ESSI1 của DSP được thiết lập bởi khối jum J4.
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 SCk1 2 - 3 SC10 4 - 5 STD1 6 - 7 SRD1 8 - 9 SC12 10 - 11 SC11 12 -
Bảng 30. Chân đấu nối ESSI1 (J4) Các thanh ghi của cổng ESSI
Trong cả chế độ ESSI lẫn GPIO, có các thanh ghi xác định được sử dụng trong mỗi chế độ ngoại trừ hai thanh ghi xác định xem cổng ESSI nào được sử dụng là thanh ghi điều khiển cổng C(PCRC) và thanh ghi điều khiển cổng D(PCRD). Thanh ghi điều khiển cổng C cài đặt chức năng của cổng ESSI0 còn thanh ghi điều khiển cổng D cài đặt chức năng của cổng ESSI1. Đặt các bit tương ứng trong thanh ghi điều khiển cổng lên 1 để cấu hình các chân hoạt động ở chế độ ESSI. Xoá các bit tương ứng về 0 để cấu hính các chân hoạt động trong chế độ GPIO, mỗi chân được cấu hình riêng rẽ để hoạt động trong chế độ ESSI hay GPIO.
Tên thanh ghi Chức năng
Thanh ghi điều khiển cổng C(PCRC)
Điều khiển cổng ESSI0 hoạt động trong chế độ ESSI hay GPIO
Thanh ghi điều khiển cổng D(PCRD)
Điều khiển cổng ESSI1 hoạt động trong chế độ ESSI hay GPIO
Bảng 31. Các thanh ghi chung cổng ESSI/GPIO
Tên thanh ghi Chức năng
Thanh ghi điều khiển A(CRA) Điều khiển hoạt động của chế độ ESSI Thanh ghi điều khiển B(CRB) Điều khiển hoạt động của chế độ ESSI Thanh ghi trạng thái(SSISR) Miêu tả trạng thái và các cờ nối tiếp Thanh ghi mặt nạ khe thời gian phát
A(TSMA)
Xác định xem khi nào thì phát trong khe thời gian cho trước
Thanh ghi mặt nạ khe thời gian phát B(TSMB)
Xác định xem khi nào thì phát trong khe thời gian cho trước
Thanh ghi mặt nạ khe thời gian thu A(RSMA)
Xác định xem khi nào thì thu trong khe thời gian cho trước
Thanh ghi mặt nạ khe thời gian thu B(RSMB)
Xác định xem khi nào thì thu trong khe thời gian cho trước
Thanh ghi khe thời gian(TSR) Ngăn không cho truyền dữ liệu trong khe thời gian
Thanh ghi nhận dữ liệu(RX) Thanh ghi chỉ đọc để thu dữ liệu
Thanh ghi phát dữ liệu 1(TX1) Thanh ghi truyền dữ liệu cho kênh phát 2 Thanh ghi phát dữ liệu 2(TX2) Thanh ghi truyền dữ liệu cho kênh phát 3
Bảng 32. Các thanh ghi ESSI
Tên thanh ghi Chức năng
Thanh ghi hướng truyền cổng C(PRRC) Điều khiển hướng truyền dữ liệu truyền của cổng ESSI0 trong chế độ GPIO Thanh ghi hướng truyền cổng D(PRRD) Điều khiển hướng truyền dữ liệu truyền
của cổng ESSI1 trong chế độ GPIO Thanh ghi dữ liệu cổng C(PDRC) Lưu trữ dữ liệu thu hoặc phát qua cổng
ESSI0 trong chế độ GPIO
Thanh ghi dữ liệu cổng D(PDRD) Lưu trữ dữ liệu thu hoặc phát qua cổng ESSI1 trong chế độ GPIO
Bảng 33. Các thanh ghi GPIO
Sau khi các chân được cài đặt hoạt động trong chế độ GPIO, hướng truyền dữ liệu phải được thiết lập để chỉ ra cổng ESSI phát dữ liệu hay thu dữ liệu. Xoá các bit tương ứng trong thanh ghi hướng truyền cổng C để cấu hình chân GPIO là chân thu, đặt các bit lên 1 cấu hình chân GPIO là chân phát. Để thu hoặc phát dữ liệu trong chế độ GPIO sử dụng các thanh ghi dữ liệu cổng. Nếu các chân đóng vai trò là chân thu thì giá trị ở các chân sẽ được truyền vào chân đó. Nếu các chân đóng vai trò là chân phát thì giá trị ở các chân sẽ là giá trị phát đi.
7.5.3 Cổng HI08
Cổng HI08 của DSP được thiết lập bởi khối jum J3
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 H0 2 H1 3 H2 4 H3 5 H4 6 GND 7 H5 8 H6 9 H7 10 RESET 11 HA0 12 HA1
13 HA2 14 HCS
15 HREQ 16 HDS
17 +3.3V 18 HACK
19 HRW 20 GND
Bảng 34. Chân đầu nối HI08 7.5.4 Điều khiển Bus mở rộng
Các tín hiệu điều khiể Bus mở rộng có thể được tạo bởi khối jum J2
Chân Tín hiệu DSP Chân Tín hiệu DSP
1 +3.3V 2 RD 3 WR 4 BG 5 BB 6 BR 7 TA 8 BCLK 9 BCLK 10 CAS 11 CLKOUT 12 AA1 13 AA0 14 AA2 15 AA3 16 GND Bảng 35. Jump J2 7.5.5 Chọnchế độ
Chọn chế độ khởi động cho DSP56307 được thực hiện bởi khối jum J1
Chế độ J1 Chế độ khởi động được chọn
D 1-2 C 3-4 B 5-6 A 7-8
8 Jum Jum Jum Nhảy tới chương trình ở $008000
9 Jum Jum Khởi động từ bộ nhớ byte rộng
10 Jum Jum Khởi động từ SCI
12 Jum Jum HI08 khởi động trong chế độ
ISA/DSP5630x
13 Jum HI08 khởi động trong chế độ bus
không phức hợp HC11
14 Jum HI08 khởi động trong chế độ bus
15 HI08 khởi động trong chế độ bus MC68302
Chương 8 Ngôn ngữ lập trình và phần mềm hỗ trợ [3]
Board mạch DSP56307EVM tương thích với các ngôn ngữ viết bằng asambly, C, C++, Matlab... Chương trình nguồn *.asm, *.c, *.c++ ... Chương trình dịch tương ứng Các file *.cln Trình liên kết (Linker) Các file thực hiện *.cld DSP56002 DSP56307 DSP56307EVM Card biến đổi lệnh
Hình 36. Quá trình của một chương trình chạy trên DSP56307EVM
Trong luận văn này chương trình được viết bằng ngôn ngữ asambly, với trình dịch
asm56300 được Motorola phát triển, kèm theo chương trình gỡ rối Evm30xw được thiết kế với giao diện thân thiện với người dùng.
8.1 Chương trình Asambly Các trường trên một dòng lệnh gồm Các trường trên một dòng lệnh gồm
Trường nhãn (Label): là trường đầu tiên của một dòng lệnh. Chương trình có thể nhảy tới nhãn mà không cần viết lại cả dòng lệnh.
Trường lệnh (Operation): Là một mã lệnh, một hướng dẫn, hay gọi macro đeer thực thi lệnh.
Trường toán hạng (Operand): trình bày trường toán hạng tuỳ thuộc vào nội dung của nó.
Trường chuyển dữ liệu (Data transfer): hầu hết các mã lệnh chỉ rõ một hoặc nhiều dữ liệu được truyền xuất hiện trong quá trình thực thi lệnh.
Trường ghi chú (Coment): thường được đứng sau dấu ”;” , chỉ mang tính giải thích cho người dùng mà không được thực hiện trong hàng lệnh.
Hình 37. Một chương trình nguồn được viết bằng Notepad
Chương trình được lưu với thư mục các chương trình thủ tục liên quan như chương trình vào/ra dữ liệu, bảng vector, chương trình ngắt....
Hình 38. Thư mục các file thủ tục
Sử dụng chương trình dịch asm56300 chuyên dụng của Motorola. với các tuỳ chọn –a, -b, -l, -g cho phép chương trình được dịch ra với các định dạng file theo mục đích nhất định.
Hình 39. Sử dụng trình dịch asm56300 File example.asm sau được dịch, tạo ra 2 file
Hình 40. Thư mục các file thủ tục và các file được dịch File example.cld sẵn sàng chạy trên board DSP56307EVM
8.2 Chương trình gỡ rối Evm30xw
Hình 41. Chương trình Evm30xw sau khi được cài đặt 8.2.1 Cửa sổ giao diện chính của chương trình Evm30xw
Hình 42. Giao diện chương trình gỡ rối Evm30xw 8.2.2 Thanh công cụ
Hình 43. Thanh công cụ (Tool bar)
Bao gồm các tab (File, view, Run, Symbol, Breakpoint, Config, Window, Help) và các nút lệnh thường trực trên khung cửa sổ chính có nhiệm vụ thực hiện lệnh hoặc biến đổi giao diện sẵn có phù hợp với chương trình người sử dụng
Hình 44. Giao diện tab file
Hình 45. Giao diện tab view
Hình 47. Giao diện tab symbol
Hình 48. Giao diện tab Breakpoint
Hình 50. Giao diện tab Window
Hình 52. Giao diện đầy đủ các cửa sổ 8.2.3 Các cửa sổ chức năng chính
Cửa sổ Unasambly: hiển thị nội dung lệnh trong không gian nhớ chương trình
Cửa sổ dữ liệu: hiển thị nội dung trong không gian dữ liệu X, hoặc Y
Hình 54. Giao diện cửa sổ dữ liệu
Cửa sổ lệnh: giao tiếp với người sử dụng thông qua lệnh được viết trên cửa sổ này.
Cửa sổ các thanh ghi: hiệ thị nội dung của tất cả các thanh ghi có trên bộ vi xử lý DSP56307
8.2.4 Cách chạy một chương trình
Hình 57. Nạp chương trình
Hình 59. Chương trình nạp lên board DSP56307
Chương 9 Các chương trình và kết quả thực ngiệm
9.1 Chương trình liên kết giao codec với DSP
Mục đích: kiểm tra mối liên kết hoạt động giữa các thanh ghi, giao diện vào/ra trên codec , giao tiếp codec với DSP.
Mô hình thực nghiệm:
Mô hình thực nghiệm chương trình pass Thực hiện:
Tần số mẫu Fs = 8KHz Chương trình:
- Mô hình thuật toán
A/D Input DSP 56307 D/A Pass.cld Output x(n) y(n)= x(n) y(n)
- Chương trình nguồn chi tiết ở phụ lục A. Kết quả thực nghiệm:
Hình 61. Dạng tín hiệu vào/ra trên Codec Nhận xét:
- Tín hiệu đầu vào (trước khi xử lý) và đầu ra (sau khi xử lý) có dạng giống nhau.
9.2 Sử dụng bộ lọc tăng cường EFCOP
Sử dụng công cụ Filter Design & Analysis Tool của MATHLAB tính đáp ứng xung cho các bộ lọc
Hình 62. Giao diện cửa sổ lệnh của MATHLAB
Hình 64. Dạng đáp ứng xung tương ứng
Hình 65. Chọn xuất hệ số bộ lọc
Hệ số lọc có thể được xuất dưới nhiều định dạng file khác nhau để người dùng có thể sử dụng cho ngôn ngữ lập trình mà mình quen thuộc.
Mô hình thực nghiệm:
Hình 66. Mô hình thực nghiệm sử dụng bộ lọc EFCOP 9.2.1 Thực hiện lọc thông thấp
Mục đích:
- Kiểm tra tình trạng hoạt động của bộ đồng xử lý lọc tăng cường EFCOP. - Tạo bộ lọc thông thấp theo mục đích người sử dụng.
Thực hiện:
- Sử dụng công cụ Filter Design & Analysis Tool của MATHLAB thu được đáp ứng xung hữu hạn h(n)
h(n) = {1, 29, 9, -11, 10, -6, -1, 11, -18, 19, -7, -26, 153, -26, -7, 19, -18, 11, -1, - 6, 10, -11, 9, 29, 1 }
Hình 67. Đáp ứng xung có dạng Chương trình:
- Mô hình thuật toán
A/D Input DSP 56307 D/A Lowpass.cld Output x(n) 1 0 ) ( ) ( ) ( N i i n h i x n y 1 0 ) ( ) ( ) ( N i i n h i x n y
Hình 68. Mô hình thuật toán bộ lọc thông thấp - Chương trình nguồn chi tiết ở phụ lục A.
Kết quả thực nghịêm:
Hình 70. Tín hiệu đầu vào với f = 2.89503 KHz
Nhận xét:
- Bộ đồng xử lý lọc tăng cường EFCOP trên DSP56307EVM hoạt động tốt. - Với đáp ứng xung h(n) cho ở trên, bộ lọc thông thấp này cho tín hiệu <
3.22135KHz đi qua các tần số cao hơn bị chặn lại. - Phù hợp với đáp ứng tần số thiết kế
9.2.2 Sử dụng bộ lọc tăng cường EFCOP thực hiện lọc thông cao Mục đích: Mục đích:
- Kiểm tra tình trạng hoạt động của bộ đồng xử lý lọc tăng cường EFCOP.