基于82527的CAN總線智能傳感器節點設計DOC14_第1頁
基于82527的CAN總線智能傳感器節點設計DOC14_第2頁
基于82527的CAN總線智能傳感器節點設計DOC14_第3頁
基于82527的CAN總線智能傳感器節點設計DOC14_第4頁
基于82527的CAN總線智能傳感器節點設計DOC14_第5頁
已閱讀5頁,還剩8頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于82527的CAN總線智能傳感器節點設計摘要:介紹一種以8051微控制器和82527獨立CAN總線控制器為核心組成的CAN總線智能傳感器節點的設計方法,并給出其硬件原理圖和初始化程序。    關鍵詞:CAN總線 82527 單片機 數據采集 智能節點引言CAN(Controller Area Network,控制局域網)屬于工業現場總線,是德國Bosch公司20世紀80年代初作為解決現代汽車中眾多的控制與測試儀器間的數據交換而開發的一種通信協議。1993年11月,ISO正式頒布了高速通信控制局域網(CAN)的國際標準(ISO11898)。CAN總線系統中現場數

2、據的采集由傳感器完成,目前,帶有CAN總線接口的傳感器種類還不多,價格也較貴。本文給出一種由8051單片機和82527獨立CAN總線控制器為核心構成的智能節點電路,在普通傳感器基礎上形成可接收8路模擬量輸入和智能傳感器節點。1 獨立CAN總線控制器82527介紹82527是Intel公司生產的獨立CAN總線控制器,可通過并行總線與Intel和Motrorola的控制器接口;支持CAN規程2.0B標準,具有接收和發送功能并可完成報文濾波。82527采用CHMOS 5V工藝制造,44腳PLCC封裝,使用溫度為-44+125,其引腳的排列和定義參見參考文獻1。(1)82527的時鐘信號82527的運

3、行由2種時鐘控制:系統時鐘SCLK和寄存器時鐘MCLK。SCLK由外部晶振獲得,MCLK對SCLK分頻獲得。CAN總線的位定時依據SCLK的頻率,而MCLK為寄存器操作提供時鐘。SCLK頻率可以等于外部晶振XTAL,也可以是其頻率的1/2;MCLK的頻率可以等于SCLK或是其頻率的1/2。系統復位后的默認設置是SCLK=XTAL/2,MCLK=SCLK/2。(2)82527的工作模式82527有5種工作模式:Intel方式8位分時復用模式;Intel方式16位分時復用模式;串行接口模式;非Intel方式8位分時復用模式;8位非分時復用模式。本文應用Intel方式8位分時復用模式,此時82527

4、的30和44腳接地。(3)82527的寄存器結構282527的寄存器地址為00FFH.下面根據需要對寄存器給予介紹。控制寄存器(00H):765432100CCE00EIESIEIEINITCCE改變配置允許位,高電平有效。該位有效時允許CPU對配置寄存器1FH、2FH、3FH、4FH、9FH、AFH寫操作。EIE錯誤中斷允許位,高電平有效。該位一般置1,當總線上產生異常數量的錯誤時中斷CPU。SIE狀態改變中斷允許位,高電平有效。該位一般置0。IE中斷允許位,高電平有效。INIT軟件初始化允許位,高電平有效。該位有效時,CAN停止收發報文,TX0和TX1為隱性電平1。在硬件復位和總線關閉時該

5、位被置位。CPU接口寄存器(02H):76543210RSTSTDSCDMCPWDSLEEPMUX0CENRSTST硬件復位狀態位。該位由82527寫入,為1時硬件復位激活,不允許對82527訪問;為0時允許對82527訪問。DSCSCLK分頻位。該位為1,SCLK=XTAL/2;為0,SCLK=XTAL。DMCMCLK分頻位。該位為1,MCLK=SCLK/2;為0,MCLK=SCLK。PWD掉電模式使能位,高電平有效。SLEEP睡眠模式使能位,高電平有效。MUX低速物理層復用標志位。該位為1,ISO低速物理層激活,PIN24=VCC/2,PIN11=INT#(表示取反);該位為0,PIN24

6、=INT#,PIN11=P2.6。CEN時鐘輸出允許位,高電平有效。標準全局屏蔽寄存器(0607H)。該寄存器用于具有標準標識符的報文,或XTD置0的報文寄存器。該方式稱為報文接收濾波。當某位為1時,報文標識符的相應位必須匹配;為0時,不必匹配。擴展全局屏蔽寄存器(080BH)。該寄存器用于擴展報文格式,或XTD置1的報文寄存器,其作用與相同。765432100COBYPOL0DCT10DCR1DCR0總線配置寄存器(2FH):COBY旁路輸入比較器標志位,高電平有效。POL極性標志位。為1,如果旁路輸入比較器,RX0的輸入邏輯1為顯性,邏輯0為隱性;為0,則反之。DCT1TX1輸出切斷控制位

7、。為1,TX1輸出不被驅動,該模式用于1根總線的情況,2根差分導線短路;為0,TX1輸出被驅動。DCR1RX1輸入切斷控制位。為1,RX1與輸入比較器的反相端斷開,接至VCC/2;為0,RX1接至輸入比較器反相端。DCR0RX0輸入切斷控制位。作用與DCR1相同,此時RX0接至比較器同相端。76543210SJWBRP位定時寄存器0(3FH);SJW同步跳轉寬度位場,編程值13。BRP波特率分頻位場,編程值063。76543210SPLTSEG2TSEG1位定時寄存器1(4FH):SPL采樣模式標志位。1表示每位采樣3次;0表示每位采樣1次。TSEG1時間段1位場,編程值215。TSEG1時間

8、段2位場,編程值17。波特率=XTAL/(DSC+1)*(BRP+1)*(3+TSEG1+TSEG2)報文寄存器(把每個寄存器的第1字節地址作為基址BASE)。76543210BASE+0MSGVALTXIERXIEINTPNDBASE+1RMTPNDTXRQSTMSGLST/CPUUPDNEWDAT控制寄存器0,1(BASE+0,BASET+1)MSGVAL報文寄存器有效標志位,高電平有效。10置位,01復位。TXIE發送中斷允許標志位,高電平有效。10置位,01復位。RXIE接收中斷允許標志位,高電平有效,10置位,01復位。INTPND中斷申請標志位,高電平有效。10置位,01復位。RM

9、TPND遠程幀申請標志位,高電平有效。10置位,01復位。TXRQST請求發送標志位,高電平有效。10置位,01復位。MSGLST報文丟失標志位,只用于接收報文寄存器。10表示未讀報文被新報文覆蓋,01表示未覆蓋。CPUUPDCPU更新標志位,只用于發送報文寄存器。10報文不被發送,01報文可發送。NEWDAT新數據標志位。10表示向寄存器寫入了新數據,01表示無新數據寫入。仲裁寄存器0,1,2,3(BASE+2-BASE+5)存儲報文標識符。76543210DLCDIRXTD保留報文配置寄存器(BASE+6)DLC數據長度編碼,編程值08。DIR方向標志位。1發送,0接收。XTD標準/擴展標

10、識符標志位。1擴展標識符,0標準標識符。數據寄存器(BASE+7-BASE+14)82527存儲報文時,8個數據字節均被寫入,未用到的字節數據是隨機的。2 硬件電路設計智能節點的電路如圖1所示(圖中6264略去)。在硬件設計中,由ADC0809完成對8路模擬置的轉換,與8051的信息交換采用查詢方式,地址BFF8BFFFH,其時鐘可由ALE二分頻獲得;82527完成與CAN總線的信息交換。本設計中,旁路了輸入比較器,與8051的信息交換采用中斷方式,地址7F007FFFH,可以用82527的P1口和P2口對開關量采集或對繼電器進行控制。82C250提供82527和物理總線間的接口,提高接收和發

11、送能力。可根據需要擴展程序存儲器。3 軟件設計本設計軟件采用MCS-51匯編語言編寫,程序框圖如圖2所示。82527的初始化程序如下:INT:MOV DPTR,0FF02HMOV A,00HMOVX DPTR,A ;SCLK=XTAL;MCLK=SCLK,CLKOUT無效MOV DPTR,0FF00HMOV A,41HMOVX DPTR,A ;置位CCE,INITMOV DPTR,0FF2FHMOV A,48HMOVX DPTR,A ;旁路輸入比較器設置1位隱性,0為顯性,RX1無效MOV DPTR,0FF3FH;MOV A,43H;MOVX DPTR,A ;SJW=2,BRP=3MOV DP

12、TR,0FF4FHMOV A,0EAHMOVX DPTR,A ;SPL=1,TSEG1=7,TSEG2=6此時波特率為100KbpsMOV DPTR,#0FF00H;MOV A,01HMOVX DPTR,A ;禁止對配置寄存器的訪問MOV DPTR,0FF10H;MOV A,55H;MOVX DPTR,A;INC DPTR;MOVX DPTR,A;···MOV DPTR,0FFF0H;MOV A,55H;MOVX DPTR,AINC DPTR;MOVX DPTR,A ;報文寄存器控制位初始化MOV R0,06H;MOV DPTR,0FF06H;MOV A,0FFH

13、;L1:MOVX DPTR,A ;報文標識符需全部匹配INC DPTRDJNZ R0,L1;MOV DPTR,0FF16H;MOV A,8CH ;報文寄存器1可發送8個字節擴展報文MOVX DPTR,A;MOV DPTR,#0FF26H;MOV A,#84H;MOVX DPTR,A ;報文寄存器2可接收8個字節擴展報文MOV DPTR,0FF00H;MOV A,00H;MOVX DPTR,A ;初始化結束RET Lonworks現場總線由美國Echelon公司于1993年推出,由于其開放的網絡操作系統、標準的網絡通信協議、豐富的介質接口模板、支持多種介質之間相互通信等特點,在工業控制領域得到了

14、廣泛響應。目前已有多種支持Lonworks技術的芯片,Echelon公司的神經元芯片NeuronC31是一種集3個8位CPU及網絡通信協議(LonTalk協議)為一體的芯片。采用該芯片構成的智能節點在Lonworks現場總線控制網絡中起著舉足輕重的作用,它能使現場設備之間相互通信,快速地交換信息,以滿足系統實時監控的要求。但由于3150神經元芯片只提供11個通用I/O口,不能滿足采集量和控制量要求較多的現場設備的要求,因此研究和開發基于神經元芯片的多點I/O的智能節點,是一項有意義的工作。1 NeuronC3150神經元芯片的特點NeuronC芯片既是Lonworks技術的核心也是智能節點的核

15、心,目前由Toshiba和Motorola兩家公司生產,主要包括NeuronC3150和NeuronC3120兩種系列。3150芯片中包括E2PROM和RAM存儲器,同3120芯片區別在于它無內部ROM,但具有訪問外部存儲器的接口,尋址空間可達64Kbyte。從這一點來說,3150比3120在節點開發上具有更好的靈活性。3150芯片內部帶有3個8位微處理器:一個用于鏈路層的控制,另一個用于網絡層的控制,第三個用于執行用戶的應用程序。該芯片還包含11個I/O口和完整的LonTalk通信協議,它同時具有通信和控制功能。2 基于神經元芯片智能節點的開發方法基于神經元芯片開發的智能節點具有結構簡單、成

16、本低等優勢,其開發方法可分為兩種:(1)基于控制模塊的硬件設計方法。采用這一方法的優勢是可縮短產品的開發周期,因為控制模塊通常都集成了神經元芯片、Flash程序存儲器、收發器以及RAM等,用戶只需設計自己的應用電路即可完成節點開發。(2)基于收發器的硬件電路設計方法。采用這一方法可以降低節點成本,提高節點的市場競爭力,但是這一方法需要在考慮應用電路設計的同時考慮神經元芯片與Flash存儲器及RAM的接口電路,這對于電路板的設計加工及生產工藝的要求都較高。3 智能節點的電路設計節點采用主、背板結構。主板上集成有控制電路、通信電路和其他附加電路,其結構圖如圖1。背板設計為兩種多點I/O模塊(包括多

17、點數字I/O模塊和多點模擬I/O模塊)。主、背板之間采用統一標準的20針接口。采用主、背板結構設計法,使得此智能節點的應用領域更為廣泛,適應性、通用性和功能都大大增強,對于節點應用程序的開發也更為靈活。3.1 主板電路設計 控制電路控制電路主要由神經元芯片,主背板接口電路和片外存儲器等組成。各元器件功能如下:(1)神經元芯片 采用Toshiba公司生產的3150芯片,它主要用于提供對節點的控制、實施與Lon網的通信、支持對現場信息的輸入輸出等應用服務。(2)片外存儲器 采用Atmel公司生產的AT29C256(FLASH存儲器)。AT29C256共有32K字節的地址空間,其中低16K字節空間用

18、來存放神經元芯片的固件(包括LonTalk協議等)。高16字節空間作為節點應用程序的存儲區。采用ISSI公司生產的IS61C256作為神經元芯片的外部RAM.。(3)主、背板接口電路 用于主板與多點I/O模塊的電氣連接。 通信電路通信電路的核心收發器是智能節點與Lon網之間的接口。目前,Echelon公司和其他開發商均提供了用于多種通信介質的收發器模塊。本智能節點采用Echelon公司生產的適用于雙絞線傳輸介質的FTT-10A收發器模塊。 附加電路附加電路主要包括晶振電路、復位電路和Service電路等。晶振電路為3150神經元芯片提供工作時鐘。復位電路用于在智能節點上電時產生復位操作。另外,

19、節點還將一個低壓中斷設備與3150的Reset管腳相連,構成對神經元芯片的低壓保護設計,提高節點的可靠性和穩定性。Service電路是專為下載應用程序的電路,Service指示燈對診斷神經元芯片固件狀態有指示作用。3.2 I/O擴展電路設計3150神經元芯片包含11個通用口,用戶可根據不同的需求進行靈活配置,以便于同外部設備進行接口。對于輸入和輸出(I/O)數量需求較大的外圍設備,11個I/O口顯然不能滿足。雖然可以依靠增加節點數量來滿足外圍要求,但是這樣做不僅成本價格高而且增加了安裝的工作量,維護也不方便。因此,通過增加外圍電路實現I/O擴展,成為多點I/O智能節點開發的重要部分。I/O擴展

20、設計包括多點模擬模塊設計和多點數字模塊設計。    多點模塊模塊設計多點模擬模塊主電路圖如圖2。TLC2543是支持SPI串行總線的11路模擬通道的12位逐次逼近型模/數轉換器。CS(Pin 15)片選信號端接IO0;DATA INPUT(Pin 17)為串行數據輸入,其中四位串行地址用來選擇下一個被轉換的模擬通道或測試電壓寄存器;DATA OUTPUT(Pin 16)輸出模/數轉換的結果;CLK是維持模/數轉換正常工作的時鐘。值得注意的是,時鐘信號頻率較高,任何一點干擾都可能影響模塊的正常工作。在CLK上串聯或并聯一支電阻可以起到明顯的抗干擾效果,保證模/數模塊

21、的穩定。(本模塊中,CLK接IO8,DATA INPUT接IO9,DATA OUTPUT接IO10)。TLC2543還有一個特點:IO9輸入數據的同時,IO10輸出的是上一次模/數轉換的值,因此在編寫NeuronC源程序時要注意模/數轉換的時序。選通兩支旁路電路:一支47F電解電容,對低頻起濾波作用;另一支為0.1F,對高頻起濾波作用。此模/數模塊沒有選用電壓基準,故在模/數芯片的參考電壓邊上接了一支0.1F電容,用以去除高頻干擾。 多點數字模塊設計多點數字模塊主要包括:輸入部分、輸出部分、雙向I/O三部分。通過擴展,模塊具16路數字輸入通道、15路數字輸出通道和3路雙向I/O通道。(1)輸入

22、部分 采用兩片8選1數據選擇器74LS151級聯,并將NeuronC3150的IO0IO3定義為Nibble Output方式,即半字節輸出方式;IO4定義為Bit Input方式,即位輸入方式。IO0IO3作為16路輸入通道的地址選通信號,與74LS151的地址輸入端(E、A、B、C管腳)相連。IO4作為數字信號入口,與74LS151的輸出端連接。(具體電路如圖3)下面的NeuronC源程序可完成對16路數字通道的定時掃描,定時時間為1s:IO_4 input bit io_tmp; /定義位輸入IOStimer repeating t_circle=1 ;/定義并初始化定時器When (timer_expires(t_circle)int i ;bit I_num,temp15;/定義循環變量通道狀態數組初始化通道號for(i=0;i<16;i+)io_out(io_mselect,I_n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論