基于CAN 總線的網(wǎng)絡(luò)化運(yùn)動(dòng)控制系統(tǒng)的研究
基于CAN總線運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì),主要工作在于對(duì)CAN控制器節(jié)點(diǎn)的設(shè)計(jì),包括硬件和軟件兩部分。硬件設(shè)計(jì),主要在于選擇合適的芯片和硬件電路分別設(shè)計(jì)圖1所示CAN控制器節(jié)點(diǎn)的5個(gè)基本組成部分,即主控制器、主控制器與傳感器/執(zhí)行器的接口模塊、主控制器與CAN總線控制器的接口模塊、CAN總線控制器和CAN總線收發(fā)器。軟件設(shè)計(jì),主要工作在于選擇合適的系統(tǒng)軟件和應(yīng)用開發(fā)軟件分別設(shè)計(jì)各種接口驅(qū)動(dòng)軟件、系統(tǒng)管理軟件和控制功能軟件。本文引用地址:http://www.ex-cimer.com/article/163650.htm
4系統(tǒng)硬件設(shè)計(jì)
主控制器筆者采用AT89C51單片機(jī)作為處理核心,采用PCA82C250作為CAN總線收發(fā)器,圖2給出了基于SJA1000的CAN總線系統(tǒng)電路圖。為了增強(qiáng)抗干擾能力,SJA1000的TX0和RX0引腳并沒有直接和PCA82C250的TXD,RXD相連接,而是通過高速光耦6N137后與PCA82C250相連,這樣可以實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)之間的電氣隔離,光耦6N137的兩側(cè)使用完全獨(dú)立的兩組電源VCC和+5V。
SJA1000與單片機(jī)的接口比較簡(jiǎn)單,AD0~AD7直接連接到AT89C51的P0端口,RD、WR和ALE信號(hào)也直接和AT89C51的相應(yīng)引腳進(jìn)行連接,MODE接+5V設(shè)置SJA100控制器為Interl模式。SJA1000的片選信號(hào)CS由AT89C51的P2.0決定,因此系統(tǒng)中SJA1000的尋址空間從地址0開始,可以使用此地址加上SJA1000內(nèi)部寄存器地址的偏移量來訪問SJA1000內(nèi)部RAM空間。SJA1000的中斷輸出信號(hào)INT與AT89C51的INT0引腳相連,以便AT89C51以中斷方式或查詢方式對(duì)報(bào)文收發(fā)作出響應(yīng)。
5系統(tǒng)程序設(shè)計(jì)
基于SJA1000的CAN總線建立通信的過程包括系統(tǒng)初始化、接收和發(fā)送。
5.1SJA1000的初始化程序
AT89C51在上電后首先運(yùn)行其自身的復(fù)位程序,并在此后調(diào)用SJA1000的配置程序。配置程序在設(shè)置SJA1000的寄存器前,必須通過讀復(fù)位模式/請(qǐng)求標(biāo)志來檢查SJA1000是否已處于復(fù)位模式,因?yàn)橐獙懭肱渲眯畔⒌募拇嫫鲀H在復(fù)位模式下可以被寫入。初始化程序中,首先將SJA1000設(shè)為復(fù)位狀態(tài),隨后定SJA1000使用PeliCAN模式,CLKOUT引腳輸出頻率為外接晶振頻率的1/2,為單驗(yàn)收濾波器模式。
SJA1000的初始化流程(圖略)。
在清除SJA1000的復(fù)位模式/請(qǐng)求標(biāo)志進(jìn)入工作模式時(shí),必須先檢查標(biāo)志是否確實(shí)被清除、是否進(jìn)入了工作模式后,才能進(jìn)行下一步的操作。在進(jìn)入工作模式后,CAN控制器的中斷可被使能,并開始正常的發(fā)送或接收?qǐng)?bào)文。
5.2SJA1000的報(bào)文發(fā)送接收
根據(jù)CAN協(xié)議規(guī)范,報(bào)文的傳輸由CAN控制器SJA1000獨(dú)立完成。在報(bào)文的發(fā)送過程中,單片機(jī)AT89C51必須將要發(fā)送的報(bào)文送入系統(tǒng)發(fā)送緩沖區(qū),在將系統(tǒng)發(fā)送緩沖區(qū)中的數(shù)據(jù)移至CAN控制器發(fā)送緩沖器之前,必須判斷發(fā)送緩沖器是否被釋放。
報(bào)文的接收由CAN控制器SJA1000獨(dú)立完成,收到的報(bào)文在接收緩沖器內(nèi),同時(shí)將狀態(tài)寄存器的接收緩沖器狀態(tài)標(biāo)志RBS和接收中斷標(biāo)志RI置位。如果報(bào)文接收被使能,單片機(jī)可以將接收緩沖器內(nèi)的新報(bào)文讀出,并存儲(chǔ)到單片機(jī)的內(nèi)存單元或外部數(shù)據(jù)存儲(chǔ)器中,然后釋放接收緩沖器。SJA1000報(bào)文接收過程可以由SJA1000的中斷請(qǐng)求或查詢SJA1000的控制段狀態(tài)標(biāo)志來控制。
6小結(jié)
分析傳統(tǒng)的運(yùn)動(dòng)控制系統(tǒng)已不滿足電子制造設(shè)備的要求和現(xiàn)場(chǎng)總線運(yùn)動(dòng)控制系統(tǒng)通信特性,提出了基于SJA1000的CAN總線的網(wǎng)絡(luò)化運(yùn)動(dòng)控制系統(tǒng)方案,為交流伺服的網(wǎng)絡(luò)化研究和應(yīng)用作出了一次有益的新探索。CAN總線可以很好地滿足現(xiàn)場(chǎng)總線運(yùn)動(dòng)控制系統(tǒng)對(duì)實(shí)時(shí)響應(yīng)的較高要求,同時(shí)使用CAN總線還使得系統(tǒng)具有很好的擴(kuò)展性能。這樣為向多軸或多點(diǎn)的分布式運(yùn)動(dòng)控制網(wǎng)絡(luò)發(fā)展打下堅(jiān)實(shí)的基礎(chǔ)。
評(píng)論