Bộ chuyển đổi lệnh

Một phần của tài liệu Xử lý tín hiệu thời gian thực bằng phương pháp số trên môi trường phát triển ứng dụng DSP56307EVM áp dụng trong các hệ định vị vô tuyế (Trang 82)

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) (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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.

Một phần của tài liệu Xử lý tín hiệu thời gian thực bằng phương pháp số trên môi trường phát triển ứng dụng DSP56307EVM áp dụng trong các hệ định vị vô tuyế (Trang 82)