Tài liệu Nghiên cứu phần cứng dsp56002 - ứng dụng thiết kế bộ lọc số - lọc số thông một dải

  • Số trang: 70 |
  • Loại file: PDF |
  • Lượt xem: 144 |
  • Lượt tải: 0
hoanggiang80

Đã đăng 20010 tài liệu

Mô tả:

Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Phần I: Nghiên cứu phần cứng bộ vi xử lý tín hiệu số DSP56002. Chương 1: Giới thiệu chung Các bé vi xử lý tín hiệu số được phát sinh từ năm 1982 với những hàm đặc biệt để xử lý nhanh các tín hiệu, nó được ứng dụng trong rất nhiều lĩnh vực như trong viễn thông, trong đo lường điều khiển, trong quân sự, trong xử lý ảnh, xử lý âm DSP56002 là một trong những bộ vi xử lý tín hiệu số nói trên, nó thuộc họ DSP56K của hãng MOTOROLA. DSP56002 là bộ vi xử lý tín hiệu số 24 bits với các đặc điểm sau: • Có 512 ô nhớ RAM chương trình. • Có hai bộ nhớ RAM dữ liệu X-memory và Y-memory (ô nhớ có địa chỉ thấp), mỗi bộ nhớ có dung lượng là 256 ô nhớ. • Có hai bộ nhớ ROM dữ liệu X-memory và Y-memory (ô nhớ có địa chỉ cao), mỗi bộ nhớ có dung lượng là 256 ô nhớ. • Có BUS địa chỉ 16 bits và BUS dữ liệu 24 bits cho phép thông qua đó để mở rộng bộ nhớ (PORT A). • Cổng truyền tin chủ HI (PORTB). • Cổng truyền tin nối tiếp đồng bộ (SPI) và không đồng bộ (SCI) (PORTC). • 25 chân vào ra đa năng. • Có bé Timer và bộ đếm sự kiện 24bit. • Các bộ điều khiển Reset và Interrupt. MCU của nó gồm: • Khối logic số học ALU. • Khối địa chỉ AGU. • Khối điều khiển chương trình CPU. DSP56002 thực hiện xử lý nhanh các tín hiệu trong thời gian thực, các khối xử lý của nó thực hiện các phép toán cộng, trừ , nhân, nhân có nhớ ....đặc biệt nó có bộ nhân cộng logic (hay còn gọi là bộ cộng dồn) MAC để thực hiện phép tính nhân chập là phép toán rất quan trọng trong lĩnh vực xử lý tín hiệu số. Các khối xử lý logic số học, khối địa chỉ và khối điều khiển chương trình hoạt động độc lập với nhau, tuy nhiên chúng có thể giao diện với nhau và giao diện với các bộ nhớ thông qua các BUS địa chỉ và BUS số liệu. Trên DSP56002 có chứa : 4 BUS dữ liệu 24 bits là XDB, YDB, PDB và GDB; 3 BUS địa chỉ 16 bits là XAB,YAB và PAB. Giao diện chủ HI cho phép ta kết nối DSP này với các DSP khác hoặc các bộ vi xử lý hay vi điều khiển chuyên dụng. Trong khi đó các chân ở cổng C đóng vai trò là các cổng truyền tin cho phép ta kết nối DSP56002 với các thiết bị ngoài như : Các bộ ADC, DAC, các bộ CODEC.... SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 1 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải ĐÓ hiểu rõ hơn ta có thể xem cấu trúc của nó ở hình 1. Cấu trúc của DSP56002 được mô tả như sau: Hình 1: Sơ đồ khối của DSP56002. Cấu trúc này được tích hợp trên một chip và đưa ra 132 chân, các chân đưa ra được sắp xếp theo từng khối , từng nhóm chức năng riêng biệt. Sau đây ta sẽ lần lượt đi nghiên cứu cụ thể từng khối, từng bộ phận của bộ vi xử lý tín hiệu số này. Chương II: PORT A I. Giới thiệu chung về PORT A: SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 2 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải PORT A là cổng cho phép ta có thể dễ dàng mở rộng bộ nhớ (giao diện với bộ nhớ), PORT A bao gồm 50 chân được chia làm 3 nhóm, mỗi nhóm ứng với một chức năng khác nhau đó là: • Nhóm chân cho BUS dữ liệu D0 đến D23. • Nhóm chân cho BUS địa chỉ A0 đến A15 . • Nhóm chân cho BUS điều khiển. Cả 50 chân đều ở trạng thái cao trở khi khởi động. • Khối BUS địa chỉ: Gồm 16 chân A0 đến A15, đây là các đầu ra 3 trạng thái, nó sẽ không thay đổi khi bộ nhớ chương trình ngoài chưa được truy nhập. Nhóm chân này cho phép ta truy nhập đến 64K byte vùng nhớ của bộ nhớ ngoài Xmemory , Y-memory và P-memory. • Khối BUS dữ liệu D0 đến D23, là các chân 3 trạng thái, 2 chiều. Nhóm chân này cho phép truyền dữ liệu giữa các bộ nhớ ngoài và các khối xử lý bên trong. • /PS; /DS; X//Y: Cả 3 chân này đều là đầu ra, chóng quy định xem bộ xử lý có làm việc với bộ nhớ ngoài hay không, nếu có thì bộ nhớ nào được lựa chọn. Việc chọn bộ nhớ ngoài được mô tả như bảng dưới đây: /PS 1 1 1 0 II. /DS 1 0 0 1 X//Y 1 1 0 1 Bộ nhớ ngoài được chọn Không chọn Chọn bé nhớ X Chọn bé nhớ Y Chọn bé nhớ chương trình ngoài • Bus điều khiển : gồm 7 chân. - /RD là một đầu ra cho phép bộ vi điều khiển đọc dữ liệu từ bộ nhớ ngoài lên BUS dữ liệu. - /WR cũng là một đầu ra dùng cho chức năng viết. - /BN (BUS needed) là một đầu ra, hoạt động ở mức thấp mỗi khi DSP yêu cầu bộ nhớ ngoài . - /BR (BUS Request) là một đầu vào hoạt động ở mức thấp mỗi khi có sự trao đổi dữ liệu giữa DSP56002 với thiết bị ngoài. - /BG (BUS Grant) là một đầu ra. - /BS (BUS strobe) là một đầu ra hoạt động ở mức thấp mỗi khi DSP có yều cầu giao diện với thiết bị ngoại vi. Chân này thường được sử dụng cùng chân /WT để tạo nên trạng thái đợi cho BUS dữ liệu khi không xử lý kịp. - /BW (BUS wait) tạo trạng thái đợi cho BUS dữ liệu khi DSP không xử lý kịp. Giao diện PORT A: DSP56002 có thể truy nhập tới một hay nhiều bộ nhớ : X-memory , Y-memory và P-memory, nếu chỉ truy nhập đến các bộ nhớ trong thông qua các BUS dữ liệu và SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 3 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải BUS địa chỉ trong thì việc truy nhập đó chỉ thực hiện trong mét chu kỳ lệnh, ngoài ra DSP56002 còn có thể truy nhập tới cácbộ nhớ bên ngoài thông qua PORT A, nhưng việc truy nhập bộ nhớ ngoài thông qua PORT A sẽ phải thực hiện trong hai chu kỳ lệnh. Khi sử dụng PORT A để mở rộng bộ nhớ thì ta phải chia ra làm ba nhóm chính: Nhóm BUS dữ liệu 24 bits, nhóm BUS địa chỉ 16 bits và nhóm BUS điều khiển gồm các chân điều khiển vào ra. Khi làm việc với bộ nhớ ngoài thì chân /PS của DSP56002 sẽ được nối tới chân /CS của bộ nhớ ngoài như hình 2: Hình 2: Kết nối DSP56002 với bộ nhớ ngoài thông qua PORT A. Còn các bộ nhớ trong gồm X-memory, Y-memory và P-memory sẽ được chọn nhờ các chân /RD, /WR, X//Y và /DS (Hình 3): Cụ thể nó được xác định như sau: /PS /DS /X//Y Bộ nhớ được lựa chọn 1 1 1 Không hoạt động 1 0 1 X-memory 1 0 0 Y-memory 0 1 1 P-memory 0 1 0 Không định nghĩa SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 4 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải 0 1 III. IV. 0 1 X 0 Không định nghĩa Không định nghĩa Hình 3: Sơ đồ lựa chọn các bộ nhớ bên trong. Thanh ghi điều khiển BUS (BCR): Thanh ghi điều khiển BUS (BCR) xác định thời gian hoạt động của BUS bằng cách điều khiển thời gian của tín hiệu trên các chân /RD, /WR và trên các chân đưa dữ liệu ra. Thanh ghi này có địa chỉ thuộc ô nhớ $FFFE. BCR là một thanh ghi 16 bit, mỗi bộ nhớ được trỏ bởi 4 bit (hình 4), các thiết bị ngoại vi khi được truy nhập nó sẽ có vùng nhớ từ $FFC0 đến $FFFF. Ta có thể lập trình để chẽn vào 15 trạng thái đợi cho mỗi qua trình truy nhập bộ nhí. BUS strobe và trễ ở các chân: Quá trình hoạt động trên cổng A (khi truyền đồng bộ) có thể chèn thêm vào các trạng thái trễ để có thể xử lý tín hiệu kịp thời (Nhằm không bị mất dữ liệu khi bé vi xử lý không xử lý kịp) bằng cách sử dụng hai chân /BS và /WT. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 5 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Khi đó ta có thể dùng thêm một BUS gọi là “BUS trọng tài” để “phân xử” công bằng đối với các sự truy nhập lên BUS. “BUS trọng tài” sẽ quyết định BUS nào hay thiết bị ngoại vi nào được truy nhập trong một thời điểm nhất định. Trong quá trình “phân xử” đó “BUS trọng tài” phải xử dụng đến các chân /BN, /BR, /BG, /BS, và chân /WT. Qua sự phân tích trên ta thấy : Cổng A là một cổng vô cùng quan trọng trong việc xử lý, điều khiển và đặc biệt là cực kỳ cần thiết cho việc mở rộng bộ nhớ cho bộ xử lý tín hiệu số DSP56002 . Mọi hoạt động của MCU, mọi sự kết hợp với bộ nhớ ngoài cũng như việc kết hợp với thiết bị ngoài đều phải thông qua cổng A để thu/phát và điều khiển . SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 6 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Hình 4: Mô tả thanh ghi BCR và các vùng nhớ. Chương 3: PORT B PORT B là một cổng vào ra hai chiều, nó được sử dụng như là 15 chân vào ra vạn năng (GPIO: general-purpose I/O). Tuỳ theo cấu hình nó sẽ là vào hay ra và được sử dụng để điều khiển thiết bị . PORT B có 8 bits hai chièu ở giao diện chủ HI (Host interface) nơi cho phép ta kết nối DSP56002 với các DSP hoặc các bộ vi điều khiển hay vi xử lý khác. Cấu trúc của nó là phần đậm ở sơ đồ hình 5 Hình 5: Giao diện PORT B. I. Vào ra vạn năng (GPIO): SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 7 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Khi PORT B là một cổng vào ra vạn năng thì nó hoạt động với 3 thanh ghi gồm : thanh ghi điều khiển PORT B (PBC),thanh ghi định chiều dữ liệu PORT B (PBDDR) và thanh ghi dữ liệu PORT B (PBC) (Hình 6). Thanh ghi PBC đặt tại X:$FFE0. Thanh ghi PBDDR đặt tại X:$FFE2. Thanh ghi PBD đặt tại X:$FFE4. Khi Reset thì PBC và PBDDR đều bị xoá, mà khi thanh ghi định chiều dữ liệu bị xoá thì cả 15 chân của PORT B mặc định là các lối vào. Hình 6: Các thanh ghi điều khiển PORT B. Việc lựa chọn PORT B hoạt động ở chế độ GPIO hay HI là do thanh ghi điều khiển PORT B (PBC) quy định (Hình 6). Còn việc xác định xem PORT B là cổng vào hay ra thì được xác định bởi thanh ghi PBDDR (Hình 6). PORT B sẽ là các đầu vào nếu các bits của thanh ghi PBDDR được xoá về 0, ngược lại nó sẽ là các đầu ra khi các bits của thanh ghi PBDDR được đặt là 1. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 8 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải 1. 2. II. Lập trình trong chế độ GPIO: Để truyền dữ liệu giữa PORT B và các thanh ghi hay các vùng nhớ ta dùng lệnh MOVE và MOVEP. Ta có thể dùng lênh MOVE để đưa số liệu vào các ô nhớ là địa chỉ của các thanh ghi điều khiển PORT B để thiết lập chế độ cho PORT B là vào hay ra, là GPIO hay HI. Sau đó dùng lệnh MOVEP để di chuyển dữ liệu cổng với các thanh ghi hay với các vùng nhớ. Chẳng hạn ta muốn thiết lập cho PORT B hoạt động trong chế độ GPIO với các chân PB0 đến PB7 là các đầu vào, các chân PB8 đến PB14 là các đầu ra thì ta phải thực hiênh như sau: MOVE #$0,X:$FFE0 MOVE #$7F00,X:$FFE2 Câu lệnh thứ nhất thực hiện xoá các bits BC1 và BC0 trong thanh ghi PBC để thiết lập PORT B hoạt động trong chế độ GPIO. Câu lệnh thứ hai ghi vào thanh ghi PBDDR con sè 7F00 để chọn PB0 đến PB7 là các đầu vào, còn PB8 đến PB14 là các đầu ra. Timming: Khi dữ liệu được viết tới PORT B đồng thời tới bộ xử lý trung tâm CPU thì nó phải mất thời gian là một chu kỳ lệnh. Chẳng hạn lệnh: MOVE DATA15,X:PORT B DATA24,Y:EXTERN Lệnh thứ nhất viết 15 bits dữ liệu tới thanh ghi PORT B, nhưng các đầu ra là không thay đổi trừ khi chu kỳ lệnh được thực hiện. Lệnh thứ hai viết 24 bits dữ liệu tới bộ nhớ ngoài Y-memory, nó làm xuất hiện ở PORT A trong xung nhịp T2 và T3 của chu kỳ lệnh. Chế độ HI (Host interface): Chế độ HI có các đặc điểm sau: • Cổng song song cái mà được kết nối trực tiếp với BUS dữ liệu của bộ vi xử lý hay bé DSP khác. • Có hai nhóm thanh ghi : mét cho bộ xử lý chủ và một cho CPU của DSP. • CPU của DSP nhìn giao diện chủ như một ngoại vi chiếm dữ 3 từ (24 bits) trong không gian của bộ nhớ. • Các thanh ghi truyền và nhận số liệu được đệm kép để cho phép DSP và bộ xử lý chủ truyền số liệu một cách có hiệu quả với tốc độ cao. • Tốc độ đạt được là 3,3 triệu byte/s ở tần số làm việc 40 (MHz). • Có 15 chân: ♦ H0 đến H7: BUS dữ liệu chủ. ♦ HA0 đến HA2: Chọn địa chỉ chủ. ♦ HR//W : Điều khiển đọc viết. ♦ /HEN: Host cho phép truyền. ♦ /HRED: Host yêu cầu. ♦ /HACK: Chân báo nhận. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 9 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải • Giao diện giữa DSP và Host: Được thể hiện trên sơ đồ hình 8. Việc truyền dữ liệu trong chế độ HI được thực hiện là 8 bits, 16 bits hoặc 24 bits, có các kiểu truyền sau: ♦ Truyền dữ liệu từ DSP tới Host. ♦ Truyền dữ liệu từ Host tới DSP. ♦ Truyền dữ liệu từ Host của DSP này tới Host của DSP khác. Sơ đồ hình 7 cũng mô tả các thanh ghi trong chế độ HI. Bên trái của sơ đồ là các thanh ghi chạy dọc xuống, còn bên phải là giao diện trong chế độ này. 1. Giao diện Host với CPU của DSP: DSP CPU nhìn HI như một vùng nhớ ánh xạ ngoài chiếm 24 bits trongvùng nhớ dữ liệu. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 10 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Việc truyền và nhận dữ liệu thông qua bộ đệm hai chiều cho phép DSP và Host truyền dữ liệu với tốc độ và hiệu quả cao. Lệnh MOVEP cho phép truyền dữ liệu từ Host tới bộ nhớ và từ bộ nhớ tới Host mà không cần thông qua các thanh ghi trung gian. Khi Reset bằng cả phần mềm lẫn phần cứng thì chế độ HI đều bị bá qua mà thay vào đó PORT B sẽ làm việc trong chế độ vào ra vạn năng GPIO và các chân mặc định là các đầu vào. Hình 7: Sơ đồ giao diện HI. 2. Chế độ chương trình: HI có 2 chế độ lập trình: 1 là lập trình cho DSP và một là lập trình cho chế độ HI. Khi lập trình ta cần chú ý đến 3 thanh ghi: Thanh ghi điều khiển HCR, thanh ghi trạng thái HSR và thanh ghi truyền/nhận dữ liệu HTX/HRX. Sau đây ta sẽ xét lần lượt từng thanh ghi: a. Thanh ghi điều khiển HCR: SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 11 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Đây là thanh ghi 8 bits điều khiển việc đọc ghi, các bits của nó được mô tả như sau: 0 0 0 HF3 HF2 HCIE HTIE HRIE Reset: 0 0 0 0 0 0 0 0 Thanh ghi này ở địa chỉ X:$FFE8. Khi Reset các bits đều bị xóa về 0. Bit 0 (HRIE): Đây là bit được sử dụng để cho phép ngắt DSP khi bit HRDE ở thanh ghi trạng thái HSR được đặt là 1. Khi xóa bit này thì các ngắt trong khi thu được bỏ qua. Bit 1 (HTIE): Đây là bit được sử dụng để cho phép ngắt DSP khi bit HTDE ở thanh ghi trạng thái HSR được đặt là 1. Khi xóa bit này thì các ngắt trong lúc truyền được bỏ qua. Bit 2 (HCIE): Bit này cho phép ngắt DSP khi bit HCP trên HSR được đặt là 1. Xoá bit này đồng nghĩa với việc bỏ qua các ngắt. Bit 3 và Bit 4 (HF2 và HF3): Là các bit cờ. b. Thanh ghi trạng thái HSR: Thanh ghi này là một thanh ghi 8 bit chỉ đọc. Các bits của nó được mô tả như sau: DMA 0 0 HF1 HF0 HCP HTDE HRDE Reset: 0 0 0 0 0 0 0 0 Thanh ghi này nằm ở ô nhớ có địa chỉ X:$FFE9. Khi Reset các bit cũng bị xoá về 0. Bit 0 (HRDF): Bit này cho ta biết vùng chứa dữ liệu khi truyền nhận. Nó sẽ được đặt là 1 khi dữ liệu được truyền từ nhóm thanh ghi TXH:TXM:TXL tới thanh ghi HRX. Nó bị xoá khi DSP đọc dữ liệu ở HRX. Bit 1 (HTDE): Bit này chỉ ra rằng thanh ghi truyền dữ liệu HTX là rỗng và DSP có thể viết nên. Bit này được dặt là 1 khi thanh ghi HTX nhận được dữ liệu truyền từ nhóm thanh ghi RXH:RXM:RXL. Bit này bị xoá khi HTX được viết lên bởi DSP. Bit 2 (HCP): Bit này cho biết trạng thái bit HC trong thanh ghi CVR (Command vector register). Bit 3 và bit 4 (HF0 và HF1): Chỉ ra trạng thái của cờ 0 và 1 trong ICR. Bit 7 (DMA): Bit này là bit cho phép hay không cho phép Host truy nhập trực tiếp lên bộ nhớ. 1: Cho phép. 0: Bá qua. c. Thanh ghi truyền dữ liệu HRX: Thanh ghi này được sử dụng cho việc truyền dữ liệu từ Host tới DSP. Đây là một thanh ghi 24 bits và chỉ được đọc bởi DSP CPU. Nó được nạp dữ liệu từ nhóm thanh ghi TXH:TXM:TXL khi bit TXDE trên thanh ghi trạng thái ngắt ISR và bit HRDF trên thanh ghi trạng thái HSR là 0. Khi việc truyền dữ liệu được thực hiện SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 12 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải thì cả hai bit này được đặt là 1. Đọc thanh ghi HRX sẽ xoá bit HTDF. Việc Reset không làm ảnh hưởng đến thanh ghi này. d. Thanh ghi nhận dữ liệu HTX: Thanh ghi này được sử dụng cho việc truyền dữ liệu từ DSP tới Host. Đây là một thanh ghi 24 bits và chỉ được viết bởi DSP CPU. Viết lên HTX sẽ xoá bit HDRE của thanh ghi trạng thái HSR. Thanh ghi này được truyền dữ liệu tới từ nhóm thanh ghi (RXH:RXM:RXL) nếu cả hai bits HTDE của thanh ghi HSR và RXDF của thanh ghi ISR đều là 0. Việc Reset không làm ảnh hưởng đến thanh ghi này. Ngoài các thanh ghi trên ta còn một số thanh ghi cũng cần phải chú ý như sau: • Thanh ghi điều khiển ngắt (ICR): Đây là một thanh ghi 8 bits đọc viết để điều khiển việc ngắt và điều khiển các cờ trong chế độ HI, khi Reset các bit bị xoá hết về 0. Các bits của nó được mô tả như sau: INIT HM1 HM0 HF1 HF0 0 TREQ RREQ Reset: 0 0 0 0 0 0 0 0 Hai bit 0 và 1 (TREQ và RREQ) là hai bit để điều khiển chân /HREQ trong hai chế độ ngắt và DMA. Hai bits 3 và 4 (HF0 và HF1) là hai bits cờ trạng thái khi truyền thông tin từ Host tới DSP. Hai bit 5 và 6 (HM0 và HM1) là hai bits để chọn chế độ. Hai bits này thiết lập 4 chế độ như sau: HM1 HM0 Chế độ 0 0 Chế độ ngắt 0 1 Chế độ DMA 24 bits SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 13 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải 3. 4. 1 0 Chế độ DMA 16 bits 1 1 Chế độ DMA 8 bits Bit 7 (INIT) là bit quy định phương thức truyền dữ liệu trong 2 chế độ ngắt và DMA. • Thanh ghi trạng thái ngắt (ISR): Đây là một thanh ghi 8 bits báo các trạng thái ngắt khi truyền/nhận tín hiệu. Các bits của nó được mô tả như sau: HREQ DMA 0 HF3 HF2 TRDY TXDE RXDF Reset: 0 0 0 0 0 1 1 0 Bit 0 (RXDF): Báo việc thu dữ liệu. Bit 1 (TXDF): Báo việc truyền dữ liệu. Bit 2 (TRDY): Báo trạng thái TXDE./HRDE. Bit 3 và bit 4 (HF2 và HF3): Chỉ ra trạng thái của cờ T2 và T3 trong HCR. Bit 6 (DMA): Chỉ ra trạng thái của hai bit MM1 và MM0 trong thanh ghi ICR. Bit 7 (HREQ): Chỉ ra trạng thái chân /HREQ. Truyền dữ liệu từ Host tới DSP: Khi lập trình để truyền dữ liệu từ Host tới DSP ta cần chú ý đến các thanh ghi sau: ISR, ICR, HSR và HCR. Các thanh ghi này đã được nghiên cứu rất kỹ ở phần trên. Ta chỉ cần biết thêm rằng bộ xử lý chủ có vùng nhớ trong P-memory gồm: vùng nhận dữ liệu P:$0020, vùng truyền dữ liệu P:$0022 và vùng mã lệnh P:$0024 đến P:$007E. Quá trình thực hiện lệnh được tiến hành như sau: Bộ xử lý chủ viết ra các lệnh mong muốn HV trong thanh ghi Vector lệnh CVR. Sau đó thiết lập bits 7 (HC) trong thanh ghi CVR để cho phép Host thực hiện các lệnh. Đồng thời bit HCP trong thanh ghi HSR cũng được thiết lập. Nếu bit HCIE trong thanh ghi HCR được đặt bởi DSP thì việc xử lý lệnh sẽ được bắt đầu. Khi HC được thực hiện như một bit báo nhận thì nó có thể được bộ xử lý chủ đọc như một bit xác định trạng thái khi các lệnh được thực hiện. Có một điều phải lưu ý là mặc dù ta có thể viết vào HC và HV đồng thời, tuy nhiên để đảm bảo ổn định các Vector ngắt ta chỉ nên viết vào HV khi HC đã được xoá. Truyền dữ liệu từ DSP tới Host: Việc truyền dữ liệu từ DSP tới Host cũng tương tự như từ Host tới DSP. Các thanh ghi ta phải dùng gồm: ISR, HSR, ICR và HCR. Các thanh ghi này cũng đã được nghiên cứu kỹ ở phần trên. Chương 4: PORT C I. Giới thiệu chung về PORT C: PORT C là cổng truyền tin nối tiếp nó được mô tả như sau (phần vẽ đậm hình 8): SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 14 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải PORT C gồm có 9 chân, ba chân PC0, PC1 và PC2 (Là RxD, TxD và SCLK) là các chân vào ra dùng cho truyền tin nối tiếp (SCI). Sáu chân còn lại là các chân PC3 đến PC8 ( tương đương với SC0, SC1, SC2, SCK, SRD và STD) dành cho truyền tin nối tiếp đồng bộ (SSI). Hình 8: Sơ đồ cấu trúc cổng C. Khi dùng PORT C như cổng vào ra thông thường thì ta có thể dùng nó để điều khiển các thiết bị ngoài. Khi dùng PORT C cho truyền tin nối tiếp ta có thể kết nối với các thiết bị ngoài như: Các bộ vi xử lý khác, các DSP khác, các bộ chuyển đổi ADC ,DAC hay các bộ mã hoá , giải mã vv.... SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 15 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải Sau đây ta sẽ đi xét cụ thể từng trường hợp ứng dụng của PORT C. II. PORT C với chức năng vào ra thông thường: Lúc này PORT C được bởi 3 thanh ghi: • Thanh ghi điều khiển PORT C (PCC). • Thanh ghi định chiều dữ liệu PORT C (PCDDR). • Thanh ghi dữ liệu PORT C (PCD). Khi Reset thì tất cả các bits trong hai thanh ghi PCC và PCDDR đều bị xoá về 0, lúc này PORT C mặc định được dùng cho chế độ vào ra thông thường và cả 9 chân của PORT C đều là các đầu vào. 1. Thanh ghi điều khiển PORT C (PCC): Đây là một thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE1. Ta có thể mô tả nó như sau: 23 9 8 7 6 5 4 3 2 1 0 0 .. .. .. .. 0 CC8 CC7 CC6 CC5 CC4 CC3 CC2 CC1 CC0 Khi Reset các bit của thanh ghi này đều bị xoá về 0 và PORT C mặc định là một cổng vào ra thông thường. Các bits 9 đến 23 luôn có giá trị là 0. Bit 3 đến bit 8 dành cho chế độ truyền tin nối tiếp đồng bộ. Bit 3: SC0 Bit 4: SC1 Bit 5: SC2 Bit 6: SCK Bit 7: SRD Bit 8: STD Bit 0 đến bit 2 dùng cho chế độ truyền tin nối tiếp (SCI). Bit 0: RxD Bit 1: TxD Bit 2: SCLK Nếu các bits từ 0 đến 8 có giá trị là 0 thì PORT C đóng vai trò như một cổng vào ra thông thường. Còn nếu chúng có giá trị là 1 thì PORT C đóng vai trò là cổng truyền tin nối tiếp. 2. Thanh ghi định chiều dữ liệu PORT C (PCDDR): Đây là thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE3. Thanh ghi này được mô tả như sau: 23 9 8 7 6 5 4 3 2 1 0 0 .. .. .. .. .. 0 CD8 CD7 CD6 CD5 CD4 CD3 CD2 CD1 CD0 Khi Reset các bit của thanh ghi này cũng bị xoá về 0 do đó PORT C được mặc định là các đầu vào. Các bits 9 đến 23 luôn có giá trị là 0. Các bits 0 đến 8 (CD0 đến CD8) đóng vai trò là các bits định chiều dữ liệu. Nếu các bits này là 0 thì chiều dữ liệu là vào. Nếu các bits này là 1 thì chiều dữ liệu là ra. 3. Thanh ghi dữ liệu PORT C (PCD): Đây cũng là một thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE5. Ta có thể mô tả thanh ghi này như sau: 23 9 8 7 6 5 4 3 2 1 0 0 .. .. . .. .. 0 PD8 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 Các bits 9 đến 23 cũng luôn có giá trị là 0. Các bits 0 đến 8 là các bits số liệu. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 16 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải 4. Lập trình cho PORT C: Dõ dàng để lập trình cho PORT C ta cũng cần phải quan tâm đến các thanh ghi của nó. Việc đầu tiên khi lập trình là phải thiết lập trạng thái ban đầu cho PORT C, ta có thể dùng các lệnh MOVEP để thiết lập trạng thái cho PORT C. Khi truyền dữ liệu giữa PORT C và các thanh ghi thì ta dùng lệnh MOVE. Chẳng hạn để thiết lập trạng thái ban đầu cho PORT C là cổng vào ra vạn năng thông thường với các đầu vào PC0 đến PC3 và các đầu ra là PC4 đến PC8 ta chỉ cần thực hiện hai lệnh: III. MOVEP #$0,X:$FFE1 MOVEP #$01F0,X:$FFE3 Cũng giống với PORT B, khi thực hiện truyền dữ liệu ở PORT C ta cũng phải mất 1 thời gian trễ sau khi thực hiện lệnh. PORT C với chức năng truyền tin nối tiếp (SCI): SCI là một chế độ hoạt động đồng thời hai chiều cho việc truyền tin tới các bộ DSP khác, các bộ vi xử lý hay tới các thiết bị ngoài như MODEM….. Giao diện trong chế độ này chỉ gồm 3 chân sau: • Chân truyền tin TxD: Chân này truyền dữ liệu ra bằng cách lấy dữ liệu từ thanh ghi dịch của SCI và đưa ra ngoài mỗi khi xườn xung ở chân SCKP là mức thấp. Chân này cũng phải được lập trình trước khi sử dụng. • Chân nhận tin RxD: Đây là chân nhận dữ liệu từ ngoài vào sau đó đưa tới thanh ghi dịch của SCI. Dữ liệu sẽ được nhận vào mỗi khi xườn xung ở chân SCKP là mức cao. Trước khi sử dụng ta cũng phải lập trình cho nã. • Chân phát nhận xung nhịp SCLK: Đây là chân 2 hướng cung cấp xung Clock, ta cũng phải lập trình cho chân này. Chế độ SCI có các đặc điểm sau: • Truyền tin không đồng bộ với tốc độ 625 Kpbs khi hệ thống làm việc ở tần số 40 MHz. • Truyền tin đồng bộ với tốc độ 5 Mpbs khi hệ thống làm việc ở tần số 40 MHz. • Chế độ cho nhiều bộ xử lý: ♦ Với 2 chế độ đánh thức: Đánh thức đường dây rỗi và đánh thức bằng bit địa chỉ. ♦ Chế độ “Wired-OR”. • Bộ phát tốc độ/ngắt Timer tích hợp trên chip hoặc ở ngoài. • Làm việc với 4 mức ưu tiên ngắt. Khi lập trình trong chế độ này ta cần chú ý đến các thanh ghi sau: • Thanh ghi điều khiển của SCI (SCR). • Thanh ghi trạng thái của SCI (SSR). • Thanh ghi điều khiển xung nhịp của SCI (SCCR). • Thanh ghi nhận số liệu của SCI (SRX). SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 17 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải • Thanh ghi truyền số liệu của SCI (STX). • Thanh ghi truyền dữ liệu địa chỉ của SCI (STXA). 1. Thanh ghi điều khiển của SCI (SCR): Đây là thanh ghi 16 bits thuộc vùng nhớ X:$FFF0. SCK P STIR TMI E TIE RIE ILIE TE RE WOMS RWU WAKE SBK SSFTD WDS2 WDS1 WDS0 Khi Reset các bits của thanh ghi này bị xoá hết về 0. Các bit 0 (WDS0) bit 1 (WDS1) và bit 2 (WSD2): Đây là các bit lựa chọn kiểu dữ liệu chuẩn: Bit 3 (SSFTR): Bit này quy định chiều dịch chuyển dữ liệu của SCI. 0: Các bit có trọng số nhỏ nhất được truyền/nhận trước. 1: Các bit có trọng số lớn nhất được truyền/nhận trước. Bit 4 (SBK): Đây là bit gửi tín hiệu “BREAK”. Nếu nó được kích hoạt sau đó xoá về 0 thì bộ truyền xẽ hoàn tất việc truyền số liệu, gửi 10 hoặc 11 bits 0 sau đó quay trở lại truyền số liệu hoặc ở trạng thái nghỉ. Bit này có thể được sử dụng để đánh dấu 1 điều kiện không bình thường bằng cách xác định lỗi của khung truyền số liệu do sự đánh mất bit STOP. Bit 5 (WAKE): Đây là bit dùng để đánh thức hệ thống. 0: Đánh thức đường dây rỗi. 1: Đánh thức bằng bit địa chỉ. Bit 6 (RWU): Đây là bit đánh thức bộ nhận số liệu. Khi bit này là 1 và SCI đang hoạt động theo kiểu không đồng bộ thì chức năng đánh thức được cho phép, tức là tất cả các cửa nhận số liệu đều hoạt động, trừ IDLE và các ngắt là bị cấm. Bit 7 (WOMS): Đây là bit lựa chọn chế độ “Wired-OR” . Khi nó là 1, chân TxD của SCI sẽ được lập trình như 1 đầu ra hoặc có thể kết nối với các chân TxD khác trong cùng 1 cấu hình BUS thích hợp. Bit này bị xoá khi có Reset. Bit 8 (RE): Đây là bit cho phép nhận. 1: Cho phép. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 18 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải 0: Bá qua. Bit 9 (TE): Đây là bit cho phép truyền. 1: Cho phép. 0: Bá qua. Bit 10 (ILIE): Là bit cho phép ngắt đường dây rỗi. 1: Ngắt của SCI sẽ xuÊt hiện nếu IDLE=1. 0: Bá qua các ngắt. Bit 11 (RIE): Đây là bit cho phép ngắt khi truyền dữ liệu. 1: Nếu cả RDRF=1 thì cho phép ngắt. 0: Các ngắt bị cấm. Bit 12 (RIE): Đây là bit cho phép ngắt khi nhận dữ liệu. 1: Nếu cả TDRF=1 thì cho phép ngắt. 0: Các ngắt bị cấm. Bit 13 (TMIE): Bit cho phép ngắt Timer. 1: Cho phép. 0: Bá qua. Bit 14 (STIR): Là bit quy định mức ngắt của Timer. Bit 15 (SCKP): Đây là bit quy định xườn tác dụng của xung nhịp. 0: Quy định xườn âm. 1: Quy định xườn dương. 2. Thanh ghi trạng thái của SCI (SSR): Đây là thanh ghi 8 bits, thuộc địa chỉ X:$FFF1 và ta có thể mô tả nó như sau: 7 6 5 4 3 2 1 0 R8 FE PE OR IDLE RDRE TDRE TRNE Reset: 0 0 0 0 0 0 1 1 Bit 0 (TRNE): Đây là bit báo nhận trạng thái rỗng của bộ truyền dữ liệu. Bit này = 1 tức là cả hai thanh ghi dịch truyền và thanh ghi dữ liệu là rỗng. Bit 1 (TDRE): Báo trạng thái rỗng của thanh ghi truyền số liệu. Bit 2 (RDRE): Báo trạng thái đầy của thanh ghi nhận số liệu. Bit 3 (IDLE): Đây là cờ báo đường dây rỗi. =1: Khi 10 hoặc 11 bit liên tiếp =1 được nhận. =0: Khi phát hiện 1 bit START. Bit 4 (OR): Cờ báo lỗi tràn. Nó sẽ dựng khi ký tù trong dòng dữ liệu nhận được có thể bị mất. Bit 5 (PE): Cờ kiểm tra lỗi chẵn lẻ. Bit 6 (FE): Cờ báo lỗi khung số liệu. Bit 7 (R8): Đây là bit xác định kiểu của số liệu truyền. Bit này thông báo byte số liệu nhận là địa chỉ hay dữ liệu. 3. Thanh ghi điều khiển xung nhịp của SCI (SCCR): Đây là thanh ghi 16 bits thuộc vùng địa chỉ X:$FFF2. Nó được mô tả như sau: 15 14 13 12 11 0 SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 19 Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải TCM RCM SCP COD CD11 .. .. .. .. .. CD0 Khi Reset thanh ghi này bị xoá toàn bộ về 0. Các bit 0 đến 11 (CD0 đến CD11): Là các bit dùng để xác định hệ số chia xung nhịp. Các bits này được sử dụng để đặt trước 1 bộ đếm 12 bits. Bộ đếm không thể xâm nhập bởi người sử dụng. Khi bộ đếm =0 thì nó lại được lặp lại bằng các bit chia xung nhịp. Bit 12 (COD): Đây là bit điều khiển bộ chia xung nhịp đầu ra. Khi nó bằng 0 và SCLK là một đầu ra thì xung nhịp của SCI được chia bởi 16 trước khi đưa đến SCLK. Khi bit này có giá trị là 1 và SCLK là một đầu ra thì xung nhịp của SCI được đưa thẳng tới chân SCLK của hệ thống. Bit 13 (SCP): Bit này dùng để lựa chọn trước mức xung nhịp của SCI. Bit 14 (RCM): Đây là bit xác định nguồn xung nhịp nhận. Bit này là 0: Tức là xung nhịp cho bộ nhận là xung nhịp bên trong. Bit này là 1: Tức là xung nhịp cho bộ nhận là xung nhịp bên tngoài và được lấy vào qua chân SCLK. Bit 15 (TCM): Là bit xác định nguồn xung nhịp truyền. 0: Nguồn xung nhịp truyền là nguồn bên trong. 1: Nguồn xung nhịp truyền là nguồn bên ngoài. 4. Các thanh ghi dữ liệu: a. Các thanh ghi nhận dữ liệu: Các từ dữ liệu thu được trên RxD được dịch tới thanh ghi dịch nhận của SCI. Khi hoàn thành việc nhận từ dữ liệu được truyền tới SRX. Bộ xử lý sẽ biến đổi dữ liệu nối tiếp thành dữ liệu song song và đưa vào bộ đệm hai chiều. Thanh ghi SRX có thể đọc ở 3 địa chỉ : X:$FFF4, X:$FFF5 và X:$FFF6. Khi đọc ở địa chỉ X:$FFF4, nội dung phần thấp của SRX sẽ được đưa đến BUS dữ liệu, phần còn lại có giá trị bằng 0. Khi đọc ở địa chỉ X:$FFF5, nội dung phần giữa của SRX được đưa tới BUS dữ liệu, phần còn lại có giá trị bằng 0. Khi đọc ở địa chỉ X:$FFF6, nội dung phần cao của SRX được đưa tới BUS dữ liệu, phần còn lại có giá trị bằng 0. Ta có thể mô tả các điều trên qua sơ đồ sau: b. Các thanh ghi truyền dữ liệu: Các thanh ghi này thuộc 4 vùng địa chỉ khác nhau: X:$FFF3 đến X:$FFF6. SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội 20
- Xem thêm -