南岭实验室的项目总体结构图及其总结与思考

南岭实验室的项目总体结构图,这是我问曲师兄后自己总结的结构,在这里面,client是每一个操作自己车辆的用户,通过个人电脑向自己的车辆发送信息,先通过server判断请求是否正确,是否可靠,然后通过CDMA发送给车载网关,车载网关有CDMA的接收端,接收到消息后将其交给CDMA的驱动,驱动扔给linux网络协议堆栈,然后packet截包程序从总截获数据包,然后根据IPV6地址判断是扔给can_module还是GPS_module

         因为从上层server传过来的数据包是加密的,在网关中不能对其进行解密,但是在can_controlerGPS中心导航)中却可以将其解密,这样,传过来的数据包还要通过以太网传给can_controller让其经行解密,解密完成后再传回给can_module。这样,在can_module中就要把传给哪个can_nodeIPV6地址经行保存(放在数据段的最后)。这样才能在从can_controller返回数据包后还能知道是传给哪个can_node结点。

GPS的还没有看,所以这里没有写)

         Can_module程序中通过对文件的处理来和can驱动经行数据传输,can总线在接到一个数据包后会有一个返回值,这个值现在我们的程序只能一次的读取,也就是说,我们只能从上层控制can_node,而不能从can_node主动的向上层发送数据。最终的目的是希望实现can_node和车载网关之间能经行交互传输数据。所以,这也是我主要研究的方向。

         所以还要去了解的东西就是can驱动,有两种方法可能能实现数据的上通下达

1.  把我们can_module中的can_interrupte函数extend出来,这样在can驱动中的代码就能调用到这个函数,当有数据包到达时就可以调用这个函数将数据包传输到车载网关。但这种方法可能会遇到一些问题,就是在程序在读写文件的时候会发生中断,而如果交给can_interrupte后就可能在中断问题上发生数据问题(具体什么问题还要研究)。

2.  第二种方法实现起来可能有一些难度(相比第一种方法),就是把can驱动的代码和can_module经行整合,这样把他们放到一起编译,就成了一个整体,这样第一种方法所遇到的一些问题也就得到了解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值