摘要:本文介紹了一種新型的現場總線控制器SJA1000的基本原理結構及功能特點,重點敘述了基于CAN控制器SJA1000的智能控制系統硬件電路及軟件設計,給出了初始化程序。
SJA1000的特點及功能
SJA1000是一種應用于汽車和一般工業環境的獨立CAN總線控制器,經過簡單總線連接可完成CAN總線的物理層和數據鏈路層的所有功能。其硬件與軟件設計和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模式增加的各種功能,如:各種錯誤處理功能大大地提高了用戶程序處理各種通信錯誤的能力;支持熱插拔和自身信息接收功能,使用戶不必事先知道預設的波特率,從而大大地方便了通信的調試。
- 系統設計(21466)
相關推薦
基于MCP2515的多路CAN總線接口電路設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/76/wKgZomUMPeOAR3DfAAAx5e-2LfE913.png)
CAN總線通信系統的研究與設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/82/0A/pIYBAFw1QvyAMob1AACKPTeC5YY918.jpg)
基于VxWorks操作系統實現PC/104-CAN適配卡的驅動系統設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/C6/56/pIYBAF9WCFOAA2r0AAA3nugLXt4877.png)
基于SJA1000的完整CAN節點設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web2/M00/02/35/poYBAGDMZFKAaAgpAACfXFQo4ZM441.png)
CAN控制器SJA1000及其應用
CAN控制器SJA1000片選基址怎么確定?
CAN控制器和收發器的相關資料推薦
CAN總線控制器與DSP的接口
CAN總線基礎知識大合集
CAN總線應用sja1000 首發數據。
CAN通信控制器程序框架與實現
SJA1000PeliCAN模式下自收發問題
SJA1000PeliCAN模式下自收發問題
SJA1000CAN通信控制器作用
C8051F020型單片機與SJA1000型控制器接口電路
Small RTOS 下SJA1000驅動程序的編寫
一種基于DSP與SJA1000的CAN總線系統設計介紹
一種基于FPGA的飛行模擬器通信接口設計流程介紹
關于FPGA如何連接CAN收發器?
基于CAN總線的溫度測量節點設計
基于FPGA的CAN總線通信系統
多個智能儀表的CAN接口設計
如何用CH368驅動SJA1000 can總線板卡?
如何設計一種具有CAN總線接口的24位稱重數據采集系統?
如何設計基于FPGA的CAN總線控制器SJA1000軟核?
嵌入式系統的CAN總線設計
怎樣去解決ARM讀寫sja1000的問題呢?
急求關于SJA1000中斷INT引腳問題
采用8位單片機的CAN系統解決方案
采用P89C668單片機實現CAN總線接口設計
采用Infinenon C166系列單片機的CAN系統解決方
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于SJA1000 的CAN 總線系統智能節點設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000 在CAN 總線系統節點的應用
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN總線在分布式烤煙控制系統中的應用
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000在數據采集與控制系統中的應用
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000,CAN控制器性能典型應用電路的介紹以及基于S
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000,中文資料,pdf datasheet(獨立控
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于單片機和CAN控制器的嵌入式系統
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000獨立的CAN控制器應用指南
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000 Stand-alone CAN contro
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于CAN總線智能節點設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000控制器在多電機綜合保護器中的應用
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN總線 RS232接口的軟件設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于ADμC812的CAN總線智能節點的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/2A/wKgZomUMMvKAHD7FAABD1q5I6nA746.gif)
CAN總線在機車監控系統中的應用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/D7/wKgZomUMNeuAfWmsAAB-Xcx3Rco853.jpg)
CAN總線在機車監控系統中的應用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A4/E1/wKgZomUMNg-AIeIvAAB-Xcx3Rco435.jpg)
SHARC DSP與SJA1000的CAN總線接口設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/48/wKgZomUMN7mAFZDVAAAyhKfXibc043.jpg)
SJA1000控制器在多電機綜合保護器中的應用
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/52/wKgZomUMN-SABZPiAAEAPr_tyKM630.jpg)
基于CPLD的電池管理系統雙CAN控制器的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A5/6F/wKgZomUMOG6AdQaPAACm2L2BV3Y467.jpg)
基于LPC2119的自動化控制系統中CAN節點解決方案
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN總線PC適配卡設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/03/wKgZomUMO0iAfcFhAAAXsjoPXWI352.jpg)
基于AT89C51的CAN總線智能節點設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file1.elecfans.com//web2/M00/A6/51/wKgZomUMPN-APKIgAAAVf_vLq_E254.jpg)
基于CAN總線的智能節點設計
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN總線控制器SJA1000中文資料
![](https://skin.elecfans.com/images/2021-soft/load.png)
基于DSP與SJA1000的CAN總線系統設計方案
![](https://skin.elecfans.com/images/2021-soft/load.png)
DSP與CAN控制器SJA1000的總線接口的差別
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN集散式電源控制系統通信實現設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/56/9B/o4YBAFs_OpGARMtoAAANQ2Zia70501.jpg)
基于AT89C51單片機和CAN總線控制器SJA1000設計中央空調控制系統
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/BA/01/pIYBAF6Ob9-AJ3FpAADAHd3AorI455.png)
SJA1000獨立CAN控制器的詳細數據手冊和應用資料免費下載
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN控制器SJA1000的硬件結構和驗收濾波器的原理與應用資料說明
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000獨立CAN控制器的用戶手冊免費下載
![](https://skin.elecfans.com/images/2021-soft/load.png)
英創信息技術SJA1000的CAN通訊接口函數介紹
![](https://skin.elecfans.com/images/2021-soft/eye.png)
SJA1000獨立CAN控制器的應用指南資料免費下載
![](https://skin.elecfans.com/images/2021-soft/load.png)
SJA1000獨立控制器的數據手冊免費下載
![](https://skin.elecfans.com/images/2021-soft/load.png)
采用CAN總線控制器SJA1000實現控制電路接口的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/B7/48/o4YBAF5q9WyADA6JAACOwofBZjI025.png)
基于Lenze9326變頻器和SJA1000芯片實現多臺異步電機協調控制的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/B7/EF/pIYBAF5u4YWAA-TWAACAITst4QA099.png)
利用TL16C554和SJA1000芯片實現4路UART總線與CAN總線的通訊設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/B7/C6/o4YBAF5wLzSAMvdEAAAY8h4HVJc545.png)
基于CAN控制器SJA1000實現非智能適配卡的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/B9/DC/o4YBAF6TypOAR5a4AADwQNowN-E786.png)
基于FPGA的VHDL語言設計控制器SJA1000的IP軟核設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/BA/4D/pIYBAF6T2QOARYOMAAB-DMFubgU321.png)
sja1000引腳和功能
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/CF/5D/o4YBAF-uSG6AU6V8AABEyoS3sW8205.jpg)
基于單片機、SJA1000和總線技術實現裝備器材庫監控系統的設計
![](https://skin.elecfans.com/images/2021-soft/eye.png)
![](https://file.elecfans.com/web1/M00/E6/BD/pIYBAGBZUPeAfBTiAARUxi3X5D0955.png)
基于51單片機SJA1000 CAN通訊實現(代碼+原理圖)
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN控制器和收發器
![](https://skin.elecfans.com/images/2021-soft/load.png)
CAN總線節點的兩種硬件構成方案
![](https://skin.elecfans.com/images/2021-soft/eye.png)
SJA1000獨立CAN控制器中文手冊
![](https://skin.elecfans.com/images/2021-soft/load.png)
評論