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