機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
無刷直流機DSP控制系統(tǒng)與PC機串行通信的Matlab實現(xiàn)
無刷直流機DSP控制系統(tǒng)與PC機串行通信的Matlab實現(xiàn)
 更新時間:2009-6-5 9:08:32  點擊數(shù):2
【字體: 字體顏色

摘  要:采用DSP雖然可以實現(xiàn)無刷直流機的高性能實時控制,但僅靠DSP,很難再對系統(tǒng)的關(guān)鍵信息進行深入的分析和處理。為此,本文采用PC機和DSP的主從結(jié)構(gòu),在Matlab環(huán)境下,設(shè)計了一種PC機和DSP控制系統(tǒng)的串行通信實現(xiàn)方案。該方案利用了Matlab強大的數(shù)值分析功能,不但可以實現(xiàn)電機轉(zhuǎn)速、電樞電流等信號的實時采集和分析,而且可以對控制系統(tǒng)參數(shù)進行在線調(diào)試。該方案界面友好,結(jié)構(gòu)簡單,易于實現(xiàn)。實驗結(jié)果表明,這種方案是可行的。
關(guān)鍵詞:無刷直流電動機(BLDCM)  DSP  Matlab  串行通信

1 引言

TMS320LF2407(以下簡稱LF2407)DSP控制器集高速信號處理能力和適應(yīng)電機控制的外圍電路與一體,近年來在交流伺服系統(tǒng)中得到了廣泛的應(yīng)用,并取得了良好的效果[1][2]。但是,DSP在事件處理方面顯得有些不足,具體表現(xiàn)是I/O口較少以及人機界面不太友好,DSP軟件資源也沒有PC機豐富,這些因素限制了DSP的應(yīng)用。采用PC機和DSP主從結(jié)構(gòu)的串行通信技術(shù)能夠在一定程度上解決這些問題,使用這種方法可以很好地實現(xiàn)無刷直流機DSP控制系統(tǒng)的參數(shù)調(diào)試、轉(zhuǎn)速信號實時采集及處理。

目前國內(nèi)外有大量文獻介紹關(guān)于串行通信的實現(xiàn)方案,都取得了較好的效果,但大部分文獻介紹的是采用WINDOWS API函數(shù)或者VB、VC、DELPH來實現(xiàn)上位機的界面和串行通信[3][4][5]。然而,在無刷直流機速度控制系統(tǒng)中,為使調(diào)試者實時了解系統(tǒng)運 行的信息,需要實時采集電機轉(zhuǎn)速、電樞電流等信息,并進行數(shù)據(jù)分析和加工處理。顯然,利用現(xiàn)有的PC機與DSP串行通信方案,可以很方便地實現(xiàn)電機轉(zhuǎn)速、電樞電流等信息的實時采集。如果還要進行復(fù)雜的數(shù)據(jù)分析和處理,就不太方便了?紤]到Matlab具有強大的數(shù)值分析計算功能,為減少在數(shù)據(jù)分析和處理上的工作量,可以直接使用Matlab實現(xiàn)PC機與與DSP之間的串行通信。這樣,不但可以實現(xiàn)PC機與與DSP控制系統(tǒng)間的信息交換,而且可以借助Matlab的工具箱,對控制系統(tǒng)的數(shù)據(jù)進行分析、加工、處理。

圖1  無刷直流電機控制系統(tǒng)

2 無刷直流電機控制系統(tǒng)

基于DSP無刷直流電機轉(zhuǎn)速伺服控制系統(tǒng)如圖1所示,整個系統(tǒng)由無刷直流電機、電源整流濾波電路、逆變電路、功率驅(qū)動電路、DSP控制器等部分組成。系統(tǒng)采用主從式結(jié)構(gòu),PC機作為上位機,進行實時監(jiān)控和命令的發(fā)送,以LF2407為核心構(gòu)成的伺服電機控制部分為下位機。系統(tǒng)采用電流、轉(zhuǎn)速雙閉環(huán)來實現(xiàn)電機轉(zhuǎn)速高精度伺服,采用PWM方式控制電機的電樞電流。上位機通過串口將參考轉(zhuǎn)速的大小和方向發(fā)送給下位機,DSP根據(jù)參考轉(zhuǎn)速通過控制器來調(diào)整PWM的占空比,從而改變電機的電磁力矩,使得電機轉(zhuǎn)速跟蹤參考轉(zhuǎn)速的變化。由于LF2407是專為電機驅(qū)動控制設(shè)計的DSP,整個系統(tǒng)的外圍器件很少,結(jié)構(gòu)簡單,具有高可靠性和可擴充性。

3 串行通信的實現(xiàn)

DSP與PC機之間串行通信的實現(xiàn)包括通信硬件設(shè)計、上位機程序設(shè)計、下位機程序設(shè)計三個部分。

3.1 通信硬件設(shè)計

PC機的RS-232-C電路的電平與LF2407 的電平不兼容,必須通過電平轉(zhuǎn)換電路后才能連接。MAX232芯片能很好地完成這一功能,該芯片具有一個專有的低壓降發(fā)送器輸出級,只需要4個1μf的外接電容就可實現(xiàn),具體主電路如圖2所示。

3.2 上位機程序的設(shè)計

Matlab是一種解釋執(zhí)行的腳本語言,與VB非常類似,Matlab不僅可以解釋并執(zhí)行用戶的數(shù)值計算程序,還可以在腳本程序控制下生成圖形界面,使得應(yīng)用程序的界面更為友好。上位機程序界面就是通過這種方式實現(xiàn)的,限于篇幅,本文不多做闡述,只對Matlab下串口通信的具體實現(xiàn)做詳細敘述。

對于Windows系統(tǒng)而言,硬件設(shè)備的驅(qū)動程序有著嚴格的規(guī)范,可以用C和匯編語言開發(fā),而Matlab本身是個跨平臺軟件,并不具有直接訪問硬件的能力。但是在Matlab 6中,提供了對系統(tǒng)串行口的支持,這是通過類serial來實現(xiàn)的。Matlab對串口的支持不如VC等高級語言完善,如果要以中斷方式對串口事件進行響應(yīng),必須采用比較復(fù)雜的事件和回調(diào)函數(shù)機制,同時由于類serial建立在Java的基礎(chǔ)上,實現(xiàn)起來效率比較低。但是對于PC機和DSP之間的串口通信任務(wù),Matlab的串口對象已經(jīng)足夠應(yīng)付了。實驗也取得了比較滿意的效果。

在Matlab中建立串口對象的語法為:s=serial('port','p1',v1,'p2','v2',……)

其中port是端口的名字,一般是‘com1’或‘com2’;px為屬性名,vx為屬性值。一般來說,需要設(shè)定的屬性有如下幾個:

BaudRate:串口傳輸?shù)牟ㄌ芈,試驗中取為?8400”

Parity:   串口傳輸?shù)钠媾夹r炍,試驗中取值為“none”

DataBits: 串口傳輸?shù)臄?shù)據(jù)位數(shù),試驗中取值為“8”

StopBits: 串口傳輸?shù)耐V刮,實驗中取值為?” ''

語句handles.com1=serial('com1','baudrate',38400,'parity','none','databits',8,'stopbits',1)就以波特率38400,無奇偶校驗位,數(shù)據(jù)位8位,停止位1位,建立了串口對象com1,handles.com1可以認為是該設(shè)備的句柄。隨后可以用文件操作的方式直接對handles.com1進行打開、關(guān)閉和讀寫操作。通常使用的函數(shù)為:fopen、fclose、fprintf和fread等。

串行通信雙方DSP均需要進行數(shù)據(jù)的接受和發(fā)送。本系統(tǒng)在通信過程中,點擊界面上的發(fā)送按鈕,上位機將把給定的轉(zhuǎn)速大小、方向和相關(guān)的控制器參數(shù)發(fā)給DSP,點擊接受按鈕,上位機將接收來自DSP的電機繞組電流、電壓和轉(zhuǎn)速信息,并顯示出來。

3.2 下位機程序的設(shè)計

本系統(tǒng)所用的DSP為TI公司專為數(shù)字電機控制而設(shè)計的TMS320LF2407A,具有可編程串行通信接口模塊(SCI),支持CPU與其它使用標準格式的異步外設(shè)之間的數(shù)字通信。DSP與上位機的接收和發(fā)送都是通過此模塊進行的。SCI接收器和發(fā)送器均為雙緩沖結(jié)構(gòu),有各自的使能位和中斷位,且相互獨立。支持全雙工工作方式。為確保數(shù)據(jù)的完整性,SCI對接收的數(shù)據(jù)進行間斷檢測、奇偶性、超時以及幀錯誤檢測。通過16位波特率寄存器,可以選擇65535種不同的波特率[6]。

本系統(tǒng)中上位機每次將確定個數(shù)的

一組數(shù)據(jù)發(fā)送給下位機,發(fā)送數(shù)據(jù)的個數(shù)設(shè)為n,下位機直到接收完了整組數(shù)據(jù),即一次接收到n個數(shù)據(jù)后才更新電機的參考轉(zhuǎn)速的大小、方向以及控制系統(tǒng)的參數(shù)等。DSP在主程序的等待狀態(tài)時檢測需要發(fā)給上位機的數(shù)據(jù)是否更新以及發(fā)送器此時是否為空,僅當數(shù)據(jù)已經(jīng)更新,發(fā)送器又為空時,下位機才向上位機發(fā)送數(shù)據(jù)。下位機接收和發(fā)送數(shù)據(jù)程序流程圖如圖3(a)、3(b)所示。DSP串行通信模塊SCI的專用寄存器參數(shù)設(shè)置如下:

SPLK    #0fh,SCICCR      ;一個停止位,無奇偶校驗位,8個數(shù)據(jù)位   

SPLK    #23h,SCICTL1     ;使能發(fā)送器和接受器

SPLK    #02h,SCICTL2     ;使能接收器中斷觸發(fā)    

SPLK    #00h,SCIHBAUD   ;

SPLK    #81h,SCILBAUD   ;設(shè)置波特率為38400b/s

SPLK    #00h,SCIPRI       ;設(shè)置SCI接受中斷的優(yōu)先級為高

4 結(jié)論

通過上面所介紹的設(shè)計思想和方法,在Matlab環(huán)境下,實現(xiàn)了無刷直流電機DSP控制系統(tǒng)PC機的串行通信。采用DSP和PC的主從結(jié)構(gòu)既能發(fā)揮DSP的數(shù)值處理能力,又具有良好的人機接口界面,方便了無刷直流電機控制系統(tǒng)的參數(shù)調(diào)試。同時在Matlab環(huán)境下,利用Matlab功能強大的工具箱,對采集來的轉(zhuǎn)速、電流等數(shù)據(jù)的處理非常便捷。實驗結(jié)果表明該方案界面友好,結(jié)構(gòu)簡單,性能可靠,易于實現(xiàn)。

參考文獻

[1]       汪銳, 許靜宇. 基于DSP芯片的永磁無刷直流電機控制器[J]. 微電機, 2000, 33(4): 27-29

[2]       謝洪友, 呂恬生. 基于數(shù)字信號處理器的無刷直流電機控制系統(tǒng) [J]. 機電工程,2003,19(2): 43-45

[3]       許國平, 盧慧芬. 利用VB6.0實現(xiàn)PC機與DSP之間的串行數(shù)據(jù)通信[J]. 計算機應(yīng)用, 2001, 27(9): 7-10

[4]       汪大全, ****. 基于VC6.0實現(xiàn)DSP與PC之間的串行通信[J]. 現(xiàn)代電子技術(shù),2002,15(6): 29-31

[5]       張鵬, 李漢強, 丁琳. 矢量控制系統(tǒng)中DSP與PC機通信的實現(xiàn)[J]. 武漢理工大學(xué)學(xué)報,2002,26(2): 214-216

[6]       劉和平, 王維俊等. TMS320LF240xDSP C語言開發(fā)應(yīng)用. 北京:北京航空航天大學(xué)出版社,2003

<!--插入廣告JS代碼-->

圖3(a) 下位機接收程序流程圖    圖3(b) 下位機發(fā)送程序流程圖

  • 上一篇: 基于TMS320C6414的多DSP實時圖像處理系統(tǒng)的設(shè)計與實現(xiàn)
  • 下一篇: 用Hash鎖方法解決RFID的安全與隱私問題
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1