欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    现场总线技术CH8BCAN应用与实验系统设计.ppt

    • 资源ID:5791968       资源大小:1.78MB        全文页数:80页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    现场总线技术CH8BCAN应用与实验系统设计.ppt

    现场总线技术第八章 CAN应用与实验系统设计,教材:现场总线CAN原理与应用技术作者:绕运涛、邹继军、郑勇荟主讲教师:张有忠中国矿业大学机电工程学院2007-11,2,8.3 CAN实验系统设计,K1:点对点发送K2:广播发送,此处与非门最适宜,3,74HC244-Octal buffer/line driver;3-state,1G,2G,4,74LS164 8 Bit Serial In/Parallel Out Shift Register,FeaturesGated(enable/disable)serial inputsFully buffered clock and serial inputsAsynchronous clearTypical clock frequency 36 MHzTypical power dissipation 80 mW,5,DS1232-MicroMonitor Chip,FEATURESHalts and restarts an out-of-control microprocessorHolds microprocessor in check during power transientsAutomatically restarts microprocessor after power failureMonitors pushbutton for external overrideAccurate 5%or 10%microprocessor power supply monitoringEliminates the need for discrete componentsSpace-saving,8-pin mini-DIPOptional 16-pin SOIC surface mount packageIndustrial temperature-40C to+85C availablePIN DESCRIPTIONPBRST-Pushbutton Reset InputTD-Time Delay SetTOL-Selects 5%or 10%VCC DetectGND-GroundRST-Reset Output(Active High)RST-Reset Output(Active Low,open drain)ST-Strobe InputVCC-+5 Volt Power,6,ST24C08-8 Kbit Serial I2C Bus EEPROM,7,8.3 CAN实验系统设计,K1:点对点发送K2:广播发送,此处与非门最适宜,8,CAN实验系统软件设计,报文收发返送,任意节点收到报文,将该报文返送回发送站点接收报文数显示,09通讯波特率,40KBps双滤波器模式广播ID:0000H,按该ID发送的数据所有站点都接收K1按键,按键K1启动一次点对点发送,发送ID由244外接的拨码开关设定K2按键,按键K2一次,启动一次广播发送ID设定P0口读入高半字节,点对点通讯时接收方的ID低半字节,自身的ID系统代码:can_practice.asm,9,地址标号定义,;/89C51晶振为12MHZ;/74LS244片外存储器地址为0100H;*与课本不一样(0200H有误)IDADDR EQU 0100H;/CAN控制器SJA1000片外存储器起始地址为0200H(*0100H有误,与课本不一样)MODE EQU 0200H;/模式寄存器CMR EQU 0201H;/命令寄存器SR EQU 0202H;/状态寄存器IR EQU 0203H;/中断寄存器IER EQU 0204H;/中断使能寄存器BTR0 EQU 0206H;/总线时序寄存器0BTR1 EQU 0207H;/总线时序寄存器1OCR EQU 0208H;/输出控制寄存器ALC EQU 020BH;/仲裁丢失捕捉寄存器ECC EQU 020CH;/错误代码捕捉寄存器EWLR EQU 020DH;/错误报警限额寄存器RXERR EQU 020EH;/RX错误计数寄存器TXERR EQU 020FH;/TX错误计数寄存器TXB EQU 0210H;/写,发送缓冲区首地址RXB EQU 0210H;/读,接收缓冲区首地址,10,地址标号定义(续),RXCMD EQU 0215H;/扩展帧时接收缓冲区数据第一字节,十进制21RTRDLC EQU 0210H;/包括RTR,DLC的字节ACR EQU 0210H;/复位时:滤波码,十进制16AMR EQU 0214H;/复位时,屏蔽码,十进制20RMC EQU 021DH;/RX报文计数器,十进制29RBSA EQU 021EH;/RX缓冲区起始地址,十进制30CDR EQU 021FH;/时钟分频器,十进制31;/*程序运行所需存储器及标志位*CBFRTP EQU 30H;/CPU接收或发送报文缓冲区首地址FRNUM EQU 40H;/接收报文数RECOK BIT 00H;/接收报文标志,RECOK为1表示接收到一帧报文RFRM BIT 01H;/回送报文标志,RFRM为1表示该帧接收的;/报文应该回送PUSHK1 BIT 02H;/按K1键标志,PUSHK1为*0*表示K1键按下PUSHK2 BIT 03H;/按K2键标志,PUSHK2为*0*表示K2键按下,11,程序模块、子程序列表,0、系统初始化程序 MAIN1、主监控程序 MLOOP2、CAN控制器初始化子程序 CANINI3、CAN控制器查询接收子程序 CANREC4、CAN控制器发送程序 TDATA5、按设定ID值向指定节点发送一帧报文 TSDATATDATA6、向CAN总线上其他节点发送一帧广播报文 TBDATATDATA7、向发送报文节点返回接收到报文 TRDATATDATA8、读按键子程序 KEYIN9、20mS、1mS延时程序 D20MS DELAY10、显示当前接收报文数 DISP,12,MAIN-系统初始化程序,;/*系统初始化程序*ORG 0000H LJMP MAIN ORG 0030HMAIN:MOV SP,#6FH MOV R0#6FH CLR A;/清零片内RAM,初始化变量和标志CLAIR:MOV R0,A DJNZ R0,CLAIR;/006FH全部清零 LCALL CANINI;/SJA1000初始化,P230页尾 MOV P1,#0FFH;/读P1前写1,P1外接K1,K2 MOV IE,#00H;/采用查询标志方式工作,关闭所有中断 MOV SCON,#00H;/串行口方式0,移位寄存器方式,1*7段LED显示,13,MLOOP-主监控程序流程,MLOOP:LCALL KEYIN;/按键扫描,两个按键的状态在PUSHK1;/和PUSHK2中,=0键按下 JB PUSHK1,LOOP1;*/与课本不一样 LCALL TSDATA;/K1键按下,发送一帧点到点报文 SETB PUSHK1;/*与课本不一样LOOP1:JB PUSHK2,LOOP2;*/与课本不一样 LCALL TBDATA;/K2键按下,发送一帧广播报文 SETB PUSHK2;*/与课本不一样LOOP2:LCALL CANREC;/*无键按下,从CAN总线查询接收 JNB RECOK,LOOP3 LCALL DISP;/数码管显示+1后的接收报文数 CLR RECOK JNB RFRM,LOOP3 LCALL TRDATA;/返回接收到的报文 CLR RFRM;/回送报文标志LOOP3:SJMP MLOOP,14,CANREC-CAN控制器查询接收子程序,CANREC:MOV DPTR,#SR;/状态寄存器 MOVX A,DPTR ANL A,#0C3H;/读取总线关闭、错误状态、接收溢出、有数据等状态位 JNZ PROC RET;/无上述状态,返回PROC:JNB ACC.7,PROCIBUSERR:MOV DPTR,#IR;/IR中断寄存器,出现总线关闭 MOVX A,DPTR;/读中断寄存器,清除中断位 MOV DPTR,#MODE;/方式寄存器地址 MOV A,#08H MOVX DPTR,A;/将方式寄存器复位请求位清0 RETPROCI:MOV DPTR,#IR;/总线正常,IR中断寄存器 MOVX A,DPTR;/读取中断寄存器,清除中断位 JNB ACC.3,OTHEROVER:MOV DPTR,#CMR;/数据溢出,命令寄存器CMR MOV A,#0CH;/00001100 B MOVX DPTR,A;/在命令寄存器中清除数据溢出和释放接收缓冲区 RET,15,CANREC-CAN控制器查询接收子程序(续1),OTHER:JB ACC.0,RECE;/IR.0=1,接收缓冲区有数据 LJMP RECOUT;/IR.0=0,接收缓冲区中无数据,退出接收 RECE:MOV DPTR,#RXB;/读取并保存接收缓冲区的数据 MOV R1,#CBFRTP;/CPU片内接收缓冲区首地址 MOVX A,DPTR;/读取数据帧格式 MOV R1,A;/保存 ANL A,#0FH;/截取数据场长度 ADD A,#4;/+ID字节数 MOV R6,ARDATA0:INC DPTR INC R1 MOVX A,DPTR MOV R1,A DJNZ R6,RDATA0;/循环读取与保存;/若接收到ID前两个字节为5555H,表明是对方返回的报文,RFRM保持清0,接收报文不回送 MOV A,CBFRTP+1 CJNE A,#55H,RDATA1 MOV A,CBFRTP+2 CJNE A,#55H,RDATA1 SJMP RDATA2,16,CANREC-CAN控制器查询接收子程序(续2),RDATA1:SETB RFRM;/若接收ID前两个字节不是5555H;/则应返回该帧报文,RFRM置1RDATA2:INC RFNUM;/接收报文数+1 MOV A,FRNUM CJNE A,#10,ADATA3 MOV FRNUM,#0;/接收报文数满10时,从头开始计数RDATA3:SETB RECOK;/接收报文标志置1 MOV DPTR,#CMR;/MOV A,#04H;/释放CAN接收缓冲区 MOVX DPTR,ARECOUT:MOV DPTR,#ALC;/释放仲裁丢失捕捉寄存器和错误捕捉寄存器 MOVX A,DPTR MOV DPTR,#RCC;/MOVX A,DPTR RET,17,TDATA-CAN控制器发送程序,TDATA:MOV DPTR,#SR MOVX A,DPTR JB ACC.4,TDATA;/判断是否正在接收,=1接收TS20:MOVX A,DPTR JNB ACC.3,TS20;/判断先前发送是否成功,=1成功TS21:MOVX A,DPTR JNB ACC.2,TS21;/判断发送缓冲区是否锁定,0=锁定TS22:MOV DPTR,#TXB;/将CPU报文发送缓冲区数据送往CAN发送缓冲区 MOV R1,#CBFRTP MOV A,R1 MOVX DPTR,A ANL A,#0FH ADD A,#4 MOV R6,AMTBS:INC R1 INC DPTR MOV A,R1 MOVX DPTR,A DJNZ R6,MTBS MOV DPTR,#CMR MOV A,#01H MOVX DPTR,A;/启动发送 RET,18,TSDATA-按设定ID值向指定节点发送一帧报文,;/*按设定ID值向指定节点发送一帧报文*TSDATA:MOV CBFRTP,#88H;CPU内报文缓冲区;10001000,扩展格式,数据,8字节 MOV DPTR,#IDADDR MOVX A,DPTR;/从74LS244读入节点设置ID ANL A,#0F0H;/高半字节为接收节点的ID MOV CBFRTP+1,#0;MOV CBFRTP+2,A MOVX A,DPTR;/从74LS244读入节点设置ID ANL A,#0FH;/低半字节为节点自身ID MOV CBFRTP+3,#0 MOV CBFRTP+4,A LCALL TDATA RET;/*按设定ID值向指定节点发送一帧报文结束*,19,TBDATA-向CAN总线上其他节点发送一帧广播报文,;/向CAN总线上其他节点发送一帧广播报文TBDATA:MOV CBFRTP,#88H MOV CBFRTP+1,#0;/广播报文ID为0000H MOV CBFRTP+2,#0 MOV DPTR,#IDADDR MOVX A,DPTR;/从74LS244读入节点设置ID ANL A,#0FH;/低半字节为节点自身ID MOV CBFRTP+3,#0 MOV CBFRTP+4,A LCALL TDATA RET,20,TRDATA-向发送报文节点返回接收到报文,;/向发送报文节点返回接收到报文TRDATA:MOV CBFRTP+1,#55H;/返回报文给发送节点时;/将前两个ID字节设置为5555H MOV CBFRTP+2,#55H;/5555H可作为判断接收报文是;/否返送的标志;/通过设置标志避免循环发送 LCALL TDATA RET,21,CANINI-CAN控制器初始化子程序,CANINI:MOV DPTR,#MODE;/方式寄存器 MOV A,#01H;/进入复位模式,对SJA1000进行初始化 MOVX DPTR,A MOV DPTR,#CDR;/时钟分频寄存器 MOV A,#88H;/选择PeiliCAN模式,关闭时钟输出(CLKOUT)MOVX DPTR,A MOV DPTR,#IER;/中断允许寄存器 MOV A,#0DH;/开放发送中断、溢出中断和错误警告中断 MOVX DPTR,A MOV DPTR,#AMR;/验收屏蔽寄存器 MOV R6,#4 MOV A,#0;/验收屏蔽寄存器所有位都参与滤波AMRINI:MOVX DPTR,A;/接收屏蔽寄存器赋初值 INC DPTR DJNZ R6,AMRINI,22,CANINI-CAN控制器初始化子程序(续1),MOV DPTR,#IDADDR;读P0接口开关状态地址 MOVX A,DPTR;/从74LS244读入节点设置ID ANL A,#0FH;/低半字节为节点自身ID MOV R6,A MOV DPTR,#ACR;/验收代码寄存器 MOV A,#0;/ACR0和ACR1存储接收广播报文时用的ID,0000H MOVX DPTR,A;/接收代码寄存器ACR0赋初值 INC DPTR MOVX DPTR,A;/接收代码寄存器ACR1赋初值 INC DPTR;/ACR2,ACR3存储接收数据报文时用的ID;/为节点自身ID MOVX DPTR,A;/接收代码寄存器ACR2赋初值 INC DPTR MOV A,R6/自身ID MOVX DPTR,A;/接收代码寄存器ACR3赋初值,23,CANINI-CAN控制器初始化子程序(续2),MOV DPTR,#BTR0;/总线定时寄存器0 MOV A,#07H MOVX DPTR,A MOV DPTR,#BTR1;/总线定时寄存器1 MOV A,#0FFH;/设置波特率40KBPS MOVX DPTR,A MOV DPTR,#OCR;/输出控制寄存器 MOV A,#0AAH MOVX DPTR,A MOV DPTR,#RBSA;/接收缓冲器起始地址寄存器 MOV A,#0;/设置接收缓冲器FIFO起始地址为0 MOVX DPTR,A MOV DPTR,#TXERR;/发送错误计数寄存器 MOV A,#0;/清除发送错误计数寄存器 MOVX DPTR,A MOV DPTR,#ECC;/错误代码捕捉寄存器 MOVX DPTR,A;/清除错误代码捕捉寄存器 MOV DPTR,#MODE;/方式寄存器 MOV A,#00;/设置双滤波接收方式,并返回工作状态 MOVX DPTR,A RET,24,KEYIN-读按键子程序,KEYIN:ORL P1,#0C0H;/11000000B,读端口前先写1 MOV A,P1 ANL A,#0C0H;/从P1.6,P1.7读入K1和K2的按键状态 CJNE A,#0C0H,KEYIN1;/有键按下,转KEYIN1 RET;/无键按下返回KEYIN1:LCALL D20MS;/延时 MOV A,P1 ANL A,#0C0H CJNE A,#0C0H,KEYIN2 RET;/无键按下返回KEYIN2:CJNE A,#00H,KEYIN21 SJMP KEYIN3;/若K1,K2同时按下,无效KEYIN21:MOV C,ACC.6;/将按键状态保存到PUSHK1,PUSHK2 MOV PUSHK1,C;/按下键为0,未按下为1 MOV C,ACC.7 MOV PUSHK2,CKEYIN3:MOV A,P1 ANL A,#0C0H CJNE A,#0C0H,KEYIN3;/判断按键是否释放,等待按键释放 RET,25,D20MS、DELAY 20mS、1mS延时程序,D20MS:MOV R7,#200;/延时约20MS(FOSC=12MHZ)DAY1:MOV R6,#50DAY2:DJNZ R6,DAY2 DJNZ R7,DAY1 RETDELAY:MOV R6,#250;/延时1MSDE1:NOP NOP DJNZ R6,DE1 RET,26,DISP-显示当前接收报文数(1位表示),;/显示当前接收报文数(1位表示)DISP:MOV A,FRNUM;/读当前接收报文数 MOV DPTR,#LEDTAB MOVC A,A+DPTR;/字形码 MOV SBUF,A;/将字形码通过串口送74LS164,驱动显示 JNB TI,$CLR TI;/发送完毕清TI标志 RET;LED显示字形码(共阴极数码管)LEDTAB:DB 0FCH,060H,0DAH,0E2H,066H;/0,1,2,3,4 DB 0B6H,0BEH,0E0H,0FEH,0F6H;/5,6,7,8,9,27,结束,28,基本逻辑门电路的符号,29,SJA1000寄存器,BasicCAN模式寄存器列表控制寄存器CR命令寄存器CMR状态寄存器SR中断寄存器IR发送缓冲器区接收缓冲器验收代码寄存器ACR验收屏蔽寄存器AMRPeliCAN寄存器地址列表模式寄存器MOD命令寄存器CMR状态寄存器SR中断寄存器IR中断允许寄存器IER,仲裁丢失捕捉寄存器ALC错误代码捕捉寄存器ECC错误报警限额寄存器EWLRRX错误计数寄存器RXERRTX 错误计数寄存器TXERR发送缓冲器TXB单滤波、标准帧滤波器配置单滤波、扩展帧滤波器配置双滤波、标准帧滤波器配置双滤波、扩展帧滤波器配置RX报文计数器RMCRX缓冲器起始地址寄存器总线时序寄存器BTR0总线定时寄存器BTR1输出控制寄存器OCR时钟分频寄存器CDR,30,BasicCAN模式寄存器列表,31,BasicCAN模式寄存器列表,控制器段,32,BasicCAN模式寄存器列表(续1),发送缓冲器,33,BasicCAN模式寄存器列表(续2),接收缓冲器及时钟分配器,34,BasicCAN模式主要寄存器介绍,35,寄存器介绍-控制寄存器CR,控制寄存器(CR,地址0)改变SJA1000工作状态通过微处理器进行置位/复位微控制器对控制寄存器进行读/写操作,注:1、位为1有效 2、X表示这些位的值不受影响,36,命令寄存器CMR,命令寄存器(CMR,地址1)微控制器发送到命令寄存器的命令启动一次传输层的操作微控制器对命令寄存器只写,读命令寄存器的结果总是“1111 1111”,37,状态寄存器SR,状态寄存器(SR,地址2)状态寄存器的内容反映总线控制器的状态状态寄存器为只读存储器,38,中断寄存器IR,中断寄存器(IR,地址3)识别SJA1000中断源寄存器任一位(及一位以上)被置位时,/INT引脚被激活(低电平)该寄存器被微处理器读出后,所有位被SJA1000复位,/INT引脚电平浮动(高阻状态)微处理器只读,注:在错误中断开启情况下,总线关闭时错误中断位被置位,39,发送缓冲器区,发送缓冲器是用来存储微控制器要SJA1000 发送的报文分为描述符区和数据区发送缓冲器的读/写只能由微控制器在工作模式下完成,在复位模式下读出的值总是FFH,40,接收缓冲器,接收缓冲器的全部列表和发送缓冲器类似接收缓冲器是RXFIFO 中可访问的部分,位于CAN 地址的20-29 之间识别码、远程发送请求位和数据长度码同发送缓冲器的相同,只不过是在地址20-29,41,验收代码寄存器ACR,在验收滤波器的帮助下,CAN 控制器能够允许RXFIFO 只接收同识别码和验收滤波器中预设值相一致的报文验收滤波器通过验收代码寄存器ACR和验收屏蔽寄存器AMR来定义验收代码寄存器ACR,地址4,复位请求位被置1(当前)时,这个寄存器是可以访问(读/写)如果一条报文通过了验收滤波器的测试而且接收缓冲器又有空间,那么标识符和数据将被分别顺次写入RXFIFO 当报文被正确的接收完毕就会:接收状态位置1(满)接收中断使能位置1(使能),接收中断置1(产生中断),42,验收屏蔽寄存器AMR,验收屏蔽寄存器AMR,地址5如果复位请求位置1(当前),这个寄存器可以被访问(读/写)验收屏蔽寄存器定义验收代码寄存器的相应位对验收滤波器是相关的(AM.X=0)或无关的(AM.X=1),(即可为任意值)验收代码位(AC.7-AC.0)和标识码的高8 位(ID.10-ID.3)与验收屏蔽位AM.7-AM.0的”相关”的位的对应位必须相等,即如果满足以下条件的描述则报文被接收(ID.10 to ID.3)(AC.7 to AC.0)(AM.7 to AM.0)1111 1111 BID 10010001標識符高8位AC 10010110驗收代碼位eq=11111000驗收AM 00000111驗收屏蔽位V=11111111驗收屏蔽結果,通過,43,PeliCAN模式寄存器列表,44,PeliCAN寄存器地址列表,总线时序0,总线时序1,总线时序0,总线时序1,总线时序0,总线时序1,错误报警限额,错误报警限额,错误报警限额,45,PeliCAN寄存器地址列表(续1),RX标识码1,RX标识码1,RX标识码2,RX标识码2,TX标识码1,TX标识码2,TX标识码1,TX标识码2,RX标识码3,RX标识码4,TX标识码3,TX标识码4,46,PeliCAN寄存器地址列表(续2),RX报文计数器,RX报文计数器,RX缓冲区起始地址(RASB),47,PeliCAN模式主要寄存器介绍,48,模式寄存器MOD,CAN地址0,49,命令寄存器CMR,CAN地址1,50,状态寄存器SR,CAN地址2,CAN地址2,状态寄存器反映CAN 控制器的状态,只读寄存器,51,状态寄存器SR(续1),52,中断寄存器IR,CAN地址3,中断寄存器IR,CAN地址3中断源的识别当寄存器的一位或多位被置位时,CAN 中断将反映到CPUCPU读此寄存器的时候除了接收中断外的所有位都被复位只读存储器,53,中断寄存器IR(续),54,中断允许寄存器IER,CAN地址4,中断使能寄存器IER,CAN地址4该寄存器能使不同类型的中断源对CPU有效可读/写寄存器,55,中断允许寄存器(续),56,仲裁丢失捕捉寄存器ALC,CAN地址11,仲裁丢失捕捉寄存器,ALC,CAN地址11该寄存器包括了仲裁丢失的位置的信息,只读存储器,保留位的读出值为0仲裁丢失时,会产生相应的仲裁丢失中断(中断允许时)。同时,位流处理器的当前位的位置被捕捉送入仲裁丢失捕捉寄存器。一直到用户通过软件读这个值,寄存器中的内容都不会改变,随后捕捉机制又被激活读中断寄存器时,中断寄存器中相应的中断标志位被清除。直到仲裁丢失捕捉寄存器被读一次之后,新的仲裁丢失中断才可能有效,57,错误代码捕捉寄存器ECC,CAN地址12,错误代码捕捉寄存器,ECC,CAN地址12包含总线错误的类型和位置信息只读,58,错误报警限额寄存器EWLR,CAN地址13,错误报警限额寄存器,EWLR,CAN地址13定义错误报警限额复位模式时可读/写,硬件复位后错误报警限额寄存器的默认值为96复位模式取消后,该寄存器的新值引起的出错状态的改变和错误报警中断才有可能发生,59,RX错误计数寄存器RXERR,CAN地址14,RX错误计数寄存器,RXERR,CAN地址14RX错误计数寄存器反应了接收错误计数器的当前值硬件复位后寄存器被初始化为0在工作模式中,只读寄存器;在复位模式中可写寄存器如果发生总线关闭RX错误计数器被初始化为0总线关闭期间写寄存器无效软件复位(MOD.0=1)时,接收错误计数器的值不受影响注意:只有先进入复位模式,才有可能由CPU改变RX错误计数器值复位模式被取消后,由新的内容引起的错误状态的改变、错误报警、错误中断才可能发生,60,TX 错误计数寄存器TXERR,CAN地址15,TX错误计数寄存器,TXERR,CAN地址15TX 错误计数寄存器反映了发送错误计数器的当前值工作模式中,只读;复位模式中,可写硬件复位后,寄存器被初始化为0如果总线关闭,TX 错误计数器被初始化为127 来计算总线定义的最小时间(128 个总线空闲信号)。这段时间里读TX 错误计数器将反映出总线关闭恢复的状态信息在总线关闭时,向TXERR 写0-254范围的值会清除总线关闭标志在复位模式被清除后,控制器会等待一个11位的连续隐性位(总线空闲)软件复位(MOD.0=1)时,发送错误计数器的值不受影响,61,发送缓冲器TXB,CAN地址1628,发送缓冲器的布局标识码区标识码区的第一个字节是帧信息字节(结构信息),说明帧格式(SFF或EFF)、远程帧或数据帧和数据长度SFF(标准帧格式)有两个字节的标识码,EFF(扩展帧格式)有四个字节的标识码数据区数据区最多长8 个数据字节发送缓冲器长13个字节,在CAN 地址的16-28注意使用CAN 地址的96-108可以直接访问发送缓冲器的RAM,这个RAM区是为发送缓冲器保留的,下面三个字节是通用的CAN地址109、110和111,62,验收滤波器,验收滤波器只有当接收报文中的标识码和验收滤波器预定义的值相等时,CAN 控制器才允许将已接收报文存入RXFIFO验收滤波器由验收代码寄存器(ACRn)和验收屏蔽寄存器AMRn定义要接收的报文的标识码位模式在验收代码寄存器中定义,相应的验收屏蔽寄存器允许定义验收代码寄存器中的某些位为无关,即可为任意值在模式寄存器MOD中选择MOD.3,AFM单滤波器模式AFM=1双滤波器模式AFM=0,62,63,验收滤波器-单滤波器,单滤波器配置单滤波器配置定义一个4 字节长滤波器滤波器字节和报文字节之间位的对应关系取决于当前接收帧格式标准帧格式如果接收的是标准帧格式的信息,在验收滤波中使用包括RTR在内的完整标识码和前两个数据字节用于数据滤波如果由于置位RTR位而导致没有数据字节,或因为设置相应的数据长度代码而没有或只有一个数据字节,报文也会被接受对于一个成功接收的报文所有单个位在滤波器中的比较结果都必须为“接受”(下页图),63,64,标准帧滤波,64,(ID.10 to ID.3)(AC.7 to AC.0)(AM.7 to AM.0)1111 1111 B,65,标准帧滤波(续),注意AMR1 和ACR1 的低四位不用,为了和将来的产品兼容这些位可通过设置AMR1.4、AMR1.3、AMR1.2和AMR1.0为“1”而编程为“无关,Dont Care”,65,66,扩展帧滤波,扩展帧格式如果接收的报文是扩展帧格式报文,包括RTR 位的全部标识码将被用于数据滤波为了成功接收报文每个位的比较后都必须发出接受信号,66,ACR,AMR,ID,67,扩展帧滤波(续),注意AMR3 的最低两位和ACR3最低两位不用,为了和将来的产品兼容这些位应该通过置位AMR3.1 和AMR3.0 来编程为“无关,Dont Care”,67,68,验收滤波器-双滤波器,双滤波器配置该配置定义两个短滤波器一条接收的报文要和两个滤波器比较来决定是否放入接收缓冲器中至少有一个滤波器验收通过,接收的报文才有效滤波器字节和报文字节之间位的对应关系取决于当前接收的帧格式,68,69,标准帧滤波,接收到标准帧报文时,两个滤波器是不一样第一个滤波器比较包括RTR 位的整个标准标识码和报文的第一个数据字节第二个滤波器只比较包括RTR 位的整个标准标识码为了成功接收报文所有单个位的比较时应至少有一个滤波器表示“接受”RTR位置位或数据长度代码是0时表示没有数据字节存在,无论怎样只要从开始到RTR位的部分比较结果为“接受”,接收的报文就可以通过滤波器1如果没有向滤波器请求数据字节滤波,AMR1 和AMR3 的低四位必须被置为“1”(无关)两个滤波器对包括RTR 位在内的整个标准标识码进行滤波识别,69,70,扩展帧滤波,接收到扩展帧信息时两个滤波器相同,两个滤波器都只比较扩展识别码的前两个字节必须在所有单个位的比较时至少有一个滤波器表示“接收”,70,71,RX报文计数器RMC,CAN 地址29,RX报文计数器寄存器RMC,CAN 地址29反映RXFIFO中可用的信息数目,其值每次接收到报文时加1,每次释放接收缓冲器减1复位后寄存器值为0,注1:这些位不能写,读出永远是0,72,RX缓冲器起始地址寄存器,CAN 地址30,RBSA寄存器,CAN 地址30反映接收缓冲器窗口中存放接收到的报文第一个字节的内部RAM地址内部RAM起始于CAN地址32,可以被CPU 读/写访问(复位模式只能写)例子如果RBSA=24(十进制),当前在接收缓冲器窗口(CAN地址1628)中的可视报文被存储在内部起始地址为24的RAM中因为RAM也被直接列入CAN 地址空间(起始地址32等于RAM地址0),所以这条信息也可以用CAN 地址56及随后字节地址访问CAN 地址=RBSA+32=24+32=56如果信息超过RAM地址63会从地址0继续(RAM地址64开始是TX缓冲区空间)当FIFO中至少有一条可用报文时就将会执行释放接收缓冲器命令,释放接收缓冲器后RBSA更新为下一条报文的开始硬件复位时指针初始化为00H软件复位(设置为复位模式,MOD.0=1)时指针保持原值,但FIFO被清空虽然RAM的内容是不会改变,但下一条接收的或传送的信息将会覆盖当前在接收缓冲器窗口的可视信息RX 缓冲器起始地址寄存器在工作模式中只读,在复位模式中是可读/写必须注意,写访问RBSA首次有效是在下一个内部时钟的上升沿,PeliCAN寄存器,73,BasicCAN、PeliCAN模式公共寄存器介绍,74,总线时序寄存器BTR0,CAN地址6,总线时序寄存器BTR0,CAN地址6总线定时寄存器0定义波特率预制器BRP(Baud Rate Prescaler)和同步跳转宽度SJW(Synchronization Jump Width)复位模式有效时,BTR0寄存器可读/写如果选择PeliCAN模式,此寄存器在工作模式中只读,在BasicCAN模式中读出值总是FFH波特率预置器域CAN系统时钟tSCL的周期可编程,而且决定了相应的位时序CAN系统时钟由如下公式计算tSCL=2tCLK X(32 X BRP.5+16 X BRP.4+8 X BRP.3+4 X BRP.2+2 X BRP.1+BRP.0+1)tCLK:XTAL的振荡周期=1/fXTAL同步跳转宽度位域为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步同步跳转宽度tSJW定义了每一位的位周期再被重新同步时缩短或延长的时钟周期的最大数目tSJW=tSCL(2 X SJW.1+SJW.0+1),75,总线定时寄存器BTR1,CAN地址7,BTR1,CAN地址7定义每个位周期的长度、采样点位置和在每个采样点的采样数目在复位模式中,寄存器可以读/写访问在PeliCAN 模式的工作模式中,这个寄存器只读,在BasicCAN 模式中读出值总是FFH,采样数目 SAMSAM=0,单倍采样,每位采样1次。建议使用在高速总线上(SAE C级)SAM=1,三倍采样,每位采样3次。建议在中低速总线上使用(SAE A,B级),可以有效消除总线上的毛刺时间段1和时间段2TSEG1和TSEG2决定每一位的时钟周期数目和采样点的位置tSYNCSEG=1 X tSCLtTSEG1=tSCL X(8 X TSEG1.3+4 X TSEG1.2+2 X TSEG1.1+TSEG1.0+1)tTSEG2=tSCL X(4 X TSEG2.2+2 X TSEG2.1+TSEG2.1+1),76,总线定时寄存器1(续),tSCL=4 tCLKBRP=000001tSEG1=6 tSCLTSEG1=0101tTSEG2=3 tSCLTSEG2=010,77,输出控制寄存器OCR,CAN地址8,输出控制寄存器OCR,CAN地址8由软件控制不同输出驱动配置在复位模式中,寄存器可被读/写访问在PeliCAN模式的工作模式中,这个寄存器只读,在BasicCAN 模式中读出值总是FFH,78,时钟分频寄存器CDR,CAN地址31,时钟分频寄存器,CDR,CAN地址31,注1:此位不能写,读出总是0CD.2-CD.0复位模式和工作模式中一样,CD.2-CD.0 是可以无限制访问这些位是用来定义外部CLKOUT引脚上的输出时钟频率,Clock Off,79,帧格式信息,注1,帧结构格式,FF=0标准帧,FF=1扩展帧注2,远程发送请求位,RTR=0数据帧,RTR=1远程帧注3,忽略,推荐在使用自接收功能(自测)时和接收缓冲器(0)兼容注4,数据长度代码位,79,注1,忽略,建议在使用自接收功能(自测)时与接收缓冲器的位(RTR)一致注2,忽略,建议在使用自接收功能(自测)时与接收缓冲器的值(0)一致,80,摘 要:介绍一种看门狗集成电路DS1232的功能及与单片机的实际接口电路,结合工程实际指出了DS1232在应用中的注意事项。关键词:看门狗;DS1232;接口;随着计算机技术的发展,单片微型计算机在工业自动化领域和智能化产品中得到了广泛的应用。如何提高单片机产 品的抗干扰能力是产品开发和设计人员所面临和必须解决的问题。关于抗干扰的具体方法在很多书籍和文章中都有较为详尽的论述,本文不再赘述。美国 DALLAS公司生产的“看门狗(WATCHDOG)”集成电路DS1232具有性能可靠、使用简单、价格低廉的特点,应用在单片机产品中能够很好的提高 硬件的抗干扰能力,我们曾将DS1232应用到“粮食中心库粮仓温度监测系统”、“银行利率显示屏”、“多功能电脑时钟”、“电厂皮带秤测速系统”和“全 自动限电计量系统”中,在实际使用中收到了良好的效果。1.DS1232的结构及特点 1.1 引脚功能及内部结构DS1232是由美国DALLAS公司生产的微处理器监控电路,采用8脚DIP封装,如图1所示。各引脚功能如下:PBRST:按钮复位输入端;TD:看门狗定时器延时设置端;TOL:5或10电压监测选择端;GND:电源地;RST:高电平有效复位输出端;RST:低电平有效复位输出端;ST:周期输入端;Vcc:电源。1.2 DS1232的内部结构DS1232的内部结构框图如图2所示。1.3 主要特点DS1232具有如下特点:具有8脚DIP封装和16脚SOIC贴片封装两种形式,可以满足不同设计要求;在微处理器失控状态下可以停止和重新启动微处理器;微处理器掉电或电源电压瞬变时可自动复位微处理器;精确的5或10电源供电监视;不需要分立元件;适应温度范围宽,4085。2.DS1232的功能 2.1 电源电压监视DS1232能够实时监测向微处理器供电的电源电压,当电源电压VCC低于预置值时,DS1232的第5脚和第6脚 输出互补复位信号RST和RST。预置值通过第3脚(TOL)来设定;当TOL接地时,R

    注意事项

    本文(现场总线技术CH8BCAN应用与实验系统设计.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开