基于CAN總線嵌入式數(shù)字控制系統(tǒng)的設(shè)計(jì)
針對(duì)CAN總線技術(shù)在數(shù)據(jù)傳輸中采用短幀結(jié)構(gòu)和過濾機(jī)制,本文設(shè)計(jì)了直流電機(jī)調(diào)速控制板與CAN總線控制板的數(shù)據(jù)通信,以及CAN總線與上位機(jī)的通信等。
本文引用地址:http://www.ex-cimer.com/article/148214.htm0 引言
目前國內(nèi)生產(chǎn)的直流電機(jī)調(diào)速控制器大多都不帶通信接口,即使有帶通信接口也僅為RS232或RS485串行總線。眾所周知RS232和RS485有各自的優(yōu)缺點(diǎn),阻礙了多臺(tái)電動(dòng)機(jī)機(jī)組的進(jìn)一步網(wǎng)絡(luò)化發(fā)展和群控控制。本文分析和研究了多臺(tái)直流電機(jī)CAN總線的通信協(xié)議以及軟件數(shù)據(jù)的傳輸,對(duì)工業(yè)網(wǎng)絡(luò)控制的實(shí)現(xiàn)具有一定的指導(dǎo)意義。CAN總線控制網(wǎng)絡(luò)工作于多主方式,網(wǎng)絡(luò)中的各節(jié)點(diǎn)都可根據(jù)總線訪問優(yōu)先權(quán)(取決于報(bào)文標(biāo)識(shí)符)采用無損結(jié)構(gòu)的逐位仲裁的方式競爭向總線發(fā)送數(shù)據(jù),且CAN協(xié)議廢除了站地址編碼,采用對(duì)通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這些特點(diǎn)使得CAN總線構(gòu)成的網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信適時(shí)性強(qiáng),并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和靈活性。
1 系統(tǒng)總體設(shè)計(jì)
多臺(tái)直流電動(dòng)機(jī)CAN總線控制系統(tǒng)如圖1所示,本系統(tǒng)由直流電機(jī)、直流電機(jī)調(diào)速控制器、CAN總線通信控制板、上位機(jī)和CAN總線五部分構(gòu)成。CAN總線能完成網(wǎng)絡(luò)的建立、網(wǎng)絡(luò)信號(hào)的傳遞、總線控制以及與上位機(jī)之間的數(shù)據(jù)通信;同時(shí)還完成對(duì)直流電機(jī)電壓、電流數(shù)據(jù)的測(cè)試、傳輸以及直流電機(jī)轉(zhuǎn)矩、轉(zhuǎn)速的檢測(cè)并進(jìn)行閉環(huán)控制等。
圖1 多臺(tái)電機(jī)CAN總線控制框圖
2 數(shù)據(jù)通信設(shè)計(jì)
在直流電機(jī)調(diào)速系統(tǒng)結(jié)構(gòu)中有一個(gè)通信接口模塊,用來實(shí)現(xiàn)與CAN總線通信控制板之間的數(shù)據(jù)交換,首先用DSP實(shí)現(xiàn)AD采樣電路對(duì)速度反饋、速度給定、電流反饋等數(shù)據(jù)處理。采樣所得數(shù)據(jù)經(jīng)再發(fā)送給ARM處理器,最終ARM處理器實(shí)現(xiàn)CAN總線通信。
2.1 直流電機(jī)的CAN總線通信設(shè)計(jì)
CAN協(xié)議標(biāo)準(zhǔn)中規(guī)定了CAN總線支持的兩種傳輸介質(zhì):雙絞線和光纖。目前,絕大多數(shù)CAN總線系統(tǒng)采用的都是雙絞線傳輸。光纖一般應(yīng)用于大容量、高速率的傳輸中,對(duì)于CAN總線這種傳輸速率較低、數(shù)據(jù)量較小的現(xiàn)場(chǎng)總線通信,光纖傳輸?shù)膬?yōu)勢(shì)得不到完全發(fā)揮。所以,本文使用雙絞線作為通信介質(zhì)。
每個(gè)直流電機(jī)都是網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),其在運(yùn)行時(shí)的數(shù)據(jù)經(jīng)DSP采集后發(fā)送到CAN總線通信控制板,然后傳輸?shù)紺AN總線上,再由CAN總線適配器傳給上位機(jī),實(shí)現(xiàn)對(duì)電機(jī)的實(shí)時(shí)監(jiān)測(cè)。這樣就可以實(shí)現(xiàn)上位機(jī)對(duì)電機(jī)的實(shí)時(shí)監(jiān)控。其中CAN總線適配器實(shí)現(xiàn)上位機(jī)與CAN總線的數(shù)據(jù)交換。
CAN總線適配器由CAN的微控制器完成與上位機(jī)通信的協(xié)調(diào)工作,根據(jù)需要可對(duì)CAN適配器微控處理器中的寄存器進(jìn)行讀寫操作,實(shí)現(xiàn)初始化及數(shù)據(jù)采集。CAN總線適配器上電復(fù)位和初始化后,等待著命令和數(shù)據(jù),當(dāng)命令或數(shù)據(jù)送給CAN的寄存器并置位標(biāo)志位,即完成一次通訊,然后取出數(shù)據(jù)做進(jìn)一步處理。與CAN適配器間的通訊有查詢和中斷兩種方式。
2.2 CAN總線網(wǎng)絡(luò)通訊調(diào)試
首先要測(cè)試CAN總線適配器與上位機(jī)能否實(shí)現(xiàn)通信,從前面的介紹可以知道它們是通過串口實(shí)現(xiàn)通訊的。打開串口調(diào)試工具,由適配器向串口發(fā)送數(shù)據(jù),如果串口調(diào)試工具可以接收到數(shù)據(jù),則說明它們之間的通訊正常。接著要對(duì)兩個(gè)CAN節(jié)點(diǎn)的調(diào)試,我們采用雙絞線作為通訊介質(zhì)??偩€傳輸速度與雙絞線的長度成反比關(guān)系,所以可以根據(jù)對(duì)通訊速度的要求確定雙絞線的長度,由于是簡單通訊實(shí)驗(yàn),因而對(duì)雙絞線的長度沒有要求。設(shè)置一個(gè)節(jié)點(diǎn)為發(fā)送端,另一節(jié)點(diǎn)為接收端,取消報(bào)文濾波器,如果能夠完成發(fā)送接收任務(wù)則它們已經(jīng)能夠?qū)崿F(xiàn)簡單的通訊。
本設(shè)計(jì)設(shè)定傳輸運(yùn)行狀態(tài)與故障狀態(tài)兩種運(yùn)行參數(shù),其中運(yùn)行狀態(tài)包括直流電機(jī)的:給定速度、反饋速度、反饋電路、電樞電壓。運(yùn)行狀態(tài)是由DSP自帶的AD轉(zhuǎn)換模塊經(jīng)采樣所得。DSP的AD采樣器精度是12位的,所以經(jīng)模數(shù)轉(zhuǎn)換后的數(shù)值是一個(gè)12位的二進(jìn)制數(shù),對(duì)其前端補(bǔ)零轉(zhuǎn)換成16位數(shù)據(jù)經(jīng)串口直接發(fā)送給ARM處理器。因?yàn)閮烧叩膫鬏斁嚯x很近,所以不需要經(jīng)過電平轉(zhuǎn)換就可直接發(fā)送。而電機(jī)的故障狀態(tài)則由0、1表示,0代表沒有故障,1代表電機(jī)出現(xiàn)故障。
針對(duì)CAN總線技術(shù)在數(shù)據(jù)傳輸中采用短幀結(jié)構(gòu)和過濾機(jī)制,本文設(shè)計(jì)了直流電機(jī)調(diào)速控制板與CAN總線控制板的數(shù)據(jù)通信,以及CAN總線與上位機(jī)的通信等。
要實(shí)現(xiàn)DSP與ARM以及CAN總線的通信,需要設(shè)置一個(gè)通信控制協(xié)議,協(xié)議設(shè)定每個(gè)要傳輸?shù)膮?shù)一個(gè)控制地址。CAN總線每次可以發(fā)送8個(gè)字節(jié)數(shù)據(jù),每個(gè)字節(jié)8位,所以給定速度、反饋速度、反饋電流及電樞電壓這四組運(yùn)行參數(shù)需要占據(jù)兩個(gè)字節(jié),而故障狀態(tài)只需占據(jù)一個(gè)字節(jié)。CAN總線數(shù)據(jù)幀的第一個(gè)字節(jié)存放控制地址,第二、三個(gè)字節(jié)存放數(shù)據(jù)。其中,第二字節(jié)存高地址,第三字節(jié)存低地址。如果發(fā)送的是故障狀態(tài)則只有第二個(gè)字節(jié)是傳輸數(shù)據(jù)。CAN總線每次只發(fā)送一種運(yùn)行參數(shù),其中給定速度、反饋速度、反饋電路及電樞電壓依次輪流發(fā)送。而故障狀態(tài)在程序中設(shè)置為優(yōu)先級(jí)最高,當(dāng)有故障出現(xiàn)時(shí)則優(yōu)先發(fā)送,正常狀態(tài)下不發(fā)送。圖2是整個(gè)系統(tǒng)的數(shù)據(jù)傳輸流程圖。
圖2 數(shù)據(jù)傳輸流程圖
3 實(shí)驗(yàn)
圖3為上位機(jī)數(shù)據(jù)顯示界面,圖中顯示為調(diào)試某一時(shí)刻的傳輸數(shù)據(jù)。可以看出反饋速度與給定速度并不相等,由于PI控制算法的作用使反饋速度始終處于給定速度附近。反饋電流1.2A是在電機(jī)空載時(shí)的測(cè)量值,隨著負(fù)載的增加,反饋電流會(huì)逐漸增大。電樞電壓是直流電機(jī)母線上的電壓,由于電機(jī)在實(shí)際應(yīng)用中主要工作在220V,所以調(diào)試時(shí)首先將電樞電壓穩(wěn)定在這一電壓值,然后再對(duì)速度進(jìn)行調(diào)節(jié)。在正常情況下,故障狀態(tài)始終顯示為“無”,當(dāng)有故障信號(hào)發(fā)出時(shí),故障狀態(tài)顯示為“有”并發(fā)出報(bào)警信號(hào)。
圖3 上位機(jī)數(shù)據(jù)顯示界面
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論