基于PIC18F458与PCA82C250芯片实现CAN接口电路的设计

网友投稿 289 2022-11-04

基于PIC18F458与PCA82C250芯片实现CAN接口电路的设计

1 、硬件接口电路

2 、CAN 控制器的操纵

2.1 初始化CAN 控制

在使用CAN 之前, 必须对它的一些内部寄存器进行设置, 如CAN 控制寄存器CANCON 、波特率寄存器BRGCONx 的设置以及对邮箱进行初始化。

波特率寄存器BRGCONx(x=1,2, 3)决定了CAN 控制器的波特率、采样次数、同步跳转宽度和重同步方式,对波特率寄存器的配置步骤如下:

设置CANCON 寄存器中的C A N 操纵方式请求位为1xx,即REQOP=1xx;

判定CANSTAT 寄存器中的操纵方式状态位是否为100,即OPMODE 是否为100,如OPMODE=100 则进进下一步;

设置BRGCONx(x=1,2,3)寄存器,即配置正确的波特率, 同步跳转宽度、采样次数和重同步方式;

设置发送邮箱和接收邮箱的标识符、邮箱数据长度、屏蔽寄存器、滤波寄存器以及初始化邮箱的数据区;

设置CANCON 寄存器中的CAN 操纵方式请求位为000,即REQOP=000,使CAN 模块进进正常工作方式;

判定CANSTAT 寄存器中的操纵方式状态位是否为000,即OPMODE 是否为000,如OPMODE=000 则进进下一步;

寄存器配置和邮箱初始化完成后,进进正常工作方式。

初始化流程图如图2 所示。

2.2 信息的发送

PIC18F458 有3 个发送邮箱缓冲器,每一个发送缓冲器的数据长度可以设置为1 ~ 8 个字节长度, 信息发送的具体步骤如下:

① 初始化发送邮箱;

② 设置相应的发送请求位为1 ,即TXBxCON bits.TXREQ=1(x=1,2,3);

③ 若CAN 总线答应发送, 则启动最高优先级信息的发送;

④ 若发送成功,则TXREQ 被清零,TXBxIF 被置1,假如中断被使能, 则会产生中断;

⑤ 若信息发送失败,则TXREQ 保持为1 ,并置位相应的状态标志。

2.3 信息的接收

MAB 寄存器接收所有来自总线的下一条信息,RXB0 和RXB1 则接收来自协议驱动的完整信息。MAB 接收所有信息, 但是只有满足过滤条件的信息才被传送到RXBx 中。

3 、软件设计

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文带你揭秘SpringMvc参数值映射
下一篇:GPU在AI业务中的核心技术与应用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~