賈曉磊
(中國人民解放軍66284部隊(duì),北京 100160)
控制單元是板卡的核心,用于實(shí)現(xiàn)邏輯控制。因?yàn)樵O(shè)計(jì)中有板載資源較多,所以設(shè)計(jì)選用Cortex-M4(高性能帶FPU)中的GD32。主流的Cortex-M3中的STM32F1不合適運(yùn)算快速處理且中斷數(shù)量有限,這與CPU設(shè)計(jì)有關(guān)。
主控芯片兆易公司生產(chǎn)的GD32是以Cortex-M為核的32位MCU(數(shù)據(jù)總線是32位的),可以看做是外設(shè)的集合體,包括通用和復(fù)用I/O(GPIO)、中斷和事件、實(shí)時(shí)時(shí)鐘(RTC)、備份寄存器(BKP)、獨(dú)立看門狗(IWDG)、窗口看門狗(WWDG)、高級控制定時(shí)器(TIM1)、通用定時(shí)器(TIMx)、控制器局域網(wǎng)(bxCAN)、I2C接口、串行外設(shè)接口(SPI)、USB全速設(shè)備接口(USB)和調(diào)試支持(DBG)等。它能夠集合外設(shè)功能的數(shù)量,是衡量芯片的一個(gè)重要指標(biāo)。這些功能的控制通過對芯片寄存器設(shè)置來實(shí)現(xiàn)。而兆易公司提供了這些能夠?qū)崿F(xiàn)功能的標(biāo)準(zhǔn)外設(shè)庫,給芯片能夠?qū)崿F(xiàn)工業(yè)控制提供了極大方便,適合批量生產(chǎn)板卡。而在程序燒錄方面,只需通過仿真接口向芯片下載編譯好的程序。
板卡采用直流24 V電源供電。板卡中,主控芯片采用3.3 V供電,而數(shù)字量輸入輸出單元和模擬量輸入輸出單元中涉及24 V和5 V電壓。因此,供電電源的電壓根據(jù)設(shè)計(jì)的需要,分別為24 V、5 V和3.3 V。所以,需要將24 V電源轉(zhuǎn)化成5 V,再轉(zhuǎn)化成3.3 V。
24 V直流電源通過接線端子接入板卡在電源的接入端采用P6KE30CA瞬態(tài)抑制二極管,來防止由于電磁感應(yīng)產(chǎn)生的反向峰值電壓帶來的危害。為保證電源質(zhì)量,確保系統(tǒng)穩(wěn)定工作,電源模塊必須濾除如高頻、噪聲等干擾信號。這里采用10 μF的電容實(shí)現(xiàn)去耦和濾波。然后,通過電源變壓器模塊TPS54340DDA將24 V直流電源轉(zhuǎn)化成5 V直流電。該電源變壓器模塊可以輸出120~1 200 mA的電流。對于微處理器的3.3 V供電電路,采用MIC29302BU芯片將5 V電壓轉(zhuǎn)化成3.3 V。這款芯片由于具有極高的電源抑制比,能夠更好地抑制電路中的噪聲和減少紋波。上電后,板子3.3 V電源指示燈(ds3)點(diǎn)亮,5 V電源指示燈(ds4)點(diǎn)亮,表明芯片TPS54340DDA(24 V→5 V)正常供電以及芯片MIC29302BU(5 V→3.3 V)正常供電。同時(shí),可以用萬用表測試板卡中的5 V、3.3 V以及24 V電源,可以在板卡中找到TP1TP2TP3。
由于板卡中具有模擬量處理模塊,需板卡為AD5755-1ACPZ芯片提供模擬電源AVDD(+12 V)和AVSS(-12 V)。在模擬電源電路中,采用雙輸出直流-直流轉(zhuǎn)換器TPS65130,+5 V電源通過R170電阻與VIN連接。該芯片在VPOS輸出+15 V,在VNEG輸出-15 V。輸出的+15 V通過MC78M12ACDT降壓為+12 V,在輸出的+12 V與ad芯片間加EMI濾波器,降低模擬電路中的噪聲和波動(dòng)。輸出的-15 V通過MC79M12BDT變壓為-12 V,在輸出的-12 V與ad芯片間加EMI濾波器,降低模擬電路中的噪聲和波動(dòng)。同時(shí),在VIN、VPOS、VNEG與GND之間加貼片電容,用于過濾電路中的高頻噪聲。
設(shè)計(jì)電源部分加了去耦電容,為的是防止主板下載和加電瞬間的電壓燒壞。但應(yīng)注意,電解電容的正負(fù)極不能接反,若長時(shí)間接反會(huì)導(dǎo)致電容炸裂。無極電容由于沒有極性可以隨意。
數(shù)字量輸入模塊主要用于開關(guān)量按鍵和繼電器等狀態(tài)的確定。當(dāng)外部開關(guān)閉合時(shí),24 V電源信號通過處理后傳送到GD32芯片的相應(yīng)引腳(PF3~PF5)??紤]到需要大量的GPIO引腳,故選用8個(gè)并行輸入/串行輸出芯片SN74HC165D。那么,32路輸入需用4片SN74HC165D芯片級聯(lián)。依據(jù)此,在原理圖設(shè)計(jì)上,32路輸入分為4組,即每8路為一組,節(jié)省了大量的GPIO資源,也為后期,開發(fā)預(yù)留了主控芯片引腳資源。SN74HC165D芯片具有8位串行輸入,并行輸出移位三態(tài)輸出鎖存,寬工作電壓范圍(2.0~6.0 V,設(shè)計(jì)電壓3.3 V),移位寄存器可直接清零。其中,最主要的優(yōu)點(diǎn)在于輸入只需3根信號線,這在何立民教授《移位寄存器的串行擴(kuò)展技術(shù)》中有詳細(xì)說明。下面先闡述控制代碼的核心元件SN74HC165D。
32路隔離輸入控制代碼的核心是SN74HC165D芯片。這個(gè)芯片是8并行輸入/串行輸出移位寄。過程:當(dāng)PL為低電平(低電平采集),8位輸入進(jìn)入到移位寄存器;當(dāng)CP發(fā)生低到高的跳發(fā)時(shí),原有的D7從Q7移出,而D0由DS移入填補(bǔ);如此循環(huán)往復(fù),最終把32路輸入信號傳遞給主控芯片GD32。
當(dāng)開關(guān)閉合時(shí),DIP1與24 V電源連接,通過2個(gè)1.6 kΩ電阻降壓后接入到BZX84C5V6穩(wěn)壓二極管的3號引腳。此處的電位值為5.6 V左右,穩(wěn)壓二極管(其實(shí)就是反接二極管)的作用是鉗住在5.6 V,經(jīng)過560 Ω的電阻后,由歐姆定律可知,經(jīng)過該電阻的電流是10 mA。在忽略二極管內(nèi)阻的情況下,經(jīng)過發(fā)光二極管的電流也為10 mA。具體地,數(shù)字量輸入模塊通過LED燈的亮滅來體現(xiàn)數(shù)字量輸入單元的通斷狀態(tài)。
當(dāng)外部開關(guān)閉合時(shí),光耦元器件tlp281-4中的二極管1-2端導(dǎo)通發(fā)光。在基極光照飽和的情況下,二極管導(dǎo)通后,使得電阻9兩端產(chǎn)生較大壓差。此時(shí),DII1的電平為低電平,處理器檢測到低電平就表示外部開關(guān)閉合;反之,如果外部開關(guān)沒有閉合,光耦元器件的三極管處于截止?fàn)顟B(tài),電阻在上拉電壓的作用下使得DII1呈現(xiàn)高電平,處理器檢測到高電平就表示外部開關(guān)斷開。CPU通過對相應(yīng)引腳狀態(tài)的監(jiān)測,判斷外部輸入狀態(tài)信息。
如果外部開關(guān)處于斷開狀態(tài),則DII1處的電壓值為5 V,但是GD32芯片的GPIO接口處電壓限制為3.3 V。因此,為了確保芯片的長時(shí)間穩(wěn)定工作,最好是把5 V電壓轉(zhuǎn)化成3.3 V。同時(shí),為了后期二次開發(fā),節(jié)省主控芯片資源為出發(fā)點(diǎn),設(shè)計(jì)方案采用了SN74HC165D電平轉(zhuǎn)換芯片,同時(shí)具有狀態(tài)鎖存功能[1]。
輸出可以看做是輸出的反“套路”。數(shù)字量輸出用于狀態(tài)指示燈控制、中壓繼電器以及相關(guān)執(zhí)行機(jī)構(gòu)的動(dòng)作,設(shè)計(jì)方案中共有32路數(shù)字量輸出。這里,將GD32的GPIOF8~GPIOF10的3個(gè)GPIO端口用作32路數(shù)字量輸出的控制,且每一路輸出都采用光耦隔離技術(shù),確保系統(tǒng)安全可靠工作。當(dāng)需要有數(shù)字量輸出時(shí),輸出引腳的電壓為3.3 V,所以這里采用SN74HC595D轉(zhuǎn)換芯片??紤]到需要大量的GPIO引腳,故選用串行輸入/串行輸出或者8個(gè)并行輸出芯片74HC595,那么控制32路輸出需用4片74HC595芯片級聯(lián)。
控制32路隔離輸出,就是控制74HC595芯片。74HC595是串行輸入/串行或并行輸出移位寄存器。因?yàn)橥瑫r(shí)帶有串行輸入和串行輸出,因此多個(gè)74HC595芯片可以級聯(lián)。當(dāng)SHCP引腳發(fā)生由低到高的跳發(fā)時(shí),來自DS引腳的數(shù)據(jù)進(jìn)入到移位寄存器的最高位即D7位,同時(shí)移位寄存器的最低位從Q7S移出。74HC595除了帶有移位寄存器外,還帶有保存寄存器和三態(tài)輸出。和移位寄存器一樣,保存寄存器也帶有獨(dú)立的時(shí)鐘引腳STCP。當(dāng)STCP發(fā)生由低到高的電平躍發(fā)時(shí),移位寄存器數(shù)據(jù)傳遞到保存寄存器中。當(dāng)OEn引腳為低電平時(shí),誤入保存寄存器的數(shù)據(jù)直接輸出。基于以上74HC595原理,每一次SHCP發(fā)生由低到高的跳發(fā)后,來自主控芯片GD32的數(shù)據(jù)從14腳(SER)進(jìn)入74HC595芯片,同時(shí)從9腳(QH)移出到下一片74HC595。如此循環(huán)往復(fù),經(jīng)過32次SHCP跳發(fā),數(shù)據(jù)將寫滿4片74HC595芯片,即32位數(shù)據(jù)。此時(shí),控制STCP引腳由低到高跳發(fā),74HC595產(chǎn)生輸出。此外,74HC595第10腳應(yīng)該接高電平。
GPIO O1-08進(jìn)光耦隔離芯片tlp281-4,光耦元器件tlp281-4中的二極管1-2端導(dǎo)通發(fā)光,在基極光照飽和的情況下,1→2導(dǎo)通。Tlp281-4的集電極經(jīng)由220R電阻與74HC595三態(tài)輸出引腳相連接,發(fā)射極共地連接。陰極共地連接,陽極經(jīng)由10 kΩ電阻R7與三級管基極連接,用于控制24 V供電的三級管,實(shí)現(xiàn)外部輸出電壓OUT1的控制。三態(tài)輸出引腳輸出低電平時(shí),相應(yīng)的集電極和發(fā)射間無壓差,不產(chǎn)生光電信號,陰極和陽極間高阻,三極管基極高電平,三極管導(dǎo)通,集電極和相應(yīng)的OUT1高電平,對應(yīng)的LED亮指示通道高電平[2]。
本方案設(shè)計(jì)的多路隔離信號監(jiān)控板卡,既具有開關(guān)量信號采集、數(shù)字量控制與顯示輸出,也可SD Card卡記錄數(shù)據(jù)參數(shù),同時(shí)可通過10/100/1 000 M以太網(wǎng)接口作為控制管理口實(shí)現(xiàn)遠(yuǎn)程控制、告警信息上報(bào)等功能,方便網(wǎng)絡(luò)管理人員進(jìn)行遠(yuǎn)程監(jiān)控和遠(yuǎn)程管理,節(jié)省人力、物力,提高了工作效率,可以及時(shí)發(fā)現(xiàn)并處理故障,有效保障了設(shè)備的安全運(yùn)行。