馮志剛,邱 猛,田 豐
(沈陽(yáng)航空航天大學(xué) 自動(dòng)化學(xué)院,沈陽(yáng) 110136)
?
基于DSP和MCU的自確認(rèn)氣動(dòng)執(zhí)行器CAN總線通信系統(tǒng)
馮志剛,邱 猛,田 豐
(沈陽(yáng)航空航天大學(xué) 自動(dòng)化學(xué)院,沈陽(yáng) 110136)
為了解決工業(yè)控制中自確認(rèn)執(zhí)行器的數(shù)據(jù)采集與傳輸問(wèn)題,同時(shí)滿足工業(yè)執(zhí)行器控制中的高速率和高可靠性,提出了一種基于TMS320F28335和C8051F060片內(nèi)集成CAN模塊構(gòu)成的CAN總線通信系統(tǒng)。對(duì)CAN總線的優(yōu)點(diǎn)、工業(yè)應(yīng)用情況、基本結(jié)構(gòu)、硬件設(shè)計(jì)、軟件設(shè)計(jì)和CAN總線的位時(shí)間配置等方面做了詳細(xì)論述,搭建了基于自確認(rèn)執(zhí)行器硬件平臺(tái)的CAN總線通訊系統(tǒng)并進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)可以滿足自確認(rèn)氣動(dòng)執(zhí)行器CAN節(jié)點(diǎn)的數(shù)據(jù)采集、傳輸和控制功能。
自確認(rèn)氣動(dòng)執(zhí)行器;CAN總線;TMS320F28335;C8051F060;分布式控制
執(zhí)行器作為接收控制信息并對(duì)被控對(duì)象進(jìn)行控制的裝置,經(jīng)常在惡劣環(huán)境中工作,比如高寒、高熱、高堿、高粉塵、強(qiáng)腐蝕等等,因而很容易出現(xiàn)故障,對(duì)執(zhí)行器的故障診斷就顯得很迫切,因此自確認(rèn)執(zhí)行器的概念被提了出來(lái)[1]。執(zhí)行器自確認(rèn)功能的實(shí)現(xiàn)要求數(shù)據(jù)采集及傳輸具有高可靠性,這就對(duì)工業(yè)現(xiàn)場(chǎng)總線的抗干擾能力提出了較高的要求,另外對(duì)執(zhí)行器的自確認(rèn)算法實(shí)現(xiàn)同樣需要較高的數(shù)據(jù)采樣率和傳輸速率,這就要求現(xiàn)場(chǎng)總線具有較快的傳輸速率。
控制器局域網(wǎng)(Controller Area Network,CAN)[2]是由德國(guó)Bosch公司為汽車應(yīng)用而開(kāi)發(fā)的多主機(jī)局部網(wǎng)絡(luò),主要在汽車上為眾多的電子設(shè)備通信服務(wù)[3]。CAN總線的使用可以減少汽車上眾多的其他信號(hào)線[4],將其統(tǒng)一化。CAN總線可以跨接相當(dāng)多的外圍器件,具有抗干擾能力強(qiáng)、傳輸速率高、傳輸距離長(zhǎng)的特點(diǎn)。作為國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,CAN總線越來(lái)越多地應(yīng)用到工業(yè)生產(chǎn)和汽車工業(yè)等分布式控制系統(tǒng)中,其具有的高抗干擾能力、高速數(shù)據(jù)傳輸能力和低成本特性完全可以作為執(zhí)行器的數(shù)據(jù)采集控制總線。
本文所采用的是集成了全功能CAN模塊的TMS320F28335高性能浮點(diǎn)DSP和C8051F060混合信號(hào)處理器。C8051F060負(fù)責(zé)節(jié)點(diǎn)的數(shù)據(jù)采集、數(shù)據(jù)傳輸分發(fā)和自確認(rèn)控制等,TMS320F28335負(fù)責(zé)接收數(shù)據(jù)完成自確認(rèn)算法,上傳自確認(rèn)算法結(jié)果等。
作為國(guó)際標(biāo)準(zhǔn)的唯一一種工業(yè)總線,CAN總線在國(guó)際上應(yīng)用十分廣泛。本文使用的C8051F060和TMS320F28335都是集成了CAN控制器模塊的芯片。
C8051F060單片機(jī)集成了Bosch CAN控制器[5],利用CAN協(xié)議進(jìn)行串行通信。此控制器符合Bosch規(guī)范2.0A(基本CAN)和2.0B(全功能CAN),可以很方便地在CAN網(wǎng)絡(luò)上通信。其CAN模塊的功能結(jié)構(gòu)框圖如圖1所示。
CAN控制器中的CAN控制寄存器(CAN0CN)、CAN測(cè)試寄存器(CAN0TST)和CAN狀態(tài)寄存器(CAN0STA)可以被C8051F060單片機(jī)的特殊功能寄存器直接或間接地訪問(wèn)。而CAN模塊的其他寄存器必須通過(guò)CAN0ADR、CAN0DATH和CAN0DATL用間接索引法訪問(wèn)。
圖1 CAN控制器結(jié)構(gòu)圖
DSP28335中集成的控制器局域網(wǎng)支持CAN2.0B全功能CAN,如圖2所示,并且DSP28335有兩個(gè)全功能的CAN模塊,eCAN-A和eCAN-B,每個(gè)模塊都具有32個(gè)完全可配置的郵箱和時(shí)間戳,為DSP28335提供了一個(gè)靈活強(qiáng)大的串行通信接口。
圖2 F28335增強(qiáng)型CAN控制器結(jié)構(gòu)圖及接口電路
CAN傳輸所使用的物理介質(zhì)主要是雙絞線,在使用了光端機(jī)等轉(zhuǎn)換設(shè)備后,CAN總線還可以通過(guò)光纖傳輸。CAN在物理層采用差分電平傳輸,一共使用兩條信號(hào)線,CAN_H和CAN_L,靜態(tài)時(shí)兩條信號(hào)線的電壓差為0,而其對(duì)地的電壓均為2.5V。此時(shí)表示邏輯1(隱性電平);用CAN_H比CAN_L高表示邏輯0(顯性電平),此時(shí)通常CAN_H為3.5V,CAN_L為1.5V。
除了CAN控制器之外,在CAN控制器和物理總線之間,還必須有CAN收發(fā)器,將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,信號(hào)將會(huì)在總線電纜上以差分電平的形式傳輸數(shù)據(jù)。由于DSP28335標(biāo)配使用TI的SN65HVD230作為CAN節(jié)點(diǎn)收發(fā)器,所以F060也使用SN65HVD230作為CAN節(jié)點(diǎn)收發(fā)器。在總線兩端分別需要接上120Ω的匹配電阻。SN65HVD230總線驅(qū)動(dòng)器的輸出電平如圖3所示。
處理器(C8051F060和TMS320F28335)和CAN總線收發(fā)器的連接原理圖如圖4所示。其中MCU_CANRXB為處理器CAN模塊的接收引腳,MCU_CANTXB為其發(fā)送引腳。
圖3 SN65HVD230總線驅(qū)動(dòng)器電壓輸出定義
圖4 SN65HVD230和處理器的接口電路
本文使用的CAN總線是應(yīng)用在自確認(rèn)氣動(dòng)執(zhí)行器硬件系統(tǒng)的通信上,最大限度滿足通用性和算法驗(yàn)證的目的。氣動(dòng)執(zhí)行器硬件系統(tǒng)電路上集成了豐富的外圍通信端口,通過(guò)不同的配置以達(dá)到不同的應(yīng)用目的。比如配置成為數(shù)據(jù)采集節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)或是同上位機(jī)的接口節(jié)點(diǎn)等等。氣動(dòng)執(zhí)行器硬件系統(tǒng)結(jié)構(gòu)框圖如圖5所示。
本文對(duì)自確認(rèn)執(zhí)行器硬件系統(tǒng)做不同配置后,其CAN總線通信連接拓?fù)鋱D如圖6所示。其中CAN通信系統(tǒng)主節(jié)點(diǎn)由單片機(jī)C8051F060和USB接口芯片CH376S[6](工作于USB設(shè)備模式)組成,主要實(shí)現(xiàn)上位機(jī)監(jiān)控軟件的實(shí)時(shí)控制和CAN數(shù)據(jù)采集節(jié)點(diǎn)的結(jié)果實(shí)時(shí)上傳到上位機(jī)監(jiān)控軟件;CAN總線通信系統(tǒng)的數(shù)據(jù)采集處理節(jié)點(diǎn)由C8051F060和TMS320F28335雙處理器芯片組成,主要承擔(dān)氣動(dòng)執(zhí)行器的數(shù)據(jù)采集、實(shí)時(shí)算法處理及氣動(dòng)執(zhí)行器狀態(tài)的實(shí)時(shí)上傳。
CAN總線主節(jié)點(diǎn)主要承擔(dān)上位機(jī)和下位機(jī)數(shù)據(jù)幀的轉(zhuǎn)發(fā),CAN從節(jié)點(diǎn)主要承擔(dān)數(shù)據(jù)采集處理和運(yùn)算。一個(gè)工作流程大致是這樣的(以CAN總線主節(jié)點(diǎn)和氣動(dòng)執(zhí)行器自確認(rèn)硬件單元1為例):硬件單元1的C8051F060采集氣動(dòng)執(zhí)行器的內(nèi)部測(cè)點(diǎn)數(shù)據(jù),主要包括:閥前閥后壓強(qiáng)、溫度、流量、控制輸出和桿的位移量6種數(shù)據(jù)。然后將數(shù)據(jù)存入雙端口RAM中,TMS320F28335從雙端口RAM中讀取數(shù)據(jù)做自確認(rèn)算法,結(jié)果得出后通過(guò)CAN總線上傳到CAN主節(jié)點(diǎn)。一個(gè)從自確認(rèn)節(jié)點(diǎn)的CAN總線地址這樣劃分:同一個(gè)節(jié)點(diǎn)的DSP的CAN地址總是比MCU的CAN地址小1。同一節(jié)點(diǎn)的MCU除了采集氣動(dòng)執(zhí)行器的模擬量數(shù)據(jù)數(shù)字化存入雙端口RAM之外,還需要將數(shù)字化的原始數(shù)據(jù)上傳到主節(jié)點(diǎn),以便上位機(jī)顯示原始數(shù)據(jù)的曲線(上位機(jī)接收數(shù)據(jù)的頻率比實(shí)際的采樣頻率低)。
2.1 CAN總線通信幀格式介紹
CAN通信協(xié)議2.0A一共規(guī)定了4種不同的幀格式:數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀和超載幀。CAN2.0B在CAN2.0A的基礎(chǔ)之上,將標(biāo)示符從11位擴(kuò)展到29位,其標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀格式如圖7所示。本設(shè)計(jì)只使用CAN2.0B的29位標(biāo)示符的擴(kuò)展數(shù)據(jù)幀。
圖5 自確認(rèn)氣動(dòng)執(zhí)行器雙處理器硬件系統(tǒng)結(jié)構(gòu)框圖
圖6 自確認(rèn)氣動(dòng)執(zhí)行器CAN總線通信系統(tǒng)結(jié)構(gòu)框圖
2.2 CAN總線通信基本規(guī)則介紹
在CAN總線通信系統(tǒng)中,每個(gè)節(jié)點(diǎn)之間的位速率和其通信距離有密切的關(guān)系,依照通信距離來(lái)配置位速率。CAN總線的有效長(zhǎng)度和傳輸速率成反比關(guān)系。CAN總線傳輸速率為1 Mbps時(shí),距離不超過(guò)40 m,降低速率可以相應(yīng)延長(zhǎng)總線傳輸距離。當(dāng)CAN總線傳輸率小于50 Kbps時(shí),中繼總線長(zhǎng)度可以延長(zhǎng)到1km以上。
圖7 CAN總線標(biāo)準(zhǔn)數(shù)據(jù)幀和擴(kuò)展數(shù)據(jù)幀結(jié)構(gòu)圖
由于本設(shè)計(jì)主要是測(cè)試系統(tǒng)的功能性且距離很近,所以將對(duì)CAN總線系統(tǒng)做最高速1Mbps的配置設(shè)置。
2.3 CAN總線的位速率和位時(shí)序介紹及針對(duì)本設(shè)計(jì)位時(shí)序配置方法
CAN總線通信系統(tǒng)一般會(huì)在同一條總線上,所以就要求跨接在總線上的每個(gè)節(jié)點(diǎn)的波特率設(shè)置和波特率必須是一樣的。但是節(jié)點(diǎn)的芯片各種各樣,晶振也存在著誤差,會(huì)導(dǎo)致CAN的波特率沒(méi)有理想配置情況下的那么精確,這就要求CAN 具有一定的容錯(cuò)能力。一般情況下很小的波特率誤差不會(huì)導(dǎo)致CAN總線系統(tǒng)的崩潰。但進(jìn)行精確的CAN總線通信,必須正確的配置CAN的波特率,以保證各個(gè)節(jié)點(diǎn)可以正常且無(wú)誤的工作。
CAN支持的波特率的變化范圍很廣,可適應(yīng)不同的控制系統(tǒng)和不同傳輸距離的總線通信,最低1 Kbit/s到最高1 Mbit/s。一般情況下,每個(gè)CAN網(wǎng)絡(luò)的節(jié)點(diǎn)都有自己的晶振,通常是石英晶體振蕩器。由于石英晶體振蕩器的頻率不是絕對(duì)準(zhǔn)確的,隨著溫度或外界環(huán)境的變化都會(huì)導(dǎo)致其頻率發(fā)生變化,所以CAN通信系統(tǒng)可以支持小的誤差。只要這個(gè)誤差滿足CAN總線的最低要求,那就不會(huì)導(dǎo)致故障的發(fā)生,但配置CAN的位時(shí)間時(shí)必須考慮各個(gè)時(shí)段的值是否滿足CAN規(guī)范所定義的誤差公式。根據(jù)CAN協(xié)議的規(guī)定,一個(gè)位時(shí)間被劃分為4個(gè)不同的時(shí)間段[7](如圖8所示),即同步時(shí)段(Synchronisation Segment)、傳播時(shí)段(Propagation Time Segment)、相位緩沖時(shí)段1(Phase Buffer Segment 1)和相位緩沖時(shí)段2(Phase Buffer Segment 2)。
圖8 CAN總線位時(shí)序結(jié)構(gòu)框圖
每個(gè)時(shí)段都有多個(gè)特定的寄存器為決定其個(gè)數(shù)的量子的時(shí)間[8](如表1)。量子時(shí)間tq(time quantum)是一個(gè)位時(shí)間的基本單元,其由時(shí)鐘頻率(system clock)和波特率預(yù)分頻器(Baud Rate Prescaler)共同決定:即tp=BRT/fsys。其中,fsys是CAN的系統(tǒng)時(shí)鐘頻率;如果是MCU集成的CAN模塊,其等于MCU輸入CAN_CLK引腳的時(shí)鐘頻率,如果是獨(dú)立CAN芯片,那就是片上或片外時(shí)鐘頻率(或CAN_CLK引腳的輸入時(shí)鐘頻率)。位定時(shí)寄存器各個(gè)位段的含義如表1所示。
根據(jù)公式組(1)求出位定時(shí)器各個(gè)參數(shù)[9](TSEG1,TESG2,SJWP,BRP)的值:
Phase_Seg1+Phase_Seg2=位時(shí)間-(Sync_Seg+Prog_Seg)
SJW=min(4,Phase_seg1)
BRPE=BRP-1
SJWP=SJW-1
(1)
TSEG1=Phase_Seg1+Prog_Seg-1
TSEG2=Phase_Seg2-1
如果Phase_Seg1+Phase_Seg2為偶數(shù),則Phase_Seg1=Phase_Seg2,否則Phase_Seg2=Phase_Seg1+1,Phase_Seg2至少應(yīng)為2tq量子時(shí)間。
通常,位時(shí)序配置的計(jì)算是想獲得期望的位率或位時(shí),而最終的位時(shí)必須是系統(tǒng)時(shí)鐘周期的整數(shù)倍,位時(shí)可能有4~25個(gè)tq時(shí)間。
表1 CAN總線位時(shí)間參數(shù)
系統(tǒng)時(shí)鐘的容差即(1-df)·fnom≤fosc≤(1+df)·fnom所決定的df,其中fosc是系統(tǒng)實(shí)際的晶振頻率,而fnom是標(biāo)稱的晶振頻率。其中df是由同步緩沖時(shí)段1(Phase_Seg1)、同步緩沖時(shí)段2(Phase_Seg2)、同步跳轉(zhuǎn)寬度(SJW)和位時(shí)間(bit time)的比率所決定的[10],滿足公式2。例如當(dāng)Prog_Seg=1和Phase_Seg1=Phase_Seg2=SJW=4,允許的最大的晶振容差為1.58%。這個(gè)比率中傳輸時(shí)間只占位時(shí)間的10%,所以不適合短的位時(shí)間,在一個(gè)40米長(zhǎng)的CAN總線上此傳輸時(shí)間最高支持的位速率為125kBit/s(位時(shí)間為8us)。
(2)
不同時(shí)鐘系統(tǒng)的CAN節(jié)點(diǎn)需要不同的配置以達(dá)到相同的位速率。CAN系統(tǒng)中的傳輸時(shí)間的配置是根據(jù)節(jié)點(diǎn)中最長(zhǎng)的延時(shí)時(shí)間一次配置完成決定的,時(shí)鐘容差范圍由最小的節(jié)點(diǎn)的容差決定。計(jì)算表明CAN總線長(zhǎng)度位速率需要減小或晶振的時(shí)鐘穩(wěn)定性需要提高,可以找到一個(gè)滿足協(xié)議配置的CAN總線的位時(shí)間。
C8051F060芯片CAN模塊位定時(shí)器配置要滿足的基本要求[12],如表2所示。
表2 C8051F060的CAN模塊基本配置要求
由于傳輸距離比較短,我們擬采用1 Mbit/s,由此計(jì)算的位時(shí)間理想值為1 000 ns,因此選擇一個(gè)位時(shí)間為22 tq時(shí)間,位時(shí)間約為994.642 ns,此時(shí)的位速率實(shí)際值為1.005 39 Mbit/s??偟膫鬏斞訒r(shí)為200 ns,因此取Prog_Seg必須大于200 ns,取5個(gè)tq時(shí)間(226.055 ns),剩余的時(shí)間分配給Phase_Seg1和Phase_Seg2,即16個(gè)tq時(shí)間,所以Phase_Seg1和Phase_Seg2都等于8個(gè)tq時(shí)間。
寫(xiě)入位定時(shí)寄存器的數(shù)值如公式3所示。BRP擴(kuò)展寄存器(CAN時(shí)鐘分頻寄存器)其值不用修改,即保持其復(fù)位值0x0000。
BRPE=BRP-1=BRP擴(kuò)展寄存器=0x0000
SJWp=SJW-1=min(4,8)-1=3
TSEG1=(Prog_Seg+Phase_Seg1-1)=5+8-1=12
TSEG2=(Prog_Seg2-1)=7
位定時(shí)寄存器=TSEG2*0x1000+TSEG1*0x0100+SJWp*0x0040+BRPE=0x7CC0
(3)
最后寫(xiě)入C8051F060的CAN模塊位定時(shí)寄存器的值為0x7CC0。
下面用相似的方法配置F28335中CAN模塊的位定時(shí)寄存器[11]。F28335的CAN模塊的時(shí)鐘為F28335系統(tǒng)時(shí)鐘的二分頻,這點(diǎn)要特別注意。F28335系統(tǒng)時(shí)鐘為150 MHz時(shí),CAN模塊的時(shí)鐘為75 MHz,和C8051F060一樣采用1 Mbit/s,BRP=4。其配置如表3所示。
表3 F28335的CAN模塊配置基本要求
F28335的CAN模塊位時(shí)序的計(jì)算公式如式(4)所示,其中TQ表示F28335的量子時(shí)間,以示和F060的區(qū)別。BRPreg=4,此時(shí)TQ=66.667ns。確定一個(gè)位時(shí)間為15個(gè)TQ時(shí)間。最終確定一個(gè)位時(shí)間為1ms。由公式(4)便可以求出位定時(shí)器的寫(xiě)入值。
(4)
進(jìn)一步確定位定時(shí)器寄存器寫(xiě)入值,TSEG1reg=8,TSEG2reg=4。寫(xiě)入CANBTC(32位)寄存器的值為:0x00040344(SAM位為0,即每個(gè)位采用一次)。
F060的CAN模塊通過(guò)2個(gè)緩沖寄存器組IF1和IF2同32個(gè)消息隊(duì)列RAM進(jìn)行數(shù)據(jù)的存入和讀取[12]。可以將32個(gè)消息隊(duì)列中的任何一個(gè)定義為讀取或發(fā)送RAM,IF1和IF2相當(dāng)于架設(shè)在F060和CAN消息RAM之前的橋梁一樣。在處理IFx和消息RAM之間的數(shù)據(jù)流時(shí),CAN模塊提供了一個(gè)消息處理的狀態(tài)機(jī),它將自動(dòng)在移位寄存器、消息RAM隊(duì)列和IFx消息緩沖寄存器組之間進(jìn)行消息的傳送。因此在設(shè)計(jì)CAN通信的軟件時(shí),只需對(duì)IFx消息隊(duì)列緩沖寄存器組進(jìn)行處理即可完成對(duì)CAN消息RAM的初始化處理。F060的CAN模塊的初始化,接收中斷流程圖如圖9所示。
在初始化2個(gè)CAN消息隊(duì)列時(shí),我們把IF1用于初始化發(fā)送消息隊(duì)列或發(fā)送消息時(shí)使用,IF2用于初始化接受消息隊(duì)列或用于接受消息時(shí)使用。在初始化發(fā)送和接收消息隊(duì)列之前,必須對(duì)所有的消息進(jìn)行清空,然后通過(guò)Ifx命令掩碼寄存器設(shè)置幀格式。在設(shè)置命令掩碼寄存器時(shí),不論是發(fā)送消息初始化還是接收消息初始化,WR/RD=1,發(fā)送消息對(duì)象和接收消息對(duì)象只在于ClrIntPnd的選擇是否為零,緊接著初始化仲裁寄存器。仲裁寄存器包括是否擴(kuò)展幀,發(fā)送還是接收,以及消息對(duì)象號(hào)等進(jìn)行初始化,發(fā)送和接收區(qū)別在于Dir,當(dāng)Dir=1表示此消息對(duì)象用來(lái)發(fā)送數(shù)據(jù),當(dāng)Dir=0表示此消息對(duì)象用來(lái)接收數(shù)據(jù)。
圖9 F060的CAN模塊初始化配置和發(fā)送接收流程圖
通過(guò)消息對(duì)象進(jìn)行發(fā)送和接收數(shù)據(jù)時(shí),通過(guò)IFx寫(xiě)入到命令掩碼寄存器,其中最主要的差別是WR/RD不一樣。WR/RD=1表示將緩沖寄存器組的數(shù)據(jù)寫(xiě)入已初始化后的消息對(duì)象,WR/RD=0表示將消息對(duì)象的數(shù)據(jù)讀到緩沖寄存器組,此時(shí)標(biāo)示符選中位一律為0,表示只進(jìn)行CAN總線傳輸?shù)臄?shù)據(jù)交換(因?yàn)槌跏蓟谇耙徊揭淹瓿?。
F28335的初始化接收發(fā)送程序和F060類似。
CAN總線的實(shí)驗(yàn)連接如圖10所示。
實(shí)驗(yàn)測(cè)試CAN總線通信時(shí),氣動(dòng)執(zhí)行器仿真數(shù)據(jù)預(yù)先存入到從節(jié)點(diǎn)C8051F060(CAN總線數(shù)據(jù)采集節(jié)點(diǎn),下同)的FLASH中。實(shí)驗(yàn)開(kāi)始時(shí),從節(jié)點(diǎn)F060將數(shù)據(jù)存入雙端口RAM中,同時(shí)也將原始數(shù)據(jù)通過(guò)CAN總線向主節(jié)點(diǎn)F060傳送。本節(jié)點(diǎn)F28335通過(guò)查詢雙端口RAM的信號(hào)量標(biāo)志獲知是否數(shù)據(jù)已經(jīng)存取,然后取數(shù)據(jù)做自確認(rèn)算法處理,將結(jié)果通過(guò)CAN總線發(fā)送到主節(jié)點(diǎn)F060,主節(jié)點(diǎn)F060將收到的原始數(shù)據(jù)以及從節(jié)點(diǎn)F28335的自確認(rèn)運(yùn)算結(jié)果數(shù)據(jù)全部通過(guò)CH376S總線跨接芯片傳送到上位機(jī)監(jiān)控軟件[13]。
圖10 自確認(rèn)氣動(dòng)執(zhí)行器CAN總線通信系統(tǒng)
上位機(jī)用Visual C++6.0集成開(kāi)發(fā)環(huán)境編寫(xiě),由于CH376芯片提供了設(shè)備模式的windows下的驅(qū)動(dòng)[14]。在編寫(xiě)上位機(jī)時(shí),只需安裝CH375驅(qū)動(dòng)(CH376設(shè)備模式下的驅(qū)動(dòng),CH376設(shè)備模式完全兼容CH372[15]和主機(jī)模式基本兼容CH375),同時(shí)將CH375DLL.H和CH375DLL.LIB復(fù)制到所在上位機(jī)監(jiān)控軟件工程所在文件夾中,鏈接到CH375鏈接庫(kù),即可編寫(xiě)上位機(jī)監(jiān)控軟件。
CAN總線具有成本低、速率快、可靠性高等優(yōu)點(diǎn),具有統(tǒng)一的國(guó)際標(biāo)準(zhǔn),開(kāi)發(fā)相對(duì)容易。本文將其作為自確認(rèn)氣動(dòng)執(zhí)行器硬件系統(tǒng)的標(biāo)準(zhǔn)總線,設(shè)計(jì)了硬件電路,編寫(xiě)了相應(yīng)的軟件,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證。結(jié)果表明,將CAN總線應(yīng)用到自確認(rèn)氣動(dòng)執(zhí)行器系統(tǒng),可以大大提高數(shù)據(jù)的傳輸速率和可靠性,為自確認(rèn)氣動(dòng)執(zhí)行器的工業(yè)應(yīng)用提供了基礎(chǔ)和保障。實(shí)驗(yàn)的上位機(jī)顯控界面如圖11所示,氣動(dòng)執(zhí)行器自確認(rèn)硬件單元將閥前閥后壓強(qiáng)、溫度、流量、控制輸出和桿的位移量共6種采集數(shù)據(jù)和DSP自確認(rèn)的結(jié)果實(shí)時(shí)上傳到CAN的主節(jié)點(diǎn),并通過(guò)上位機(jī)顯示。
圖11 自確認(rèn)執(zhí)行器顯控界面
本文中實(shí)驗(yàn)驗(yàn)證時(shí)的自確認(rèn)氣動(dòng)執(zhí)行器采集處理節(jié)點(diǎn)僅有一個(gè),很少涉及CAN總線節(jié)點(diǎn)的優(yōu)先級(jí)、統(tǒng)籌安排、復(fù)雜的CAN總線協(xié)議等,在今后的實(shí)驗(yàn)中將進(jìn)行多節(jié)點(diǎn)的CAN總線數(shù)據(jù)通信測(cè)試,以驗(yàn)證探索自確認(rèn)氣動(dòng)執(zhí)行器多節(jié)點(diǎn)的CAN總線數(shù)據(jù)通信。
[1]FENG Zhigang,QIU Meng. Design and implementation of self-validating pneumatic actuator hardware system based on DSP and MCU[J]. International Journal of Hybrid Information Technology,2014,7(6):101-114.
[2]GONG Rongsheng,ZHANG Abu,GONG Xiaofang.Distributed measurement and control system based on can bus.Control and Automation[J]. ICCA.Final Program and Book of Abstracts.The 2002 International Conference on,2002,7(19-19):208.
[3]KONG Feng,ZHANG Liyan,ZENG Jie. Automatic measurement and control system for vehicle ECU Based on CAN Bus[J]. Automation and Logistics, IEEE International Conference on,2007,8(18-21):964-968.
[4]曲鳳麗. 汽車網(wǎng)絡(luò)研究及CAN總線網(wǎng)絡(luò)拓?fù)涞膬?yōu)化[D].杭州: 浙江大學(xué), 2008:7-15.
[5]楊艷秋,曹龍漢,董秀成,等.基于單片機(jī)C8051F060的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)[J].現(xiàn)場(chǎng)總線與網(wǎng)絡(luò),2006,25(2):59-61.
[6]李萍,單葆悅,劉曉東,等.USB芯片CH376在智能儀器儀表中的應(yīng)用[J].計(jì)量與測(cè)試技術(shù),2011,38(2):9-14.
[7]LI Ran,WU Junfeng,WANG Haiying. Design method of CAN BUS network communication structure for electric vehicle[J]. Strategic Technology (IFOST),International Forum on,2010,13(15):326-329.
[8]蔣繼成.基于CAN總線數(shù)據(jù)采集節(jié)點(diǎn)的設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2009:26-29.
[9]張弘.基于CAN總線的信號(hào)采集與處理模塊研究[D].南京:南京航空航天大學(xué),2007:7-13.
[10]LI Xiaoming,LI Mingxiong. An embedded CAN-BUS communication module for measurement and control system[J]. E Product E Service and E Entertainment (ICEEE),2010,11(7-9):1-5.
[11]楊輝前,王耀南,袁小芳,等.基于TMS320F2812的CAN總線通信的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2006,27(5):28-32.
[12]胡曉拓,楊天寶,曹少華.對(duì)C8051F040的CAN控制器的分析及應(yīng)用[J].單片機(jī)開(kāi)發(fā)與應(yīng)用,2007,11(2):105-107.
[13]傅志輝.USB開(kāi)發(fā)手冊(cè)[M].北京:中國(guó)鐵道出版社,2014:259-262.
[14]胡軍輝,王友釗.Windows CE設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[J].計(jì)算機(jī)工程,2006,32(16):41-43.
[15]楊應(yīng)平,石城,李振華,等.基于CH372接口芯片的USB高速數(shù)據(jù)采集系統(tǒng)[J].武漢理工大學(xué)學(xué)報(bào),2006,28(8):9-11.
(責(zé)任編輯:劉劃 英文審校:劉敬鈺)
CAN BUS communication system of self-validating pneumatic actuator based on DSP and MCU
FENG Zhi-gang,QIU Meng,TIAN Feng
(College of Automation,Shenyang Aerospace University,Shenyang 110136,China)
In order to solve the data collection and transmission problem of self-validating pneumatic actuator in industrial control while meeting the high-speed and high reliability requirements,a CAN-bus communication system based on CAN-module integrated in TMS320F28335 and C8051F060 is presented.First of all,the CAN bus advantages,industrial applications,basic structures,hardware design,software design and the configurations of CAN-bit timing are expounded in detail.Then,a CAN communication system is established based on self-validating pneumatic actuator hardware platform.The experimental results indicate that the system can meet the data collecting,transmitting and controlling functions of the self-validating pneumatic actuator CAN nodes.
self-validating (SEVA) pneumatic actuator;CAN bus;TMS320F28335;C8051F060;distributed control
2015-01-19
國(guó)家自然科學(xué)基金青年基金項(xiàng)目資助(項(xiàng)目編號(hào):61104023)
馮志剛(1980-),男,河北石家莊人,副教授,博士,主要研究方向:自確認(rèn)傳感器/執(zhí)行器,E-mail:fzg1023@yeah.net。
2095-1248(2015)04-0057-10
TP336
A
10.3969/j.issn.2095-1248.2015.04.010