从事嵌入式设计的朋友可能感受都有这样的感受,在嵌入式领域当中硬件的设计要比软件来的更简单。这主要是因为数位的硬体设计能够利用具有清楚定义输入与输出的逻辑模组。现在的硬件设计与早些年额不尽相同,早年间,只需利用几个LSI(大规模整合)与MSI(中等规模整合)元件,再加上一些记忆体,然后连接在印刷电路板(PCB)上即可。这种硬体设计至今仍然是非常简单的。
而现如今很多人使用FPGA、记忆体,甚至一颗MCU。还会用到一、两个电源模组与连接器,以便连接到其他板卡或机箱。甚至还可能利用一款无线周边元件或一颗类比数位转换器(ADC)。
无论如何,这些都是非常明确定义的“模组”,具有标准的介面与汇流排。即使是FPGA,也只是用了相同的设计手法——除非得将几个预定义的功能(IP核心)连接至标准的汇流排、记忆体以及几个固定功能的周边。
这样的设计模式相当简单,而且已经成功实现数十年了。只需连接一些明确定义的高性能模组(但在元件或IP核心中整合的功能越多,这些模组也越变越大),就可以创造出所需的系统或子系统。一个搭载FPGA以及标准元件与连接器的典型电路板案例是DiligentInc.针对XilinxZynqSoCFPGA系列推出的Zybo开发套件。
硬体设计并不难
然而当必须为MCU或FPGA编写软体时,最棘手部份才算开始。硬体设计人员解决问题的方式可能是先问:“哪里有明确定义的模组可让我用来打造软体设计?”
设计者会期待有高性能模组所用的介面、预先定义的记忆体模组来保存各种结构、图表与初始化向量。有许多时候,硬体模组能够轻松地利用参数与初始化暂存器加以客制化。但专为通用演算法与结构所用的客制化编码模组在哪里?
现在也许能幸运地找到马达控制演算法或一些相当高阶的数位讯号处理功能,但拥有无缝连接主模组的通用介面或记忆体缓冲结构的机会有多大?也许目前有许多驱动器可用于连接至UART或乙太网路(Ethernet)埠等介面元件,但那些通常只是较低阶的功能,主要在于使其易于控制MCU或FPGA上的硬体。
所以嵌入式的软体设计起来十分复杂,因为共同设计“流程”必须从头开始打造。嵌入式软体设计并不容许直接套用硬体的设计“流程”——像硬体世界一样提供一连串具有通用“汇流排”的标准软体“元件”选择。
很多设计者在进行编写时只是编写几个可控的部分,然后再搭配上特殊的验算方法来实现。显然数位硬体领域完全可以采用这种模块化的方式进行设计,但在软体领域却无法实现,这是一个值得研究的问题。
声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。
NECTO Studio 6.0赋能开发人员使电路充满活力 | 24-02-06 09:42 |
---|---|
MIKROE推出世界上最大的嵌入式项目平台EmbeddedWiki | 23-12-12 13:31 |
Wirepas Click加入世界上最大的附加开发板系列 | 23-10-20 15:35 |
Microchip推出集成嵌入式硬件安全模块的新型32位MCU,保护工业和消费类应用安全 | 23-10-11 17:35 |
格芯和 Microchip 宣布Microchip 28纳米SuperFlash® 嵌入式闪存 解决方案投产 | 23-09-28 15:29 |