基本系统设备是什么驱动(设备管理器中基本系统设备)
国网:智能物联电能表操作系统开发、应用进程的解读与讨论
中国现代电网量测技术平台
张春晖
2023年7月9日
进入2023年,本文作者、张震先生高度关注国网智能物联电能表操作系统的开发、应用新课题:
首先,2023年6月2日,由本文作者撰写、张震翻译的《兰吉尔(Lindis&Gyr):推出新一代(采用物联网通信技术)E360系列智能电表》发表后,引起“中国现代电网量测技术微信群”专家的热烈反响,经广泛讨论,专家们提出国产新一代智能电表存在的设计缺陷,主要是国网智能物联电能表采用的操作系统,是专门做系统的公司开发,不了解产品,更不了解产品可靠性,不宜用于电能表和集中器、融合终端等系列专类电力产品上。
其次,早期的电能表应用过操作系统,后来没有继续。
而2023年初,国网推出《智能物联电能表功能及软件規范(Q/GDW 12180-2023)》(以下简称:国网12180規范),首次在国内的智能物联表上采用嵌入式操作系统。可以说,这是国内嵌入式操作系统在电能表上应用的新探索。
再是,目前,国际、国内嵌入式操作系统大多是通用软件产品。但在“中国现代电网量测技术微信群”第一次讨论后,计量专家 王运兵总工向本文作者提问:如果我们想推广完全自主研发的操作系统,您有什么建议?。这里指出,电能表上应用专类产品的操作系统,是电表设计技术的创新。
本文主要以国网智能物联表操作系统为专题,汇总、解读其开发、应用进程,并提出现行智能物联表操作系统再发展,需要讨论的问题。
1、从电力终端应用操作系统説起
1)电力终端产品应用操作系统已久,积累起10多年开发经验。电表企业大多引用国际上通用嵌入式操作系统(如Linux),经过细化用于电力终端开发,几经改版,不能形成自主知识产权。
2)Linux嵌入式操作系统的起源与结构
— Linux的起源
1984年,国际上,Richard Stallman 组织开发出一个完全基于自由软件的软件体系计划—GNU(GNU is Not UNIX的递归縮写),并拟订出一份通用公共许可证。
1991年,芬兰大学生 Linux Torvalds 在其Intel 386 计算机上开发了第一个软件程序,并利用Internet发布了源代码,将其命名为Linux,从而创建了Linux操作系统。
— Linux的特点:自由软件、源码公开;性能高、安全性强;便于定制和再开发;互操作性高;全面的多任务和真正的32位操作系统。
— Linux的常用版本:一个是内核(Kernel)版本;另一个是发行(Distribution)版本。
— Linux内核版本的操作系统结构
该Linux操作系统有4个主要部分:内核、Shell、文件系统和应用程序。其中,内核、Shell和文件系统形成基本的操作系统结构。该操作系统使用户可以运行程序、管理文件并使用系统。
•Linux内核:操作系统的核心,具有很多基本功能。它负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统,决定系统的性能和稳定性。
•Linux Shell:系统的用户界面,提供用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是个命名解释器。
另外,Shell编程语言具有普通编程语言的很多特点,因此,Shell程序与其它应用程序具有同样的效果 。
•Linux文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种流行的文件系统(略)。
•Linux 应用:标准的Linux 系统都有称为应用程序的程序集。它包括文本编辑器、编程语言、XWindow、办公套件、Internet工具和数据库等。
— 小结:Linux的结构,有源代码和软件程序两部分。其软件程序包括基本操作系统(内核、Shell、文件系统)和应用程序集。
2、国网12180規范对操作系统及应用软件要求(摘要)
智能物联电能表是由计量模组、管理模组、扩展模组构成。
操作系统是智能物联表的管理模组功能软件的统一开发平台;电表计量模组、扩展模组的功能,仍采用传统软件开发方式进行操作。
1)与操作系统及应用软件相关的术语和定义
— 管理模组(国网12180規范编号:3.2):由数据处理单元、显示单元、安全单元、存储单元、控制单元组成,能够实现显示、对外通信、事件记录、数据冻结、负荷控制等功能的模组,是连接计量模组与扩展模组的中间件。
— 管理模组插拔事件(编号:3.57):在电能表计量模组检测到管理模组插拔时记录的事件。
注:计量模组宜根据检测到的插拔管理模组信号或管理模组ESAM序列号变更判断此事件。
— POSIX标准接口(编号:3.60):可移植操作系统接口,是IEEE为在各种操作系统上运行的软件而定义的一系列应用软件标准接口的总称。
— 应用程序(编号:3.61):运行在操作系统上实现特定功能的软件程序。
— 基础应用程序(编号:3.62):执行电能冻结、需量测量、事件记录、控制等管理模组业务功能的应用程序。
— 系统管理程序(编号:3.63):对电能表其它应用程序进行管理、监控 ,确保系统稳定运行的应用程序,负责电能表系统通信协议解析与消息路由功能。
— 安全服务程序(编号:3.64):完成对电能表EASM模块的调用管理,管理外部设备的接入认证,确保系统安全运行的应用程序。
— 扩展应用程序(3.65):根据未来业务应用需要,执行除本文件中管理模组要求之外功能的应用程序。
— 信号量混洗时间(编号:3.70):表示从一个任务释放信号量到另一个等待信事量的任务被激活的时间延迟。
— 白盒测试(编号:3.71):为确定软件实际运行状态与预期状态是否一 致,按照软件内部的逻辑结构进行的覆盖性测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
2)管理模组功能要求
管理模组搭载操作系统并可在其上运行各类应用软件,能够保存各种冻结数据,进行对外通信,同时承担计量模组、扩展模组的对外通信路由功能。其具体功能(15项)包括:电能数据;需量测量功能;时钟同步;费率和时段功能;冻结功能;事件记录;清零功能;通信功能;信号输出;显示功能;监测功能;费控功能;保电功能;安全保护;软件要求。
3)操作系统架构
电能表管理模组功能软件应在统一的操作系统平台上进行开发。电能表软件基于管理模组硬件平台运行 ,根据基本功能、运行环境及运行权限不同,分为启动层、驱动层、系统层、应用层。
— 应用层:实现电能表系统应用软件、业务应用软件及扩展应用软件的运行和管理。其中,系统应用软件实现消息路由、模组管理、事件通知、应用管理、升级管理、安全管理、接入认证等;业务应用软件,实现电能表业务功能;扩展应用软件,实现电能表扩展功能。
— 系统层:实现嵌入式操作系统多任务调度、任务间通信、内存资源分配及保护等。
系统层包含内核、组件、POSIX标准接口。
— 驱动层:实现主控驱动及外设驱动;兼容多款M4核硬件平台,对系统层和应用层提供统一接口。
— 启动层:实现部分硬件的初始化,引导内核启动。
4)操作系统要求
.— 资源要求:CPU,采用性能不低于Cortex-M4的架构;内存,不低于512kB;FLASH容量,不低于 1 MB。
— 操作系统功能及性能要求
•内核:支持内存管理、线程管理、线程间通信、线程同步、时钟管理、设备管理等基本功能;支持内核应用分离、内核与驱动分离、系统及应用进程管理、系统资源权限分配、数据安全隔离等扩展功能。
•组件:支持设备驱动框架、系统维护管理等接口功能。
•POSIX接口:支持外部设备对外接口统一,通过POSIX接口提高对不同操作系统的兼容性和应用程序的开移植性。
•实时性:内核实时性指标包括任务切换时间、通道通信时间、信号量混洗时间、信号接收时间等。
•健壮性:具备内存碎片处理、内存泄漏应对措施、文件存储管理和权限控制等能力要求。
•兼容性:应支持在本規范电能表资源要求的硬件平台上正常运行。
5)应用软件要求
— 功能性要求
•在满足应用软件使用环境要求的前提下,应实现管理模组所有功能。
•所实现的功能应与在设计文档所描述中明示的功能一致。
•应实现功能内在、外在及与业务直接相关的隐含性需求。
•所包含的功能应明示,不应包含隐藏功能。
•应可以即时安全停止或安全退出。
•对可预知的误操作应进行处理。
— 代码安全
•所引用或包含第三方代码或开源代码应确保第三方代码或开源代码安全性,应对已公布的安全漏洞及时更新。
•应禁止管理接口被其它基础应用软件调用。如需供外部调用,应检查调用者是否符合访问权限控制要求。
— 其它的安全性要求、通信安全、性能效率要求、可靠性要求、兼容性要求:(略)
6)操作系统试验
— 软件质量测试
通过白盒测试快速分析代码,查找致命缺陷或安全漏洞,加强操作系统的稳定性和安全性。试验项目:包括控制流分析;数据流分析;接口分析;表达式分析;软件结构度量元分析;语义分析;单元动态测试;软件集成测试;故障注入专项测试的测试。
— 功能及性能测试
对操作系统的多线程、多进程、设备访问、文件操作、内存管理等功能和性能进行测试验证。其试验项目包括:功能测试;实时性测试;健壮性测试;
— 兼容性测试:(略)
7)驱动试验、应用软件试验:(略)。
8)小结
本部分内容汇总了国网12180規范对智能物联表管理模组的操作系统及应用软件的主要要求:
— 明示:管理模组具有的诸多功能及对编制功能应用软件的要求。
— 明示:选用的操作系统架构、内核的微控制器及其它重点要求、POSIX标准接口,以及对操作系统主要性能、测试要求。
— 明示:操作系统需要编制出应用程序,包括基础应用程序、系统管理程序、安全服务程序、扩展应用程序。
— 国网12180規范
•未明确:管理模组功能的统一代码。
•未明确:选用哪家公司开发的通用操作系统产品?在智能物联表上应用有何优点与存在问题?
•未明确:选用操作系统内的进程管理(任务调度),内存管理,设备驱动程序,文件系统和网络系统等;这些要求,需由电表企业:按照国网12180規范要求,消化、熟悉国网选用的通用操作系统平台后,确定管理模组的功能代码,编制出功能应用软件,编制出应用程序,最终保证管理模组在操作系统平台上正常、完整的运作。
可以说,这些未明确的技术要求,正是引发业内软件专家对国网智能物联表操作系统的技术争议。
3、从国网12180規范出台前后的情况,看智能物联表操作系统开发、应用的走向
1)国网12180規范编制的主要工作过程
— 2023年1月,国网12180規范经批准正式立项。
— 2023年2月,标准编制组建立,开启标准编制工作,并形成标准初稿。
— 2023年3-9月,标准补充了操作系统及应用软件的相关要求。
— 2023年11月,标准编制组在福州市召开电表企业、各省电网专家的专题会议。
— 2023年11-12月,标准编制组形成标准征求意见修改稿。
— 2023年1-4月,标准编制组形成标准送审稿。
— 2023年5-6月,标准编制组召开标准评审会。
— 2023年6-7月,标准编制组形成标准报批稿。
— 2023年1月,国网12180規范发布并实施。
2)从多方信息判别:国网智能物联表初期,采用翼辉的嵌入式实时操作系统
— 2023年6月11日,在2023第四十届中国电工仪器仪表产业发展研讨会上,兆易作为中国最大的Arm MCU 家族 – 微控制器、SPI NOT Flash供应商介绍了GD32 MCU 高性能通用微控制器和可商用的国家电网电表的MCU应用,其中,包括基于GD32 F450 的嵌入式实时操作系统(翼辉)。
同时,本文作者向正泰集团物联网研究院询问国网智能物联表操作系统情况时,该院物联网专家提供了翼辉的MS-RTOS嵌入式操作系统资料。
— 翼辉:MS-RTOS 嵌入式操作系统介绍
•MS-RTOS (Micro Safe RTOS的缩写)是一款面向未来的小资源、高安全领域物联网操作系统。其特点是开创性的没有MMU和资源受限的MCU(如Cortex-M3)上也能支持多进程与动态装载技术,使得应用与系统能分离开发、独立升级;MS-RTOS支持内核空间内存保护,使内核有高的安全性。
翼辉提供一套功能强大的集成开发环境(IDE)。
•MS-RTOS的架构
其一,用户态
进程1-进程4:每个进程配有内存堆、C库、C++运行时。
其二,内核态
内核态包括动态装载器、IO系统、驱动框架、Sell命令行、安全关键应用。其实用功能 ,包括:
进程管理、互斥量、消息队列、内存堆、软件定时器、时间管理、中断管理、MPU;
线程管理、信号量、事件标志组、定长内存块、条件变量、分析模块、异常处理、FPU。
其三,硬件。
•MS-RTOS 彻底颠覆传统物联网节点开发方式,提高物联网节点安全性,符合未来5G时代万物互联的需求。
— 翼辉:嵌入式实时操作系统系列产品开发进程
•翼辉在2015年成立之前,研发出SylixOS作为国内具有完整自主知识产权的大型嵌入式实时操作系统,在功能、性能上完全实现对国外同类操作系统的替代。
•2023年,翼辉基于SylixOS内核的下一代面向物联网和边缘计算的智能操作系统(EdgerOS)正式发布。
•MS-RTOS:小资源、高安全领域物联网操作系统。
3)北京智芯公司:国网直属电力芯片和操作系统开发公司,自然是国网智能物联表操作系统产品选型的关键部门
— 2023年8月30日,由中国电科院发起的智能量测产业联盟在北京市召开新一代智能电表操作系统可行性技术研讨会。
会议听取国网计量中心关于《新一代智能电表设计方案》,北京智芯公司关于《新一代智能电表操作系统可行性研究报告》(以上简称“报告”)。
会议对新一代智能电表操作系统的软件架构、内核及其组件等内容进行深入讨论,并对“报告”提出了修改意见。
— 北京智芯公司:电力芯片和嵌入式操作系统产品开发取得重大突破
•2023年4月20日,北京智芯公司自主研发的嵌入式操作系统-枢纽4.0通过中国电子信息产业发展研究院检测认证。
2019年至今,搭载北京智芯公司枢纽操作系统的各类边缘计算核心板及产品(如台区融合终端)在全国27家省级电网实施百万台现场部署及应用。
之后,北京智芯公司自主研发的嵌入式操作系统-枢纽4.0获工信部赛宝实验室功能安全系统检测认证,标志智芯的该操作系统具备轨道交通与汽车电子等高安全标准工业行业的准入条件。
•还有,2023年4月2日,国网信通产业集团智芯公司研发的枢纽操作系统2.0顺利通过中国金融认证中心检测。
枢纽操作系统2.0是针对边缘计算终端定制的系统级基础平台,适合高端复杂多核处理器设备使用。
4)“ 中国现代电网量测技术微信群”专家:两次讨论国网智能物联表操作系统开发、应用进程,提出正反两方面的意见:
— 2023年6月2日,第一次讨论提出的意见:(略)。
注:详见2023年6月7日,由本文作者撰写、张震翻译的《国产新一代智能电表存在的设计缺陷与兰吉尔(Lindis&Gyr)E360系列智能电表高质量设计方法》。
— 2023年6月7日,第二次讨论提出的意见:
•早期的电能表应用过操作系统。
最早是2006年开始的,当时研究的是ucos;到2008年,研究的就多了;在2011年,那时的QQ群讨论过,很多资深电能表专家认为:操作系统不能应用到电能表上。
现在的操作系统,能否应用于国网2023版标准的电表上,这是很关键。
(以下讨论:智能物联表的操作系统如何开发?)
•操作系统能降低软件开发难度?
增加操作系统是要降低产品开发难度,降低开发人员的要求,不增加成本提升可靠性,不是为了操作系统而操作系统。
为什么一提操作系统,就有不可靠的概念?操作系统不就是一个任务调度器,添加一些任务通信机制吗?开源的操作系统,经过验证,相对来说比较稳定可靠。操作系统就是用的人越多,越可靠。
操作系统都觉得能降低软件开发难度,但实际对软件开发者要求还是很高的,据我了解,一个成熟的ucos系统开发人员,培训平均需要一个月才能上手
•把裸机的可靠性与多进程、多任务结合起来;漏洞问题,可能很难解决。
•APP,增加设计、应用难度
操作系统本身是为简化应用开发,但是涉及资源、成本、效率等一些特殊要求后,就会增加使用难点。一个APP放上去没问题,但多个放在一起,是否一定不会有问题,没人能够确定。集中器的应用,要增加一个APP,必须要把他应用的所有APP环境进行全面全方位测试,才能保证这个APP能够正常使用。
•任务调度器+任务通信机制+行业特性库+协议栈库,不就是现在的操作系统?APP是基于操作系统提供库的。
•任务调度器+什么,这些机制和架构没问题,都是这样,但是具体到系统内核,非常的复杂,电表不用这么复杂。
别想的这么复杂,我2005年接触的第一个操作系统Tinyos,不到500个字节。能有多复杂?linux,第一版就782K(带文件系统),后面只是库变多了。
•电能表的一些问题和特殊要求,应该写入到操作系统的,那么请问现在做操作系统的人懂电能表吗?
操作系统需要一些懂业务的一块做。
需要添加行业的一些特性库。如果光靠系统的人,肯定是有所缺陷的。
•翼辉的操作系统,能用来做计量吗?
需要添加一些行业的特性,不然效率相对会低。
•任何操作系统和app都有兼容问题,这涉及到mcu的资源分配,特别对于主频很低的单核嵌入式mcu。通用操作系统+app并不是一个好的解决方案。
现在的操作系统,要用在电能表上,需要解决最重要的问题:系统的资源不能随着APP的修改或增加,导致系统资源变化较大或不确定。比如堆栈,APP增加了,堆栈就要增加,这样增加了系统的不确定性,类似的问题都要解决好。
•如果能像视频监控系统那样,定制高主频低成本ARM9内核的芯片(不超过20元),内置高容量flash和64M的ram,直接上linux系统,兼容性和适用性会更好,比现在的方案可行性更高。
但有个问题,首先总体成本先不说:
其一,就这个系统运行起来功耗要做到多少?如果每家安装一个,并且现在很多家不住人的,是空置的,这个能效比怎么算?运行功耗的成本可能会很大。
其二,可靠性怎么样?先不说本身的可靠性,就只说Linux系统的代码运行在RAM,如果ram异常了,就可能导致系统死机,这个怎么解决?
(以下讨论操作系统应用收费?)
•操作系统应用不能收费,权责利如何划分?
•让别人先免费用着,再逐渐串联起产业链形成垄断,再收割。这是大物联网思维,是个趋势。
5)由计量专家 王运兵总工提供:MOS嵌入式操作系统
— 2023年6月2-7日期间,计量专家 王运兵总工向本文作者提问:如果我们想推广完全自主研发的操作系统,您有什么建议?
— 6月7日,本文作者撰写出《回复:王运兵总工问》:(略)。
— 随后,本文作者收到由王运兵总工组织开发的MOS嵌入式操作系统概要。该概要如下:
•MOS系统原理简介
MOS系统又名基于模块化的嵌入式操作系统,来源于电能表裸机软件系统。该操作系统是基于模块化软件系统之上形成的操作系统。
模块化软件系统是随着裸机软件系统的模块化开发的成熟而形成的一种裸机系统,其各个功能模块完全独立去耦合后形成的一种系统,各模块可独立加载,独立开发,但需要所有功能模块统一编译。
MOS系统,是将模块化系统进行了操作系统化,引入任务调度、进程调度等技术,形成模块独立开发、编译、调试等的一种特殊操作系统。该系统可以使得所有的电子产品的软件开发实现模块化、APP化,而且无需为此增加额外的成本。
•MOS系统关键技术说明
其一,模块化技术
模块可根据功能大小自由定义,比如电能表的计量,可以分为计量驱动模块、瞬时量模块、电量模块、需量模块等进行独立开发与安装等,也可以把这些模块统一成一个大的模块。每个模块都被抽象出统一的接口。
其二,任务运行技术
每个模块都拥有32个独立的任务消息,一旦发送任务消息后,系统会自动根据优先级调度相应的任务,任务执行完后退出,等待下一次任务的进入。与传统系统不一样地方,传统系统可能是任务完成,采用while(1)扫描新任务或等待新任务,程序不会退出,而MOS系统要求各模块任务执行完后,必需退出。
优点:系统执行完后退出,无需增加进程或线程,可控制进程的数量。
其三,总线技术
所有的模块之间,采用统一的操作总线进行模块的数据与操作等的访问,效率高速度快。无需其它系统的多种复杂的通讯机制。
其四,架构简洁
所有的功能,包括各层的驱动、应用功能模块等,都是系统的子模块,其逻辑地位相同,这样简化整个系统的架构,而且增加系统的灵活性,通过加减模块或替换模块就能满足不同的硬件设计与功能应用。
其五,有限抢占任务调度技术
所有模块的任务,按照模块的任务的优先级进行抢占式调用,最高几个优先级的进程,用于服务系统中最高优先级的模块,保证最高优先级的几个模块的任务执行不被打断并有限抢占执行,除此之外的低优先级的任务的模块,由低优先级的进程进行分时抢占执行。
优点:既保证高优先级的任务能够实时抢占执行,又能控制进程数,防止进程无序增开。
其六,多用户权限
对所有模块进行分组,每一组模块定义为一个用户,同一个用户的模块可以进行相互访问和操作,禁止不同用户间的模块进行相互访问和操作。所有用户的访问权限的由安全模块负责控制,模块间的数据与操作访问都必需由系统的安全模块负责权限管理。
6)本文点评
目前,讨论国网智能物联表操作系统的开发、应用走向,正当时!
— 回顾国产电能表70年发展史,在智能物联表上应用操作系统实现诸多新的扩展功能还是首次,是智能电表设计新跨越,是现代计算通信系统技术在电能表上应用的新探索。
— 在智能物联表设计、应用 初期,采用多方合作方式:国网制订Q/GDW 12180-2023《智能物联表功能及软件規范》;北京智芯公司提出智能物联表操作系统可行性研究报告;翼辉提供MS-RTOS 嵌入式操作系统;由电表企业实现智能物联表整机设计;由国网计量中心进行智能物联表入网测试认证;最终由国网物资部门完成智能物联表入网统一招标。看起来此过程很复杂,需要建立智能物联表产品质量保证体系,包括建立智能物联表操作系统测试平台,用于鉴别电表企业智能物联表功能开发、抗干扰能力的评估。
— 2023年6月2-7日,“中国现代电网量测技术微信群”进行两次智能电表操作系统专题讨论,对现行通用嵌入式操作系统不看好,主张开发智能物联表专用操作系统。
•通用嵌入式操作系统架构大,内核复杂,使整个电能表设计复杂化,效率相对较低。
•通用嵌入式操作系统程序多,导致进程和堆栈不可控,RAM触发不可靠,电能表整机可靠性降低。
•电能表的特殊要求,应该写入操作系统,增加电能表特性库,做成专用电能表操作系统。
•解决好操作系统和APP兼容问题,通用操作系统+APP不是优化方案。
— 计量专家 王运兵总工提出的MOS嵌入式操作系统,是基于电能表裸机模块化软件系统,经引用任务调度、进程管理、总线技术、多用户操作技术而形成操作系统。可以说,MOS操作系统具有电能表专用操作系统的特征 ,该编制方案可取。
— 北京智芯公司:近几年,陆续研发出枢纽1.0-4.0 嵌入式操作系统,广泛应用于国网电力设备上。估计目前正在开发智能物联表操作系统,建议能吸纳国内先进的电能表专用操作系统编制经验或采用合作开发方式。
— 期望:早日由国网组织研发出智能物联表专用操作系统;并探索采用嵌入式操作系统设计智能物联表整机(包括计量模组、管理模组、扩展模组)的新征程。
4、补充件:嵌入式操作系统术语
1)嵌入式操作系统(EOS-Embedded Operation System 的缩写):用于嵌入式系统的操作系统。通常包括与硬件相应的低层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统负责嵌入式系统的全部软、硬件资源分配,任务调度,控制、协调并激发活动。它必须体现其所在系统的特征,通过装卸某些模块来达到系统所要求的功能。
2)内核:操作系统中的一个组件,包含系统的主要功能,包括任务调度、存储管理、输入/输出(I/O)、设备启动和文件系统管理。
3)程序、进程、线程和任务
— 程序:由数据和代码组成。
— 进程:正在执行的程序,由程序和该程序的运行上、下文组成。
— 线程:代码在进程的资源平台上的一条执行流程。
— 任务:在Linux中,任务指进程;在UCOS- I I中,任务指线程。
任务的三种状态:运行状态、就绪状态及阻塞状态。
4)任务的调度:可抢占调度、不可抢占调度。