樊長(zhǎng)虹 管文輝 宋瑞
【摘要】TMS320F2812 DSP的外部復(fù)位電路和軟件喂狗存在易被忽略問(wèn)題。本文針對(duì)一種常見(jiàn)復(fù)位電路所存在的不足,采用高阻態(tài)器件改進(jìn)了設(shè)計(jì),提高了不同復(fù)位源之間接口兼容性;針對(duì)常用的周期中斷函數(shù)中喂狗方法可能存在的中斷阻塞,從而導(dǎo)致無(wú)必要復(fù)位的問(wèn)題,提出多個(gè)周期中斷相互監(jiān)控解決方法。
【關(guān)鍵詞】TMS320F2812;復(fù)位可靠性;軟件監(jiān)控
1.前言
TMS320F2812是TI公司推出的一款高性能定點(diǎn)DSP芯片,已經(jīng)廣泛用于運(yùn)動(dòng)控制應(yīng)用。我們部分項(xiàng)目中采用過(guò)該芯片,應(yīng)用中發(fā)現(xiàn)該芯片看門(mén)狗復(fù)位監(jiān)控常見(jiàn)兩類(lèi)問(wèn)題:1)用戶外圍復(fù)位電路與該芯片接口兼容性較差,當(dāng)芯片內(nèi)部看門(mén)狗溢出時(shí)復(fù)位輸出有可能不能使芯片正確復(fù)位;2)事件管理器時(shí)鐘周期中斷中喂狗清零時(shí),時(shí)鐘周期中斷標(biāo)識(shí)偶爾會(huì)清除失敗,使得中斷阻塞,無(wú)法有效喂狗導(dǎo)致看門(mén)狗溢出復(fù)位。
2.外圍復(fù)位電路設(shè)計(jì)
2.1 電路接口兼容問(wèn)題
多數(shù)TMS320F2812板卡都模仿了TI公司所提供的公板設(shè)計(jì),其外圍復(fù)位電路的典型設(shè)計(jì)如圖1所示。
圖1 常用復(fù)位電路
設(shè)計(jì)時(shí)首先需要考慮上電復(fù)位和手動(dòng)復(fù)位,圖1中電路可實(shí)現(xiàn)這兩點(diǎn)要求:當(dāng)板卡上電時(shí),電源芯片復(fù)位信號(hào)TPS767D318 會(huì)產(chǎn)生輸出200ms的持續(xù)低電平,拉低以確保DSP正確復(fù)位;當(dāng)手動(dòng)按下復(fù)位鍵SB1時(shí),在74LS08的輸出腳產(chǎn)生低電平以復(fù)位DSP。
TMS320F2812數(shù)據(jù)手冊(cè)表明,當(dāng)看門(mén)狗溢出時(shí),DSP內(nèi)部的上應(yīng)產(chǎn)生512個(gè)ClkIn周期的低電平,以拉低來(lái)產(chǎn)生DSP復(fù)位。當(dāng)采用30MHz的外部時(shí)鐘芯片時(shí),這段低電平時(shí)間約為17微秒,可以保證DSP可靠復(fù)位。
圖2 看門(mén)狗溢出復(fù)位波形圖
按圖1連接關(guān)系,當(dāng)F2812內(nèi)部看門(mén)狗溢出復(fù)位時(shí),測(cè)得管腳波形如圖2(a)所示,復(fù)位低電平被拉低到約1V;當(dāng)斷開(kāi)F2812的與外部復(fù)位電路連接時(shí),使得F2812內(nèi)部看門(mén)狗溢出復(fù)位,在管腳輸出的波形為圖2(b)所示,復(fù)位低電平被拉低到約0V。TMS320F2812數(shù)據(jù)手冊(cè)表中建議復(fù)位信號(hào)低電平應(yīng)低于0.8V。在實(shí)際應(yīng)用中,我們按圖1設(shè)計(jì)的復(fù)位電路確實(shí)偶然出現(xiàn)程序跑飛,看門(mén)狗溢出,但板卡沒(méi)有被正確復(fù)位的現(xiàn)象。這表明圖1中外部復(fù)位電路與該DSP芯片的接口兼容性欠佳。
2.2 復(fù)位電路改進(jìn)
為提高上電復(fù)位和手工復(fù)位與芯片內(nèi)部看門(mén)狗復(fù)位電平兼容性,應(yīng)改進(jìn)圖1中的外部電路設(shè)計(jì)。實(shí)際上,觀察圖1右半部分TMS320F2812芯片內(nèi)部看門(mén)狗對(duì)自身的復(fù)位控制,已經(jīng)提供了外部復(fù)位電路解決思路:將74LS08換為可置于高阻態(tài)的緩沖器(如74HC125),參考電路如圖3所示。
圖3中沒(méi)有上電復(fù)位和手工復(fù)位時(shí),外部復(fù)位電路輸出是高阻態(tài),不會(huì)對(duì)內(nèi)部看門(mén)狗復(fù)位帶來(lái)電平不兼容的影響。當(dāng)TMS320F2812芯片內(nèi)看門(mén)狗溢出時(shí),測(cè)量復(fù)位引腳波形如圖4所示。相比圖2(a),圖4中復(fù)位低電平波形有明顯改進(jìn),低電平接近0V。
圖3 改進(jìn)復(fù)位電路
圖4 改進(jìn)復(fù)位電路復(fù)位波形
3.中斷中喂狗清零改進(jìn)
3.1 周期中斷阻塞問(wèn)題
通常在F2812事件管理器的定時(shí)器周期中斷中進(jìn)行喂狗操作。但某項(xiàng)目應(yīng)用中發(fā)現(xiàn)事件管理器周期中斷產(chǎn)生速度較快時(shí),在周期中斷處理函數(shù)中偶然無(wú)法正確清除該中斷自身的標(biāo)識(shí)位。測(cè)試中無(wú)論是將程序加載在片內(nèi)RAM中仿真或燒寫(xiě)的片內(nèi)Flash中運(yùn)行都出現(xiàn)過(guò)該類(lèi)問(wèn)題,即使連續(xù)多次對(duì)中斷標(biāo)識(shí)位進(jìn)行寫(xiě)操作也無(wú)法保證清除成功。我們認(rèn)為這是芯片內(nèi)部設(shè)計(jì)缺陷所引起。
如果周期中斷標(biāo)識(shí)位無(wú)法被正確清除,該中斷處理函數(shù)將被阻塞,無(wú)法再進(jìn)行喂狗操作,從而導(dǎo)致看門(mén)狗溢出。此時(shí)如果看門(mén)狗也由于外部電路設(shè)計(jì)原因?qū)е聼o(wú)法正確復(fù)位,系統(tǒng)可能局部或全部癱瘓。既然已經(jīng)明確了中斷標(biāo)識(shí)清除失敗問(wèn)題,就不應(yīng)該通過(guò)看門(mén)狗來(lái)復(fù)位系統(tǒng)。因此較好的解決方法是監(jiān)控到該中斷標(biāo)識(shí)是否被正確清除,采取補(bǔ)救措施。
3.2 多周期中斷互監(jiān)控
定時(shí)器周期中斷阻塞時(shí),即使在該中斷處理函數(shù)中重復(fù)多次寫(xiě)中斷標(biāo)識(shí)位,也無(wú)法確保有效清除。但當(dāng)發(fā)生周期中斷阻塞時(shí),通過(guò)一定間隔時(shí)間的1~2次寫(xiě)操作變可清除該周期中斷標(biāo)識(shí),因此考慮采取監(jiān)控措施來(lái)解決該問(wèn)題。
同時(shí)使用事件管理器A中的Timer1周期中斷和Timer2周期中斷,長(zhǎng)時(shí)間運(yùn)行中多次出現(xiàn)中斷標(biāo)識(shí)位無(wú)法正確清除現(xiàn)象,但沒(méi)有出現(xiàn)過(guò)兩個(gè)中斷同時(shí)阻塞現(xiàn)象。將Timer1和Timer2互相監(jiān)控,在兩者周期中斷函數(shù)中分別監(jiān)視對(duì)方的中斷標(biāo)識(shí)位,以判斷對(duì)方是否發(fā)生了中斷阻塞;如果發(fā)現(xiàn)對(duì)方未能清除,則主動(dòng)幫助對(duì)方清除中斷標(biāo)識(shí)位。
采用了監(jiān)控措施后,長(zhǎng)期拷機(jī)試驗(yàn)中未再發(fā)生過(guò)時(shí)鐘周期中斷長(zhǎng)期阻塞現(xiàn)象,有效提高了系統(tǒng)的可靠性。為進(jìn)一步提高中斷標(biāo)識(shí)清除的可靠性,可以在啟用事件管理器B的Timer3和Timer4,從而多者之間有效監(jiān)督。
4.結(jié)論
作為一款高性能定點(diǎn)DSP芯片,TMS320F2812具有非常強(qiáng)的應(yīng)用優(yōu)越性,但應(yīng)用中存在外部復(fù)位電路接口兼容性欠佳,內(nèi)部周期中斷不能正常喂狗等問(wèn)題。本文采用高阻緩沖代替原有設(shè)計(jì),提高了上電復(fù)位、手動(dòng)復(fù)位和內(nèi)部看門(mén)狗復(fù)位三者接口兼容性;又針對(duì)事件管理器中斷標(biāo)識(shí)偶爾無(wú)法有效清除的問(wèn)題,提出了采用多個(gè)時(shí)鐘周期中斷相互監(jiān)控方法,有效提高了喂狗成功的可靠性,減少不必要的復(fù)位。通過(guò)軟硬件改進(jìn)設(shè)計(jì),顯著提高了系統(tǒng)的復(fù)位可靠性。
參考文獻(xiàn)
[1]TMS320F281x Data Sheet(Rev.F).