AGV项目底层总结一

研一入学后刚好赶上实验室的AGV项目,主要负责AGV车体的驱动和上层ROS端的指令数据交互。断断续续做了将近4个月(别问我为什么是断断续续——甲方的需求就是断断续续提的),涉及车体驱动器的驱动、底层硬件平台PCB的绘制、软件代码的编写。个人感觉收获甚多。现在来从芯片的使用和代码设计技巧两方面对项目进行总结。

芯片的使用

项目中所用的核心芯片采用STM32F103ZET6;通信芯片采用CAN、RS485、RS232;电路保护芯片采用运放LM358、光耦TLP521-4。

  1. CAN
    CAN通信数据的成帧处理功能的实现需要满足两个条件:CAN控制器与CAN收发器。
    CAN控制器用于将欲收发的信息(报文)转换为符合CAN规范的CAN 帧,通过CAN收发器,在CAN-BUS上作信息的交互,实现CAN总线的协议底层以及数据链路层。CAN发送过程中进行位填充、添加CRC校验、应答检测等操作;CAN接收过程中进行收发比对、去位填充、执行CRC校验等操作,此外还需要进行冲突判断、错误处理等诸多任务。CAN控制器芯片可分为两类:独立的控制器芯片(如SJA100)与结合微处理器的控制器芯片(如STM32芯片),这里选择第二种。
    CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。这里采用的是philips公司生产的高速TJA1050芯片。
    TJA1050是CAN协议控制器和物理总线之间的接口,最初是应用在波特率范围在60K波特到1M波特的高速自动化应用中。TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接受性能,而且它与"ISO 11898"标准完全兼容。TJA1050芯片原理图与引脚功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值