基于單片機(jī)+CPLD的多路精確延時(shí)控制系統(tǒng)設(shè)計(jì)
現(xiàn)代控制系統(tǒng)中控制對(duì)象可能是復(fù)雜、分散的,而且往往是并行、獨(dú)立工作的,但整體上它們是相互關(guān)聯(lián)的有機(jī)組合。因此,控制信號(hào)的時(shí)序邏輯則要求更加精確。CPLD單片機(jī)為控制系統(tǒng)提供了技術(shù)支持,由CPLD和單片機(jī)組成的多機(jī)系統(tǒng)具有邏輯控制方便,時(shí)序精確,并行工作,人機(jī)接口友好等優(yōu)點(diǎn)。因此,本文提出了一種基于CPLD與單片機(jī)控制的多路精確延時(shí)控制系統(tǒng)的設(shè)計(jì)方案。
2 設(shè)計(jì)指標(biāo)與系統(tǒng)原理
2.1 設(shè)計(jì)指標(biāo)
輸出多路脈寬為10 ms正脈沖信號(hào);
脈沖輸出時(shí)間獨(dú)立調(diào)節(jié)、顯示;
時(shí)間調(diào)整范圍與精度為微秒級(jí)的調(diào)整范圍為l~199μs,調(diào)節(jié)精度為lμs;毫秒級(jí)的調(diào)整范圍為1~199 ms,調(diào)整精度為1 ms;
提供計(jì)時(shí)基準(zhǔn)信號(hào)和工作狀態(tài)提示聲音;
9 V電池供電。
2.2 系統(tǒng)設(shè)計(jì)原理
2.2.1 系統(tǒng)時(shí)鐘
本系統(tǒng)設(shè)計(jì)由CPLD和多個(gè)單片機(jī)組成,CPLD對(duì)24 MHz高精度一體化晶體振蕩器二分頻得到多路同步時(shí)鐘信號(hào)作為多個(gè)單片機(jī)的系統(tǒng)時(shí)鐘,并由各個(gè)單片機(jī)外脈沖信號(hào)引腳XTAL2注入,二分頻確保信號(hào)的占空比為50%,滿(mǎn)足單片機(jī)時(shí)鐘脈沖信號(hào)高低電平持續(xù)時(shí)間大于20 ns和最高脈沖頻率為12 MHz的要求,同時(shí)也提高系統(tǒng)的可靠性。5l系列單片機(jī)采用定時(shí)控制方式,具有固定的機(jī)器周期,1個(gè)機(jī)器周期共有12個(gè)振蕩脈沖周期,則機(jī)器周期是振蕩脈沖的12分頻。本系統(tǒng)采用12 MHz振蕩脈沖頻率,1個(gè)固定機(jī)器周期為1μs,因此能保證設(shè)計(jì)指標(biāo)所要求的最高控制精度。
2.2.2 同步計(jì)時(shí)啟動(dòng)信號(hào)
本系統(tǒng)設(shè)計(jì)由外部按鍵提供啟動(dòng)信號(hào),由于機(jī)械接觸點(diǎn)的彈性及電壓突跳等原因,按鍵存在抖動(dòng)效應(yīng),為保證按鍵準(zhǔn)確識(shí)別,本系統(tǒng)設(shè)計(jì)采用軟件去抖動(dòng),再經(jīng)單片機(jī)引腳輸出無(wú)電壓毛刺的穩(wěn)定啟動(dòng)信號(hào),再經(jīng)CPLD變換后,可提供多路同步計(jì)時(shí)啟動(dòng)信號(hào)。
2.2.3 輸出信號(hào)
本系統(tǒng)設(shè)計(jì)采用10 ms單脈沖信號(hào)作為各模塊單元控制輸出信號(hào),其輸出形式可根據(jù)需要通過(guò)軟件調(diào)整,并保證系統(tǒng)輸出信號(hào)的時(shí)序與邏輯關(guān)系。
2.2.4 系統(tǒng)時(shí)序
系統(tǒng)時(shí)序圖如圖1所示,在計(jì)時(shí)脈沖的驅(qū)動(dòng)下,按鍵信號(hào)經(jīng)去抖動(dòng)變換、CPLD邏輯同步后形成計(jì)時(shí)啟動(dòng)信號(hào)(0一n),以計(jì)時(shí)基準(zhǔn)脈沖的前沿為計(jì)時(shí)起點(diǎn),經(jīng)設(shè)定延時(shí)后,系統(tǒng)輸出相應(yīng)的輸出信號(hào),其延時(shí)時(shí)間可獨(dú)立調(diào)整,信號(hào)輸出形式可由軟件編程設(shè)置。圖l采用單一正脈沖作為輸出信號(hào)。
2.2.5 系統(tǒng)原理框圖
電源穩(wěn)壓?jiǎn)卧獙?shí)現(xiàn)系統(tǒng)5 V電源的穩(wěn)壓與濾波。單片機(jī)采用外部系統(tǒng)時(shí)鐘。主控單片機(jī)CPUO完成按鍵檢測(cè)、計(jì)時(shí)基準(zhǔn)信號(hào)輸出和系統(tǒng)提示聲音輸出等功能。NO.1~N0.n單元完成時(shí)間調(diào)整與顯示、μs/ms(微秒/毫秒)變換和信號(hào)輸出等功能,CPLD完成時(shí)鐘2分頻、同步計(jì)時(shí)脈沖輸出和計(jì)時(shí)啟動(dòng)信號(hào)同步輸出功能。圖2為多路精確延時(shí)控制系統(tǒng)原理框圖。
3 硬件電路設(shè)計(jì)
3.1 主控單元
每個(gè)系統(tǒng)都由獨(dú)立的主控單元組成,如圖3所示。主控單元由電壓、CPUO和CPLD同步控制模塊等組成。電壓模塊完成由可充電電池電壓到穩(wěn)定的5 V系統(tǒng)電源變換與濾波。CPUO單元模塊選用ATMEL公司51系列單片機(jī)AT89S52A。AT89S52是低功耗、高性能CMOS 8位微控制器,具有8 KB在系統(tǒng)可編程Flash存儲(chǔ)器、256字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)、32個(gè)外部雙向輸入/輸出(I/O)端口、5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷、2個(gè)16位可編程定時(shí)計(jì)數(shù)器、2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器,兼容標(biāo)準(zhǔn)MCS一5l指令系統(tǒng)。CPUO模塊完成按鍵信號(hào)檢測(cè),工作狀態(tài)提示音輸出,計(jì)時(shí)基準(zhǔn)信號(hào)輸出等功能。CPLD同步控制模塊采用ALTRA公司EPM7032SLC44為控制核心。EPM7032SLC44是MAX7000 CPLD,是基于先進(jìn)的多陣列矩陣(MAX)架構(gòu),采用先進(jìn)的CMOS制造工藝,提供從32到512個(gè)宏單元的密度范圍,速度達(dá)3.5 ns的引腳到引腳延遲。支持在系統(tǒng)可編程能力(ISP),可以在現(xiàn)場(chǎng)進(jìn)行重配置。CPLD同步控制單元完成時(shí)鐘分頻與同步,按鍵信號(hào)同步等功能,ProKram插座是CPLD的編程接口。
3.2 輸出控制單元
每個(gè)系統(tǒng)由n(本系統(tǒng)設(shè)計(jì)中n=9)個(gè)輸出控制單元組成,這n個(gè)單元輸出控制獨(dú)立并行工作,如圖4所示。N0.1~N0.n以ATMEL公司5l系列單片機(jī)AT89C2051為核心。AT89C205l是低功耗、高性能CMOS 8位單片機(jī),具有15個(gè)雙向輸入/輸出(I/O)端口、片內(nèi)含2 K字節(jié)的可反復(fù)擦寫(xiě)的只讀Flash程序存儲(chǔ)器和128字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM);采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS一5l指令系統(tǒng)。輸出控制單元(NO.1~NO.n)并行工作,完成延時(shí)時(shí)間設(shè)置、μs/ms變換設(shè)置、控制信號(hào)輸出和延時(shí)顯示等功能,延時(shí)時(shí)間顯示通過(guò)單片機(jī)串口實(shí)現(xiàn),由3片串/并變換器件74LSl64驅(qū)動(dòng)3個(gè)共陽(yáng)數(shù)碼管。
4 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件設(shè)計(jì)包括CPUO單元、NO.1~NO.n輸出單元及CPLD單元程序設(shè)計(jì)。由于對(duì)時(shí)間要求嚴(yán)格,采用匯編語(yǔ)言編寫(xiě),信號(hào)輸出由中斷程序完成,由于中斷響應(yīng)過(guò)程、現(xiàn)場(chǎng)保護(hù)以及中斷后必要的設(shè)置條件檢測(cè)需要時(shí)間,所以軟件必須通過(guò)容余指令(比如NOP)的延時(shí),可保證counter0輸出和控制信號(hào)延時(shí)起點(diǎn)在同一時(shí)刻。
CPU0單元程序流程如圖5所示。CPU0主程序完成系統(tǒng)初始化、按鍵檢測(cè)、去抖動(dòng)信號(hào)輸出和工作狀態(tài)提示音輸出等工作,中斷服務(wù)程序計(jì)時(shí)基準(zhǔn)信號(hào)counterO輸出。輸出控制單元NO.1一NO.n程序流程如圖6所示,各單元主程序完成μs/ms設(shè)置檢測(cè),延時(shí)設(shè)置讀取,延時(shí)時(shí)間顯示,中斷程序完成控制信號(hào)輸出功能。CPLD程序采用VHDL語(yǔ)言編寫(xiě),采用QHalftusⅡ軟件編譯仿真。
5 結(jié)語(yǔ)
該系統(tǒng)設(shè)計(jì)可應(yīng)用于電容組(9只)放電控制系統(tǒng),在放電電子開(kāi)關(guān)控制端、負(fù)載端測(cè)量以及微秒級(jí)延時(shí)范圍內(nèi),延時(shí)誤差小于O.1μs,毫秒級(jí)延時(shí)范圍內(nèi),延時(shí)誤差小于50μs。實(shí)際測(cè)試顯示,系統(tǒng)實(shí)現(xiàn)了設(shè)計(jì)要求的調(diào)整精度。基于單片機(jī)+CPLD的多路精確延時(shí)控制系統(tǒng)充分利用單片機(jī)和CPLD的各自特點(diǎn),實(shí)現(xiàn)主要設(shè)計(jì)指標(biāo)。實(shí)際應(yīng)用證明,該系統(tǒng)能夠完全滿(mǎn)足時(shí)序邏輯要求中嚴(yán)格控制系統(tǒng)的控制需求。
評(píng)論