什么是嵌入式硬件构件?它与我们常说的硬件模块有什么不同?
众所周知,嵌入式硬件是任何嵌入式产品不可分割的重要组成部分,是整个嵌入式系统的构建基础,嵌入式应用程序和操作系统都运行在特定的硬件体系上。一个以MCU为核心的嵌入式系统通常包括电源、写入器接口电路、硬件支撑电路、UART、USB、Flash、A/D、D/A、LCD、键盘、传感器输入电路、通信电路、信号放大电路、驱动电路等硬件模块,其中有些模块集成在MCU内部,有的位于MCU之外。
与硬件模块的概念不同, 嵌入式硬件构件是指将一个或多个硬件功能模块、支撑电路及其功能描述封装成一个可重用的硬件实体,并提供一系列规范的输入/输出接口。 由定义可知,传统概念中的硬件模块是硬件构件的组成部分,一个硬件构件可能包含一个硬件功能模块,也有可能包含多个。
根据接口之间的生产消费关系,接口可分为提供接口和需求接口两类。根据所拥有接口类型的不同,硬件构件分为核心构件、中间构件和终端构件三种类型。核心构件只有提供接口,没有需求接口。也就是说,它只为其他硬件构件提供服务,而不接受服务。在以单MCU为核心的嵌入式系统中,MCU的最小系统就是典型的核心构件。中间构件既有需求接口又有提供接口,即它不仅能够接受其他构件提供的服务,而且也能够为其他构件提供服务。而终端构件只有需求接口,它只接受其他构件提供的服务。这三种类型构件的区别如表 1-1 所示。
表 1-1 核心构件、中间构件和终端构件的区别
利用硬件构件进行嵌入式系统硬件设计之前,应该进行硬件构件的合理划分,按照一定规则,设计与系统目标功能无关的构件个体,然后进行“组装”,完成具体系统的硬件设计。这样,这些构件个体也可以被组装到其他嵌入式系统中。在硬件构件被应用到具体系统中后,设计人员需要做的仅仅是为需求接口添加接口网标。