Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
304 KB
Nội dung
CHNG IU KHIN MODUL ADP64Z2PCI V NG DNG 1.IU KHIN MODUL ADP64Z2PCI: Mt rt quan trng vic xõy dng bo mch ú l lm th no iu khin c bo mch bng mỏy tớnh PC, iu khin õy bao gm: Vic nhn bit bo mch ca mỏy tớnh, trao i d liu gia bo mch v mỏy tớnh, trao i cỏc ngt i vi bo mch ADP64Z2PCI giao tip vi mỏy tớnh v lp trỡnh cho bo mch ngi ta s dng th vin BARDY v Driver B64Z2P Vỡ vy hiu c vic iu khin Modul ADP64Z2PCI ca mỏy tớnh PC ta i nghiờn cu v th vin BARDY v Driver B64Z2P 1.1: Th vin iu khin BARDY Khi lp chng trỡnh iu khin modul ADP64Z2PCI t mỏy tớnh PC ta s dng th vin iu khin BARDY Th vin ny cho phộp iu khin bo mch ny mụi trng h iu hnh Windows 98/2000/XP 1.1.1: Cụng dng ca th vin iu khin BARDY: Th vin BARDY dựng iu khin Modul gc v cỏc phõn ADM t nú (Do hóng Instrument System cung cp) Th vin iu khin BARDY h tr s lm vic ca cỏc Modul gc cú vi x lý cng nh khụng cú vi x lý im khỏc ca chỳng c ch phớa di, nhng s khỏc y khụng nh hng n cu trỳc ca ph lc Win32 Th vin BARDY nm thnh phn cỏc ph lc Win32 v cú th c s dng cỏc ph lc Win32 mt dũng cng nh nhiu dũng 1.1.2: Cu trỳc v tớnh cht ca th vin BARDY: a) Cu trỳc ca th vin iu khin BARDY: Th vin iu khin BARDY cho phộp ta m bo chng trỡnh ng dng 75 lm vic ng thi c vi mt s modul x lý s tớn hiu thun tin cho vic thc hin th vin iu khin BARDY (BARDY) c chia lm hai thnh phn l: mụi trng BRD v b iu khin modul x lý s tớn hiu Nh cú cu trỳc nh vy m BARDY d dng tng trng hn cho mi kiu modul x lý s tớn hiu mi, bng cỏch n gin l b xung thờm b iu khin mi Cỏc tớnh cht mm trờn cú c th vin iu khin BARDY cú cu trỳc nh hỡnh 3.1 di õy Đảm bảo ch ơng trình ứng dụng Môi tr ờng Bộ đIều khiển modul kiểu A Modul Bộ đIều khiển modul kiểu B Modul B1 BRD Nguồn thông tin PC Modul Modul B2 Modul XSTH Hỡnh 3.1: S tng tỏc gia BARDY vi m bo chng trỡnh ng dng v cỏc modul x lý s tớn hiu Mụi trng BDR to mt giao din chng trỡnh tiờu chun ng dng API (Application Program Intrface) cho m bo chng trỡnh Giao din API ny cũn cha nhng chc nng iu khin cỏc modul x lý s tớn hiu sau: Np mó cn chp hnh vo b x lý s tớn hiu Xoỏ, ng v dng b vi x lý s tớn hiu c/ghi nh cho b vi x lý s tớn hiu Trao i ngt vi b vi x lý s tớn hiu Trao i cỏc s liu nhanh vi b vi x lý s tớn hiu Duy trỡ cỏc tham s ca dũng lnh cho nhng chng trỡnh x lý s tớn hiu ó c vit trờn ngụn ng C 76 Lm vic vi cỏc tờn kớ t Np/c/ghi cỏc thit b chng trỡnh (PLIC.) Vic iu chnh th vin BARDY c thc hin nh ngun kớch hot, ú l mt file bn nh dng c bit hoc l mt phn PEECTP Mt c ch nh vy s cho phộp ta nhanh chúng v d dng a nhng b iu khin mi v th vin iu khin BARDY v iu khin nhng tham s kớch hot chỳng b) Cỏc tớnh cht ca th vin BARDY: Giao din API chun hoỏ cho tt c cỏc modul gc ca hóng Instrument Systems Lm vic ng thi m bo chng trỡnh ng dng vi nhiu modul x lý s tớn hiu khỏc iu chnh nhanh cỏc tham s ban u ca mi b iu khin nh ngun kớch hot Tr giỳp lm vic ca mt s ph lc cựng vi mt modul x lý s tớn hiu (i vi x lý tớn hiu Windows) 1.1.3: Cỏc c trng ca th vin BARDY: H tr cụng vic ca tt c cỏc modul gc v phõn trờn c s mt giao din chng trỡnh thng nht Tớnh khụng i ca giao din chng trỡnh Tớnh phự hp ca giao din chng trỡnh vi bt k ph lc Win32 no H tr cỏc ph lc a dũng ca Win32 H tr lm vic ng thi mt s ph lc Win32 vi mt modul gc Cú ba h thng thụng bỏo li c lp Kớch hot th vin ch t ng hoc bỏn t ng Lu gi thụng tin kớch hot mt file hoc peectp Che du ton b cỏc thụng tin v thit b 77 10 Tip cn n mi thit b nh Descriptor 11 H tr cỏc modul gc cú kh nng thay núng (Hot Swapping) 12 Bo v ni vi thit b ngt núng 13 Khi mt s ph lc lm vic ng thi vi mt modul gc thỡ cú ba ch m: M n iu, m tỏch riờng v m Monitor 14 Tỏch cỏc modul gc thnh nhng chng trỡnh ngun c lp 15 Khi mt s ph lc lm vic ng thi vi mt chng trỡnh ngun thỡ cú ba ch bt chng trỡnh ngun: Bt n iu, bt tỏch riờng v bt Monitor 1.1.4: Thng nht v ký hiu: Vn bn ban u a hng dn c in bng kiu ch Courier Nhng múc vuụng [ ] dựng ký hiu nhng tham s khụng bt buc 1.1.5: Nguyờn tc lm vic ca th vin BARDY: Trong phn ny s kho sỏt cỏc thnh phn nm th vin iu khin BARDY v tỏc ng tng h gia cỏc thnh phn tng h nm th vin BARDY Nghiờn cu tt nhng nguyờn lý kớch hot BARDY, nguyờn lý che du thụng tin v thit b, nguyờn lý lm vic x lý tớn hiu a nhim v nhng c ch thụng bỏo li a) Thnh phn ca th vin iu khin BARDY: Th vin BARDY gm cú mt nhng thnh phn, chỳng hoc l DDL hoc l mt b iu khin ca ht nhõn Win32 Cỏc thnh phn ú c trỡnh by bng sau: BRD Shell (Mụi trng BRD): Tt c cỏc ph lc tng tỏc vi BARDY qua mụi trng BRD Mụi trng BRD l DLL m cỏc b iu khin gc c kt ni ng vi nú, nú cú th c kt ni vi ph lc tnh hoc ng 78 BASE Driver: BASE Driver l mt Driver ca modul gc Nú l mt DDL c kt ni ng vi mụi trng BRD BASE Driver cho phộp ta iu khin modul gc nh Driver ht nhõn BASE Driver khụng cú kh nng iu khin phõn t modul gc DUPLEX Driver: DUPLEX Driver l mt Driver ca modul gc Nú l mt DDL c kt ni ng vi mụi trng BRD DUPLEX Driver cho phộp ta iu khin modul gc nh Driver ht nhõn Nú cú kh nng iu khin phõn t modul gc, mun vy nú phi cú thờm mt giao din ph cho phộp kt ni vi phõn TECH Driver: TECH Driver l mt Driver Techno Nú l mt thng tng kin trỳc trờn BASE Driver Nú dựng tr giỳp cho phõn modul gc lm vic Nú l mt DDL c kt ni ng vi mụi trng BRD TECH Driver cho phộp ta iu khin modul gc nh BASE Driver SUB Driver: SUB Driver l Driver ca phõn khi, nú dựng tr giỳp cho phõn c th lm vic Nú l mt DDL, c kt ni ng vi Driver DUPLEX hoc vi Driver TECH SUB Driver cho phộp ta iu khin phõn nh Driver DUPLEX hoc Driver TECH WDM Driver (Kernel): Kernel l Driver ht nhõn, nú dựng iu khin mt modul gc c th Nú l mt Driver ht nhõn theo mt nhng kiu: VXD, NTSYS, WDM Chỳ ý: Vic kt ni tnh DDL c thc hin nh th vin nhp, cũn vic kt ni ng DDL thỡ c thc hin nh chc nng Load Liblary ( ) b) S tng tỏc gia cỏc thnh phn ca BARDY: Mi thnh phn cú mt nhng im vo c nh ca nú, ú l mt giao din chng trỡnh c ký hiu l API ( Application Program Interface ) Mụi 79 trng BRD cho phộp ta kt ni ng thi mt ph lc n cỏc b iu khin modul gc BRD_COUNT Ngha l mt ph lc cú th ng thi iu khin cỏc thit b modul gc BRD_COUNT Trờn hỡnh v di õy th hin mt vớ d ni cỏc Driver lm vic ng thi vi mt s modul gc cỏc kiu Application BRD Shell BASE Driver DUPLEX Driver TECH Driver Hỡnh 3.2: Ni mt s Driver vi mt ph lc Hin cú ba phng phỏp kt ni Driver vi mụi trng BRD: - Ni thnh phn BASE Driver iu khin ch mt modul gc - Ni thnh phn DUPLEX Driver iu khin modul gc khụng cú b vi x lý nhng cú phõn t nú - Ni thnh phn TECH Driver iu khin modul gc v phõn t nú Cỏc hỡnh di õy ch rừ cỏc thnh phn cho mi phng phỏp trờn v chỳng tỏc ng vi nh th no 80 Application BRD Shell BASE Driver Kernel Thiết bị (modul gốc) Hỡnh 3.3: Ni cỏc thnh phn BASE Driver 81 Application BRD Shell DUPLEX Driver SUB Driver Kernel Thiết bị (modul gốc không vi xử lí phân khối) Hỡnh 3.4: Ni cỏc thnh phn TECH Driver Application BRD Shell TECH Driver SUB Driver BASE Driver Kernel Thiết bị (modul gốc không vi xử lí phân khối) Hỡnh 3.5: Ni cỏc thnh phn TECH Driver Nu cú th t mt s phõn modul gc, thỡ cú ngha l cn phi kt ni mt s Driver ca phõn n mt Driver ca modul gc 82 Application BRD Shell SUB Driver DUPLEX Driver SUB Driver Kernel Thiết bị (modul gốc không vi xử lí phân khối) Hỡnh 3.6: Ni mt s thnh phn SUB Driver n mt thnh phn DUPLEX Driver c) Kớch hot v m th vin BARDY: Trc bt u lm vic vi th vin BARDY thỡ phi kớch hot nú Mun vy cn phi gi mt cỏc chc nng: Chc nng BRD_init() n gin hay chc nng BRD_initEx() phc hn Mi chc nng y li thc hin kớch hot ch t ng hoc bỏn t ng trờn c s ngun kớch hot cha sn ca nú Cú th dựng mt cỏc ngun sau lm ngun kớch hot: * file kớch hot (tờn file l BRD.INI) * Mt mc HKEY_LOCAL_MACHINE/Software/Instrumental Systems/BRD Shell giỳp cho modul gc cú th thay núng thỡ ta s dng kớch hot li Nú c thc hin nh chc nng BRD_reinit(), chc nng ny cng dựng ngun kớch hot nh chc nng kớch hot trc õy ó dựng cú th iu khin c bo mch ADP64Z2PCI thỡ th vin iu khin BARDY cú rt nhiu hm chc nng bao gm cỏc hm chc nng nh: cỏc hm chc nng iu chnh API BRD, cỏc hm chc nng lm vic vi chng 83 trỡnh ngun, cỏc hm chc nng lm vic, cỏc hm chc nng b tr, cỏc hm chc nng v mó li Trong phn ny ch cú th nờu tờn cỏc hm chc nng ca th vin, chi tit v cỏc hm chc nng ny c trỡnh by k ti liu Th vin iu khin BARDY (DCR 0328) c ng b cựng vi bo mch ADP64Z2PCI Th vin iu khin BARDY iu khin bo mch ADP64Z2PCI nh Driver B64Z2P Di õy ta i nghiờn cu v Driver B64Z2P hiu c quỏ trỡnh iu khin bo mch ADP64Z2PCI 1.2: Driver B64Z2P ca bo mch ADP64Z2PCI Trong phn ny xem xột cỏc c im thc hin Driver B64Z2P cho modul x lý s tớn hiu ADP64Z2PCI, dựng lm vic thnh phn ca th vin iu khin BARDY h iu hnh Windows 98/ME/2000 1.2.1: c im driver v ci t driver mc thp: a) c im driver: - Modul c s ADP64Z2PCI cha ch mt khõu x lý, bi vy tt c cỏc hm cn ch ID ca khõu dựng lm argument nodeld cn ch hng NODE0 - Driver c thc hin khụng s dng monitor, c b trớ thng trỳ b nh modul ADP64Z2PCI - Mc dự b nh cng nh ngoi modul ADP64Z2PCI cú a ch byte, vic truy cp b nh modul t PC luụn thc hin cho tng cỏc t 32 bit b) Yờu cu i vi chng trỡnh DSP: Khi to chng trỡnh ng dng cho modul DSP khụng cn mt yờu cu ph no c Chng trỡnh cho DSP cú th s dng c lp tt c b nh v thõm nhp ti tt c ti nguyờn thit b ca DSP Tuy nhiờn, cn tớnh ti vic ngt t PC chớnh s dng vộct DSPINT 84 c) Ci t driver mc thp: Driver mc thp l driver WDM Vic ci nú c thc hin OS Windows hon ton t ng Khi phỏt hin modul c s DSP ADP64Z2PCI bus h thng PC OS Windows m ca s hi thoi, ú a v trớ driver bc thp Trong ca s ny cn ch catalog m ú cha file W64Z2P.SYS v W64Z2P.INF, v n ôGanceằ 1.2.2: Khi ng modul DSP ADP64Z2PCI: ng ỳng th vin BARDY cn to ngun ng (I I): file ng hoc phn ti nguyờn Ngun ng cú th cú cỏc trng sau: T khoỏ Loi Giỏ tr Ghi chỳ Type Dũng B64Z2P Pid Nguyờn Ch PID modul c s hoc pcibus Nguyờn Ch s hiu bus PCI, ú thit Tờn driver lp modul c s pcidev Nguyờn Ch s hiu Slot bus PCI, ú cm modul c s pcislot Nguyờn Ch s hiu Slot bus PCI, ú cm modul c s ( ) Bng 3.1: Cỏc trng ngun ng Cỏc t khoỏ pid, pcibus, pcidev, pcislot cho phộp xỏc nh tm c th s cỏc modul onechip DSP cm vo PC lm iu ú cn s dng cỏc t khoỏ ny theo mt cỏch: 85 Nh t khúa pid ch PID ca modul DSP c th Nu pid=0, thỡ modul DSP cm u s c chn Nh pcibus v pcidev ch s hiu bus trờn PCI v s hiu thit b trờn bus ny Cỏc bus PCI trờn PC c ỏnh s t Mừi bus cú th cú n 32 thit b Nh pcislot ch s hiu slot bus m rng PCI S hiu slot ny ó c ch ti liu v mainboard PC, cng nh thng c th hin phớa trỏi nú S dng t khoỏ ny ch lm vic vi S Windows 2000 Tt c cỏc phng phỏp k trờn c xp theo th t u tiờn iu ú cú ngha l nu I I cha tt c phng phỏp thỡ s s dng pi, cũn nu I I cha ch v phng phỏp thỡ xỏc nh modul DSP s s dng pcibus v pcidev 1.2.3: Sp xp chng trỡnh ng dng : Chng trỡnh ng dng cho PC cn c sp xp t th vin BRD.LIB (cho Visual C++) hoc BRDB.LIB (cho Borland C++) Th vin ng cn c b trớ catalog h iu hnh Windows hoc ng tỡm kim Nu chng trỡnh ng dng cho modul DSP cng c vit trờn C, thỡ khuyn cỏo ni vo nú th vin DRV.A64 v DZY.A64 iu ú cho phộp h tr truyn vo hm main() chng trỡnh DSP tham s dũng lnh Khi ú cn tớnh ti cỏc yờu cu sau: Th vin DZY.A64 cn ni vi chng trỡnh DSP n th vin chun RTS6xxx.LIB Trong trng hp ú s lm vic vi mó ng t th vin DZY.A64, ú cha cỏc toỏn t h tr tham s dũng lnh Chng trỡnh sp xp cn cha bng symbol iu ú tng mt chỳt 86 kớch c file, nhiờn to kh nng xỏc nh v trớ buffer tham s dũng lnh nh tờn symbol 1.3: c im thc hin cỏc hm: Di õy ta i mụ t cỏc hm danh mc lit kờ cỏc hm BARDY, m vic thc hin ca nú cú c im ca driver B64Z2P Tuy nhiờn iu kin ca ỏn nờn ta ch mụ t cỏc hm mt cỏch ngn gn, ch mang tớnh cht gii thiu Cỏc hm ny c gii thiu chi tit ti liu Th vin iu khin BARDY (DCR0328) i ng b vi modul ADP64Z2PCI 1.3.1: Hm BRD_open() M liờn h logic vi modul DSP c s: BRD_Handle BRD_open (U32 lid, U32 flag, void *ptr ); Tham s ptr cho phộp quay v ch thc m modul c s ca nú, l ch s m bin dng U32 1.3.2: Hm BRD_rsrcList() Nhn lit kờ cỏc dch v i vi modul DSP ang xột: S32 BRD_serviceList (BRD_Handle handle,U32 nodeId, BRD_ServList *pList, U32 item, U32 *pItemReal ); Trong driver B64Z2P ca modul c s ADP64Z2PCI khụng thc hin bt k dch v no 1.3.3: Hm BRD_load() Ti chng trỡnh lờn khõu x lý ca modul DSP: S32 BRD_load ( THandle handle, int nodeId, int argc, char *argv[] ); Trc ti chng trỡnh lờn b x lý tớn hiu reset chng trỡnh cn c a 87 Chỳng ta nh rng hm ny s truyn ỳng tham s dũng lnh vo hm main() ca chng trỡnh DSP ch trng hp nu chng trỡnh DSP ó c sp xp vi th vin DZY.A64 Tuy nhiờn vic ti chng trỡnh vo modul DSP s luụn c hon thnh khụng ph thuc vo vic s dng th vin DZY.A64 1.3.4: Hm BRD_puList() Nhn lit kờ cỏc thit b lp trỡnh (PU) vi mch kh trỡnh ca modul DSP: S32 BRD_puList( BRD_Handle handle, BRD_PuList *pList, U32 item, U32 *pItemReal ); Modul c s ADP64Z2PCI cha cỏc PU sau: puID Code Thuc tớnh Ghi chỳ 0 Nhn dng cu trỡnh ROM (ICR) 257 0 Tt c PLIS c ni liờn tip mt mch 1.3.5: Hm BRD_puState() Nhn trng thỏi hin ti ca cỏc thit b lp trỡnh (PU) vi mch kh trỡnh: S32 BRD_puState(BRD_Handle handle, U32 puId, U32 *state ); Hm ny quay li nh ch s state trng thỏi PLIS PLIS cha lp trỡnh, PLIS ó lp trỡnh Hm ny c thc hin ch vi PU cú puID = 257 i vi PU cú puID=1 hm ny luụn quay li giỏ tr 1.3.6: Hm BRD_puRead() c t cỏc thit b lp trỡnh (PU): S32 BRD_puRead( BRD_Handle handle, U32 puId, U32 offset, 88 void *hostAdr, U32 size ); Hm ny c thc hin ch i vi PU cú puID=1 Bi vỡ vic c ch c thc hin vi t 32 bit nờn cỏc tham s offset v size cn l bi ca 1.3.7: Hm BRD_puWrite() Ghi vo cỏc thit b lp trỡnh (PU): S32 BRD_puWrite( BRD_Handle handle, U32 puId, U32 offset, void *hostAdr, U32 size ); Hm ny c thc hin ch i vi PU cú puID=1 Bi vỡ vic ghi c thc hin ch bng t 32-bit, nờn cỏc tham s offset v size cn l bi ca 1.3.8: Hm BRD_stop() Dng lm vic modul DSP: S32 BRD_stop( THandle handle, UINT32 nodeId ); Hm BRD_stop() thc hin tng t BRD_reset(), tc l t lờn b x lý tớn hiu reset chng trỡnh Nu sau ú thc hin BRD_start(), thỡ chng trỡnh DSP bt u thc hin t u 1.3.9: Hm BRD_extension() t lnh dch v: S32 BRD_extension (BRD_Handle handle, U32 nodeId, U32 cmd, void *arg ); Nh hm ny cú th thc hin cỏc lnh c xột di õy : Lnh BRDextn_GET_MINPERBYTE Quay li kớch c bng byte phn t a ch nh nht ca b nh b x lý 89 Lnh BRDextn_GET_DEVICE_HANDLE_EK Quay li descriptor driver mc thp Code lnh, code sai s, dng d liu, hng s v marco m rng thc hin lnh hm BRD_extension() cha file m u EXTN.H v EXTN_EK.H 1.3.10: Hm BRD_peek() c ụ 32-bit t b nh modul DSP: U32 BRD_peek( BRD_Handle handle, U32 nodeId, U32 brdAdr ); Bi vỡ modul ADP64Z2PCI ụ a ch nh nht cha bit (1 byte), nờn tham s brdAdr cn luụn l bi ca iu ú cú ngha l a ch ụ 32 bit c b trớ byte 1.3.11: Hm BRD_poke() Ghi mt t mó 32 bit vo b nh modul DSP: S32 BRD_poke( BRD_Handle handle, U32 nodeId, U32 brdAdr, U32 val ); Bi vỡ modul ADP64Z2PCI ụ a ch nh nht cha bit (1 byte), nờn tham s brdAdr cn luụn l bi ca iu ú cú ngha l a ch ụ 32 bit c b trớ byte 1.3.12: Hm BRD_readRAM() c buffer t b nh modul DSP vo b nh PC: S32 BRD_readRAM( BRD_Handle handle, U32 nodeId, U32 brdAdr, void *hostAdr, U32 itemNum, U32 itemSize ); Trong cỏc modul ADP64Z2PCI ụ a ch nh nht cha bit (1 byte), nhng vic thõm nhp ụ nh ch c thc hin bi cỏc t 32 bit Bi vy 90 argument brdAdr v size cn luụn l bi ca iu ú cú ngha l a ch buffer c b trớ gii hn byte v buffer luụn cha s nguyờn t 32 bit 1.3.13: Hm BRD_writeRAM() Ghi buffer t b nh PC vo b nh modul DSP: S32 BRD_writeRAM( BRD_Handle handle, U32 nodeId, U32 brdAdr, void *hostAdr, U32 itemNum, U32 itemSize ); Trong cỏc modul ADP64Z2PCI ụ a ch nh nht cha bit (1 byte), nhng vic thõm nhp ụ nh ch c thc hin bi cỏc t 32 bit Bi vy argument brdAdr v size cn luụn l bi ca iu ú cú ngha l a ch buffer c b trớ gii hn byte v buffer luụn cha s nguyờn t 32 bit 1.3.14: Hm BRD_readFIFO() c buffer t FIFO modul DSP vo b nh DSP: S32 BRD_readFIFO( BRD_Handle handle, U32 nodeId, U32 brdAdr, void *hostAdr, U32 size, U32 timeout ); Bi vỡ modul ADP64Z2PCI khụng cha FIFO, nờn i vi nú hm ny khụng c thc hin mc dự cng khụng a thụng bỏo li 1.3.15: Hm BRD_writeFIFO() Ghi buffer t b nh PC vo FIFO modul DSP: S32 BRD_writeFIFO( BRD_Handle handle, U32 nodeId, U32 brdAdr, void *hostAdr, U32 size, U32 timeout ); Bi vỡ modul ADP64Z2PCI khụng cha FIFO, nờn i vi nú hm ny khụng c thc hin mc dự cng khụng a thụng bỏo li 91 1.3.16: Hm BRD_readDPRAM() c buffer t DPRAM modul DSP vo b nh PC : S32 BRD_readDPRAM( BRD_Handle handle, U32 nodeId, U32 offset, void *hostAdr, U32 size ); Bi vỡ modul ADP64Z2PCI khụng cha DPRQM, nờn i vi nú hm ny khụng thc hin c v luụn a thụng bỏo li: BRDerr_FUNC_ UNIMPLEMENTED 1.3.17: Hm BRD_writeDPRAM() Ghi buffer t b nh PC vo DPRAM modul DSP: S32 BRD_writeDPRAM( BRD_Handle handle, U32 nodeId, U32 offset, void *hostAdr, U32 size ); Bi vỡ modul ADP64Z2PCI khụng cha DPRQM, nờn i vi nú hm ny khụng thc hin c v luụn a thụng bỏo li: BRDerr_FUNC _UNIMPL EMENTED 1.3.18: Hm BRD_read() Nhn d liu t thit b: S32 BRD_read( BRD_Handle handle, U32 nodeId, void *hostAdr, U32 size, U32 timeout ); Hm ny khụng thc hin v luụn a thụng bỏo li 1.3.19: Hm BRD_write() Gi d liu vo thit b: S32 BRD_read( BRD_Handle handle, U32 nodeId, void *hostAdr, U32 size, U32 timeout ); 92 Hm ny khụng thc hin v luụn a thụng bỏo li 1.3.20: Hm BRD_signalSend() Gi yờu cu ngt lờn DSP: S32 BRD_signalSend(BRD_Handle handle, U32 nodeId, U32 sigId ); Hm ny gi lờn TMS320C64Z2 yờu cu ngt DSPINT Khi ú giỏ tr tham s sigId b qua 1.3.21: Hm BRD_signalIack() ỏp li yờu cu ngt t b vi x lớ s tớn hiu: S32 BRD_signalIack(BRD_Handle handle, U32 nodeId, U32 sigId ); Hm ny khụng thc hin v luụn bỏo li 1.3.22: Hm BRD_signalList() Nhn lit kờ tt c cỏc ngt c h tr bi modul gc: S32 BRD_signalList(BRD_Handle handle, U32 nodeId, BRD_SigList *pList, U32 item, U32 *pItemReal ); Modul c s ADP620xPCI h tr cỏc ngt sau: sigID Code Thuc tớnh Ghi chỳ 1 Ngt t n PC 2 Ngt t PC n b x lý (DSPINT) T bng cn s dng sigId nh sau: Bi vỡ ch tn ti mt ngt t lờn PC, nờn gi hm BRD_signalWait(), BRD_signalGrab(), BRD_signalIack(), BRD_signalFresh() giỏ tr tham s sigId b b qua 93 Bi vỡ ch tn ti mt ngt t PC lờn , nờn gi hm BRD_signalSend() giỏ tr tham s sigId c b qua Khi gi hm BRD_signalInfo() cn s dng sigId =1 hoc Khi s dng cỏc giỏ tr khỏc sigId s bỏo li 2.NG DNG CHO MODUL ADP64Z2PCI: Hin cỏc cụng ngh tiờn tin nht ó c ng dng vo x lý tớn hiu s, thỡ vic cỏc hóng sn xut ln a cỏc bo mch tiờu chun a chc nng x lý s tớn hiu l iu tt yu Chớnh nh s thun tin ny, ngy cụng vic xõy dng cỏc bo mch gii cỏc bi toỏn x lý s tớn hiu, chỳng ta khụng phi i xõy dng cỏc bo mch mi hon ton, m chỳng ta cú th s dng cỏc bo mch a nng Khi ú cụng vic ch yu l i nghiờn cu ton din v bo mch (c phn cng v phn mm), sau ú i vit cỏc phn mm gii cỏc bi toỏn x lý s theo ngụn ng ca bo mch a nng Sau i nghiờn cu y Nhp v boNmch ADP64Z2PCI v b lc FIR bõy gi ta i xõy dng bo mch cú chc nng B lc s cú ỏp ng xung hu hn (b lc FIR) Phn mm ca b lc FIR trờn bo mch ADP64Z2PCI n=0 c vit trờn ngụn ng C++ Phn mm thc hin b lc FIR l tớnh cụng thc tớch chp hu hn sau Kt thỳc n[...]... ADP64Z2PCI bằng máy tính PC 3 Nghiên cứu các phương pháp để điều khiển modul ADP64Z2PCI và viết phần mềm xây dựng bộ lọc FIR dựa trên modul ADP64Z2PCI Trong phần này đã chỉ ra cấu trúc cũng như các đặc diểm của thư viện điều khiển BARDY và các hàm chức năng điều khiển modul nhờ Driver B64Z2P Bước tiếp đó là xây dựng bộ lọc FIR ứng dụng cho modul ADP64Z2PCI và được viết bằng ngôn ngữ C Qua thời gian làm đồ án... chương trình lên bộ xử lý của modul DSP Kết luận chương 3 95 Sau khi nghiên cứu tổng quan về bộ lọc FIR (chương 1) và modul xử lý số tín hiệu ADP64Z2PCI (chương 2), ở chương 3 của đồ án tập trung xây dựng phần mềm ứng dụng cho modul, đó là xây dựng bộ lọc FIR trên cơ sở modul ADP64Z2PCI Trong chương 3 đã giới thiệu về công cụ để điều khiển mudul ADP64Z2PCI đó là thư viện điều khiển BARDY Trong đó nêu lên... lọc số và các phương pháp tổng hợp bộ lọc FIR, thuật toán bộ lọc FIR làm cơ sở để xây dựng hệ xử lý số tín hiệu sau này 2 Nghiên cứu tổng quan về giao diện PCI 64bit/66Mhz và modul xử lý số tín hiệu ADP64Z2PCI Nội dung chủ yếu của phần này là giới thiệu về giao diện PCI và các ưu nhược điểm của nó, nghiên cứu tổ chức phần 96 cứng của modul ADP642ZPCI đồng thời đưa ra phương pháp điều khiển modul ADP64Z2PCI. .. được thể hiện ở phía trái nó Sử dụng từ khoá này chỉ khi làm việc với ОS Windows 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òn nế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ừ... sigId được bỏ qua 3 Khi gọi hàm BRD_signalInfo() cần sử dụng sigId =1 hoặc 2 Khi sử dụng các giá trị khác sigId sẽ báo lỗi 2 .ỨNG DỤNG CHO MODUL ADP64Z2PCI: Hiện nay khi các công nghệ tiên tiến nhất đã được ứng dụng vào trong xử lý tín hiệu số, thì việc các hãng sản xuất lớn đưa ra các bo mạch tiêu chuẩn đa chức năng trong xử lý số tín hiệu là điều tất yếu Chính nhờ sự thuận tiện này, ngày nay trong... viện BRD.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 • Nếu chương trình ứng dụng cho modul DSP cũng được viết trên C, thì khuyến cáo nối vào nó thư viện DRV.A64 và DZY.A64 Điều đó cho phép hỗ trợ truyền vào hàm main() chương trình DSP tham số dòng lệnh Khi đó cần tính tới các yêu cầu sau: 1 Thư viện DZY.A64 cần... U32 itemSize ); Trong các modul ADP64Z2PCI ô địa chỉ nhỏ nhất chứa 8 bit (1 byte), nhưng việc thâm nhập ô nhớ chỉ được thực hiện bởi các từ 32 bit Bởi vậy 90 argument brdAdr và size cần luôn là bội của 4 Điều đó có nghĩa là địa chỉ buffer được bố trí trong giới hạn 4 byte và buffer luôn chứa số nguyên từ 32 bit 1.3.13: Hàm BRD_writeRAM() Ghi buffer từ bộ nhớ PC vào bộ nhớ modul DSP: S32 BRD_writeRAM(... itemNum, U32 itemSize ); Trong các modul ADP64Z2PCI ô địa chỉ nhỏ nhất chứa 8 bit (1 byte), nhưng việc thâm nhập ô nhớ chỉ được thực hiện bởi các từ 32 bit Bởi vậy argument brdAdr và size cần luôn là bội của 4 Điều đó có nghĩa là địa chỉ buffer được bố trí trong giới hạn 4 byte và buffer luôn chứa số nguyên từ 32 bit 1.3.14: Hàm BRD_readFIFO() Đọc buffer từ FIFO modul DSP vào bộ nhớ DSP: S32 BRD_readFIFO(... Hàm BRD_readDPRAM() Đọc buffer từ DPRAM modul DSP vào bộ nhớ PC : S32 BRD_readDPRAM( BRD_Handle handle, U32 nodeId, U32 offset, void *hostAdr, U32 size ); Bởi vì modul ADP64Z2PCI không chứa DPRQM, nên đối với nó hàm này không thực hiện được và luôn đưa ra thông báo lỗi: BRDerr_FUNC_ UNIMPLEMENTED 1.3.17: Hàm BRD_writeDPRAM() Ghi buffer từ bộ nhớ PC vào DPRAM modul DSP: S32 BRD_writeDPRAM( BRD_Handle... PID modul cơ sở hoặc 0 pcibus Nguyên Chỉ số hiệu bus PCI, trong đó thiết Tên driver lập modul cơ sở pcidev Nguyên Chỉ số hiệu Slot bus PCI, trong đó cắm modul cơ sở pcislot Nguyên Chỉ số hiệu Slot bus PCI, trong đó cắm modul cơ sở (в разработке) 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