请选择 进入手机版 | 继续访问电脑版

DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2496|回复: 1

[待整理] 一种车载多芯片间通信协议

[复制链接]
发表于 2015-5-2 11:08:43 | 显示全部楼层 |阅读模式
  1 背景
  面对复杂多媒体的需求,传统的单片机(MCU)+CAN 总线的控制模式能力已经不足以应付,必须要引入计算能力更强的嵌入式ARMSOC(片上系统)芯片,因为其内部集成了众多的多媒体、通信、控制单元,成为了目前首选的芯片。
  这样就面临了另一个难题,在高性能的SOC(MPU)芯片和实时信号处理芯片(MCU)之间怎样进行通信呢?必须构建一种协议系统,满足这种新的需求。
  本研究课题的目的就是解决车载领域MCU和MPU之间的多芯片通信问题,设计一种小巧的,同时兼容性和稳定性强的协议来满足产品开发的需要。
  2 研究意义
  MCU运行传统的实时车辆信号处理,MPU负责处理运算量大的音频、视频、3G、WIFI、蓝牙等模块。同时在MPU 上运行Android 系统,保证了用户UI 的人性化,又可以利用Linux内核的兼容性和扩展性。
  本课题的意义就是基于上述框架研发出一种MCU 和MPU 之间的通信协议,这个协议必须具有以下几个要求:(1)兼容性好:为了能在物理连接上更灵活,降低成本,必须兼容多种物理接口,例如UART、USB 等等。
  (2)扩展性好:必须能够在基本的协议元素上扩充不同的消息定义,满足不同厂商不同车型的需求。
  (3)稳定性好:必须具备良好的数据完整性保证,MPU 和MCU 双方的通信的包必须经过CRC 校验,校验失败申请重发。另外通信的波特率设为可调。
  (4)实时性好:通过超时机制,可以设定300ms 的超时,一旦超过时限,MPU 和MCU都可以申请对方重发,而通信双方都必须以高优先级响应对方的请求。
  3 研究内容
  在这个新型车载娱乐系统中,我们引入了两个芯片单片机(MCU),嵌入式SOC 处理器(MPU),它们在整个系统中担负不同的角色。
  (1)单片机的作用主要是在整个体系中起到对传统车辆信号的兼容,实时接收CAN 总线上的信号,分析类型并按协议打包;实时接收仪表和其他诊断模块传来的信息,分类然后按协议打包发送。最后还有需要及时响SOC 对车辆的信号的请求消息。
  (2)SOC 处理器的作用是整个车载娱乐系统的核心,为了充分发挥其强大的处理能力和多媒体、通信模块的支持能力,在其上运行了Android 系统。SOC 处理器在多种娱乐通信任务上是强项,但是对于车辆实时信号的处理,则必须通过单片机来获取和控制。在本协议中它的主要角色是接收MCU 传来的消息,并进行协议解析和完整性校验,校验完成后的值通过不同的协议处理模块上报上层应用,按产品策略进行处理。对于校验不过和超时的消息则请求MCU重发。


  本车载多芯片通信协议架构可分为三层,即物理驱动层、协议接口层和应用接口层。
  最底层为物理驱动层,此层是整个协议传输的物理介质驱动,负责抽象硬件接口。它首先需要完成兼容性性实现,即对不同的硬件介质(如USB,UART)提供驱动并对上层提供统一的tty 接口。同时还得留出传输波特率等设置接口,以方便不同项目的硬件进行调节以保证容错性。
  中间层为协议处理层,该层是整个协议栈的核心内容。首先需要实现协议基础设施,如发送机制、接收机制、CRC 校验机制和超时重发机制,并抽象出API 接口。接着,需要按照厂商和产品的要求,实现不同的协议格式,如上汽的、一汽的协议格式,并对外提供统一的API 实现不同协议格式的兼容。最后通过协议分解数据包得到的功能头信息,来判别收到的数据包输入哪种消息,然后将消息发送到响应类型的处理模块,如CAN 消息处理模块。
  最顶层是应用接口层,主要功能是接收数据整合后发送到上层应用,并和上层应用交互。这层的实现需要用到Linux的几个系统调用机制,如Write、IOCTL,这是上层应用主动请求数据的接口,接口层收到这个命令将向MCU 发送请求消息。还有一种异步机制是netlink 机制,接口层得到MCU 传来消息以后通过netlink 主动上报事件给应用层,不需要应用层请求。综合使用这两类接口可以完整的满足上层对各种车辆消息的需求。__
  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-4-16 22:45 , 耗时 0.099323 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表