新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的87C196CA单片机串行通讯的应用

基于CAN总线的87C196CA单片机串行通讯的应用

作者:时间:2012-03-12来源:网络收藏

2. 3   收发器

PCA82C250是协议控制器和物理传输线路之间的接口,是影响网络性能的关键因素。它对提供差动发送能力,并对控制器提供差动接收能力,其最高传输速率可达1Mbit/s。其主要特点是芯片内部具有限流电路,可以防止输出级对电源、地或负载短路;由于采用差动接收发方式,因此有较强的抗电磁干扰能力;具有低电流节电待机工作模式;该CAN收发器至少可以连接110个节点。利用PCA82C250还可以方便地在CAN控制器与驱动器之间建立光电隔离,以实现总线上各节点间的电气隔离。

3  软件

对于通过CAN 总线连接的之间的软件编程需要定义一系列的控制字,并在两个上进行配置。即首先进行上电初始化,定义CAN控制寄存器,定义位定时寄存器选择CAN 的速率,定义信息体屏蔽寄存器选择接收对象。其次对信息体进行初始化,分别定义两个信息体工作模式、发送字节数、选择CAN2.0A 或CAN2.0B 方式。其程序代码:

/ *CAN 控制器初始化*/
can_cON = 0x41 ; / *CAN 控制器CCE 位置1 ,
则可以定义CAN 定器* /
can_ btime0 = 0x41 ; /* 定义CAN 定时器为
250 Kb/ s * /
can_btime1 = 0x67 ;
can_con = 01 ; / *允许对CAN 控制器进行软
件初始化* /
can_sgmsk = 0x0 ; / * 定义标准CAN 通讯格
式的屏蔽控制字,所有位都不滤纸*/
can_msg1con0 = 0x55 ; / * 信息体1 控制器0
初始化* /
can_msg1con1 = 0x55 ; / * 信息体1 控制器1
初始化* /
can_msg1cfg = 0x88 ; / *定义信息体1 为发
送,发送8 字节,标准CAN 格式* /
can_msg1id = 0xc8c8c8c8 ; / * 信息体1 标识
寄存器初始化标识符为c8c8c8c8 ;
can_ msg1con0 = ox95 ; / * 信息体1 控制器
0MSGVAL 位置1 ,标明信息体1 有效* /
can_msg2con0 = 0x55 ; / * 信息体2 控制器0
初始化* /
can_msg2con1 = 0x55 ; / *信息体2 控制器1
初始化* /
can_msg2cfg = 0x80 ; / *定义信息体2 为接
收,接收8 字节,标准CAN 格式* /
can_msg2id = 0xc8c8c8c8 ; / *信息体2 标识
寄存器初始化标识符为c8c8c8c8 */
can_ msg2con0 = ox95 ; / * 信息体2 控制器
0MSGVAL 位置1 ,标明信息体2 有效 */
can_con = 0x02 ; / * CAN 控制器软件初始化
完成*/



评论


相关推荐

技术专区

关闭