首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
一种基于Salvo的通用CAN/LIN网关
来源:本站整理  作者:佚名  2009-06-19 14:26:52



4  网关软件
CAN总线与LIN总线比较相似,协议数据单元比较接近,网关软件数据处理量不大;而且,网关软件本身功能相对单一,一般不需要操作系统支持。但本文讨论的是一个通用网关,针对不同场合系统功能需要适当的裁剪和扩充,有操作系统的支持更便于系统功能的裁剪和扩充,提高系统的可移植性,增加系统通用性。另外,有操作系统的支持系统开发时间大大缩短,而且可靠性也大大提高。
4.1  实时操作系统Salvo
系统软件开发采用实时操作系统RTOS会占用部分系统硬件资源,目前大多数RTOS 适用于ARM 或X86 等可配备丰富硬件资源的微处理器系统。实时操作系统Salvo 占用系统硬件资源少,且功能强大,适合硬件资源相对贫乏的单片机,尤其是存储器资源贫乏的PIC 系列单片机。Salvo 占用程序存储器容量取决于用户调用的系统函数,一般典型系统占用1~2K 程序存储器。占用数据存储器容量取决于用户定义的变量、任务和事件的数量,以PIC16 系列单片机为例,每个全局变量占10b,任务占5b,事件占3b,一般典型系统占用50~100b 数据存储器。
Salvo 是一个基于优先级任务切换,支持事件驱动的多任务实时操作系统。Salvo 共支持16 个任务优先级,且多个任务可以共用一个优先级,任务按优先级高低切换,对于多个同一优先级的任务,以时间片循环方式切换。Salvo 支持任务和事件的数量不限,取决于RAM 的大小。
4.2  任务分割及功能确定
基于RTOS 的软件开发主要工作是任务分割、任务功能确定和任务代码编写。任务分割的基本原则是任务内的内聚度强而任务间的偶合性弱。为减少Salvo在任务切换时占用过多的系统资源,任务分割尽量减少任务数,系统分割成5个任务(参见图4):

CAN_TXD任务:由ENCANTXD信号触发,将经PDU_Conversion任务转换的数据送到CAN模块的发送缓冲寄存器,并启动CAN发送器发送数据。
CAN_RXD任务:由ISR_CANRXD中断服务程序发送ENCANRXD事件触发,接收CAN模块接收缓冲器的数据,发送CANTOLIN信号触发PDU_Conversion任务。
LIN_RXD任务:由ISR_LINRXD中断服务程序发送ENLINRXD事件触发,接收USART模块发送来的数据。根据LIN协议分析标识场确定报文的内容和长度,分析校验和场确定报文的正确性,发送LINTOCAN信号触发PDU_Conversion任务。
LIN¬_TXD任务:由ENLINTXD信号触发,将经PDU_Conversion任务转换的数据送到USART模块,并控制USART模块安LIN协议发送数据。
PDU_Conversion任务:由LINTOCAN或CANTOLIN信号触发,将服务数据单元SDU转换成CAN协议数据单元或LIN协议数据单元,并通过ENCANTXD信号或ENNLINTXD信号触发CAN_TXD任务或LIN_TXD任务向CAN总线或LIN总线发送数据。
4.3  任务间通信及任务优先级
现场总线一般对实时性要求较高,为提高系统的实时性,减少数据在网关的延时,系统采用中断方式接收CAN总线和LIN总线的数据。若CAN总线上有节点发送数据,网关的CAN模块接收器接收数据,存于信息集中缓冲器MAB,同时根据接收屏蔽器信息,比较接收过滤器与接收信息标示区是否相符,若相符将信息集中缓冲器信息装入接收缓冲器(RXB0或RXB1,PIC18F4680的CAN模块有两个接收缓冲器),并通过中断标志寄存器PIR3的RXB0IF或RXB1IF(CAN模块接收缓冲器中断标志位)申请中断,CPU进入ISR_CANRXD中断服务程序,在ISR_CANRXD中发送ENCANRXD事件触发CAN_RXD任务启动。CAN_RXD任务读取接收缓冲器中SDU数据,存入一个CANSDU全局数组,并发送CANTOLIN信号触发PDU_Conversion任务启动。PDU_Conversion任务接收全局数组CANSDU数据,转换成LIN总线的协议数据单元,存于LINPDU全局数组,并发送ENLINTXD信号触发LIN_TXD任务启动。LIN_TXD任务接收全局数组LINPDU数据,控制USART模块按LIN总线协议发送数据。以上是CAN/LIN网关从CAN总线接收数据发送到LIN总线的各任务同步及通信过程,CAN/LIN网关从LIN总线接收数据发送到CAN总线的各任务同步及通信过程基本与其相似。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:120,875.00000 毫秒