TRK-MPC5634M CAN例程是针对TRK-MPC5634M开发板设计的一个通信程序,该开发板集成了MC33905S芯片,用于处理电压、CAN(Controller Area Network)和LIN(Local Interconnect Network)等通信协议。在描述中提到,开发板原厂并未提供相关的例程,因此这个例程是由开发者通过摸索并基于CookBook的SPI(Serial Peripheral Interface)例程进行改造得到的。 MPC5634是一款由飞思卡尔(现为NXP)公司生产的微控制器,常用于汽车电子应用,具有高性能、低功耗的特点。它内部集成了多种外设,包括CAN控制器,使得它非常适合在汽车网络中使用。MC33905S则是一款多通道智能功率开关,通常用于控制汽车电器设备,同时也具备CAN接口,便于与MPC5634进行数据交换。 在实现CAN通信时,首先需要配置MPC5634的CAN控制器。这涉及到设置CAN模块的工作模式(如正常模式、睡眠模式等)、波特率(通过BTR寄存器设定)、滤波器(用于筛选接收的消息)以及中断设置。在MC33905S中,也需要相应地配置其CAN接口,以确保与MPC5634的通信同步。 CookBook的SPI例程改造是将原本用于SPI通信的代码修改以适应CAN通信需求。SPI是一种同步串行接口,常用于短距离、高速数据传输,而CAN协议则是专为多节点间可靠、实时的工业通信设计的。两者在物理层和协议层都有显著区别,因此需要对原有SPI例程进行大量修改,比如改变发送和接收数据的方式,以及处理错误和确认机制。 在实际的CAN例程中,开发者可能会遇到以下关键点: 1. **消息帧格式**:CAN通信基于标准帧(11位标识符)和扩展帧(29位标识符),开发者需要根据应用需求选择合适的帧类型,并正确填充数据段和标识符。 2. **错误检测和恢复**:CAN协议有强大的错误检测机制,包括位错误、CRC错误等。当检测到错误时,需要正确处理错误状态并尝试恢复通信。 3. **仲裁和冲突避免**:在多节点网络中,CAN协议通过标识符优先级进行仲裁,防止数据冲突。 4. **中断处理**:通过设置中断服务程序,当收到新消息或发生错误时,及时响应并处理。 5. **同步**:由于CAN总线是多节点共享,所有节点必须保持同步,以确保数据的正确接收。 6. **滤波器配置**:为了减少不必要的数据处理,可以配置CAN滤波器,只接收与当前应用相关的消息。 7. **驱动库和API**:通常会使用特定的驱动库和API来简化MPC5634的CAN操作,这些库可能需要根据实际硬件和需求进行适配。 在提供的压缩包文件"MC33905S CAN"中,可能包含了与MC33905S相关的CAN驱动代码或示例,用于指导开发者如何与MPC5634进行配合工作。这些代码可能涉及初始化、消息发送和接收、错误处理等功能。 TRK-MPC5634M的CAN例程是解决MPC5634与MC33905S之间CAN通信问题的一个实践方案,通过改造SPI例程来实现,虽然代码质量可能不高,但足以实现基本功能。对于想要在此基础上进行二次开发的工程师来说,理解并学习这个例程,将有助于更好地理解和利用CAN通信技术。
- 1
- lpc210377882016-05-30有点点乱,不是很懂
- cooljunjun2018-01-23基础的参考例子
- 粉丝: 4
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助