一种分层架构的硬件电路检测软件设计.docxVIP

  • 7
  • 0
  • 约2.28千字
  • 约 3页
  • 2021-08-23 发布于广东
  • 举报

一种分层架构的硬件电路检测软件设计.docx

一种分层架构的硬件电路检测软件设计 摘要:文章介绍了一种分层架构的硬件电路检测软件设计,该设计采用模块化分层设计原则,系统软件设计包括由外设驱动层(PD)、外设抽象层(PAL)、中间件层(Middleware)、应用层、状态机调度层等部分组成,各层间逐级调用,可以广泛运行在ARM内核的S32K1XX系列等单片机平台上,具备通用性;该软件设计充分考虑硬件电路检测的需求特点,预留接口和可灵活的增减检测项以及更改检测项相关参数。 1 基本介绍 硬件电路检测是电器产品生产过程中的重要环节,可以在产品外壳装配环节前检测出硬件电路甚至芯片或者电阻级别的质量问题,避免问题件被深度加工。 硬件电路检测软件主要功能有开关电路检测(高有效、低有效)、ADC信号采集电路、系统电压采集电路(主系统电压和各分系统电压)、系统唤醒源(CAN、LIN、硬线)电路、半桥/全桥驱动电路、驱动电路、驱动电路的输出反馈电路、驱动电路的输出上拉电路以及各种通信接口电路(CAN、LIN、串口)等等。 1.1 软件功能需求和模块划分 硬件检测软件功能需求除了基本的硬件电路检测以外,还需要人机交互、检测结果数据传输功能、按照功能模块化划分,具体系统功能组件如图1所示。 1.2 软件分层设计 按照功能进行软件代码分层设计,将系统由外设驱动层(PD)外设抽象层(PAL)、中间件层(Middleware)、应用层、状态机调度层分为5层。每个层级又分为多个单独的模块,模块间相互独立,被上次系统逐级调用,软件分层如图2所示。 2 各层软件工作原理 2.1 外设驱动层(PD) PD层组件通过调用对外设寄存器操作的硬件访问(一般为宏定义或者static函数),读写MCU底层硬件外设模块的寄存器,完成对外设功能配置和状态读取实现软硬件交互,由于PD层代码直接操作寄存器,所以其效率很高,但不能跨平台使用 PD层组件提供了丰富的API接口,支持对外设寄存器进行直接读写操作,其API函数以peripheral name_DRV_xxxx命名,提供对某一外设初始化(_Init)、反初始化(_Deinit)、配置(_Config)、数据发送(_Send)、数据接收(_Receive)、写寄存器(_Set)和读寄存器/状态(_Get)以及中断;如:pins_channel_type_t PINS_DRV_Read Pins(const GPIO_Type*const base)用于读取输入引脚的电平。 2.2 外设抽象层(PAL) 在PD层的基础上,封装一个外设抽象层,将能够实现相同功能的外设PD组件封装为一个PAL功能组件,PAL抽象对上层级提供统一的API函数,便于上层对于相同功能模块的统一化处理。 PAL层组件对PD层组件功能进行了抽象和封装,提供了相对较少但功能强大的API接口,其API函数以peripheral function name_xxxx命名,提供对某一功能集外设初始化(_Init)、反初始化(_Deinit)、配置(_Config)、数据发送(_Send)、数据接收(_Receive)、写寄存器(_Set)和读寄存器/状态(_Get)以及中断回调函数注册(_Install Event Callback)等功能函数;如:void INT_SYS_Install Handler(IRQn_Type irq Number,constisr_tnew Handler,isr_t*constoldHandler) 定时器中断服务函数void ftm Timer ISR(void) 代码如下: 用于产生时间标志用于驱动调度机制运转,以及指示灯闪烁,便于使用者观察 2.3 间件层(Middleware) 一般中间件包括软件协议栈(CAN,LIN)USB及文件系统,外围复杂芯片驱动。S32 SDK提供了PD,PAL,Middle-ware,可以通过NXP公司的桌面可视化配置工具完成配置,配置方法参考的是官方说明文档,也可参考官方代码自行完成PD层和PAL层设计 本设计PD层和PAL层用NXP提供的SDK配置,Middle-ware使用协议栈生成CAN,LIN通讯协如图3所示。 2.4 状态机调度层(AL) 定义状态数据的枚举类型 2.5 应用层(AL) 本设计应用层主要是调用状态机调度层,实现不同模块的硬件状态检测,此外应用层还有个重要任务是将检测结果通过CAN总线或者LIN总线或者串口传输出去,检测结果输出方式可灵活配置选择某种方式也可以三种方式同时输出,便于上位机或者显示屏等使用,检测结果通过CAN总线如图4所示。 3 车间生产验证 分层架构设计的硬件检测软件和老版本的硬件检测软件在检测效率和误检率上的比较数据,如表1所示。 4 结

文档评论(0)

1亿VIP精品文档

相关文档