王忠 夏传良 胡芳凝 刘超群
摘 要:文中分析了传统软硬件划分方法的缺点,基于嵌入式系统产品开发实际,提出了一种去中心化的软硬件划分方法。文中详细描述了该方法的五条指导性原则,并用一个开发实例说明了上述原则的应用方法,验证了该方法的有效性。该划分方法简化了复杂任务,提高了程序并发性水平,降低了系统开发难度,具有较高的参考价值。
关键词:去中心化;软硬件划分;负载均衡;软件固件化;嵌入式;并发性
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2019)05-00-02
0 引 言
随着嵌入式系统规模不断增大,功能日益复杂,传统“先硬件,后软件”的设计方法已经无法满足当下要求。国内外学者进行了广泛的研究,提出和发展了很多软硬件协同设计方法,如改进迭代算法、模拟退火算法、遗传算法、基于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)大容量NAND FLASH,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 结 语
针对传统软硬件划分的弊端和软硬件价格的变化,提出一种“去中心化”的软硬件划分方法,通过对功能和资源的重新分配、分散,将复杂任务转化为若干简单任务。重新划分后的各模块功能相对独立,负载更加均衡。模块内部功能高度内聚,模块之间低耦合,在提高可重用性、系统可靠性的同时,降低了产品开发难度,方便后期故障检测和系统维护。设计实例表明,这种将功能合理分散的“去中心化设计”思路对嵌入式产品开发有很好的参考价值。
参 考 文 献
[1]陈玮,顾思思.基于组合算法的嵌入式系统软硬件划分方法[J].计算机应用与软件,2015,32(10):241-242.
[2]李岩,屈媛,陈仪香.软硬件协同设计中的软硬件划分方法综述[J].单片机与嵌入式系统应用,2017(8):3-8.
[3]周哲熙.基于平台和中间件的嵌入式系统软硬件协同设计[J].电子测试,2018(12):129-130.
[4]陈思功,秦晓,章恒狲.基于UML的软硬件协同设计的模型分析方法[J].软件学报,2003,14(1):103-109.
[5]何翔.嵌入式多核操作系统负载均衡模型研究[J].电脑知识与技术,2018,14(5):67-68.
[6]陈亮,李峰,夏征仪,等.区块鏈:物联网应用进展研究[J].物联网技术,2018,8(1):100-103.
[7]王世好,严迎建,吴清平.嵌入式系统软硬件协调设计环境构造与实现方法[J].计算机工程与应用,2002(16):223-225.
[8]耿强,黄雪琴,姜文波,等.基于网络仿真软件分析负载均衡协议[J].物联网技术,2018,8(1):38-39.
[9]陈扶辛,康秀光,张彬.新的嵌入式系统设计方法学:软硬件协同设计[J].科技资讯,2006(14):203.
[10]李正民,郭金金,吕莹莹.一种嵌入式系统软硬件划分方法[J].计算机仿真,2011,28(10):204-207.