您好, 访客   登录/注册

基于SPI接口的1394总线配置表加载设计与实现

来源:用户上传      作者:魏艳艳 袁晓军 蔡叶芳 牛少平

  摘   要:为了满足飞管系统对1394总线配置表存储器存储容量大、读取速度快、封装小、功耗低等要求,文章提出了采用SPI串行Flash存储1394总线配置表。在对SPI协议和SPI串行Flash充分研究的基础上进行了1394总线配置表加载的系统设计、关键功能分析设计和RTL设计实现,最后通过虚拟仿真验证、FPGA原型验证及后仿真验证,结果表明该设计各项功能正确,性能满足系统要求。
  关键词:串行外设接口;1394;配置表;循环冗余
  军用1394总线能够满足航空航天等高安全领域对总线高可靠、低延迟、确定性的需求,目前已经成功应用于航电和飞管系统中。杨峰等[1]、王宣明等[2]、马宁等[3]对1394总线协议、AS5643协议进行了研究并突破了关键技术,还进行了机上产品的研发。飞管系统1394总线网络中控制计算机(Control Computer,CC)节点和远程节点(Remote Node,RN)的通信都是基于1394总线配置表进行消息收发调度控制的,因此1394总线配置表的定义、管理、维护和存储在飞管系统网络通信中起着至关重要的作用。
  中航工业西安航空计算技术研究所正在进行RN芯片的研制,1394总线配置表加载设计是其中一部分,为满足1394总线配置表存储器的存储容量大、读取速度快、封装小、功耗低等要求,设计上提出采用串行外设接口(Serial Peripheral Interface,SPI)串行Flash进行1394总线配置表的存储,并在充分研究SPI协议和SPI串行Flash手册的基础上进行了1394总线配置表的加载设计实现。
  1    系统设计
  1394总线网络中RN芯片主要实现了AS5643协议处理功能以及与主机接口、与链路层芯片接口、与SPI接口通信等功能。RN芯片的体系架构如图1所示。
  SPI接口模块主要实现了主机接口与SPI接口的时序转换及SPI控制器功能。SPI控制器支持主设备,支持4种传输模式,时钟频率可编程,最大传输数据位128 bit。
  配置表自动加载模块主要实现芯片一上电通过SPI接口自动从片外Flash中读取配置表内容,然后加载到寄存器以及发送配置表和接收配置表中,并支持对配置表内容进行循环冗余(Cyclic Redundancy Check,CRC)校验功能。
  AS5643协议处理模块主要实现AS5643协议规定的RN协议处理功能以及主机软件在获得访问片外Flash的权限下通过SPI接口对片外Flash进行读写功能。
  主机接口模块主要实现处理器对芯片内部寄存器、存储器资源的访问。
  发送配置表和接收配置表分别用于存储发送消息、接收消息的配置信息,大小为32×32 bit,支持主机读访问和逻辑读写访问。
  2    关键功能设计
  2.1  配置表内容
  系统出于可生产以及可维护性考虑,将网络中所有RN的配置信息都保存在一个配置表中,上电时给RN一个可唯一识别的设备号,芯片根据该设备号选择对应的配置表进行加载。配置表包含配置表头和配置表两部分,配置表头规定了配置表版本号、STOF周期、STOF门限、1394总线传输速度、消息偏移等,配置表规定了每个设备的消息数目,每条消息的配置信息等。
  2.2  自动加载
  配置表自动加载具体操作如下:首先,芯片上电后通过SPI接口进行SPI初始化配置。芯片作为主设备,应该与从设备片外Flash的配置相符才可以通信。其次,加载配置表头,将配置表頭的信息存入相应的寄存器中。最后,加载配置表,将消息的配置信息分别存入发送配置表和接收配置表中,其他配置表信息存入寄存器中。
  2.3  在线加载
  设计上支持主机通过SPI接口对片外Flash进行在线加载配置表,这样便于机上产品设备配置表的更新和维护,而不用拆卸设备。
  主机在线加载配置表的过程中,芯片保持在原工作模式,新的配置表内容在芯片复位后才会起作用。主机必须获得访问片外Flash的权限,才可以读写片外Flash,从而实现在线加载功能。
  在线加载任务主要包括:通过操作SPI寄存器,进行读Flash操作、写Flash操作,将总线配置表数据存储在片外Flash芯片中。写Flash操作首先要对Flash进行擦除操作(包含输入写使能命令、擦除命令),才能进行写操作(包含输入写使能命令、编程命令、写Flash数据),如图2所示。读Flash操作,输入读指令和读地址后,数据即从Flash中输出,如图3所示。
  2.4  CRC校验
  配置表数据的正确性影响着1394总线网络节点通信的可靠性和安全性,因此必须在设计中增加校验功能,检测配置表数据是否发生错误。由于CRC能同时检测和抗干扰,是一种高效、可靠的差错校验法[4],故该设计对配置表进行了CRC校验。
  CRC校验算法的多项式为X16+X15+X2+1。从Flash读数据的同时,CRC校验也同时进行。配置表连续加载3次,若3次CRC都校验错误,则芯片不能收发消息。
  3    仿真验证
  文章采用Verilog硬件语言硬件描述语言(Hardware Description Language,HDL)实现了寄存器转换级电路(Register Transfer Level,RTL)设计,并搭建虚拟仿真平台编写测试用例进行功能验证,使用Xilinx XC5VLX330T进行现场可编程门阵列(Field-Programmable Gate Array,FPGA)综合生成可编程文件,外接MPC8245处理器,模拟主机运行测试程序在FPGA原型验证平台上进行功能验证。最后采用CMOS 0.13 μm工艺进行专用集成电路(Application Specific Integrated Circuit,ASIC)综合,将生成的门级网表加入SDF文件后进行后仿真验证。   4    结语
  文章基于系统要求提出了采用SPI串行Flash存储1394总线配置表,并进行了系统设计,对关键功能进行了分析,通过虚拟平台验证,FPGA原型验证和后仿真验证,该设计各项功能都正确,性能也满足系统要求。该设计已经应用在RN芯片研制中,现已成功流片,下一步工作主要是样片验证和系统应用测试。
  [参考文献]
  [1]杨峰,陈伟,王宣明,等.1394总线关键协议分析与研究[J].电子技术与应用,2016(6):7-10.
  [2]王宣明,田澤,魏艳艳,等.SAE AS5643协议分析及设计实现[J].计算机技术与发展,2015(7):213-216.
  [3]马宁,王宣明,郑斐.飞机管理系统1394 总线AS5643协议的设计与实现[J].航空计算技术,2013(6):122-124.
  [4]强小燕,史兴强,刘梦影.CRC校验在SPI接口设计中的实现[J].电子与封装,2018(11):30-35.
  Design and implementation of 1394 bus configuration table loading based on the SPI interface
  Wei Yanyan, Yuan Xiaojun, Cai Yefang, Niu Shaoping
  (Xi’an Aeronautics Computing Technique Research Institute, AVIC, Xi’an 710068, China)
  Abstract:In order to meet the requirements of flight control system on 1394 bus configuration table memory, such as large storage capacity, fast reading speed, small package and low power consumption, SPI serial Flash was proposed to store 1394 bus configuration table in this paper. On the basis of full research on the SPI protocol and SPI serial Flash, the system design, the key function analysis and design and the RTL design of the 1394 bus configuration table loading were carried out. Finally, though the virtual simulation verification, the FPGA prototype verification and the post simulation verification, the results showed that the design was correct in various functions and the performance met the requirements of the system.
  Key words:serial peripheral interface; 1394; configuration table; cyclic redundancy check
转载注明来源:https://www.xzbu.com/8/view-15197676.htm