第六章CAN硬件设计CUMT_第1页
第六章CAN硬件设计CUMT_第2页
第六章CAN硬件设计CUMT_第3页
第六章CAN硬件设计CUMT_第4页
第六章CAN硬件设计CUMT_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、监控系统与现场总线监控系统与现场总线1CUMTCUMT监控系统与现场总线监控系统与现场总线6 CAN的开发与设计的开发与设计概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用n CAN节点结构节点结构n 系统构成系统构成n 通信控制:寄存器设置、收发缓冲器、认可滤波器通信控制:寄存器设置、收发缓冲器、认可滤波器监控系统与现场总线监控系统与现场总线2CUMTCUMT监控系统与现场总线监控系统与现场总线6.4 CAN 的通信功能的应用的通信功能的应用n 通过通过CANCAN总线建立通信的过程:总线建立通信的过程:系统上电后系统上电后设置主控制器与设置主控制器与

2、SJA1000SJA1000相关的硬相关的硬件及软件件及软件SJA1000SJA1000上电复位后,设置上电复位后,设置CANCAN控制控制器的通信功能:方式选择、认可滤器的通信功能:方式选择、认可滤波器的设置、位定时信息等。波器的设置、位定时信息等。在应用主程序中在应用主程序中准备要发送的数据并激活准备要发送的数据并激活SJA1000SJA1000将数据发出将数据发出处理处理CANCAN控制器接收到的报文控制器接收到的报文处理在通信过程中发生的错误处理在通信过程中发生的错误 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现

3、场总线3CUMTCUMT监控系统与现场总线监控系统与现场总线6.4.1 初始化初始化 n SJA1000SJA1000在上电或硬复拉后,必须初始化以便进行通信。在上电或硬复拉后,必须初始化以便进行通信。n 在运行过程中还可以通过主控制器对其组态进行修改(重新在运行过程中还可以通过主控制器对其组态进行修改(重新组态),在进行重新组态时,首先要进入复位状态。组态),在进行重新组态时,首先要进入复位状态。n 图图6-126-12给出了初始化程序的流程。给出了初始化程序的流程。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线4

4、CUMTCUMT监控系统与现场总线监控系统与现场总线概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线5CUMTCUMT监控系统与现场总线监控系统与现场总线n 上电复位后,主控制器要运行其复位子程序,然后进入初始化上电复位后,主控制器要运行其复位子程序,然后进入初始化SJA1000SJA1000的子程序,因为要组态的寄存器只有在复位模式(的子程序,因为要组态的寄存器只有在复位模式(Reset ModeReset Mode)下,才能被写入。)下,才能被写入。主控制器必须在复位模式下对控制段的下列寄存器进行设置。主控制器必须

5、在复位模式下对控制段的下列寄存器进行设置。(1)模式寄存器(仅对)模式寄存器(仅对PeliCAN模式)选择下列运行方式:模式)选择下列运行方式:n 接收滤波器方式接收滤波器方式n 自检模式自检模式n 监听模式监听模式概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线6CUMTCUMT监控系统与现场总线监控系统与现场总线(2)时钟分频寄存器:)时钟分频寄存器:n BasicCAN或或PeliCAN模式模式n 时钟输出(时钟输出(CLKOUT)是否有效)是否有效n 接收比较器是否旁路接收比较器是否旁路n TX1输出脚是否用作

6、专用接收中断输出输出脚是否用作专用接收中断输出(3)认可码与认可码屏蔽寄存器:)认可码与认可码屏蔽寄存器:n 定义要接收报文的认可码定义要接收报文的认可码n 定义认可码与报文进行比较的相关位定义认可码与报文进行比较的相关位 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线7CUMTCUMT监控系统与现场总线监控系统与现场总线(4)总线定时寄存器)总线定时寄存器n 定义总线的波特率定义总线的波特率n 定义在位周期中的采样点位值定义在位周期中的采样点位值n 定义采样点数目定义采样点数目(5)输出控制寄存器)输出控制寄存器n

7、 定义定义CAN总线输出脚总线输出脚 TX0和和TX1的输出方式的输出方式n 定义输出脚定义输出脚TX0、TX1的组态:悬浮、上拉、下拉或推的组态:悬浮、上拉、下拉或推挽及极性挽及极性n 正常输出方式正常输出方式、时钟输出方式时钟输出方式、双相输出方式或测试双相输出方式或测试方式方式概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线8CUMTCUMT监控系统与现场总线监控系统与现场总线上述的组态信息写入上述的组态信息写入SJA1000SJA1000的控制段后,就可以通过的控制段后,就可以通过清除清除R/RR/R标志进入运

8、行状态标志进入运行状态,但必须检验这个标志位是否真正被,但必须检验这个标志位是否真正被清除了,并且确已进入运行模式,否则程序不应继续往下清除了,并且确已进入运行模式,否则程序不应继续往下执行。执行。在设置在设置SJA1000SJA1000寄存器前,主控制器应该通过读寄存器前,主控制器应该通过读R/RR/R(Reset Reset mode/Requestmode/Request)标志来确认)标志来确认SJA1000SJA1000确在复位方式,确在复位方式,因为要因为要组态的寄存器只有在复位模式(组态的寄存器只有在复位模式(Reset ModeReset Mode)下,才能被)下,才能被写入。写

9、入。(RR(RR复位请求复位请求 在控制寄存器在控制寄存器(CR)(CR)中中) )概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线9CUMTCUMT监控系统与现场总线监控系统与现场总线参数定义参数定义(起始地址:(起始地址:8000H) MODE EQU 8000H ;模式寄存器;模式寄存器 CMR EQU 8001H ;命令寄存器;命令寄存器 SREQU 8002H ;状态寄存器;状态寄存器 CDR EQU 801FH ;时钟分频器;时钟分频器 ACREQU 8010H ;认可码寄存器;认可码寄存器 AMR EQU

10、 8014H ;认可码屏蔽寄存器;认可码屏蔽寄存器 BTR0 EQU 8006H ;总线定时寄存器;总线定时寄存器0 BTR1EQU 8007H ;总线定时寄存器;总线定时寄存器1 OCREQU 8008H ;输出控制寄存器;输出控制寄存器 CANTXB EQU 8010H ;发送缓冲区;发送缓冲区 CANRXB EQU 8020H ; can接收缓冲区首地址接收缓冲区首地址监控系统与现场总线监控系统与现场总线10CUMTCUMT监控系统与现场总线监控系统与现场总线CINIT:MOV DPTR,#MODE ;模式寄存器模式寄存器 MOV A,#09H ;复位复位SJA1000,设置单滤波方式,

11、设置单滤波方式 MOVX DPTR,A监控系统与现场总线监控系统与现场总线11CUMTCUMT监控系统与现场总线监控系统与现场总线MOV DPTR,#CDR;时钟分频寄存器时钟分频寄存器MOV A,#0EFH;PELICAN模式模式,CLKOUT关关MOVX DPTR,AMOV DPTR,#BTR0 ;总线定时器总线定时器0MOV A,#0C5HMOVX DPTR,AMOV DPTR,#BTR1 ;总线定时器总线定时器1MOV A,#0A5H MOVX DPTR,A监控系统与现场总线监控系统与现场总线12CUMTCUMT监控系统与现场总线监控系统与现场总线n 波特率波特率1/(tTseg1+t

12、Tseg2+tSYN) tSYN tSCL监控系统与现场总线监控系统与现场总线13CUMTCUMT监控系统与现场总线监控系统与现场总线n 例:例:24MHz晶振,晶振,BTR0=0C5H,BTR1=0A5H。 BTR01100 0101 ; BTR1=1010 0101tSCL 2(412011)/241060.510-6tTseg1=(80412011) tSCL6 tSCLtTseg2=(4021101) tSCL3 tSCL波特率波特率1/(tTseg1+tTseg2+tSCL)1/10 tSCL=200103监控系统与现场总线监控系统与现场总线14CUMTCUMT监控系统与现场总线监控

13、系统与现场总线 MOV DPTR,#AMR ;接收屏蔽寄存器接收屏蔽寄存器 MOV R6,#04H MOV R0,#DAMR ;amr在内部在内部ram中的首地址中的首地址SAMR: MOV A ,R0 MOVX DPTR,A ;接收屏蔽寄存器赋初值接收屏蔽寄存器赋初值 INC DPTR INC R0 DJNZ R6,SAMR监控系统与现场总线监控系统与现场总线15CUMTCUMT监控系统与现场总线监控系统与现场总线 MOV DPTR,#ACRMOV R6,#04HMOV R0,#DACRSACR:MOV A, R0MOVX DPTR,AINC DPTR INC R0DJNZ R6,SACR监

14、控系统与现场总线监控系统与现场总线16CUMTCUMT监控系统与现场总线监控系统与现场总线 MOV DPTR,#MODE MOV A,#08H MOVX DPTR,A ;设置单滤波接收方式设置单滤波接收方式;并返回工作状态并返回工作状态监控系统与现场总线监控系统与现场总线17CUMTCUMT监控系统与现场总线监控系统与现场总线n 报文的发送是报文的发送是CANCAN控制器控制器SJA1000SJA1000依据依据CANCAN协议规范自动协议规范自动进行的;进行的;主控制器将要发送的报文写入主控制器将要发送的报文写入SJA1000SJA1000的发送缓冲区,的发送缓冲区,并将发送请求位(并将发送

15、请求位(Transmit RequestTransmit Request)置;)置;发送过程既可以采用中断方式,也可以采用查询方式发送过程既可以采用中断方式,也可以采用查询方式(查询(查询SJA1000SJA1000控制段的状态标志)。控制段的状态标志)。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用6.4.2 数据的发送数据的发送监控系统与现场总线监控系统与现场总线18CUMTCUMT监控系统与现场总线监控系统与现场总线1) 采用中断方式的数据发送采用中断方式的数据发送 监控系统与现场总线监控系统与现场总线19CUMTCUMT监控系统与现场总线监控系

16、统与现场总线n CANCAN的发送中断和主控制器的外部中断(用来联接的发送中断和主控制器的外部中断(用来联接SJA1000SJA1000的的INTINT信号)应在报文发送开始前开放。信号)应在报文发送开始前开放。n 中断允许标志在控制寄存器中定义(中断允许标志在控制寄存器中定义(BasicCANBasicCAN)或在中断允)或在中断允许寄存器中定义(许寄存器中定义(PeliCANPeliCAN方式)。方式)。n 一旦一旦SJA1000SJA1000开始发送报文,发送缓冲器就被封锁,不能写开始发送报文,发送缓冲器就被封锁,不能写入新的报文。主控制器必须查询入新的报文。主控制器必须查询“发送缓冲器

17、的状态标志发送缓冲器的状态标志”(状态寄存器)是否可以将新的报文写入。(状态寄存器)是否可以将新的报文写入。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线20CUMTCUMT监控系统与现场总线监控系统与现场总线发送缓冲器闭锁发送缓冲器闭锁 主控制器将新报文暂存在它自己的存贮器中,并设置一个标主控制器将新报文暂存在它自己的存贮器中,并设置一个标志,标明一个报文等待发送。志,标明一个报文等待发送。当发送完当前报文后,当发送完当前报文后,CAN控制器将发出中断请求,并进入控制器将发出中断请求,并进入中断服务程序处理暂存报

18、文的发送。中断服务程序处理暂存报文的发送。 n 针对针对CAN控制器中断的响应,主控制器要查询中断的类型控制器中断的响应,主控制器要查询中断的类型,是否是发送中断,要查询是否还有报文要发送。,是否是发送中断,要查询是否还有报文要发送。n 等待发送的一个报文将拷贝到发送缓冲器,并清除报文等待等待发送的一个报文将拷贝到发送缓冲器,并清除报文等待标志。置发送请求标志,启动标志。置发送请求标志,启动SJA1000的发送过程。的发送过程。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线21CUMTCUMT监控系统与现场总线监控系

19、统与现场总线发送缓冲器释放发送缓冲器释放 主控制器将要发送的新报文写入发送缓冲器,并置主控制器将要发送的新报文写入发送缓冲器,并置“发送请发送请求求“标志,启动标志,启动SJA1000的发送过程。的发送过程。 当成功发送完一个报文后,当成功发送完一个报文后,CAN控制器就会发出一个发送控制器就会发出一个发送中断。中断。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线22CUMTCUMT监控系统与现场总线监控系统与现场总线2) 查询方式的报文发送查询方式的报文发送n 在查询方式下在查询方式下CANCAN发送中断应被屏蔽

20、。发送中断应被屏蔽。n 一旦报文开始发送,发送缓冲器写闭锁,因此主控制器要查一旦报文开始发送,发送缓冲器写闭锁,因此主控制器要查询询“发送缓冲器状态发送缓冲器状态”标志,确定是否可以将一个新的报文标志,确定是否可以将一个新的报文写入发送缓冲器(写入发送缓冲器(TXBufferTXBuffer) 。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线23CUMTCUMT监控系统与现场总线监控系统与现场总线若发送缓冲器写闭锁若发送缓冲器写闭锁n 循环查询状态寄存器,主控制器进入等待状态,直到发送循环查询状态寄存器,主控制器进

21、入等待状态,直到发送缓冲器空。缓冲器空。若发送缓冲器空若发送缓冲器空n 主控制器将新报文写入发送缓冲器主控制器将新报文写入发送缓冲器TXBuffer,并置发送请,并置发送请求标志求标志TR=1,启动报文的发送过程。,启动报文的发送过程。n 发送状态发送状态TS和接收状态和接收状态RS可以用来检测可以用来检测CAN控制器是否在控制器是否在空闲状态,发送缓冲器状态空闲状态,发送缓冲器状态TBS和发送完成状态和发送完成状态TCS标志可标志可以用来检测报文是否成功发送。以用来检测报文是否成功发送。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线

22、监控系统与现场总线24CUMTCUMT监控系统与现场总线监控系统与现场总线发送子程序发送子程序TDATA: MOV DPTR,#SR ;状态寄存器状态寄存器 MOVX A,DPTR ;从从SJA1000 读入状态寄存器值读入状态寄存器值 JB ACC.4,TDATA ;判断是否正在接收判断是否正在接收,正在接收则等待正在接收则等待TS0:MOVX A,DPTRJNB ACC.3,TS0 ;判断上次发送是否完成判断上次发送是否完成,未完成则等待发送完成未完成则等待发送完成TS1:MOVX A,DPTRJNB ACC.2,TS1 ;判断发送缓冲区是否锁定判断发送缓冲区是否锁定,锁定则等待锁定则等待

23、监控系统与现场总线监控系统与现场总线25CUMTCUMT监控系统与现场总线监控系统与现场总线TS2:MOV DPTR #CANTXB ; SJA1000发送缓存区首址发送缓存区首址 MOV A #88H ;发送数据长度为;发送数据长度为8个个 ;字节的扩展帧格式报文;字节的扩展帧格式报文 MOVX DPTR A监控系统与现场总线监控系统与现场总线26CUMTCUMT监控系统与现场总线监控系统与现场总线监控系统与现场总线监控系统与现场总线27CUMTCUMT监控系统与现场总线监控系统与现场总线 INC DPTR ;1MOV A,#0AAH; 标识符赋值标识符赋值MOVX DPTR,AINC DP

24、TR ;2MOV A,#0AAHMOVX DPTR,AINC DPTR ;3MOV A,#0AAHMOVX DPTR,AINC DPTR ;4MOV A,#0AAHMOVX DPTR,A监控系统与现场总线监控系统与现场总线28CUMTCUMT监控系统与现场总线监控系统与现场总线向发送缓冲区写数据向发送缓冲区写数据 MOV R1,A ;数据长度另存数据长度另存r1中中MOV R0,#TRDATA ;cpu发送数据区首地址发送数据区首地址 MTBF:MOV A,R0INC DPTRMOVX DPTR,AINC R0DJNZ R1,MTBF 监控系统与现场总线监控系统与现场总线29CUMTCUMT监

25、控系统与现场总线监控系统与现场总线MOV DPTR,#CMR ;命令寄存器地址命令寄存器地址MOV A,#01H ;发送请求置;发送请求置1MOVX DPTR,A ;启动启动SJA1000 发送发送RET监控系统与现场总线监控系统与现场总线30CUMTCUMT监控系统与现场总线监控系统与现场总线6.4.3 中止发送中止发送请求发送的报文可以用请求发送的报文可以用“中止发送中止发送”命令来中止发送过程命令来中止发送过程这一特性可以用来发送一个比已写入发送缓冲器这一特性可以用来发送一个比已写入发送缓冲器TXBuff中中的报文更紧急的报文。的报文更紧急的报文。图图6-15给出了中断方式下的中止发送程

26、序流程图,这个流给出了中断方式下的中止发送程序流程图,这个流程图演示了中止当前报文而发送一个优先级别高的报文。程图演示了中止当前报文而发送一个优先级别高的报文。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线31CUMTCUMT监控系统与现场总线监控系统与现场总线6.4.4 接收报文接收报文接收报文是接收报文是CANCAN控制器依据控制器依据CANCAN协议规范自动进行,接收报协议规范自动进行,接收报文被放在接收缓冲器文被放在接收缓冲器RXBufferRXBuffer中。中。一个报文是否可以传送给主控制器,由状态寄存

27、器的接收一个报文是否可以传送给主控制器,由状态寄存器的接收缓冲器状态缓冲器状态RBSRBS和接收中断标志确定(若中断开放)。和接收中断标志确定(若中断开放)。主控制器要将有效数据读入其内存,释放接收缓冲器主控制器要将有效数据读入其内存,释放接收缓冲器RXBufferRXBuffer,并对报文进行处理。,并对报文进行处理。传送过程既可由中断控制,也可通过查询状态寄存器标志传送过程既可由中断控制,也可通过查询状态寄存器标志来完成。来完成。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线32CUMTCUMT监控系统与现场总

28、线监控系统与现场总线CAN控制器的接收中断应屏蔽,主控制器读控制器的接收中断应屏蔽,主控制器读SJA1000状态寄存器(周状态寄存器(周期性的)、查询接收缓冲器状态标志期性的)、查询接收缓冲器状态标志RBS,看接收缓冲器中是否有报,看接收缓冲器中是否有报文存在。文存在。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用1) 查询方式的接收过程查询方式的接收过程若接收缓冲器空,主控制若接收缓冲器空,主控制器继续其它的程序,直到器继续其它的程序,直到下一个查询接收缓冲器状下一个查询接收缓冲器状态命令。态命令。若接收缓冲器状态标志指若接收缓冲器状态标志指示示“

29、满满”,接收缓冲器中,接收缓冲器中已接收到一个或多个报文已接收到一个或多个报文。 监控系统与现场总线监控系统与现场总线33CUMTCUMT监控系统与现场总线监控系统与现场总线主控制器,读取第一个报文然后发送释放接收缓冲器主控制器,读取第一个报文然后发送释放接收缓冲器RXbufferRXbuffer命令,主控制器可以在处理完一个报文后,再查命令,主控制器可以在处理完一个报文后,再查询其他报文的存在。询其他报文的存在。主控制器也可以将所有报文通过查询读出后,再一起对报主控制器也可以将所有报文通过查询读出后,再一起对报文进行处理。在这种情况下,主控制器内的报文存贮器应文进行处理。在这种情况下,主控制

30、器内的报文存贮器应有足够的空间,可以存入多个报文。有足够的空间,可以存入多个报文。在传输并处理一个报文或所有报文后,主控制器可以继续在传输并处理一个报文或所有报文后,主控制器可以继续执行其它的程序。执行其它的程序。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线34CUMTCUMT监控系统与现场总线监控系统与现场总线CAN控制器的接收中断和主控制器用于连接控制器的接收中断和主控制器用于连接CAN控制器接控制器接收中断信号的外部中断源,应在接收报文开始前开放。收中断信号的外部中断源,应在接收报文开始前开放。概述概述系统

31、构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用2)中断方式的接收)中断方式的接收接收中断允许标接收中断允许标志在控制寄存器志在控制寄存器(BasicCAN模模式)式)或在中断允许寄或在中断允许寄存器(存器(PeliCAN 模式)。模式)。监控系统与现场总线监控系统与现场总线35CUMTCUMT监控系统与现场总线监控系统与现场总线若若SJA1000SJA1000已经接收到了报文,也就是说该报文已经通过认可已经接收到了报文,也就是说该报文已经通过认可滤波并已存放到接收栈中,此时就会产生接收中断。滤波并已存放到接收栈中,此时就会产生接收中断。主控制器可以立即响应中断,将

32、接收报文读入主控制器的报主控制器可以立即响应中断,将接收报文读入主控制器的报文缓冲器中,发出释放文缓冲器中,发出释放CANCAN接收缓冲器命令。接收缓冲器命令。若接收栈(若接收栈(Receive FIFOReceive FIFO)中还有报文,)中还有报文,CANCAN控制器将产生新控制器将产生新的接收中断。的接收中断。没有必要在一次接收中断响应中,将接收栈中的所有报文一没有必要在一次接收中断响应中,将接收栈中的所有报文一次性读出。次性读出。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线36CUMTCUMT监控系统与

33、现场总线监控系统与现场总线概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线37CUMTCUMT监控系统与现场总线监控系统与现场总线接收子程序接收子程序REC: MOV DPTR,#SR MOVX A,DPTR JB ACC.4,REC ;判断判断sja1000是否正在接收报文,是则等待是否正在接收报文,是则等待 JNB ACC.0,REC ;读出状态寄存器中的值,判断是否有报文,有则接收,读出状态寄存器中的值,判断是否有报文,有则接收,无则返回无则返回监控系统与现场总线监控系统与现场总线38CUMTCUMT监控系统与现

34、场总线监控系统与现场总线ACCEPT: MOV DPTR,#CANRXB MOVX A,DPTR ANL A,#0FH ;截取字节长度截取字节长度 MOV R2,A INC DPTR ;四字节标识符四字节标识符 INC DPTR INC DPTR INC DPTR MOV R1,#CPURBF监控系统与现场总线监控系统与现场总线39CUMTCUMT监控系统与现场总线监控系统与现场总线 RDATA: INC DPTR ;数据第一字节数据第一字节 MOVX A,DPTR MOV R1,A INC R1 DJNZ R2,RDATA ;循环读取数据循环读取数据RELE: MOV DPTR,#CMR M

35、OV A,#04H ;释放释放CAN 接收缓冲区接收缓冲区 MOVX DPTR,A RET监控系统与现场总线监控系统与现场总线40CUMTCUMT监控系统与现场总线监控系统与现场总线数据过载处理数据过载处理如果接收栈已满,而此时又在接收一个新报文,则如果接收栈已满,而此时又在接收一个新报文,则SJA1000SJA1000的的状态寄存器中的数据过载状态位将置,通知主控制器数据状态寄存器中的数据过载状态位将置,通知主控制器数据过载。过载。若中断开放,若中断开放,CANCAN控制器将发出数据数据过载中断。控制器将发出数据数据过载中断。进入数据过载状态,说明主控制器已极度过载,它没有足够进入数据过载状

36、态,说明主控制器已极度过载,它没有足够的时间及时将接收缓冲器中的报文取走。的时间及时将接收缓冲器中的报文取走。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线41CUMTCUMT监控系统与现场总线监控系统与现场总线引发数据过载的报文已丢失,该数据的丢失有可能引起系统引发数据过载的报文已丢失,该数据的丢失有可能引起系统的不稳定。的不稳定。通常在系统设计时,要使系统有足够的时间来接收和处理报通常在系统设计时,要使系统有足够的时间来接收和处理报文,以避免数据过载状态的发生。文,以避免数据过载状态的发生。如果不可能完全避免,在

37、主控制器应编制一个特殊的应用程如果不可能完全避免,在主控制器应编制一个特殊的应用程序来处理数据过载状态。序来处理数据过载状态。响应接收中断后,读出产生中断的报文,释放接收缓冲器。响应接收中断后,读出产生中断的报文,释放接收缓冲器。检验接收缓冲器状态位,看接收栈中是否还有有效报文要读检验接收缓冲器状态位,看接收栈中是否还有有效报文要读。这样响应一次中断,就可以将所有报文读出。这样响应一次中断,就可以将所有报文读出。概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线42CUMTCUMT监控系统与现场总线监控系统与现场总线必须

38、将程序安排恰当,使得读出一个报文并处理该报文程序必须将程序安排恰当,使得读出一个报文并处理该报文程序的执行时间,小于的执行时间,小于SJA1000接收一个新报文的时间。否则,有接收一个新报文的时间。否则,有可能发生主控制器程序死循环,即主控制器程序一直停留在可能发生主控制器程序死循环,即主控制器程序一直停留在中断服务程序中,无限循环地读报文。中断服务程序中,无限循环地读报文。如果检测到数据过载,就要运行一个特殊的数据过载处理程如果检测到数据过载,就要运行一个特殊的数据过载处理程序。基于以下两种情况:序。基于以下两种情况:1、发生数据过载同时产生接收中断:报文可能已丢失。发生数据过载同时产生接收

39、中断:报文可能已丢失。2、发生数据过载,但没有产生接收中断:报文可能已丢失,接发生数据过载,但没有产生接收中断:报文可能已丢失,接收中断可能已被屏蔽。收中断可能已被屏蔽。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线43CUMTCUMT监控系统与现场总线监控系统与现场总线6.4.5 中断中断在在PeliCAN模式下,模式下,SJA1000有有8个中断源(个中断源(BasicCAN模式模式下有下有5个),这些中断源均可用来使主控制器对个),这些中断源均可用来使主控制器对CAN控制器控制器的某种状态作出立即响应。的某种

40、状态作出立即响应。出现中断状态时,出现中断状态时,SJA1000SJA1000将中断输出信号(将中断输出信号(1616脚)置为低脚)置为低电平,该输出信号将一直维持低电平,直到主控制器响应电平,该输出信号将一直维持低电平,直到主控制器响应中断并读出中断并读出SJA1000SJA1000的中断寄存器内容。的中断寄存器内容。 概述概述系统构成系统构成CANCAN通信的通信的控制控制CANCAN通信的通信的应用应用监控系统与现场总线监控系统与现场总线44CUMTCUMT监控系统与现场总线监控系统与现场总线6.5 PeliCAN方式的特殊功能方式的特殊功能接收栈报文计数器直接内存访问接收栈报文计数器直

41、接内存访问 n SJA1000的寄存器、报文缓冲器,对于主控制器而言,均可的寄存器、报文缓冲器,对于主控制器而言,均可作为外设寄存器,通过分时数据地址总线就可以访问这些寄作为外设寄存器,通过分时数据地址总线就可以访问这些寄存器。存器。n 在通常的运行方式下,在通常的运行方式下,CAN的地址范围为的地址范围为031,包括初始,包括初始化状态和控制寄存器等。化状态和控制寄存器等。CAN地址地址1628为报文缓冲器,主为报文缓冲器,主控制器对这些地址写操作时为发送缓冲器(控制器对这些地址写操作时为发送缓冲器(TxBuffer),读),读操作时为接收缓冲器(操作时为接收缓冲器(RxBuffer)。)。

42、监控系统与现场总线监控系统与现场总线45CUMTCUMT监控系统与现场总线监控系统与现场总线n 接收栈的地址为接收栈的地址为3295(64字节)。字节)。n 发送缓冲器也是内部存发送缓冲器也是内部存储器(储器(RAM)的一部分)的一部分,内部存储器共,内部存储器共80字节字节,其,其CAN地址为地址为96108。 监控系统与现场总线监控系统与现场总线46CUMTCUMT监控系统与现场总线监控系统与现场总线CAN总线实验总线实验监控系统与现场总线监控系统与现场总线47CUMTCUMT监控系统与现场总线监控系统与现场总线CAN总线数据收发实验总线数据收发实验由装置甲来发送数据,装置乙的数码管来显示

43、接收到的数据由装置甲来发送数据,装置乙的数码管来显示接收到的数据,具体通信过程如下:,具体通信过程如下:1 1、甲的单片机将数据处理后发送到、甲的单片机将数据处理后发送到CANCAN总线控制器的发送缓总线控制器的发送缓冲区中,并将数据通过冲区中,并将数据通过CANCAN总线发送给装置乙。总线发送给装置乙。2 2、乙装置将数据从、乙装置将数据从CANCAN总线控制器的接收缓冲区中提取出来总线控制器的接收缓冲区中提取出来并通过数码管显示出来。并通过数码管显示出来。监控系统与现场总线监控系统与现场总线48CUMTCUMT监控系统与现场总线监控系统与现场总线监控系统与现场总线监控系统与现场总线49CU

44、MTCUMT监控系统与现场总线监控系统与现场总线CH451显示模块显示模块 n CH451 CH451 是一个整合了数码管显示驱动和键盘扫描控制以及是一个整合了数码管显示驱动和键盘扫描控制以及PP 监监控的多功能外围芯片控的多功能外围芯片。n CH451 CH451 内置内置RCRC振荡电路,可以动态驱动振荡电路,可以动态驱动8 8位数码管或者位数码管或者6464位位LEDLED,具有具有BCDBCD译码、闪烁、移位等功能;同时还可以进行译码、闪烁、移位等功能;同时还可以进行64 64 键的键盘键的键盘扫描;扫描;CH451 CH451 通过可以级联的串行接口与单片机等交换数据;并通过可以级联

45、的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能且提供上电复位和看门狗等监控功能。监控系统与现场总线监控系统与现场总线50CUMTCUMT监控系统与现场总线监控系统与现场总线监控系统与现场总线监控系统与现场总线51CUMTCUMT监控系统与现场总线监控系统与现场总线n 单片机向单片机向CH451 CH451 输出串行数据的过程:输出串行数据的过程: 输出一位数据,即向输出一位数据,即向DINDIN输出最低位数据输出最低位数据B0B0,并向,并向DCLKDCLK输出输出低电平脉冲(从高电平变为低电平再恢复为高电平),其低电平脉冲(从高电平变为低电平再恢复为高电平),其中包括一个上

46、升沿使中包括一个上升沿使CH451 CH451 输入位数据;输入位数据; 以同样的方式,输出位数据以同样的方式,输出位数据B1-B11B1-B11; 向向LOAD LOAD 输出低电平脉冲,其中包括一个上升沿使输出低电平脉冲,其中包括一个上升沿使CH451 CH451 加加载串行数据。载串行数据。监控系统与现场总线监控系统与现场总线52CUMTCUMT监控系统与现场总线监控系统与现场总线n CH451CH451的操作命令均为的操作命令均为1212位,下表列出了位,下表列出了CH451 CH451 的各个操作命令所对应的各个操作命令所对应的的1212位串行数据。其中,标注为位串行数据。其中,标注

47、为x x 的位表示该位可以是任意值;标有名的位表示该位可以是任意值;标有名称的位表示该位在称的位表示该位在CH451CH451芯片内部具有相应的寄存器芯片内部具有相应的寄存器类别判断类别判断命令设置或显示的数据编码命令设置或显示的数据编码监控系统与现场总线监控系统与现场总线53CUMTCUMT监控系统与现场总线监控系统与现场总线初始化初始化n START:CLR DIN n ;输出一个低电平脉冲,以通知输出一个低电平脉冲,以通知CH451为为4线串行接口线串行接口nSETB DCLK ;置为默认的高电平置为默认的高电平nSETB DINnSETB LOADnSETB DOUT nMOV B,#

48、04H ;设置系统参数命令设置系统参数命令nMOV A,#07H n ;WATCHDOG使能,开键盘、显示功能使能,开键盘、显示功能nLCALL WRITEnMOV B,#05H ;设置显示参数设置显示参数nMOV A,#0DH ;不译码,不译码,4位显示,亮度为位显示,亮度为D级级 nLCALL WRITE监控系统与现场总线监控系统与现场总线54CUMTCUMT监控系统与现场总线监控系统与现场总线数据读取数据读取n WRITE: CLR ET0 ;禁止键盘中断禁止键盘中断nCLR LOAD ;命令开始命令开始nMOV R7,#08H ;将将ACC中中8位送出位送出n WRITE_8: RRC

49、 A ;低位在前,高位在后低位在前,高位在后nCLR DCLKnMOV DIN,C ;送出一位数据送出一位数据nSETB DCLK ;产生时钟上升沿通知产生时钟上升沿通知n DJNZ R7,WRITE_8 ;位数据未完,继续位数据未完,继续nMOV A,BnMOV R7,#04H ;将将B中中4位送出位送出n WRITE_4: RRC A ;低位在前低位在前,高位在后高位在后nCLR DCLKnMOV DIN,CnSETB DCLKnDJNZ R7,WRITE_4nSETB LOAD ;产生加载上升沿通知产生加载上升沿通知nSETB ET0 ;开键盘中断开键盘中断nRET低低8位位高高4位位监

50、控系统与现场总线监控系统与现场总线55CUMTCUMT监控系统与现场总线监控系统与现场总线显示显示8888n MOV DIG0,#7FHnMOV DIG1,#7FHnMOV DIG2,#7FHnMOV DIG3,#7FHnMOV B,#08H ;DIG0的显示的显示nMOV A,DIG0 nLCALL WRITEnMOV B,#09H ;DIG1的显示的显示nMOV A,DIG1 nLCALL WRITEnMOV B,#0AH ;DIG2的显示的显示nMOV A,DIG2 nLCALL WRITEnMOV B,#0BH ;DIG3的显示的显示nMOV A,DIG3 nLCALL WRITE n

51、MOV R0,#50H监控系统与现场总线监控系统与现场总线56CUMTCUMT监控系统与现场总线监控系统与现场总线监控系统与现场总线监控系统与现场总线57CUMTCUMT监控系统与现场总线监控系统与现场总线监控系统与现场总线监控系统与现场总线58CUMTCUMT监控系统与现场总线监控系统与现场总线发送部分发送部分MOV TMOD,#20H ;T0 mode 0,T1 mode 2,gate=0MOV TL1,#0F3HMOV TH1,#0F3H ;BODE=2400BPSMOV SCON,#50H ;10位异步收发位异步收发MOV PCON,#00HMOV IE,#00HSETB TR1)21

52、(12322初值波特率KOSCSMODfSMOD=0;定时器定时器T1为方式为方式2,K8;初值初值F3H监控系统与现场总线监控系统与现场总线59CUMTCUMT监控系统与现场总线监控系统与现场总线 MOV R0,#CPURBF ;向串口发送向串口发送SSER: MOV A,R0 MOV SBUF,AWAIT: JNB TI,WAIT ;等待发送结束等待发送结束 CLR TI ;发送结束后清发送结束后清TI INC R0 DJNZ R3,SSER监控系统与现场总线监控系统与现场总线60CUMTCUMT监控系统与现场总线监控系统与现场总线接收数据接收数据 MOV R1,A ;数据长度数据长度 MOV R0,#TRDATA RDATA: JNB RI, RDATA CLR RI MOV A,SBUF MOV R0,A INC R0 DJNZ R1,RDATA监控系统与现场总线监控系统与现场总线61CUMTCUMT监控系统与现场总线监控系统与现场总线计算机编程计算机编程API编程编程(1)打开串口打开串口 HANDLE CreateFile(LPCTSTR lpszName, DWORD fdwAccess, DWORD fdwShareMode,LPSECURTY_ATTRIBUTES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论