圖3 中斷程序流程圖 (3) 基于PIC18F258微控制器的郵箱動態(tài)分配的實現(xiàn)
郵箱動態(tài)分配的任務(wù)是在不固定某個郵箱具體特性的同時,實現(xiàn)對郵箱中報文作用的判斷。通過郵箱的動態(tài)分配,可以節(jié)約系統(tǒng)資源,提高軟件靈活性,便于今后系統(tǒng)擴(kuò)展。
在系統(tǒng)初始化過程中,實現(xiàn)了郵箱的動態(tài)分配,具體方法是:PIC18F258微控制器具有2個接收緩沖器和6個接收濾波器,其中:接收緩沖器0對應(yīng)于接收濾波器0和1;接收緩沖器1對應(yīng)于接收濾波器2、3、4和5。通過定義常數(shù)標(biāo)志數(shù)組_uCANRxHndls[i](0≤i≤5),依次將要接收的報文COBID定義到接收濾波器中。當(dāng)產(chǎn)生CAN總線接收中斷時,根據(jù)中斷標(biāo)志寄存器PIR3的Bit0(RXB0IF,接收緩沖器0中斷標(biāo)志位)和Bit1(RXB1IF,接收緩沖器1中斷標(biāo)志位)來判斷產(chǎn)生中斷的接收緩沖器。
當(dāng)接收緩沖器0中斷時,則有:
_uCAN_ret=*(_uCANRxHndls+(RXB0CON & 0x01))(1)
其中:uCAN_ret為標(biāo)識某報文接收中斷的數(shù)組常數(shù)標(biāo)志;接收緩沖器0控制寄存器(RXB0CON)的Bit0為接收濾波器0、1的選擇位。
當(dāng)接收緩沖器1中斷時,則有:
_uCAN_ret=*(_uCANRxHndls+(RXB1CON & 0x07))(2)
其中:接收緩沖器1控制寄存器(RXB1CON)的Bit2~Bit0為接收濾波器2、3、4和5的選擇位。
通過式(1)和式(2)可得代表某種報文中斷的數(shù)組常數(shù)標(biāo)志,實現(xiàn)對接收報文類型的判斷,完成郵箱動態(tài)分配和相應(yīng)報文處理。
4 實驗驗證
為方便實驗室監(jiān)測,直觀地觀察伺服電機(jī)模塊的工作狀態(tài),判斷D/A轉(zhuǎn)化的線性特征,使用LabView軟件設(shè)計了PC監(jiān)控面板[5],如圖4所示。
圖4 伺服電機(jī)模塊測試面板
圖4中的amplitude和phase分別用于設(shè)置發(fā)送正弦波的幅度和相位,正弦波數(shù)據(jù)以占用兩字節(jié)的形式發(fā)送,結(jié)合繼電器1和2占用的一個字節(jié)組成3字節(jié)的TPDO報文。光耦1、2表示從RPDO報文接收到的數(shù)據(jù)狀態(tài),在此監(jiān)控面板的基礎(chǔ)上,使系統(tǒng)的調(diào)試更加方便。
在示波器上觀察到的D/A輸出波形如圖5所示,因為D/A輸出為瞬間波形,所以在示波器上看到的波形光線只有一部分。此外,由于LabView軟件的限制,最高輸出數(shù)據(jù)周期只能達(dá)到1 ms。 因此, 在示波器上看到的波形有折線存在, 每個轉(zhuǎn)折點(diǎn)代表一個輸出點(diǎn),通過設(shè)置相位值來決定轉(zhuǎn)折點(diǎn)的個數(shù),即輸出多少個數(shù)據(jù)來表示一個波形。例如圖5中的相位為18,則會輸出36個點(diǎn)來表示一個周期波形。
圖5 示波器觀察波形
將此D/A輸出至伺服控制器即可實現(xiàn)對伺服電機(jī)的控制,這一點(diǎn)已在現(xiàn)場試驗中得到驗證。
5 結(jié)論
通過對并條機(jī)自調(diào)勻整系統(tǒng)的其他控制節(jié)點(diǎn)采用相同的方法進(jìn)行CANopen協(xié)議開發(fā),實現(xiàn)了網(wǎng)絡(luò)化的控制系統(tǒng)。除了伺服電機(jī)外一個完整的控制系統(tǒng)還應(yīng)有:主控模塊如(DSP或單片機(jī))、PLC模塊和鍵盤顯示模塊等。和伺服電機(jī)模塊一樣,可將每個控制模塊都作為一個節(jié)點(diǎn)進(jìn)行開發(fā)。每個節(jié)點(diǎn)都有各自的節(jié)點(diǎn)ID,所接收和發(fā)射的數(shù)據(jù)在總線上進(jìn)行交流,通過改變伺服電機(jī)控制的低速羅拉轉(zhuǎn)速來調(diào)節(jié)牽伸倍數(shù),從而達(dá)到自調(diào)勻整的目的。
自動控制系統(tǒng)的網(wǎng)絡(luò)化、標(biāo)準(zhǔn)化是現(xiàn)代工業(yè)發(fā)展的一個必然趨勢,將CAN總線應(yīng)用層協(xié)議CANopen應(yīng)用于該領(lǐng)域有著廣闊的應(yīng)用前景。本文通過將伺服電機(jī)控制模塊做成符合CANopen協(xié)議的標(biāo)準(zhǔn)化裝置,并應(yīng)用于并條機(jī)自調(diào)勻整系統(tǒng)中,使其具有了即插即用和在線監(jiān)控特性,增強(qiáng)了設(shè)備的可擴(kuò)展性,提高了數(shù)據(jù)傳輸?shù)目煽啃浴_@種基于現(xiàn)場總線應(yīng)用層標(biāo)準(zhǔn)協(xié)議的開發(fā)和使用,對提高系統(tǒng)的工作效率,特別是對復(fù)雜系統(tǒng)的研制具有一定的指導(dǎo)意義。
參考文獻(xiàn)
[1] Boterenbrood H. CANopen:highlevel protocol for CANbus. 2000.
[2] CiA, CANopen Communication Profile for Industrial Systems Based on CAL. 1996.
[3] 劉和平,劉林,于紅欣,等. PIC18FXXX單片機(jī)原理及接口程序設(shè)計. 北京:北京航空航天大學(xué)出版社,2004.
[4] CiA.CANopen Indicator Specification. 2001.
[5] 汪敏生. LABVIEW基礎(chǔ)教程. 北京:電子工業(yè)出版社,2002.
宋曉梅 副教授,主要研究方向為信號處理及計算機(jī)通信技術(shù)。
賈佳 碩士,主要研究方向為CANopen協(xié)議以及單片機(jī)的開發(fā)應(yīng)用。





