任康磊,張夢(mèng)微
(南京郵電大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210023)
基于C/S結(jié)構(gòu)的直流電機(jī)網(wǎng)絡(luò)化調(diào)速實(shí)驗(yàn)平臺(tái)設(shè)計(jì)
任康磊,張夢(mèng)微
(南京郵電大學(xué) 自動(dòng)化學(xué)院,江蘇 南京210023)
設(shè)計(jì)了一種基于C/S結(jié)構(gòu)的直流電機(jī)網(wǎng)絡(luò)化調(diào)速系統(tǒng)平臺(tái)。采用RTL8019AS網(wǎng)絡(luò)控制器實(shí)現(xiàn)客戶端與網(wǎng)絡(luò)控制節(jié)點(diǎn)的高速通信,網(wǎng)絡(luò)控制節(jié)點(diǎn)基于PWM方式控制電機(jī)轉(zhuǎn)速,并采用E6B2編碼器實(shí)時(shí)測(cè)量電機(jī)轉(zhuǎn)速。詳細(xì)介紹了網(wǎng)絡(luò)控制節(jié)點(diǎn)的軟硬件設(shè)計(jì)。該實(shí)驗(yàn)平臺(tái)具有結(jié)構(gòu)簡(jiǎn)單、控制精度高、開(kāi)放程度高的優(yōu)點(diǎn)。
C/S結(jié)構(gòu);網(wǎng)絡(luò)化調(diào)速;RTL8019AS;TCP/IP;旋轉(zhuǎn)編碼器
隨著網(wǎng)絡(luò)通信技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)化控制已成為近二十年來(lái)控制領(lǐng)域的研究熱點(diǎn)[1]。然而,目前的研究大都基于理論推導(dǎo)和軟件仿真,實(shí)驗(yàn)驗(yàn)證則相對(duì)較少[2]。運(yùn)動(dòng)控制系統(tǒng)在工業(yè)、農(nóng)業(yè)、軍工等領(lǐng)域起著核心作用。直流電機(jī)因啟動(dòng)轉(zhuǎn)矩大、調(diào)速性能好,在運(yùn)動(dòng)控制系統(tǒng)中得到了廣泛應(yīng)用。因此,開(kāi)發(fā)直流電機(jī)網(wǎng)絡(luò)化控制實(shí)驗(yàn)平臺(tái)具有重要意義。近來(lái),一些學(xué)者設(shè)計(jì)了網(wǎng)絡(luò)化電機(jī)控制系統(tǒng)[3-6]。但研究的系統(tǒng)大都基于DSP或者ARM處理器,價(jià)格昂貴且系統(tǒng)軟件實(shí)現(xiàn)復(fù)雜。另外,這些系統(tǒng)對(duì)電機(jī)轉(zhuǎn)速測(cè)量研究的較少。
本文采用遠(yuǎn)程PC、STC89C516RD+單片機(jī)、以太網(wǎng)控制芯片RTL8019AS以及歐姆龍E6B2編碼器等,設(shè)計(jì)實(shí)現(xiàn)了一種基于C/S結(jié)構(gòu)的直流電機(jī)網(wǎng)絡(luò)控制實(shí)驗(yàn)平臺(tái)。該平臺(tái)具有結(jié)構(gòu)簡(jiǎn)單、成本低、開(kāi)放程度高的特點(diǎn)。文中詳細(xì)介紹RTL8019AS協(xié)議棧以及轉(zhuǎn)速測(cè)量的軟件實(shí)現(xiàn)。
本文設(shè)計(jì)的直流電機(jī)以太網(wǎng)控制實(shí)驗(yàn)平臺(tái)采用C/S結(jié)構(gòu)模式,其總體結(jié)構(gòu)如圖1所示。系統(tǒng)采用本地單片機(jī)作為服務(wù)器端,通過(guò)連接嵌入TCP/IP 協(xié)議的以太網(wǎng)控制器RTL8019AS實(shí)現(xiàn)以太網(wǎng)絡(luò)通信接口,采用L298N作為電機(jī)功率驅(qū)動(dòng)模塊,利用旋轉(zhuǎn)編碼器實(shí)現(xiàn)電機(jī)轉(zhuǎn)速的檢測(cè),實(shí)現(xiàn)網(wǎng)絡(luò)化電機(jī)控制節(jié)點(diǎn)設(shè)計(jì)。采用內(nèi)含各種復(fù)雜控制算法的計(jì)算機(jī)為客戶端,作為網(wǎng)絡(luò)控制器和網(wǎng)絡(luò)化監(jiān)視系統(tǒng)。
圖1 直流電機(jī)網(wǎng)絡(luò)控制系統(tǒng)結(jié)構(gòu)圖
2.1以太網(wǎng)接口模塊設(shè)計(jì)
電機(jī)控制板上以太網(wǎng)接口模塊選用Realtek公司高度集成的以太網(wǎng)控制器RTL8019AS,該芯片硬件上實(shí)現(xiàn)了以太網(wǎng)底層數(shù)據(jù)鏈路層(MAC)和物理層(PHY)協(xié)議。采用單片機(jī)STC89C516RD+作為控制核心實(shí)現(xiàn)對(duì)RTL8019AS的訪問(wèn)控制,RTL8019AS將數(shù)據(jù)包裝為幀,經(jīng)20F001N隔離再與RJ45接口相連。以太網(wǎng)接口模塊硬件結(jié)構(gòu)如圖2所示。
圖2 以太網(wǎng)接口模塊硬件結(jié)構(gòu)圖
本設(shè)計(jì)中通過(guò)設(shè)置JP引腳使RTL8019AS工作于跳線模式,由IOS3、IOS2、IOS1以及IOS0決定I/O地址為0240H。單片機(jī)通過(guò)鎖存器對(duì)P0口進(jìn)行復(fù)用使其既可作低8位地址線(A7~A0),又可以作數(shù)據(jù)線(D7~D0)。RTL8019AS低16位地址端口SA15~SA0與單片機(jī)地址線A15~A0相連,高4位SA19~SA16直接接地。由于收發(fā)數(shù)據(jù)還需要一定的緩存空間,本設(shè)計(jì)中使用了62256作為外部存儲(chǔ)器。為了區(qū)分片外的62256和RTL8019AS,將地址線最高位A15連接到62256的片選管腳,而對(duì)于RTL8019AS則將A15與A9交換。當(dāng)A15為1時(shí)選通RTL8019AS,為0時(shí)選通62256。
2.2電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)
電機(jī)驅(qū)動(dòng)模塊總體結(jié)構(gòu)如圖3所示,選用ST公司電機(jī)驅(qū)動(dòng)芯片L298N。L298N集成了兩個(gè)H橋高電壓、大電流驅(qū)動(dòng)電路,可方便地驅(qū)動(dòng)直流電機(jī)。L298N使能端ENA接STC89C516RD+的P1.5口,當(dāng)ENA為高電平時(shí),通過(guò)PWM信號(hào)輸入端IN1(P1.3)和IN2(P1.4)控制電動(dòng)機(jī)正反轉(zhuǎn)[7]。為便于調(diào)試,系統(tǒng)里設(shè)置了按鍵sw1和sw2,通過(guò)連接P1.6和P1.7口實(shí)現(xiàn)電機(jī)加、減速。
圖3 電機(jī)驅(qū)動(dòng)模塊結(jié)構(gòu)圖
2.3編碼器信號(hào)采集電路
本文采用增量式旋轉(zhuǎn)編碼器(歐姆龍E6B2)測(cè)量電機(jī)轉(zhuǎn)速,電路如圖4所示。
圖4 編碼器信號(hào)采集電路
旋轉(zhuǎn)編碼器B、A兩相輸出經(jīng)施密特觸發(fā)器脈沖整形后,分別接到STC89C516RD+的P1.0和P1.1口,B、A相異或信號(hào)接P3.7口, P1.0和P3.7信號(hào)用于判別電機(jī)旋轉(zhuǎn)方向,P1.1口采集旋轉(zhuǎn)編碼器的脈沖數(shù)以計(jì)算出電機(jī)轉(zhuǎn)速;P3.3(INT1)口接旋轉(zhuǎn)編碼器Z相信號(hào)線實(shí)現(xiàn)零位檢測(cè)。
單片機(jī)STC89C516RD+的P1.1通過(guò)設(shè)置中斷計(jì)算出脈沖數(shù),再通過(guò)M方法求電機(jī)轉(zhuǎn)速;P1.0則是通過(guò)先比較B、A兩路的高低電平,再將A⊕B的信號(hào)送入P3.7口,通過(guò)異或處理得到的電平值,判斷出電機(jī)的正反轉(zhuǎn)。在周期T內(nèi),A、B兩信號(hào)存在4次高低電平變化,更容易判斷旋轉(zhuǎn)方向,如圖5、圖6所示。
圖5 電機(jī)正轉(zhuǎn)
圖6電機(jī)反轉(zhuǎn)
當(dāng)A超前B時(shí),電機(jī)正轉(zhuǎn),A⊕B周期內(nèi)電平變化為:11、01、00、10;反之,周期內(nèi)電平變化為:11、10、00、01[8-9]。
3.1以太網(wǎng)接口模塊軟件設(shè)計(jì)
以太網(wǎng)接口軟件設(shè)計(jì)包括芯片的驅(qū)動(dòng)以及精簡(jiǎn)TCP/IP協(xié)議棧的嵌入。芯片驅(qū)動(dòng)主要是對(duì)RTL8019AS芯片進(jìn)行初始化,使其能夠進(jìn)行正常的數(shù)據(jù)收發(fā)。軟件流程如圖7所示。
圖7 以太網(wǎng)通信收發(fā)數(shù)據(jù)流程圖
RTL8019AS的內(nèi)存分成兩個(gè)部分,分別用來(lái)保存以太網(wǎng)物理地址和緩沖區(qū)。緩沖區(qū)的地址為0x4000至0x7fff,接收和發(fā)送的數(shù)據(jù)都可以保存在這64頁(yè)中。發(fā)送緩沖區(qū)分為兩個(gè)大小相等的部分以交替使用,提高發(fā)送效率。該芯片偏移地址00H至1FH是I/O地址。00H至0FH是寄存器地址,CR寄存器可以控制需要訪問(wèn)寄存器所在的頁(yè)數(shù)。芯片收發(fā)數(shù)據(jù)主要通過(guò)遠(yuǎn)程DMA和本地DMA端口實(shí)現(xiàn),其過(guò)程是對(duì)相關(guān)寄存器進(jìn)行讀寫(xiě)來(lái)完成的。
除了RTL8019AS芯片的驅(qū)動(dòng)程序外,還必須實(shí)現(xiàn)復(fù)雜的TCP/IP協(xié)議棧將數(shù)據(jù)包裝成網(wǎng)絡(luò)上規(guī)定的格式。TCP/IP協(xié)議棧為分層的結(jié)構(gòu),可以根據(jù)系統(tǒng)的實(shí)際應(yīng)用,將不需要的協(xié)議進(jìn)行刪減。精簡(jiǎn)后結(jié)構(gòu)如圖8所示。
圖8 協(xié)議棧分層及其數(shù)據(jù)封裝結(jié)構(gòu)
協(xié)議棧在處理數(shù)據(jù)時(shí)主要就是完成數(shù)據(jù)的拆包與封裝。在接收數(shù)據(jù)時(shí),按照協(xié)議解讀其首部信息后把數(shù)據(jù)傳遞給上層協(xié)議。發(fā)送的數(shù)據(jù)則是通過(guò)協(xié)議的封裝傳遞給下層。
在傳輸層中,本系統(tǒng)選擇了可靠的TCP協(xié)議。網(wǎng)絡(luò)層中實(shí)現(xiàn)IP協(xié)議,將上層的協(xié)議和硬件隔離開(kāi)。每個(gè)網(wǎng)絡(luò)適配器都有唯一的IP地址。IP和TCP協(xié)議中規(guī)定的端口號(hào)唯一確定了一個(gè)連接,因此可以確定數(shù)據(jù)傳輸?shù)穆窂?。除此之外還實(shí)現(xiàn)了ARP協(xié)議,用于將IP地址與MAC地址對(duì)應(yīng)。由于資源限制,差錯(cuò)控制只實(shí)現(xiàn)ICMP協(xié)議中簡(jiǎn)單的回答報(bào)文,該協(xié)議用來(lái)測(cè)試網(wǎng)絡(luò)是否連通。
3.2PWM信號(hào)軟件實(shí)現(xiàn)
本設(shè)計(jì)中電機(jī)的轉(zhuǎn)速由加在其兩端的平均電壓(改變電壓的占空比ZKB)決定。要實(shí)現(xiàn)轉(zhuǎn)速調(diào)節(jié)則必須改變電壓值。通過(guò)單片機(jī)編寫(xiě)的PWM程序來(lái)分別控制L298N輸入端IN1,IN2。PWM由中斷進(jìn)行控制,代碼如下,其中的ZKB表示占空比,通過(guò)以太網(wǎng)通信獲得。
void timer0(void) interrupt 1
{static uchar time=0;
TH0=0x9B; TL0=0x9B; ++time;
if(timegt;=100) time=0;
if(timelt;=ZKB) P1.2=1;
else P1.2=0;
}
3.3速度檢測(cè)軟件設(shè)計(jì)
速度檢測(cè)主要利用STC89C516RD+內(nèi)部定時(shí)器/計(jì)數(shù)器T2的計(jì)數(shù)功能實(shí)現(xiàn),計(jì)數(shù)通過(guò)中斷完成。置模式寄存器T2MOD的DCEN位為“0”以實(shí)現(xiàn)T2向上計(jì)數(shù)。置控制寄存器T2CON的外部使能標(biāo)志位EXEN2 為“1”。 P1.1(T2EX)引腳信號(hào)的負(fù)跳變將觸發(fā)T2的捕獲或重裝,捕獲或重裝標(biāo)志位EXF2置“1”,系統(tǒng)響應(yīng)中斷,將標(biāo)志位C/T2位和TR2位分別置“1”,T2啟動(dòng)計(jì)數(shù)。當(dāng)T2計(jì)數(shù)達(dá)到預(yù)定值時(shí),產(chǎn)生溢出,標(biāo)志位TR2位置“0”,停止計(jì)數(shù),中斷返回。中斷響應(yīng)程序如下:
void timer2int(void)
{uchar i;
TF2=0;
P17=0;
if(TF2==1)
{TF2=0; TH2=RCAP2H; TL2=RCAP2L; n++;}
if(EXF2==1)
{EXF2=0;
if(i==0)
{ TR2=1;
i++;
}
//外部中斷啟動(dòng)計(jì)數(shù)
else {reg1=RCAP2L;
//高位計(jì)數(shù)寄存器
reg2=RCAP2H;
//低位計(jì)數(shù)寄存器
i=0; TR2=0;
//停止T2計(jì)數(shù)
}
}
}
圖9 編碼器速度測(cè)量流程圖
中斷計(jì)數(shù)產(chǎn)生溢出之前,采用測(cè)速算法M法,即在時(shí)間TC內(nèi)測(cè)取編碼器輸出脈沖個(gè)數(shù)M1,以計(jì)算這段時(shí)間內(nèi)的平均轉(zhuǎn)速。測(cè)速流程如圖9所示。
3.4客戶端軟件設(shè)計(jì)
基于可視化VC++軟件,采用C/S結(jié)構(gòu)模式在遠(yuǎn)程PC端設(shè)計(jì)客戶端程序。通過(guò)Socket技術(shù)[10]與STC89C516RD+進(jìn)行以太網(wǎng)通信,該軟件主要功能模塊包括連接建立、轉(zhuǎn)速設(shè)定及轉(zhuǎn)速反饋顯示。
該軟件使用C++的Socket編程實(shí)現(xiàn)。用戶可通過(guò)該軟件連接到對(duì)應(yīng)IP和端口的電機(jī),并對(duì)其進(jìn)行轉(zhuǎn)速和轉(zhuǎn)向的控制。其中還能夠顯示經(jīng)編碼器反饋的電機(jī)實(shí)時(shí)速度。
本文開(kāi)發(fā)了一種基于C/S結(jié)構(gòu)的直流電機(jī)網(wǎng)絡(luò)化調(diào)速系統(tǒng)平臺(tái),著重介紹了平臺(tái)軟硬件設(shè)計(jì)。該實(shí)驗(yàn)平臺(tái)具有結(jié)構(gòu)簡(jiǎn)單、控制精度高、開(kāi)放程度高的優(yōu)點(diǎn),具有廣闊的應(yīng)用前景。
[1] Shi Yang, Huang Ji, Yu Bo. Robust tracking control of networked control systems: application to a networked DC motor[J]. IEEE Transactions on Industrial Electronics, 2013, 60(12): 5864-5874.
[2] 龐中華, 劉國(guó)平, 鄭耿, 等. 基于 NetCon 的網(wǎng)絡(luò)化控制系統(tǒng)快速實(shí)現(xiàn)[J]. 化工自動(dòng)化及儀表, 2009, 36(5): 79-83.
[3] 謝志遠(yuǎn), 貢振崗, 楊星, 等. 基于 ARM 的中壓 FTU 檢測(cè)平臺(tái)的設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2012, 31(16): 16-19.
[4] 王新彪, 俞建定, 王青. 基于 ARM 的無(wú)刷直流電機(jī)控制系統(tǒng)的設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2015, 34(16): 1-3.
[5] 冀石磊,夏繼強(qiáng),陶震宇,等.基于GPRS及CAN總線的遠(yuǎn)程電機(jī)群控制[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015,15(1):27-30.
[6] 張興, 吳愛(ài)國(guó), 劉玉明,等. 基于以太網(wǎng)的無(wú)位置無(wú)刷直流電機(jī)系統(tǒng)設(shè)計(jì)[J]. 儀表技術(shù)與傳感器, 2015 (4): 69-72.
[7] 孫緒才. L298N在直流電機(jī) PWM 調(diào)速系統(tǒng)中的應(yīng)用[J]. 濰坊學(xué)院學(xué)報(bào), 2009, 9(4): 19-21.
[8] 陳立兵,樊瑜瑾,代杰,等.基于AVR單片機(jī)的光電編碼器定長(zhǎng)系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2012,40(13): 110-113.
[9] 靖朋, 王和明, 張景偉. 導(dǎo)彈角速度編碼器組合測(cè)試系統(tǒng)信號(hào)源設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2013, 39(2): 36-38.
[10] 劉業(yè)顏, 鄭文. 基于WINSOCK 的遠(yuǎn)程信號(hào)采集與分析系統(tǒng)[J]. 機(jī)電工程技術(shù), 2010,39(1): 28-29.
2017-04-18)
任康磊(1993-),通信作者,男,碩士研究生,主要研究方向:網(wǎng)絡(luò)化控制、物聯(lián)網(wǎng)、嵌入式。E-mail:15651632713@163.com。
張夢(mèng)薇(1993-),女,本科生,主要研究方向:電氣自動(dòng)化。
Design of networked DC motor speed control experiment platform based on C/S framework
Ren Kanglei, Zhang Mengwei
(College of Automation, Nanjing University of Posts and Telecommunications, Nanjing 210023, China)
A networked DC motor speed control experiment platform is designed in this paper based on C/S framework. The RTL8019AS network controller is utilized to realize high speed communication between the client and the networked control nodes. Networked control nodes control the speed of the DC motors by PWM, and the speed of the DC motors is measured by E6B2 rotary encoder. The design of software and hardware in networked control nodes is stated detailedly. The experiment platform designed in this paper is characterized by simple structure, high control precision and high open degree.
C/S framework; networked speed regulation; RTL8019AS; TCP/IP; rotary encoder
TP39;TP274
A
10.19358/j.issn.1674- 7720.2017.22.031
任康磊,張夢(mèng)微.基于C/S結(jié)構(gòu)的直流電機(jī)網(wǎng)絡(luò)化調(diào)速實(shí)驗(yàn)平臺(tái)設(shè)計(jì)J.微型機(jī)與應(yīng)用,2017,36(22):115-117,120.
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2017年22期