1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG

23 428 0

Đ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 23
Dung lượng 304 KB

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

Nội dung

CHƯƠNG 3 ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG1.ĐIỀU KHIỂN MODUL ADP64Z2PCI: Một vấn đề rất quan trọng trong việc xây dựng bo mạch đó là làm thế nào để điều khiển được bo mạch bằng má

Trang 1

CHƯƠNG 3 ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG

1.ĐIỀU KHIỂN MODUL ADP64Z2PCI:

Một vấn đề rất quan trọng trong việc xây dựng bo mạch đó là làm thế nào

để điều khiển được bo mạch bằng máy tính PC, điều khiển ở đây bao gồm:Việc nhận biết bo mạch của máy tính, trao đổi dữ liệu giữa bo mạch và máytính, trao đổi các ngắt… Đối với bo mạch ADP64Z2PCI để giao tiếp vớimáy tính và lập trình cho bo mạch người ta sử dụng thư viện BARDY vàDriver B64Z2P Vì vậy để hiểu được việc điều khiển Modul ADP64Z2PCIcủa máy tính PC ta đi nghiên cứu về thư viện BARDY và Driver B64Z2P

1.1: Thư viện điều khiển BARDY.

Khi lập chương trình điều khiển modul ADP64Z2PCI từ máy tính PC ta sửdụng thư viện điều khiển BARDY Thư viện này cho phép điều khiển bomạch này trong môi trường hệ điều hành Windows 98/2000/XP

1.1.1: Công dụng của thư viện điều khiển BARDY:

Thư viện BARDY dùng để điều khiển Modul gốc và các phân khối ADMđặt trong nó (Do hãng Instrument System cung cấp) Thư viện điều khiểnBARDY hỗ trợ sự làm việc của các Modul gốc có vi xử lý cũng như không có

vi xử lý Điểm khác nhau của chúng được chỉ ra ở phía dưới, nhưng sự khác

ấy không ảnh hưởng đến cấu trúc của phụ lục Win32 Thư viện BARDY nằmtrong thành phần các phụ lục Win32 và có thể được sử dụng trong các phụ lụcWin32 một dòng cũng như nhiều dòng

1.1.2: Cấu trúc và tính chất của thư viện BARDY:

a) Cấu trúc của thư viện điều khiển BARDY:

Thư viện điều khiển BARDY cho phép ta đảm bảo chương trình ứng dụng

Trang 2

làm việc đồng thời được với một số modul xử lý số tín hiệu Để thuận tiệncho việc thực hiện thư viện điều khiển BARDY (BARDY) được chia làm haithành phần là: môi trường BRD và bộ điều khiển modul xử lý số tín hiệu.Nhờ có cấu trúc như vậy mà BARDY dễ dàng tăng trưởng hơn cho mỗi kiểumodul xử lý số tín hiệu mới, bằng cách đơn giản là bổ xung thêm bộ điềukhiển mới Các tính chất mềm dẻo trên có được do thư viện điều khiểnBARDY có cấu trúc như hình 3.1 dưới đây.

Nguån th«ng tin

Bé ®IÒu khiÓn modul kiÓu B Modul B2

Modul B1Modul А2

Modul А 1

§¶m b¶o

ch ¬ng tr×nh øng dông

Bé ®IÒu khiÓn modul kiÓu A

• Nạp mã cần chấp hành vào bộ xử lý số tín hiệu

• Xoá, khởi động và dừng bộ vi xử lý số tín hiệu

• Đọc/ghi nhớ cho bộ vi xử lý số tín hiệu

• Trao đổi ngắt với bộ vi xử lý số tín hiệu

• Trao đổi các số liệu nhanh với bộ vi xử lý số tín hiệu

• Duy trì các tham số của dòng lệnh cho những chương trình xử lý số tínhiệu đã được viết trên ngôn ngữ C

Trang 3

• Làm việc với các tên kí tự.

• Nạp/đọc/ghi các thiết bị chương trình (PLIC….)

Việc điều chỉnh thư viện BARDY được thực hiện nhờ nguồn kích hoạt, đó

là một file văn bản định dạng đặc biệt hoặc là một phần “PEECTP” Một cơchế như vậy sẽ cho phép ta nhanh chóng và dễ dàng đưa những bộ điều khiểnmới và thư viện điều khiển BARDY và điều khiển những tham số kích hoạtchúng

b) Các tính chất của thư viện BARDY:

• Giao diện API chuẩn hoá cho tất cả các modul gốc của hãng

1.1.3: Các đặc trưng của thư viện BARDY:

1 Hỗ trợ công việc của tất cả các modul gốc và phân khối trên cơ sở mộtgiao diện chương trình thống nhất

2 Tính không đổi của giao diện chương trình

3 Tính phù hợp của giao diện chương trình với bất kỳ phụ lục Win32 nào

4 Hỗ trợ các phụ lục đa dòng của Win32

5 Hỗ trợ làm việc đồng thời một số phụ lục Win32 với một modul gốc

6 Có ba hệ thống thông báo lỗi độc lập

7 Kích hoạt thư viện trong chế độ tự động hoặc bán tự động

8 Lưu giữ thông tin kích hoạt trong một file hoặc “peectp”

9 Che dấu toàn bộ các thông tin về thiết bị

Trang 4

10 Tiếp cận đến mỗi thiết bị nhờ Descriptor.

11 Hỗ trợ các modul gốc có khả năng thay “nóng” (Hot – Swapping)

12 Bảo vệ khỏi nối với thiết bị ngắt “nóng”

13 Khi một số phụ lục làm việc đồng thời với một modul gốc thì có ba chế

độ mở: Mở đơn điệu, mở tách riêng và mở Monitor

14 Tách các modul gốc thành những chương trình nguồn độc lập

15 Khi một số phụ lục làm việc đồng thời với một chương trình nguồn thì

có ba chế độ bắt chương trình nguồn: Bắt đơn điệu, bắt tách riêng và bắtMonitor

1.1.4: Thống nhất về ký hiệu:

1 Văn bản ban đầu đưa ra trong hướng dẫn được in bằng kiểu chữCourier

2 Những móc vuông [ ] dùng để ký hiệu những tham số không bắt buộc

1.1.5: Nguyên tắc làm việc của thư viện BARDY:

Trong phần này sẽ khảo sát các thành phần nằm trong thư viện điều khiểnBARDY và tác động tương hỗ giữa các thành phần tương hỗ nằm trong thưviện BARDY Nghiên cứu vắn tắt những nguyên lý kích hoạt BARDY,nguyên lý che dấu thông tin về thiết bị, nguyên lý làm việc trong xử lý tínhiệu đa nhiệm và những cơ chế thông báo lỗi

a) Thành phần của thư viện điều khiển BARDY:

Thư viện BARDY gồm có một tập những thành phần, chúng hoặc là DDLhoặc là một bộ điều khiển của hạt nhân Win32 Các thành phần đó được trìnhbày trong bảng sau:

• BRD Shell (Môi trường BRD): Tất cả các phụ lục tương tác vớiBARDY qua môi trường BRD Môi trường BRD là DLL mà các bộđiều khiển gốc được kết nối động với nó, nó có thể được kết nối vớiphụ lục tĩnh hoặc động

Trang 5

• BASE Driver: BASE Driver là một Driver của modul gốc Nó là mộtDDL được kết nối động với môi trường BRD BASE Driver cho phép

ta điều khiển modul gốc nhờ Driver hạt nhân BASE Driver không cókhả năng điều khiển phân khối đặt trong modul gốc

một DDL được kết nối động với môi trường BRD DUPLEX Drivercho phép ta điều khiển modul gốc nhờ Driver hạt nhân Nó có khả năngđiều khiển phân khối đặt trong modul gốc, muốn vậy nó phải có thêmmột giao diện phụ cho phép kết nối với phân khối

tầng kiến trúc trên BASE Driver Nó dùng để trợ giúp cho phân khốitrong modul gốc làm việc Nó là một DDL được kết nối động với môitrường BRD TECH Driver cho phép ta điều khiển modul gốc nhờBASE Driver

• SUB Driver: SUB Driver là Driver của phân khối, nó dùng để trợ giúpcho phân khối cụ thể làm việc Nó là một DDL, được kết nối động vớiDriver DUPLEX hoặc với Driver TECH SUB Driver cho phép ta điềukhiển phân khối nhờ Driver DUPLEX hoặc Driver TECH

khiển một modul gốc cụ thể Nó là một Driver hạt nhân theo một trongnhững kiểu: VXD, NTSYS, WDM

Chú ý: Việc kết nối tĩnh DDL được thực hiện nhờ thư viện nhập, còn việc

kết nối động DDL thì được thực hiện nhờ chức năng Load Liblary ( )

b) Sự tương tác giữa các thành phần của BARDY:

Mỗi thành phần có một tập những điểm vào cố định của nó, đó là một giao

diện chương trình được ký hiệu là API ( Application Program Interface ) Môi

Trang 6

trường BRD cho phép ta kết nối đồng thời một phụ lục đến các bộ điều khiểnmodul gốc BRD_COUNT Nghĩa là một phụ lục có thể đồng thời điều khiểncác thiết bị modul gốc BRD_COUNT Trên hình vẽ dưới đây thể hiện một ví

dụ nối các Driver khi làm việc đồng thời với một số modul gốc các kiểu

Application

BRD Shell

BASE Driver DUPLEX Driver TECH Driver

Hình 3.2: Nối một số Driver với một phụ lục.

Hiện nay có ba phương pháp kết nối Driver với môi trường BRD:

- Nối thành phần BASE Driver để điều khiển chỉ một modul gốc

- Nối thành phần DUPLEX Driver để điều khiển modul gốc không có bộ

vi xử lý nhưng có phân khối đặt trong nó

- Nối thành phần TECH Driver để điều khiển modul gốc và phân khối đặttrong nó

Các hình dưới đây chỉ rõ các thành phần cho mỗi phương pháp trên vàchúng tác động với nhau như thế nào

Trang 7

Application

BRD Shell

Kernel BASE Driver

ThiÕt bÞ (modul gèc)

Hình 3.3: Nối các thành phần BASE Driver.

Trang 8

ThiÕt bÞ (modul gèc kh«ng

vi xö lÝ vµ ph©n khèi)

SUB Driver TECH Driver

Hình 3.5: Nối các thành phần TECH Driver.

Nếu có thể đặt một số phân khối trong modul gốc, thì có nghĩa là cần phảikết nối một số Driver của phân khối đến một Driver của modul gốc

Trang 9

Application

BRD Shell

Kernel

DUPLEX Driver

ThiÕt bÞ (modul gèc kh«ng

vi xö lÝ vµ ph©n khèi)

SUB Driver

SUB Driver

Hình 3.6: Nối một số thành phần SUB Driver đến một thành phần

DUPLEX Driver.

c) Kích hoạt và mở thư viện BARDY:

Trước khi bắt đầu làm việc với thư viện BARDY thì phải kích hoạt nó.Muốn vậy cần phải gọi một trong các chức năng: Chức năng BRD_init() đơngiản hay chức năng BRD_initEx() phức tạp hơn Mỗi chức năng ấy lại thựchiện kích hoạt trong chế độ tự động hoặc bán tự động trên cơ sở nguồn kíchhoạt chứa sẵn của nó Có thể dùng một trong các nguồn sau làm nguồn kíchhoạt:

* file kích hoạt (tên file là BRD.INI)

Để có thể điều khiển được bo mạch ADP64Z2PCI thì thư viện điều khiểnBARDY có rất nhiều hàm chức năng bao gồm các hàm chức năng như: cáchàm chức năng điều chỉnh API BRD, các hàm chức năng làm việc với chương

Trang 10

trình nguồn, các hàm chức năng làm việc, các hàm chức năng bổ trợ, các hàmchức năng về mã lỗi… Trong phần này chỉ có thể nêu tên các hàm chức năngcủa thư viện, chi tiết về các hàm chức năng này được trình bầy kỹ trong tàiliệu “Thư viện điều khiển BARDY (DCR 0328)” được đồng bộ cùng với bomạch ADP64Z2PCI

Thư viện điều khiển BARDY điều khiển bo mạch ADP64Z2PCI nhờDriver B64Z2P Dưới đây ta đi nghiên cứu về Driver B64Z2P để hiểu đượcquá trình điều khiển bo mạch ADP64Z2PCI

1.2: Driver B64Z2P của bo mạch ADP64Z2PCI.

Trong phần này xem xét các đặc điểm thực hiện Driver B64Z2P chomodul xử lý số tín hiệu ADP64Z2PCI, dùng để làm việc trong thành phầncủa thư viện điều khiển BARDY trong hệ điều hành Windows 98/ME/2000

1.2.1: Đặc điểm driver và cài đặt driver mức thấp:

a) Đặc điểm driver:

- Modul cơ sở ADP64Z2PCI chứa chỉ một khâu xử lý, bởi vậy trong tất cảcác hàm cần chỉ ra ID của khâu dùng làm argument nodeld cần chỉ ra hằngNODE0

- Driver được thực hiện không sử dụng monitor, được bố trí thường trútrong bộ nhớ modul ADP64Z2PCI

- Mặc dù bộ nhớ trong cũng như ngoài modul ADP64Z2PCI có địa chỉbyte, việc truy cập bộ nhớ modul từ PC luôn thực hiện cho từng các từ 32bit

b) Yêu cầu đối với chương trình DSP:

Khi tạo chương trình ứng dụng cho modul DSP không cần một yêu cầuphụ nào cả Chương trình cho DSP có thể sử dụng độc lập tất cả bộ nhớ vàthâm nhập tới tất cả tài nguyên thiết bị của DSP Tuy nhiên, cần tính tới việcngắt từ PC chính sử dụng véctơ DSPINT

Trang 11

c) Cài đặt driver mức thấp:

Driver mức thấp là driver WDM Việc cài nó được thực hiện trong OSWindows hoàn toàn tự động Khi phát hiện modul cơ sở DSP ADP64Z2PCItrong bus hệ thống PC OS Windows mở cửa sổ hội thoại, trong đó đưa ra vịtrí driver bậc thấp Trong cửa sổ này cần chỉ ra catalog mà trong đó chứa fileW64Z2P.SYS và W64Z2P.INF, và ấn «Gance»

1.2.2: Khởi động modul DSP ADP64Z2PCI:

Để khởi động đúng thư viện BARDY cần tạo nguồn khởi động (I I): filekhởi động hoặc phần tài nguyên Nguồn khởi động có thể có các trường sau:

Bảng 3.1: Các trường nguồn khởi động

Các từ khoá pid, pcibus, pcidev, pcislot cho phép xác định tấm cụ thểtrong số các modul onechip DSP cắm vào PC Để làm điều đó cần sử dụngcác từ khoá này theo một trong 3 cách:

Trang 12

1 Nhờ từ khóa pid chỉ ra PID của modul DSP cụ thể Nếu pid=0, thìmodul DSP cắm đầu sẽ được chọn.

2 Nhờ pcibus và pcidev chỉ ra số hiệu bus trên PCI và số hiệu thiết bị trênbus này Các bus PCI trên PC được đánh số từ 0 Mõi bus có thể có đến

32 thiết bị

3 Nhờ pcislot chỉ ra số hiệu slot bus mở rộng PCI Số hiệu slot này đãđược chỉ ra trong tài liệu về mainboard PC, cũng như thường được thểhiện ở phía trái nó Sử dụng từ khoá này chỉ khi làm việc với ОSWindows 2000

Tất cả các phương pháp kể trên được xếp theo thứ tự ưu tiên Điều

đó có nghĩa là nếu I I chứa tất cả 3 phương pháp thì số sử dụng pi, cònnếu I I chứa chỉ 2 và 3 phương pháp thì để xác định modul DSP sẽ sửdụng pcibus và pcidev

1.2.3: Sắp xếp chương trình ứng dụng :

• Chương trình ứng dụng cho PC cần được sắp xếp từ thư việnBRD.LIB (cho Visual C++) hoặc BRDB.LIB (cho Borland C++) Thưviện động cần được bố trí trong catalog hệ điều hành Windows hoặcđường tìm kiếm

khuyến cáo nối vào nó thư viện DRV.A64 và DZY.A64 Điều đó chophép hỗ trợ truyền vào hàm main() chương trình DSP tham số dònglệnh Khi đó cần tính tới các yêu cầu sau:

1 Thư viện DZY.A64 cần nối với chương trình DSP đến thư việnchuẩn RTS6xxx.LIB Trong trường hợp đó sẽ làm việc với mã khởiđộng từ thư viện DZY.A64, trong đó chứa các toán tử hỗ trợ tham sốdòng lệnh

2 Chương trình sắp xếp cần chứa bảng symbol Điều đó tăng một chút

Trang 13

kích cỡ file, tuy nhiên tạo khả năng xác định vị trí buffer tham sốdòng lệnh như tên symbol

1.3: Đặc điểm thực hiện các hàm:

Dưới đây ta đi mô tả các hàm trong danh mục liệt kê các hàm BARDY, màviệc thực hiện của nó có đặc điểm của driver B64Z2P Tuy nhiên do điều kiệncủa đồ án nên ta chỉ mô tả các hàm một cách ngắn gọn, chỉ mang tính chấtgiới thiệu Các hàm này được giới thiệu chi tiết trong tài liệu “Thư viện điềukhiển BARDY (DCR0328)” đi đồng bộ với modul ADP64Z2PCI

1.3.1: Hàm BRD_open()

Mở liên hệ logic với modul DSP cơ sở:

BRD_Handle BRD_open (U32 lid, U32 flag, void *ptr );

Tham số ptr cho phép quay về chế độ thực mở modul cơ sở của nó, là chỉ

số đếm biến dạng U32

1.3.2: Hàm BRD_rsrcList().

Nhận liệt kê các dịch vụ đối với modul DSP đang xét:

S32 BRD_serviceList (BRD_Handle handle,U32 nodeId,

BRD_ServList *pList, U32 item, U32 *pItemReal ); Trong driver B64Z2P của modul cơ sở ADP64Z2PCI không thực hiện bất

kỳ dịch vụ nào

1.3.3: Hàm BRD_load() Tải chương trình lên khâu xử lý của modul DSP: S32 BRD_load ( THandle handle, int nodeId,

int argc, char *argv[] );

Trước khi tải chương trình lên bộ xử lý tín hiệu reset chương trình cầnđược đưa ra

Trang 14

Chúng ta nhớ rằng hàm này sẽ truyền đúng tham số dòng lệnh vào hàmmain() của chương trình DSP chỉ trong trường hợp nếu chương trình DSP đãđược sắp xếp với thư viện DZY.A64 Tuy nhiên việc tải chương trình vàomodul DSP sẽ luôn được hoàn thành không phụ thuộc vào việc sử dụng thưviện DZY.A64.

1.3.4: Hàm BRD_puList().

Nhận liệt kê các thiết bị lập trình (PU) – vi mạch khả trình của modulDSP:

S32 BRD_puList( BRD_Handle handle,

BRD_PuList *pList, U32 item, U32 *pItemReal ); Modul cơ sở ADP64Z2PCI chứa các PU sau:

Trang 15

void *hostAdr, U32 size );

Hàm này được thực hiện chỉ đối với PU có puID=1 Bởi vì việc đọc chỉđược thực hiện với từ 32 bit nên các tham số offset và size cần là bội của 4

1.3.7: Hàm BRD_puWrite().

Ghi vào các thiết bị lập trình (PU):

S32 BRD_puWrite( BRD_Handle handle, U32 puId, U32 offset, void *hostAdr, U32 size );

Hàm này được thực hiện chỉ đối với PU có puID=1 Bởi vì việc ghi đượcthực hiện chỉ bằng từ 32-bit, nên các tham số offset và size cần là bội của 4

1.3.8: Hàm BRD_stop().

Dừng làm việc modul DSP:

S32 BRD_stop( THandle handle, UINT32 nodeId );

Hàm BRD_stop() thực hiện tương tự BRD_reset(), tức là đặt lên bộ xử lýtín hiệu reset chương trình Nếu sau đó thực hiện BRD_start(), thì chươngtrình DSP bắt đầu thực hiện từ đầu

1.3.9: Hàm BRD_extension().

Đặt lệnh dịch vụ:

S32 BRD_extension (BRD_Handle handle, U32 nodeId,

U32 cmd, void *arg );

Nhờ hàm này có thể thực hiện các lệnh được xét dưới đây :

Lệnh BRDextn_GET_MINPERBYTE.

Quay lại kích cỡ bằng byte phần tử địa chỉ nhỏ nhất của bộ nhớ bộ xử lý

Ngày đăng: 20/08/2016, 10:44

HÌNH ẢNH LIÊN QUAN

Hình 3.1: Sự tương tác giữa BARDY với đảm bảo chương trình ứng - ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG
Hình 3.1 Sự tương tác giữa BARDY với đảm bảo chương trình ứng (Trang 2)
Hình 3.2: Nối một số Driver với một phụ lục. - ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG
Hình 3.2 Nối một số Driver với một phụ lục (Trang 6)
Hình 3.3: Nối các thành phần BASE Driver. - ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG
Hình 3.3 Nối các thành phần BASE Driver (Trang 7)
Hình 3.4: Nối các thành phần TECH Driver. - ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG
Hình 3.4 Nối các thành phần TECH Driver (Trang 8)
Hình 3.6: Nối một số thành phần SUB Driver đến một thành phần - ĐIỀU KHIỂN MODUL ADP64Z2PCI VÀ ỨNG DỤNG
Hình 3.6 Nối một số thành phần SUB Driver đến một thành phần (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w