1 引言
直流電機(jī)監(jiān)控系統(tǒng)是機(jī)電產(chǎn)品中的重要環(huán)節(jié),其控制性能反映了機(jī)電設(shè)備的控制質(zhì)量。靈活、方便、準(zhǔn)確、實(shí)時(shí)的監(jiān)控需要對(duì)電機(jī)的轉(zhuǎn)速信號(hào)進(jìn)行測(cè)量和處理,以達(dá)到精確控制轉(zhuǎn)速的目的。
2 系統(tǒng)總體設(shè)計(jì)
ARM/DSP/FPGA雖精度高、速度快,但設(shè)計(jì)復(fù)雜,價(jià)格也一直居高不下。本系統(tǒng)采用一種適用于小容量存儲(chǔ)器單片機(jī)(如PIC系列)系統(tǒng)且功能強(qiáng)大的RTOS—Salvo。無需擴(kuò)展大量的RAM和ROM,并且實(shí)時(shí)性好。大大節(jié)省了成本。系統(tǒng)選用PC機(jī)作為上位機(jī),運(yùn)用API函數(shù)及MSCOMM控件實(shí)現(xiàn)計(jì)算機(jī)通信。PIC16F877A單片機(jī)及外圍電路組成一個(gè)單片機(jī)系統(tǒng)。作為下位機(jī)。電路設(shè)計(jì)包括PWM驅(qū)動(dòng)、CCP捕捉、A/D模數(shù)轉(zhuǎn)換、LCD液晶顯示、RS232和SPI串行通訊以及下位機(jī)雙機(jī)通信模塊。系統(tǒng)總體框圖如圖1所示。
3 Salvo系統(tǒng)簡(jiǎn)介
嵌入式實(shí)時(shí)操作系統(tǒng)Salvo具有占用系統(tǒng)資源少和功能強(qiáng)大兩大特點(diǎn)。
3.1 Salvo占用的系統(tǒng)資源
Salvo最大的特點(diǎn)是占用系統(tǒng)資源少,特別是占用存儲(chǔ)器資源極少。它不但適用于51系列單片機(jī),也適用于存儲(chǔ)器資源更少的PIC系列單片機(jī)。Salvo占用ROM資源取決于用戶調(diào)用的系統(tǒng)函數(shù),占用RAM取決于用戶定義的變量、任務(wù)和事件的數(shù)量。以PIC16系列單片機(jī)為例,每個(gè)全局變量占10 B,任務(wù)占5 B,事件占3 B。
3.2 Salvo功能和性能
Salvo是一個(gè)基于優(yōu)先級(jí)任務(wù)切換、支持事件驅(qū)動(dòng)的多任務(wù)嵌入式實(shí)時(shí)操作系統(tǒng)。Salvo共支持16個(gè)任務(wù)優(yōu)先級(jí),且多個(gè)任務(wù)可共用一個(gè)優(yōu)先級(jí),任務(wù)按優(yōu)先級(jí)高低切換,對(duì)于多個(gè)同一優(yōu)先級(jí)的任務(wù)則以時(shí)間片循環(huán)方式(round-robin)切換。Salvo支持任務(wù)和事件的數(shù)量取決于RAM的大?。⊿alvo默認(rèn)支持255個(gè)任務(wù)、255個(gè)事件和255個(gè)消息隊(duì)列)。Salvo內(nèi)核主要提供以下幾類函數(shù)供用戶應(yīng)用程序引用:
任務(wù)管理:提供任務(wù)建立、任務(wù)撤消功能;
時(shí)間管理:提供任務(wù)延時(shí)函數(shù)功能;
信號(hào)管理:提供信號(hào)量建立、刪除、等待、發(fā)出等功能;
消息管理:提供消息建立、刪除、等待、發(fā)出等功能。
4 系統(tǒng)硬件總述
通訊部分主要由兩部分組成:?jiǎn)纹瑱C(jī)與PC機(jī)以及PIC單片機(jī)之間的通訊。PC機(jī)與下位單片機(jī)間互傳數(shù)據(jù)采用RS232串行異步通信方式。而PIC單片機(jī)之間的通訊則采用SPI總線,它是主要用于處理器和外設(shè)同步串行通信的4線接口。采用同步時(shí)鐘把串行數(shù)據(jù)以8位碼的形式移入和移出微控制器。SPI總線是一種主/從接口,主接口驅(qū)動(dòng)串行時(shí)鐘。在使用SPI時(shí),會(huì)同時(shí)發(fā)送和接收數(shù)據(jù),使其成為一種全雙工協(xié)議,通訊效率高,而且電路連線及軟件編程結(jié)構(gòu)簡(jiǎn)單。硬件電路如圖2、圖3所示,其單元電路包括CCP捕捉電路、PWM驅(qū)動(dòng)電路、RS232/SPI通訊模塊、A/D轉(zhuǎn)換算法及LCD顯示等。
4.1 CCP捕捉電路
光電采集模塊中,采用光電器件具有高轉(zhuǎn)換精度、良好的靜態(tài)工作點(diǎn)、完整的模擬前端以及片內(nèi)校正,特別適用于測(cè)量低頻小信號(hào)。該電路將光信號(hào)轉(zhuǎn)換成電壓信號(hào),再經(jīng)過整形濾波就可直接送至單片機(jī)。送往單片機(jī)的轉(zhuǎn)速信號(hào)可通過CCP捕捉模塊測(cè)量出轉(zhuǎn)速。在該模式下,若要采用捕捉功能應(yīng)將相應(yīng)的TRIS置為1,將單片機(jī)CCPx引腳設(shè)置為輸入。例如,輸入頻率穩(wěn)定時(shí),將單片機(jī)預(yù)分頻值設(shè)置為1:16,則這16個(gè)周期的總誤差為1個(gè)TCY。其有效分辨率為TCY/16,即在40 MHz時(shí)有效分辨率為6.25 ns。只有在輸入頻率在16個(gè)采樣周期內(nèi)均穩(wěn)定的情況下,這一方法才有效。不使用預(yù)分頻器(1:1)時(shí),每個(gè)采樣分辨率為TCY。而且當(dāng)改變捕捉模式時(shí),產(chǎn)生一個(gè)捕捉中斷。用戶應(yīng)保持CCPxIE位清零以禁止這種中斷,還應(yīng)在運(yùn)行模式改變后將CCPxIF位清零。整個(gè)捕捉過程快捷、簡(jiǎn)單。
4.2 PWM驅(qū)動(dòng)模塊
PIC16F877A單片機(jī)產(chǎn)生的PWM信號(hào)經(jīng)過光電耦合器連接到L298N的使能控制端。考慮到TLP521-4電路具有反相器作用,PWM信號(hào)中的高電平持續(xù)時(shí)間對(duì)應(yīng)直流電機(jī)的斷電時(shí)間。從單片機(jī)其他引腳輸出的信號(hào)送入L298N的方向控制端,控制直流電機(jī)的轉(zhuǎn)動(dòng)方向和制動(dòng)狀態(tài)。L298N驅(qū)動(dòng)負(fù)載的電源電壓最大為46 V,單橋的驅(qū)動(dòng)電源接近2A,最大開關(guān)頻率不小于40 kHz。與由分立元件構(gòu)成的橋式驅(qū)動(dòng)電路相比,該電路結(jié)構(gòu)簡(jiǎn)單,性能可靠。通過改寫程序,可以控制小型直流電機(jī)的多種變速。使用光電編碼器實(shí)現(xiàn)電機(jī)速度檢測(cè),構(gòu)成了完整的閉環(huán)控制系統(tǒng)。
4.3 RS232串行通訊模塊
PIC16F877A串行口僅占用了單片機(jī)的RC6和RC7引腳,用于接收端RXD和發(fā)送端TXD。因此在上位機(jī)計(jì)算機(jī)與下位機(jī)單片機(jī)通信時(shí),只需將收發(fā)信號(hào)(TX、RX)及地(GND)3根線相連即可。單片機(jī)的串行接口電平為TTL電平,這與計(jì)算機(jī)的串行接口電平不一致,因此需要電平轉(zhuǎn)換。系統(tǒng)選用了Maxim公司的MAX232通用串行接收/發(fā)送驅(qū)動(dòng)器,其外圍電路簡(jiǎn)單,只需外接4只0.1μF的電容即可。
4.4 LCD顯示模塊
模塊SMC1602B由一塊點(diǎn)陣液晶屏和控制器HD44780及其輔助電路組成。本系統(tǒng)設(shè)計(jì)采用OCMJ中文模塊系統(tǒng)LCD液晶作為下位機(jī)的顯示模塊。該模塊內(nèi)含GB2312 16×16點(diǎn)陣國標(biāo)一級(jí)簡(jiǎn)體漢字和ASCII8×8(半高)及8×16(全高)點(diǎn)陣形英文字庫,用戶輸入?yún)^(qū)位碼或ASCII碼可實(shí)現(xiàn)文本顯示。OCMJ中文液晶顯示模塊采用ASK/ANSWER握手方式。
5 系統(tǒng)軟件總述
5.1 下位機(jī)軟件設(shè)計(jì)
智能電機(jī)監(jiān)控系統(tǒng)的下位機(jī)軟件設(shè)計(jì)主要完成CCP捕捉、A/D采集、PWM控制、SPI通訊、LCD顯示、RS232通訊等多個(gè)功能??傮w流程框圖如圖4所示,控制算法是利用PIC16F877A直接控制PID參數(shù),實(shí)現(xiàn)精確控制。
5.2 上位機(jī)系統(tǒng)設(shè)計(jì)
上位機(jī)系統(tǒng)軟件是在Windows平臺(tái)上利用Vi-sual Basic6.0開發(fā)的,設(shè)計(jì)包括了操作提示部分(自動(dòng)發(fā)送、手動(dòng)發(fā)送、串口選擇、奇偶校驗(yàn)、波特率、數(shù)據(jù)位等)、接收回顯部分(接收數(shù)據(jù)位、電機(jī)轉(zhuǎn)速、電機(jī)正反轉(zhuǎn)等)以及發(fā)送內(nèi)容部分(電機(jī)轉(zhuǎn)速設(shè)定、過壓、過流保護(hù)值等)。
6 監(jiān)控
電機(jī)工作時(shí)上、下位機(jī)實(shí)時(shí)通訊,顯示的參數(shù)值實(shí)時(shí)性好,此時(shí)電機(jī)正處在反轉(zhuǎn)狀態(tài)(正轉(zhuǎn)“1”、反轉(zhuǎn)“0”),這一方面可以從上位機(jī)界面中的正反轉(zhuǎn)設(shè)定標(biāo)志看出,另一方面下位機(jī)回饋的參數(shù)中也有電機(jī)正反轉(zhuǎn)標(biāo)志,下位機(jī)的液晶面板也同樣有轉(zhuǎn)速、電壓、電流及正反轉(zhuǎn)顯示(正轉(zhuǎn)“Right”、反轉(zhuǎn)“Left”),并且上、下位機(jī)的數(shù)據(jù)顯示是同步的。與此同時(shí),可通過上位機(jī)對(duì)下位機(jī)設(shè)定的過流過壓保護(hù)值,一旦電路檢測(cè)到任一過流或者過壓時(shí)(超過設(shè)定值),下位機(jī)控制單元就會(huì)發(fā)出報(bào)警信號(hào)(紅燈亮、蜂鳴器響、上位機(jī)出現(xiàn)錯(cuò)誤標(biāo)志、下位機(jī)的液晶上也會(huì)出現(xiàn)錯(cuò)誤提示等),并且自動(dòng)停機(jī)保護(hù),等待檢修。
7 結(jié)束語
該系統(tǒng)成功實(shí)現(xiàn)了直流電機(jī)閉環(huán)轉(zhuǎn)速系統(tǒng)的實(shí)時(shí)監(jiān)控,簡(jiǎn)化了控制邏輯系統(tǒng),與同類產(chǎn)品相比成本低廉、功能完整、抗干擾性能好。已成功應(yīng)用于直流電機(jī)轉(zhuǎn)速調(diào)節(jié)、監(jiān)控、保護(hù)場(chǎng)合,并且上位機(jī)界面友好,使用方便。PC機(jī)能夠?qū)χ绷麟姍C(jī)實(shí)行實(shí)時(shí)監(jiān)控,不僅大大改善了高速運(yùn)行時(shí)的穩(wěn)定性,而且還實(shí)現(xiàn)了保護(hù)功能。