<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線控制器SJA1000的自動(dòng)絡(luò)筒機(jī)通信系統(tǒng)方案

          基于CAN總線控制器SJA1000的自動(dòng)絡(luò)筒機(jī)通信系統(tǒng)方案

          作者: 時(shí)間:2011-12-29 來(lái)源:網(wǎng)絡(luò) 收藏
            1、 引言

            隨著紡織工業(yè)技術(shù)進(jìn)步,紡織機(jī)械日益趨向成套化、自動(dòng)化和系統(tǒng)化。自動(dòng)絡(luò)筒機(jī)是紡織工業(yè)上檔次的關(guān)鍵設(shè)備,起著承上啟下、改善紗線性能的重要作用,它是紡部的整理設(shè)備和織部的準(zhǔn)備設(shè)備,機(jī)電氣一體化,自動(dòng)化程度高,速度快,生產(chǎn)效率高。自動(dòng)絡(luò)筒機(jī)是一種具有高速、高產(chǎn)、高效、高質(zhì)和高自動(dòng)化功能,并綜合了最新機(jī)械、電子、材料、儀表及計(jì)算機(jī)信息處理和控制等技術(shù)的機(jī)電一體化產(chǎn)品。自動(dòng)絡(luò)筒機(jī)的出現(xiàn),從根本上改變了普通絡(luò)筒機(jī)的面貌,其生產(chǎn)的筒子卷裝大,絡(luò)紗速度高,對(duì)紗線的絡(luò)紗全過(guò)程自動(dòng)化控制程度和勞動(dòng)生產(chǎn)率高,從而成為機(jī)械、電子、氣動(dòng)、儀表和計(jì)算機(jī)信息處理相結(jié)合的高新技術(shù)產(chǎn)品。自動(dòng)絡(luò)筒機(jī)是科技含量最高的紡織機(jī)械設(shè)備,有“紡織機(jī)械皇冠上的明珠”之稱。

            CAN總線是一種有效支持分布式控制系統(tǒng)或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),是一個(gè)多主總線,總線上的各個(gè)節(jié)點(diǎn)都有權(quán)隨時(shí)向其他節(jié)點(diǎn)發(fā)送信息,總線沖突時(shí)通過(guò)總線仲裁機(jī)制來(lái)決定占用總線的節(jié)點(diǎn)。CAN能夠使用多種物理介質(zhì)傳播,例如雙絞線、同軸電纜、光纖等。最常用的就是雙絞線。CAN總線描述的是ISO/OSI七層協(xié)議中的第一層和第二層的高速協(xié)議。目前,CAN 總線的規(guī)范常見(jiàn)的是2.0A和2.0B版本。本自動(dòng)絡(luò)筒機(jī)通信統(tǒng)中采用的是2.0B擴(kuò)展幀,29位標(biāo)志符。

            CAN中的信號(hào)包括幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC 場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾等部分。報(bào)文傳輸由數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀、表示和控制。數(shù)據(jù)幀/遠(yuǎn)程幀通過(guò)幀間空間相分隔。信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為“CAN_H”和“CAN_L”,靜態(tài)時(shí)均是2.5V左右,此時(shí)狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯性”,此時(shí),通常電壓值為:CAN_H = 3.5V 和CAN_L = 1.5V 。

            2、基于的自絡(luò)筒通信系統(tǒng)設(shè)計(jì)

            2.1、簡(jiǎn)介

            是Philips公司生產(chǎn)的獨(dú)立CAN 總線控制器,它是早期的PCA82C200 的替代產(chǎn)品。它與 PCA82C200在管腳、電氣特性上完全兼容,不僅有 和PCA82C200一樣的基本CAN (BasicCAN)工作模式,而且新增加了增強(qiáng)CAN ( PeliCAN)工作模式,這種模式支持具有很多新特性的CAN2. 0B 協(xié)議。SJA1000是一種應(yīng)用于汽車和一般工業(yè)環(huán)境的獨(dú)立,經(jīng)過(guò)簡(jiǎn)單總線連接可完成CAN總線的物理層和數(shù)據(jù)鏈路層的所有功能。其硬件與軟件設(shè)計(jì)和PCA82C200的基本CAN模式BasicCAN兼容。同時(shí),新增加的增強(qiáng)CAN模式PeliCAN還可支持CAN2.0B協(xié)議。SJA1000的主要特性如下 :1、管腳及電氣特性與獨(dú)立PCA82C200兼容 ;2、軟件與PCA82C200兼容(缺省為基本CAN模式);3、擴(kuò)展接收緩沖器(64字節(jié)FIFO);4、支持CAN2.0B時(shí)支持11和29位標(biāo)識(shí)符;5、位通訊速率為1Mbits/s;6、增強(qiáng)CAN模式(PeliCAN);7、采用24MHz時(shí)鐘頻率;8、支持多種微處理器接口;9、可編程CAN輸出驅(qū)動(dòng)配置;10、工作溫度范圍為-40~+125℃。

            2.2、CAN通信系統(tǒng)中硬件設(shè)計(jì)

            CAN控制模塊主要由接口管理邏輯、發(fā)送緩沖器、接收緩沖器(RXFIFO)、接收過(guò)濾器、位流處理器 (BSP)、位時(shí)序邏輯 (BTL)和錯(cuò)誤管理邏輯(EML)組成。

            本項(xiàng)目中自動(dòng)絡(luò)筒機(jī)控制系統(tǒng)中共有60個(gè)單錠,通過(guò)上位機(jī)來(lái)對(duì)各個(gè)單錠進(jìn)行控制,自動(dòng)絡(luò)筒機(jī)中通信系統(tǒng)硬件框圖如圖1所示。



            根據(jù)自動(dòng)絡(luò)筒機(jī)通信系統(tǒng)的功能及要求,選SJA1000作為CAN控制器,并且使用了CAN控制器接口芯片PCA82C250,PCA82C250是CAN協(xié)議控制器和物理總線之間的接口。此器件對(duì)總線提供差動(dòng)發(fā)送能力,對(duì)CAN控制器提供差動(dòng)接收能力。整個(gè)系統(tǒng)以Atmel AVR單片機(jī)Mega64L。ATMEL公司的AVR單片機(jī),是增強(qiáng)型RISC內(nèi)載Flash的單片機(jī),芯片上的Flash存儲(chǔ)器附在用戶的產(chǎn)品中,可隨時(shí)編程,再編程,使用戶的產(chǎn)品設(shè)計(jì)容易,更新?lián)Q代方便。AVR單片機(jī)采用增強(qiáng)的RISC結(jié)構(gòu) ,使其具有高速處理能力,在一個(gè)時(shí)鐘周期內(nèi)可執(zhí)行復(fù)雜的指令。本系統(tǒng)采用的AVR mega64L還具有:用32個(gè)通用工作寄存器代替累加器,從而可以避免傳統(tǒng)的累加器和存儲(chǔ)器之間的數(shù)據(jù)傳送造成的瓶頸現(xiàn)象;一個(gè)時(shí)鐘周期執(zhí)行一條指令;可直接訪問(wèn)8M字節(jié)程序存儲(chǔ)器和8M字節(jié)數(shù)據(jù)存儲(chǔ)器寄存器等特點(diǎn)。因此,采用ATMEL公司生產(chǎn)的AVR位單片機(jī)Mega64L機(jī)作為控制系統(tǒng)的主控制器是十分理想的選擇。SJA1000在自絡(luò)筒通信系統(tǒng)中單錠的硬件配置與CAN總線接口的電路如圖 2示。硬件電路中使用 PCA82C250的目的是為了增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾,實(shí)現(xiàn)熱防護(hù)等。

            SJA1000在電路中是一個(gè)總線接口芯片,實(shí)現(xiàn)從上位機(jī)PC-CAN接口到現(xiàn)場(chǎng)微處理器之間的數(shù)據(jù)通信。對(duì)于微處理器而言,SJA1000是一個(gè)總線接口,SJA1000片內(nèi)的存儲(chǔ)單元相對(duì)Mega64L來(lái)說(shuō)是片外的數(shù)據(jù)存儲(chǔ)器,因此,可以按照擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器的形式來(lái)訪問(wèn)SJA1000的寄存器地址。Mega64L是CAN控制器的微處理器,把Mega64L的ALE、RD、WR和 SJA1000的ALE、RD、WR相連就構(gòu)成一個(gè)最小系統(tǒng)節(jié)點(diǎn)。Mega64L通過(guò)地址總線經(jīng)GAL譯碼來(lái)選通 SJA1000,并由此決定CAN控制器各寄存器的地址,通過(guò)讀、寫外部數(shù)據(jù)存儲(chǔ)器的形式來(lái)訪問(wèn) SJA1000。在系統(tǒng)中我們將SJA1000的TX1腳懸空,RX1引腳接地,形成CAN協(xié)議所要求的電平邏輯。該電路的主要功能就是通過(guò)CAN總線接收來(lái)自上位機(jī)的數(shù)據(jù)進(jìn)行分析組態(tài),然后下傳給下位機(jī)的控制電路實(shí)現(xiàn)控制功能,當(dāng)智能控制系統(tǒng)接收到下位機(jī)的上傳數(shù)據(jù),SJA1000的中斷輸出INT腳就會(huì)被激活,出現(xiàn)一個(gè)由高電平到低電平的躍變,產(chǎn)生一個(gè)中斷,從而引發(fā)微處理器Mega64L產(chǎn)生中斷,通過(guò)中斷處理程序接收每一幀信息并通過(guò)CAN總線上傳給上位機(jī)進(jìn)行分析,以便及時(shí)糾正誤碼、錯(cuò)碼。



            在進(jìn)行電路設(shè)計(jì)時(shí)需注意:為進(jìn)一步提高系統(tǒng)抗干擾能力,在CAN控制器SJA1000和CAN控制器接口PCA82C250之間加接6N137光電隔離芯片,并采用DC-DC變換器隔離電源;通信信號(hào)傳輸?shù)綄?dǎo)線的端點(diǎn)時(shí)會(huì)發(fā)生反射,反射信號(hào)會(huì)干擾正常信號(hào)的傳輸,因而總線兩端兩個(gè)124歐姆電阻對(duì)匹配總線阻抗起著相當(dāng)重要的作用,忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾性和可靠性大大降低,甚至無(wú)法通信;PCA82C250第8腳與地之間的電阻RS稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統(tǒng)將處于高速工作方式。在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線;而在波特率較低、總線較短時(shí),一般采用斜率控制方式,上升和下降的斜率取決于RS的阻值。

            2.3、系統(tǒng)軟件設(shè)計(jì)

            本項(xiàng)目通信系統(tǒng)中軟件設(shè)計(jì)包括兩部分:上位機(jī)和下位機(jī)。上位機(jī)主要通過(guò)人機(jī)交互向CAN總線發(fā)送信號(hào)給各單錠,下位機(jī)軟件主要是Mega64L接收CAN總線信息后,完成控制單錠相應(yīng)動(dòng)作的任務(wù),比如張力盤增加或是減少?gòu)埩Φ鹊仁录_@里主要介紹單錠中各CAN的軟件實(shí)現(xiàn)。

            系統(tǒng)上電初始化:系統(tǒng)軟件設(shè)計(jì)的指導(dǎo)思想是系統(tǒng)上電后首先對(duì)Mega64L和SJA1000進(jìn)行初始化,以確定工作主頻、波特率、輸出特性等,然后通過(guò)查詢方式獲取模數(shù)轉(zhuǎn)換采樣值,并把該值通過(guò)SJA1000傳送到CAN總線上由上位機(jī)進(jìn)行顯示控制,CAN發(fā)送通過(guò)中斷方式向總線發(fā)送信息,而對(duì)CAN總線上來(lái)的信息也采用中斷方式,系統(tǒng)每接收到一幀信息,便產(chǎn)生一次中斷以觸發(fā)微處理器進(jìn)入中斷,在中斷服務(wù)程序中讀取該幀信息并傳送到現(xiàn)場(chǎng)。為防止出現(xiàn)死機(jī)和干擾,程序中還采用看門狗技術(shù)進(jìn)行定時(shí)監(jiān)控。

            對(duì)CAN控制器進(jìn)行初始化,實(shí)際上就是對(duì)ACR(驗(yàn)收碼寄存器)、AMR(驗(yàn)收屏蔽寄存器)、BTR0(總線定時(shí)寄存器0)、BTR1(總線定時(shí)寄存器 1)、OCR(輸出控制寄存器)這些寄存器進(jìn)行相關(guān)操作。只有當(dāng)控制寄存器CR中的復(fù)位請(qǐng)求位為高時(shí),訪問(wèn)才被允許,否則既寫不進(jìn)去,也讀不出正確的內(nèi)容。對(duì)CR進(jìn)行第一次寫操作,要設(shè)定將要開放的中斷類型,并置位復(fù)位請(qǐng)求,允許初始化開始。對(duì)ACR、AMR進(jìn)行寫操作,要界定對(duì)什么樣的報(bào)文予以接收,因此有時(shí)稱它們?yōu)轵?yàn)收屏蔽濾波器。當(dāng)滿足條件:“ACR與報(bào)文標(biāo)識(shí)符的高 8位在AMR為‘0’相關(guān)位上對(duì)應(yīng)相等”或 “AMR=0FFH,即ACR的所有位均為不相關(guān)(或屏蔽)位”,并存在空的收發(fā)緩存器時(shí),完整報(bào)文可被正確收發(fā)。

            發(fā)送報(bào)文:當(dāng)?shù)却l(fā)送的報(bào)文成功發(fā)送或被放棄之后,發(fā)送緩沖區(qū)被釋放并產(chǎn)生一個(gè)發(fā)送中斷。在中斷處理中,必須檢查狀態(tài)寄存器的發(fā)送完成標(biāo)志(TCS) ,以確定之前的發(fā)送是否成功。未成功表示發(fā)送被放棄,在這種情況下CPU對(duì)放棄的發(fā)送執(zhí)行一個(gè)特殊的處理,例如重復(fù)發(fā)送被放棄的報(bào)文。中斷發(fā)送報(bào)文流程圖如圖3。

            接收?qǐng)?bào)文:對(duì)于給出的控制器,主要流程在中斷控制的報(bào)文接收之前必須使能CAN控制器的接收終端和CPU的全局中斷。接收中斷使能標(biāo)志(RIE)位于中斷使能寄存器中。

            如果CPU已經(jīng)接收到一個(gè)報(bào)文,該報(bào)文通過(guò)驗(yàn)收濾波器并放入接收FIFO,則產(chǎn)生一個(gè)接收中斷。這樣 CPU能夠立即響應(yīng),將這個(gè)接收到的報(bào)文送到自身的報(bào)文存儲(chǔ)器,并置位命令寄存器的釋放緩沖標(biāo)志RRB。接收緩沖器中其他的報(bào)文將引起新的中斷,所以沒(méi)有必要在一次中斷過(guò)程中把接收緩沖器FIFO中的所有有效報(bào)文讀取出來(lái)。不過(guò),在接收中斷過(guò)程結(jié)束時(shí),CPU 可以通過(guò)讀接收緩沖期狀態(tài)標(biāo)志(RBS)來(lái)檢查是否還有其他報(bào)文存在。這一點(diǎn)在使用接收級(jí)中斷(Receive Level Interrupt)時(shí)通常是有用的。如圖3所示,整個(gè)接收的過(guò)程可在中斷服務(wù)程序中完成而不需要與主程序發(fā)生交互作用。


            3、總結(jié)

            目前,自動(dòng)絡(luò)筒機(jī)中大量地應(yīng)用先進(jìn)電子技術(shù)、自動(dòng)控制技術(shù)等,對(duì)其通信控制系統(tǒng)也提出了更高的要求。CAN總線技術(shù)及其高性能、高可靠性及其獨(dú)特的設(shè)計(jì),已成為現(xiàn)場(chǎng)總線家族中最有希望的總線技術(shù)之一。本系統(tǒng)中將高可靠性的CAN-bus和性價(jià)比高、處理能力強(qiáng)大的AVR有機(jī)結(jié)合,使自動(dòng)絡(luò)筒機(jī)通信系統(tǒng)在傳輸速度、實(shí)時(shí)性、差錯(cuò)率控制、可靠性上都有很好的效果。

            本文作者創(chuàng)新點(diǎn):CAN總線以其卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),在工業(yè)過(guò)程監(jiān)控設(shè)備的互聯(lián)方面得到廣泛的應(yīng)用,受到工業(yè)界的廣泛重視,并被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一。作為通用、有效、可靠及經(jīng)濟(jì)的平臺(tái),CA N總線也已經(jīng)廣泛地受到了歡迎。本文所設(shè)計(jì)的基于Atmel ARV系列增強(qiáng)型單片機(jī)Meag64L和SJA1000控制器為核的CAN總線已經(jīng)投入使用,具有簡(jiǎn)單、靈活、使用方便等特點(diǎn)。

          dc相關(guān)文章:dc是什么


          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


          雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理


          關(guān)鍵詞: CAN總線控制器 SJA1000

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();