独立CAN总线控制器82527介绍
来源:网络 作者:网络转载 2019-10-08 阅读:1094
1 独立CAN总线控制器82527介绍 82527是In公司生产的独立CAN总线控制器,可通过并行总线与In和Motrorola的控制器接口;支持CAN规程2.0B标准,具有接收和发送功能并可完成报文滤波。82527采用CHMOS 5V工艺制造,44脚PLCC封装,使用温度为-44~+125℃,其引脚的排列和定义参见参考文献[1>。 (1)82527的时钟信号 82527的运行由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种工作模式:In方式8位分时复用模式;In方式16位分时复用模式;串行接口模式;非In方式8位分时复用模式;8位非分时复用模式。本文应用In方式8位分时复用模式,此时82527的30和44脚接地。 (3)82527的寄存器结构[2> 82527的寄存器地址为00~FFH.下面根据需要对寄存器给予介绍。 ①控制寄存器(00H): 76543210 0CCE00EIESIEIEINIT CCE——改变配置允许位,高电平有效。该位有效时允许CPU对配置寄存器1FH、2FH、3FH、4FH、9FH、AFH写操作。 EIE——错误中断允许位,高电平有效。该位一般置1,当总线上产生异常数量的错误时中断CPU。 SIE——状态改变中断允许位,高电平有效。该位一般置0。 IE——中断允许位,高电平有效。 INIT——软件初始化允许位,高电平有效。该位有效时,CAN停止收发报文,TX0和TX1为隐性电平1。在硬件复位和总线关闭时该位被置位。 ②CPU接口寄存器(02H): 76543210 RSTSTDSCDMCPWDSLEEPMUX0CEN RSTST——硬件复位状态位。该位由82527写入,为1时硬件复位激活,不允许对82527访问;为0时允许对82527访问。 DSC——SCLK分频位。该位为1,SCLK=XTAL/2;为0,SCLK=XTAL。 DMC——MCLK分频位。该位为1,MCLK=SCLK/2;为0,MCLK=SCLK。 PWD——掉电模式使能位,高电平有效。 SLEEP——睡眠模式使能位,高电平有效。 MUX——低速物理层复用标志位。该位为1,ISO低速物理层激活,PIN24=VCC/2,PIN11=INT#(#表示取反);该位为0,PIN24=INT#,PIN11=P2.6。 CEN——时钟输出允许位,高电平有效。 ③标准全局屏蔽寄存器(06~07H)。该寄存器用于具有标准标识符的报文,或XTD置0的报文寄存器。该方式称为报文接收滤波。当某位为1时,报文标识符的相应位必须匹配;为0时,不必匹配。 ④扩展全局屏蔽寄存器(08~0BH)。该寄存器用于扩展报文格式,或XTD置1的报文寄存器,其作用与③相同。 76543210 0COBYPOL0DCT10DCR1DCR0 ⑤总线配置寄存器(2FH): COBY——旁路输入比较器标志位,高电平有效。 POL——极性标志位。为1,如果旁路输入比较器,RX0的输入逻辑1为显性,逻辑0为隐性;为0,则反之。 DCT1——TX1输出切断控制位。为1,TX1输出不被驱动,该模式用于1根总线的情况,2根差分导线短路;为0,TX1输出被驱动。 DCR1——RX1输入切断控制位。为1,RX1与输入比较器的反相端断开,接至VCC/2;为0,RX1接至输入比较器反相端。 DCR0——RX0输入切断控制位。作用与DCR1相同,此时RX0接至比较器同相端。 76543210 SJWBRP ⑥位定时寄存器0(3FH); SJW——同步跳转宽度位场,编程值1~3。 BRP——波特率分频位场,编程值0~63。 76543210 SPLTSEG2TSEG1 ⑦位定时寄存器1(4FH): SPL——采样模式标志位。1表示每位采样3次;0表示每位采样1次。 TSEG1——时间段1位场,编程值2~15。 TSEG1——时间段2位场,编程值1~7。 波特率=XTAL/[(DSC+1)*(BRP+1)*(3+TSEG1+TSEG2)> ⑧报文寄存器(把每个寄存器的第1字节地址作为基址base)。 76543210 base+0MSGVALTXIERXIEINTPND base+1RMTPNDTXRQSTMSGLST/CPUUPDNEWDAT ◇控制寄存器0,1(base+0,baseT+1) MSGVAL——报文寄存器有效标志位,高电平有效。10置位,01复位。 TXIE——发送中断允许标志位,高电平有效。10置位,01复位。 RXIE——接收中断允许标志位,高电平有效,10置位,01复位。 INTPND——中断申请标志位,高电平有效。10置位,01复位。 RMTPND——远程帧申请标志位,高电平有效。10置位,01复位。 TXRQST——请求发送标志位,高电平有效。10置位,01复位。 MSGLST——报文丢失标志位,只用于接收报文寄存器。10表示未读报文被新报文覆盖,01表示未覆盖。 CPUUPD——CPU更新标志位,只用于发送报文寄存器。10报文不被发送,01报文可发送。 NEWDAT——新数据标志位。10表示向寄存器写入了新数据,01表示无新数据写入。 ◇仲裁寄存器0,1,2,3(base+2-base+5) 存储报文标识符。 76543210 DLCDIRXTD保留 ◇报文配置寄存器(base+6) DLC——数据长度编码,编程值0~8。 DIR——方向标志位。1发送,0接收。 XTD——标准/扩展标识符标志位。1扩展标识符,0标准标识符。 ◇数据寄存器(base+7-base+14) 82527存储报文时,8个数据字节均被写入,未用到的字节数据是随机的。 2 硬件电路设计 智能节点的电路如图1所示(图中6264略去)。 在硬件设计中,由ADC0809完成对8路模拟置的转换,与8051的信息交换采用查询方式,地址BFF8~BFFFH,其时钟可由ALE二分频获得;82527完成与CAN总线的信息交换。本设计中,旁路了输入比较器,与8051的信息交换采用中断方式,地址7F00~7FFFH,可以用82527的P1口和P2口对开关量采集或对继电器进行控制。82C250提供82527和物理总线间的接口,提高接收和发送能力。可根据需要扩展程序存储器。 3 软件设计 本设计软件采用MCS-51汇编语言编写,程序框图如图2所示。 82527的初始化程序如下: INT:MOV DPTR,#0FF02H MOV A,#00H MOVX @DPTR,A ;SCLK=XTAL ;MCLK=SCLK,CLKOUT无效 MOV DPTR,#0FF00H MOV A,#41H MOVX @DPTR,A ;置位CCE,INIT MOV DPTR,#0FF2FH MOV A,#48H MOVX @DPTR,A ;旁路输入比较器设置1位隐性,0为显性,RX1无效 MOV DPTR,#0FF3FH; MOV A,#43H; MOVX @DPTR,A ;SJW=2,BRP=3 MOV DPTR,#0FF4FH MOV A,#0EAH MOVX @DPTR,A ;SPL=1,TSEG1=7,TSEG2=6此时波特率为100Kbps MOV DPTR,#0FF00H; MOV A,#01H MOVX @DPTR,A ;禁止对配置寄存器的访问 MOV DPTR,#0FF10H; MOV A,#55H; MOVX @DPTR,A; INC DPTR; MOVX @DPTR,A; · · · MOV DPTR,#0FFF0H; MOV A,#55H; MOVX @DPTR,A INC DPTR; MOVX @DPTR,A ;报文寄存器控制位初始化 MOV R0,#06H; MOV DPTR,#0FF06H; MOV A,#0FFH; L1:MOVX @DPTR,A ;报文标识符需全部匹配 INC DPTR DJNZ 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