a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于CAN控制器SJA1000的智能高速控制系統設計

基于CAN控制器SJA1000的智能高速控制系統設計

作者:武漢理工大學系統仿真及控制技術研究中心,陸前鋒,陳明昭 時間:2003-06-12 來源:電子設計應用 收藏
摘要:本文介紹了一種新型的現場總線控制器的基本原理結構及功能特點,重點敘述了基于CAN控制器系統硬件電路及軟件設計,給出了初始化程序。

關鍵詞:

SJA1000的特點及功能
SJA1000是一種應用于汽車和一般工業環境的獨立控制器,經過簡單總線連接可完成的物理層和數據鏈路層的所有功能。其硬件與軟件設計和PCA82C200的基本CAN模式BasicCAN兼容。同時,新增加的增強CAN模式PeliCAN還可支持CAN2.0B協議。SJA1000的主要特性如下 :1、管腳及電氣特性與獨立CAN總線控制器PCA82C200兼容 ;2、軟件與PCA82C200兼容(缺省為基本CAN模式);3、擴展接收緩沖器(64字節FIFO);4、支持CAN2.0B時支持11和29位標識符;5、位通訊速率為1Mbits/s;6、增強CAN模式(PeliCAN);7、采用24MHz時鐘頻率;8、支持多種微處理器接口;9、可編程CAN輸出驅動配置;10、工作溫度范圍為-40~+125℃。
CAN控制模塊構成
CAN控制模塊由接口管理邏輯、發送緩沖器、接收緩沖器(RXFIFO)、接收過濾器、位流處理器 (BSP)、位時序邏輯 (BTL)和錯誤管理邏輯(EML)組成。

圖1 系統硬件原理圖

新增功能
PeliCAN模式,將識別碼從11位擴展到29位,使CAN總線的節點數大大地擴大,從而使得CAN總線的適用范圍更加廣泛。除了擴展了識別碼,PeliCAN模式還有以下擴展功能:1、可讀 /寫訪問的錯誤計數器;2、可編程的錯誤計數器;3、最近一次錯誤代碼寄存器;4、對每一個CAN總線錯誤的中斷;5、具體控制為控制的仲裁丟失中斷;6、單次發送 (無重發);7、只聽模式 (無確認,無活動的出錯標志);8、支持熱插拔 (軟件位速率檢測);9、接收過濾器擴展 (4字節代碼,4字節屏蔽);10、自身信息接收 (自接收請求)。以上擴展功能為用戶更好地識別和處理發送和接收錯誤、更好地應用和調試CAN控制器提供了方便。

智能控制系統硬件電路設計
根據SJA1000的功能特點以及課題的實際需要,我們選用SJA1000作為CAN控制器,并且使用了CAN控制器接口芯片PCA82C250,PCA82C250是CAN協議控制器和物理總線之間的接口。此器件對總線提供差動發送能力,對CAN控制器提供差動接收能力。整個系統以Intel 16位單片機80C196KC為核心。INTEL 80C196KC采用68腳PLCC封裝形式,內部尋址采用寄存器結構,從而避免了以往8位單片機只能用累加器參與尋址而產生的瓶頸效應,大大提高了工作效率。其內部設有256個字節的RAM,帶有28個中斷源,可形成16個中斷矢量。在16MHz的晶振下,16乘16位的乘法只需1.75ms,32除16位除法指令只需3.2ms,尤其適合于高采樣頻率快速控制系統,它本身還帶有3路PWM輸出引腳,可直接驅動三相電動機,內部設有3個H窗口和1個V窗口,使特殊功能寄存器的數量和保護功能倍增。由于采用的是CMOS工藝,其功耗小,并有掉電保護和閑置功能。因此,采用INTEL公司生產的16位單片機80C196KC機作為控制系統的主控制器是十分理想的選擇。SJA1000在智能控制系統中的硬件配置與CAN總線接口的電路如圖 1所示。硬件電路中使用 PCA82C250的目的是為了增大通信距離,提高系統的瞬間抗干擾能力,保護總線,降低射頻干擾,實現熱防護等。
SJA1000在電路中是一個總線接口芯片,實現從上位機PC-CAN接口到現場微處理器之間的數據通信。對于微處理器而言,SJA1000是一個總線接口,SJA1000片內的存儲單元相對80C196KC來說是片外的數據存儲器,因此,可以按照擴展片外數據存儲器的形式來訪問SJA1000的寄存器地址。80C196KC是CAN控制器的微處理器,把80C196KC的ALE、RD、WR和 SJA1000的ALE、RD、WR相連就構成一個最小系統節點。80C196KC通過地址總線經GAL譯碼來選通 SJA1000,并由此決定CAN控制器各寄存器的地址,通過讀、寫外部數據存儲器的形式來訪問 SJA1000。在系統中我們將SJA1000的TX1腳懸空,RX1引腳接地,形成CAN協議所要求的電平邏輯。該電路的主要功能就是通過CAN總線接收來自上位機的數據進行分析組態,然后下傳給下位機的控制電路實現控制功能,當智能控制系統接收到下位機的上傳數據,SJA1000的中斷輸出INT腳就會被激活,出現一個由高電平到低電平的躍變,產生一個中斷,從而引發微處理器80C196KC產生中斷,通過中斷處理程序接收每一幀信息并通過CAN總線上傳給上位機進行分析,以便及時糾正誤碼、錯碼。
在進行電路設計時應當注意:為進一步提高系統抗干擾能力,在CAN控制器SJA1000和CAN控制器接口82C250之間加接6N137光電隔離芯片,并采用DC-DC變換器隔離電源;通信信號傳輸到導線的端點時會發生反射,反射信號會干擾正常信號的傳輸,因而總線兩端兩個124W的電阻對匹配總線阻抗起著相當重要的作用,忽略掉它們,會使數據通信的抗干擾性和可靠性大大降低,甚至無法通信;82C250第8腳與地之間的電阻RS稱為斜率電阻,它的取值決定了系統處于高速工作方式還是斜率控制方式。把該引腳直接與地相連,系統將處于高速工作方式。在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線;而在波特率較低、總線較短時,一般采用斜率控制方式,上升和下降的斜率取決于RS的阻值。通常情況下,15KW~200KW為RS較理想的取值范圍。在這種方式下,可以使用平行線或雙絞線作總線。

系統軟件設計
系統軟件設計的指導思想是系統上電后首先對80C196KC和SJA1000進行初始化,以確定工作主頻、波特率、輸出特性等,然后通過查詢方式獲取模數轉換采樣值,并把該值通過SJA1000傳送到CAN總線上由上位PC機進行顯示控制,而對CAN總線上來的信息則采用中斷方式,系統每接收到一幀信息,便產生一次中斷以觸發微處理器進入中斷,在中斷服務程序中讀取該幀信息并傳送到現場。為防止出現死機和干擾,程序中還采用看門狗技術進行定時監控。以下CAN總線的初始化設計,假設SJA1000的首址是A000H:
CR EQU A 0 0 0H ;控制寄存器
CMR EQU A 0 0 1H ;命令寄存器
SR EQU A 0 0 2H ;狀態寄存器
IR EQU A 0 0 3H ;中斷寄存器
ACR EQU A 0 0 4H ;驗收碼寄存器
AMR EQU A 0 0 5H ;驗收屏蔽寄存器
BTR0 EQU A 0 0 6H ;總線定時寄存器 0
BTR1 EQU A 0 0 7H ;總線定時寄存器 1
OCR EQU A 0 0 8H ;輸出控制寄存器
DI
LDB CL , # 03H
STB CL ,CR ;開放接收中斷,復位
請求位置1,以開始初始化。
LDB CL , # 01H  
STB CL ,ACR ;將節點1標識符送ACR
LDB CL , # 0FEH 
STB CL ,AMR ;驗收濾波
LDB CL , # 0 0H 
STB CL ,BTR0 ;傳送波特率為
250kbps
LDB CL , # 1 4H   
STB CL ,BTR1 ;定義位周期寬度 ,
采樣點位置及采樣次數選
LDB CL , # 0AAH 
STB CL ,OCR ;選擇正常輸出方式
,建立輸出驅動器的配置。
LDB CL, # 1AH
STB CL,CR ;復位請求位置0,初
始化結束
EI
對CAN控制器進行初始化,實際上就是對ACR、AMR、BTR0、BTR1、OCR這些寄存器進行訪問。只有當控制寄存器CR中的復位請求位為高時,訪問才被允許,否則既寫不進去,也讀不出正確的內容。對CR進行第一次寫操作,要設定將要開放的中斷類型,并置位復位請求,允許初始化開始。對ACR、AMR進行寫操作,要界定對什么樣的報文予以接收,因此有時稱它們為驗收濾波器。當滿足以下兩個條件之一,并存在空的接收緩存器(RBF)時,完整報文可被正確接收。
條件一 :ACR與報文標識符的高 8位在AMR為“0”相關位上對應相等。
條件二 :AMR=0FFH,即ACR的所有位均為不相關(或屏蔽)位。
這兩個寄存器也是編排標識符的基本依據。
對BTR0進行操作,可決定波特率預分頻器 (BRP)和同步跳轉寬度(SJW)的數值;對BTR1進行寫操作,可決定位周期的寬度,采樣點的位置及在每個采樣點進行采樣的次數。這兩個寄存器的內容,可唯一確定波特率及同步跳轉寬度。例如:程序中BTR0 =00H ,BTR1=14H ,晶振頻率為16MHz時,采樣時鐘周期tSCL等于兩倍的振蕩器時鐘周期。波特率剛好為1Mbps,同步跳轉寬度為一個tSCL。
在編寫程序時,還需特別注意的是,一個系統中的所有節點BTR0和BTR1的內容都應相同,否則控制系統將無法和上位機進行通信。對OCR進行寫操作,可確定CAN控制器的輸出方式,并建立起CAN總線要求的電平邏輯所需輸出驅動器的配置。對CR進行第二次操作主要是清復位請求位,使SJA1000返回正常運行狀態。成功的初始化SJA1000后,系統就可以應用它來傳輸報文。系統總體程序框圖及中斷服務程序框圖見本刊網站。

結語
實踐表明,SJA1000是一種較好的CAN總線控制器件,在PeliCAN模式下,其識別碼達29位,因而可滿足各種應用場合。在自動化控制系統中,合理安排這29位識別碼可以使許多問題得以簡化。此外PeliCAN模式增加的各種功能,如:各種錯誤處理功能大大地提高了用戶程序處理各種通信錯誤的能力;支持熱插拔和自身信息接收功能,使用戶不必事先知道預設的波特率,從而大大地方便了通信的調試。■

參考文獻
1 PHLIPS Semiconductor公司. DATA HANDBOOK 80C51-based 8-bit Microcontrollers,1995.
2 肖海榮 周風余.基于SJA1000的CAN總線系統智能節點設計 計算機自動測量與控制 2001、9(2)
3 鄔寬明.CAN總線原理和應用,北京航空航天大學出版社
4 SJA1000獨立CAN控制器介紹,廣州周立功單片機發展有限公司.
5 獨立CAN器件SJA1000的應用,南京工程學院學報,2002年3月.

dc相關文章:dc是什么


分頻器相關文章:分頻器原理
晶振相關文章:晶振原理
雙絞線傳輸器相關文章:雙絞線傳輸器原理


評論


相關推薦

技術專區

關閉