关键词:嵌入式系统设计 ARFPGA 多功能车载总线 MultifuncionVehi 在计算机、互联网和通信技术飞速发展的同时,嵌入式系统开发技术也在迅速发展,嵌入式技术的应用范围正在迅速扩大。 本文从软件到硬件介绍了基于ARFPGA的多功能车载总线(MulleBusB)嵌入式系统的设计与实现。 一般来说,一个嵌入式系统的开发流程如下: 设计系统架构:处理器及相关外部设备的选择、操作系统、开发平台、软硬件分割和整体系统集成; 详细的软硬件设计和RTL代码、软件代码开发; 系统测试。 1、第一步:确定系统需求:嵌入式系统的典型特征是面向用户、面向产品、面向应用。 市场应用是嵌入式系统发展的导向和前提。 嵌入式系统的设计取决于系统的要求。 1、列车通信MVB总线简介列车通信网络(Train Communicati Network,简称TCN)是列车数据通信的IEC国际标准(IC-61375-1),集成了整个列车的内部测控任务和信息处理任务。 它包括双绞线列车总线(WTB)和多功能车辆总线(MVTCN)两种总线类型,在列控系统中相当于CAN总线在汽车电子中的地位。 多功能车辆总线MVB是一种标准通信介质,用于在列车上的设备之间传输和交换数据。
总线上挂接的设备可能在功能、尺寸和性能上有所不同,但它们都连接到MVB总线上,并通过MVB总线交换信息,形成一个完整的通信网络。 在MVB系统中,根据IEC-61375-1列车通信网络标准,MVB总线具有以下特点: 拓扑结构:MVB总线的结构遵循OSI模型并吸收了ISO标准。 支持多达 4095 个设备,由中央总线管理器控制。 简单的传感器和智能车站共存于同一辆公交车上。 数据类型:MVB总线支持三种数据类型:a. 过程数据:过程变量代表列车的状态,例如速度、电机电流和操作员命令。 过程变量的值称为过程数据。 它们的传输时间是确定性的并且是有限的。 为了确保这种延迟,这些数据会定期传输。 b. 报文数据:报文被分成小包,由目的站编号并确认。 消息包及其相关的控制数据形成消息数据。 消息数据以命令模式传输。 功能消息供应用层使用; 服务消息用于列车通信系统本身的管理等。 c. 监控数据:是一个短帧,主设备用于同一总线内设备的状态验证、在线设备检测、主权传输、列车初始运行等管理功能。 介质接入形式:MVB总线支持RS485铜介质和光纤。 其物理层的数据格式为1.5Mbps串行曼彻斯特编码数据。 MVB的媒体访问由总线管理器BA管理。 总线管理器BA是唯一的总线主设备,所有其他设备都是从设备。
主设备按照预定顺序定期轮询端口。 在周期性间隔期间,主设备轮流处理零星请求。 可靠性措施:MVB容错措施包括传输完整性:链路层具有扩展的错误检测机制,提供8的汉明码距离,可以检测比特、帧和同步错误。 故障独立性:铜介质通常是完全复制的,以确保设备故障独立性。 传输可用性:可以通过介质冗余、电源冗余、管理器冗余等措施提高可用性。 2、MVB系统的基本要求如下: 完全兼容IEC-61375-1(TCN)国际标准,支持MVB总线定义的三种数据类型:过程数据、报文数据和监控数据。 支持4096个逻辑端口的过程数据。 支持与主机 PC104 的双端口 RAM 接口。 输入电压5Vi。 工作环境温度:-40℃~753℃。 其他要求:多功能车辆总线MVB系统与用户列控系统同步设计,有严格的时间限制。 2. 第二步:设计系统架构,协同分配软硬件需求 嵌入式系统由硬件和软件两部分组成:硬件架构以嵌入式处理器为中心,配置必要的外设,如内存、I/O 设备、通讯模块等; 软件部分以软件开发平台为核心,向上提供应用程序编程。 接口(API),向下屏蔽特定硬件功能的板级支持包BSP。 在嵌入式系统中,软件和硬件紧密配合,共同完成系统预定的功能。
根据OSI七层模型,可以确定链路层和物理层由硬件实现,其他层由软件实现,如图1所示。 图1:MVB OSI模型和MVB系统软件和硬件部门。 1.嵌入式操作系统的选择:操作系统调试工具、开发环境、在线仿真器(ICE)、编译器、汇编器、连接器、调试器、模拟器等。操作系统开发商的声誉取决于系统的需求和根据以上原理,MVB系统采用Vxworks实时操作系统。 VxWorks是风河公司(Windriver)开发的实时操作系统之一。 它因其卓越的可靠性、实时性能和内核可扩展性而被使用。 广泛应用于通信、军事、航天、航空、工业控制等重点行业。 其开发环境是Tornado。 2、处理器选择:为嵌入式系统选择处理器时需要考虑以下几个方面: 工具支持:对软件创建、调试、系统集成、代码调整和优化工具的支持对于整个项目的成功至关重要。 开发人员过去的处理器经验:拥有处理器或处理器系列的开发经验可以减少学习新处理器、工具和技术的大量时间。 成本、功耗、产品上市时间、技术支持等。在本系统的设计中,考虑到上述因素,处理器性能、操作系统支持以及列车上恶劣的工业环境等,在MVB系统选用ATMEL公司用于工业控制领域的工业级AT91系列ARM处理器AT91M40800。 它基于ARM7TDMI内核,包含高性能32位RISC处理器、16位高集成指令集、8KB片上SRAM、可编程外部总线接口(EBI)、3通道16位计数器/定时器、32个可编程I/O端口、中断控制USBART、可编程看门狗定时器、主时钟电路和DRAM时序控制电路,并配备先进的节能电路; 同时可支持JTAG调试,主频可达40MHz。
3、相关外部设备的选择:确定了操作系统和处理器后,就可以确定相关的外部设备,如FLASH、RAM、串口等。在MVB系统中,MVB控制器MVBC(MultifunctioBusController)是一个接口MVB 电路和实际物理设备之间的控制器。 其主要功能是实现MVB总线信号和数据帧的编码、解码、纠错等功能。 它是本系统要实现的关键硬件模块。 由于系统规模、上市时间等要求,系统暂时不考虑ASIC实现。 因此,MVB系统中这一关键模块采用FPGA来实现。 FPGA 是 ASIC 最灵活且最具成本效益的替代方案。 考虑到系统要求以及FPGA资源、成本、可用性等因素,我们最终选择了Altera的Cyclone系列FPG,其开发工具是QuartusII。 4. MVB 系统架构 基于上述需求分析和选型,完整的系统硬件架构和软件架构如图2 和图3 所示。 图2:MVB 系统的硬件架构。 图 3:MVB 系统的软件架构。 其中,处理器与MVBC通过TraffiMemory(TM)交换通信数据。 软件和MVBC要交换的所有控制信息和数据都可以在TM地址空间中找到。 该地址空间可供处理器和 MVBC 访问。 示意图4如图4所示:TrafficMemory。
3、第3步:详细的软硬件设计以及TL代码和软件代码开发。 在系统架构确定的基础上,就可以开始详细的软硬件设计。 1.硬件设计 硬件设计包括MVB控制器的FPGA设计和MVB总线系统的板级设计。 MVB控制器的关键设计如图5所示。如图5所示,MVB控制器包括以下功能编码器: 生成曼彻斯特编码和发送数据地址逻辑:解析输入地址供CPU访问MVBC内部寄存器; 生成 MVBC 访问 TM 的输出地址。 中断逻辑:支持16个中断源; 时钟生成电路:生成所有MVBC操作的时钟和和 计数器 2.软件设计 由于在MVB系统中,过程数据、报文数据和监控数据是三种不同的通信机制,因此,MVB系统软件的模块设计为如图6所示。 4.软硬件联调与集成 图6:MVB系统软件模块。 下面通过一个简单的例子来说明MVB系统软硬件的集成和验证。 过程数据在 MVB 系统中定期发送。 本系统中其通信机制如下:对于发送方来说,用户应用模块将某个端口的过程变量发送给过程数据处理模块。 过程数据处理模块按照逻辑端口的设置,通过链路层接口模块定期更新Traffic Memory中对应逻辑端口的数据。 至此,发送端软件的任务就完成了。
发送方MVBC硬件接收总线管理器BA定时发送的主帧,通过解码器解码得到对应逻辑端口的值,通过查询Traf的相关逻辑端口传输设置自动将MVBC设置为发送状态ficMemory,并设置逻辑 该端口的数据通过编码器作为帧的过程数据发送出去,如图7所示: 对于接收方来说,接收过程与发送方相反。 接收器的MVBC硬件接收总线管理器BA定期发送的主机帧,并通过解释器对其进行解释。 解码器解码对应逻辑端口的值,查询Traffic Memory相关逻辑端口接收设置后,自动将MVBC设置为接收状态。 收到发送方的从帧后,更新Traffi数据中对应的逻辑端口,并发送中断信号,完成硬件接收过程。 接收器的软件可以通过过程数据处理模块使用中断或定时查询来获取逻辑端口更新的过程数据。 5. 系统测试 图7:过程数据通信示例。 在本系统中,系统测试不仅包括软件测试,还包括硬件和FGPA测试,本文不再详细介绍。 结论上述MVB系统现已在列控系统中运行,成功实现了列车运行控制、机车控制、车辆控制、状态监测和故障诊断。 当然,如果有必要,本文中的MVB系统可以转换为ASIC设计,从而成为SOC嵌入式系统。 参考资料: 1. 国际标准 IEC-61 371-1、AT91M40800 数据表