掃描二維碼
隨時(shí)隨地手機(jī)看文章
CAN即控制器局域網(wǎng),他的通信具有突出的可靠性、實(shí)時(shí)性和靈活性。他的應(yīng)用不再局限于汽車行業(yè),其中CAN在機(jī)床數(shù)控系統(tǒng)方面實(shí)現(xiàn)的功能主要包括:程序管理;機(jī)床系統(tǒng)參數(shù)輸入輸出診斷、參數(shù)的通訊;機(jī)床狀態(tài)采集;機(jī)床工作模式采集;數(shù)據(jù)庫管理等。
目前,國產(chǎn)數(shù)控系統(tǒng)的主要份額是經(jīng)濟(jì)型機(jī)床數(shù)控系統(tǒng)。經(jīng)濟(jì)型數(shù)控系統(tǒng)與機(jī)床基本輸入輸出接口的數(shù)量都是有限的,經(jīng)常不能滿足實(shí)際操作中的需求,同時(shí)在實(shí)際車間中,機(jī)床與數(shù)控系統(tǒng)可能距離較遠(yuǎn),輸入輸出信號(hào)在遠(yuǎn)程傳輸過程中非常容易受到干擾而出錯(cuò),而CAN總線在傳輸較遠(yuǎn)距離的信號(hào)時(shí)傳輸時(shí)間短,受干擾概率低,還具有較高的傳輸速度,基于這些原因本文提出了基于CAN總線的數(shù)控系統(tǒng)遠(yuǎn)程輸入輸出模塊的設(shè)計(jì)思想。
2 模塊結(jié)構(gòu)設(shè)計(jì)
該模塊的組成結(jié)構(gòu)設(shè)計(jì)如下:CANIN,CANOUT是CAN總線的輸入輸出接口。DI,DO是模塊與機(jī)床的接口,DI:機(jī)床信息輸入接口;DO:來自數(shù)控系統(tǒng)的信息輸出給機(jī)床的接口。且D1,DO接口接收的信息都是開關(guān)量信息。
3 模塊硬件設(shè)計(jì)
本輸入輸出模塊中的微處理器選用宏晶公司的單片機(jī)STC89C516RD+。在CAN總線通信接口中,CAN通信控制器選用SJA1000,CAN總線驅(qū)動(dòng)器采用PCA82C250。由圖2 CAN遠(yuǎn)程輸入輸出模塊硬件原理圖可以看出,電路主要由6部分組成:微控制器STC89C516RD+、獨(dú)立CAN控制器、電氣隔離器件6N137、CAN總線驅(qū)動(dòng)器PCA82C250、輸出模塊和輸入模塊。微處理器STC89C516RD+負(fù)責(zé)向輸出模塊傳出要輸出的數(shù)據(jù),對(duì)輸入模塊的輸入點(diǎn)進(jìn)行掃描輸入,以及初始化SJA1000,并通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。
SJA1000的AD0~AD7連接到STC89C516RD+的P0口,片選信號(hào)CS*由P2.7控制,其為0時(shí)CPU片外存儲(chǔ)器地址可選中SJA1000,進(jìn)而可對(duì)SJA1000執(zhí)行相應(yīng)的讀/寫操作。SJA1000的RD*WR*ALE分別與STC89C516RD+的對(duì)應(yīng)引腳相連,INT*接STC89C516RD+的INT0*,使單片機(jī)可通過中斷方式對(duì)SJA1000進(jìn)行實(shí)時(shí)訪問。P1口3個(gè)端口外接一撥碼開關(guān),用來確定自身模塊的標(biāo)識(shí)號(hào)即該模塊的ID號(hào),撥碼開關(guān)的取值為000~111,所以該ID號(hào)的取值為0~7。
為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,SJA1000的TX0和RX0并不是直接與PCA82C250的TXD和RXD相連,而是在中間加入了一級(jí)高速光耦6N137,這樣就很好地實(shí)現(xiàn)了總線上各CAN節(jié)點(diǎn)間的電氣隔離,但前提是光耦部分電路所采用的兩個(gè)電源VCC和VDD必須完全隔離,否則就只是利用其響應(yīng)速度做低通濾波器用。電源的完全隔離可采用小功率的DC-DC,或帶多5 V隔離輸出的開關(guān)電源模塊實(shí)現(xiàn)。這雖然增加了接口電路的復(fù)雜性及成本,但卻提高了節(jié)點(diǎn)的穩(wěn)定性和安全性。
輸出模塊中各輸出點(diǎn)通過鎖存器74ALS273與STC89C516RD+的P0口相接,并由P2譯出的地址以及寫信號(hào)WR*進(jìn)行鎖存控制。而輸入模塊中各輸入點(diǎn)通過總線緩沖器74ABT245與P0口相連,74ABT245由P2譯出的地址以及讀信號(hào)RD*進(jìn)行選通控制。這樣STC89C516RD+就可以方便地對(duì)外部I/O進(jìn)行訪問而無須其他額外的軟硬件開支,大大提高了STC89C516RD+的執(zhí)行效率。
4 模塊軟件設(shè)計(jì)
CAN總線數(shù)控系統(tǒng)遠(yuǎn)程輸入輸出模塊的軟件設(shè)計(jì)主要包括6大部分:STC89C516RD+初始化、CAN控制器初始化、報(bào)文發(fā)送、報(bào)文接收、對(duì)輸出點(diǎn)的輸出訪問和輸入點(diǎn)的掃描輸入。本設(shè)計(jì)應(yīng)用的CAN的pelic模式的標(biāo)準(zhǔn)幀格式。
程序流程如圖3所示。SJA1000初始化只有在復(fù)位模式下才能進(jìn)行,初始化主要包括通過調(diào)節(jié)撥碼開關(guān)設(shè)置本模塊的標(biāo)識(shí)符,工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設(shè)置、波特率設(shè)置和中斷允許寄存器(IER)的設(shè)置等。
機(jī)床信息傳到數(shù)控系統(tǒng):當(dāng)掃描到機(jī)床的輸入信號(hào)有電平變化時(shí),模塊把自身的ID信息和輸入信號(hào)一起打包成標(biāo)準(zhǔn)幀發(fā)送給數(shù)控系統(tǒng)。
數(shù)控系統(tǒng)指令傳到機(jī)床:模塊實(shí)時(shí)監(jiān)控總線,當(dāng)總線上有來自數(shù)控系統(tǒng)的信息,啟動(dòng)CAN接收,根據(jù)AMR和ACR來判斷是否該接收該指令幀,如果不應(yīng)該接收,將信息丟棄,如果應(yīng)該接收,將指令輸出給機(jī)床。
5 模塊應(yīng)用
在實(shí)際應(yīng)用中,多塊輸入輸出模塊相連接組成CAN的網(wǎng)絡(luò),多塊輸入輸出模塊的上位機(jī)都是機(jī)床數(shù)控系統(tǒng),各模塊的輸入輸出接口均與機(jī)床相連如圖4所示。
注意在該網(wǎng)絡(luò)中,在總線的兩端應(yīng)各接有一個(gè)終端電阻,終端電阻的作用是吸收信號(hào)線上電脈沖的多余能量,防止反射形成信號(hào)混淆,而信號(hào)混淆將導(dǎo)致通訊錯(cuò)誤。
由于各模塊的ID號(hào)的取值為0~7,所以本設(shè)計(jì)數(shù)控系統(tǒng)外部可擴(kuò)展8個(gè)輸入輸出模塊,其中各個(gè)模塊ID號(hào)設(shè)置不能相同,且站號(hào)越小,優(yōu)先級(jí)越高。在本設(shè)計(jì)中每個(gè)模塊的輸入點(diǎn)為64個(gè),輸出點(diǎn)為64個(gè),則一共可以擴(kuò)展到512(64*8)個(gè)輸入輸出點(diǎn)。
6 結(jié) 語
基于CAN總線的數(shù)控系統(tǒng)遠(yuǎn)程輸入輸出模塊不僅擴(kuò)展了經(jīng)濟(jì)型數(shù)控系統(tǒng)的輸入輸出節(jié)點(diǎn),而且提高了遠(yuǎn)程輸入輸出信號(hào)傳輸?shù)恼_率。本系統(tǒng)通過了現(xiàn)場(chǎng)進(jìn)行的實(shí)驗(yàn)測(cè)試,總線單接一個(gè)模塊;接兩個(gè)模塊;串接8個(gè)模塊,分別測(cè)試各個(gè)模塊的工作情況,機(jī)床和數(shù)控系統(tǒng)之間的信息都能正確傳送,通信速率完全能滿足系統(tǒng)實(shí)時(shí)性能的要求,運(yùn)行可靠。系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單,集成度、智能化程度高,結(jié)構(gòu)與功能可擴(kuò)展性好,安全可靠,極大地增加了數(shù)控系統(tǒng)和機(jī)床通信的輸入輸出節(jié)點(diǎn)。隨著未來工廠自動(dòng)化的發(fā)展,CAN總線將具有廣闊的應(yīng)用前景。
汽車電子系統(tǒng)架構(gòu)發(fā)生了顛覆性變化。它已經(jīng)持續(xù)了近十年,現(xiàn)在正在加快速度。這主要發(fā)生在 BEV 初創(chuàng)公司中,因?yàn)樗鼈儧]有歷史限制或根深蒂固的喜愛設(shè)計(jì),并且可以從電子架構(gòu)的零基礎(chǔ)開始。
關(guān)鍵字: CAN總線 電動(dòng)汽車CAN總線首先在汽車上得到了廣泛應(yīng)用,之后又在工業(yè)生產(chǎn)領(lǐng)域有了很大發(fā)展,那么面對(duì)不同的應(yīng)用場(chǎng)景和工況,如何選擇合適的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)慢慢成為一個(gè)讓人頭疼的問題。在這篇文章中,我將重點(diǎn)介紹用于驅(qū)動(dòng)這些總線電壓的 CAN 驅(qū)動(dòng)器...
關(guān)鍵字: CAN總線 CAN總線拓?fù)?/a>大家好,我是小麥。最近在調(diào)試一個(gè)CAN總線的設(shè)備遇到一些問題,簡(jiǎn)單總結(jié)一下。本文會(huì)對(duì)CAN總線進(jìn)行簡(jiǎn)單介紹,CAN的硬件鏈路層,協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線?物理層差分信號(hào)連接方式CAN節(jié)點(diǎn)CAN協(xié)議...
關(guān)鍵字: CAN總線大家好,我是小麥。最近在調(diào)試一個(gè)CAN總線的設(shè)備時(shí)遇到了一些問題,在此簡(jiǎn)單總結(jié)一下。本文將對(duì)CAN總線進(jìn)行簡(jiǎn)單介紹,包括CAN的硬件鏈路層、協(xié)議層,以及調(diào)試的一些心得。目錄什么是CAN總線?物理層差分信號(hào)連接方式CAN節(jié)...
關(guān)鍵字: CAN總線摘要:介紹了基于STC12C5A60S2單片機(jī)、SJA1000型CAN接口控制器以及PCA82C250串行收發(fā)器構(gòu)成的總線通信網(wǎng)絡(luò)。該網(wǎng)絡(luò)中遠(yuǎn)端的CAN節(jié)點(diǎn)可監(jiān)測(cè)現(xiàn)場(chǎng)環(huán)境,并實(shí)現(xiàn)數(shù)據(jù)收發(fā)和串行通信,上位PC機(jī)利用VB6....
關(guān)鍵字: 單片機(jī) CAN總線 VB6.0 環(huán)境參數(shù)關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容來源:整理與網(wǎng)絡(luò)素材最近在搞一個(gè)can協(xié)議,本文爭(zhēng)對(duì)一些can底層細(xì)節(jié)很到位,分享一下。1.簡(jiǎn)介CAN總線由德國BOSCH公司開發(fā),最高速率可達(dá)到1Mbps。CAN的容錯(cuò)能力特別強(qiáng),CAN控...
關(guān)鍵字: CAN總線