1.系統(tǒng)的整體設(shè)計(jì)
本系統(tǒng)用于測(cè)試直流電機(jī)控制器的功能和性能。測(cè)試內(nèi)容主要包括測(cè)試控制器的電流值、速度值和PWM輸出的波形變化等。測(cè)試系統(tǒng)采集到這些值后,通過(guò)串口發(fā)送給PC方顯示,能夠方便用戶監(jiān)看、分析。本系統(tǒng)可以實(shí)現(xiàn)測(cè)試直流串勵(lì)電機(jī)控制器和直流他勵(lì)電機(jī)控制器的性能和功能。
本測(cè)試系統(tǒng)硬件系統(tǒng)部分由主控芯片MC68HC908GP32zui小系統(tǒng)電路、電源轉(zhuǎn)換電路、SCI通信電路、光電隔離控制電路、A/D轉(zhuǎn)換電路和繼電器驅(qū)動(dòng)電路等部分組成。該系統(tǒng)能對(duì)多種模擬量進(jìn)行采集,通過(guò)信號(hào)轉(zhuǎn)換電路轉(zhuǎn)換為0-5V的電壓信號(hào),再將電壓信號(hào)送入A/D轉(zhuǎn)換電路,實(shí)現(xiàn)數(shù)據(jù)的采集。為了節(jié)約I/O口,本系統(tǒng)的A/D轉(zhuǎn)換芯片采用2片TLC2543,第I片用于模擬量輸入,負(fù)責(zé)采集各傳感器的值,第II片用于采集各開關(guān)的狀態(tài);本測(cè)試系統(tǒng)經(jīng)常要讀取電機(jī)的當(dāng)前速度,且精度要求比較高,所以采用輸入捕捉的方式采集測(cè)功機(jī)的轉(zhuǎn)速;同時(shí)系統(tǒng)需要采集24V開關(guān)的狀態(tài),而負(fù)責(zé)采集的MCU子系統(tǒng)的工作電壓是SV,為了保障MCU的正常工作,所以需要采用光電隔離電路來(lái)實(shí)現(xiàn)24V到5V的轉(zhuǎn)換。
2.系統(tǒng)的硬件設(shè)計(jì)
本系統(tǒng)選擇了FreescaleSemiconductor公司的MC68HC908GP32處理器作為整個(gè)測(cè)試系統(tǒng)的主控芯片,它是Motorola的新型08系列單片機(jī)中的一種通用芯片。具有一速度快、功能強(qiáng)和價(jià)格低等優(yōu)點(diǎn),并且向下兼容原有的M68HC05系列單片機(jī),極大地維護(hù)了用戶的利益,而目‘新一代的M68HC08系列機(jī)種按各種型號(hào)帶有小同大小的片內(nèi)閃速(FLASH)存儲(chǔ)器,具有非常高的性價(jià)比。根據(jù)小同的應(yīng)用,08系列單片機(jī)分出很多型號(hào),而本設(shè)計(jì)采用的MC68HC908GP32單片機(jī)在標(biāo)準(zhǔn)08單片機(jī)核心的基礎(chǔ)上,增加了增強(qiáng)型的串行通訊接口SCI和串行外圍接口SPI。
2.1串行通信SCI電路
串行通信是計(jì)算機(jī)系統(tǒng)中常用的通信機(jī)制之一,在MCU中,若用RS-232C總線進(jìn)行串行通信,則需外接電路實(shí)現(xiàn)電平轉(zhuǎn)換。在發(fā)送端需要用驅(qū)動(dòng)電路將TTL電平轉(zhuǎn)換成RS-232C電平,在接收端需要用接收電路將RS-232C電平轉(zhuǎn)換為TTL電平。電平轉(zhuǎn)換器小僅可以由品體管分立元件構(gòu)成,也可以直接使用集成電路,本系統(tǒng)中使用MAX232芯片來(lái)實(shí)現(xiàn)。MAX232芯片簡(jiǎn)單易用,單+5V電源供電,僅需外接幾個(gè)電容即可完成從TTL電平到RS-232電平的轉(zhuǎn)換,PC通過(guò)設(shè)置不同的協(xié)議同時(shí)與本系統(tǒng)和電機(jī)控制器進(jìn)行串行通信。PC發(fā)出的數(shù)據(jù),通過(guò)MAX232進(jìn)行電平轉(zhuǎn)換,本系統(tǒng)和電機(jī)控制器同時(shí)收到,然后根據(jù)幀頭決定是否對(duì)這些數(shù)據(jù)進(jìn)行處理。本系統(tǒng)和電機(jī)控制器發(fā)出的數(shù)據(jù)由PC接收。SCI通信電路原理圖如圖2所示。
數(shù)據(jù)發(fā)送過(guò)程:MCU的TxD(TTL電平)經(jīng)過(guò)MAX232的11(T1IN)送到MAX232內(nèi)部,在內(nèi)部TTL電平被“提升”為232電平,通過(guò)14CTIOUT)發(fā)送出去。接收過(guò)程:內(nèi)音下,在內(nèi)部狗RxD,進(jìn)入外部232電平經(jīng)過(guò)MAX232的13(R1IN)進(jìn)入到MAX232的232電平被“降低”為TTL電平,經(jīng)過(guò)12CR10UT)送到MCUMCU內(nèi)部。
2.2A/D轉(zhuǎn)換電路
模擬量采集是測(cè)控系統(tǒng)的一個(gè)重要組成部分,本系統(tǒng)采用2片TLC2543,第I片用于模擬量輸入,負(fù)責(zé)采集各傳感器的值,第II片用于采集各開關(guān)的狀態(tài)。圖3給出了利用SPI及MCU的PTC口的PTCO-PTC1擴(kuò)展兩片TLC2543的電路原理圖。其中第I片TLC2543的片選接MCU的PTCO、第II片TLC2543的片選接MCU的PTCl。每片TLC2543可接11路模擬量輸入,這樣本系統(tǒng)中的A/D轉(zhuǎn)換電路可外接22路模擬量。當(dāng)有更多路數(shù)模擬量需要輸入時(shí),可以按此方法繼續(xù)擴(kuò)展。該電路適用于模擬量路數(shù)較多、且對(duì)實(shí)時(shí)性要求不是太高的數(shù)據(jù)采集系統(tǒng)。
由于TLC2543對(duì)采樣的模擬數(shù)據(jù)的分辨率為12位,包括TLC2543及其他IC的電源端必須用一個(gè)0.1uF的陶瓷電容連接到地,用作去耦電容。在噪聲影響較大的環(huán)境中,也可以在0.1uF的陶瓷電容端再并聯(lián)一個(gè)lOuF的鈕電容,以減小噪聲對(duì)器件的影響,其電路設(shè)計(jì)圖如圖3所示。
圖3基于SPI的A/D轉(zhuǎn)換擴(kuò)展電路
2.3電源轉(zhuǎn)換電路
本系統(tǒng)是24V直流電壓供電,而MC68HC908GP32是5V供電,使用的光電編碼器需12V工作電壓,所以需要設(shè)計(jì)將24V轉(zhuǎn)換為5V和12V的電壓轉(zhuǎn)換電路。系統(tǒng)使用的是LM2575系列開關(guān)穩(wěn)壓集成電路,LM2575是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的1A集成穩(wěn)壓電路,其原理圖如圖4所示。
3.電機(jī)控制系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件采用模塊化設(shè)計(jì),實(shí)現(xiàn)功能細(xì)分,一方面可提高軟件的移植性和升級(jí)性,另一方面增強(qiáng)軟件的易測(cè)試性。軟件的總體架構(gòu)包括二部分:主程序、相關(guān)子程序和輔助文件,全部采用08C語(yǔ)言編程。軟件結(jié)構(gòu)是以主程序?yàn)橹?,通過(guò)函數(shù)調(diào)用和全局變量與子程序進(jìn)行參數(shù)傳遞。主控MCU方軟件主程序是一個(gè)死循環(huán)結(jié)構(gòu),MCU方軟件主程序的流程圖見(jiàn)前面章節(jié)中的圖5,每一次控制過(guò)程的銜接通過(guò)定時(shí)器中斷來(lái)完成。子程序包括了芯片初始化程序、A/D轉(zhuǎn)換程序、輸入捕捉程序、PWM輸出程序、串行通信程序、開關(guān)驅(qū)動(dòng)程序和中斷處理程序。
3.1芯片初始化子程序
芯片初始化子程序_C08Setup.c主要是完成內(nèi)部總線頻率Fbus的設(shè)置、I/O口初始化、串行口初始化、A/D轉(zhuǎn)換初始化、中斷控制和狀態(tài)寄存器初始化、定時(shí)器初始化的工作。由于MC68HC908GP32外部晶振f=32.768kHz,則系統(tǒng)產(chǎn)生內(nèi)部總線時(shí)鐘頻率為fbus=2.4576MHz。程序首先設(shè)置CONFIG2=Ob00000001,CONFIGI=Ob00111101接下來(lái)進(jìn)行PLL的編程,過(guò)程如下:
?、俳筆LL:清零PLL控制寄存器PCTL
②將P,E寫入PCTL
?、蹖寫入PMSH,PMSL
?、軐寫入PVRS
⑤將R寫入PRDS
?、拗肞CTL.PLLON=1,啟動(dòng)PLL電路并激活VCO時(shí)鐘CGMVCLK
⑦置PBWC.AUTO=1(即:自動(dòng)帶寬控制位),自動(dòng)方式
⑧置PCTL.BCS=1,選擇PLL為時(shí)鐘源,CGMOUT=CGMVCLK/2
3.2A/D轉(zhuǎn)換子程序
模擬量采集是測(cè)試系統(tǒng)的一個(gè)重要組成部分。系統(tǒng)要求底層軟件能夠?qū)δM量和開關(guān)量信號(hào)進(jìn)行監(jiān)控,同時(shí)也要求能夠?qū)Σ糠中盘?hào)進(jìn)行高速數(shù)據(jù)采集。每當(dāng)運(yùn)行A/D轉(zhuǎn)換程序ADC11P.c時(shí),MC68HC908GP32通過(guò)SPI模塊控制A/D轉(zhuǎn)換器的工作。首先,MC68HC908GP32將A/D轉(zhuǎn)換通道號(hào)放入控制字的高字節(jié),并定義輸出數(shù)據(jù)的格式為16位,以MSB方式送出二進(jìn)制數(shù)據(jù);接著將控制字寫到SPI的數(shù)據(jù)寄存器,發(fā)送給TLC2543,在控制字傳送過(guò)程中,MC68HC908GP32保持等待狀態(tài),直到其發(fā)送完畢,至此發(fā)送過(guò)程結(jié)束。隨后等待接收TLC2543發(fā)送過(guò)來(lái)的數(shù)據(jù),當(dāng)判斷接收標(biāo)志位為1時(shí),從SPI的數(shù)據(jù)寄存器接收數(shù)據(jù),并將該數(shù)據(jù)存放到預(yù)先分配好的內(nèi)存空間。由十每次從TLC2543取出的數(shù)據(jù)是上一周期的數(shù)據(jù),所以上述過(guò)程中NE64所取得的數(shù)據(jù)僅僅是上次轉(zhuǎn)換結(jié)果的高字節(jié)。接下來(lái),MC68HC908GP32只要通過(guò)向SPI的數(shù)據(jù)寄存器中寫入任意的字節(jié),并重復(fù)上述發(fā)送等待和接收等待的過(guò)程,即可取得上次轉(zhuǎn)換結(jié)果的低字節(jié),將其存入緊接高字節(jié)之后的地址空間,其流程如圖5所示。
3.3串行通信子程序
串行通信子程序SCL.c主要完成SCI初始化,波特率設(shè)置、通信格式設(shè)置、發(fā)送接收數(shù)據(jù)方式的設(shè)置等,由SCI初始化、接收1字節(jié)、發(fā)送1字節(jié)、接收n字節(jié)和發(fā)送n字節(jié)函數(shù)組成。在上下位機(jī)通過(guò)RS232進(jìn)行串行通訊之前,需要對(duì)串口工作方式以及所采用的波特率進(jìn)行設(shè)置:
(1)串行口工作方式設(shè)定:將串行口設(shè)置為工作方式即10位為一幀的異步串行方式。共包括1個(gè)起始位,8個(gè)數(shù)據(jù)位和1個(gè)停止位,允許SCI、正常碼輸出、8位數(shù)據(jù)、無(wú)校驗(yàn),即設(shè)SCC1=Ob01000000;同時(shí)設(shè)置允許發(fā)送、允許接收,查詢方式收發(fā),即設(shè)SCC2=0b00001100。
?。?)波特率設(shè)定:本控制器采用的波特率為9600,經(jīng)過(guò)計(jì)算有SCBR=0b00000010。
4.結(jié)論
本文創(chuàng)新點(diǎn):本文在MCUMC68HC908GP32的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了平臺(tái)及外圍電路的設(shè)計(jì),并給出MCU方軟件實(shí)現(xiàn)的總體原則,接著對(duì)各個(gè)子程序功能進(jìn)行了分析與設(shè)計(jì),zui后給出數(shù)據(jù)采集與數(shù)據(jù)傳送過(guò)程中的串行通信協(xié)議設(shè)計(jì)的思想。鑒于目前國(guó)內(nèi)外各科研單位所研制的主要是電機(jī)自動(dòng)測(cè)試系統(tǒng),它僅用于電機(jī)的某特定試驗(yàn),功能比較單一,本系統(tǒng)在該領(lǐng)域有一定性。