
or 61h
sacl 60h
addk #800h
and #0fffh
sacl 63h
out 63h,daport /*輸出到D/A口
clrc intm
ret
timer:ret
inpt23:ret
uart:ret
codtx:ret
codrx:ret
.end
2.看門狗電路
看門狗電路是用來(lái)監(jiān)視F206工作的,電路如圖4所示。當(dāng)出現(xiàn)死機(jī)時(shí),它會(huì)對(duì)F206自動(dòng)地進(jìn)行復(fù)位,或者,可以通過(guò)主控機(jī)來(lái)復(fù)位F206。根據(jù) MAX706的特性,當(dāng)看門狗輸出(WDI)的電壓保持同一值超過(guò)1.6s的時(shí)候,將獨(dú)發(fā)看門狗輸出(WDO)產(chǎn)生一個(gè)負(fù)脈沖,所以,可以利用F206的通用輸入輸出引腳I/O0與看門狗的WDI連接,通過(guò)編程實(shí)現(xiàn)在一定的時(shí)間間隔(不超過(guò)1.6s)里。I/O0不斷出現(xiàn)高低電平,從而保證在F206正常工作的狀態(tài)下,看門狗不會(huì)對(duì)F206復(fù)位。一旦DSP工作異常,便可以對(duì)其自動(dòng)復(fù)位,從而保證F206始終工作在正常狀態(tài)。
另外,在使用者認(rèn)為有必要對(duì)DSP復(fù)位的時(shí)候,也可以通過(guò)向板卡寫入(或讀出)一個(gè)低電平值,從而實(shí)現(xiàn)對(duì)DSP的復(fù)位。該信號(hào)線如圖4中MRS。
3.雙端口RAM及主控機(jī)接口電路
為了和主控機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,我們加上了1個(gè)雙端口RAM,使F206和主控機(jī)均可以對(duì)該RAM進(jìn)行讀寫操作,只不過(guò)相對(duì)F206和主控機(jī)來(lái)說(shuō),該RAM 的映射地址不同而已。們?cè)谶@個(gè)設(shè)計(jì)中,選用了IDT7134芯片,它為4K×8bit雙端口RAM,設(shè)計(jì)方案如圖5所示,接口部分如圖6所示。
(1) F206到IDT7134的接口電路比較簡(jiǎn)單,只需把相應(yīng)的地址線和數(shù)據(jù)線連接起來(lái)即可;但是片選電路做了一點(diǎn)調(diào)整;利用F206的DS(數(shù)據(jù)空間選擇信號(hào))與PS(程序空間選擇信號(hào))進(jìn)行或運(yùn)算,再和F206的A15(高位地址線)進(jìn)行與運(yùn)算,得到的DS2作為IDT7134的片選信號(hào)。這么做有幾個(gè)優(yōu)點(diǎn):首先,可以通過(guò)編寫CMD文件來(lái)分配IDT7134的空間,可以把一部分空間分配給數(shù)據(jù)空間,另一部分分配給程序空間,這樣就可以根據(jù)軟件運(yùn)行的要求來(lái)分配存儲(chǔ)器,靈活性就大多了;另外,還可以通過(guò)編寫片選芯片,把IDT7134只分配給數(shù)據(jù)空間或程序空間;其次,A15與片選信號(hào)與運(yùn)算,所以, IDT7134的整個(gè)存儲(chǔ)空間的地址就是8000H~8FFFH,這就使得我們可以通過(guò)軟件設(shè)定F206的GREG寄存器,把F206能訪問(wèn)的64KB局部數(shù)據(jù)空間的高端32KB地址空間的全部或一部分分配為全局?jǐn)?shù)據(jù)空間,用以和外界進(jìn)行數(shù)據(jù)交換。
(2)從PC104總線到IDT7134的接口部分包括部線驅(qū)動(dòng)、板卡片選電路。總線驅(qū)動(dòng)旨在提高板卡工作的穩(wěn)定性,對(duì)衰減的數(shù)據(jù)總線進(jìn)行補(bǔ)償;而板卡選擇電路是給該板分配一個(gè)I/O地址,例如我們?cè)谶@塊板卡的設(shè)計(jì)中,分配PC機(jī)I/O空間地址D0330H,這樣,當(dāng)主機(jī)對(duì)I/O空間D0330H進(jìn)行讀寫操作即為對(duì)該板操作,而不會(huì)對(duì)其他的附件產(chǎn)生誤操作。
(3)對(duì) PC/104總線的地址線A19~A12進(jìn)行譯碼,產(chǎn)生的PCSS信號(hào)作為PC機(jī)對(duì)IDT7134的選通信號(hào)。故在編程時(shí),對(duì)于該板卡,只需把段地址設(shè)定為D000H即可,偏移地址可為000H~FFFH,就可以實(shí)現(xiàn)對(duì)IDT7134這4KB的存儲(chǔ)空間進(jìn)行尋址。同時(shí)PCSS亦可作為74LS245總線驅(qū)動(dòng)器的使能信號(hào),與PC/104總線的MEMR信號(hào)配合(MEMR作為74LS245的方向控制信號(hào)),可以很好地實(shí)現(xiàn)PC機(jī)對(duì)雙端口RAM的數(shù)據(jù)讀寫。
(4)對(duì)PC/104總線的地址線A0~A9、PC機(jī)的I/O口寫信號(hào)(IOW)及PC機(jī)地址使能信號(hào)(AEN)進(jìn)行譯碼,在I/O地址330H,產(chǎn)生MRS信號(hào),與看門狗電路連接,從而實(shí)現(xiàn)PC機(jī)手寫復(fù)位DSP的功能。
在PC機(jī)上實(shí)現(xiàn)上述功能,可編寫簡(jiǎn)單的C語(yǔ)言程序:
#include<dos.h>
#include<conio.h)
{ int value;
int rsport=0x330;
outport(rsport,1); /*復(fù)位dsp*/
value=peek(0xd000,0x0063); /*讀D0063H*/
poke(0xd000,0x0060,1); /*寫1到D0060H*/
}
該板卡工作過(guò)程可簡(jiǎn)略敘述為:DSP加電復(fù)位,并對(duì)相應(yīng)的控制寄存器置位,對(duì)MAX197寫入控制字。MAX197開(kāi)始進(jìn)行模/數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后, MAX197觸發(fā)F206的INT1中斷。DSP讀出轉(zhuǎn)換結(jié)果,存儲(chǔ)在雙端口RAM中,以便主控機(jī)讀取。主控機(jī)讀取數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的算法處理。處理后的結(jié)果返回給雙端口RAM,DSP再把它送入AD7247進(jìn)行數(shù)/模轉(zhuǎn)換,直接輸出。整個(gè)過(guò)程中,看門狗電路始終處于監(jiān)控狀態(tài),一旦出現(xiàn)異常,將對(duì) DSP復(fù)位。
小結(jié)
該板卡具備4路A/D、D/A高速轉(zhuǎn)換通道,并且采用了二級(jí)看門狗電路。在板卡工作過(guò)程中,DSP要不斷地向看門狗電路寫入或擦除。我們通過(guò)F206的 I/O0來(lái)完成此工作,一旦超過(guò)1.6s的時(shí)間,看門狗認(rèn)為DSP處于死機(jī)狀態(tài),從而觸發(fā)對(duì)F206的復(fù)位操作,這構(gòu)成第一級(jí)看門狗硬件電路。另外,利用 DSP在一定的時(shí)間間隔內(nèi),向雙端口某一固定區(qū)域?qū)懭肽常瑫r(shí),主控機(jī)在另一時(shí)刻對(duì)此區(qū)域讀取,之后清除,當(dāng)主控機(jī)發(fā)現(xiàn)讀取的數(shù)值和預(yù)定的不同時(shí),認(rèn)為 DSP處于死機(jī)狀態(tài),則向該板卡寫入,從而使DSP復(fù)位,這就構(gòu)成了第二級(jí)軟件看門狗。該板卡具有雙級(jí)看門狗后,工作穩(wěn)定性大大提高,采樣性能穩(wěn)定。
按照該板的電路設(shè)計(jì)已經(jīng)做出相應(yīng)的電路板,通過(guò)實(shí)驗(yàn)的調(diào)試,已經(jīng)可以實(shí)現(xiàn)如本文所敘述的功能。
另外,作為信號(hào)采集卡,這也是一種可行的設(shè)計(jì)。





