嵌入式系统设计的软硬件划分研究
扫描二维码
随时随地手机看文章
引 言
随着嵌入式系统规模不断增大,功能日益复杂,传统“先硬件,后软件”的设计方法已经无法满足当下要求。国内外学者进行了广泛的研究,提出和发展了很多软硬件协同 设计方法,如改进迭代算法、模拟退火算法、遗传算法、基于UML 模型分析方法等 [1-2],挖掘系统软硬件之间的并发性,达到性能与成本的最优组合。但这些方法的共同缺点是偏重 于理论层面的分析,可操作性差,硬件模块划分粒度过大, 且较少考虑软硬件成本变化、供应链、研发周期、可维护性 等实际因素。
1 软硬件划分概述
由于嵌入式系统面临技术上的复杂性和开发时间上的严格约束,设计方法已成为影响系统最终成本、性能、可制造性以及研制周期的关键因素。在满足设计规范的前提下,兼顾软硬件的特点,实现优化的软硬件协同设计是解决问题的关键。软硬件划分是软硬件协同设计中的关键,其目标是根据系统功能定义和相应约束,从整体角度进行协调,获得一个可满足系统各方面要求的趋于最优的实现方法。
2 去中心化的软硬件划分方法
嵌入式系统设计的关键是软硬件功能划分,即确定哪些系统功能由硬件实现,哪些功能由软件实现。硬件一般能够提供更好的性能,而软件更容易修改且不占用硬件面积。由于硬件模块的可配置性、可编程性以及某些软件功能的硬件化、固件化,当下很多功能既能用软件实现,又能用硬件实现,软硬件的界限已经不十分明显 [3],加上近年来软件即人力成本的提高和硬件价格的降低,这些新变化给系统软硬件优化组合提供了很大的创新操作空间。
基于上述原因,本文突破软硬件划分的固有模式,提出一种“去中心化”的软硬件划分方法。“去中心化”是指将功能、资源从一个中心重新进行分配或分散的过程,相对于传统一个处理器加外设扩展的方法,去中心化是将资源均衡分布的过程 [4]。该方法遵从以下几条指导原则 :
(1) 去中心化原则。系统处理功能不再集中于单一的核心处理器,而是根据功能分类由多个处理器共同分担,由单核心变为多核心。
(2) 负载均衡化原则。系统处理负载均衡分布于多个处理器,如数据处理、复杂的协议栈由专门的芯片来实现,通过通信接口协同 [5]。
(3) 模块化原则。功能相对独立又集中的芯片组、电路、相关程序,设计成一个独立运行的模块,这部分程序由专门的处理器运行并进行优化,实现这部分程序的固件化。模块内部功能高度内聚,与外界低耦合。
(4) 控制与显示功能分离的原则。如工控领域中除了传统控制功能,还需要电阻、电容触摸屏和组态显示,显示功能相对复杂的,将其设计为独立模块,或者采购市场上的新型组态串口屏,主流供应商有广州大彩、北京迪文等。
(5) 尽量选用固化协议栈的接口芯片实现专门功能,特别是网络接口芯片,如 TCP/IP、蓝牙、WiFi、RFID等。例如具备全硬件 TCP/IP协议栈 +MAC+PHY的以太网芯片W5500,具备完整 WiFi功能的 ESP8266芯片,这些模组具有简单快速、可靠性高、安全性好等显著优势。
3 去中心化设计实例
某科研项目要设计一个医用电子体温计,其基本功能描述如下 :
(1) 将探头置于人体腋下或口腔测量人体体温,符合医疗器械标准 GB/T21416-2008 的要求。
(2) 电容触摸屏能够显示当前温度,查询历史数值,生成历史曲线,进行人机交互。
(3) 通过以太网接口接入网络,将测温数据发送至云服务器,可在手机 APP上查看数据。
按照传统的软硬件划分方法,该设备硬件部分的总体框架如图 1 所示,虚线框内表示由 CPU 实现的内容。
内部各模块描述如下 :
(1) 温度测量和 ADC 转换电路为一个模块,温度误差处理算法由核心处理器完成。
(2) 电容触控电路和液晶显示电路分别通过 I2C接口和RGB 接口接入核心处理器。
(3) TCP/IP协议栈由开源轻量级 LWIP实现,运行在核心处理器中。
(4) 嵌入式图形库 UCGUI或者 emWin运行在核心处理器中。
(5) 大容量 NANDFLASH,SDRAM为核心处理器的扩展,可为图形界面提供存储和缓冲。
按照“去中心化”软硬件划分原则,对图 1 的设计方案重新进行软硬件划分,得到图 2 所示的优化方案,描述如下 :
(1) 液晶显示和电容触控为相对独立的部分,将相关资源整合,开发一种组态串口屏,也可采购现成的模组。通过UART串口与 1#CPU相连,控制功能与显示分离。
(2) 测温电路部分将电路与误差处理整合,加上一个简单 MCU,制成独立模块,通过 UART串口发送符合标准的体温数据。
(3) 将 LWIP软协议栈外移,选择具有全硬件协议栈的芯片,如 WIZnet公司设计生产的以太网接口芯片 W5500、江苏沁恒公司设计生产的网络串口透传芯片 CH9121等。
(4) 将之前的核心处理器功能降级为通过 UART,SPI 接口收发数据、控制指令, 用简单的 MCU代替原来的CPU。
(5) 在软件方面,将体温数据处理、图形库、网络协议栈分散到不同的更简单的 CPU 中,降低了程序的开发难度,处理任务量减少,程序运行负载更加均衡。
优化后的设计方案具有如下明显优势 :
(1) 三个处理器硬件并行工作,程序并发执行提升为真正的并行工作, 既提高了响应速度, 又降低了网络丢包率。
(2) 开发任务得到简化。分割为三个相对简单的模块,降低了开发难度,更适合团队并行开发工作,缩短研发周期。
(3) 对 CPU的要求降低,可选用通用芯片,供应链采购更容易,降低了物料成本。
(4) 研发成果更有价值,如显示模块、体温测量模块的通用性、可重用性得到提高。
4 结 语
针对传统软硬件划分的弊端和软硬件价格的变化,提出一种“去中心化”的软硬件划分方法,通过对功能和资源的重新分配、分散,将复杂任务转化为若干简单任务。重新划分后的各模块功能相对独立,负载更加均衡。模块内部功能高度内聚,模块之间低耦合,在提高可重用性、系统可靠性的同时,降低了产品开发难度,方便后期故障检测和系统维护。设计实例表明,这种将功能合理分散的“去中心化设计” 思路对嵌入式产品开发有很好的参考价值。