摘要: |
多功能车辆总线(MVB)接口卡是列车通信网络中重要的通信设备。接口卡连接不同类型的总线,通过运行在其上的通信协议软件,完成协议转换,实现跨总线的数据传输。
本文分析了接口卡的软件层次结构,根据功能将其划分成初始化,实时协议和CAN应用三大模块,其中实时协议是重点。实时协议又分为过程数据和消息数据服务两大模块。本文针对实时协议设计中的难点:链路层接口模块和消息数据模块的设计思路进行详细说明。链路层接口模块的设计要点是共享存储器访问的设计。共享存储器位于链路层和实时协议之间,存储过程数据集和消息包,允许链路层和实时协议并发访问。共享存储器设计的关键就在如何实现并发访问,涉及到两个模块间的交互和数据转发,关系到系统的稳定性和可靠性,链路层接口的设计需要和底层MVB模块协同,是项目的重点和难点。共享存储器设计有二,要优先满足MVB模块对共享存储器的读写需求(实时性要求),其次要满足CPU对数据集操作的完整性要求。本文放弃了纯粹的CPU等待方案,通过使用单口RAM,设计适当的时序完成数据的读出;通过写FIFO完成链路层的写入。实验证明,该方案很好的满足了协议要求。消息数据模块按照OSI网络模型分为会话层,传输层和网络层。本文为会话层设计了相应的数据结构和状态机;为传输层设计了事件状态机和超时状态机;将网络层分解成发送任务和路由任务。根据各层的不同功能,将消息数据模块划分为不同的任务和接口调用。
接口卡开发已经完成,与多种MVB从设备进行互连,顺利通过了项目验收。软件工作稳定,性能可靠,各项指标都很好的满足要求。 |