简体   繁体   English

如何确定嵌入式系统应用程序/软件的系统要求

[英]How to decide system requirements for embedded systems application/software

How should I decide system requirements like: 我该如何决定系统要求,例如:

  • RAM capacity RAM容量
  • FLASH memory capacity FLASH内存容量
  • Processor frequency 处理器频率
  • etc 等等

I am building an application to control NAND FLASH, LCD driver, UART control, keypad control using a 16 bit micro-controller. 我正在构建一个应用程序,使用16位微控制器控制NAND FLASH,LCD驱动器,UART控制,键盘控制。

This has to be estimated from previous projects with similar functionality. 这必须从之前具有类似功能的项目中估算出来。 Or even other people's products. 甚至是其他人的产品。 But it is best to develop with a larger capacity and decide on final parts when your software nears completion, because its easier to omit components than to try and find room for them later. 但是最好以更大的容量进行开发,并在软件接近完成时决定最终部件,因为它更容易省略组件而不是试图为以后找到空间。 This kind of design can be an iterative process, start with one estimate and see if a prototype works, don't commit to volumes until you are nearly at the end. 这种设计可以是一个迭代过程,从一个估计开始,看看原型是否有效,在你快要结束之前不要提交卷。

In the case of an LCD based product, you will have two major components using up flash memory, the code and the LCD data (character strings, bitmaps etc). 对于基于LCD的产品,您将有两个主要组件使用闪存,代码和LCD数据(字符串,位图等)。 Its certainly easier to estimate the LCD data than the code, which depends on functionality, compiler optimisations etc. If you are bringing in external libraries then at least you already have code for them. 它肯定比代码更容易估计LCD数据,这取决于功能,编译器优化等。如果您引入外部库,那么至少您已经有了代码。

In any case, have an upgrade plan. 无论如何,都要有升级计划。 The worst thing is to run out of capacity at the end of the project and be struggling to optimise the last feature/debug solution in without adding another problem. 最糟糕的是在项目结束时耗尽容量并且在不增加其他问题的情况下努力优化最后的功能/调试解决方案。 Make sure you know what the next size up chips are and how you can get them to fit, sometimes a PCB can be designed to take various different chips in the same position. 确保您知道下一个尺寸的芯片是什么以及如何使它们适合,有时PCB可以设计为在同一位置采用各种不同的芯片。 Or have an expandable system, where you can plug things into a memory bus. 或者有一个可扩展的系统,您可以将其插入内存总线。

How many units will you be making ? 你要制作多少个单位?

If your volumes are low (<1e3), but per unit profits high and time to market matters, more hardware will get the developers done sooner. 如果您的产量很低(<1e3),但每单位利润高且上市时间很重要,更多的硬件将使开发人员更快地完成。

If the volumes are huge (>1e6), profits per unit low, then you penny pinch the hardware, but time to develop will go up. 如果数量巨大(> 1e6),每单位利润低,那么你便吝啬硬件,但开发时间会增加。 If time to market matters, that's a tradeoff. 如果上市时间很重要,那就是权衡。

Design the board with 2x the capacity (RAM/flash), but don't load the parts, other than to check it works. 设计具有2倍容量(RAM /闪存)的电路板,但不要加载部件,除了检查它是否工作。 Then if you run out of room, there is somewhere to go. 然后,如果你的房间用完了,那就有可能去的地方。

Will customers expect to get firmware updates ? 客户是否希望获得固件更新? Or is this a drop-ship product with no support ? 或者这是一种没有支持的落客产品? Supportable is harder, needs more resources. 可支持性更难,需要更多资源。 You'll need to pad resources to have room to expand into if the product needs support for a long time. 如果产品需要长时间支持,您需要填充资源以扩展空间。

For CPU frequency estimates, how much work is required to be done ? 对于CPU频率估算,需要完成多少工作?

Get an Eval board for a likely MCU and prove out the core function. 为可能的MCU获取Eval板并证明其核心功能。 Let us say it's a display for a piece of exercise equipment. 让我们说它是一件运动器材的展示。 Can it keep up with the sensors on the device at 2-3x the designed pace ? 它能够以设计速度的2-3倍跟上设备上的传感器吗? That's reading the sensors and updating the display. 那是在读取传感器并更新显示器。 If cost is required to be low, you can then underclock the eval board adn see what trades can be made. 如果要求成本较低,则可以对评估板进行降频,看看可以进行哪些交易。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM